CSS ja verkko

Liukuväriteksti CSS:llä: tee se hyvin

Kolme riviä CSS:ää asettaa liukuvärin kirjainten sisään. Jotta se olisi luettava, kestävä ja tyylikäs, tarvitaan vielä muutama, ja tieto siitä, milloin teksti kannattaa jättää tasaväriseksi.

GradientlyVahvistettu Gradiently-tili··4 min lukuaika
Kansi: Mistral Reel · GR·SXXT·96

Lyhyesti

  • CSS:n liukuväriteksti tehdään piirtämällä liukuväri elementin taustaksi, rajaamalla se kirjainten muotoon background-clip: text -ominaisuudella ja tekemällä tekstin väri läpinäkyväksi.
  • Aseta ensin aina yksivärinen tekstiväri ja käytä läpinäkyvää väriä vain @supports-tarkistuksen sisällä, jotta sanat eivät koskaan katoa.
  • Jokaisen liukuvärin osan on erotuttava taustasta riittävästi, joten tarkista vaalein ja tummin väripiste, ei vain yhtä.
  • Liukuväriteksti sopii lyhyisiin, suurikokoisiin otsikkoriveihin, ja toimii huonosti leipätekstissä, linkeissä ja pienissä tunnisteissa.
  • Asetus box-decoration-break: clone antaa jokaiselle rivitetyn inline-elementin jokaiselle riville oman täyden liukuvärinsä.
Tällä sivulla

Liukuväriteksti tehdään CSS:llä piirtämällä liukuväri tekstielementin taustaksi, rajaamalla tausta kirjainten muotoon background-clip: text -ominaisuudella ja tekemällä itse teksti läpinäkyväksi, jotta liukuväri kuultaa läpi. Siihen tarvitaan kolme määrittelyä, se toimii kaikissa nykyisissä selaimissa ja pysyy oikeana, valittavana ja haettavana tekstinä eikä muutu kuvaksi.

