Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Vloeiende typografie is een mooie manier van "het beschrijven van lettertype-eigenschappen, zoals grootte of lijnhoogte, die vloeiend schalen volgens de grootte van de viewport". Zijn ook bekend onder andere namen, zoals responsieve typografie, flexibel type, vloeiend type, typografie op viewport-formaat, vloeiende typografie en zelfs responsieve displaytekst.

Hier is een voorbeeld van vloeiende typografie die je live kunt spelen (met dank aan MDN-documentatie). CSS-Tricks heeft vloeiende typografie behandeld ook uitgebreid. Maar het punt hier is niet om u kennis te laten maken met vloeiende typografie, maar hoe u deze kunt gebruiken. Meer specifiek wil ik u laten zien hoe u vloeiende typografie implementeert in WordPress 6.1, dat onlangs een functie voor vloeiend type rechtstreeks in de WordPress Block Editor heeft geรฏntroduceerd.

Open je style.css bestand, sla een stijlregel in met fancy clamp()-ing op de font-size eigendom, en goed om te gaan, toch? Natuurlijk, dat geeft je vloeiende tekst, maar om Block Editor-besturingselementen te krijgen die het mogelijk maken om vloeiende tekst overal op je WordPress-site toe te passen? Dat vraagt โ€‹โ€‹in deze geblokkeerde dagen om een โ€‹โ€‹andere aanpak.

Ondersteuning voor vloeiende typografie in Gutenberg

Sommige ontwikkelaars van WordPress-thema's gebruiken de clamp() functie om een โ€‹โ€‹vloeistof te definiรซren font-size, in hun WordPress-thema's, zelfs in nieuwere "blok" -thema's zoals Twintig Tweeรซntwintig, Twintig Drieรซntwintig, En anderen.

Maar de Gutenberg-plug-in - degene die experimentele ontwikkeling voor WordPress Block en Site Editor-functies bevat - introduceerde ondersteuning voor vloeiende typografie vanaf versie 13.8. Dat opende de deur voor implementatie op themaniveau, zodat vloeistoftype direct in de Block Editor kan worden toegepast op specifieke elementen en blokken. CSS-Tricks kreeg zelfs een shout-out in de Pull Request die de functie samenvoegde.

Dat werk werd onderdeel van WordPress Core in WordPress6.1. Rich Tabor, een van de eerdere voorstanders van vloeiende typografie in de Block Editor, zegt:

[Vloeiende typografie] maakt ook deel uit van het krachtiger maken van WordPress, maar niet ingewikkelder (waarvan we allemaal weten dat het een hele uitdaging is). [โ€ฆ] Vloeiende typografie werkt gewoon. Eigenlijk vind ik het geweldig werken.

Deze Hoogtepunten van WordPress-berichten maken de aanpak om de functie op blokniveau te ondersteunen, zodat standaard een vloeiende lettergrootte dynamisch op blokken wordt toegepast. Er zijn enkele voordelen hierbij natuurlijk:

  • Het biedt thema-auteurs een manier om vloeiende typografie te activeren zonder zich zorgen te hoeven maken over de implementatie ervan in code.
  • Het past vloeiende typografie toe op specifieke typografische entiteiten, zoals elementen of blokken op een onderhoudbare en herbruikbare manier.
  • Het biedt flexibiliteit in termen van lettergrootte-eenheden (bijv px, rem, em en %).

Nu deze nieuwe functie standaard beschikbaar is in de WordPress Block Editor, kunnen thema-auteurs uniforme vloeiende typografie toepassen zonder extra code te schrijven.

Blokken die typografie en spatiรซringsinstellingen ondersteunen

Gutenberg 14.1 uitgebracht op 16 september 2022, en introduceerde typografische instellingen op een aantal blokken. Dat betekent dat de tekstinstellingen voor die blokken eerder in CSS waren ingesteld en ook in CSS moesten worden gewijzigd. Maar die blokken bieden nu besturingselementen voor lettertype en spatiรซring in de interface van de Block Editor.

Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Dat werk is momenteel gepland om te worden toegevoegd aan WordPress 6.1, zoals beschreven in deze Make WordPress blogpost. En daarmee is een uitgebreid aantal blokken die met typografische ondersteuning.

Geรฏllustreerde lijst van 60 WordPress-blokken die typografie en lettergrootte-ondersteuning krijgen in WordPress 6.1.
WordPress-blokken die typografische instellingen ondersteunen in de komende WordPress 6.1-release.

Vloeiend type declareren in een WordPress-blokthema

