Test of High-Level CSS Properties

This file tests to make sure that high-level CSS font properties work with Junicode 2. For each feature:


cvNN[1]

AaCcDdEe → AaCcDdEe.
font-variant-alternates: character-variant(Alternate-A-1, Alternate-a-1, Alternate-C, Alternate-c, Alternate-D, Alternate-d-1, Alternate-E-1, Alternate-e-1)
Fallback: font-feature-settings: "cv01", "cv02", "cv05", "cv06", "cv06", "cv07", "cv08", "cv09", "cv10"

cvNN[2]

AadEe → AadEe.
font-variant-alternates: character-variant(Alternate-A-2, Alternate-a-2, Alternate-d-2, Alternate-E-2, Alternate-e-2)
Fallback: font-feature-settings: "cv01" 2, "cv02" 2, "cv08" 2, "cv09" 2, "cv10" 2

cvNN[3]

Aade → Aade.
font-variant-alternates: character-variant(Alternate-A-3, Alternate-a-3, Alternate-d-3, Alternate-e-3)
Fallback: font-feature-settings: "cv01" 3, "cv02" 3, "cv08" 3, "cv10" 3

cvNN[4]

a → a.
font-variant-alternates: character-variant(Alternate-a-4)
Fallback: font-feature-settings: "cv02" 4

cvNN[5]

a → a.
font-variant-alternates: character-variant(Alternate-a-5)
Fallback: font-feature-settings: "cv02" 5

Swapped thorn and eth (ss01, from English)

ÞÐþð → ÞÐþð.
font-variant-alternates: styleset(Alternate-thorn-and-eth)
Fallback: font-feature-settings: "ss01"

Insular (ss02)

wyrd oft nereð unfægne eorl → wyrd oft nereð unfægne eorl.
font-variant-alternates: styleset(Insular-letter-forms)
Fallback: font-feature-settings: "ss02"

Discretionary Ligatures (dlig)

strict → strict.
font-variant-ligatures: discretionary-ligatures
Fallback: font-feature-settings: "dlig"

Historical Ligatures (hlig)

al Psi → al Psi.
font-variant-ligatures: historical-ligatures
Fallback: font-feature-settings: "hlig"

Old-style numbers (onum + pnum)

0123456789 → 0123456789.
font-variant-numeric: oldstyle-nums proportional-nums
Fallback: font-feature-settings: "onum", "pnum"

Petite caps (pcap)

abcdefg → abcdefg.
font-variant-caps: petite-caps
Fallback: font-feature-settings: "pcap"

Small caps (smcp)

abcdefg → abcdefg.
font-variant-caps: small-caps
Fallback: font-feature-settings: "smcp"

All small caps (c2sp + smcp)

Abc Defg → Abc Defg.
font-variant-caps: all-small-caps
Fallback: font-feature-settings: "c2sp", "smcp"

Subscripts (subs)

012345 → 012345.
font-variant-position: sub
Fallback: font-feature-settings: "subs"

Superscripts (sups)

012345 abcd → 012345 abcd.
font-variant-position: super
Fallback: font-feature-settings: "sups"
Note: Firefox is scaling and repositioning characters instead of applying the sups feature, even though it does support that feature. As font-variant-position is not supported by Chrome or Safari, font-feature-settings should be used instead.

Slashed zero (zero)

0 → 0.
font-variant-numeric: slashed-zero
Fallback: font-feature-settings: "zero"

Enlarged minuscules (ss06)

abcde → abcde.
font-variant-alternates: styleset(Enlarged-minuscules)
Fallback: font-feature-settings: "ss06"

Underdotted text (ss07)

abcde → abcde.
font-variant-alternates: styleset(Underdotted)
Fallback: font-feature-settings: "ss07"

Contextual long s (ss08)

simple sizzles cliffside → simple sizzles cliffside.
font-variant-alternates: styleset(Contextual-long-s)
Fallback: font-feature-settings: "ss08"

English forthorc (ss12)

