Daim duab no: koj koom nrog ib txoj haujlwm tshiab, dhia mus rau hauv codebase, thiab hauv thawj ob peb teev, koj pom ib yam dab tsi uas tsis txaus ntseeg. Tshaj tawm thoob plaws hauv daim ntawv teev npe, koj pom ntau lub ntsiab lus @keyframes rau tib qho kev ua yeeb yam yooj yim. Peb qhov sib txawv fade-in teebmeem, ob lossis peb qhov kev hloov pauv, ib qho puv tes ntawm cov duab zoom, thiab tsawg kawg yog ob qhov sib txawv spin animations vim, zoo, vim li cas ho tsis? @keyframes mem tes { los ntawm { nplai: 1; } rau { Loj: 1.1; } }

@keyframes loj-pulse { 0%, 20%, 100% { nplai: 1; } 10%, 40% { Loj: 1.2; } }

Yog tias qhov xwm txheej no zoo li paub, koj tsis nyob ib leeg. Hauv kuv qhov kev paub dhau los ntawm ntau qhov haujlwm, ib qho ntawm qhov kev sib tw ceev tshaj plaws uas kuv tuaj yeem xa tau yog kev sib sau ua ke thiab tsim qauv keyframes. Nws tau dhau los ua tus qauv txhim khu kev qha uas tam sim no kuv tos ntsoov rau qhov kev tshem tawm no ua ib qho ntawm kuv thawj txoj haujlwm ntawm txhua qhov codebase tshiab. Lub Logic Qab Lub Chaos Qhov kev rov ua dua no ua rau muaj kev nkag siab zoo thaum koj xav txog nws. Peb txhua tus siv tib yam animations hauv peb cov haujlwm niaj hnub: ploj mus, swb, zoom, spin, thiab lwm yam teebmeem. Cov animations no zoo nkauj ncaj nraim, thiab nws yooj yim rau nplawm kom nrawm @keyframes txhais kom ua tiav txoj haujlwm. Yog tsis muaj lub hauv paus kev ua yeeb yaj kiab, cov neeg tsim tawm ib txwm sau cov keyframes no los ntawm kos, tsis paub tias cov animations zoo sib xws twb muaj nyob rau lwm qhov hauv codebase. Qhov no yog qhov tshwj xeeb tshaj yog thaum ua haujlwm hauv cov khoom siv hauv vaj tse (uas feem ntau ntawm peb ua niaj hnub no), vim tias cov pab pawg feem ntau ua haujlwm sib luag hauv ntau qhov chaw ntawm daim ntawv thov. Qhov tshwm sim? Animation chaos. Qhov teeb meem me Cov teeb meem pom tseeb tshaj plaws nrog keyframes duplication yog nkim sij hawm txhim kho thiab tsis tsim nyog code bloat. Ntau lub ntsiab lus keyframe txhais tau tias ntau qhov chaw los hloov kho thaum xav tau hloov. Xav tau kho lub sijhawm ntawm koj cov animation ploj? Koj yuav tsum tau mus yos hav zoov txhua qhov piv txwv hla koj cov codebase. Xav kom standardize easing functions? Hmoov zoo nrhiav txhua qhov kev hloov pauv. Qhov kev sib npaug ntawm kev saib xyuas cov ntsiab lus no ua rau cov animation yooj yim hloov kho lub sijhawm siv sijhawm. Qhov teeb meem loj dua Qhov no keyframes duplication tsim ib qho teeb meem ntau insidious lurking hauv qab qhov chaw: lub ntiaj teb no scope ntxiab. Txawm hais tias thaum ua haujlwm nrog cov khoom siv raws li kev tsim qauv, CSS keyframes yeej ib txwm txhais nyob rau hauv lub ntiaj teb no. Qhov no txhais tau hais tias tag nrho cov keyframes siv rau txhua yam khoom. Ib txwm. Yog lawm, koj cov animation tsis tas yuav siv cov keyframes koj tau teev tseg hauv koj cov khoom. Nws siv cov keyframes kawg uas phim lub npe tib yam uas tau thauj mus rau hauv lub ntiaj teb. Tsuav yog tag nrho koj cov keyframes zoo ib yam, qhov no yuav zoo li qhov teeb meem me. Tab sis lub sijhawm koj xav hloov kho cov animation rau ib qho kev siv tshwj xeeb, koj muaj teeb meem, lossis phem dua, koj yuav yog tus ua rau lawv. Txawm hais tias koj cov animation yuav tsis ua haujlwm vim tias lwm cov khoom siv thauj khoom tom qab koj li, sau koj cov keyframes, lossis koj cov khoom siv thauj khoom kawg thiab hloov pauv tus cwj pwm animation rau txhua lwm yam uas siv lub keyframe lub npe, thiab koj yuav tsis paub nws. Nov yog ib qho piv txwv yooj yim uas qhia txog qhov teeb meem: .component-ib { /* cov styles */ animation: mem tes 1s yooj yim-hauv-tawm infinite alternate; }

/* no @keyframes txhais yuav tsis ua haujlwm */ @keyframes mem tes { los ntawm { nplai: 1; } rau { Loj: 1.1; } }

/* tom qab hauv code... */

.component-ob { /* cov styles */ animation: mem tes 1s yooj yim-hauv-tawm infinite; }

/* keyframes no yuav siv tau rau ob qho tib si */ @keyframes mem tes { 0%, 20%, 100% { nplai: 1; } 10%, 40% { Loj: 1.2; } }

