Tailwind CSS Academy · Oppitunti

Kesto ja kiihdytys

Hallinnoikaa siirtymien kestoa duration-75–duration-1000-luokilla ja asettakaa ajoitusfunktio ease-in-, ease-out- ja ease-in-out-luokilla.

Oppitunti 2/413 vaihetta

Kesto ja kiihdytys on ilmainen Tailwind CSS Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Tailwind CSS Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Tailwind CSS Academy-kurssilla on yhteensä 4 oppituntia.

Kesto ja ajoitus liikesuunnittelussa

Kaksi ominaisuutta määrittää, miltä CSS-siirtymä tuntuu: kesto (kuinka kauan animaatio kestää) ja ajoitusfunktio (kuinka animaatio kiihtyy ja hidastuu tuona aikana). Kun nämä valitaan oikein, animaatio tuntuu napakalta ja tarkoitukselliselta eikä hitaalta tai mekaaniselta. Tailwind tarjoaa utilityt molempiin, joten liikkeen tuntumaa on helppo säätää ilman omaa CSS:ää.

Kesto-utilityt

Tailwindin duration-*-utilityt määrittävät CSS:n transition-duration-ominaisuuden. Arvot vaihtelevat arvosta duration-75 (75 ms, erittäin napakka) arvoon duration-1000 (1000 ms, yksi kokonainen sekunti). Kun käytät transition-utilityä ilman duration-*-luokkaa, oletuskesto on 150 ms. Useimpien käyttöliittymän vuorovaikutusten tulisi kestää alle 300 ms, jotta käyttö tuntuu nopealta — pidemmät kestot sopivat vain näyttäviin koko sivun animaatioihin.

<!-- Available duration utilities -->
duration-75    →  75ms
duration-100   → 100ms
duration-150   → 150ms  (default)
duration-200   → 200ms
duration-300   → 300ms
duration-500   → 500ms
duration-700   → 700ms
duration-1000  → 1000ms

<!-- Example: fast button color change -->
<button class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition-colors duration-150">
  Snappy button
</button>

Oikean keston valitseminen

Keston tulisi vastata muutoksen koettua suuruutta. Pienet vuorovaikutukset, kuten painikkeen hover-tila, kohdistusrenkaat ja linkin värin muutokset, näyttävät parhaimmilta 100–200 ms:n kestolla. Keskikokoiset siirtymät, kuten avattavan valikon ilmestyminen, kortin laajentuminen tai työkaluvihjeen häivyttäminen, toimivat hyvin 200–300 ms:n kestolla. Suuret liikkeet, kuten sivupalkin liukuminen näkyviin, modaalin ilmestyminen tai sivusiirtymät, voivat kestää 300–500 ms. Älä koskaan ylitä 500 ms:n kestoa käyttöliittymän siirtymissä – käyttäjän ei pitäisi koskaan tuntea odottavansa animaatiota.

<!-- 150ms: button hover (small interaction) -->
<button class="transition-colors duration-150 hover:bg-blue-700">Button</button>

<!-- 200ms: card shadow depth change (medium) -->
<div class="transition-shadow duration-200 hover:shadow-lg">Card</div>

<!-- 300ms: dropdown fade in (larger change) -->
<div class="transition-opacity duration-300 opacity-0 data-open:opacity-100">Dropdown</div>

<!-- 500ms: modal entrance (dramatic) -->
<div class="transition-all duration-500 scale-95 data-open:scale-100">Modal</div>

Ajoitusfunktiot (easing)

Ajoitusfunktio (tai easing-funktio) määrittää, miten animaation eteneminen jakautuu ajalle. lineaarinen animaatio liikkuu vakionopeudella. ease-in alkaa hitaasti ja kiihtyy. ease-out alkaa nopeasti ja hidastuu. ease-in-out alkaa ja päättyy hitaasti, ja keskiosa on nopea. Eri vuorovaikutukset tuntuvat luonnollisimmilta eri easing-funktioilla – oikean vaihtoehdon valinta on hienovarainen mutta tärkeä yksityiskohta viimeistellyssä käyttöliittymäsuunnittelussa.

/* Tailwind easing utilities */
ease-linear   → cubic-bezier(0, 0, 1, 1)      /* constant speed */
ease-in       → cubic-bezier(0.4, 0, 1, 1)    /* slow start, fast end */
ease-out      → cubic-bezier(0, 0, 0.2, 1)    /* fast start, slow end */
ease-in-out   → cubic-bezier(0.4, 0, 0.2, 1)  /* slow start AND end */

ease-in- ja ease-out-funktioiden käyttäminen

