Framtiden för webtypografi CSS-teckensnitt Nivå 4

Webtexter hjälpte till att andas liv i mönster, vilket hjälper oss att undvika systeminställningarna så mycket som används under de tidiga dagarna av webbdesign. Med så många alternativ som finns idag, har vi så gott som tricks upp våra ärmar för att kunna servera och utforma anpassade teckensnitt. Nivå 4 i CSS Fonts Module beskriver mer spännande alternativ du kommer att älska, inklusive några spännande egenskaper som font-min / max-storlek. Denna artikel kommer inte att avslöja varje sista krumb på nivå 4, men kommer att lyfta fram de intressanta delarna fortfarande i sin spädbarn. Äventyret börjar nu!

Status Quo

För närvarande sitter vi mellan två nivåer av specifikationer. På den ena sidan har vi nivå 3; en spec som har varit på "Kandidatrekommendation" sedan oktober 2013. Framöver har vi nivå 4; en spec som har vilat på "Working Draft" sedan juli 2017. Om du behöver en påminnelse om ordningen för W3C-specifikationsträden, låt oss ta en stund att granska dem:

  1. Working Draft (WD): Publicerad för granskning av samhället, inklusive W3C-medlemmar, allmänheten och andra tekniska organisationer. Representerar inte en konsensus från arbetsgruppen eller innebär något godkännande från W3C.
  2. Kandidatrekommendation (CR): Bredt granskad och redo för genomförande. Anger inte godkännande av W3C. Signaler till det bredare samfundet att det är dags att genomföra en slutlig granskning.
  3. Föreslagen rekommendation (PR): En mogen teknisk rapport som skickas till W3C: s rådgivande kommitté för slutgiltigt godkännande.
  4. W3C-rekommendation (REC): Få godkännande från W3C-medlemmar och direktören. Rekommenderar bred implementering av specifikationsriktlinjer.

Nu när vi förstår specificeringsstadiet låter vi dyka in i nivå 4 och visa några av de kända och dokumenterade funktionerna nya i denna modul.

Typsnitt Modul Nivå 4

Delar av nivå 3 som blir standardiserade kommer att hamnas i nivå 4, men nivå 4 kommer även att innehålla egna unika tillägg. Sektioner som Fontvariationer, Font Rendering Controls, Stöd för färgstämpel, Egenskaper för grundläggande teckensnittochFont Resources kommer att innehålla helt nya objekt som många utvecklare kommer att hitta användbara.

Egenskaper för grundläggande teckensnitt

Det specifika typsnittet som gjorts bestäms av typsnittsfamilj och andra teckensnittegenskaper som gäller för ett visst element, t.ex. font-weight och typsnitt till exempel. Denna struktur gör att inställningarna kan variera oberoende av varandra och vad som ingår Egenskaper för grundläggande teckensnitt. Så vad planeras för den här gruppen?

📌 font-min-storlek och font-max-storlek

.element font-min-size: 0.875rem; font-max-size: 5rem; 

Utan allt som beskrivs i nivå 4 är dessa två egenskaper min favorit eftersom båda tillåter ett element textstorlek att "klämma" mellan de angivna värdena. Detta är verkligen super bra nyheter för lyhörda design fans. Värdena kan vara en absolut storlek, en relativ storlek eller längdprocent.

Det finns ingen dokumentation vid den här tiden som noterar hur webbläsarens resize-händelse utlöser endera egenskapen och om du vill experimentera med den här funktionen med hjälp av experimentella webbplattformsfunktioner flagga i Chrome är du otur.

  • Specifikation.

Font Resources

De flesta av de artiklar som beskrivs i det här avsnittet hjälper till att kontrollera aspekter som gäller att hämta, referera och visa typsnittet som du väljer.

📌  font-display

@ font-face font-display: auto | block | swap | fallback | valfri; 

Den här egenskapen bestämmer hur ett teckensnitt ska visas, baserat på om och när det har laddats ner och färdigt att använda av webbläsaren. Den är också avsedd att användas inom din @ Font-face eller @ font-särdrags-värden deklaration.

  • bil: Policyns visningsprincip är användaragent-definierad (dvs webbläsaren) om den inte uttryckligen definieras inom CSS.
  • blockera: Ger teckensnittet en kort blockperiod (3s rekommenderas i de flesta fall) och en oändlig bytesperiod.
  • byta: Ger teckensnittet en 0s blockperiod och en oändlig swapperiod.
  • Retirera: Ger teckensnittet en extremt liten blockperiod (100m eller mindre rekommenderas i de flesta fall) och en kort byteperiod (3s rekommenderas i de flesta fall).
  • valfri: Ger teckensnittet en extremt liten blockperiod (100m eller mindre rekommenderas i de flesta fall) och en 0s bytesperiod.

För alla som uppmärksammar webbtypsprestanda och som är upptagen varje dag debatterar FOUT eller Foit, då kommer den här egenskapen att göra dig mycket nöjd.

  • Specifikation.

📌  @ font-särdrags-värden

@ font-feature-values ​​font-display: auto | block | swap | fallback | valfri; 

När font-display utelämnas i a @ Font-face regel, använder användaragenten font-display värde inställt via @ font-särdrags-värden för den relevanta typsnittsfamilj om en är inställd, annars är den som standard typsnittskärm: auto. Se tidigare förklaring angående font-display värden.

Ruleset är perfekt för fall där ett teckensnitt serveras via en tredje part och du inte har kontroll över @ Font-face regler, men kan fortfarande ställa in en standard font-display policy för den tillhandahållna typsnittsfamilj. Det här är bra nyheter för dessa byggplatser med non-stop tredjepartsåtgärder.