css
.gradient-text {
  background-image: linear-gradient(90deg, #6d28d9, #be185d);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
Perustekniikka. Etuliitteellinen rivi pitää vanhemmat Safari- ja Chromium-versiot tyytyväisinä.
Violetista ruusuun, vaaleille sivuillelinear-gradient(90deg, #6d28d9, #be185d)
Liukuväri noiden kirjainten sisällä. Molemmat päät ovat riittävän tummia luettavaksi valkoisella.

Loppu tästä oppaasta käsittelee, mitä kolmen rivin versio tekee väärin: puuttuvat varavärit, kontrasti, monirivinen teksti, katkeavat alaluvut ja muotoilukysymys siitä, milloin liukuväriteksti ylipäätään auttaa. Liukuvärikirjaimista some- ja brändityössä, verkkosivun sijaan, kerrotaan oppaassa tekstitehosteet.

Kestävä liukuväritekstin resepti varaväreineen

Jos selain ottaa käyttöön color: transparent mutta ei rajausta, teksti katoaa. Suojaudu siltä: anna elementille liukuvärin sävyistä otettu yksivärinen väri ja vaihda läpinäkyvään versioon vasta, kun selain vahvistaa tuen. Lisää nollaus pakotettujen värien tilaan, jossa järjestelmä korvaa värisi ja tekstin täytyy pysyä näkyvissä.

css
.gradient-text {
  color: #6d28d9; /* solid fallback from the gradient */
}

@supports (background-clip: text) or (-webkit-background-clip: text) {
  .gradient-text {
    background-image: linear-gradient(90deg, #6d28d9, #be185d);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}

@media (forced-colors: active) {
  .gradient-text {
    background: none;
    color: CanvasText;
  }
}
Ensin yksivärinen väri, liukuväri vain siellä missä se on tuettu ja järjestelmän väri, kun käyttäjä pakottaa omansa.

MDN:n background-clip-sivu dokumentoi text-arvon ja sen nykyisen tuen.

Kontrasti: tarkista liukuvärin molemmat päät

Kontrastin tarkistin ottaa yhden tekstivärin, mutta liukuvärillisessä tekstissä värejä on monta. Sanat ovat yhtä luettavia kuin niiden heikoin kohta, joten tarkista vaalein ja tummin väripiste taustaa vasten ja katso myös keskikohtaa, koska sRGB-sekoitus voi painua kummastakin päästä vaaleammaksi tai harmaammaksi. Suurelle otsikkotekstille WCAG vaatii vähintään 3:1, normaalille tekstille 4,5:1. Värien kontrasti selittää suhdeluvut.

Tekstiliukuvärit, joiden kaikki väripisteet ylittävät 5:1 mainitulla taustalla. Valkoisella jokainen piste mittaa yli 5:1, värillä #0b0b12 yli 7:1.

Monirivisen liukuväritekstin ja katkeavien kirjainten korjaus

Rivittyvällä inline-elementillä selain asettaa yhden taustan kaikkien rivien yli ikään kuin ne olisivat yksi nauha, joten ensimmäinen rivi saa liukuvärin alun ja viimeinen lopun. Yleensä haluat, että jokainen rivi kantaa koko liukuvärin. box-decoration-break: clone tekee sen. Lohkoelementeillä, kuten otsikolla, liukuväri kattaa jo koko laatikon, joten pitkä liukuväri leveän otsikon yli voi näyttää lyhyillä riveillä vain keskikohtansa.

css
.gradient-text {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  /* stop descenders being cut off */
  line-height: 1.15;
  padding-block-end: 0.08em;
}
Jokainen rivi saa oman täyden liukuvärinsä, ja g:n, j:n, p:n ja y:n hännät pysyvät piirretyn alueen sisällä.

Katkeavat alaluvut ovat toinen yllätys. Tausta piirtyy vain elementin laatikkoon, joten hyvin tiukalla line-height-arvolla kirjainten sen alle ulottuvat osat jäävät läpinäkyviksi ja katoavat. Noin 1,1:n riviväli tai hieman alapaddingia korjaa asian. Kursiiviset otsikkofontit voivat menettää viimeisen kirjaimensa oikean kärjen samasta syystä, ja hieman vaakapaddingia auttaa.

Milloin liukuväriteksti toimii ja milloin ei

Vältä

  • Leipäteksti, jossa värinvaihtelu hidastaa lukemista
  • Linkit ja painikkeet, joissa väri kertoo tilan
  • Pienet tunnisteet alle noin 24 px:n, joissa liukuväri ei silti näy
  • Sateenkaariliukuvärit, joissa on viisi tai useampi sävy
  • Liukuväriteksti liukuvärillisellä taustalla

Käytä sitä

  • Yhteen sanaan tai lyhyeen fraasiin suuressa otsikossa
  • Tuotteen tai brändin nimeen hero-alueella
  • Isoihin lukuihin tilastolohkossa
  • Kahteen tai kolmeen samankaltaiseen sävyyn samalla vaaleudella
  • Rauhallisiin, tasaisiin taustoihin, jotka antavat kirjainten johtaa

Hyvä nyrkkisääntö: liukuväriteksti on korostus, kuten kursiivi. Yksi korostettu sana otsikossa vetää katseen, kokonainen kappale väsyttää sen. Paksut fontinpaksuudet auttavat, koska ohuet viivat eivät näytä tarpeeksi väriä, jotta ne näyttäisivät liukuvärinä. Jos muu sivu käyttää jo liukuvärillisiä taustoja, tasainen kirjaintyyppi on yleensä vahvempi valinta; teksti liukuvärillä taustalla käsittelee sen tapauksen.

Liukuvärillisen tekstin animointi

Jotta väri virtaisi kirjainten läpi, tee taustasta tekstiä suurempi ja liikuta sitä. Mitoita se 200 % leveäksi ja animoi background-position edestakaisin alternate-arvolla, jolloin silmukan alkaessa uudelleen ei ole hyppyä. Huomioi vähennetyn liikkeen asetukset ja pidä liike hitaana: välke muutaman sekunnin välein näyttää viimeistellyltä, nopea kierto näyttää varoitukselta.

css
.gradient-text--flow {
  background-image: linear-gradient(90deg, #6d28d9, #be185d, #c2410c);
  background-size: 200% 100%;
  animation: flow 6s ease-in-out infinite alternate;
}

@keyframes flow {
  from { background-position: 0% 50%; }
  to   { background-position: 100% 50%; }
}

@media (prefers-reduced-motion: reduce) {
  .gradient-text--flow { animation: none; }
}
Väri ajelehtii edestakaisin sanojen läpi. Yhdistä se yllä olevan reseptin rajaukseen ja varaväriin.

Samat taustatempuut ovat CSS-animoitujen liukuvärien perusta laajemmin, ja täytön sijaan liukuvärireunukset käsitellään oppaassa CSS-liukuvärireunus.

Usein kysyttyä

Miten teen liukuvärillisen tekstin CSS:llä?

Aseta liukuväri background-image-arvoksi, lisää -webkit-background-clip: text ja background-clip: text sekä aseta color: transparent. Laita yksivärinen väri @supports-tarkistuksen ulkopuolelle varavärinä.

Miksi liukuvärillinen tekstini on näkymätön?

Teksti on läpinäkyvä, mutta taustaa ei rajata, yleensä koska rajausmääritys puuttuu, on kirjoitettu väärin tai ei ole tuettu. Käytä color: transparent vain @supports (background-clip: text) -lohkon sisällä.

Onko liukuväriteksti saavutettavaa?

Voi olla, jos jokaisella liukuvärin osalla on riittävä kontrasti taustaan ja teksti pysyy oikeana tekstinä. Tarkista vaalein ja tummin väripiste ja nollaa värit pakotettujen värien tilassa.

Miksi kirjainteni alaosat katkeavat?

Rajattu tausta kattaa vain elementin laatikon, joten tiukka riviväli jättää alaluvut sen ulkopuolelle. Nosta riviväli noin arvoon 1,1 tai lisää hieman alapaddingia.

Voiko liukuväritekstiä käyttää sähköposteissa?

background-clip: text -tuki on epätasainen sähköpostiohjelmissa, joten käytä siellä yksivärisyyttä tai kuvaa vaihtoehtoisella tekstillä. Katso liukuvärit sähköpostissa.

Jaa tämä opas

Kirjoittanut GradientlyVahvistettu Gradiently-tili

Gradientlyn tiimi. Gradiently on Markien ympärille rakennettu suunnittelutyökalu: eläviä liukuvärejä, joiden ansiosta kaikki suunnittelemasi näyttää omaltasi.

Katso profiilimme