Challenge #1

Challenge #1

Welcome! This is Day 1 of the Advent of CSS! WOO HOO!

If you haven’t already, I’d encourage you to check out some of the resources within Podia. I’ve also included several guides for getting started, working with GitHub, Storybook, Figma, and Redwood.

For today's challenge, we’ll be building an SVG icon component.

Icon within Storybook

Brief

In today’s challenge, we’ll set up all the icons that our project need.

Of course, this could be as simple as loading each icon as an individual image. But, that makes it difficult to scale. You’d need to export multiple variations needed for color and image sizes considerations.

With an SVG sprite:

  • Single file that will deliver all of your icons

  • File size is very small and can easily be cached

  • The icon color can be controlled in code

  • Image size doesn’t matter, because it’s an SVG (vector) and can be resized without compromising quality

You should be able to export all (14) icons out of the Figma file.

Icons with Project

However, if you don’t want to mess with Figma, you can also download all the SVGs here.

Getting Started

  1. To get started, download the files. This includes all the project assets you need to get started: a creative brief, a Figma file with the designs, fonts, and images.

  2. Take a look around. Look at the project's Figma file. If you don't have a Figma account, don't worry, you can set one up for free. If you’re not familiar with Figma, I’ve recorded some help videos and posted them on Podia, within the Appendix section

  3. You’re more than welcome to use any framework you’d like. However, the solutions I’m providing are within Tailwind, Storybook, and Redwood. If you want to follow along, you can use this repo as a starting point. — More details on how to use this code and working with Tailwind, Storybook, and Redwood can be found in the Appendix section of Podia.

  4. Happy coding!

  5. Once you're finished, share your work using #adventofcss

Taking your Project to the Next Level

  • Make this component dynamic with JavaScript.

  • Write a JavaScript build process to handle the SVG Sprite Generation.

FAQs

  • Can I use libraries / frameworks on these projects?

    • Of course! We're working with RedwoodJS, but you can use whatever tools and frameworks you'd like.

  • Oh no! I'm stuck!

    • Check out the RedwoodJS Discord. We’ve set up a specific channel: Advent Challenge.

    • Join Maker Hour on Wednesday. I’ll be there!

  • Can I use this project in my portfolio?

    • Sure! But, be honest about the work that you did

Merry Coding,

Amy


Special Thanks to Our Sponsor

Thanks to the generosity of our sponsor, RedwoodJS, I’m able to offer all the content for free.

Advent of CSS 2023

Buy nowLearn more

👋 Welcome

  • START HERE!2
  • Setting up your Project2

Challenge #1 - Building An Icon Component

  • Challenge #18
  • Project Files
  • Solution #16

Challenge #2 - Building an Avatar Component

  • Challenge #2
  • Project Files
  • Solution #25

Challenge #3 - Form Fields and CSS Only Validation

  • Challenge #34
  • Project Files
  • Solution #35

Challenge #4 - Show / Hide Password

  • Challenge #4
  • Project Files
  • Solution #4

Challenge #5 - Login Layout

  • Challenge #5
  • Project Files1
  • Solution #5

Challenge #6 - Slide up Footer

  • Challenge #6
  • Project Files
  • Solution #6

Challenge #7 - Hamburger Menu

  • Challenge #7
  • Project Files
  • Solution #7

Challenge #8 - Slide Out Navigation

  • Challenge #8
  • Project Files
  • Solution #8

Challenge #9 - Dropdown Menu

  • Challenge #9
  • Project Files
  • Solution #9

Challenge #10 - Interior Page Layout

  • Challenge #10
  • Project Files
  • Solution #10

Challenge #11 - Custom Checkbox

  • Challenge #11
  • Project Files
  • Solution #111

Challenge #12 - RSVP Pages

  • Challenge #12
  • Project Files
  • Solution #12

Challenge #13: Invite Card

  • Challenge #13
  • Project Files
  • Solution #13

Challenge #14 - Invite Group Form

  • Challenge #14
  • Project Files
  • Solution #14

Challenge #15 - Modal

  • Challenge #15
  • Project Files
  • Solution #15

Challenge #16 - Create your wishlist

  • Challenge #16
  • Project Files
  • Solution #16

Challenge #17 - Slide Out Panel

  • Challenge #17
  • Project Files
  • Solution #17

Challenge #18 - View Your Wish List Layout

  • Challenge #18
  • Project Files3

Challenge #19 - Expanding and Collapsing Accordion

  • Challenge #19
  • Project Files

Challenge #20 - Dashboard Page

  • Challenge #20
  • Project Files1

Challenge #21 - Pairing

  • Challenge #21
  • Project Files

Challenge #22 - Thank You Note

  • Challenge #22
  • Project Files

Challenge #23 - Spinner for the Loading State

  • Challenge #23
  • Project Files

Challenge #24 - Light and Dark Theme Switcher

  • Challenge #24
  • Project Files

Appendix

  • Getting Help and Support
  • Working with GitHub
  • Working with Gitpod2
  • Working with Storybook
  • Working with Redwood
  • Testimonials
  • Want more? Where to go from here?