Cubic-bezier-redigerare
Forma easing-kurvor för CSS med en dragbar cubic-bezier-redigerare, jämför med linear i en animation och kopiera cubic-bezier() eller linear().
Dra de två handtagen (P1 och P2). Tiden går från vänster till höger, förloppet nedifrån och upp; handtagen kan gå över 1 eller under 0 för en studs. När ett handtag har fokus kan du använda piltangenterna (Shift för 0,1).
Förhandsvisning av animation
Animationen är pausad eftersom ditt system begär reducerad rörelse. Tryck på Spela för att köra den ändå.
Samma kurva samplad som en CSS-easing med linear() (Chrome 113+, Firefox 112+, Safari 17.2+). Fler punkter följer kurvan närmare.
Så använder du cubic-bezier-redigeraren
- Dra de två handtagen i grafen. P1 (den första kontrollpunkten) formar början av rörelsen, P2 slutet. Tiden går från vänster till höger och förloppet nedifrån och upp.
- Eller skriv ett värde i Värde för cubic-bezier(): en fullständig
cubic-bezier(0.4, 0, 0.2, 1), fyra tal eller ett nyckelord somease-in-out. Fälten x1, y1, x2 och y2 ändrar en koordinat i taget. - Utgå från menyn Förinställningar (CSS-nyckelord, familjerna från sine till back och kurvorna från Material Design) eller från nyckelordsknapparna. När din kurva motsvarar en förinställning visas dess namn bredvid knapparna.
- Följ Förhandsvisning av animation: punkten på Din kurva och punkten på linear färdas samma sträcka under samma Varaktighet. Använd Pausa/Spela och Börja om för att jämföra dem.
- Kopiera resultatet från CSS-tidsfunktion, eller kopiera Uppskattning med linear() och välj antal Segment.
Tangentbord: ge ett handtag fokus och använd piltangenterna för att flytta det 0,01, eller 0,1 med Shift.
Om ditt system är inställt på reducerad rörelse startar animationen pausad. Tryck på Spela om du vill köra den ändå.
Vad cubic-bezier() betyder
En easing-funktion i CSS översätter den förflutna tiden i en övergång (0 till 1) till dess förlopp (0 till 1). cubic-bezier(x1, y1, x2, y2) beskriver den översättningen med en kubisk Bézierkurva som börjar i (0, 0), slutar i (1, 1) och dras av två kontrollpunkter, P1 = (x1, y1) och P2 = (x2, y2).
- x-värdena är tider och måste ligga mellan 0 och 1, annars blir funktionen ingen giltig tidskurva. Redigeraren håller dem inom intervallet.
- y-värdena är förlopp och får gå under 0 eller över 1. Ett y över 1 gör att animationen skjuter över målet och kommer tillbaka, som Back-kurvorna; under 0 rör den sig först bakåt.
- En brant lutning betyder snabb rörelse, en flack lutning långsam rörelse.
ease-outbörjar snabbt och slutar långsamt, vilket känns naturligt för element som kommer in på skärmen.ease-ingör tvärtom och passar element som lämnar skärmen.
CSS-nyckelorden är genvägar: 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) och linear = (0, 0, 1, 1). Observera att CSS alltid använder decimalpunkt i värdena.
Uppskattningen med linear()
Den nyare funktionen linear() listar förloppsvärden vid jämnt fördelade tidpunkter, till exempel linear(0, 0.25, 0.5, 0.75, 1), och förbinder dem med raka linjer. Verktyget samplar din kurva (det löser Bézierkurvan för varje tidssteg) och skriver värdena med tre decimaler. Med 20 till 40 segment ser resultatet visuellt identiskt ut med kurvan. Den verkliga fördelen med linear() gäller kurvor som en Bézierkurva inte kan rita, som studsar och fjädrar, men den gör det också möjligt att använda en enda syntax. Den fungerar i Chrome och Edge 113+, Firefox 112+ och Safari 17.2+, så behåll värdet från cubic-bezier() som reserv.
Vanliga frågor
Var använder jag värdet?
I transition-timing-function, animation-timing-function eller i kortformen: transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1);. Web Animations API tar emot det som easing.
Vilka varaktigheter är lagom?
Små förändringar i gränssnittet varar oftast 150 till 300 ms; stora rörelser över skärmen 300 till 500 ms. Längre animationer känns snabbt sega.
Varför kan jag inte dra ett handtag förbi vänster- eller högerkanten?
Eftersom x är tid, och tiden kan inte gå baklänges: CSS avvisar x-värden utanför 0–1.
Vilka kurvor använder Material Design?
Den klassiska standardkurvan är cubic-bezier(0.4, 0, 0.2, 1), med varianterna decelerate, accelerate och sharp. Material 3 lägger till de betonade kurvorna (emphasized); alla finns i menyn Förinställningar.
Hur hanterar jag reducerad rörelse?
Respektera @media (prefers-reduced-motion: reduce) i din CSS: korta ned eller ta bort stora rörelser och behåll enkla toningar.
Relaterade verktyg
- Box-shadow-generator Skapa CSS-skuggor i flera lager med direkt förhandsvisning. Ställ in förskjutning, oskärpa, spridning, färg och inset, och kopiera koden.
- Flexbox- och grid-lekplats Bygg layouter med flexbox och CSS Grid visuellt. Ställ in behållare och element, namnge grid-områden, se resultatet direkt och kopiera CSS och HTML.
- CSS-gradientgenerator Skapa linjära, radiella och koniska CSS-gradienter med direkt förhandsvisning. Lägg till färgstopp, ställ in vinkeln och kopiera CSS-koden.