De toekomst van web-typografie CSS-lettertypen Niveau 4

Weblettertypen hebben geholpen om ontwerpen nieuw leven in te blazen, zodat we de systeemstandaarden die zo vaak werden gebruikt tijdens de eerste dagen van webontwerp konden vermijden. Met zoveel opties die vandaag beschikbaar zijn, hebben we genoeg trucjes voor het bedienen en opmaken van aangepaste lettertypen. Niveau 4 van de CSS Fonts Module schetst meer intrigerende opties waar je dol op zult zijn, inclusief enkele opwindende eigenschappen zoals font-min / max-size. Dit artikel onthult niet elke laatste kruim van niveau 4, maar belicht de interessante delen die nog in de kinderschoenen staan. Het avontuur begint nu!

De Status Quo

Momenteel zitten we tussen twee specificatieniveaus. Aan de ene kant hebben we niveau 3; een spec die sinds oktober 2013 in de 'Candidate Recommendation' staat. Voor de toekomst hebben we niveau 4; een specificatie die sinds juli 2017 in "Working Draft" is geplaatst. Als u een herinnering nodig hebt met betrekking tot de volgorde van de W3C-specificatie, laten we het even even overnemen:

  1. Werkversie (WD): gepubliceerd voor beoordeling door de community, inclusief W3C-leden, het publiek en andere technische organisaties. Vertegenwoordigt geen consensus van de werkgroep noch impliceert enige goedkeuring door W3C.
  2. Kandidaat-aanbeveling (CR): op grote schaal beoordeeld en klaar voor implementatie. Dit impliceert geen goedkeuring door W3C. Signalen aan de bredere gemeenschap dat het tijd is om een ​​laatste review uit te voeren.
  3. Voorgestelde aanbeveling (PR): een technisch rapport dat voor definitieve goedkeuring aan de W3C-adviescommissie is gestuurd.
  4. W3C-aanbeveling (REC): ontvangt goedkeuring van W3C-leden en de directeur. Beveelt een brede toepassing van specificatierichtlijnen aan.

Nu we de specificatiefasen begrijpen, duiken we in het lef van niveau 4 en brengen enkele van de bekende en gedocumenteerde functies nieuw voor deze module aan het licht..

Lettertypen Module Niveau 4

Delen van niveau 3 die gestandaardiseerd worden, worden geport naar niveau 4, maar niveau 4 zal ook zijn eigen unieke toevoegingen bevatten. Secties zoals lettertypevariaties, lettertypeweergavebesturingselementen, ondersteuning voor kleurlettertypen, basislettertype-eigenschappenenFont Resources zal splinternieuwe items bevatten die veel ontwikkelaars nuttig zullen vinden.

Basislettertype-eigenschappen

Het bepaalde lettertype dat wordt weergegeven, wordt bepaald door de font-family en andere lettertype-eigenschappen die van toepassing zijn op een bepaald element, zoals lettertype dikte en lettertype bijvoorbeeld. Met deze structuur kunnen instellingen onafhankelijk van elkaar variëren en wat omvat Basislettertype-eigenschappen. Dus wat is er gepland voor deze groep?

📌 font-min-size en font-max-size

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

Van alles dat in niveau 4 wordt geschetst, zijn deze twee eigenschappen mijn favoriet omdat beide een element toestaan lettertypegrootte om "ingeklemd" te worden tussen de geleverde waarden. Dit is zeker super geweldig nieuws voor fans van responsief design. De waarden kunnen een absolute grootte, een relatieve grootte of lengte-percentage zijn.

Er is momenteel geen documentatie waarin wordt vermeld hoe de resize -gebeurtenis van de browser eigenschap activeert. Als u experimenteert met deze functie met de vlag van het experimentele webplatform in Chrome, heeft u geen geluk.

  • Specificatie.

Bronnen bronnen

Het merendeel van de items die in deze sectie worden beschreven, helpt om aspecten te beheersen die betrekking hebben op het ophalen, verwijzen en weergeven van de lettertypefamilie van uw keuze.

📌  font-scherm

@ font-face font-display: auto | blok | ruilen | terugval | optioneel; 

