How to NOT write CSS
The story of
Functional CSS benefits
Andrii Bohdanov
GitHub: https://github.com/AndrewBogdanovTSS
LinkedIn: https://www.linkedin.com/in/andrii-bohdanov-0828a02b/



Principal Frontend Engineer at VF Corp
Getting Started
1. Create Nuxt project
3. Add UnoCSS module to nuxt.config.ts:
pnpm create nuxt fun-css
export default defineNuxtConfig({
modules: ['@unocss/nuxt']
})
4. (Optional) Create a uno.config.ts file:
import { defineConfig } from 'unocss'
export default defineConfig({
// ...UnoCSS options
})
2. Install Required Packages
pnpm i -D unocss @unocss/nuxt
Performance benefits of Functional CSS
-
No XHR calls for CSS component chunks
-
Single CSS file (that can also be inlined directly in HTML)
-
Highly optimized CSS bundle
-
No FOUC
Optimized bundle delivery
Performance benefits of Functional CSS
Optimized bundle delivery

Rendering benefits of Functional CSS
-
CSS to SS: elimination of cascade complexities
-
Avoids CSSOM mutation when components mount/unmount into the DOM.
-
Changes only affect the relevant DOM subtree.
-
Faster rendering in component-heavy SPAs
Faster Rendering
Build-time benefits of UnoCSS
-
On-Demand Generation
-
Minimal Core Design
-
No runtime analysis or DOM dependency
-
Single-Pass Scanning
-
Smart Caching
-
Parallel Processing
Lightning-Fast Builds
Scalability benefits
-
Token-Driven Styling
-
Consistent Naming
-
Reusable Patterns
-
Design Constraints
-
Reduced Custom CSS
-
Centralized Configuration
-
Design-to-Code Parity
CSS that describes Design System
OOCSS vs FCSS
Comparison Aspect | Traditional CSS | Functional CSS |
---|---|---|
Context switching | High - Separate CSS files/sections | Low - Inline utility classes in markup |
Support Cost | High - global scope, specificity issues | Low - isolated scope, no specificity |
Runtime Performance | Low - Manual optimization required, some optimizations not possible | High: Auto-treeshaking, isolated utilities, no side effects, no CSS chunks |
Buildtime Performance | Slow - usually limited by a compiler (SASS/SCSS/PostCSS) | Fast: No parsing, no AST, no scanning |
Refactoring | Risky - cascade and HTML structure dependencies | Safe - no cascade, no structural dependencies |
Learning Curve | High: CSS methodologies + Preprocessors (BEM/OOCSS/SMACSS/SASS/LESS/etc.) | Medium: Utility API memorization |
Design Consistency | Manual enforcement needed | Enforced via constrained utilities |
Initial Loading | Larger CSS payload (unused rules common) | Smaller - JIT eliminates unused styles |
Abstraction Level | High - abstracted class names | Low - 1:1 CSS property mapping |
In Summary
Conclusion
Embrace functional CSS for better performance and control.
Ask your questions
Thanks you!
Code
By Andrey
Code
- 18