Utilia

Editor cubic-bezier

Navrhuj easing křivky CSS v editoru cubic-bezier s tažením úchytů, porovnej je s lineárním pohybem v živé animaci a zkopíruj cubic-bezier() či linear().

Táhni dva úchyty (P1 a P2). Čas plyne zleva doprava, postup zdola nahoru; úchyty smějí jít nad 1 nebo pod 0 pro efekt odrazu. Na vybraném úchytu používej šipky (se Shiftem o 0,1).

Řídicí body

Náhled animace

Tvoje křivka
linear

Stejná křivka vzorkovaná jako easing CSS linear() (Chrome 113+, Firefox 112+, Safari 17.2+). Více bodů křivku sleduje přesněji.

Jak používat editor cubic-bezier

  1. Táhni dva úchyty v grafu. P1 (první řídicí bod) tvaruje začátek pohybu, P2 konec. Čas plyne zleva doprava a postup zdola nahoru.
  2. Nebo napiš hodnotu do pole Hodnota cubic-bezier(): úplné cubic-bezier(0.4, 0, 0.2, 1), čtyři čísla nebo klíčové slovo, například ease-in-out. Pole x1, y1, x2 a y2 upravují vždy jednu souřadnici.
  3. Začni v nabídce Předvolby (klíčová slova CSS, rodiny od sine po back a křivky Material Design) nebo tlačítky s klíčovými slovy. Když tvá křivka odpovídá předvolbě, její název se zobrazí vedle tlačítek.
  4. Sleduj Náhled animace: bod na Tvoje křivka a bod na linear urazí stejnou vzdálenost za stejnou Délku. Pomocí Pozastavit/Přehrát a Spustit znovu je můžeš porovnat.
  5. Výsledek zkopíruj z pole Časovací funkce CSS, nebo zkopíruj Aproximaci linear() a vyber počet Segmentů.

Klávesnice: vyber úchyt a šipkami ho posouváš o 0,01, se Shiftem o 0,1.

Pokud je tvůj systém nastaven na omezení pohybu, animace se spustí pozastavená. Chceš-li ji přesto přehrát, stiskni Přehrát.

Nástroj funguje ve tvém prohlížeči. Nic, co zadáš, se neodesílá na server.

Co znamená cubic-bezier()

Easing funkce CSS převádí uplynulý čas přechodu (0 až 1) na jeho postup (0 až 1). cubic-bezier(x1, y1, x2, y2) toto zobrazení popisuje kubickou Bézierovou křivkou, která začíná v bodě (0, 0), končí v (1, 1) a je tažena dvěma řídicími body, P1 = (x1, y1) a P2 = (x2, y2).

  • Hodnoty x jsou časy a musí zůstat mezi 0 a 1, jinak by funkce nebyla platnou časovací křivkou. Editor je drží v rozsahu.
  • Hodnoty y jsou postup a mohou jít pod 0 nebo nad 1. Hodnota y nad 1 způsobí, že animace přestřelí cíl a vrátí se, jako u křivek Back; pod 0 se nejprve pohne zpět.
  • Strmý sklon znamená rychlý pohyb, plochý pomalý. ease-out začíná rychle a končí pomalu, což působí přirozeně u prvků vstupujících na obrazovku. ease-in dělá opak a hodí se pro prvky, které obrazovku opouštějí.

Klíčová slova CSS jsou zkratky: ease = cubic-bezier(0.25, 0.1, 0.25, 1), ease-in = (0.42, 0, 1, 1), ease-out = (0, 0, 0.58, 1), ease-in-out = (0.42, 0, 0.58, 1) a linear = (0, 0, 1, 1).

Aproximace linear()

Novější funkce linear() vyjmenovává hodnoty postupu v rovnoměrně rozmístěných časech, například linear(0, 0.25, 0.5, 0.75, 1), a spojuje je přímkami. Nástroj tvou křivku vzorkuje (pro každý časový krok řeší Bézierovu křivku) a zapisuje hodnoty na tři desetinná místa. S 20 až 40 segmenty je výsledek vizuálně totožný s křivkou. Skutečný přínos linear() je u křivek, které Bézier nenakreslí, jako jsou odrazy a pružiny, ale umožňuje to také sdílet jednu syntaxi. Funguje v Chrome a Edge 113+, Firefoxu 112+ a Safari 17.2+, takže hodnotu cubic-bezier() ponech jako zálohu.

Časté dotazy

Kam hodnotu použiju?

Do transition-timing-function, animation-timing-function nebo zkráceného zápisu: transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);. Web Animations API ji přijímá jako easing.

Jaké jsou vhodné délky?

Malé změny rozhraní obvykle trvají 150 až 300 ms, velké pohyby přes obrazovku 300 až 500 ms. Delší animace rychle působí pomalu.

Proč nemohu táhnout úchyt za levý nebo pravý okraj?

Protože x je čas a čas nemůže jít zpět: CSS hodnoty x mimo rozsah 0–1 odmítne.

Které křivky používá Material Design?

Klasická standardní křivka je cubic-bezier(0.4, 0, 0.2, 1) s variantami decelerate, accelerate a sharp. Material 3 přidává zdůrazněné křivky; všechny jsou v nabídce Předvolby.

Jak naložit s omezeným pohybem?

Respektuj v CSS @media (prefers-reduced-motion: reduce): zkrať nebo odstraň velké pohyby a ponech jednoduché prolnutí.