SAINT SEOUL · Type Lab
Rate every card: keep / maybe / drop, add notes, then export picks to hand the JSON back to Claude. Ratings persist in this browser (localStorage).
1Current family · as it renders today
Measured: 83 glyphs (Latin A–Z a–z, digits, basic punctuation · no Hangul, no accents beyond Æ ß æ œ), UPM 1000, cap-height 700, x-height 450 (64% of cap = low, elegant, fashion-editorial), ascent 985 / descent −215, GPOS kerning present. Metadata bug: italic files have italicAngle 0 and wrong style flags, so some apps will treat italics as upright.
2Tweak lab · systematic CSS-level adjustments
Each card changes exactly one variable against the current Black-weight wordmark, so a “keep” is an unambiguous instruction. The recipe line under each sample is the exact CSS to adopt. These tweaks are legal on any licensed font because the files aren’t touched.
Lockups (multi-variable compositions)
Stacked wordmark
SEOUL
weight 900 · line-height .92 · tracking .028em (logo-tight)
Square footprint → works as an app-icon / spine / stamp block.
Hairline spaced caps
weight 250 · tracking .252em (logo-tight)
Perfume-house register. Strong on photo covers; fragile at small sizes.
Weight-contrast pair
SAINT @250 + SEOUL @900, same size · logo-tight (−.02em / word −.05em)
One-font hierarchy trick: the holy word whispers, the city shouts.
Interpunct divider
U+00B7 middle dot · tracking .076em (logo-tight) · weight 700
Already used in repo docs (“세인트 서울 · SAINT SEOUL”) · carries the house style into the mark itself.
Bilingual lockup
Latin @900 + Noto Serif KR @600, Hangul tracked to match Latin width
Hangul as the quiet subtitle; tracking-matched widths make it a single object.
SS monogram
Black @ tracking −.068em logo-tight (overlap candidates: mirror one S, interlock)
Seal for spine bottoms, back-cover QR block, foil stamp, favicon.
3Logo marks · the cross experiments
Two tiers. Overlay tier: the cross/halo is drawn over live text, works with the current look, and is what a designer would refine in vector. Real-font tier: the cross is cut into the O's outlines of an actual font file (base: Playfair Display Black, open-licensed, so the modified file is fully ours) — regenerate anytime with python3 make_logo_font.py <base.ttf>. A note on the S: a cross through an S reads as a currency sign ($) at small sizes, so the strongest hosts are the O (window/halo) and the T of SAINT (already cross-shaped).
Overlay tier — current family
Greek cross in the O
cross floats in the counter · arms ≈ hairline width
The O becomes a rose window. Reads at large sizes; at favicon size the counter fills in, so keep a plain-O fallback.
Halo over the O
ellipse ring floated above the O · stroke ≈ hairline
SAINT said without a cross: the halo. Warmer, less liturgical, very merch-able.
The T of SAINT as a cross
T swapped for a Latin cross at cap height (bar at 1/3 from top)
The word already contains the symbol. Final version needs the cross drawn with the font's own serifs/flare so it belongs to the letterforms.
Orb & cross O
small cross rising from the top of the O (globus cruciger)
Royal-orb reference: the world surmounted by the cross. Subtler than cutting into the counter.
Real-font tier — modified outlines, fully ownable (OFL base)
CrossO cut
variants/SaintSeoulLogoCrossO.ttf · floating Greek cross in the counter
This is a real font: type anything, the O carries the mark everywhere.
WheelO cut
variants/SaintSeoulLogoWheelO.ttf · arms welded to the ring (consecration cross)
Sturdier than the floating cross; survives smaller sizes before filling in.
OrbO cut
variants/SaintSeoulLogoOrbO.ttf · cross grows from the top of the O
Counter stays clean, silhouette changes: recognizable even in tiny print.
4Alternative foundations · open-licensed, legally modifiable
Every face below is SIL OFL: it can be renamed “Saint Seoul Serif”, modified at the outline level, embedded in PDFs and sold · no fees. This is the same move as the in-house translation: own the asset. Compare each wordmark directly against Silk Serif above.
Fraunces · live axis playground (the “systematic tweak” model)
This is what a proper design-variation system feels like: continuous axes instead of 14 frozen files. If the rebuild path is chosen, the goal is a variable “Saint Seoul Serif” where weight/optical-size/softness are sliders like these. Find a setting you love → note the numbers → gen_variants.py freezes it into a named static font.
5Korean pairing · the wordmark never lives alone
The books are Korean; the Latin display face must sit next to a Hangul 명조/바탕. Test: does the Hangul’s stroke contrast agree with the Latin’s? All four below are free for commercial use.
6Design ideas backlog · rate what to pursue
Grounded in what makes brand serifs work (high stroke contrast = premium/editorial; consistency across touchpoints; distinctive detail used sparingly). Each is a concrete work item, ordered roughly cheap → expensive.