A humanist design system for the reading mind.
Live Site · MIT License · Changelog · Contributing
Nous is a CSS design system built for long-form reading — essays, academic papers, bilingual texts, annotation-rich documents. Its palette is drawn from the Aegean: limestone, terracotta, olive, wine-dark sea. Its typography pairs five carefully chosen serif and monospace families across Latin, Greek, and CJK scripts. The system ships as six plain CSS files with no build step and no JavaScript dependencies.
Reference the tokens and any layer you need directly from jsDelivr:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/islgl/nous@main/design/styles/tokens.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/islgl/nous@main/design/styles/book.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/islgl/nous@main/design/styles/markdown.css">Google Fonts must be loaded separately — CDN does not bundle them.
git clone https://github.com/islgl/nous.gitOpen index.html in a browser. No build step required.
Copy design/styles/tokens.css into your project. It defines every color, font, spacing, and motion value as CSS custom properties. Build your own components on top:
.my-card {
background: var(--nous-paper-2);
color: var(--nous-ink);
font-family: var(--ff-serif);
padding: var(--s-5) var(--s-6);
border: 1px solid var(--nous-rule);
}Dark mode, responsive type, and reduced-motion all inherit automatically — no extra work needed.
Copy DESIGN.md into your AI session context. It contains the full design specification — palette, type stack, spacing scale, HTML patterns, and do/don't rules — so generated code follows the Nous style automatically.
Six CSS files, loaded in this order. No preprocessor, no bundler.
tokens.css Variables only — colors, type, space, motion
↓
book.css Page layout: .page, .eyebrow, .prose, .meander, .dropcap
↓
markdown.css Long-form elements: headings, lists, blockquotes, code, tables
↓
patterns.css Interaction patterns: footnote popover, TOC rail, reader controls
↓
editors.css Editor chrome for Obsidian, Typora, Blog mockups (optional)
↓
site.css Multi-page navigation, chapter chrome, footer, print
Every file depends only on tokens.css. The single :root lives there — no redeclaration elsewhere.
Ten chapters covering the full system, from philosophy to accessibility audit.
| # | Chapter | Subject |
|---|---|---|
| I | The Philosophy | Why a reading theme should be quiet |
| II | Light & Stone | Color drawn from place, WCAG contrast audit |
| III | The Voice | Typography & hierarchy — Latin, Greek, CJK |
| IV | Rhythm | Space, measure, breath, motion, breakpoints |
| V | The Vocabulary | Every markdown element, given its voice |
| VI | The Margins | Annotation, citation, marginalia, TOC rail |
| VII | Small Kindnesses | Reader controls — size, measure, bookmark |
| VIII | In Practice | Obsidian, Typora, the quiet web |
| IX | A Handbook | Do's, don'ts, accessibility, CJK, print |
| · | Colophon | Editions and thanks |
Three real documents using the system — test fixtures and showcases.
| Document | What it shows |
|---|---|
| Essay | Long-form prose, drop cap, margin notes, footnote popovers, bibliography |
| Academic paper | Title block, abstract, numbered sections, notes, bibliography |
| Bilingual text | Three-column parallel text — Greek, English, Chinese |
| Token | Light | Dark | Role | |
|---|---|---|---|---|
| ◼ | --nous-paper |
#FDFCF9 |
#15140F |
Primary background |
| ◼ | --nous-ink |
#1A1814 |
#ECE3CF |
Body text |
| ■ | --nous-aegean |
#3D6A7A |
#8FB4C2 |
Links, notes |
| ■ | --nous-terracotta |
#A8553A |
#C97B5E |
Accent, drop caps |
| ■ | --nous-olive |
#6E7542 |
#A3AC6A |
Tags, asides |
| ■ | --nous-ochre |
#B5893B |
#D4A94E |
Highlights, warnings |
| ■ | --nous-wine |
#6E2F3A |
#C97B80 |
Code, quotes |
Full palette with 13 semantic tokens, plus syntax highlighting and dark-mode counterparts. See Light & Stone for the complete contrast audit.
| Token | Family | Role |
|---|---|---|
--ff-display |
Cormorant Garamond | Headings, display, lede |
--ff-serif |
EB Garamond | Body prose |
--ff-greek |
GFS Didot | Greek text, epigraphs |
--ff-sc |
Cormorant SC | Small caps: eyebrows, folios, labels |
--ff-mono |
JetBrains Mono | Code |
--ff-cjk |
Noto Serif SC | CJK body text |
Type scale uses clamp() with vi units for smooth interpolation from 375px to 1280px — 10 steps from --fs-xs (11px) to --fs-5xl (144px).
- Reading-first. Built for the long read, not the dashboard.
- Humanist. Drawn from a place — limestone, sea, olive, terracotta — not from a palette generator.
- Editorial. Footnotes, citations, margin notes, and a TOC rail are first-class.
- Restrained. Ten colors, five faces, no icon set. When in doubt, remove.
- Classical. Meander rules, Greek motto, old-style figures, real italics.
- Modern browsers with
clamp(),viunit, andcolor-mix()support get the full experience. - Every
color-mix()declaration has anrgba()fallback for older browsers. prefers-reduced-motionhonoured at the token layer — all durations fall to0ms.prefers-color-schemeauto-detected on first visit; manual toggle persisted tolocalStorage.- Print styles strip interactive chrome and surface footnotes inline.
The logo/ directory contains the canonical brand assets — 7 SVG variants, PNG exports, favicons, and a webmanifest template. See logo/README.md for construction specs and usage guidelines.
See CONTRIBUTING.md.
The book is a room. The reader is the guest. Nous is the quiet it depends on.