About

Monospace grayscale CSS library for engineers.

Unbloated provides a shared appearance for websites, documentation, and presentation themes. Its design uses system monospace fonts, black and white surfaces, grayscale details, and square corners.

The distributed library contains no runtime JavaScript, runtime dependencies, remote fonts, or remote assets. The documentation adds a small script for its interactive tab example. That script is an example adapter and is not included in the npm package.

Stylesheets

File Contents
dist/unbloat.css Tokens, semantic HTML styles, and all optional components
dist/tokens.css CSS custom properties
dist/base.css Styles for semantic HTML elements
dist/components.css Optional component classes
dist/_tokens.scss Sass variables with !default
src/tokens.json Canonical design values

Load tokens first when using separate stylesheets. Load base styles and components next, then your own adapter. The selectors use :where() to keep specificity low, so ordinary selectors can override the shared styles.

The base stylesheet applies to the whole document. To preserve an existing theme’s element styles, start with tokens and an adapter instead. Set page width, navigation layout, slide dimensions, and mobile font scaling in your site’s stylesheet.

Supported Markup

Use semantic HTML for headings, lists, links, code, tables, and form controls. Give inputs labels and tables scoped header cells, and set button types explicitly inside forms. Keep keyboard focus visible and implement application actions and tab selection in your own code.

Use Sass Tokens

For tools that resolve packages through Sass load paths:

@use "unbloated/dist/tokens" as unbloat;

$body-color: unbloat.$unbloat-color-text;
$body-bg: unbloat.$unbloat-color-surface;
$font-family-monospace: unbloat.$unbloat-font-family;

Include node_modules in the Sass load path. For Quarto, copy _tokens.scss into the extension and load it within the scss:defaults section of the theme. Keep slide layout and Quarto-specific selectors in that extension. If the host tool cannot resolve @use, load the generated values through its supported Sass mechanism.

License

The library is licensed under LGPL-3.0-only. Keep LICENSE, COPYING, and NOTICE with redistributed copies and retain access to the corresponding source. Generated CSS and Sass retain the license banner.