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.