Dus, hoe kunnen we deze nieuwe vloeiende typografie gebruiken in WordPress? Het antwoord is binnen theme.json, een nieuw-achtig bestand dat specifiek is voor het blokkeren van thema's dat een aantal themaconfiguraties bevat in key:value-paren.

Laten we eens kijken naar een regel voor een groot lettertype in theme.json WAAR contentSize: 768px en we werken met een widesize: 1600px indeling. Zo kunnen we een CSS specificeren font-size met de clamp() functie:

"settings": {
  "appearanceTools": true,
  "layout": {
    "contentSize": "768px",
    "wideSize": "1600px"
  },
  "typography": {
    "fontSizes": [ 
      {
        "name": "Large",
        "size": "clamp(2.25rem, 6vw, 3rem)",
        "slug": "large"
      }
    ]
  }
}

Alleen vanaf WordPress 6.1: rem, em en px eenheden worden ondersteund.

Dat is geweldig en werkt, maar met de nieuwe functie voor het vloeistoftype zouden we eigenlijk een andere aanpak gebruiken. Eerst kiezen we voor vloeiende typografie op settings.typography, die een nieuwe heeft fluid eigendom:

"settings": {
  "typography": {
    "fluid": true
  }
}

Dan specificeren we onze settings.fontSizes zoals voorheen, maar met een nieuwe fluidSize eigenschap waar we de . kunnen instellen min en max maatwaarden voor ons assortiment vloeistoftypes.

"settings": {
  "appearanceTools": true,
  "layout": {
    "contentSize": "768px",
    "wideSize": "1600px"
  },
  "typography": {
    "fontSizes": [ 
      {
        "size": "2.25rem",
        "fluidSize": {
          "min": "2.25rem",
          "max": "3rem"
        },
        "slug": "large",
        "name": "Large"
      }
    ]
  }
}

Dat is het echt. We hebben zojuist het vloeiende type toegevoegd aan een lettergrootte genaamd 'Groot' met een bereik dat begint bij 2.25rem en schaalt op naar 3rem. Nu kunnen we het lettertype "Groot" toepassen op elk blok met lettertype-instellingen.

Hoe werkt dit onder de motorkap? Rich Tabor biedt een mooie uitleg, evenals dit Pull Request in GitHub. Kortom, WordPress converteert de theme.json eigenschappen in de volgende CSS-regel:

.has-large-font-size {
  font-size: clamp(36px, calc(2.25rem + ((1vw - 7.68px) * 1.4423)), 48px);
}

... die wordt toegepast op het element, zeg maar een alineablok:

...

Aanvankelijk vond ik het moeilijk om het concept van de CSS te begrijpen en in mijn hoofd te verwerken clamp() functioneren zonder ook te leren over de min(), max() en calc() functies. Deze rekentool heeft me behoorlijk geholpen, vooral om te bepalen welke waarden ik in mijn eigen themaprojecten moet gebruiken.

Laten we voor demonstratiedoeleinden de rekenmachine gebruiken om onze font-size bereik zodat de grootte is: 36px een 768px kijkvensterbreedte en 48px een 1600px breedte van het kijkvenster.

Waarden invoeren in de online calculator voor vloeiende typografie.
Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

De rekenmachine genereert automatisch de volgende CSS:

/* 36px @ 768px increasing to 48px @ 1600px */
font-size: clamp(36px, calc(2.25rem + ((1vw - 7.68px) * 1.4423)), 48px);

De rekenmachine biedt opties om invoereenheden te selecteren als: px, rem en em. Als we selecteren: rem eenheid, genereert de rekenmachine het volgende: clamp() waarde:

/* 2.25rem @ 48rem increasing to 3rem @ 100rem */
font-size: clamp(2.25rem, calc(2.25rem + ((1vw - 0.48rem) * 1.4423)), 3rem);

Dus die minimum- en maximumwaarden komen overeen met de de fluidSize.min en fluidSize.max waarden in theme.json. De min waarde wordt toegepast op viewports die 768px breed en lager. Dan de font-size schaalt op naarmate de breedte van de viewport groeit. Als de viewport breder is dan 1600px max wordt toegepast en de font-size is daar afgedekt.

Voorbeelden

Er zijn gedetailleerde testinstructies: in de samengevoegde Pull Request die de functie introduceerde. Er zijn nog meer testinstructies van Pre-prelease bericht van Justin Tadlock op Make WordPress.

Voorbeeld 1: Een nieuwe instelling voor vloeiend lettertype instellen

Laten we beginnen met de instructies van Justin. Ik gebruikte in een aangepaste versie van de standaard Twenty Twenty-Three thema dat momenteel in ontwikkeling is.

