Returning to the Fundamentals of Frontend: A Responsive Design Journey

Returning to the Fundamentals of Frontend: A Responsive Design Journey
Over the past few months, most of my focus had been on backend systems and infrastructure — integrating CMSs, managing deployment pipelines, and automating delivery to production.
But recently, I took a step back to work on something I hadn’t touched deeply for a while: the actual experience layer of the web — the frontend.
And honestly, it felt like returning to the fundamentals.
Building from the Ground Up: global.css
and layout.tsx
Everything starts with a foundation.
In my case, that meant carefully defining global styling rules and the root layout of the application.
global.css
handles the global reset, color tokens, font stacks, and consistent box sizing.
Things like settingbox-sizing: border-box
and defining CSS variables for text and background colors form the backbone of a maintainable design system.layout.tsx
then takes that foundation and provides the structural skeleton for the entire app —
bringing together shared components like theHeader
,Footer
, and analytics snippets.
It’s the invisible glue that ensures every page behaves consistently across breakpoints and devices.
This base layer allowed me to think clearly about how each subcomponent — Hero
, Sheet
, Page
— fits together without unexpected interference.
The Layered Composition: Hero, Sheet, and Page
To create a layout that looks natural and scales responsively, I followed a layered component strategy.
🪐 Hero
: The visual identity
The Hero
component sets the tone — it defines the visual "universe" of each page.
It’s intentionally kept full-width (w-full
), with a flexible background that adapts to different device widths without clipping.
It’s also isolated from the rest of the layout to prevent inherited constraints from interfering with its positioning.
🧱 Sheet
: The content container
If the Hero represents atmosphere, the Sheet
is the solid ground where content lives.
Initially, it had a fixed width (width: 840px
), which looked clean on desktop but broke on smaller screens.
After refining the CSS with responsive @media
queries, the container now adjusts its width (90–96%
depending on viewport) and padding dynamically,
maintaining visual balance across devices.
This simple change — allowing Sheet
to breathe — unlocked proper responsiveness throughout the site.
📄 Page
: The content logic
Finally, each page (like About
or News
) manages its own data logic and local styling via a corresponding page.module.css
.
This separation ensures that global and layout-level decisions (spacing, typography, structure) remain untouched
while each page can fine-tune its content presentation.
Managing the “Worldview” of the Frontend
Unlike backend logic — where correctness and efficiency are everything — frontend development asks for something more subtle: the adjustment of perception.
It’s not just about writing functional CSS or React code.
It’s about continuously tweaking small visual details — padding, color balance, transition speed —
until the page feels right.
That process isn’t purely technical; it’s closer to shaping a worldview, one pixel at a time.
Key Takeaways
Here are a few practical lessons from this iteration:
- Don’t fight your layout — isolate it.
Components likeHero
andSheet
should not share layout responsibilities.
Give each layer clear ownership. - Design responsiveness from the container outward.
AdjustingSheet
’s width and padding had far more impact than tweaking every nested element. - Keep
global.css
minimal but powerful.
Define consistent variables and typography rules once, and let components inherit them naturally. - Treat visual design as feedback, not decoration.
The best responsive design comes from observing how your content wants to flow — and then shaping the layout to respect that.
Closing Thoughts
Working on infrastructure taught me precision and scalability.
Working on frontend reminded me of sensitivity and rhythm —
how small adjustments create emotional resonance and coherence.
Getting back to these fundamentals felt like rediscovering the reason I started building websites in the first place:
not just to make them work, but to make them feel right.