Moving away from Tailwind, and learning to structure my CSS
Tailwind vs “Plain” CSS
- Many argue Tailwind speeds up development, keeps styles close to components, avoids naming CSS classes, and reduces cascade bugs and style collisions.
- Critics say it creates unreadable “class soup,” violates DRY, and re‑introduces inline-style problems under a new syntax.
- Some feel Tailwind solves problems caused by poor CSS discipline; others counter that large CSS codebases are inherently hard to manage and Tailwind’s constraints help.
Semantic HTML & Accessibility
- Several posts stress starting from semantic HTML and accessibility, then layering CSS. Tailwind is seen as encouraging “CSS‑first” thinking and extra divs.
- Others respond that Tailwind doesn’t force bad HTML; misuse and “divitis” predate Tailwind and can happen with any tool.
- Strong disagreement over how much Tailwind ergonomically nudges people toward non-semantic markup and ARIA-heavy patterns.
Separation of Concerns & Component Scoping
- One camp views Tailwind as breaking separation of concerns by pushing style into markup.
- Another camp argues HTML+CSS are the same “presentation concern” and that locality of behavior at component level matters more than file separation.
- Frameworks like Svelte, Vue SFCs, Angular, CSS Modules, styled-components, etc., are cited as ways to get scoped, component-level CSS without Tailwind.
Learning CSS vs. Framework Dependence
- Some see Tailwind popularity as evidence most devs never learned CSS (cascade, specificity, architecture patterns like BEM/SMACSS/ITCSS/CUBE).
- Others admit they don’t want to invest heavily in CSS; Tailwind is “good enough,” and time is better spent on backend, data modeling, or business logic.
- Debate over whether not learning accessibility and CSS is “lazy” or just rational prioritization.
Alternatives and Hybrid Approaches
- Mentioned alternatives: Pico/Blades, Tachyons/Tachyonsneo, Frankenstyle, Open Props, CSS Modules, ITCSS, SMACSS, component-scoped CSS in Astro/Svelte/Vue.
- Some use a hybrid: Tailwind utilities plus scoped CSS via
@apply, or Tailwind only for utilities and layout, with traditional CSS for higher-level components.
AI / LLM Angle
- Some claim LLMs work especially well with Tailwind because classes are small, composable tokens and require no global stylesheet reasoning.
- Others argue AI also makes writing and refactoring regular CSS easier, weakening Tailwind’s advantage.