@ font-feature-values ​​font-family: "Anpassat teckensnamn", sans-serif; font-display: fallback; 

Medan jag fortfarande är ny och något vag, kan jag bara anta för att kontrollera en viss typsnittsfamilj visningsbeteende måste utvecklaren använda typsnittsfamilj egendom inom denna regelsats för att rikta in önskad typsnitt. Återigen är detta bara ett antagande från min sida och inte faktiskt på något sätt.

  • Specifikation.

Teckensvariationer

Det här avsnittet är 100% nytt och specifikt för nivå 4. De flesta av de funktioner som för närvarande dokumenteras avser storleken och inställningarna för varje teckensnitt.

📌  font-optisk-inställning

Den här egenskapen används för att bibehålla stilistiska drag och förbättra läsbarheten i olika optiska storlekar. Med digital typ har vi möjlighet att skala ett teckensnitt till vilken storlek som helst, men det tar inte hänsyn till utseendet av typ vid dessa varierande storlekar.

"Text som gjorts i olika storlekar drabbar ofta lite annorlunda visuella representationer. Till exempel, för att stödja läsning vid små textstorlekar, är slag ofta tjockare med större serifs. Större text har ofta en mer känslig figur med mer kontrast mellan tjockare och tunnare slag. "~ Nivå 4 Working Draft
.element font-optisk dimensionering: auto | ingen 
  • bil: Användaragenten kan ändra formen på glyfer baserat på textstorlek och skärmens pixeldensitet. För OpenType och TrueType-teckensnitt som använder typsnittsvarianter görs detta ofta med hjälp av opsz typsnitt variation.
  • ingen: Användaragenten får inte ändra formen på glyphs för optisk storlek.
  • Specifikation.

📌  font-variant-settings

.element font-variation-settings: normal | [  ]

Den här egenskapen ger låg kontroll över OpenType- eller TrueType-fontvariationer. Den är avsedd som ett sätt att ge tillgång till typsnittsvarianter som inte används allmänt, men behövs för ett visst användningsfall.

  • vanligt: Texten läggs ut med standardinställningar.
  • : När text görs, överföres listan med OpenType-axelnamn till textlayoutmotorn för att aktivera eller inaktivera typsnittsfunktioner. Varje inställning är alltid en  av 4 ASCII-tecken, följt av a  vilket anger axelvärdet. Om  har mer eller färre tecken eller innehåller tecken utanför U + 20 - U + 7E kodpunktsintervall, är hela egendomen ogiltig. De  kan vara fraktionerad eller negativ.
.element / * namn och nummer på fyra bokstäver * / font-variation-inställningar: "opsz" 0.5; 

Strängvärdet som används i koden ovan är känt som namnet på fyra bokstavsaxlar som beskriver funktionen du vill variera, tillsammans med variationsvärdet som vanligtvis varierar från 0-1, men kan också vara negativa värden där det behövs. De tillåtna variationerna beror alltid på det valda teckensnittet.

  • Specifikation.

Färgstextstöd

Färgfonter är helt nya till nivå 4 och låter teckensnittsfiler beskriva inte bara konturerna som beskriver kanter av glyfer, men också färgerna som finns i glyphsna. Varför vill du använda någon av dessa funktioner? Jag föreslår att Grace Fussell läser denna artikel för att få fart:

📌  font-palett

.element font-palette: normal | ljus | mörk | ; 

Många färgfonts filformat tillåter att färger i glyfer ska parametreras. I dessa teckensnitt hänvisas färger av index när man beskriver geometrin för varje glyph. Dessa index löses inom en aktuell aktiv palett med hjälp av ett uppslagstabell som finns i teckensnittet. Men många teckensnitt innehåller flera paletter, som varje innehåller en uppsättning kompletterande färger som valts av typsnittet för att ge tilltalande visuella resultat. Utvecklare kan definiera en palett med hjälp av @ font-palett-värden regel som nämns i nästa avsnitt.

  • Specifikation.

📌  @ font-palett-värden

/ * Syntax * / @ font-palette-värden     / * Exempel * / @ typsnitt-palett-värden Augusta font-family: Handover Sans; baspalett: 3; 1: rgb (43, 12, 9); 3: var (- markera); 

Detta representerar en palett av färger som används i ett teckensnitt. Det definierar en färgpalett och associerar den färgpalett med en viss typsnitt. Detta gör det möjligt för en webbförfattare att välja godtyckliga färger för att använda inuti ett färgfontsnitt i stället för att vara begränsat till de tidigare existerande paletterna i fontfiler

  • base-palett: Den här beskrivaren anger en palett i teckensnittet som den regel som innehåller @ font-palette-values ​​används som ett initialvärde. Om inte  nycklarna finns i regimen @ font-palette-values, då representerar regimen @ font-palette-values ​​paletten i teckensnittet med samma index som värdet på den här beskrivaren. Om  nycklarna är närvarande i regimen @ font-palette-values, var och en av de här beskrivarna överträder en enda färg i färgpaletten representerad av detta @ font-palette-values ​​block.
  • Specifikation.

📌 font-presentation

.element font-family: 'Custom Font Name'; font-presentation: auto | text | emoji; 

Den här egenskapen tillåter webförfattare att välja om emoji-presentation eller textpresentation används för vissa emoji-kodpunkter. En stor vinst för emoji fanatiker 😎

  • Specifikation.

Slutsats

Det finns verkligen gott om spännande nya funktioner som kommer ner i rörledningen för webbfonter och jag uppmuntrar dig att börja experimentera med dina favoriter när de blir tillgängliga. Om du har en speciell favorit från nivå 4 eller jämn nivå 3, låt oss veta i kommentarerna inklusive eventuella åsikter du kan ha angående de funktioner som vi har diskuterat.

!