About kongli.sh
A tour through all 11,172 Hangul syllables.
Why 11,172?
Modern Hangul composes a syllable from up to three slots:
- Initial (초성 / choseong) — one of 19 leading consonants, including the silent ㅇ.
- Medial (중성 / jungseong) — one of 21 vowels (simple and compound).
- Final (종성 / jongseong) — one of 27 trailing consonants or none at all, giving 28 options.
Every slot combination produces a valid, well-formed syllable block:
19 × 21 × 28 = 11,172
That is exactly the count of the Hangul Syllables Unicode block (U+AC00–U+D7A3). No gaps, no reserved code points, no surprises.
How they're ordered
Unicode lays the block out in lexicographic (L, V, T) order. Given indices l ∈ [0, 19), v ∈ [0, 21), t ∈ [0, 28), the code point is:
U+AC00 + (l × 588) + (v × 28) + t
where 588 = 21 × 28 is the number of syllables that share a leading consonant. It's a straight mixed-radix encoding, which is why so many operations on Hangul reduce to integer arithmetic:
- Decomposing a syllable into its jamo → successive division and modulo by 588 and 28.
- "Next syllable with the same initial" → add 1, clamp at 588.
- "Same initial and vowel, different final" → t cycles 0–27.
The arrow keys, PageUp / PageDown, and Home / End on the main page all map directly to these arithmetic steps.
What about the jamo blocks?
Hangul in Unicode is split across several blocks. kongli.sh only scrolls through Hangul Syllables; the other blocks appear as the decomposition pieces shown under the big syllable:
- Hangul Jamo (U+1100–U+11FF) — the conjoining jamo used to compose syllables algorithmically.
- Hangul Compatibility Jamo (U+3130–U+318F) — standalone jamo for display, legacy compatibility, and what you usually see on Korean keyboards.
- Hangul Jamo Extended-A / B — rare historical letters, out of scope here.
The 11,172 precomposed syllables are canonically equivalent to their conjoining-jamo decompositions (NFD), which is handy: you can paste a syllable into almost any text processor and split it via standard Unicode normalization.
What this site does
kongli.sh is a single static page that lets you scroll, jump, search, and bookmark across the whole block; see romanization and encodings for each syllable; and lock one or more jamo slots to restrict navigation to a filtered subset. Everything runs in the browser — no backend, no accounts, no tracking. See Privacy for details.
Bookmark kongli.sh/today for a deterministic Hangul syllable that changes every UTC day.
Source: github.com/vreid/kongli.sh.