13th of December, 2025
OpenType feature tips: Gaelic type
This is part of a set of posts on OpenType font features. Here's the full list of posts:
- introduction
- tabular figures
- case-sensitive forms
- ordinals
- Gaelic type
Gaelic type (a.k.a. Gaelic script) was a form of Irish lettering used by printing presses from the 1500s to the 1900s, at first and in part as a means of English soft power and later by Irish nationalists to distinguish themselves from their English oppressors. It's mainly characterised by insular versions of numerous Latin letters, as well as other changes. While relatively rare in the present, it's still used in some ceremonial, official, or decorative text.
Note: “insular” refers to a historic period of art and, in this case, letterforms; the etymology is the same as “island” (specifically referring to British Isles).
There are three parts to turning modern English into Gaelic type:
- insular letters
- accented letters and the Tironian et
- other redesigned letters
Insular letters #
Here are the insular letters you need for Gaelic type (make sure to look them up for a better look at the various designs they've been drawn with historically):
- Ꝺ/ꝺ (upper-/lowercase insular D,
U+A779/U+A77A) - Ꝼ/ꝼ (upper- and lowercase insular F,
U+A77B/U+A77C) - Ᵹ/ᵹ (upper- and lowercase insular G,
U+A77D/U+1D79) - ꞃ (lowercase insular r,
U+A783) - ꞅ (lowercase insular s,
U+A785) - Ꞇ/ꞇ (upper- and lowercase insular T,
U+A786/U+A787)
The unicode characters for insular letters should not be used in ordinary text. These characters were only added to unicode for linguists and historians and don't decompose well to non-insular forms the same way accented letters can decompose to letter and mark (see the bottom of page 3 in the proposal to add insular letters to unicode). Instead, use substitutions to replace the Latin glyphs with insular glyphs. See more info in the suggested OpenType code below. You can include the unicode insular letters, but people should be able to write in Gaelic type just by typing English Latin letters.
Accented letters and Tironian et #
Irish Gaelic includes the letters a, e, i, o, and u with the acute accent and b, c, d, f, g, m, p, s, and t with the dot accent. It also includes ⁊ (lowercase Tironian et, U+204A) and ⹒ (uppercase Tironian et, U+2E52, rare, may not display).
Note: It's very rare to see the ampersand and Tironian et used in the same piece of text, because they're equivalent characters from different scripts. That is, they're both shorter ways of writing “and”. You can use OpenType substitution to swap the ampersand for a Tironian et glyph that still counts as a regular ampersand. See more info in the suggested OpenType code below.
Other redesigned letters #
The lowercase “i” often doesn't have a dot in Gaelic type. This is a stylistic change—do not just use the dotless-i unicode character, “ı”, which is actually a separate letter used in several Southeastern European languages. Just use OpenType substitution to swap the regular lowercase letter for a dotless alternative that still counts as a regular “i”. See more info in the suggested OpenType code below.
Other redesigned letters often include the letter “A”, which tends to be given the same design in both upper- and lowercase and be drawn with a low and bowing crossbar, and various other uppercase letters such as “B”, “E”, “H”, “M”, “N”, “P”, and “U”, which may be drawn as capital-sized versions of their lowercase forms. However, these redesigns are for Gaelic type-focused fonts; you don't need to do any of them if you're just extending a more general font to support Gaelic type.
Suggested OpenType code #
OpenType has no registered feature for Gaelic type, so we have to create our own using a stylistic set (e.g. ss01). Here's the code I use (swap .ss01 for another stylistic set number if need be):
# insular upper
sub D by D.ss01;
sub F by F.ss01;
sub G by G.ss01;
sub T by T.ss01;
# insular lower
sub d by d.ss01;
sub f by f.ss01;
sub g by g.ss01;
sub r by r.ss01;
sub s by s.ss01;
sub t by t.ss01;
# insular upper dot-accent
sub Ddotaccent by Ddotaccent.ss01;
sub Fdotaccent by Fdotaccent.ss01;
sub Gdotaccent by Gdotaccent.ss01;
sub Tdotaccent by Tdotaccent.ss01;
# insular lower dotaccent
sub ddotaccent by ddotaccent.ss01;
sub fdotaccent by fdotaccent.ss01;
sub gdotaccent by gdotaccent.ss01;
sub sdotaccent by sdotaccent.ss01;
sub tdotaccent by tdotaccent.ss01;
# other
sub i by i.ss01;
sub ampersand by ampersand.ss01;
All the .ss01 glyphs are renamed copies of the insular glyphs. For example, to create D.ss01, first draw the insular D glyph under the name insularD, then create a new glyph and embed insularD as a component, then name the copy D.ss01. It'll look just like insular D, but it'll appear when someone switches on the Gaelic type stylistic set (in this case, ss01) and types an uppercase “D”.
You'll need to create versions of certain insular letters with dot accents, too; unicode doesn't support these (yet), but they're only ever used when applying Gaelic type via OpenType code like in this feature.
The exceptions are i.ss01, which should embed dotlessi, and ampersand.ss01, which should embed the Tironian et, but otherwise these two work the same way as the insular letters.
While the feature code is much simpler than that for ordinals, I put this feature last in the set of OpenType feature tips for two reasons: firstly, it involves drawing a bunch of new glyphs, and secondly, it has no formally-defined feature. I hope this shows the power of (mis-?)using stylistic sets. They're totally generic features, so you can put whatever code you want in there and it'll Just Work™! Just don't do this for ordinary localisation tweaks, like adding the Catalan punt volat—use the localisation feature locl instead (a topic for another post).