FAQ

Answers to the questions people ask most about NibCSS.

1 min readv1

Isn't this just inline styles?#

No. Inline style cannot express hover, focus, media queries, dark mode or pseudo-elements, cannot be cached or deduplicated, and has the highest specificity. NibCSS generates real classes in a real stylesheet.

Does it work without JavaScript?#

Yes. With the build plugin and rewrite: true — or the CLI — static markup is plain HTML plus a CSS file.

How big is the stylesheet?#

One rule per distinct rule you write, shared by every element that uses it. Typical apps stay in the low tens of kilobytes. See Performance.

Can I use any CSS value?#

Yes — colours, calc(), clamp(), var(), gradients, anything CSS accepts.

Can I use it with Tailwind or existing CSS?#

Yes. NibCSS selectors are one class strong and the reset sits in a cascade layer, so both coexist.

What about SSR and hydration?#

Class names are deterministic, so server and client agree. Dynamic CSS is collected with NibStyles / collectNibStyles. See SSR.

Why do my recipes do nothing when used as class="btn"?#

Recipes compile to hashed classes. Use nib="btn" or useNib("btn").

Which browsers are supported?#

All evergreen browsers. The generated CSS is standard; the runtime needs MutationObserver.

Why are diagnostics in Uzbek?#

uz is the default language. Set language: "en" (or ru, tr, es, de, zh) in the config.

Is it production-ready?#

NibCSS is at 1.x with a stable syntax. Pin versions, and read the changelog when upgrading.

Is there a VS Code extension?#

Not yet. TypeScript types for the nib attribute and the dev overlay cover most of what an extension would.

Next steps#