Forme

A design system for long-form content. Named after the French word for shape—and the locked type in its frame, ready for impression.

Most publishing platforms optimize for engagement metrics, not reading. The result is a web full of sites that feel like apps—clean, minimal, frictionless—but somehow exhausting to spend time in.

Forme goes the other direction. It borrows from print: serif text for body copy, generous margins, subtle paper textures, the kind of small details that make a well-made book feel different from a PDF. The goal isn't nostalgia—it's comfort. A place you can read for twenty minutes without your eyes asking for a break.

This is my point of view on design: warmth over minimalism, craft over convention, and the belief that how something feels to use is as important as what it does.

Mark

The Ring mark—circle minus circle. Continuity, cycle, focus.

Ring Used as favicon and brand mark across the site.

Colors

Core Palette

Primary --color-primary
Secondary --color-secondary
Link --color-link
Link Hover --color-link-hover

Text

Text --color-text
Text Light --color-text-light
Text Lighter --color-text-lighter

Backgrounds

Background --color-bg
Background Subtle --color-bg-subtle
Border --color-border

Highlights

Engineering --highlight-engineering
AI --highlight-ai
Domain --highlight-domain

Typography

Families
Literata — The quick brown fox jumps over the lazy dog
--font-serif
Inter — The quick brown fox jumps over the lazy dog
--font-sans
Fira Code — The quick brown fox jumps over the lazy dog
--font-mono
Scale
3XL --font-size-3xl
Page Title
2XL --font-size-2xl
Section Heading
XL --font-size-xl
Subsection Heading
LG --font-size-lg
Large Body Text
MD --font-size-md
Medium Body Text
Base --font-size-base
Base Body Text
SM --font-size-sm
Small Text / Captions
XS --font-size-xs
Extra Small / Labels
Measure

Line length for comfortable reading—roughly 65-75 characters per line.

max-width: 42rem current: 672px (42rem)

Spacing & Radius

Spacing
--space-1
--space-2
--space-3
--space-4
--space-5
--space-6
Radius
--radius-sm
--radius-md
--radius-lg
--radius-full

Shadows

--shadow-sm
--shadow-md
--shadow-lg

Components

Audio Player
Article Title
2:34
7:12
Buttons
With Icon
Promo
Cards

Card Title

Jan 15, 2025

Card body text.

Bordered

With border.

Subtle

Subtle bg.

Flat Card (list item)

December 12, 2024

No background, used for blog post lists.

Cards (Link)
Chips
Info
Info
Labels
Default Prototyping Implemented Archived Info
Filter Status
Showing 5 posts in "AI & Technology"
Highlights
Skills in engineering Focus on AI Deep domain knowledge
Icon Buttons
Icons

24px — Experiments

Zen (Hygge)
Journal (mmx)
Checkerboard
Heart-Shield
Book
Forme

24px — Manifesto Candidates

Satellite
Rocket
Compass

16px — Media Indicators

Video
Audio

16px — Theme States

Light
Dark
System

Size Scaling

12px
16px
20px
24px
32px
Inputs
Links
Notice
No posts match the current filter.
Warning: This action cannot be undone.
Successfully saved your changes.
Foldable
Default foldable

Body content inside the default foldable. No icon badge, border-color accent line.

Diagnostic variant

Surfaces a question or tension worth examining. Uses △ icon badge.

Resistance variant

Acknowledges a common objection or pushback. Uses ⚡ icon badge.

Practice variant

Concrete practice or ritual to try. Uses ⚙ icon badge.

Pillar Tabs

Concrete practices and rituals. This tab is shown by default.

  • First practice item
  • Second practice item
Page Headers
← Back to list

Article Title

Role at Company January 15, 2025

Key outcome: Summary of the impact or result.

Experiment Title

A hypothesis about what the market gets wrong.

Tech: React · TypeScript · Node.js

Popover

Positions

Interactions

Structured Content

Without Arrow

Quote

"The best code is no code at all."

Rich Hickey
Related Box
Results List
Found 3 related articles
Skeletons

Prose

Article content uses .ds-post-article with .ds-post-header and .ds-post-content. H2 headings are auto-numbered.

← Back to the list of articles

Understanding Typography in Digital Design

January 15, 2025 · Co-authored with Claude 3.5 Sonnet

  • Typography
  • Design Systems
  • CSS

First Section with Counter

Body text is set in Literata at the base size, designed for extended reading on screens. The measure is kept to 70ch for optimal reading flow. Notice how inline links are styled with weight rather than underlines, and strong text uses semibold weight while emphasized text remains italic.

Subsection Heading

H3 headings introduce subsections without numbering. They use the sans-serif stack at a slightly larger size than body text, creating clear hierarchy without overwhelming the page.

Minor Heading

H4 headings are the same size as body text but use sans-serif and semibold weight, useful for introducing smaller sections or labeling content.

Lists and Structure

Unordered lists use disc markers with comfortable spacing:

  • First item in an unordered list
  • Second item with more text to demonstrate how longer content wraps naturally within the list item structure
  • Third item with a nested list:
    • Nested item one
    • Nested item two

Ordered lists use decimal numbering:

  1. First numbered item
  2. Second numbered item
  3. Third numbered item

Blockquotes and Code

Blockquotes are styled with a left border and italic text. They stand apart from body text while maintaining the overall typographic rhythm of the page.

Inline code like const x = 42 uses the monospace font with a subtle background. Code blocks have syntax highlighting:

function greet(name: string): string {
  // This is a comment
  const greeting = `Hello, ${name}!`;
  return greeting;
}

Tables and Data

Tables use the sans-serif font at a smaller size for data density:

Property Value Description
font-size 16px Base text size for comfortable reading
line-height 1.7 Relaxed leading for long-form content
max-width 70ch Optimal measure for readability

Definition Lists

Forme
The locked type in its frame, ready for impression. The name of this design system.
Measure
The length of a line of text, typically expressed in characters. 60–75ch is optimal for body text.
Leading
The vertical space between lines of text, named for the lead strips used in letterpress.

Horizontal rules provide visual separation between major sections. They use a single pixel border in the standard border color.

Footnotes

Footnotes appear as superscript numbers that reveal content in a drawer at the bottom of the screen when clicked. This keeps readers in context while providing additional detail.

Footnote Drawer

Footnotes

Click a footnote reference to see the drawer: This is sample text with a footnote that provides additional context. Here's another reference for demonstration.

<button class="ds-footnote-ref" data-footnote="1">1</button>
1

Footnote content will appear here.