Valinnalla ease-in- ja ease-out-funktioiden välillä on intuitiivinen merkitys: ease-in kasvattaa liike-energiaa (sopii näytöltä poistuville tai kutistuville elementeille), koska liike alkaa hitaasti ja nopeutuu elementin poistuessa. ease-out hidastaa liikettä (sopii näytölle saapuville elementeille), koska ne saapuvat nopeasti ja asettuvat sitten paikalleen pehmeästi. Tämä jäljittelee reaalimaailman fysiikkaa: pysähtyvät asiat yleensä hidastuvat ja liikkeelle lähtevät asiat yleensä kiihtyvät.

<!-- ease-out: element slides INTO view (decelerates on arrival) -->
<div class="-translate-x-full hover:translate-x-0 transition-transform duration-300 ease-out">
  Slides in from left, decelerates to stop
</div>

<!-- ease-in: element exits screen (accelerates on departure) -->
<div class="translate-x-0 hover:translate-x-full transition-transform duration-300 ease-in">
  Slides out to right, accelerating as it exits
</div>

ease-in-out-kuvio

ease-in-out tuottaa useimmille käyttöliittymäanimaatioille luonnollisimman tuntuisen liikkeen. Se jäljittelee fyysisten esineiden liikettä: liike alkaa levosta, kiihtyy huippunopeuteen ja hidastuu sitten takaisin lepoon. Käyttäkää sitä oletuksena kaikissa animaatioissa, joissa elementit liikkuvat paikasta toiseen – sivupalkkien liukuminen, modaalien saapuminen, korttien laajentuminen ja haitarien avautuminen tuntuvat kaikki luonnollisimmilta ease-in-out-funktiolla.

<!-- ease-in-out: sidebar slide-in (feels most natural) -->
<aside class="-translate-x-full group-open:translate-x-0
               transition-transform duration-300 ease-in-out
               fixed left-0 top-0 h-full w-64 bg-white shadow-xl">
  Sidebar content
</aside>

<!-- Accordion expand: ease-in-out for natural feel -->
<div class="max-h-0 overflow-hidden group-open:max-h-96
             transition-all duration-300 ease-in-out">
  Accordion content
</div>

Viiveapuohjelmat

delay-*-apuohjelmat lisäävät tauon ennen siirtymän alkamista CSS:n transition-delay-ominaisuuden avulla. Viiveet ovat hyödyllisiä porrastetuissa animaatioissa – kun elementtisarja ilmestyy yksi kerrallaan, syntyy viimeisteltyä vaikutelmaa luova vyöryefekti. Tailwind tarjoaa viiveitä arvosta delay-75 (75 ms) arvoon delay-1000 (1000 ms). Käyttäkää viiveitä hover-vuorovaikutuksissa säästeliäästi – vain hover-tilassa käynnistyvät viiveet tuntuvat käyttäjistä reagoimattomilta.

<!-- Staggered card entrance animations -->
<div class="opacity-0 translate-y-4 animate-show" style="animation-delay: 0ms">Card 1</div>
<div class="opacity-0 translate-y-4 animate-show" style="animation-delay: 100ms">Card 2</div>
<div class="opacity-0 translate-y-4 animate-show" style="animation-delay: 200ms">Card 3</div>

<!-- Or with Tailwind delay utilities -->
<div class="... transition delay-0">First item</div>
<div class="... transition delay-100">Second item</div>
<div class="... transition delay-200">Third item</div>

Mukautettu kesto ja easing asetuksissa

Jos suunnittelujärjestelmänne tarvitsee tiettyjä ajoitusarvoja, joita Tailwindin oletusasetukset eivät sisällä – esimerkiksi duration-250-arvon tai mukautetun cubic-bezier-easingin – lisätkää ne tiedostoon tailwind.config.js. Laajentakaa transitionDuration-asetusta uusia kestoarvoja varten ja transitionTimingFunction-asetusta uusia easing-käyriä varten. Mukautettu easing voi välittää brändinne liikkeen persoonallisuutta ja saada animaatiot tuntumaan tunnistettavasti omilta.

// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      transitionDuration: {
        '250': '250ms',
        '400': '400ms',
        '2000': '2000ms',
      },
      transitionTimingFunction: {
        'spring': 'cubic-bezier(0.34, 1.56, 0.64, 1)',     // overshoots then settles
        'smooth': 'cubic-bezier(0.4, 0.0, 0.2, 1)',        // material design standard
        'sharp':  'cubic-bezier(0.4, 0.0, 0.6, 1)',        // sharp accelerate/decelerate
      },
    },
  },
};

