This is the FreeCodeCamp-compliant version of the Event Flyer Page project, built as part of the FreeCodeCamp Responsive Web Design curriculum. The page is a fictional event flyer for the Spring Yoga Festival 2026, hosted by the imaginary The Blooming Orchid Yoga Studio.
This branch represents the version that was successfully submitted to and validated by the FreeCodeCamp platform. ✅
The main branch contains the version of the project that strictly meets all FreeCodeCamp curriculum requirements. Every design and layout decision was made with compliance in mind, while still aiming for a clean, readable, and pleasant visual result.
For the creative and personal portfolio version of this project, please visit the portfolio branch.
This project was a rich learning experience that allowed me to practice and consolidate a wide range of HTML and CSS skills.
One of the key focuses of this project was understanding the difference between absolute and relative units, and knowing when to use each appropriately:
px— used for precise, fixed values such as border thickness and font sizes where consistency matters%— used for widths ofhrandsectionelements relative to their parent container, as required by the FreeCodeCamp curriculumvw— used to set thewidthof thebodyrelative to the viewport width, ensuring the layout adapts to different screen sizesvh— used in combination with thecalc()function to set themin-heightof thebodyrelative to the viewport heightrem— used for spacing (margins, paddings, gaps) to maintain consistent rhythm across the pageem— explored and understood as a unit relative to the parent element's font size
A particularly satisfying requirement was using the calc() function to set the body's min-height dynamically:
min-height: calc(100vh - 100px);This subtracts the total vertical padding (50px top + 50px bottom) from the full viewport height — ensuring the body always fills the screen correctly regardless of its content.
- Flexbox — used to structure and center the header content (logo, festival image, title, and presentation text) along a vertical axis
- CSS Grid — used to display the event cards in a responsive three-column layout using
repeat(3, 1fr)
- CSS linear gradients for background and decorative
hrelements - Google Fonts integration (
Archivo BlackandBitter) - Semantic HTML structure with
header,main,section,article, andfooter - Class-based styling for reusable and maintainable CSS rules
- HTML5 — semantic structure and content
- CSS3 — Flexbox, Grid, relative units,
calc(), and linear gradients - Google Fonts — Archivo Black & Bitter typefaces
- Git & GitHub — version control and branch management
- Event flyer layout structured with a clear visual hierarchy
- Header with festival image, title, and event details centered using Flexbox
- Nine event cards displayed in a three-column CSS Grid layout
- Horizontal rules styled with a soft gradient divider
- Body width set with
vwandmin-heightcalculated withcalc() - Clean typographic pairing between Archivo Black (headings) and Bitter (body text)
GitHub Page: You can view the live version of this project on its dedicated 👉GitHub Page. The version published is the portfolio branch version.
- 📁 Root Repository: You can consult the root repository of this project on its dedicated 👉 GitHub repository
- 🌿 Main Branch - Source Code: You can view the source code for the main branch on its dedicated 👉 main branch page
- 🎨 Portfolio Branch - Source Code: You can view the source code for the portfolio branch on its dedicated 👉 portfolio branch page
- Project context: FreeCodeCamp — Responsive Web Design Curriculum
- Author: NF Web Development Studio
© 2026