Actual CSS

Actual CSS

CSS for actual interfaces.

A semantic, no-build, progressively enhanced CSS framework for the interfaces people actually ship. No preprocessors, no build step, no classes cluttering your markup.

0 Runtime dependencies
17.6kb Full build, brotli
2.7kb Core build, brotli
18 Themes, light and dark included

Layout that reads like the markup

A handful of primitives that compose — the docs are built with the same ones.

Stack

Spacing follows the markup, top to bottom.

Cluster

A row that wraps and centers itself.

one two three four five

Grid

Responsive columns without media queries.

The visual guide walks the spacing scale, every primitive, and the difference between density and size — seventeen figures.

Why Actual?

Four ideas that shape every decision in the library.

Semantic

Style native elements and web components. Your markup stays your markup — no presentation classes, no presentational divs.

No build

One stylesheet, one script. Import it and go, or bundle it into your existing pipeline. There is nothing to compile.

Progressive

Dialogs, flyouts, tooltips and tabs layer on only where supported. The markup is the baseline; everything else is enhancement.

Themable

Light, dark and 16 named themes, all driven by tokens. Bring your own theme with a few custom properties.

One component, every state

Variants belong on the component, not in your markup.

Badge Badge Badge Primary Success Warning Danger

Density, not scaling

Same typography in every column — only the wrapper class changes.

Compact

Default

Spacious

Progressive by design

Native dialog, command and tooltips first — enhanced only where supported.

See it running

Pages built with the framework, not screenshots of it. Every one opens from this checkout.

All examples — page shapes, layout references, system benches, and two full sites.

Pick a theme

Light, dark and 16 named themes. Each card below previews one — that is a data-theme island doing its job.

Indigo

Dim

Corporate

Forest

Ocean

Spruce

Petrol

Sunset

Lavender

Mono

Square

Brutalist

Edge

Cyberpunk

Neon

Gradient

Components

Every component is native markup with its own contract.

Start building

Install

npm install actual-css

Or link it

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/actual-css/dist/actual.full.min.css">
<script src="https://cdn.jsdelivr.net/npm/actual-css/dist/actual.full.js" defer></script>
Actual CSS

Search documentation

An Actual dialog

A native <dialog>, opened with the command attribute. No JavaScript required.

An Actual drawer

A native <dialog> side-sheet, opened with the command attribute.