dani.korea Taegeuk 1.0.0

Taegeuk — the dani.korea design system

Two accents taken exactly from the 태극기, Manrope and DM Mono, and photography that leads every page it can. dani.korea left DDS on 5 August 2026: where the shared system says 4px radii, no pills, no shadows and no motion, this one specifies 20px cards, pill buttons, soft elevation and full-bleed photographs. Blue is structure. Red is a date or a danger, and nothing else.

Start here
Colour

The accent is the flag

Two accents, taken exactly from the national flag, each with one job. Every filled shape is the exact flag colour in both modes — no tonal mapping, no per-mode tuning.

Flag Blue
Navigation, primary buttons, progress, structure. Everything that is not a date or a danger.
#0047A0on_blue #FFFFFF
Flag Red
A date, or a danger. Overdue, due-soon, not-yet-filed — and the drawn subject that can hurt you.
#CD2E3Aon_red #FFFFFF
blue_text is the only deviation from the exact flag values, and it is measured. Blue as thin text on the dark background measures 2.41:1 — unreadable — so it lifts to #3D7BD9 there and only there. Fills never lift.
PairContrastVerdict
#FFFFFF on #0047A08.6:1Exact flag blue, both modes
#FFFFFF on #CD2E3A5.2:1Exact flag red, both modes
#CD2E3A as text on #0D11173.66:1Needs no lift anywhere
#0047A0 as text on #0D11172.41:1Unreadable → #3D7BD9 at 4.55:1
#000080 as text on #0000001.31:1Dot Navy, the precedent this fixes
The Dot Navy row is why the lift is written down rather than discovered twice. Do not "fix" blue_text back to #0047A0.

Red has two senses, and they never share a shape

A red that means everything means nothing. Red is a date, or red is a danger — and the two are told apart by shape, not by hue.

Sense 1 · a date
D-4 visa application DUE IN 3 DAYS
A 2px red border on a red_soft container. The only 2px border in the system.
Sense 2 · a danger
! Ginkgo nuts, raw Toxic in quantity — a drawn subject
A filled red circle on a neutral row. Never a border, never a container.
Never red: emphasis · branding · expense · a rule you have broken · a destructive action that is neither time-bound nor dangerous · and never a confidence state, because a missing fact is neither a date nor a danger.

A cool neutral base, not pure black

Pure black under full-bleed photography makes a hard seam at every image edge, and a cool neutral sits with flag blue where a warm one fights it. Light mode is not an inversion — borders carry depth on light, soft elevation carries it on dark.

bg
surface
surface_2
border
text_3
text_2
text
blue_soft
red_soft
Nine tokens, both modes. blue_soft and red_soft are tinted, not tonal-mapped — they are the container fills behind summary blocks and urgent rows. This strip is live: switch your system theme and every value here moves with it.

Confidence is icon and word, not hue

Coverage of Korean venue data is partial and always will be, so "we don't know" is the most common state in the product. It has to look deliberate rather than broken.

✓ Verified Checked 12 days ago Hours unknown Conflicts with Day 3
A dash reads as "left open" where a solid edge reads as "filled in." stale carries a date in DM Mono, because "checked 12 days ago" is a different claim from "unknown". blocking is allowed the flag red only because a blocking conflict is by definition time-bound. Verified green — #12855A light, #4ADE80 dark — is the one colour added back.
Type

Manrope for reading, DM Mono for copying

Chosen 5 August 2026 from four candidates shown side by side. Space Grotesk and Space Mono are retired.

display · 34 · 700
Korea, planned before you fly.
display_sm · 27 · 700
Spring in Seoul
title · 25 · 700
Gwangjang Market (광장시장)
heading · 18 · 700
Before you fly
body · 14 · 400/600
File the K-ETA at least 72 hours before departure.
body_sm · 12.5 · 400
Approval is usually same-day, but the guidance is 72 hours.
label · 10.5 · 700
Readiness
data · 12 · 500 · DM Mono
M12345678 · PNR 7XQ4LP · ₩48,500 · 15 Nov 2025 (Sat)
amount · 34 · 700
72%
Display weight is capped at 700, tracking −0.3px, leading 1.16. The rejected proposal used 900 at −1.6px and 0.94, and the three compound: 0.94 leading on a 900 weight makes descenders touch the next line's caps. Every ID, PNR, price, date and confirmation number is DM Mono with tabular figures — those are read character by character, or copied.
Shape & depth

This is where Taegeuk reverses DDS

DDS says 4px radii, no pills, no circles and no shadows, ever. All four are struck here — deliberately, and only for dani.korea. The shared token files were not edited.

20px
cards
18px
tasks, doc rows
16px
buttons, photo tiles
22px
hero
pill
tags, chips
40px
frames
Radii. The 4px grid underneath is unchanged: xs 4 · sm 8 · md 12 · lg 16 · xl 20 · xxl 24, with screen padding 20, card padding 17, card gap 9 and section gap 23.
Borders: hairline 1px is the default, 1.5px on secondary buttons, and the only 2px in the system is a red urgent border. Elevation is soft and low — 0 10px 28px rgba(15,35,70,.10) on light, 0 14px 36px rgba(0,0,0,.55) on dark — used on the frame and on nothing inside it. Every specimen card on this page carries it, so you are looking at the real shadow.
Foundations · 26 cards

The inventory

Each one is a standalone specimen page rendered in both modes, the way /dds/guidelines/ works.

Colour · 6
Type · 6
Brand · 3
Spacing, shape & depth · 5
Imagery · 3
Motion & accessibility · 3
Components · 4 groups
Screens & specification
Platform mirrors
One thing this system states on its face rather than hiding: §9.1 leaves three pairs in the approved palette measuring under AA. That is open, and it is Ted's call — so the accessibility card carries the three ratios rather than quietly rounding them up.