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!
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:
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.
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.
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?
.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.
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-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.
@ 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.
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.
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..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.
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:
.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.
/ * 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 .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 😎
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.
!