A lightweight, utility-first CSS framework with zero JavaScript.
Use it like Tailwind β ship it lean. Built for developers who want clean defaults without the bloat.
- Utility-first β Tailwind-like class API (
.flex,.gap-4,.text-lg,.rounded-lg, β¦) - Zero JavaScript β pure CSS, works everywhere
- Tree-shakeable β PurgeCSS integration strips unused classes in production
- Modular imports β import only base, utilities, or components
- CSS variables β easy theming with
--ns-*tokens (light + dark mode) - Tiny footprint β full build ~8 KB gzip, treeshaken even smaller
- PostCSS pipeline β autoprefixer + cssnano included
npm install @fayso/nostyle-css
# or
pnpm add @fayso/nostyle-css// Full framework (recommended)
import "@fayso/nostyle-css";
// Or selective imports
import "@fayso/nostyle-css/base"; // reset + CSS variables
import "@fayso/nostyle-css/utilities"; // utility classes
import "@fayso/nostyle-css/components"; // btn, card, badge, input, etc.<link
rel="stylesheet"
href="https://fvrvz.github.io/nostyle-css/static/css/nostyle.css"
/><div class="container flex flex-col gap-4 p-6">
<h1 class="text-2xl font-bold tracking-tight">Hello NoStyle</h1>
<p class="text-muted text-sm">Lightweight and clean.</p>
<button class="btn btn-primary">Get Started</button>
</div>| Category | Classes |
|---|---|
| Layout | container, flex, grid, gap-*, items-*, justify-* |
| Spacing | p-*, px-*, py-*, m-*, mt-*, mb-*, mx-auto |
| Typography | text-xs β text-4xl, font-bold, tracking-*, uppercase |
| Colors | text-body, text-muted, text-primary, bg-surface, bg-primary |
| Borders | border, rounded, rounded-lg, shadow, shadow-sm |
| Components | btn, btn-primary, card, badge, input, panel, prose |
| Responsive | md:grid-cols-1, md:hidden |
nostyle-css/
βββ nostyle/ # CSS framework package
β βββ src/ # Source CSS (base, utilities, components)
β βββ dist/ # Built output
β βββ postcss.config.cjs # PostCSS + PurgeCSS pipeline
βββ docs-site-nuxt/ # Documentation site (Nuxt 4 + @nuxt/content)
βββ .github/workflows/ # CI/CD (build, deploy, publish)
βββ Dockerfile # Multi-stage Docker build (dev/build/production)
- pnpm >= 10
git clone https://github.com/fvrvz/nostyle-css.git
cd nostyle-css
pnpm installpnpm run build # Build NoStyle CSS + Nuxt docs
pnpm run dev # Start Nuxt docs dev server
pnpm run build:css # Build only the CSS framework
pnpm run preview # Preview production docs build
pnpm run generate # Static generate docs for deploymentdocker build --target build -t nostyle-build .
docker build --target production -t nostyle-prod .
docker run --rm -p 8080:80 nostyle-prodNoStyle uses PostCSS + PurgeCSS to strip unused classes:
cd nostyle
NOSTYLE_PURGE=1 postcss src/index.css -o dist/nostyle.treeshake.cssOr use the built-in script:
pnpm run build:css- Fork the repository
- Create your feature branch (
git checkout -b feat/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
Faraaz Khan β @FaraazKhhan
- LinkedIn: FaraazKhhan
- Ko-fi: FaySo
Powered by FaySo π
MIT Β© Faraaz Khan