Ob qho khoom siv tib lub npe animation, tab sis qhov thib ob @keyframes txhais tau sau thawj tus. Tam sim no ob qho tib si-ib qho thiab cov khoom siv-ob yuav siv cov keyframes thib ob, tsis hais qhov twg tau txhais cov keyframes. Saib Pen Keyframes Tokens - Demo 1 [forked] los ntawm Amit Sheen. Qhov phem tshaj plaws? Qhov no feem ntau ua haujlwm zoo kawg nkaus hauv kev txhim kho hauv zos tab sis tawg tsis meej pem hauv kev tsim khoom thaum tsim cov txheej txheem hloov qhov kev txiav txim ntawm koj cov stylesheets. Koj xaus nrog cov animations uas coj txawv txawv nyob ntawm seb cov khoom twg raug thauj khoom thiab nyob rau theem twg. Txoj Kev: Unified Keyframes Cov lus teb rau qhov kev ntxhov siab no yog qhov yooj yim xav tsis thoob: predefined dynamic keyframes khaws cia hauv ib daim ntawv sib koom. Es tsis txhob cia txhua feem txhais nws tus kheej cov animations, peb tsim centralized keyframes uas muaj ntaub ntawv zoo, yooj yim rausiv, tswj tau, thiab haum rau cov kev xav tau tshwj xeeb ntawm koj qhov project. Xav txog nws li keyframes tokens. Ib yam li peb siv tokens rau xim thiab qhov sib txawv, thiab ntau ntawm peb twb tau siv tokens rau cov khoom ua si, zoo li lub sijhawm thiab kev ua haujlwm yooj yim, vim li cas ho tsis siv tokens rau keyframes thiab? Txoj hauv kev no tuaj yeem sib xyaw ua ke nrog ib qho kev tsim qauv tam sim no token workflow koj siv, thaum daws ob qho teeb meem me me (code duplication) thiab qhov teeb meem loj dua (kev tsis sib haum xeeb thoob ntiaj teb) hauv ib qho mus. Lub tswv yim yog ncaj nraim: tsim ib qho ntawm qhov tseeb rau tag nrho peb cov animations. Daim ntawv qhia kev sib koom no muaj cov keyframes ua tib zoo uas npog cov qauv animation uas peb qhov project siv tiag tiag. Tsis muaj kev twv ntxiv seb puas muaj cov animation ploj lawm twb muaj nyob rau hauv peb cov codebase. Tsis txhob yuam kev overwriting animations los ntawm lwm yam khoom. Tab sis ntawm no yog qhov tseem ceeb: cov no tsis yog cov ntawv luam tawm zoo li qub. Lawv tau tsim los ua kom muaj zog thiab kho tau los ntawm CSS cov khoom siv, tso cai rau peb kom tswj tau qhov sib xws thaum tseem muaj qhov hloov pauv hloov pauv rau cov kev siv tshwj xeeb, xws li yog tias koj xav tau qhov loj me me "mem tes" animation nyob rau hauv ib qho chaw. Tsim Tus Thawj Keyframes Token Ib qho ntawm thawj cov txiv hmab txiv ntoo qis uas peb yuav tsum tau daws yog qhov "fade-in" animation. Hauv ib qho ntawm kuv cov haujlwm tsis ntev los no, kuv pom ntau dua kaum ob lub ntsiab lus sib cais, thiab yog, lawv txhua tus tsuas yog ua kom pom qhov pom ntawm 0 txog 1. Yog li, cia peb tsim ib daim ntawv tshiab, hu rau nws kf-tokens.css, ntshuam nws rau hauv peb qhov project, thiab tso peb cov keyframes nrog cov lus pom zoo hauv nws. /* keyframes-tokens.css */

/* * Fade In - ploj nkag animation * Siv: animation: kf-fade-hauv 0.3s yooj yim-tawm; */ @keyframes kf-fade-in { los ntawm { pom: 0; } rau { opacity: 1; } }

Qhov kev tshaj tawm @keyframes ib leeg no hloov tag nrho cov uas tawg pleb ploj-hauv cov yeeb yaj kiab thoob plaws peb cov codebase. Huv si, yooj yim, thiab siv tau thoob ntiaj teb. Thiab tam sim no uas peb muaj qhov token txhais tau hais tias, peb tuaj yeem siv nws los ntawm ib qho khoom siv thoob plaws hauv peb qhov project: .modal { animation: kf-fade-hauv 0.3s yooj yim-tawm; }

.tooltip { animation: kf-fade-hauv 0.2s yooj yim-hauv-tawm; }

.kev ceeb toom { animation: kf-fade-hauv 0.5s yooj yim-tawm; }

Saib Pen Keyframes Tokens - Demo 2 [forked] los ntawm Amit Sheen. Nco tseg: Peb tab tom siv kf- ua ntej hauv tag nrho peb cov npe @keyframes. Cov lus ua ntej no ua haujlwm raws li lub npe chaw uas tiv thaiv kev tsis sib haum xeeb nrog cov animations uas twb muaj lawm hauv qhov project thiab ua kom pom tseeb tias cov keyframes no los ntawm peb cov ntaub ntawv keyframes tokens. Ua Dynamic Slide Lub kf-fade-in keyframes ua haujlwm zoo vim tias nws yooj yim thiab muaj chav me me los cuam tshuam cov khoom. Hauv lwm cov animations, txawm li cas los xij, peb yuav tsum ua kom muaj zog ntau dua, thiab ntawm no peb tuaj yeem siv lub zog loj ntawm CSS cov khoom siv. Qhov no yog qhov uas keyframes tokens tiag tiag ci piv rau cov animations tawg pleb. Cia peb ua ib qho xwm txheej: "swb-hauv" animations. Tab sis swb los ntawm qhov twg? 100px los ntawm txoj cai? 50% ntawm sab laug? Nws puas yuav tsum nkag los ntawm sab saum toj ntawm qhov screen? Los yog tej zaum ntab hauv qab? Muaj ntau qhov ua tau, tab sis tsis yog tsim cov keyframes cais rau txhua qhov kev taw qhia thiab txhua qhov kev hloov pauv, peb tuaj yeem tsim ib qho token hloov tau yooj yim uas hloov mus rau txhua qhov xwm txheej: /* * Swb nyob rau hauv - directional slide animation * Siv --kf-slide-los ntawm kev tswj kev taw qhia * Default: swb los ntawm sab laug (-100%) * Kev siv: * animation: kf-swb-hauv 0.3s yooj yim-tawm; * --kf-slide-los ntawm: -100px 0; // swb los ntawm sab laug * --kf-slide-los ntawm: 100px 0; // swb los ntawm sab xis * --kf-slide-los ntawm: 0 -50px; // swb los ntawm sab saum toj */

@keyframes kf-slide-in { los ntawm { txhais: var(--kf-slide-from, -100% 0); } rau { lus: 00;. } }

Tam sim no peb tuaj yeem siv qhov no ib leeg @keyframes token rau txhua qhov kev taw qhia swb yooj yim los ntawm kev hloov cov --kf-slide-los ntawm cov cuab yeej kev cai: .sidebar { Animation: kf-swb-hauv 0.3s yooj yim-tawm; /* Siv tus nqi pib: swb los ntawm sab laug */ }

.kev ceeb toom { Animation: kf-swb-hauv 0.4s yooj yim-tawm; --kf-slide-from: 0 -50px; /* swb los saum */ }

.modal { animation: kf-fade-hauv 0.5s, kf-slide-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-slide-from: 50px 50px; /* swb ntawm hauv qab-txoj cai */ }

Txoj hauv kev no ua rau peb muaj kev hloov pauv zoo kawg thaum tswj kev sib xws. Ib qho keyframe tshaj tawm, infinite possibilities. Saib Pen Keyframes Tokens - Demo 3 [forked] los ntawm Amit Sheen. Thiab yog tias peb xav ua kom peb cov animations hloov tau yooj yim dua, tso cai rau "swb-tawm" cov teebmeem zoo li, peb tuaj yeem ua tautsuas yog ntxiv ib qho --kf-slide-rau cov cuab yeej kev cai, zoo ib yam li peb yuav pom hauv ntu tom ntej. Bidirectional Zoom Keyframes Lwm cov animation uas tau duplicated hla tej yaam num yog "zoom" teebmeem. Txawm hais tias nws yog qhov hloov maj mam-up rau cov lus toast, ua kom zoom-hauv rau cov qauv, lossis cov nyhuv maj mam txo qis rau nqe lus, zoom animations nyob txhua qhov chaw. Hloov chaw tsim cov keyframes cais rau txhua tus nqi teev, cia peb tsim ib qho yooj yim txheej ntawm kf-zoom keyframes:

/* * Zoom - scale animation * Siv --kf-zoom-los ntawm thiab --kf-zoom-los tswj cov nqi ntsuas * Default: zoom ntawm 80% mus rau 100% (0.8 txog 1) * Kev siv: * animation: kf-zoom 0.2s yooj yim-tawm; * --kf-zoom-from: 0.5; --kf-zoom-to: 1; // Zoom ntawm 50% mus rau 100% * --kf-zoom-from: 1; --kf-zoom-to: 0; // Zoom ntawm 100% mus rau 0% * --kf-zoom-from: 1; --kf-zoom-to: 1.1; // Zoom los ntawm 100% mus rau 110% */

@keyframes kf-zoom { los ntawm { scale: var(--kf-zoom-from, 0.8); } rau { scale: var(--kf-zoom-to, 1); } }

Nrog rau ib qho kev txhais, peb tuaj yeem ua tiav txhua qhov zoom variation peb xav tau: .toast { animation: kf-swb-hauv 0.2s, kf-zoom 0.4s yooj yim-tawm; --kf-slide-los ntawm: 0 100%; /* swb los saum */ /* Siv qhov zoom zoom: ntsuas los ntawm 80% mus rau 100% */ }

.modal { animation: kf-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-zoom-from: 0; /* ua kom zoom ntawm 0% mus rau 100% */ }

.heading { animation: kf-fade-hauv 2s, kf-zoom 2s easy-in; --kf-zoom-from: 1.2; --kf-zoom-to: 0.8; /* maj mam scale down */ }

Lub neej ntawd ntawm 0.8 (80%) ua haujlwm zoo kawg nkaus rau feem ntau cov ntsiab lus UI, zoo li toast lus thiab phaib, thaum tseem ua tau yooj yim los kho rau cov xwm txheej tshwj xeeb. Saib Pen Keyframes Tokens - Demo 4 [forked] los ntawm Amit Sheen. Tej zaum koj yuav tau pom ib yam dab tsi nthuav hauv cov piv txwv tsis ntev los no: peb tau sib txuas cov animations. Ib qho ntawm cov txiaj ntsig tseem ceeb ntawm kev ua haujlwm nrog @keyframes tokens yog tias lawv tau tsim los ua kom sib haum xeeb nrog ib leeg. Qhov kev sib xyaw du no yog txhob txwm ua, tsis yog yuam kev. Peb mam li sib tham txog cov animation muaj pes tsawg leeg nyob rau hauv kom meej ntxiv tom qab, nrog rau qhov twg lawv tuaj yeem ua teeb meem, tab sis feem ntau cov kev sib txuas yog ncaj nraim thiab yooj yim rau kev siv. Nco tseg: Thaum sau tsab xov xwm no, thiab tej zaum vim yog sau nws, kuv pom kuv tus kheej rov xav txog tag nrho lub tswv yim ntawm kev nkag animations. Nrog rau tag nrho cov kev nce qib tsis ntev los no hauv CSS, peb puas tseem xav tau lawv txhua? Hmoov zoo, Adas Argyle tau tshawb nrhiav tib lo lus nug thiab qhia lawv zoo hauv nws qhov blog. Qhov no tsis cuam tshuam dab tsi tau sau ntawm no, tab sis nws nthuav tawm txoj hauv kev tsim nyog xav txog, tshwj xeeb tshaj yog tias koj cov phiaj xwm vam khom rau kev nkag mus rau animations. Nruam Animations Thaum nkag cov animations, xws li "fae", "swb", thiab "zoom" tshwm sim ib zaug thiab tom qab ntawd nres, txuas ntxiv cov animations voj indefinitely kom nyiam los yog qhia txog kev ua haujlwm tsis tu ncua. Ob qho kev ua yeeb yam txuas ntxiv uas kuv tau ntsib yog "spin" (rau kev thauj khoom ntsuas) thiab "mem tes" (rau cov ntsiab lus tseem ceeb). Cov animations nthuav tawm cov kev sib tw tshwj xeeb thaum nws los tsim cov keyframes tokens. Tsis zoo li nkag animations uas feem ntau mus los ntawm ib lub xeev mus rau lwm qhov, cov animations txuas ntxiv yuav tsum tau hloov kho tau zoo hauv lawv cov qauv kev coj ua. Tus kws kho mob Spin Txhua qhov project zoo li siv ntau yam spinning animations. Ib txhia tig clockwise, lwm tus counterclockwise. Qee tus ua ib qho kev sib hloov 360-degree, lwm tus ua ntau yam ua kom muaj txiaj ntsig sai dua. Es tsis txhob tsim cov keyframes cais rau txhua qhov kev hloov pauv, cia peb tsim ib qho kev hloov pauv hloov pauv uas ua haujlwm txhua qhov xwm txheej:

/* * Spin - tig animation * Siv --kf-spin-los ntawm thiab --kf-spin-los tswj kev sib hloov ntau yam * Siv --kf-spin-tig los tswj cov nyiaj sib hloov * Default: tig los ntawm 0deg mus rau 360deg (1 tag nrho kev sib hloov) * Kev siv: * animation: kf-spin 1s linear infinite; * --kf-spin-tig: 2; // 2 tag nrho rotations * --kf-spin-los ntawm: 0deg; -kf-spin-rau: 180deg; // ib nrab rotation * --kf-spin-los ntawm: 0deg; --kf-spin-rau: -360deg; // counterclockwise */

@keyframes kf-spin { los ntawm { tig: var(--kf-spin-from, 0deg); } rau { rotate: calc(var(--kf-spin-from, 0deg) + var(--kf-spin-to, 360deg) * var(--kf-spin-turns, 1)); } }

Tam sim no peb tuaj yeem tsim txhua qhov kev hloov pauv uas peb nyiam:

.loading-spinner { animation: kf-spin 1s linear infinite; /* Siv lub neej ntawd: tig los ntawm 0deg rau 360deg */ }

.fast-loader { animation: kf-spin 1.2s yooj yim-hauv-tawm infinite alternate; --kf-spin-tig: 3; /* 3 tag nrho kev sib hloov rau txhua qhov kev taw qhia ib lub voj voog*/ }

.steped-rov qab { Animation: kf-spin 1.5s cov kauj ruam (8) infinite; --kf-spin-rau: -360deg; /* counterclockwise */ }

.subtle-wiggle { animation: kf-spin 2s yooj yim-hauv-tawm infinite alternate; --kf-spin-los ntawm: -16deg; --kf-spin-rau: 32deg; * wiggle 36 deg: ntawm -18deg thiab +18deg */ }

Saib Pen Keyframes Tokens - Demo 5 [forked] los ntawm Amit Sheen. Qhov kev zoo nkauj ntawm txoj hauv kev no yog tias tib lub keyframes ua haujlwm rau kev thauj khoom spinners, rotating icons, wiggle cuam tshuam, thiab txawm complex multi-tig animations. Lub Pulse Paradox Pulse animations yog qhov nyuaj vim tias lawv tuaj yeem "mem tes" cov khoom sib txawv. Qee qhov pulse lub nplai, lwm tus pulse qhov opacity, thiab qee qhov pulse xim zoo li brightness lossis saturation. Tsis yog tsim cov keyframes cais rau txhua lub cuab yeej, peb tuaj yeem tsim cov keyframes uas ua haujlwm nrog CSS cov cuab yeej. Nov yog ib qho piv txwv ntawm pulse keyframe nrog scale thiab opacity xaiv:

/* * Pulse - pulsing animation * Siv --kf-pulse-scale-los ntawm thiab --kf-pulse-scale-kom tswj qhov ntsuas ntau * Siv --kf-pulse-opacity-los ntawm thiab --kf-pulse-opacity-kom tswj opacity ntau * Default: tsis muaj mem tes (tag nrho cov nqi 1) * Kev siv: * animation: kf-mem tes 2s yooj yim-hauv-tawm infinite alternate; * --kf-pulse-scale-ntawm: 0.95; --kf-pulse-scale-rau: 1.05; // scale mem tes * --kf-pulse-opacity-ntawm: 0.7; --kf-pulse-opacity-rau: 1; // opacity mem tes */

@keyframes kf-pulse { los ntawm { scale: var(--kf-pulse-scale-los ntawm, 1); opacity: var(--kf-pulse-opacity-los ntawm, 1); } rau { scale: var(--kf-pulse-scale-to, 1); opacity: var(--kf-pulse-opacity-rau, 1); } }

Qhov no tsim cov mem tes hloov tau yooj yim uas tuaj yeem ua rau ntau yam khoom: .call-to-action { Animation: kf-mem tes 0.6s infinite alternate; --kf-pulse-opacity-ntawm: 0.5; /* opacity mem tes */ }

.notification-dot { animation: kf-mem tes 0.6s yooj yim-hauv-tawm infinite alternate; --kf-pulse-scale-ntawm: 0.9; --kf-pulse-scale-rau: 1.1; /* nplai mem tes */ }

.text-highlight { Animation: kf-mem tes 1.5s yooj yim-tawm infinite; --kf-pulse-scale-ntawm: 0.8; --kf-pulse-opacity-ntawm: 0.2; /* nplai thiab opacity mem tes */ }

Saib Pen Keyframes Tokens - Demo 6 [forked] los ntawm Amit Sheen. Qhov no ib leeg kf-pulse keyframe tuaj yeem ua txhua yam los ntawm kev mloog maj mam rub mus rau qhov tseem ceeb, txhua qhov yooj yim rau kev kho. Advanced Easing Ib qho zoo heev ntawm kev siv keyframes tokens yog qhov yooj yim npaum li cas los nthuav peb lub tsev qiv ntawv animation thiab muab cov teebmeem uas feem ntau cov neeg tsim khoom yuav tsis thab sau los ntawm kos, zoo li elastic lossis thaws. Ntawm no yog ib qho piv txwv ntawm qhov yooj yim "thaws" keyframes token uas siv ib qho --kf-bounce-los ntawm cov cuab yeej kev cai los tswj qhov dhia qhov siab. /* * Bounce - bouncing nkag animation * Siv --kf-bounce-los ntawm tswj kev dhia siab * Default: dhia ntawm 100vh (off screen) * Kev siv: * animation: kf-thaws 3s yooj yim-hauv; * --kf-bounce-los ntawm: 200px; // dhia los ntawm 200px qhov siab */

@keyframes kf-bounce { 0% { txhais: 0 calc(var(--kf-bounce-from, 100vh) * -1); }

34% { txhais: 0 calc(var(--kf-bounce-from, 100vh) * -0.4); }

55% { txhais: 0 calc(var(--kf-bounce-from, 100vh) * -0.2); }

72% { txhais: 0 calc(var(--kf-bounce-from, 100vh) * -0.1); }

85% { txhais: 0 calc(var(--kf-bounce-from, 100vh) * -0.05); }

94% { txhais: 0 calc(var(--kf-bounce-from, 100vh) * -0.025); }

99% { txhais: 0 calc(var(--kf-bounce-from, 100vh) * -0.0125); }

22%, 45%, 64%, 79%, 90%, 97%, 100% { lus: 00;. animation-time-function: yooj yim-tawm; } }

Animations zoo li "elastic" yog me ntsis trickier vim hais tias ntawm kev xam nyob rau hauv lub keyframes. Peb yuav tsum tau txhais hais tias --kf-elastic-los ntawm-X thiab --kf-elastic-los ntawm-Y cais (ob leeg yog xaiv tau), thiab ua ke lawv cia peb tsim ib qho elastic nkag los ntawm txhua qhov chaw ntawm qhov screen.

/* * Elastic Nyob rau hauv - elastic nkag animation * Siv --kf-elastic-los ntawm-X thiab --kf-elastic-los ntawm-Y los tswj txoj haujlwm pib * Default: nkag los ntawm qhov chaw saum toj kawg nkaus (0, -100vh) * Kev siv: * animation: kf-elastic-hauv 2s yooj yim-hauv-tawm ob leeg; * --kf-elastic-from-X: -50px; * --kf-elastic-ntawm-Y: -200px; // nkag los ntawm (-50px, -200px) */

@keyframes kf-elastic-hauv { 0% { txhais: calc(var(--kf-elastic-from-X, -50vw) * 1) calc(var(--kf-elastic-from-Y, 0px) * 1); }

16% { txhais: calc(var(--kf-elastic-from-X, -50vw) * -0.3227) calc(var(--kf-elastic-from-Y, 0px) * -0.3227); }

28% { txhais: calc(var(--kf-elastic-from-X, -50vw) * 0.1312)calc(var(--kf-elastic-ntawm-Y, 0px) * 0.1312); }

44% { txhais: calc(var(--kf-elastic-from-X, -50vw) * -0.0463) calc(var(--kf-elastic-from-Y, 0px) * -0.0463); }

59% { txhais: calc(var(--kf-elastic-from-X, -50vw) * 0.0164) calc(var(--kf-elastic-from-Y, 0px) * 0.0164); }

73% { txhais: calc(var(--kf-elastic-from-X, -50vw) * -0.0058) calc(var(--kf-elastic-from-Y, 0px) * -0.0058); }

88% { txhais: calc(var(--kf-elastic-from-X, -50vw) * 0.0020) calc(var(--kf-elastic-from-Y, 0px) * 0.0020); }

100% { lus: 00;. } }

Txoj hauv kev no ua rau nws yooj yim rau rov siv dua thiab kho cov keyframes siab dhau los ntawm peb qhov project, tsuas yog los ntawm kev hloov ib qho khoom ntiag tug.

.bounce-and-zoom { animation: kf-bounce 3s yooj yim-hauv, kf-zoom 3s linear; --kf-zoom-from: 0; }

.bounce-thiab-slide { animation-composition: ntxiv; /* Ob qho animations siv txhais lus */ animation: kf-bounce 3s yooj yim-hauv, kf-swb-hauv 3s yooj yim-tawm; --kf-slide-from: -200px; }

.elastic-hauv { animation: kf-elastic-hauv 2s yooj yim-hauv-tawm ob leeg; }

Saib Pen Keyframes Tokens - Demo 7 [forked] los ntawm Amit Sheen. Txog rau qhov no, peb tau pom tias peb tuaj yeem sib sau ua ke keyframes hauv txoj kev ntse thiab ua tau zoo. Yog lawm, tej zaum koj yuav xav tweak tej yam kom zoo dua rau koj qhov project qhov kev xav tau, tab sis peb tau hais txog cov piv txwv ntawm ntau yam animations thiab siv txhua hnub. Thiab nrog cov keyframes tokens nyob rau hauv qhov chaw, peb tam sim no muaj lub tsev thaiv muaj zog rau kev tsim kom zoo ib yam, tswj cov animations thoob plaws tag nrho qhov project. Tsis muaj cov keyframes duplicated, tsis muaj kev sib cav thoob ntiaj teb ntxiv. Tsuas yog txoj hauv kev huv, yooj yim los daws tag nrho peb cov kev xav tau animation. Tab sis lo lus nug tiag tiag yog: Yuav ua li cas peb tsim cov tsev blocks ua ke? Muab tag nrho ua ke Peb tau pom tias kev sib txuas cov keyframes tokens yooj yim. Peb tsis xav tau dab tsi tshwj xeeb tab sis los txhais thawj cov animation, txhais qhov thib ob, teeb tsa qhov hloov pauv raws li xav tau, thiab qhov ntawd yog nws. /* Fade in + swb hauv */ .toast { animation: kf-fade-hauv 0.4s, kf-slide-in 0.4s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-slide-from: 0 40px; }

/* Zoom in + fade in */ .modal { animation: kf-fade-hauv 0.3s, kf-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-zoom-from: 0.7; --kf-zoom-to: 1; }

/* Swb hauv + mem tes */ .kev ceeb toom { animation: kf-slide-hauv 0.5s, kf-mem tes 1.2s yooj yim-hauv-tawm infinite alternate; --kf-slide-from: -100px 0; --kf-pulse-scale-ntawm: 0.95; --kf-pulse-scale-rau: 1.05; }

Cov kev sib txuas ua ke no ua haujlwm zoo nkauj vim tias txhua qhov kev ua yeeb yaj kiab tsom rau cov khoom sib txawv: opacity, transform (translate/scale), thiab lwm yam. Tab sis qee zaum muaj kev tsis sib haum xeeb, thiab peb yuav tsum paub vim li cas thiab yuav ua li cas nrog lawv. Thaum ob qho animations sim ua kom zoo li qub - piv txwv li, ob qho tib si animating nplai lossis ob qho tib si animating opacity - qhov tshwm sim yuav tsis yog qhov koj xav tau. Los ntawm lub neej ntawd, tsuas yog ib qho ntawm cov animations tiag tiag siv rau cov cuab yeej ntawd, uas yog qhov kawg hauv daim ntawv teev cov animation. Qhov no yog ib qho kev txwv ntawm yuav ua li cas CSS tuav ntau yam animations ntawm tib yam khoom. Piv txwv li, qhov no yuav tsis ua haujlwm raws li qhov xav tau vim tias tsuas yog kf-pulse animation yuav siv tau. .bad-combo { animation: kf-zoom 0.5s forwards, kf-mem tes 1.2s infinite alternate; --kf-zoom-from: 0.5; --kf-zoom-to: 1.2; --kf-pulse-scale-ntawm: 0.8; --kf-pulse-scale-rau: 1.1; }

Animation Ntxiv Txoj kev yooj yim tshaj plaws thiab ncaj qha tshaj plaws los daws ntau yam animations uas cuam tshuam rau tib lub cuab yeej yog siv cov cuab yeej animation-composition. Hauv qhov piv txwv kawg saum toj no, kf-pulse animation hloov kf-zoom animation, yog li peb yuav tsis pom qhov pib zoom thiab yuav tsis tau txais qhov ntsuas qhov xav tau ntawm 1.2. Los ntawm kev teeb tsa cov animation-composition ntxiv, peb qhia tus browser kom ua ke ob qho tib si animations. Qhov no muab peb cov txiaj ntsig peb xav tau. .component-ob { animation-composition: ntxiv; }

Saib Pen Keyframes Tokens - Demo 8 [forked] los ntawm Amit Sheen. Txoj hauv kev no ua haujlwm zoo rau feem ntau qhov uas peb xav muab cov teebmeem ntawm tib yam khoom. Nws kuj tseem muaj txiaj ntsig thaum peb xav muab cov animations nrog cov txiaj ntsig zoo li qub. Piv txwv li, yog tias peb muaj ib lub ntsiab lus uas siv cov cuab yeej txhais lus los tso nws raws nraim qhov peb xav tau, thiab tom qab ntawd peb xav ua kom nws nyob rau hauv nrog kf-slide-in keyframes, peb tau txais qhov pom tsis zoo dhia tsis muaj animation-composition. Saib Pen Keyframes Tokens - Demo 9 [forked] los ntawm Amit Sheen. Nrog rau cov animation-tsim teeb tsa ntxiv, cov animation yog du ua ke nrog cov uas twb muaj lawmhloov, yog li lub caij nyob rau hauv qhov chaw thiab animates raws li xav tau. Animation Stagger Lwm txoj hauv kev ntawm kev tuav ntau cov animation yog "stagger" lawv - uas yog, pib qhov thib ob animation me ntsis tom qab thawj qhov ua tiav. Nws tsis yog ib qho kev daws teeb meem uas ua haujlwm rau txhua rooj plaub, tab sis nws muaj txiaj ntsig zoo thaum peb muaj cov animation nkag ua raws li cov animation txuas ntxiv. /* ploj hauv + opacity mem tes */ .kev ceeb toom { animation: kf-fade-hauv 2s yooj yim-tawm, kf-pulse 0.5s 2s yooj yim-hauv-tawm infinite alternate; --kf-pulse-opacity-rau: 0.5; }

Saib Pen Keyframes Tokens - Demo 10 [forked] los ntawm Amit Sheen. Order Matters Ib feem loj ntawm cov animations peb ua haujlwm nrog siv cov cuab yeej hloov pauv. Feem ntau, qhov no tsuas yog yooj yim dua. Nws kuj muaj qhov ua tau zoo dua li kev hloov pauv cov animations tuaj yeem ua GPU nrawm. Tab sis yog tias peb siv kev hloov pauv, peb yuav tsum lees tias qhov kev txiav txim uas peb ua peb qhov kev hloov pauv tseem ceeb. Ntau heev. Hauv peb cov keyframes txog tam sim no, peb tau siv tus kheej hloov pauv. Raws li cov specs, cov no yeej ib txwm siv rau hauv ib qho kev txiav txim ruaj khov: ua ntej, lub caij tau txais kev txhais lus, ces tig, ces ntsuas. Qhov no ua rau kev nkag siab thiab yog qhov peb feem ntau xav tau. Txawm li cas los xij, yog tias peb siv cov cuab yeej hloov pauv, qhov kev txiav txim uas sau ua haujlwm yog qhov kev txiav txim uas lawv tau thov. Hauv qhov no, yog tias peb txav ib yam dab tsi 100 pixels ntawm X-axis thiab tig nws los ntawm 45 degrees, nws tsis zoo ib yam li thawj tig nws los ntawm 45 degrees thiab tom qab ntawd txav nws 100 pixels. /* Pink square: Ua ntej txhais, ces tig */ .example-ib { transform: txhaisX(100px) rotate(45deg); }

/* Ntsuab square: Ua ntej tig, ces txhais */ .example-ob { transform: rotate(45deg) txhaisX(100px); }

Saib Pen Keyframes Tokens - Demo 11 [forked] los ntawm Amit Sheen. Tab sis raws li kev hloov pauv, txhua tus neeg hloov pauv - txhua yam peb tau siv rau keyframes tokens - tshwm sim ua ntej kev hloov pauv. Qhov ntawd txhais tau tias txhua yam koj tau teeb tsa hauv cov cuab yeej hloov pauv yuav tshwm sim tom qab cov animations. Tab sis yog tias koj teeb tsa, piv txwv li, txhais ua ke nrog kf-spin keyframes, tus txhais lus yuav tshwm sim ua ntej cov animation. Tsis meej pem?! Qhov no ua rau cov xwm txheej uas qhov muaj txiaj ntsig zoo li qub tuaj yeem ua rau cov txiaj ntsig sib txawv rau tib lub animation, zoo li hauv cov ntaub ntawv hauv qab no:

/* Common animation rau ob leeg spinners */ .spinner { animation: kf-spin 1s linear infinite; }

/* Pink spinner: txhais ua ntej tig (tus neeg hloov pauv) */ .spinner-pink { txhais: 100% 50%; }

/* Ntsuab spinner: tig ces txhais (function order) */ .spinner-ntsuab { hloov: txhais (100%, 50%); }

Saib Pen Keyframes Tokens - Demo 12 [forked] los ntawm Amit Sheen. Koj tuaj yeem pom tias thawj tus spinner (liab liab) tau txais kev txhais lus uas tshwm sim ua ntej tig ntawm kf-spin, yog li nws thawj zaug txav mus rau nws qhov chaw thiab tom qab ntawd tig. Qhov thib ob spinner (ntsuab) tau txais kev txhais lus () muaj nuj nqi uas tshwm sim tom qab tus neeg hloov pauv, yog li lub caij ua ntej spinner, tom qab ntawd txav mus rau nws lub kaum sab xis tam sim no, thiab peb tau txais cov txiaj ntsig dav dav. Tsis yog, qhov no tsis yog kab laum. Nws tsuas yog ib qho ntawm cov uas peb yuav tsum paub txog CSS thiab nco ntsoov thaum ua haujlwm nrog ntau yam animations lossis ntau yam hloov pauv. Yog tias xav tau, koj tuaj yeem tsim ib qho ntxiv ntawm kf-spin-alt keyframes uas tig cov ntsiab lus uas siv lub rotate() muaj nuj nqi. Txo cov lus tsa suab Thiab thaum peb tab tom tham txog lwm qhov keyframes, peb tsis tuaj yeem tsis quav ntsej qhov "tsis muaj animation" kev xaiv. Ib qho ntawm qhov zoo tshaj plaws ntawm kev siv keyframes tokens yog qhov kev nkag tau yooj yim tuaj yeem ua rau hauv, thiab nws ua tau yooj yim heev. Los ntawm kev tsim peb cov keyframes nrog rau kev nkag mus rau hauv siab, peb tuaj yeem xyuas kom cov neeg siv uas xav txo cov lus tsa suab tau txais kev ua haujlwm zoo dua, tsis muaj kev cuam tshuam, tsis muaj kev ua haujlwm ntxiv lossis cov lej sib tshooj. Lub ntsiab lus tseeb ntawm "Kev Txom Nyem" tuaj yeem hloov me ntsis ntawm ib qho animation mus rau lwm qhov, thiab los ntawm qhov project mus rau qhov project, tab sis ntawm no yog ob peb lub ntsiab lus tseem ceeb uas yuav tsum nco ntsoov: Muting Keyframes Txawm hais tias qee qhov kev ua yeeb yam tuaj yeem ua rau softened los yog qeeb qeeb, muaj lwm yam uas yuav tsum ploj tag thaum thov kom txo cov suab nrov. Pulse animations yog ib qho piv txwv zoo. Txhawm rau kom paub tseeb tias cov animations tsis khiav hauv cov lus tsa suab qis, peb tuaj yeem qhwv lawv hauv cov lus nug uas tsim nyog.

@media (xav-txo-tso tawm: tsis nyiam) { @keyfrmaes kf-pulse { los ntawm { scale: var(--kf-pulse-scale-los ntawm, 1); opacity: var(--kf-pulse-opacity-los ntawm, 1); } rau { scale: var(--kf-pulse-scale-to, 1); opacity:var(--kf-pulse-opacity-rau, 1); } } }

Qhov no ua kom ntseeg tau tias cov neeg siv uas tau teeb tsa qhov nyiam-txo-tsim kom txo qis yuav tsis pom cov animation thiab yuav tau txais kev paub uas phim lawv qhov nyiam. Instant Hauv Muaj qee qhov keyframes peb tsis tuaj yeem tshem tawm yooj yim, xws li nkag cov animations. Tus nqi yuav tsum hloov, yuav tsum animate; txwv tsis pub, lub caij yuav tsis muaj qhov tseeb. Tab sis hauv kev txo qis, qhov kev hloov pauv ntawm tus nqi pib yuav tsum yog tam sim. Txhawm rau ua tiav qhov no, peb yuav txhais cov txheej txheem ntxiv ntawm keyframes qhov twg tus nqi dhia tam sim ntawd mus rau lub xeev kawg. Cov no dhau los ua peb cov keyframes default. Tom qab ntawd, peb yuav ntxiv cov keyframes li niaj zaus hauv cov lus nug hauv xov xwm rau kev nyiam-txo-tsim-tso tseg rau tsis nyiam, ib yam li hauv qhov piv txwv dhau los. /* pop nyob rau hauv instantly rau txo suab */ @keyframes kf-zoom { los ntawm, mus rau { scale: var(--kf-zoom-to, 1); } }

@media (xav-txo-tso tawm: tsis nyiam) { /* Original zoom keyframes */ @keyframes kf-zoom { los ntawm { scale: var(--kf-zoom-from, 0.8); } rau { scale: var(--kf-zoom-to, 1); } } }

Txoj kev no, cov neeg siv uas nyiam txo cov lus tsa suab yuav pom lub ntsiab lus tshwm sim tam sim hauv nws lub xeev kawg, thaum txhua tus neeg tau txais kev hloov pauv hloov pauv. Soft Approach Muaj cov xwm txheej uas peb xav kom qee qhov kev txav mus los, tab sis ntau softer thiab calmer dua li thawj cov animation. Piv txwv li, peb tuaj yeem hloov qhov nkag nkag nrog qhov maj mam ploj mus.

@keyframes kf-bounce { /* Mos fade-in rau txo suab */ }

@media (xav-txo-tso tawm: tsis nyiam) { @keyframes kf-bounce { /* Original bounce keyframes */ } }

Tam sim no, cov neeg siv nrog txo cov lus tsa suab tseem tau txais kev nkag siab ntawm qhov pom, tab sis tsis muaj lub zog hnyav ntawm bounce lossis elastic animation. Nrog rau lub tsev blocks nyob rau hauv qhov chaw, cov lus nug tom ntej yog yuav ua li cas ua rau lawv ib feem ntawm qhov tseeb workflow. Kev sau cov keyframes hloov tau yooj yim yog ib yam, tab sis ua rau lawv txhim khu kev qha thoob plaws ib txoj haujlwm loj yuav tsum muaj ob peb lub tswv yim uas kuv yuav tsum tau kawm txoj kev nyuaj. Kev siv cov tswv yim & Cov kev coj ua zoo tshaj plaws Thaum peb muaj lub tsev qiv ntawv zoo ntawm keyframes tokens, qhov kev sib tw tiag tiag yog yuav ua li cas coj lawv mus rau hauv kev ua haujlwm txhua hnub.

Qhov kev ntxias yog tso tseg tag nrho cov keyframes ib zaug thiab tshaj tawm qhov teeb meem daws tau, tab sis hauv kev xyaum kuv tau pom tias cov txiaj ntsig zoo tshaj plaws los ntawm kev txiav txim siab maj mam. Pib nrog cov animations feem ntau, xws li ploj lossis swb. Cov no yog ib qho yooj yim yeej uas qhia tau tias muaj nuj nqis tam sim ntawd yam tsis tas yuav sau ntawv loj. Lub npe yog lwm lub ntsiab lus uas tsim nyog mloog. Ib qho kev ua ntej sib xws lossis namespace ua rau nws pom tseeb tias cov animations yog tokens thiab qhov twg yog ib qho hauv zos. Nws tseem tiv thaiv kev sib tsoo tsis sib haum thiab pab cov tswv cuab tshiab paub txog qhov sib koom ua ke ntawm ib sab. Cov ntaub ntawv tseem ceeb ib yam li cov cai nws tus kheej. Txawm tias cov lus luv luv saum toj no txhua qhov keyframes token tuaj yeem txuag sij hawm ntawm kev kwv yees tom qab. Tus tsim tawm yuav tsum muaj peev xwm qhib cov ntaub ntawv tokens, luam theej duab rau cov txiaj ntsig lawv xav tau, thiab luam cov qauv siv ncaj qha rau hauv lawv cov khoom. Flexibility yog dab tsi ua rau txoj hauv kev no tsim nyog rau kev siv zog. Los ntawm nthuav tawm cov khoom muaj txiaj ntsig zoo, peb muab cov pab pawg kom hloov kho cov animation yam tsis muaj kev cuam tshuam cov kab ke. Nyob rau tib lub sij hawm, sim tsis txhob overcomplicate. Muab cov pob qhov rooj uas tseem ceeb thiab ua kom cov lus pom zoo. Thaum kawg, nco ntsoov siv tau. Tsis yog txhua qhov animation xav tau kev txo cov lus tsa suab, tab sis ntau tus ua. Ci hauv cov kev hloov kho thaum ntxov txhais tau tias peb tsis tas yuav rov kho lawv tom qab, thiab nws qhia tau hais tias ib theem ntawm kev saib xyuas uas peb cov neeg siv yuav pom txawm tias lawv tsis tau hais txog nws.

Hauv kuv qhov kev paub dhau los, kev kho keyframes tokens ua ib feem ntawm peb cov qauv tsim tokens workflow yog dab tsi ua rau lawv lo. Thaum lawv nyob hauv qhov chaw, lawv tsis hnov ​​​​zoo li cov teebmeem tshwj xeeb thiab ua ib feem ntawm cov lus tsim, ib qho kev txuas ntxiv ntawm qhov khoom txav thiab teb li cas. Wrapping Up Animations tuaj yeem yog ib qho ntawm qhov zoo siab tshaj plaws ntawm kev sib txuas hauv tsev, tab sis tsis muaj cov qauv, lawv tuaj yeem dhau los ua ib qho ntawm qhov loj tshaj ntawm kev ntxhov siab. Los ntawm kev kho cov keyframes ua tokens, koj coj ib yam dab tsi uas feem ntau ntxhov thiab nyuaj los tswj thiab tig mus rau hauv ib qho kev pom tseeb, kev kwv yees. Tus nqi tiag tiag tsis yog hauv kev txuag ob peb kab ntawm cov lej. Nws yog nyob rau hauv kev ntseeg siab tias thaum koj siv qhov ploj, swb, zoom, lossis kiv, koj paub tseeb tias nws yuav coj li cas hla qhov project. Nws yog nyob rau hauv qhov yooj uas los ntawm kev cai khoom yam tsis muaj kev chaos ntawm kev hloov pauv tsis kawg. Thiab nws yog nyob rau hauv lub accessibility tsim rau hauv lub hauv paus es tsis ntxiv likev xav tom qab. Kuv tau pom cov tswv yim no ua haujlwm hauv pab pawg sib txawv thiab sib txawv codebases, thiab tus qauv yeej ib txwm zoo ib yam. Thaum cov tokens nyob rau hauv qhov chaw, keyframes nres ua ib qho kev sib cais ntawm kev ua kom yuam kev thiab ua ib feem ntawm cov lus tsim. Lawv ua rau cov khoom xav tias xav tau ntau dua, zoo ib yam, thiab muaj sia nyob. Yog tias koj coj ib yam los ntawm tsab xov xwm no, cia nws ua qhov no: animations tsim nyog tib yam kev saib xyuas thiab qauv peb twb muab rau cov xim, typography, thiab qhov sib nrug. Kev nqis peev me me hauv keyframes tokens them txhua zaus koj lub interface txav.

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free