Hover-vuorovaikutusten siirtymien ajoitus

Hyödyllinen tekniikka hover-vuorovaikutuksissa on käyttää eri ajoituksia sisään- ja poistumiselle. Tämän voi toteuttaa käyttämällä eri kestoja responsive- tai tilaetuliitteiden kanssa. Yleensä hover-tilaan siirtyminen on hieman nopeampaa kuin siitä poistuminen: sisääntulo tuntuu napakalta ja poistuminen häivytetään pehmeämmin. Tämä edellyttää hieman mukautettua CSS:ää tai JavaScriptillä tehtävää luokkien käsittelyä, koska Tailwindissa ei ole valmista un-hover-varianttia.

/* CSS: different timing for enter vs exit */
.hover-item {
  @apply transition-all duration-300 ease-out;  /* exit timing */
}
.hover-item:hover {
  @apply duration-150;  /* shorter on enter (faster response) */
  /* Note: Tailwind generates .hover\:duration-150 for this */
}

<!-- Alternative: use hover:duration-* directly in HTML -->
<div class="transition-colors duration-300 hover:duration-150
             bg-gray-100 hover:bg-blue-100">
  Fast enter, slow exit
</div>

Suorituskyky: will-change ja transform

Usein animoitavien elementtien kohdalla selaimelle voi vihjata, että elementti kannattaa siirtää omalle compositor-tasolleen käyttämällä will-change-ominaisuutta. Tailwindin ytimessä ei ole valmista will-change-apuohjelmaa, mutta voitte lisätä sellaisen arbitrary-arvoilla tai mukautetulla apuohjelmalla. Käyttäkää kuitenkin will-change: transform-ominaisuutta säästeliäästi – liian monien elementtien siirtäminen omille tasoilleen kuluttaa muistia ja voi itse asiassa hidastaa toimintaa.

@layer utilities {
  .will-change-transform {
    will-change: transform;
  }
  .will-change-opacity {
    will-change: opacity;
  }
}

<!-- Apply to elements that animate very frequently -->
<div class="transition-transform duration-300 will-change-transform
             hover:scale-105">
  Frequently animated card (promoted layer)
</div>

Siirtymien vianmääritys DevToolsissa

Chrome DevToolsin siirtymien vianmääritystyökalut ovat erinomaiset. Avatkaa Animations-paneeli (More tools → Animations), niin näette kaikki käynnissä olevat animaatiot ja siirtymät. Voitte selata aikajanaa, toistaa animaatioita hitaammilla nopeuksilla (0.25x, 0.5x) ja tarkastella laskettua ajoitusfunktion käyrää. Näin voitte varmistaa helposti, että kesto- ja easing-valinnat näyttävät täsmälleen tarkoitetuilta ilman, että nopeita animaatioita täytyy yrittää saada kiinni viemällä hiiri niiden päälle nopeasti.

Pikatarkistus

Testatkaa ymmärrystänne siirtymien kestosta ja easing-funktioista Tailwind CSS:ssä.

Oppitunnin yhteenveto

Tässä oppitunnissa opitte, että kestoapuohjelmat arvosta duration-75 arvoon duration-1000 määrittävät siirtymien keston, ease-out sopii parhaiten näytölle saapuville elementeille ja ease-in näytöltä poistuville elementeille, ja delay-*-apuohjelmat lisäävät taukoja ennen siirtymien alkamista mahdollistaen porrastetut animaatioefektit. Seuraavaksi tutustumme Tailwindin valmiisiin keyframe-animaatioihin lataus- ja huomion kiinnittämisen malleja varten.

Aloita maksutta

Opi HTML tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Kesto ja kiihdytys” ilmainen?

Kyllä – oppitunnin ”Kesto ja kiihdytys” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Tailwind CSS Academy-kurssin, päivitä CoddyKit PROhon. Tailwind CSS Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Kesto ja kiihdytys”?

Hallinnoikaa siirtymien kestoa duration-75–duration-1000-luokilla ja asettakaa ajoitusfunktio ease-in-, ease-out- ja ease-in-out-luokilla. Harjoittelet Tailwind CSS Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Tailwind CSS Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Tailwind CSS Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Kesto ja kiihdytys”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Tailwind CSS Academy-oppitunnilla?

Kyllä. Jokainen Tailwind CSS Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Siirtymäutilityt
  2. Kesto ja kiihdytys
  3. Sisäänrakennetut keyframe-animaatiot
  4. Mukautetut animaatiot config-tiedostossa
← Takaisin: Tailwind CSS Academy