Mini Project Retro: Building a a Product Landing Page Page With HTML & CSS
One of my last freeCodeCamp Responsive Web Design projects: a product landing page. Like before, there were some user stories to guide it, an already-built example, and simple instructions to avoid using fancy libraries and frameworks so you can learn the ropes with the basics.
The end result is here.
What I did
I created an imaginary minimalist decluttering service, an idea that came to me in a flash. It was meant as a parody at first, but I ended up paring back the words and leaving three options for users to choose from.
I researched some pricing table examples on Dribble but took most inspiration from other websites I like, e.g. Aesop. I wanted to find a compromise: what is readable is not usually the most alluring visually, and what is alluring visually isn’t always the most readable or usable.
Lessons
Creating responsive divs is a challenge
I ended up with three imaginary services to choose from, not knowing this would be a challenges for responsiveness. Given the minimalist design and ample room to breathe between elements, resizing everything inside the box for smaller-than-desktop but bigger-than-mobile displays wasn’t an option. Deleting one wasn’t either ;)
It was stuck with an awkward in-between sizes scenario: for large displays, the 3 items would sit in a flex row. For mobile, they’d be a neat flex column. But in the middle...do I squish the content inside or push the items into a different layout? In a real life scenario, you wouldn’t cut a pricing scheme because the developer couldn’t figure out how to display 3 boxes, would you? Or...would you?
Turns out there aren’t great solutions for the awkward in-between: for example, the Washington Post narrows the boxes ever so slightly on their GDPR consent form and then forces the boxes into a column.
My solution was to give the individual items a max-width, and push one down with flex-wrap. Given more time, I’d have designed the boxes differently, but at that point I’d already spent a lot of time figuring out their look and didn’t want to invest much further. Lesson learned.
What I’d do differently
Different designs for multiple screen sizes. This is a recurring theme. I have a mental sketch of how I want things to look, but for these small projects I don’t lay things out in Figma or fancier design tools. It’s more time-consuming but fun to tweak as I go along for now. For something more complex I’d ensure there are appropriate designs for mobile vs. designs for desktop, and the content looks good in all of them.
Introduce a sizing system. This is the first project that challenged me in terms of CSS, and I read 'Refactoring UI’ after, which made me realize how I could’ve made things more systematic and saved myself time.
Use SVG instead of PNG. I borrowed a PNG for the imaginary company logo, and really wanted to use SVG, but ended up in a rabbit hole trying to figure out how to resize and crop SVGs, which pushed this as a to do for my next project.