Laten we er eerst voor zorgen dat we de Gutenberg-plug-in (13.8 en hoger) of WordPress 6.1 gebruiken, en vervolgens kiezen voor fluid type op de settings.typography.fluid eigendom in de theme.json file:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1600px"
    },
    "typography": {
      "fluid": true
    }
  }
}

Laten we nu de laten vallen settings.typography.fontSizes voorbeelden daarin:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1600px"
    },
    "typography": {
      "fluid": true
      "fontSizes": [
        {
          "name": "Normal",
          "size": "1.125rem",
          "fluid": {
            "min": "1rem",
            "max": "1.5rem"
          },
          "slug": "normal"
        }
      ]
    }
  }
}

Als alles correct werkt, kunnen we nu naar de WordPress Block Editor gaan en de lettertype-instelling "Normaal" toepassen op ons blok:

De interface van de WordPress Block Editor met een alineablok en de vloeiende typografie-instellingen ervoor.
Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Mooi hoor! En als we dat element aan de voorkant opslaan en inspecteren, is dit de opmaak:

Het WordPress-paragraafblok in DevTools inspecteren.
Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Zeer goed. Laten we er nu voor zorgen dat de CSS er echt is:

DevTools toont de aangepaste eigenschap voor lettergrootte voor de vloeiende typografie van het WordPress-paragraafblok.
Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Goed Goed. Laten we die aangepaste CSS-eigenschap blootleggen om te zien of het echt dingen vasthoudt:

De waarde van de aangepaste eigenschap in DevTools onthullen, met een CSS-klemfunctie.

Het lijkt erop dat alles werkt zoals we het willen! Laten we een ander voorbeeld bekijken...

Voorbeeld 2: Een lettertype-instelling uitsluiten van vloeistoftype

Laten we deze keer de . volgen instructies van de samengevoegde Pull Request met een knipoog naar dit voorbeeld van Carolina Nymark dat laat zien hoe we het vloeistoftype voor een specifieke lettertype-instelling kunnen uitschakelen.

Ik gebruikte de leeg thema zoals geadviseerd in de instructies en opende de theme.json bestand om te testen. Eerst kiezen we voor vloeistoftype precies zoals we eerder deden:

{
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "768px",
      "wideSize": "1000px"
    },
    "typography": {
      "fluid": true
    }
  }
}

Deze keer werken we met kleinere wideSize waarde van 1000px in plaats van 1600px. Dit zou ons in staat moeten stellen om het vloeistoftype in een exact bereik te zien werken.

OK, verder met het definiรซren van enkele aangepaste lettergroottes onder settings.typography.fontSizes:

{
  "version": 2,
  "settings": {
    "typography": {
      "fluid": true,
      "fontSizes": [
        {
          "size": ".875rem",
          "fluid": {
            "min": "0.875rem",
            "max": "1rem"
        },
          "slug": "small",
          "name": "Small"
        },
        {
          "size": "1rem",
          "fluid": {
            "min": "1rem",
            "max": "1.5rem"
          },
          "slug": "normal",
          "name": "Normal"
        },
        {
          "size": "1.5rem",
          "fluid": {
            "min": "1.5rem",
            "max": "2rem"
          },
          "slug": "large",
          "name": "Large"
        },
        {
          "size": "2.25rem",
          "fluid": false,
          "slug": "x-large",
          "name": "Extra large"
        }
      ]
    }
  }
}

Merk op dat we de functie voor het vloeiende type alleen hebben toegepast op de lettertype-instellingen "Normaal", "Medium" en "Groot". "Extra Large" is de vreemde eend in de bijt waar de fluid object is ingesteld op false.

de WordPress Block Editor-interface met vier alineablokken, elk met een andere lettergrootte-instelling.
Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Wat WordPress vanaf hier doet โ€” via de Gutenberg-stijl motor โ€” past de eigenschappen toe die we in CSS hebben ingesteld clamp() functies voor elke instelling voor lettergrootte die is gekozen voor vloeiend type en een enkele waarde voor de instelling Extra groot:

--wp--preset--font-size--small: clamp(0.875rem, 0.875rem + ((1vw - 0.48rem) * 0.24), 1rem);
--wp--preset--font-size--medium: clamp(1rem, 1rem + ((1vw - 0.48rem) * 0.962), 1.5rem);
--wp--preset--font-size--large: clamp(1.5rem, 1.5rem + ((1vw - 0.48rem) * 0.962), 2rem);
--wp--preset--font-size--x-large: 2.25rem;

Laten we eens kijken naar de opmaak aan de voorkant:

De WordPress-paragraafblokken in DevTools inspecteren.
Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Goed begin! Laten we bevestigen dat de .has-x-large-font-size klasse is uitgesloten van vloeistoftype:

