v148 · CSS

text-decoration-skip-ink: all

Extend ink-skipping underlines to every glyph — including CJK characters that auto deliberately left un-skipped. Opt in to consistent descender clearance across all writing systems.

concepts

  1. Script Sampler

    Toggle between skip-ink: auto and skip-ink: all across text in multiple scripts — Latin, Japanese, Chinese, Korean — and see exactly how ink-skipping changes for each script.

  2. Underline Workshop

    Combine text-underline-offset, text-underline-position, and skip-ink: all to build clean underlines that clear every descender in any language on your page.

  3. Multilingual Comparison

    See none, auto, and all applied to eight writing systems — Latin, Cyrillic, Greek, Chinese, Japanese, Korean, Arabic, and Devanagari — side by side. The key reveal: auto skips CJK ink only with all.

  4. Typography Lab

    A full-featured text-decoration playground. Sliders for underline-offset, decoration-thickness, and letter-spacing. A script catalog cycles through Latin, Arabic, Devanagari, CJK, Thai, and more. A before/after toggle shows crossing descenders. An auto vs all annotation panel explains exactly which ink gets skipped per glyph.

  5. Skip Ink Comparison

    Three columns (skip-ink: none / auto / all) rendered side by side at the same font size and decoration settings. Script buttons cycle through Latin, Greek, Arabic, CJK, and mixed text so you can see the behavioural difference per writing system. Controls for font size, underline color, offset, thickness, and position let you stress the exact CSS contract.

why it shipped

text-decoration-skip-ink: auto (Chrome's default since Chrome 64) prevents underlines from cutting through descenders on Latin letters like g, j, and y. But it deliberately skips CJK glyphs — ideographic characters sit on the baseline without descenders, so ink-skipping at typical underline positions produces inconsistent results. Web developers who customise text-underline-offset or text-underline-position: under to push the line below all glyphs now want ink-skipping for CJK text too. The all value provides exactly that opt-in: unconditional ink-skipping for every glyph regardless of writing system.

references

implementation reference

Need the exact API surface, compatibility boundaries, errors, lifecycle, and source links? Read the matching gendn reference ↗