Getting started
Install
LombokCSS is plain CSS + an optional plain-JS file, so it works with every package manager, bundler and framework. Pick whichever fits your stack.
Package managers (npm registry)
npm, Yarn and pnpm all read the same package — use whichever you have.
npm install lombokcss
yarn add lombokcss
pnpm add lombokcss
Then import the CSS once (and the optional JS for interactive components):
import "lombokcss/dist/lombok.min.css";
import "lombokcss/dist/lombok.js"; // optional
CDN (jsDelivr / unpkg)
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/lombokcss@0.1.9/dist/lombok.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/lombokcss@0.1.9/dist/lombok.js"></script>
<!-- or unpkg: https://unpkg.com/lombokcss@0.1.9/dist/lombok.min.css -->
Composer (PHP / Packagist)
composer require codinglombok/lombokcss
<!-- then reference vendor/codinglombok/lombokcss/dist/lombok.min.css -->
RubyGems (Rails / Sprockets)
# Gemfile
gem "lombokcss"
# config/initializers/assets.rb
Rails.application.config.assets.paths << Lombokcss.assets_path
# app/assets/stylesheets/application.css -> *= require lombok.min
Direct download
Grab dist/lombok.min.css (and optional dist/lombok.js) and link them.
Bundler & framework integrations
Because it ships standard .css and .js, there is no special plugin to install.
Vite
// main.js
import "lombokcss/dist/lombok.min.css";
import "lombokcss/dist/lombok.js";
Webpack
// requires css-loader + style-loader (or MiniCssExtractPlugin) in your config
import "lombokcss/dist/lombok.min.css";
import "lombokcss/dist/lombok.js";
Parcel
// Parcel handles CSS imports out of the box
import "lombokcss/dist/lombok.min.css";
Vue (and React, Svelte, etc.)
Import the CSS once in your entry file, then use the classes in templates.
// main.js (Vue entry)
import { createApp } from "vue";
import App from "./App.vue";
import "lombokcss/dist/lombok.min.css";
import "lombokcss/dist/lombok.js";
createApp(App).mount("#app");
<!-- App.vue -->
<button class="btn btn-primary">Save</button>
Set the style globally on <html>:
document.documentElement.dataset.style = "neo-brutalism".
Bower is included for legacy setups
(bower install lombokcss) but Bower is deprecated — prefer npm/Yarn/pnpm.
GitHub Packages
LombokCSS is also available on all 5 GitHub Packages registries:
# npm (GitHub Packages Registry)
npm install @codinglombok/lombokcss --registry=https://npm.pkg.github.com
# Container (Docker)
docker pull ghcr.io/codinglombok/lombokcss:latest
# NuGet
dotnet add package codinglombok.LombokCSS --source https://nuget.pkg.github.com/codinglombok/index.json
# Maven (pom.xml)
<groupId>com.github.codinglombok</groupId>
<artifactId>lombokcss</artifactId>
File structure
src/
variables.css token architecture (the contract)
core.css reset + base element styles (classless mode)
themes.css token values per design style
components.css components (read tokens only)
utilities.css atomic utilities + responsive prefixes
dist/
lombok.css bundled, readable
lombok.min.css bundled + minified (ship this)
lombok.js optional interactive behaviors
Classless mode
Plain semantic HTML is styled with zero classes — good for prose and prototypes.
A heading
A paragraph with a link, some inline code and a ⌘K shortcut.
Tokens are the contract; styles are signatures on it.
<h3>A heading</h3>
<p>A paragraph with a <a href="#">link</a>, some <code>inline code</code>
and a <kbd>⌘</kbd><kbd>K</kbd> shortcut.</p>
<blockquote>Tokens are the contract; styles are signatures on it.</blockquote>
Build process
The dist files are produced with Lightning CSS:
cat src/variables.css src/core.css src/themes.css \
src/components.css src/utilities.css > dist/lombok.css
npx lightningcss --minify --bundle dist/lombok.css -o dist/lombok.min.css
PostCSS equivalent: postcss-import + autoprefixer + cssnano. To shrink further, ship utilities.css only if you use utility classes, purge unused classes against your templates, and drop styles you don't use from themes.css.
Browser support & accessibility
Modern CSS with graceful fallbacks: :has(), :user-invalid, accent-color, backdrop-filter (opaque fallback via @supports), logical properties, native <dialog>/<details>. Components ship with visible focus rings, ARIA hooks and respect prefers-reduced-motion.