Design System

The Liminal Aesthetic. Liminal UI exists in the space between states — a threshold design language built on soft gradients, frosted glass, transitory animations, and the quiet geometry of doors and windows.

Foundations

Six Liminal Principles

01Structure

Threshold

Every surface is a passage. Borders and frames act as doorways — never decorative, always purposeful.

02Surfaces

Translucency

Transparency reveals depth without exposing everything. Frosted glass creates layered space.

03Color

Gradient

Color transitions slowly, never sharply. Gradients suggest movement between states, light, and atmosphere.

04Motion

Stillness

Animations are transitory and subtle. Motion marks change without demanding attention.

05Layout

Space

Empty space is not absence — it is field. Generous spacing preserves the liminal sense of passage.

AaLabel
06Typography

Legibility

Typography is clear and unhurried. Monospaced labels ground the system; display text opens it.

Color

Semantic Palette

All colors use oklch for perceptual uniformity. Tokens adapt automatically between light and dark modes.

Semantic tokens

Background

Page and surface base

Foreground

Primary text and icons

Primary

Brand accent, interactive focus

Primary Foreground

Text on primary surfaces

Muted

Subtle background areas

Muted Foreground

Subdued labels and hints

Card

Elevated surface background

Border

Lines, dividers, frames

Accent

Secondary highlight color

Ring

Focus indicator ring

Destructive

Error and danger states

Light oklch light values

Typography

Type System

Geist Sans — Display

Aa Bb Cc
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Used for headlines, titles, and expressive text. Large tracking at big sizes, tight at small.

.font-displayvar(--font-geist-sans)

Geist Mono — UI & Labels

Aa Bb Cc
ABCDEFGHIJKLMNOPQRSTUVWXYZ

Used for labels, metadata, code, and interface copy. Uppercase with wide tracking.

.font-ibmvar(--font-geist-mono)

Type scale

Display XL
Liminal
Display L
Threshold
Display M
Design System
Heading
Color & Form
Subheading
Foundations
Body
Liminal spaces exist between defined states.
Label
SYSTEM LABEL

Spacing

Space & Layout

Space is not emptiness — it is field. Every gap is a threshold between elements.

Base unit: 4px (0.25rem)

Spacing scale

1
0.25rem (4px)
2
0.5rem (8px)
3
0.75rem (12px)
4
1rem (16px)
5
1.25rem (20px)
6
1.5rem (24px)
8
2rem (32px)
10
2.5rem (40px)
12
3rem (48px)
16
4rem (64px)
20
5rem (80px)
24
6rem (96px)

Container system

max-w-[1440px] with border-x creates a contained editorial frame — like a window into the content.

Threshold
max-w-[1440px]

Space is not emptiness — it is field. Every gap is a threshold between elements.

Glass & Transparency

Frosted Glass

Translucency reveals layers. Glass surfaces use backdrop-blur and alpha channels to create depth without opacity.

Blur intensity16px
0px40px
Surface opacity70%
0%100%

CSS

backdrop-filter: blur(16px);
background: color-mix(
  in oklab,
  var(--background) 70%,
  transparent
);
/* + noise overlay */

Glass surface

Liminal UI

Frosted glass creates depth through translucency — layers of meaning without opacity.

Usage examples

Navigation header

bg-background/70
backdrop-blur-md

Code block

code-mix(bg, 72%)
backdrop-blur(16px)
+ noise overlay

Modal / Overlay

bg-background/80
backdrop-blur-lg

Gradients

Liminal Gradients

Color does not stop — it transitions. Gradients suggest atmosphere, light, and the passage between states.

Background fade

bg-gradient-to-t
from-background
to-transparent

Primary sweep

linear-gradient(
  90deg,
  var(--primary),
  transparent
)

Radial glow

radial-gradient(
  circle,
  primary 0%,
  transparent 70%
)

Portal depth

radial-gradient(
  ellipse 50% 40%
  at 50% 100%,
  background 0%,
  transparent
)

Edge fade (horizontal)

mask: linear-gradient(
  to right,
  transparent,
  black 10%,
  black 90%,
  transparent
)

Edge fade (vertical)

mask: linear-gradient(
  to bottom,
  transparent,
  black 10%,
  black 90%,
  transparent
)

Lamp cone

radial-gradient(
  ellipse 80% 50%
  at 50% 0%,
  amber 0%,
  transparent 72%
)

Atmospheric mist

linear-gradient(
  135deg,
  primary 8%,
  transparent,
  accent 8%
)

Color does not stop — it transitions. Gradients suggest atmosphere, light, and the passage between states.

Motion

Transitory Animations

Motion in Liminal UI marks change without demanding attention. Animations are subtle, purposeful, and transitory.

Liminal principle: animations reveal rather than entertain. Never loop unless the element is inherently alive.

Entry

Reveal Up

.animate-reveal-up

Fade in from below — for content appearing on scroll

Counter In

.animate-counter-in

Scale and fade — for numeric or metric displays

Ambient

Float Geo

.animate-float-geo

Slow vertical float with slight rotation — for decorative elements

Pulse Glow

.animate-pulse-glow

Breathing glow pulse — for live indicators

Lamp Flicker

Subtle opacity variation — simulates warm light atmosphere

Interface
$run

Terminal Blink

.animate-terminal-blink

Cursor blink — for code and terminal interfaces

Scan Line

Vertical scan across surfaces — subtle CRT reference

Glitch

.animate-glitch-1

Clip-path distortion — for error or transition states

Borders & Form

Blocks, Doors & Windows

Liminal UI uses square geometry by default. Borders are structural — they frame passages, not just content.

Border radius

CSS

border-radius: 0px;
Element
Button pair
Action
More
Badge
NewBeta
Portal frame
Portal frame
Window panel
Header

Shared borders

One
Two
Three

-ml-px / -mt-px — shared border technique avoids double borders

Iconography

Icon System

Icons are from Lucide React — thin stroke, geometric, and minimal. They support the liminal aesthetic without decoration.

Icon sizes

12px
16px
20px
24px
32px

Stroke width

1
1.5
2
2.5

Default: strokeWidth=2 (Lucide default)

Icons should never draw attention to themselves. They label, indicate, and guide — nothing more.

Navigation
Menu
X
ChevronRight
ArrowRight
ArrowLeft
ExternalLink
Interface
Search
Settings
Plus
Minus
Eye
EyeOff
Status
Check
CheckCircle
AlertCircle
Info
XCircle
Sparkles
Actions
Copy
Play
RotateCcw
Github
Globe
Mail
Theme
Moon
Sun
Palette
Layers
Box
Frame
Content
Type
Tag
User
Calendar
Clock
Zap

In context

Search documentationCtrl+K
New
Stable