Deze eigenschap bepaalt hoe een lettertype wordt weergegeven, op basis van of en wanneer het is gedownload en klaar voor gebruik door de browser. Het is ook bedoeld voor gebruik binnen uw @ Font-face of @ Font-feature-waarden verklaring.

  • auto: Het beleid voor het weergeven van lettertypen is door de gebruiker / agent gedefinieerd (dat wil zeggen de browser) tenzij expliciet gedefinieerd binnen CSS.
  • blok: Geeft het lettertype een korte blokperiode (in de meeste gevallen wordt 3s aanbevolen) en een oneindige swapperiode.
  • ruil: Geeft het lettertype een 0s-blokperiode en een oneindige swapperiode.
  • terugvallen: Geeft het lettertype een extreem kleine blokperiode (in de meeste gevallen wordt aanbevolen om 100 ms of minder te gebruiken) en een korte swapperiode (in de meeste gevallen wordt 3s aanbevolen).
  • facultatief: Geeft het lettertype een extreem kleine blokperiode (in de meeste gevallen wordt dit aangeraden in de meeste gevallen 100 ms of minder) en een 0s-verwisselingsperiode.

Voor iedereen die veel aandacht schenkt aan de prestaties van weblettertypen en die dagelijks bezig is met discussiëren FOUT of FOIT, dan maakt deze woning u zeer tevreden.

  • Specificatie.

📌  @ Font-feature-waarden

@ font-feature-values ​​font-display: auto | blok | ruilen | terugval | optioneel; 

Wanneer font-scherm is weggelaten in a @ Font-face regel gebruikt de user agent de font-scherm waarde ingesteld via @ Font-feature-waarden voor de relevante font-family als er een is ingesteld, anders is het standaard ingesteld op lettertype-weergave: auto. Zie vorige uitleg over font-scherm waarden.

De regelset is perfect voor gevallen waarin een lettertype wordt geserveerd via een derde partij en u geen controle hebt over de @ Font-face regels, maar kunnen nog steeds een standaard instellen font-scherm beleid voor de verstrekte font-family. Dit is goed nieuws voor mensen die sites bouwen met non-stop acties van derden.

@ font-feature-values ​​font-family: "Custom Font Name", sans-serif; lettertype-weergave: terugval; 

Hoewel het nog nieuw en enigszins vaag is, kan ik alleen maar veronderstellen dat ik een bepaald persoon kan controleren font-family weergave gedrag, de ontwikkelaar moet de font-family eigenschap binnen deze regelset om het gewenste lettertype te targeten. Nogmaals, dit is slechts een veronderstelling van mijn kant en niet feitelijk op geen enkele manier.

  • Specificatie.

Lettertypevariaties

Dit gedeelte is 100% nieuw en specifiek voor niveau 4. De meeste van de momenteel gedocumenteerde functies hebben betrekking op de grootte en instellingen van elk lettertype.

📌  font-optische instelling

Deze eigenschap wordt gebruikt om stilistische eigenschappen te behouden en de leesbaarheid bij verschillende optische formaten te verbeteren. Met digitaal type hebben we de mogelijkheid om een ​​lettertype op elke maat te schalen, maar dit houdt geen rekening met het uiterlijk van het type bij deze verschillende formaten.

"Tekst die op verschillende formaten wordt gerenderd, heeft vaak baat bij enigszins andere visuele representaties. Om bijvoorbeeld te helpen bij het lezen van kleine tekstafmetingen, zijn streken vaak dikker met grotere schreven. Grotere tekst heeft vaak een meer delicate figuur met meer contrast tussen dikkere en dunnere streken. "~ Level 4 Working Draft
.element font-optical-sizing: auto | geen 
  • auto: De user-agent kan de vorm van glyphs wijzigen op basis van de lettertypegrootte en de pixeldichtheid van het scherm. Voor OpenType- en TrueType-lettertypen met lettertypevariaties wordt dit vaak gedaan met behulp van de opsz lettertype variatie.
  • geen: De user-agent mag de vorm van glyphs niet wijzigen voor optische grootte.
  • Specificatie.

📌  font-variant-settings

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

