utility-opentype
Version:
Simple, CSS utility classes for advanced typographic features.
515 lines (396 loc) • 12.9 kB
CSS
/*
Utility OpenType v0.1.4
Simple, CSS utility classes for advanced typographic features.
http://utility-opentype.kennethormandy.com
*/
.liga {
-ms-font-feature-settings: "liga";
-webkit-font-variant-ligatures: common-ligatures;
font-variant-ligatures: common-ligatures;
}
@supports not ((-webkit-font-variant-ligatures: common-ligatures) or (font-variant-ligatures: common-ligatures)) {
.liga {
-webkit-font-feature-settings: "liga", "liga", "clig";
font-feature-settings: "liga", "liga", "clig";
}
}
.dlig {
-ms-font-feature-settings: "dlig";
-webkit-font-variant-ligatures: discretionary-ligatures;
font-variant-ligatures: discretionary-ligatures;
}
@supports not ((-webkit-font-variant-ligatures: discretionary-ligatures) or (font-variant-ligatures: discretionary-ligatures)) {
.dlig {
-webkit-font-feature-settings: "dlig", "dlig";
font-feature-settings: "dlig", "dlig";
}
}
.smcp {
text-transform: uppercase;
-ms-font-feature-settings: "lnum", "smcp", "c2sc" 0;
}
@supports not (font-variant-caps: small-caps) {
.smcp {
text-transform: inherit;
-webkit-font-feature-settings: "onum", "smcp", "c2sc" 0;
font-feature-settings: "onum", "smcp", "c2sc" 0;
}
}
@supports (font-variant-caps: small-caps) {
.smcp {
text-transform: inherit;
-webkit-font-feature-settings: "c2sc";
font-feature-settings: "c2sc";
font-variant-caps: small-caps;
}
}
.c2sc {
text-transform: uppercase;
font-variant-caps: all-small-caps;
-ms-font-feature-settings: "smcp" 0, "c2sc";
}
@supports (font-variant-caps: all-small-caps) or (font-feature-settings: "c2sc") {
.c2sc {
text-transform: lowercase;
}
}
@supports not (font-variant-caps: all-small-caps) {
.c2sc {
-webkit-font-feature-settings: "onum", "smcp" 0, "c2sc", "smcp", "c2sc";
font-feature-settings: "onum", "smcp" 0, "c2sc", "smcp", "c2sc";
}
}
.c2sc.smcp,
.caps {
text-transform: uppercase;
-ms-font-feature-settings: "smcp", "c2sc";
font-variant-caps: all-small-caps;
}
@supports ((-webkit-font-feature-settings: "smcp", "c2sc") or (font-feature-settings: "smcp", "c2sc")) {
@supports not (font-variant-caps: all-small-caps) {
.c2sc.smcp,
.caps {
text-transform: inherit;
-webkit-font-feature-settings: "smcp", "c2sc", "smcp", "c2sc";
font-feature-settings: "smcp", "c2sc", "smcp", "c2sc";
}
}
}
@supports not (font-variant-caps: small-caps) {
@supports not (font-variant-numeric: oldstyle-nums) {
.smcp.onum {
-webkit-font-feature-settings: "onum", "smcp" 1;
font-feature-settings: "onum", "smcp" 1;
}
}
}
@supports not (font-variant-caps: all-small-caps) {
@supports not (font-variant-numeric: oldstyle-nums) {
.c2sc.onum,
.caps.onum {
text-transform: lowercase;
-webkit-font-feature-settings: "onum", "smcp" 1;
font-feature-settings: "onum", "smcp" 1;
}
}
}
.case {
-webkit-font-feature-settings: "case";
font-feature-settings: "case";
}
.titl {
-ms-font-feature-settings: "titl";
font-variant-caps: titling-caps;
}
@supports not (font-variant-caps: titling-caps) {
.titl {
-webkit-font-feature-settings: "titl", "titl";
font-feature-settings: "titl", "titl";
}
}
.calt {
-ms-font-feature-settings: "calt";
-webkit-font-variant-ligatures: contextual;
font-variant-ligatures: contextual;
}
@supports not ((-webkit-font-variant-ligatures: contextual) or (font-variant-ligatures: contextual)) {
.calt {
-webkit-font-feature-settings: "calt", "calt";
font-feature-settings: "calt", "calt";
}
}
.hist {
-ms-font-feature-settings: "hist";
font-variant-alternates: historical-forms;
}
@supports not (font-variant-alternates: historical-forms) {
.hist {
-webkit-font-feature-settings: "hist";
font-feature-settings: "hist";
}
}
.swsh,
.swsh-1 { -webkit-font-feature-settings: "swsh"; font-feature-settings: "swsh" }
.swsh-2 { -webkit-font-feature-settings: "swsh" 2; font-feature-settings: "swsh" 2 }
.swsh-3 { -webkit-font-feature-settings: "swsh" 3; font-feature-settings: "swsh" 3 }
.salt,
.salt-1 { -webkit-font-feature-settings: "salt"; font-feature-settings: "salt" }
.salt-2 { -webkit-font-feature-settings: "salt" 2; font-feature-settings: "salt" 2 }
.salt-3 { -webkit-font-feature-settings: "salt" 3; font-feature-settings: "salt" 3 }
.ss01 { -webkit-font-feature-settings: "ss01"; font-feature-settings: "ss01" }
.ss02 { -webkit-font-feature-settings: "ss02"; font-feature-settings: "ss02" }
.ss03 { -webkit-font-feature-settings: "ss03"; font-feature-settings: "ss03" }
.ss04 { -webkit-font-feature-settings: "ss04"; font-feature-settings: "ss04" }
.ss05 { -webkit-font-feature-settings: "ss05"; font-feature-settings: "ss05" }
.ss06 { -webkit-font-feature-settings: "ss06"; font-feature-settings: "ss06" }
.ss07 { -webkit-font-feature-settings: "ss07"; font-feature-settings: "ss07" }
.ss08 { -webkit-font-feature-settings: "ss08"; font-feature-settings: "ss08" }
.ss09 { -webkit-font-feature-settings: "ss09"; font-feature-settings: "ss09" }
.ss10 { -webkit-font-feature-settings: "ss10"; font-feature-settings: "ss10" }
.ss11 { -webkit-font-feature-settings: "ss11"; font-feature-settings: "ss11" }
.ss12 { -webkit-font-feature-settings: "ss12"; font-feature-settings: "ss12" }
.ss13 { -webkit-font-feature-settings: "ss13"; font-feature-settings: "ss13" }
.ss14 { -webkit-font-feature-settings: "ss14"; font-feature-settings: "ss14" }
.ss15 { -webkit-font-feature-settings: "ss15"; font-feature-settings: "ss15" }
.ss16 { -webkit-font-feature-settings: "ss16"; font-feature-settings: "ss16" }
.ss17 { -webkit-font-feature-settings: "ss17"; font-feature-settings: "ss17" }
.ss18 { -webkit-font-feature-settings: "ss18"; font-feature-settings: "ss18" }
.ss19 { -webkit-font-feature-settings: "ss19"; font-feature-settings: "ss19" }
.ss20 { -webkit-font-feature-settings: "ss20"; font-feature-settings: "ss20" }
.frac {
-ms-font-feature-settings: "frac";
font-variant-numeric: diagonal-fractions;
}
@supports not (font-variant-numeric: diagonal-fractions) {
.frac {
-webkit-font-feature-settings: "frac", "frac";
font-feature-settings: "frac", "frac";
}
}
.afrc {
-ms-font-feature-settings: "afrc";
font-variant-numeric: stacked-fractions;
}
@supports not (font-variant-numeric: stacked-fractions) {
.afrc {
-webkit-font-feature-settings: "afrc", "afrc";
font-feature-settings: "afrc", "afrc";
}
}
.ordn {
-ms-font-feature-settings: "ordn";
font-variant-numeric: ordinal;
}
@supports not (font-variant-numeric: ordinal) {
.ordn {
-webkit-font-feature-settings: "ordn", "ordn";
font-feature-settings: "ordn", "ordn";
}
}
.sups {
font-variant-position: super;
}
@supports not (font-variant-position: sup) {
.sups {
-webkit-font-feature-settings: "sups", "sups";
font-feature-settings: "sups", "sups";
}
@supports ((-webkit-font-feature-settings: "sups") or (font-feature-settings: "sups")) {
.sups {
font-size: 1em;
vertical-align: baseline;
}
}
@supports (overflow: -webkit-marquee) and (justify-content: inherit) {
.sups {
vertical-align: super;
}
}
}
.subs,
.sinf {
font-size: inherit;
font-variant-position: sub;
}
@supports not (font-variant-position: sub) {
.subs,
.sinf {
-webkit-font-feature-settings: "subs", "subs";
font-feature-settings: "subs", "subs";
}
@supports ((-webkit-font-feature-settings: "subs") or (font-feature-settings: "subs")) {
.subs,
.sinf {
font-size: 1em;
vertical-align: baseline;
}
}
@supports (overflow: -webkit-marquee) and (justify-content: inherit) {
.subs,
.sinf {
vertical-align: sub;
font-size: smaller;
}
}
}
@supports ((-webkit-font-feature-settings: "sinf") or (font-feature-settings: "sinf")) {
.sinf {
font-variant-position: normal;
-webkit-font-feature-settings: "sinf", "subs" off, "sups" off;
font-feature-settings: "sinf", "subs" off, "sups" off;
vertical-align: baseline;
}
}
@supports (overflow: -webkit-marquee) and (justify-content: inherit) {
.sinf {
vertical-align: sub;
font-size: smaller;
}
}
.lnum {
font-variant-numeric: lining-nums;
}
@supports not (font-variant-numeric: lining-nums) {
.lnum {
-webkit-font-feature-settings: "lnum", "onum" 0, "lnum";
font-feature-settings: "lnum", "onum" 0, "lnum";
}
}
.onum {
font-variant-numeric: oldstyle-nums;
}
@supports not (font-variant-numeric: oldstyle-nums) {
.onum {
-webkit-font-feature-settings: "lnum" 0, "onum", "onum";
font-feature-settings: "lnum" 0, "onum", "onum";
}
}
.pnum {
font-variant-numeric: proportional-nums;
}
@supports not (font-variant-numeric: proportional-nums) {
.pnum {
-webkit-font-feature-settings: "pnum", "tnum" 0, "pnum";
font-feature-settings: "pnum", "tnum" 0, "pnum";
}
}
.tnum {
font-variant-numeric: tabular-nums;
}
@supports not (font-variant-numeric: tabular-nums) {
.tnum {
-webkit-font-feature-settings: "pnum" 0, "tnum", "tnum";
font-feature-settings: "pnum" 0, "tnum", "tnum";
}
}
.lnum.pnum {
-ms-font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.lnum.pnum {
-webkit-font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
}
}
.lnum.tnum {
-ms-font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.lnum.tnum {
-webkit-font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
}
}
.onum.pnum {
-ms-font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.onum.pnum {
-webkit-font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
}
}
.onum.tnum {
-ms-font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.onum.tnum {
-webkit-font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
}
}
.onum.zero {
-ms-font-feature-settings: "onum", "zero";
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.onum.zero {
-webkit-font-feature-settings: "onum", "zero";
font-feature-settings: "onum", "zero";
}
}
.onum.tnum.zero {
-ms-font-feature-settings: "onum", "zero", "tnum";
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.onum.tnum.zero {
-webkit-font-feature-settings: "onum", "zero", "tnum";
font-feature-settings: "onum", "zero", "tnum";
}
}
.onum.pnum.zero {
-ms-font-feature-settings: "onum", "zero", "pnum";
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.onum.pnum.zero {
-webkit-font-feature-settings: "onum", "zero", "pnum";
font-feature-settings: "onum", "zero", "pnum";
}
}
.lnum.zero {
-ms-font-feature-settings: "lnum", "zero";
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.lnum.zero {
-webkit-font-feature-settings: "lnum", "zero";
font-feature-settings: "lnum", "zero";
}
}
.lnum.tnum.zero {
-ms-font-feature-settings: "lnum", "zero", "tnum";
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.lnum.tnum.zero {
-webkit-font-feature-settings: "lnum", "zero", "tnum";
font-feature-settings: "lnum", "zero", "tnum";
}
}
.lnum.pnum.zero {
-ms-font-feature-settings: "lnum", "zero", "pnum";
}
@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {
.lnum.pnum.zero {
-webkit-font-feature-settings: "lnum", "zero", "pnum";
font-feature-settings: "lnum", "zero", "pnum";
}
}
.zero {
font-variant-numeric: slashed-zero;
}
@supports not (font-variant-numeric: slashed-zero) {
.zero {
-webkit-font-feature-settings: "zero", "zero";
font-feature-settings: "zero", "zero";
}
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
.smcp {
text-transform: lowercase;
}
.c2sc {
text-transform: lowercase;
}
.c2sc.smcp,
.caps {
text-transform: lowercase;
}
}