abcdefghi → abcdefghi.
font-variant-alternates: styleset(Early-English-futhorc)
Fallback: font-feature-settings: "ss12"

Elder futhark (ss13)

abcdefghi → abcdefghi.
font-variant-alternates: styleset(Elder-futhark)
Fallback: font-feature-settings: "ss13"

Younger futhark (ss14)

abcdefghi → abcdefghi.
font-variant-alternates: styleset(Younger-futhark)
Fallback: font-feature-settings: "ss14"

Long branch to short twig (ss14 + ss15)

abcdefghi → abcdefghi.
font-variant-alternates: styleset(Younger-futhark, Long-branch-to-short-twig)
Fallback: font-feature-settings: "ss14", "ss15"

Contextual r rotunda (ss16)

priest offer arise port → priest offer arise port.
font-variant-alternates: styleset(Contextual-r-rotunda)
Fallback: font-feature-settings: "ss16"

Rare diagraphs (ss17)

au av oo → au av oo.
font-variant-alternates: styleset(Rare-digraphs)
Fallback: font-feature-settings: "ss17"

Old-style punctuation spacing (ss18)

(here) there; “everywhere” → (here) there; “everywhere”.
font-variant-alternates: styleset(Old-style-punctuation-spacing)
Fallback: font-feature-settings: "ss18"

Gothic transliteration (ss19)

abcdefg → abcdefg.
font-variant-alternates: styleset(Latin-to-Gothic)
Fallback: font-feature-settings: "ss19"

Low diacritics: (ss20)

bͦ h&_idotl;bͦ h&_idotl;.
font-variant-alternates: styleset(Entities, Low-diacritics)
Fallback: font-feature-settings: "ss20"

Letters with high overlines (ss04)

DCLXXIV dclxxiv → DCLXXIV dclxxiv.
font-variant-alternates: styleset(High-overline)
Fallback: font-feature-settings: "ss04"

Letters with medium-high overlines (ss05)

dclxxiv → dclxxiv.
font-variant-alternates: styleset(Medium-high-overline)
Fallback: font-feature-settings: "ss05"

Alternative Greek letters (ss03)

βγθφπω → βγθφπω
font-variant-alternates: styleset(Alternate-Greek)
Fallback: font-feature-settings: "ss03"

Appendix: Font feature values

The names of Stylistic Sets and Character Variant features can be declared in the @font-feature-values CSS at-rule (not yet implemented in all browsers). Here is the rule for this document:

    @font-feature-values "Junicode Two Beta VF" {
        @styleset {
          Alternate-thorn-and-eth: 1;
          Insular-letter-forms: 2;
          Alternate-Greek: 3;
          High-overline: 4;
          Medium-high-overline: 5;
          Enlarged-minuscules: 6;
          Underdotted: 7;
          Contextual-long-s: 8;
          Entities: 10;
          Early-English-futhorc: 12;
          Elder-futhark: 13;
          Younger-futhark: 14;
          Long-branch-to-short-twig: 15;
          Contextual-r-rotunda: 16;
          Rare-digraphs: 17;
          Old-style-punctuation-spacing: 18;
          Latin-to-Gothic: 19;
          Low-diacritics: 20;
        }
        @character-variant {
          Alternate-A-1: 1;
          Alternate-A-2: 1 2;
          Alternate-A-3: 1 3;
          Alternate-a-1: 2;
          Alternate-a-2: 2 2;
          Alternate-a-3: 2 3;
          Alternate-a-4: 2 4;
          Alternate-a-5: 2 5;
          Alternate-C:   5;
          Alternate-c:   6;
          Alternate-D:   7;
          Alternate-d-1: 8;
          Alternate-d-2: 8 2;
          Alternate-d-3: 8 3;
          Alternate-E-1: 9;
          Alternate-E-2: 9 2;
          Alternate-e-1: 10;
          Alternate-e-2: 10 2;
          Alternate-e-3: 10 3;
        }
    }