Knowing CSS is mastery to front end development
CSS as Design, Not Just Logic
- Several comments stress that CSS expresses visual design rather than program logic, so many developers struggle because they lack design foundations (grid theory, typography, geometry, time-based transitions).
- Design is framed as both “doing” (layout, adjustment) and “thinking” (defining the real problem and conceptual solution), and CSS sits directly in that space.
Layout Abstractions vs Plain CSS
- Strong disagreement over component abstractions like
InlineStack(flex wrappers):- Critics see them as unnecessary indirection, “div soup with framework names,” extra runtime complexity, and churn in naming.
- Defenders argue they give structural semantics, consistent layout APIs (via props), guardrails for correct flexbox usage, and cross-platform mapping (web/native).
- Some prefer utility classes (
class="flex gap-2") as simpler and more transparent than layout components.
Tailwind and Atomic/Utility CSS
- Proponents: Tailwind reduces specificity wars, naming overhead, and stylesheet collisions; matches design tokens; works well for “glue” layout and responsive states (e.g.,
hover:,lg:). - Critics: it undermines understanding of the cascade, often degenerates into giant class strings, duplicates inline styles with new syntax, and becomes a leaky abstraction that still requires knowing CSS.
- DaisyUI and similar libraries are seen as reintroducing higher-level components on top of Tailwind, suggesting a full circle back to traditional CSS frameworks.
- Debate over whether modern CSS features (variables, modules,
@layer, upcoming@scope) make Tailwind-style approaches increasingly unnecessary.
Is CSS Hard, or Just Poorly Understood?
- Some feel “knowing CSS” fully is impossible due to its feature surface and edge cases (especially with grids, flex, tables, web components).
- Others argue you only need solid fundamentals (box model, positioning, cascade, selectors) to be effective; modern CSS is more consistent than the old IE era.
- There’s sharp criticism calling CSS a “garbage API” with magical behavior (e.g., collapsing margins), contrasted with defenders who say these issues stem from mismatched mental models and not reading the spec.
AI and CSS
- A subset proudly delegates almost all CSS to LLMs, treating it like compiled assembly.
- Others are alarmed by developers who “can’t do anything without AI,” fearing fragile codebases and a loss of foundational skills—these developers are seen as most replaceable by future agents.
- Some use LLMs surgically: to draft layouts, fill knowledge gaps, or prototype Tailwind classes, then refine manually.
HTML Semantics and Accessibility
- Multiple comments argue real frontend mastery also requires understanding HTML semantics and ARIA, not just CSS.
- Overuse of
<div>for everything (including buttons) is criticized as harmful for accessibility and keyboard navigation; lawsuits and modern frameworks’ warnings are nudging teams toward proper elements.
Culture, Scaling, and Vanilla Web
- One camp views the explosion of frameworks (React, Tailwind, design systems) as necessary to scale large teams (25+ devs) and messy designs.
- Another camp sees them as “mech suits” insulating developers from the platform, arguing that modern browsers and vanilla HTML/CSS/JS are now good enough to build substantial apps without heavy abstractions.