De aangepaste eigenschap lettergrootte weergeven voor de instelling Extra groot lettertype in DevTools.
Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Als we de --wp--preset--font-size--x-large variabele, we zullen zien dat het is ingesteld op 2.25rem.

De waarde van de aangepaste eigenschap Extra Large voor lettergrootte onthullen, met 2.25rem.
Ondersteuning voor vloeiende typografie toevoegen aan WordPress-blokthema's

Dat is precies wat we willen!

Thema's blokkeren die vloeiende typografie ondersteunen

Veel WordPress-thema's maken al gebruik van de clamp() functie voor vloeiend type in zowel blok- als klassieke thema's. Een goed voorbeeld van vloeiend typografiegebruik is de onlangs uitgebrachte Twenty Twenty-Three standaardthema.

Ik heb alle blokthema's bekeken van WordPress Block Thema-map, onderzoeken theme.json bestand van elk thema en om te zien hoeveel blokthema's momenteel vloeiende typografie ondersteunen - niet de nieuwe functie omdat het op het moment van schrijven nog steeds in de Gutenberg-plug-in zit - met behulp van de CSS clamp() functie. Van de 146 thema's die ik heb beoordeeld, gebruikte de meerderheid een clamp() functie om afstand te definiรซren. Iets meer dan de helft van hen gebruikte clamp() lettergroottes te definiรซren. De Alara thema is de enige om te gebruiken clamp() voor het definiรซren van de indeling containerformaten.

Het is begrijpelijk dat slechts enkele onlangs uitgebrachte thema's de nieuwe functie voor vloeiende typografie bevatten. Maar hier zijn degenen die ik heb gevonden die het definiรซren in theme.json:

En als je mijn vorige post hier op CSS-Tricks leest, de TT2 Gopher-blokken thema dat ik voor de demo heb gebruikt, is ook bijgewerkt om de functie voor vloeiende typografie te ondersteunen.

Geselecteerde reacties op de functies van WordPress fluid typografie

Het hebben van vloeiende typografie in WordPress op instellingenniveau is super spannend! Ik dacht dat ik wat gedachten zou delen van mensen in de WordPress-ontwikkelaarsgemeenschap die erop hebben gereageerd.

Matias Ventura, de hoofdarchitect van het Gutenberg-project:

Rijke Tabor:

Als een van de grotere inspanningen om prachtig rijke pagina's in WordPress te publiceren, is vloeiende typografie een behoorlijk grote ervaringswinst voor zowel de mensen die met WordPress bouwen - als degenen die de inhoud consumeren.

Automatische ontwikkelaar Ramรณn Dodd commentaar in de Pull Request:

Vergelijk dat idee met lettergroottes die reageren op specifieke viewport-groottes, zoals die gedefinieerd door mediaquery's, maar doe niets tussen die maten. theme.json stelt auteurs al in staat om hun eigen vloeiende waarden voor lettergrootte in te voegen. Dit zal niet veranderen, maar deze PR biedt het aan mensen die zich geen zorgen willen maken over de implementatiedetails.

Nick Kroft, auteur van GenesisWP:

Brian Garner, ontwerper en hoofdontwikkelaar bij WPEngine:

Een paar ontwikkelaars denken sommige functies moeten een opt-in zijn. Jason Crist van Automatic zegt:

Ik ben dol op de kracht van vloeiende typografie, maar ik geloof ook niet dat het standaard moet worden ingeschakeld. Het gebruik (en de details ervan) zijn belangrijke ontwerpbeslissingen die zorgvuldig moeten worden genomen.

Je kunt ook een heleboel meer opmerkingen vinden in de officiรซle test instructies: voor de functie.

Afsluiten

De vloeiende typografiefunctie in WordPress is: nog in actieve ontwikkeling op het moment van dit schrijven. Dus op dit moment moeten thema-auteurs het gaan gebruiken, maar met de nodige voorzichtigheid en enkele mogelijke wijzigingen verwachten voordat het officieel wordt vrijgegeven. Justin waarschuwt thema-auteurs die deze functie gebruiken en stelt voor om de volgende twee GitHub-problemen in de gaten te houden:

Er is ook nog veel doorgaand werk over typografie en andere ontwerpgerelateerde WordPress-tools. Als je geรฏnteresseerd bent, bekijk dit dan typografie bijhouden GitHub-ticket en ontwerptools gerelateerde GitHub-problemen.

Resources

Ik heb de volgende artikelen gebruikt bij het onderzoeken van vloeistoftype en hoe WordPress het als een functie implementeert.

Tutorials en meningen

CSS-trucs

Tijdstempel:

Meer van CSS-trucs