Deze eigenschap biedt laag-niveau controle over OpenType- of TrueType-lettertypevariaties. Het is bedoeld als een manier om toegang te bieden tot lettertypevariaties die niet op grote schaal worden gebruikt, maar die nodig zijn voor een bepaald gebruik.

  • normaal: Tekst wordt opgemaakt met behulp van standaardinstellingen.
  • : Bij het renderen van tekst wordt de lijst met OpenType-assen doorgegeven aan de tekstlay-outgine om lettertypefuncties in of uit te schakelen. Elke instelling is altijd een  van 4 ASCII-tekens, gevolgd door een  de aswaarde aangeven. Als het  heeft meer of minder tekens of bevat tekens buiten het U + 20 - U + 7E codepuntbereik, de hele eigenschap is ongeldig. De  kan fractioneel of negatief zijn.
.element / * vierletter as naam en nummer * / font-variation-settings: "opsz" 0.5; 

De tekenreekswaarde die in de bovenstaande code wordt gebruikt, staat bekend als de naam van de vierletter-as die de functie beschrijft die u wilt variëren, samen met de variatiewaarde die doorgaans tussen 0 en 1 ligt, maar die ook waar nodig negatieve waarden kan zijn. De toegestane variaties zijn altijd afhankelijk van het gekozen lettertype.

  • Specificatie.

Ondersteuning voor kleurlettertypen

Kleurlettertypen zijn gloednieuw op niveau 4 en geven lettertypebestanden de mogelijkheid om niet alleen de contouren te beschrijven die randen van glyphs beschrijven, maar ook de kleuren die in de glyphs voorkomen. Waarom zou u een van deze functies willen gebruiken? Ik stel voor dit artikel van Grace Fussell te lezen om op snelheid te komen:

📌  font-palet

.element font-palette: normaal | licht | donker | ; 

Veel indelingen voor kleurlettertypen zorgen ervoor dat kleuren in glyphs kunnen worden geparametreerd. In deze lettertypen wordt naar kleuren verwezen met een index bij het beschrijven van de geometrie van elke glyph. Deze indices worden binnen een actueel actief palet opgelost met behulp van een opzoektabel die in het lettertype aanwezig is. Veel lettertypen bevatten echter meerdere paletten, die elk een reeks complementaire kleuren bevatten die door de letterontwerper zijn gekozen om aangename visuele resultaten te bieden. Ontwikkelaars kunnen een palet definiëren door de @ Font-palette-waarden regel vermeld in de volgende sectie.

  • Specificatie.

📌  @ Font-palette-waarden

/ * Syntaxis * / @ lettertype-palet-waarden     / * Voorbeeld * / @ lettertype-palet-waarden Augusta font-family: Handover Sans; basispalet: 3; 1: rgb (43, 12, 9); 3: var (- highlight); 

Dit vertegenwoordigt een palet van kleuren die in een lettertype worden gebruikt. Het definieert een kleurenpalet en koppelt dat kleurenpalet aan een specifiek lettertype. Hierdoor kan een webauteur willekeurige kleuren selecteren om in een kleurlettertype te gebruiken in plaats van te worden beperkt tot de al bestaande paletten in lettertypebestanden

  • base-palet: Deze descriptor geeft een palet op in het lettertype dat de regel @ font-palette-values ​​als beginwaarde gebruikt. Als Nee  sleutels zijn aanwezig in de regel @ font-palette-values, dan staat de regel @ font-palette-values ​​voor het palet in het lettertype met dezelfde index als de waarde van deze descriptor. Als  sleutels zijn aanwezig in de regel @ font-palette-values, elk van die descriptors heeft voorrang op een enkele kleur in het kleurenpalet dat wordt vertegenwoordigd door dit blok met @ font-palette-values.
  • Specificatie.

📌 font-presentatie

.element font-family: 'Custom Font Name'; lettertype-presentatie: automatisch | tekst | emoji; 

Met deze eigenschap kunnen webauteurs selecteren of emoji-presentatie of tekstpresentatie wordt gebruikt voor bepaalde emoji-codepunten. Een enorme overwinning voor emoji-fanatici 😎

  • Specificatie.

Conclusie

Er zijn zeker veel spannende nieuwe functies in de pijplijn voor weblettertypen en ik moedig je aan om te gaan experimenteren met je favorieten zodra deze beschikbaar komen. Als je een bepaalde favoriet van niveau 4 of zelfs niveau 3 hebt, laat ons dit dan weten in de reacties, inclusief eventuele meningen over de functies die we hebben besproken.

!