han · 韓 · 一
hangul.dev a scholar's glass pavilion
U+D55C · SEJONG · MCDXLIII · 28 JAMO
01 자모 Jamo — the Atomic Letters

The Five Speech-Organ Consonants

Hangul was designed, not inherited. In 1443, King Sejong's scholars mapped each basic consonant to the shape of the organ that produces its sound — the tongue, the teeth, the throat, the lips, the molar.

From five root shapes, the entire consonant inventory was derived by the addition of strokes, each new line representing an intensification of aspiration or voicing. The system is not alphabetic in the Greek sense; it is featural — the letterforms encode the phonetics of their own pronunciation.

Giyeok velar — the root of the tongue touching the soft palate
Nieun alveolar — the tongue tip resting against the ridge
Mieum bilabial — the closed square of the lips
Siot dental — the edge of the incisors, a sibilant wedge
Ieung glottal — the open throat, a circle of breath
01 · stroke 02 · organ ghost
02 음절 Syllable — the Assembled Block

Three Chambers in a Single Glyph

Unlike the linear stream of Latin type, Hangul reassembles its jamo into square syllable blocks — chosong (initial), jungseong (medial), jongseong (final) — like three ink strokes stacked inside a single pane.

Eleven thousand one hundred and seventy-two possible blocks fit inside a single Unicode range. Each one a miniature architectural drawing, each one a micro-essay on the physics of a sound.

  • 초성 · initial consonant
  • 중성 · medial vowel
  • 종성 · final consonant
U+D55C · HANGUL SYLLABLE HAN
03 유니코드 Unicode — the Encoded Lattice

Blocks of the Bright Latticework

Hangul lives in four cooperating Unicode ranges, from the precomposed syllables of the Hangeul Syllables block to the half-width Jamo compatibility island.

A developer composing Korean text chooses an axis: precomposed for speed, NFD decomposition for linguistic analysis, Old-Hangul Jamo for historical corpora, compatibility codepoints for form-field legacies.

Block Range Count
Hangul Syllables U+AC00 — U+D7A3 11,172
Hangul Jamo U+1100 — U+11FF 256
Jamo Extended-A U+A960 — U+A97F 32
Jamo Extended-B U+D7B0 — U+D7FF 80
Compatibility Jamo U+3130 — U+318F 96
decompose.ts
// NFD decomposition of the syllable "한"
import { normalize } from "node:util";

const syllable = "한";            // U+D55C
const jamo = syllable.normalize("NFD");

// jamo → "ᄒ" + "ᅡ" + "ᆫ"
//       U+1112  U+1161  U+11AB

for (const cp of jamo) {
  console.info(cp, cp.codePointAt(0)?.toString(16));
}
04 도구 Tools — for Those Who Render

A Workshop of Quiet Instruments

A small collection of glassware — each tool a single frosted pane that does one thing well, for developers who build Korean-aware interfaces, keyboards, fonts, and linguistic pipelines.

jamo-split

NFD decomposer with old-Hangul aware clusters. Zero dependencies.

npm · mit

romanize

Revised Romanization + McCune–Reischauer, with per-syllable boundary hints.

rust · apache-2

stroke-sequence

Canonical writing-order SVG paths for every basic and composite jamo.

data · cc-by

ime-shim

A tiny input-method shim for browser textareas that lack platform IMEs.

ts · mit

hanja-bridge

Sino-Korean lookup with frequency-weighted candidate ordering.

go · isc

font-probe

Coverage reporter for Hangul-capable web fonts, syllable-level heatmap.

wasm · mit
05 서고 Reading — the Lit Stacks

Further Study by Candlelight

A short, considered shelf — primary sources and careful secondary reading for engineers who want to understand the script they are rendering.

  • Hunminjeongeum Haerye 1446 · the original commentary on Hangul's design principles
  • The Korean Alphabet: Its History and Structure Young-Key Kim-Renaud, ed. · 1997
  • Unicode Standard · Chapter 18.6 Hangul The Unicode Consortium · current revision
  • Writing Systems: A Linguistic Introduction Geoffrey Sampson · featural chapter

A wise man can acquaint himself with them before the morning is over; a stupid man can learn them in the space of ten days.

— Jeong Inji, preface to the Hunminjeongeum Haerye, 1446