Design System
The visual language for mdit — built on the "Paper Engine" identity. Light-first, typographically confident, deliberately restrained.
Colors
A constrained palette built on the ink & paper principle. Opacity-based borders adapt to any surface. Accent blue is reserved for interactive elements.
Neutrals
#FFFFFF white #FAFAFA zinc-50 #F4F4F5 zinc-100 #E4E4E7 zinc-200 #D4D4D8 zinc-300 #A1A1AA zinc-400 #71717A zinc-500 #3F3F46 zinc-700 #27272A zinc-800 #18181B zinc-850 #111113 zinc-900 #09090B zinc-950 Accent — Blue
#EFF6FF blue-50 #DBEAFE blue-100 #BFDBFE blue-200 #60A5FA blue-400 #3B82F6 blue-500 #2563EB blue-600 #1D4ED8 blue-700 #1E40AF blue-800 Feedback
#EF4444 red-500 #FEF2F2 red-50 #F59E0B amber-500 #FFFBEB amber-50 #22C55E green-500 #F0FDF4 green-50 Semantic Tokens (Live)
--color-bg / --color-text --color-bg-surface --color-bg-muted --color-accent --color-bg-inverse --color-accent-subtle Typography
Geist Sans for UI, Geist Mono for brand and code. Type does the work that chrome usually does — oversized headlines, tight tracking, deliberate weight contrast.
Type Scale
xs
Markdown, powered up.
sm
Markdown, powered up.
base
Markdown, powered up.
lg
Markdown, powered up.
xl
Markdown, powered up.
2xl
Markdown, powered up.
3xl
Markdown, powered up.
4xl
Markdown, powered up.
5xl
Markdown, powered up.
6xl
Markdown, powered up.
Heading Hierarchy
Hero Markdown, powered up.
H1 Page heading
H2 Section heading
H3 Subsection heading
H4 Small heading
Body & Code
Lead paragraph — mdit turns plain markdown into rich, interactive content with a single line of syntax.
Body text — Write one line of markdown syntax and it renders into charts, cards, diagrams, videos. No build step, no framework, just URLs that render. Works anywhere markdown works.
Secondary text — Used for supporting information, descriptions, and metadata.
Inline code: mdit.run/chart?type=bar


 Font Families
abcdefghijklmnopqrstuvwxyz
0123456789
abcdefghijklmnopqrstuvwxyz
0123456789
Spacing
4px base unit. Generous whitespace — content breathes. When in doubt, go larger.
Scale
--space-1 4px --space-2 8px --space-3 12px --space-4 16px --space-6 24px --space-8 32px --space-12 48px --space-16 64px --space-24 96px --space-32 128px Border Radius
sm 4px md 6px lg 8px xl 12px 2xl 16px full 9999px Elevation & Surfaces
Paper-inspired depth. Shadows whisper, borders are pencil-thin. Surfaces stack like sheets of paper on a desk.
Surfaces
--color-bg --color-bg-surface --color-bg-muted --color-bg-inverse Shadow Scale
--shadow-xs Interactive rest --shadow-sm Cards, panels --shadow-md Dropdowns, popovers --shadow-lg Modals, dialogs --shadow-xl Floating elements Borders
--color-border Default (0.08 opacity) --color-border-strong Strong (0.15 opacity) --color-border-accent Accent (focus) Components
Core UI patterns built from the design tokens. Each component composition is defined by its surface, shadow, border, and radius.
Buttons
Cards
Default Card
Surface background, subtle border, light shadow. The standard container for grouped content.
Interactive Card
Hover to see the lift effect. Shadow deepens and card translates up 2px.
Inset Card
Muted background, no shadow. Used for nested or subordinate content areas.
Feature Card
Larger radius and padding. Used for marketing highlights and key features.
Inputs
Badges
Code Block
const widget = await mdit.render('chart', {
type: 'bar',
data: [10, 25, 15, 30],
// One line in. Rich visual out.
}); Toasts
Widget Output Card
Motion
Quick, purposeful, restrained. Every animation communicates a state change.
All motion respects prefers-reduced-motion.
Timing
--duration-fast 100ms Color, opacity, border --duration-normal 200ms Hover lifts, scale, focus --duration-moderate 300ms Dropdowns, panels --duration-slow 500ms Page transitions --duration-slower 600ms Logo animation Easing Curves
--ease-default Smooth deceleration --ease-in Accelerating exit --ease-out Decelerating enter --ease-bounce Overshoot settle --ease-spring Subtle spring Logo Animation
600ms reveal: letter m fades in (200ms),
down arrow draws (0–300ms), up arrow draws with bounce (300–600ms).
Iconography
The m↓↑ Transform Glyph is the brand mark.
Custom-drawn SVG arrows — never Unicode. UI icons use Lucide (24px, 1.5px stroke).
Logo Color Modes
Light (primary) Dark Mono Light Mono Dark Logo Sizing
40px — Minimum 80px — Nav 160px — Standard 320px — Hero Favicon
16px 32px 64px UI Icon Style
Lucide Icons — 24px grid, 1.5px stroke, round caps and joins.