Can you build a complete game with scoring and timers using only CSS? Learn how hidden inputs and pseudo-classes can replace complex JavaScript logic.
#1about 4 minutes
Building a pure CSS game during the pandemic
The story behind creating the 'Coronavirus Invaders' game using only CSS and HTML to turn free time into a creative project.
#2about 3 minutes
Structuring and styling the virus creature
Learn how to structure the virus creature's HTML using Pug for repetition and style its components with basic CSS shapes and pseudo-elements.
#3about 5 minutes
Automating positioning and animation with Sass
Use a Sass `for` loop to programmatically position elements around a circle with `transform` and create staggered animations with negative `animation-delay`.
#4about 7 minutes
Managing game states with checkboxes and labels
Implement game navigation and popups without JavaScript by using hidden checkboxes as state flags, labels as buttons, and the `:checked` pseudo-class.
#5about 5 minutes
Implementing a score system with CSS counters
Create a functional scoring system by using radio inputs to register clicks on viruses and CSS counters to increment and display the score.
#6about 2 minutes
Creating a countdown timer by animating content
Build a countdown timer in pure CSS by animating the `content` property of pseudo-elements with a keyframe animation that cycles through numbers as strings.
#7about 3 minutes
Generating random values using the Sass random() function
Use the Sass `random()` function within a loop to generate varied keyframe animations at compile time, creating the effect of random movement for game elements.
#8about 2 minutes
Resetting the game and timing the game over screen
Learn how to reset the game state by wrapping it in a form and using an `input type='reset'`, and trigger a game over screen using `animation-delay`.
#9about 2 minutes
The importance of learning through personal projects
The key takeaway is that creating fun personal projects is the most effective way to learn new technologies and become a better developer.
#10about 6 minutes
Q&A on radio vs checkbox and performance
The speaker answers audience questions about the choice between radio and checkbox inputs for state, and how browser performance is managed with many animations.
#11about 5 minutes
Q&A on Sass vs pure CSS and randomness
The speaker discusses whether the game could be built without Sass and explores the concept of generating random values in CSS versus JavaScript.
Related jobs
Jobs that call for the skills explored in this talk.
Building a "shoutout" component in plain HTML/CSS/JavaScriptEvery Wednesday we meet at noon to talk about a lot of tech news, tools and resources in something we call WeAreDevelopers Live . We go live on YouTube and afterwards we cut out short videos to post on social media. What we needed was an obvious “sho...
Daniel Cranney
CSS-Only Scroll-Driven AnimationsScroll-linked animations look slick, but until now it often meant writing a fair amount of JavaScript, scroll event listeners, getBoundingClientRect(), class toggling and so on, with UX benefits often offset by performance downsides.
CSS scroll-drive...
Daniel Cranney
3 JavaScript-Free Techniques for Accordions, Dialogs, and Table of ContentsIf you’ve ever read the WeAreDevelopers Magazine before, you’ll know we love showing developers how to take advantage of native platform features and avoid over-engineering UI’s with frameworks or pre-built components.
So, when we came across Théodor...
Daniel Cranney
Creating a Spotlight Text Effect with CSS and JavaScriptEvery now and then it’s fun to build something small just to get a better grip on a concept, and this one’s a great example.
We’ll explore how to make a simple spotlight text effect that helps you understand how to follow the cursor, use CSS variable...
From learning to earning
Jobs that call for the skills explored in this talk.