Tenant Findr CSS Animation

By Braden Moser on September 24, 2021

This was one of my favorite projects to work on. Tenant Findr was an Afficacy subsidiary to funnel in clients that were looking for marketing for their housing complexes. The website utilized a dark theme and I created a design system that would be easy to use so that my team could all be on the same page with design rules for the site. The colors use Afficacy's primary and secondary colors as accents on the dark theme.

Tenant Findr Design System so the team was coordinated in the design.

I also created a neat little NO VACANCY sign effect for the homepage hero section. I created the design and fully animated it in Adobe After Effects and intended to export it as a GIF, however there were color banding issues with that format. So instead I exported two still frames as PNGs and then using relative position on the left column DIV and absolute on the two images, I was able to overlay the two images and animate the opacity in opposing times so that the animation closely resembled the original AE animation.

Check out the video below which shows the page on refresh and the slider shows the two PNGs side by side so you can see that there is a slight variation in the glow due to the original AE animation. You can also see my code for the animations at the bottom.

.delayblink {
	animation-name: blink;
 	animation-duration: 3s; 
  	animation-timing-function: ease; 
  	animation-delay: 0s;
  	animation-iteration-count: infinite;
  	animation-fill-mode: none;
  	animation-play-state: running; 
}

@keyframes blink { 
	0% {
    opacity:0.9;
  }
  
  2% {
    opacity:1;
  }
  8% {
    opacity:0.9;
  }
  9% {
    opacity:1;
  }
  12% {
    opacity:0.9;
  }
  20% {
    opacity:1;
  }
  25% {
    opacity:0.9;
  }
  30% {
    opacity:1;
  }
  
  70% {
    opacity:1;
  }
  
  72% {
    opacity:0.9;
  }
  
  77% {
    opacity:1;
  }
  100% {
    opacity:1;
  }
}

.no-vacancy {
	animation: no-vacancy 10s 1;
	animation-timing-function: ease;
}

@keyframes no-vacancy { 
	0% {
		opacity: 0%;
	}
	30% {
		opacity: 0%;
	}
	30.4% {
		opacity: 59%;
	}
	30.8% {
		opacity: 20%;
	}
	32.5% {
		opacity: 100%;
	}
	33.3% {
		opacity: 0%;
	}
	35% {
		opacity: 100%;
	}
	36% {
		opacity: 0%;
	}
	41.5% {
		opacity: 0%;
	}
	42.5% {
		opacity: 100%;
	}
	51.5%{
		opacity: 100%;
	}
	52.5%{
		opacity: 20%;
	}
	54.2%{
		opacity: 100%;
	}
	68.6%{
		opacity: 100%;
	}
	69.6%{
		opacity: 25%;
	}
	70.4%{
		opacity: 100%;
	}
}

.vacancy {
	animation: vacancy 10s 1;
	animation-timing-function: ease;
	opacity: 0%;
}


@keyframes vacancy { 
	0% {
		opacity: 0%;
	}
	15%{
		opacity: 100%;
	}
	30% {
		opacity: 110%;
	}
	30.4% {
		opacity: 41%;
	}
	30.8% {
		opacity: 80%;
	}
	32.5% {
		opacity: 0%;
	}
	33.3% {
		opacity: 100%;
	}
	35% {
		opacity: 0%;
	}
	36% {
		opacity: 100%;
	}
	41.5% {
		opacity: 100%;
	}
	42.5% {
		opacity: 0%;
	}
	51.5%{
		opacity: 0%;
	}
	52.5%{
		opacity: 80%;
	}
	54.2%{
		opacity: 0%;
	}
	68.6%{
		opacity: 0%;
	}
	69.6%{
		opacity: 75%;
	}
	70.4%{
		opacity: 0%;
	}
}
Article written by Braden Moser

Related Posts

arrow-down linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram