2026-04-28 16:03:35 +08:00
<!doctype html>
< html lang = 'en' >
< head >
< meta charset = 'utf-8' />
< title > 71 Design Systems — cover</ title >
< link rel = 'preconnect' href = 'https://fonts.googleapis.com' >
< link rel = 'preconnect' href = 'https://fonts.gstatic.com' crossorigin >
< link href = 'https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,700;1,9..144,500;1,9..144,700&family=JetBrains+Mono:wght@400;500&family=Inter:wght@400;500&display=swap' rel = 'stylesheet' >
< style >
: root {
--surface : #d9c3bd ;
--surface-2 : #e6d2cc ;
--paper : #f5ecd9 ;
--paper-edge : #e8dcc4 ;
--ink : #1c1814 ;
--ink-soft : #4d4339 ;
--muted : #8a7e70 ;
--rule : #c8b9a1 ;
--accent : #c44a3a ;
--accent-2 : #d4593f ;
}
* { box-sizing : border-box ; }
html , body {
margin : 0 ;
padding : 0 ;
width : 1920 px ;
height : 1080 px ;
background : var ( -- surface );
color : var ( -- ink );
font-family : 'Inter' , - apple-system , system-ui , sans-serif ;
overflow : hidden ;
-webkit- font-smoothing : antialiased ;
-moz- osx-font-smoothing : grayscale ;
}
body {
background :
radial-gradient ( 1100 px 700 px at 28 % 12 % , var ( -- surface -2 ), transparent 70 % ),
radial-gradient ( 900 px 600 px at 88 % 90 % , #cab1aa , transparent 70 % ),
var ( -- surface );
padding : 60 px 80 px ;
display : flex ;
gap : 56 px ;
align-items : stretch ;
}
. page {
background : var ( -- paper );
flex : 1 ;
border-radius : 4 px ;
padding : 56 px 60 px ;
box-shadow :
0 0 0 1 px var ( -- paper - edge ),
0 30 px 60 px rgba ( 60 , 30 , 24 , 0.18 ),
0 8 px 22 px rgba ( 60 , 30 , 24 , 0.12 );
position : relative ;
display : flex ;
flex-direction : column ;
overflow : hidden ;
}
. page :: before {
content : '' ;
position : absolute ;
inset : 0 ;
pointer-events : none ;
background :
linear-gradient ( 180 deg , rgba ( 28 , 24 , 20 , 0.04 ), transparent 8 % , transparent 92 % , rgba ( 28 , 24 , 20 , 0.05 ));
}
. mono {
font-family : 'JetBrains Mono' , ui-monospace , monospace ;
font-size : 11 px ;
letter-spacing : 0.22 em ;
color : var ( -- muted );
text-transform : uppercase ;
}
. pageHead {
display : flex ;
justify-content : space-between ;
align-items : center ;
padding-bottom : 14 px ;
border-bottom : 1 px solid var ( -- rule );
}
. dot {
display : inline-block ;
width : 6 px ;
height : 6 px ;
border-radius : 50 % ;
background : var ( -- accent );
margin-right : 8 px ;
vertical-align : middle ;
transform : translateY ( -1 px );
}
/* ---------- LEFT (cover) page ---------- */
. cover h1 {
font-family : 'Fraunces' , serif ;
font-weight : 500 ;
font-size : 96 px ;
line-height : 0.94 ;
letter-spacing : -0.02 em ;
color : var ( -- ink );
margin : 64 px 0 32 px 0 ;
}
. cover h1 em {
font-style : italic ;
color : var ( -- accent );
font-weight : 500 ;
}
. cover . tagline {
font-family : 'Fraunces' , serif ;
font-style : italic ;
font-weight : 400 ;
font-size : 22 px ;
line-height : 1.45 ;
color : var ( -- ink - soft );
max-width : 480 px ;
margin : 0 0 36 px 0 ;
}
. byline {
font-family : 'JetBrains Mono' , monospace ;
font-size : 11 px ;
letter-spacing : 0.22 em ;
color : var ( -- muted );
text-transform : uppercase ;
padding : 14 px 0 ;
border-top : 1 px solid var ( -- rule );
border-bottom : 1 px solid var ( -- rule );
margin-bottom : 36 px ;
}
. stats {
display : grid ;
grid-template-columns : repeat ( 3 , 1 fr );
gap : 0 ;
margin-bottom : 44 px ;
}
. stats . cell { padding-right : 16 px ; }
. stats . cell + . cell { border-left : 1 px solid var ( -- rule ); padding-left : 24 px ; }
. stats . num {
font-family : 'Fraunces' , serif ;
font-weight : 500 ;
font-size : 64 px ;
line-height : 1 ;
color : var ( -- ink );
letter-spacing : -0.02 em ;
}
. stats . num em { font-style : italic ; color : var ( -- accent ); }
. stats . lbl {
margin-top : 10 px ;
font-family : 'JetBrains Mono' , monospace ;
font-size : 10 px ;
letter-spacing : 0.22 em ;
color : var ( -- muted );
text-transform : uppercase ;
line-height : 1.4 ;
}
. toc-title {
font-family : 'Fraunces' , serif ;
font-weight : 500 ;
font-size : 32 px ;
margin : 8 px 0 18 px 0 ;
color : var ( -- ink );
}
. toc-title em { font-style : italic ; color : var ( -- accent ); }
. toc {
display : flex ;
flex-direction : column ;
gap : 10 px ;
}
. toc-row {
display : flex ;
align-items : baseline ;
font-family : 'Fraunces' , serif ;
font-size : 17 px ;
color : var ( -- ink );
}
. toc-row . name { flex : 0 0 auto ; }
. toc-row . dots {
flex : 1 ;
border-bottom : 1 px dotted #b6a487 ;
margin : 0 10 px ;
transform : translateY ( -4 px );
}
. toc-row . pg {
font-family : 'JetBrains Mono' , monospace ;
font-size : 11 px ;
letter-spacing : 0.18 em ;
color : var ( -- muted );
}
. cover . footer {
margin-top : auto ;
display : flex ;
justify-content : space-between ;
border-top : 1 px solid var ( -- rule );
padding-top : 14 px ;
}
/* ---------- RIGHT (index) page ---------- */
. index . h2 {
font-family : 'Fraunces' , serif ;
font-weight : 500 ;
font-size : 56 px ;
line-height : 1 ;
letter-spacing : -0.02 em ;
color : var ( -- ink );
margin : 32 px 0 12 px 0 ;
}
. index . h2 em {
font-style : italic ;
color : var ( -- accent );
font-weight : 500 ;
}
. index . sub {
font-family : 'Fraunces' , serif ;
font-style : italic ;
font-weight : 400 ;
font-size : 18 px ;
color : var ( -- ink - soft );
line-height : 1.5 ;
max-width : 540 px ;
margin : 0 0 28 px 0 ;
}
. drop {
float : left ;
font-family : 'Fraunces' , serif ;
font-weight : 500 ;
font-size : 76 px ;
line-height : 0.85 ;
color : var ( -- accent );
margin : 8 px 12 px -4 px 0 ;
}
. drop + p {
font-family : 'Fraunces' , serif ;
font-size : 16 px ;
line-height : 1.5 ;
color : var ( -- ink - soft );
margin : 0 0 18 px 0 ;
}
. columns {
display : grid ;
grid-template-columns : 1 fr 1 fr ;
column-gap : 36 px ;
row-gap : 6 px ;
margin : 18 px 0 12 px 0 ;
border-top : 1 px solid var ( -- rule );
border-bottom : 1 px solid var ( -- rule );
padding : 14 px 0 ;
}
. item {
display : grid ;
grid-template-columns : 26 px 1 fr auto ;
align-items : baseline ;
gap : 10 px ;
padding : 6 px 0 ;
font-family : 'Fraunces' , serif ;
font-size : 16 px ;
color : var ( -- ink );
}
. item . n {
font-family : 'JetBrains Mono' , monospace ;
font-size : 11 px ;
letter-spacing : 0.12 em ;
color : var ( -- muted );
}
. item . swatch {
width : 14 px ;
height : 14 px ;
border-radius : 3 px ;
display : inline-block ;
transform : translateY ( 2 px );
margin-right : 6 px ;
box-shadow : 0 0 0 1 px rgba ( 0 , 0 , 0 , 0.08 ) inset ;
}
. item . name { font-weight : 500 ; }
. item . tag {
font-family : 'JetBrains Mono' , monospace ;
font-size : 10 px ;
letter-spacing : 0.16 em ;
text-transform : uppercase ;
color : var ( -- muted );
}
. item . featured . name { color : var ( -- accent ); font-style : italic ; }
. spotlight {
display : grid ;
grid-template-columns : 110 px 1 fr ;
gap : 18 px ;
align-items : center ;
background : #f0e3c8 ;
border : 1 px solid var ( -- rule );
border-radius : 6 px ;
padding : 18 px 20 px ;
margin-top : 18 px ;
}
. spotlight . swatches {
display : grid ;
grid-template-columns : repeat ( 2 , 1 fr );
gap : 6 px ;
}
. spotlight . sw {
height : 28 px ;
border-radius : 4 px ;
box-shadow : 0 0 0 1 px rgba ( 0 , 0 , 0 , 0.06 ) inset ;
}
. spotlight . label {
font-family : 'JetBrains Mono' , monospace ;
font-size : 10 px ;
letter-spacing : 0.18 em ;
color : var ( -- muted );
text-transform : uppercase ;
margin-bottom : 4 px ;
}
. spotlight h3 {
font-family : 'Fraunces' , serif ;
font-weight : 500 ;
font-style : italic ;
font-size : 22 px ;
margin : 0 0 6 px 0 ;
color : var ( -- ink );
}
. spotlight h3 em { color : var ( -- accent ); }
. spotlight p {
font-family : 'Fraunces' , serif ;
font-size : 14 px ;
line-height : 1.5 ;
color : var ( -- ink - soft );
margin : 0 ;
}
. index . footer {
margin-top : auto ;
display : flex ;
justify-content : space-between ;
border-top : 1 px solid var ( -- rule );
padding-top : 14 px ;
}
. stamp {
position : absolute ;
top : 56 px ;
right : 56 px ;
width : 88 px ;
height : 88 px ;
border-radius : 50 % ;
background : var ( -- accent );
color : #fff5e9 ;
display : flex ;
align-items : center ;
justify-content : center ;
text-align : center ;
transform : rotate ( 8 deg );
font-family : 'Fraunces' , serif ;
font-weight : 500 ;
font-style : italic ;
font-size : 13 px ;
line-height : 1.15 ;
box-shadow : 0 12 px 28 px rgba ( 196 , 74 , 58 , 0.35 );
z-index : 2 ;
}
</ style >
</ head >
< body >
<!-- LEFT PAGE: cover -->
< article class = 'page cover' >
< div class = 'pageHead' >
< div class = 'mono' >< span class = 'dot' ></ span > Style & Format Guide for Designers</ div >
< div class = 'mono' > 2026 Edition</ div >
</ div >
< h1 > The < em > 71</ em >< br /> Systems< br /> Library.</ h1 >
< p class = 'tagline' >
Linear, Stripe, Vercel, Airbnb, Tesla, Notion, Anthropic, Apple, Cursor, Supabase, Figma —
seventy-one brand-grade systems, one open library, zero lock-in.
</ p >
2026-08-18 07:09:45 +00:00
< div class = 'byline' > By OpenDesign · Maintained on GitHub · 19 / 04 / 2026</ div >
2026-04-28 16:03:35 +08:00
< div class = 'stats' >
< div class = 'cell' >
< div class = 'num' > 71</ div >
< div class = 'lbl' > Design< br /> Systems</ div >
</ div >
< div class = 'cell' >
< div class = 'num' > 19</ div >
< div class = 'lbl' > Composable< br /> Skills</ div >
</ div >
< div class = 'cell' >
< div class = 'num' >< em > 1</ em ></ div >
< div class = 'lbl' > Library, zero< br /> vendor cloud</ div >
</ div >
</ div >
< h2 class = 'toc-title' > What's < em > inside</ em > .</ h2 >
< div class = 'toc' >
< div class = 'toc-row' >< span class = 'name' > Tokens, palettes, motion</ span >< span class = 'dots' ></ span >< span class = 'pg' > 04</ span ></ div >
< div class = 'toc-row' >< span class = 'name' > Pick a direction</ span >< span class = 'dots' ></ span >< span class = 'pg' > 12</ span ></ div >
< div class = 'toc-row' >< span class = 'name' > Tone & typography</ span >< span class = 'dots' ></ span >< span class = 'pg' > 18</ span ></ div >
< div class = 'toc-row' >< span class = 'name' > 71 systems index</ span >< span class = 'dots' ></ span >< span class = 'pg' > 24</ span ></ div >
< div class = 'toc-row' >< span class = 'name' > Bring-your-own-key</ span >< span class = 'dots' ></ span >< span class = 'pg' > 40</ span ></ div >
< div class = 'toc-row' >< span class = 'name' > The anti-AI-slop checklist</ span >< span class = 'dots' ></ span >< span class = 'pg' > 52</ span ></ div >
</ div >
< div class = 'footer' >
< div class = 'mono' > Tokens, palettes & type</ div >
< div class = 'mono' > 01 / 64</ div >
</ div >
</ article >
<!-- RIGHT PAGE: index -->
< article class = 'page index' >
< div class = 'pageHead' >
< div class = 'mono' >< span class = 'dot' ></ span > Chapter 02 · Index</ div >
< div class = 'mono' > 71 entries · A → Z</ div >
</ div >
< h2 class = 'h2' > All systems —< br />< em > one library.</ em ></ h2 >
< p class = 'sub' >
Every system ships a deterministic OKLch palette, a font stack, and a tone profile.
Pick one tile and the agent inherits the whole brand.
</ p >
< p >
< span class = 'drop' > S</ span >
eventy-one product systems, two hand-authored starters, five visual directions. Imported and curated
2026-08-18 07:09:45 +00:00
from awesome-design-md, hand-tuned for OpenDesign's discovery loop. Drop one in,
2026-04-28 16:03:35 +08:00
every artifact downstream changes accordingly — no model freestyle.
</ p >
< div class = 'columns' >
< div class = 'item featured' >
< span class = 'n' > 03</ span >
< span >< span class = 'swatch' style = 'background:#5e6ad2' ></ span >< span class = 'name' > Linear</ span ></ span >
< span class = 'tag' > · graphite · violet</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 07</ span >
< span >< span class = 'swatch' style = 'background:#635bff' ></ span >< span class = 'name' > Stripe</ span ></ span >
< span class = 'tag' > · payments · indigo</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 09</ span >
< span >< span class = 'swatch' style = 'background:#000000' ></ span >< span class = 'name' > Vercel</ span ></ span >
< span class = 'tag' > · void · grayscale</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 14</ span >
< span >< span class = 'swatch' style = 'background:#ff385c' ></ span >< span class = 'name' > Airbnb</ span ></ span >
< span class = 'tag' > · rausch · rounded</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 18</ span >
< span >< span class = 'swatch' style = 'background:#cc0000' ></ span >< span class = 'name' > Tesla</ span ></ span >
< span class = 'tag' > · red · industrial</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 22</ span >
< span >< span class = 'swatch' style = 'background:#000000' ></ span >< span class = 'name' > Notion</ span ></ span >
< span class = 'tag' > · paper · serif</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 27</ span >
< span >< span class = 'swatch' style = 'background:#cc785c' ></ span >< span class = 'name' > Anthropic</ span ></ span >
< span class = 'tag' > · clay · serif</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 31</ span >
< span >< span class = 'swatch' style = 'background:#a8a8a8' ></ span >< span class = 'name' > Apple</ span ></ span >
< span class = 'tag' > · chrome · sf pro</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 34</ span >
< span >< span class = 'swatch' style = 'background:#1a1a1a' ></ span >< span class = 'name' > Cursor</ span ></ span >
< span class = 'tag' > · terminal · mono</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 41</ span >
< span >< span class = 'swatch' style = 'background:#3ecf8e' ></ span >< span class = 'name' > Supabase</ span ></ span >
< span class = 'tag' > · emerald · rounded</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 48</ span >
< span >< span class = 'swatch' style = 'background:#0acf83' ></ span >< span class = 'name' > Figma</ span ></ span >
< span class = 'tag' > · spectrum · canvas</ span >
</ div >
< div class = 'item' >
< span class = 'n' > 57</ span >
< span >< span class = 'swatch' style = 'background:#000000' ></ span >< span class = 'name' > OpenAI</ span ></ span >
< span class = 'tag' > · void · sober</ span >
</ div >
</ div >
< div class = 'spotlight' >
< div class = 'swatches' >
< span class = 'sw' style = 'background:#1c1816' ></ span >
< span class = 'sw' style = 'background:#5e6ad2' ></ span >
< span class = 'sw' style = 'background:#9b9bd6' ></ span >
< span class = 'sw' style = 'background:#f3ead8' ></ span >
</ div >
< div >
< div class = 'label' > Spotlight · Linear · 03 / 71</ div >
< h3 > Graphite + electric < em > violet.</ em ></ h3 >
< p > IBM Plex Sans · Inter Display · 4-step OKLch palette · 16/24 grid · square radius. The agent inherits the full token tree the moment you tap the tile.</ p >
</ div >
</ div >
< div class = 'footer' >
< div class = 'mono' > Chapter 02 · Index</ div >
< div class = 'mono' > 24 / 64</ div >
</ div >
< div class = 'stamp' >< span > 71< br /> SYSTEMS</ span ></ div >
</ article >
</ body >
</ html >