Akanya fela: o tsenela porojeke e ntšha, o tsena mo codebase, mme mo diureng di le mmalwa tsa ntlha, o lemoga sengwe se o se tlwaetseng se se kgobang marapo. E gasame mo dipampiring tsa setaele, o fitlhela ditlhaloso tse dintsi tsa @keyframes tsa ditshwantsho tse di tshwanang tsa motheo. Ditlamorago tse tharo tse di farologaneng tsa go nyelela, diphetogo tse pedi kgotsa tse tharo tsa diselaete, ditshwantsho di le mmalwa tsa zoom, le bonnye ditshwantsho tse pedi tse di farologaneng tsa go dikologa ka gonne, sentle, ke eng fa go sa nna jalo? @diforeime tsa konokono { go tswa go { sekale: 1; } go { sekale: 1.1; } }
@diforeime tsa selotlolo tse dikgolo { 0%, 20%, 100% { sekale: 1; } 10%, 40% { sekale: 1.2; } }
Fa e le gore boemo jono bo utlwala bo tlwaelegile, ga o nosi. Mo maitemogelong a me go ralala diporojeke tse di farologaneng, nngwe ya diphenyo tse di tlhomameng thata tse nka di dirang ke go kopanya le go lekanyetsa diforeime tsa konokono. E fetogile mokgwa o o ikanyegang mo e leng gore jaanong ke lebile pele go phepafatsa seno jaaka nngwe ya ditiro tsa me tsa ntlha mo codebase epe e ntšha. Lebaka la go Baka Tlhakatlhakano Go tlhoka tiro gono go a utlwala sentle fa o akanya. Rotlhe re dirisa ditshwantsho tse di tshwanang tsa motheo mo tirong ya rona ya letsatsi le letsatsi: di-fade, di-slide, di-zoom, di-spin le diphelelo tse dingwe tse di tlwaelegileng. Ditshwantsho tseno di tlhamaletse thata, mme go bonolo go tlhama tlhaloso e e bonako ya @keyframes go dira tiro. Kwantle ga thulaganyo ya ditshwantsho tse di kopantsweng, batlhami ba kwala diforeime tseno tsa konokono ka tlholego go tswa kwa tshimologong, ba sa itse gore ditshwantsho tse di tshwanang di setse di le teng go sele mo codebase. Seno se tlwaelegile thata fa go dirwa mo dipolaneteng tse di theilweng mo dikarolong (tse bontsi jwa rona re di dirang mo malatsing ano), ka gonne gantsi ditlhopha di dira ka go tshwana mo dikarolong tse di farologaneng tsa tiriso. Diphelelo? Tlhakatlhakano ya ditshwantsho. Bothata jo bonnye The dintlha tse totobetseng ka ho fetisisa le keyframes pheta-pheta ke senyeha ntshetsopele nako le sa hlokahaleng khoutu bloat. Ditlhaloso tsa foreimi ya konokono tse dintsi di kaya mafelo a mantsi a go tlhabolola fa ditlhokego di fetoga. A o tlhoka go fetola nako ya ditshwantsho tsa gago tsa go nyelela? O tla tlhoka go batla tiragalo nngwe le nngwe mo polokelotshedimosetsong ya gago ya dikhoutu. A o batla go lekalekanya ditiro tsa go nolofatsa? Good luck go bona dipharologano tsotlhe. Go atisa dintlha tseno tsa go tlhokomela go dira gore le dintšhwafatso tse di bonolo tsa ditshwantsho e nne tiro e e jang nako. Bothata jo bogolo Poeletso eno ya diforeime tsa konokono e dira gore go nne le bothata jo bo boferefere thata jo bo latlhegileng ka fa tlase ga lefatshe: serai sa bogolo jwa lefatshe lotlhe. Le fa o dira ka dipolane tse di theilweng mo dikarolong, diforeime tsa konokono tsa CSS di nna di tlhalosiwa mo sekopong sa lefatshe lotlhe. Se se raya gore diforeime tsotlhe tsa konokono di dira mo dikarolong tsotlhe. Ka metlha. Ee, ditshwantsho tsa gago ga di dirise diforeime tsa konokono tse o di tlhalositseng mo karolong ya gago. E dirisa diforeime tsa konokono tsa bofelo tse di tsamaelanang le leina le le tshwanang le le neng la tsenngwa mo sekopong sa lefatshe lotlhe. Fa fela diforeime tsotlhe tsa gago tsa konokono di tshwana, seno se ka lebega e le bothata jo bonnye. Mme ka nako ya fa o batla go itebaganya setshwantsho se se tshelang gore se tshwanele kgetse e e rileng ya tiriso, o mo mathateng, kgotsa se se maswe le go feta, e tla bo e le wena o di bakang. E ka tswa e le gore ditshwantsho tsa gago ga di kitla di dira ka gonne karolo e nngwe e laisitswe morago ga ya gago, e kwala godimo ga diforeime tsa gago tsa konokono, kgotsa karolo ya gago e laisiwa la bofelo mme ka phoso e fetola boitshwaro jwa ditshwantsho tsa karolo nngwe le nngwe e nngwe e dirisa leina la foreimi eo ya konokono, mme o ka nna wa bo o sa lemoge. Sekai se se motlhofo se se bontshang bothata jono ke seno: .karolo-nngwe { /* ditaele tsa dikarolo */ ditshwantsho: pulse 1s bonolo-ka-ntle e sa feleng refosana; }
/* tlhaloso eno ya @keyframes ga e kitla e dira */ @diforeime tsa konokono { go tswa go { sekale: 1; } go { sekale: 1.1; } }
/* moragonyana mo khoutung... */
.karolo-ya-pedi { /* ditaele tsa dikarolo */ ditshwantsho: pulse 1s bonolo-ka-ntle e sa feleng; }
/* diforeime tseno tsa konokono di tla dira mo dikarolong tseno ka bobedi */ @diforeime tsa konokono { 0%, 20%, 100% { sekale: 1; } 10%, 40% { sekale: 1.2; } }
Dikarolo ka bobedi di dirisa leina le le tshwanang la ditshwantsho, mme tlhaloso ya bobedi ya @keyframes e kwala godimo ga ya ntlha. Jaanong bobedi karolo-nngwe le karolo-pedi di tla dirisa diforeime tsa konokono tsa bobedi, go sa kgathalesege gore ke karolo efe e e tlhalositseng diforeime dife tsa konokono. Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 1 [e e kgaogantsweng] ke Amit Sheen. Karolo e e maswe go gaisa? Sena hangata sebetsa ka ho phethahetseng ka ntshetsopele ya lehae empa roba ka tsela e makatsang ka tlhahiso ha dithulaganyo tsa ho aha di fetola tatelano ya ho laisa ya dipampiri tsa hao tsa setaele. O feleletsa o na le ditshwantsho tse di itshwarang ka tsela e e farologaneng go ikaegile ka gore ke dikarolo dife tse di laisitsweng le ka tatelano efe. Tharabololo: Diforeime tsa Botlhokwa tse di Kopantsweng Karabo ya tlhakatlhakano eno e bonolo ka tsela e e gakgamatsang: diforeime tsa konokono tse di fetogang tse di tlhalositsweng pele tse di bolokilweng mo pampiring ya setaele e e abelanwang. Go na le gore re letle karolo nngwe le nngwe go tlhalosa ditshwantsho tsa yone, re tlhama diforeime tsa konokono tse di kwadilweng sentle, tse di bonolo go .tiriso, e e tlhokometsweng, le e e rulaganyeditsweng ditlhokego tse di rileng tsa porojeke ya gago. Akanya ka yone jaaka dithokene tsa diforeime tsa konokono. Fela jaaka re dirisa dithokene tsa mebala le sekgala, mme bontsi jwa rona re setse re dirisa dithokene tsa dithoto tsa ditshwantsho, jaaka ditiro tsa nako le tsa go nolofatsa, ke eng re sa dirise dithokene tsa diforeime tsa konokono le tsone? Mokgwa ono o ka kopana ka tlhago le kelelo ya tiro ya ga jaanong ya letshwao la moakanyetso le o le dirisang, fa o ntse o rarabolola bothata jo bonnye (go boeletsa khoutu) le bothata jo bogolo (dikgotlhang tsa bogolo jwa lefatshe lotlhe) ka nako e le nngwe. Kgopolo e tlhamaletse: tlhama motswedi o le mongwe wa boammaaruri wa ditshwantsho tsotlhe tsa rona tse di tlwaelegileng tse di tshelang. Letlhare leno la setaele le le abelanwang le na le diforeime tsa konokono tse di dirilweng ka kelotlhoko tse di akaretsang dipaterone tsa ditshwantsho tse porojeke ya rona e di dirisang tota. Ga go tlhole go fopholediwa gore a ditshwantsho tse di nyelelang di setse di le teng golo gongwe mo codebase ya rona. Ga go tlhole go kwalwa ditshwantsho tse di tshelang ka phoso go tswa mo dikarolong tse dingwe. Mme selo sa botlhokwa ke seno: tseno ga se fela ditshwantsho tse di sa fetogeng tsa go kopolola le go pega. Di diretswe go nna le maatla le go fetolwa ka dithoto tsa CSS, go re letla go boloka go tlhomama fa re ntse re na le go fetofetoga le maemo go fetola ditshwantsho go ya ka maemo a a rileng a tiriso, jaaka fa o tlhoka ditshwantsho tse dikgolo go sekae tsa “pulse” mo lefelong le le lengwe. Go Aga Letshwao la Ntlha la Diforeime tsa Botlhokwa Nngwe ya maungo a ntlha a a lepeletseng kwa tlase a re tshwanetseng go samagana le one ke ditshwantsho tsa “fade-in”. Mo go nngwe ya diporojeke tsa me tsa bosheng, ke bone ditlhaloso di feta lesomepedi tse di farologaneng tsa go nyelela, mme ee, tsotlhe di ne tsa dira fela gore go se ka ga bonala sentle go tswa go 0 go ya go 1. Ka jalo, a re tlhameng letlhare le lesha la setaele, re le bitse kf-tokens.css, re le tsenye mo porojekeng ya rona, mme re beye diforeime tsa rona tsa konokono tse di nang le ditshwaelo tse di siameng mo teng ga lone. /* diforeime tsa senotlolo-dithokene.css */
/* * Fade In - go nyelela ga botseno * Tiriso: ditshwantsho: kf-nyemela-ka 0.3s bonolo-ntle; */ @diforeime tsa konokono kf-go nyelela { go tswa go { go sa bonale: 0; } go { go sa bonale: 1; } }
Kgoeletso eno e le nngwe ya @keyframes e emisetsa ditshwantsho tseo tsotlhe tse di gasameng tsa go nyelela mo lefelong la rona la dikhoutu. E phepa, e bonolo, e bile e dira mo lefatsheng lotlhe. Mme jaanong ka re na le letshwao le le tlhalositsweng, re ka le dirisa go tswa mo karolong epe fela mo porojekeng yotlhe ya rona: .mofuta { ditshwantsho: kf-nyemela-ka 0.3s nolofatsa-tsoa; }
.kgakololo ya sedirisiwa { ditshwantsho: kf-nyemela-ka 0.2s bonolo-ka-ntle; }
.kitsiso { ditshwantsho: kf-nyemela-ka 0.5s nolofatsa-tsoa; }
Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 2 [e e kgaogantsweng] ke Amit Sheen. Ela tlhoko: Re dirisa ketapele ya kf- mo maineng otlhe a rona a @keyframes. Setlhogo seno se dira jaaka sebaka sa maina se se thibelang dikgotlhang tsa go naya maina le ditshwantsho tse di leng teng mo porojekeng mme se dira gore go bonale sentle ka bonako gore diforeime tseno tsa konokono di tswa mo faeleng ya rona ya dithokene tsa diforeime tsa konokono. Go Dira Selaete se se Fetofetogang Di-keyframe tsa kf-fade-in di dira sentle thata ka gonne di bonolo mme ga go na sebaka se sennye sa go tlhakatlhakanya dilo. Mo ditshwantshong tse dingwe, le fa go ntse jalo, re tlhoka go nna le maatla thata, mme fano re ka dirisa maatla a magolo a dithoto tsa setso tsa CSS. Mona ke moo di-keyframes di-tokens di phatsimang e le kannete ha di bapiswa le ditshwantsho tse hasaneng tse sa fetoheng. A re tseyeng boemo jo bo tlwaelegileng: ditshwantsho tse di “relelang.” Mme o relele o tswa kae? 100px go tswa ka fa mojeng? 50% go tswa molemeng? A e tshwanetse go tsena go tswa kwa godimo ga sekerini? Kana gongwe go kokobala go tswa kwa tlase? Dikgonagalo tse dintsi jalo, mme go na le go tlhama diforeime tsa konokono tse di farologaneng tsa ntlha nngwe le nngwe le pharologano nngwe le nngwe, re ka aga letshwao le le lengwe le le fetofetogang le le tlwaelanang le ditiragalo tsotlhe: /* * Relela mo teng - setshwantsho sa selaete sa ntlha * Dirisa --kf-relela-go tswa go laola ntlha * Thulaganyetsoruri: e relela go tswa kafa molemeng (-100%) * Tiriso: * ditshwantsho: kf-relela-ka 0.3s bonolo-ntle; * --kf-selaete-go tswa: -100px 0; // relela go tswa molemeng * --kf-selaete-go tswa: 100px 0; // relela go tswa ka fa mojeng * --kf-selaete-go tswa: 0 -50px; // relela go tswa kwa godimo */
@diforeime tsa konokono kf-selaete-mo { go tswa go { ranola: var (--kf-selaete-go tswa, -100% 0); } go { ranola: 0 0; } }
Jaanong re ka dirisa letshwao leno le le lengwe la @keyframes mo ntlheng epe fela ya selaete ka go fetola --kf-slide-from thoto e e tlwaelegileng: .bara ya kafa thoko { ditshwantsho: kf-relela-ka 0.3s nolofatsa-ntle; /* E dirisa boleng jwa thulaganyetsoruri: diselaete go tswa molemeng */ }
.kitsiso { ditshwantsho: kf-relela-ka 0.4s nolofatsa-ntle; --kf-selaete-go tswa: 0 -50px; /* relela go tswa kwa godimo */ }
.mofuta { dipopae: kf-go nyelela-mo 0.5s, kf-relela-ka 0.5s khubiki-bezier (0.34, 1.56, 0.64, 1); --kf-selaete-go tswa: 50px 50px; /* relela go tswa kwa tlase-ka fa mojeng */ }
Mokgwa ono o re naya go fetofetoga le maemo ka tsela e e gakgamatsang fa re ntse re boloka go tlhomama. Kgoeletso e le nngwe ya keyframe, dikgonagalo tse di sa feleng. Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 3 [e e kgaogantsweng] ke Amit Sheen. Mme fa re batla go dira gore ditshwantsho tsa rona tse di tshelang di nne le diphelelo tse di fetofetogang le go feta, di letle gore le tsone di nne le diphelelo tsa “go relela,” re ka kgona .simply add a --kf-slide-to custom property, similar to what we’ll see in the next section. Diforeime tsa Botlhokwa tsa Zoom ya Dintlhapedi Another common animation that gets duplicated across projects is “zoom” effects. E ka tswa e le go oketsa ka tsela e e sa bonaleng melaetsa ya toast, go atolosa ka tsela e e gakgamatsang ya di-modal, kgotsa go fokotsa ka bonolo ga ditlhogo, ditshwantsho tsa go atolosa di gongwe le gongwe. Instead of creating separate keyframes for each scale value, let’s build one flexible set of kf-zoom keyframes:
/* * Zoom - sekale sa dipopae * Use --kf-zoom-from and --kf-zoom-to to control scale values * Thulaganyetsoruri: e atolosa go tswa go 80% go ya go 100% (0.8 go ya go 1) * Tiriso: * dipopae: kf-atolosetsa 0.2s bonolo-ntle; * --kf-atolosetsa-go tswa go: 0.5; --kf-atolosa-go: 1; // atolosetsa go tswa go 50% go ya go 100% * --kf-atolosetsa-go tswa: 1; --kf-atolosetsa-go: 0; // atolosetsa go tswa go 100% go ya go 0% * --kf-atolosetsa-go tswa: 1; --kf-atolosetsa-go: 1.1; // atolosa go tswa go 100% go ya go 110% */
@diforeime tsa konokono kf-atolosetsa { go tswa go { sekala: var (--kf-atolosetsa-go tswa, 0.8); } go { sekala: var (--kf-atolosetsa-go, 1); } }
Ka tlhaloso e le nngwe, re ka kgona go fitlhelela pharologano epe fela ya zoom e re e tlhokang: .borotho { dipopae: kf-relela-mo 0.2s, kf-atolosetsa 0.4s go nolofatsa; --kf-selaete-go tswa: 0 100%; /* relela go tswa kwa godimo */ /* E dirisa zoom ya thulaganyetsoruri: e lekanyetsa go tswa go 80% go ya go 100% */ }
.mofuta { animation: kf-zoom 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); --kf-atolosetsa-go tswa: 0; /* zoom e e gakgamatsang go tswa go 0% go ya go 100% */ }
.setlhogo { dipopae: kf-go nyelela mo 2s, kf-atolosetsa 2s bonolo-ka; --kf-atolosa-go tswa mo: 1.2; --kf-atolosetsa-go: 0.8; /* fokotsa sekale ka bonolo */ }
Ka tlwaelo ya 0.8 (80%) e sebetsa hantle bakeng sa dikarolo tse ngata tsa UI, jwalo ka melaetsa ya toast le dikarata, ha e ntse e le bonolo ho e fetola bakeng sa dinyewe tse ikgethileng. See the Pen Keyframes Tokens - Demo 4 [forked] by Amit Sheen. You might have noticed something interesting in the recent examples: we've been combining animations. Nngwe ya melemo ya konokono ya go dira le dithokene tsa @keyframes ke gore di diretswe go kopana sentle. Tlhamo eno e e borethe ke ya ka boomo, e seng ka phoso. Re tla tlotla ka tlhamo ya ditshwantsho tse di tshelang ka botlalo moragonyana, go akaretsa le gore di ka nna le mathata kae, mme bontsi jwa dikopano di tlhamaletse e bile di bonolo go di dirisa. Note: While writing this article, and maybe because of writing it, I found myself rethinking the whole idea of entrance animations. Ka kgatelopele yotlhe ya bosheng mo CSS, a re sa ntse re di tlhoka gotlhelele? Luckily, Adam Argyle explored the same questions and expressed them brilliantly in his blog. Seno ga se ganetsane le se se kwadilweng fano, mme se tlhagisa tsela e e tshwanetseng go akanyediwa, segolobogolo fa diporojeke tsa gago di ikaegile thata ka ditshwantsho tse di tshelang tsa go tsena. Ditshwantsho tse di Tswelelang Fa ditshwantsho tsa go tsena, tse di jaaka “fade”, “slide”, le “zoom” di diragala gangwe fela mme morago ga moo di bo di ema, ditshwantsho tse di tswelelang pele di tlhola di tlhotlhorega ka bosakhutleng go gogela tlhokomelo kgotsa go bontsha tiro e e tswelelang. Ditshwantsho tse pedi tse di tlwaelegileng tse di tswelelang pele tse ke kopanang le tsone ke “spin” (ya ditshupo tsa go laisa) le “pulse” (ya go tlhomolola dielemente tsa botlhokwa). These animations present unique challenges when it comes to creating keyframes tokens. Ho fapana le ditshwantsho tsa ho kena tseo ka tlwaelo di tlohang mmuso o mong ho ya ho o mong, ditshwantsho tse tswelang pele di hloka ho ba tse fetohang haholo mekgweng ya tsona ya boitshwaro. Ngaka ya go Dikolosa Porojeke e nngwe le e nngwe e bonahala e sebedisa ditshwantsho tse ngata tsa spin. Tse dingwe di dikologa ka fa letlhakoreng la tshupanako, tse dingwe di dikologa ka fa letlhakoreng le lengwe. Bangwe ba dira go dikologa gangwe fela ga didikirii di le 360, ba bangwe ba dira diphetogo tse dintsi gore ba nne le phelelo e e bonako. Mo boemong jwa go tlhama diforeime tse di farologaneng tsa pharologano nngwe le nngwe, a re ageng spin e le nngwe e e fetofetogang e e kgonang go dira ditiragalo tsotlhe:
/* * Popaetso ya go dikologa - go dikologa * Dirisa --kf-dikolosa-go tswa le --kf-dikolosa-go ya go laola selekanyo sa go dikologa * Dirisa --kf-spin-turn go laola selekanyo sa go dikologa * Ka thulaganyetsoruri: e dikologa go tswa go 0deg go ya go 360deg (1 go dikologa ka botlalo) * Tiriso: * ditshwantsho: kf-spin 1s mola o sa feleng; * --kf-dikolosa-diphetogo: 2; // Ditikologo tse 2 tse di tletseng * --kf-dikolosa-go tswa: 0deg; --kf-dikolosa-go: 180dikirii; // halofo ya go dikologa * --kf-dikolosa-go tswa: 0deg; --kf-dikolosa-go: -360dikirii; // go ya ka fa letlhakoreng la tshupanako */
@diforeime tsa konokono kf-dikolosa { go tswa go { dikolosa: var (--kf-dikolosa-go tswa, 0deg); } go { dikolosa: calc (var (--kf-dikolosa-go tswa, 0deg) + var (--kf-dikolosa-go, 360deg) * var (--kf-dikolosa-diphetogo, 1)); } }
Jaanong re ka tlhama pharologano epe fela ya go dikologa e re e ratang:
.go laisa-sedikolosi { ditshwantsho: kf-spin 1s mola o sa feleng; /* E dirisa thulaganyetsoruri: e dikologa go tswa go 0deg go ya go 360deg */ }
.selaisa-ka bonako { ditshwantsho: kf-spin 1.2s bonolo-ka-ntle e sa feleng e fapaneng; --kf-dikolosa-diphetogo: 3; /* Ditikologo tse 3 tse di tletseng tsa ntlha nngwe le nngwe ka modikologo*/ }
.go boela kwa morago ka dikgato { ditshwantsho: kf-spin 1.5s dikgato (8) tse di sa feleng; --kf-dikolosa-go: -360dikirii; /* go ya ka fa letlhakoreng la tshupanako */ }
.go tshikhinyega ka bofitlha { ditshwantsho: kf-spin 2s bonolo-ka-ntle e sa feleng e fapaneng; --kf-dikolosa-go tswa: -16deg; --kf-dikolosa-go: 32deg; /* tshikhinyega 36 dikirii: fa gare ga -18dikirii le +18dikirii */ }
Bona Dithokene tsa Diforeime tsa Senotlolo sa Pene - Pontsho 5 [e e kgaogantsweng] ke Amit Sheen. Bontle jwa mokgwa ono ke gore diforeime tse di tshwanang tsa konokono di bereka go laisa di-spinner, diaekhone tse di dikologang, ditlamorago tsa wiggle, tota le ditshwantsho tse di raraaneng tse di nang le di-turn tse dintsi. Kganetsano ya Pulo ya Pelo Ditshwantsho tsa pulse di boferefere ka gonne di kgona go “pusa” dithoto tse di farologaneng. Bangwe ba itaya sekale, ba bangwe ba itaya opacity, mme bangwe ba itaya dipharologantsho tsa mmala tse di jaaka go phatsima kgotsa go tlala. Go na le go tlhama diforeime tsa konokono tse di farologaneng tsa thoto nngwe le nngwe, re ka tlhama diforeime tsa konokono tse di dirang le thoto nngwe le nngwe ya CSS. Sekao sa foreimi ya konokono ya pulse e e nang le ditlhopho tsa sekale le go sa bonale sentle ke seno:
/* * Go itaya ga pelo - go itaya ga pelo * Dirisa --kf-sekale sa go itaya ga pelo-go tswa le --kf-sekale sa go itaya ga pelo-go ya go laola selekanyo sa sekale * Dirisa --kf-go sa bonale ga pelo-go tswa le --kf-go sa bonale ga pelo-go ya go laola selekanyo sa go sa bonale * Thulaganyetsoruri: ga go na go itaya ga pelo (boleng jotlhe 1) * Tiriso: * dipopae: kf-pulse 2s bonolo-ka-tsoa sa feleng refosana; * --kf-sekale sa go itaya ga pelo-go tswa go: 0.95; --kf-sekale sa go itaya ga pelo-go: 1.05; // sekale sa go itaya ga pelo * --kf-go-sa bonale ga pelo-go tswa go: 0.7; --kf-go sa bonale ga pelo-go: 1; // go itaya ga pelo */
@diforeime tsa konokono kf-pulse { go tswa go { sekala: var (--kf-sekale sa go itaya ga pelo-go tswa, 1); go sa bonale: var (--kf-go sa bonale ga pelo-go tswa, 1); } go { sekala: var (--kf-sekale sa go itaya-go, 1); go sa bonale: var (--kf-go sa bonale-go-go, 1); } }
Seno se dira gore go itaya ga pelo go go fetofetogang go go kgonang go dira gore dikarolo tse dintsi di tshele: .pitso-ya-kgato { ditshwantsho: kf-pulse 0.6s e sa feleng e fapaneng; --kf-go sa bonale ga pelo-go tswa go: 0.5; /* go itaya ga pelo ga go sa bonale sentle */ }
.lerothodi la kitsiso { ditshwantsho: kf-pulse 0.6s bonolo-ka-ntle e sa feleng e fapaneng; --kf-sekale sa go itaya ga pelo-go tswa go: 0.9; --kf-sekale sa go itaya ga pelo-go: 1.1; /* sekale sa go itaya ga pelo */ }
.sekwalwa-se se tlhomologileng { ditshwantsho: kf-pulse 1.5s bonolo-tsoa e sa feleng; --kf-sekale sa go itaya ga pelo-go tswa go: 0.8; --kf-go sa bonale ga pelo-go tswa go: 0.2; /* sekale le go itaya ga pelo ga go sa bonale */ }
Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 6 [e e kgaogantsweng] ke Amit Sheen. Keyframe ena e le nngwe ya kf-pulse e ka sebetsana le ntho e nngwe le e nngwe ho tloha ho tshwara tlhokomelo e poteletseng ho ya ho dintlhakgolo tse makatsang, tsohle ha di ntse di le bonolo ho di fetola. Nolofatso e e Gatetseng Pele Nngwe ya dilo tse dikgolo ka go dirisa di-keyframe di-token ke kafa go leng bonolo ka gone go atolosa laeborari ya rona ya ditshwantsho le go tlamela ka ditlamorago tse bontsi jwa batlhami ba neng ba ka se itshwenye ka go di kwala go tswa kwa tshimologong, jaaka elastic kgotsa bounce. Fano go na le sekai sa letshwao le le bonolo la diforeime tsa konokono la “go boa” le le dirisang thoto ya --kf-bounce-from e e tlwaelegileng go laola bogodimo jwa go tlola. /* * Bounce - motshameko wa botseno o o bontshang * Dirisa --kf-boa-go tswa go laola bogodimo jwa go tlola * Ka thulaganyetsoruri: e tlola go tswa go 100vh (e tswa mo sekirining) * Tiriso: * ditshwantsho: kf-boa 3s bonolo-ka; * --kf-go boa-go tswa: 200px; // tlola go tswa mo bogodimong jwa 200px */
@diforeime tsa konokono kf-boa { 0% { ranolela: 0 palo (var (-- kf-boa-go tswa, 100vh) * -1); }
34% { ranola: 0 palo (var (--kf-boa-go tswa, 100vh) * -0.4); }
55% { ranolela: 0 palo (var (--kf-boa-go tswa, 100vh) * -0.2); }
72% { ranola: 0 palo (var (-- kf-boa-go tswa, 100vh) * -0.1); }
85% { ranola: 0 palo (var (--kf-boa-go tswa, 100vh) * -0.05); }
94% { ranola: 0 khalc (var (--kf-boa-go tswa, 100vh) * -0.025); }
99% { ranola: 0 khalc (var (--kf-boa-go tswa, 100vh) * -0,0125); }
22%, 45%, 64%, 79%, 90%, 97%, 100% ranola: 0 0; ditshwantsho-nako-tshebetso: bonolo-tsoa; } }
Ditshwantsho tse di tshwanang le “elastic” di batla di le boferefere ka ntlha ya dipalelo tse di mo teng ga diforeime tsa konokono. Re tlhoka go tlhalosa --kf-elastic-go tswa go-X le --kf-elastic-go tswa go-Y ka go kgaogana (ka bobedi ke tsa boikgethelo), mme mmogo di re letla go tlhama botseno jwa elastic go tswa mo ntlheng epe fela mo sekirining.
/* * Elasetiki Mo - elasetiki ya botseno * Dirisa --kf-rekere-go-tswa-X le --kf-rekere-go-tswa-Y go laola boemo jwa tshimologo * Ka thulaganyetsoruri: e tsena go tswa kwa bogareng jo bo kwa godimo (0, -100vh) * Tiriso: * dipopae: kf-rekere-ka 2s bonolo-ka-tsoa ka bobeli; * --kf-elasetiki-go-tswa-X: -50px; * --kf-elasetiki-go-tswa-Y: -200px; // tsena go tswa go (-50px, -200px) */
@diforeime tsa konokono kf-elasetiki-mo { 0% { ranolela: khalc (var (--kf-rekere-go-tswa-X, -50v) * 1) khalc (var (--kf-rekere-go-tswa-Y, 0px) * 1); }
16% { ranola: khalc (var (--kf-e-rekere-go tswa-go-X, -50vw) * -0.3227) kalc (var (--kf-rekere-go-tswa-Y, 0px) * -0.3227); }
28% { ranola: palo (mofuta (--kf-elasetiki-go-tswa-X, -50vw) * 0.1312)calc (var (--kf-e-rekere-go-tswa-Y, 0px) * 0.1312); }
44% { ranola: khalc (var (--kf-rekere-go tswa-go-X, -50vw) * -0,0463) kalc (var (--kf-rekere-go-tswa-Y, 0px) * -0,0463); }
59% { ranolela: khalc (var (--kf-e-rekere-go tswa-go-X, -50vw) * 0.0164) khalc (var (--kf-e-rekere-go-tswa-Y, 0px) * 0.0164); }
73% { ranola: khalc (mofuta (--kf-rekere-go tswa-go-X, -50vw) * -0,0058) khalc (mofuta (--kf-rekere-go-tswa-Y, 0px) * -0,0058); }
88% { ranola: khalc (var (--kf-e-rekere-go tswa-go-X, -50vw) * 0,0020) kalk (var (--kf-rekere-go-tswa-Y, 0px) * 0,0020); }
100% { ranola: 0 0; } }
Mokgwa o o dira gore go nne bonolo go dirisa gape le go fetola diforeime tsa konokono tse di tsweletseng go ralala porojeke ya rona, fela ka go fetola thoto e le nngwe e e tlwaelegileng.
.boa-le-go-atolosa { dipopae: kf-boa 3s bonolo-go tsena, kf-atolosetsa 3s mola; --kf-atolosetsa-go tswa: 0; }
.boa-le-go-relela { ditshwantsho-tlhamo: oketsa; /* Ditshwantsho ka bobedi di dirisa thanolo */ dipopae: kf-boa 3s bonolo-go tsena, kf-relela-ka 3s nolofatsa-ntle; --kf-selaete-go tswa: -200px; }
.elasetiki-mo { ditshwantsho: kf-rekere-ka 2s bonolo-ka-ntle ka bobedi; }
Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 7 [e e kgaogantsweng] ke Amit Sheen. Go fitlha ga jaana, re bone kafa re ka kopanyang diforeime tsa konokono ka gone ka tsela e e botlhale le e e nang le matswela. Of course, you might want to tweak things to better fit your project’s needs, but we’ve covered examples of several common animations and everyday use cases. And with these keyframes tokens in place, we now have powerful building blocks for creating consistent, maintainable animations across the entire project. Ga go tlhole go na le diforeime tsa konokono tse di ipoeleditseng, ga go tlhole go na le dikgotlhang tsa bogolo jwa lefatshe lotlhe. Tsela e e phepa fela, e e siameng ya go samagana le ditlhoko tsotlhe tsa rona tsa ditshwantsho tse di tshelang. Mme potso ya mmatota ke gore: Re tlhama jang dilo tseno tse di agang mmogo? Go di Kopanya Tsotlhe Re bone gore go kopanya dithokene tsa diforeime tsa konokono go bonolo. Ga re tlhoke sepe se se kgethegileng fa e se go tlhalosa setshwantsho sa ntlha, go tlhalosa sa bobedi, go seta diphetogo jaaka go tlhokega, mme ke gone. /* Nyamela + relela */ .borotho { dipopae: kf-go nyelela-mo 0.4s, kf-relela-ka 0,4s khubiki-bezier (0,34, 1,56, 0,64, 1); --kf-selaete-go tswa: 0 40px; }
/* Atolosetsa + nyelela */ .mofuta { dipopae: kf-go nyelela-mo 0.3s, kf-zoom 0,3s khubiki-beziere (0,34, 1,56, 0,64, 1); --kf-atolosetsa-go tswa: 0.7; --kf-atolosa-go: 1; }
/* Relela mo teng + go itaya ga pelo */ .kitsiso { dipopae: kf-relela-mo 0.5s, kf-pulse 1.2s bonolo-ka-tsoa sa feleng refosana; --kf-selaete-go tswa: -100px 0; --kf-sekale sa go itaya ga pelo-go tswa: 0.95; --kf-sekale sa go itaya ga pelo-go: 1.05; }
These combinations work beautifully because each animation targets a different property: opacity, transform (translate/scale), etc. But sometimes there are conflicts, and we need to know why and how to deal with them. When two animations try to animate the same property — for example, both animating scale or both animating opacity — the result will not be what you expect. Ka thulaganyetsoruri, ke e le nngwe fela ya ditshwantsho tse di tshelang e tota e dirisiwang mo thotong eo, e leng ya bofelo mo lenaaneng la ditshwantsho tse di tshelang. Se ke tekanyetso ya ka moo CSS e tshwarang ditshwantsho tse dintsi ka teng mo lefelong le le lengwe. Ka sekai, seno ga se kitla se dira jaaka go ikaeletswe ka gonne ke fela ditshwantsho tsa kf-pulse tse di tla dirang. .kopanyo e e sa siamang { dipopae: kf-zoom 0.5s kwa pele, kf-pulse 1.2s e e sa feleng e e refosanang; --kf-atolosetsa-go tswa go: 0.5; --kf-atolosetsa-go: 1.2; --kf-sekale sa go itaya ga pelo-go tswa go: 0.8; --kf-sekale sa go itaya ga pelo-go: 1.1; }
Tlaleletso ya Ditshwantsho tse di tshelang Tsela e e bonolo le e e tlhamaletseng ya go tshwara ditshwantsho tse dintsi tse di amang thoto e le nngwe ke go dirisa thoto ya ditshwantsho-tlhamo. In the last example above, the kf-pulse animation replaces the kf-zoom animation, so we will not see the initial zoom and will not get the expected scale to of 1.2. Ka go seta ditshwantsho-setlhamo go oketsa, re bolelela sebatli go kopanya ditshwantsho ka bobedi. Seno se re naya dipholo tse re di batlang. .karolo-ya-pedi { ditshwantsho-tlhamo: oketsa; }
Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 8 [e e kgaogantsweng] ke Amit Sheen. Mokgwa o o dira sentle mo dikgetseng di le dintsi tse mo go tsone re batlang go kopanya ditlamorago mo thotong e le nngwe. Gape e mosola fa re tlhoka go kopanya ditshwantsho tse di tshelang le boleng jwa thoto e e sa fetogeng. For example, if we have an element that uses the translate property to position it exactly where we want, and then we want to animate it in with the kf-slide-in keyframes, we get a nasty visible jump without animation-composition. Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 9 [e e kgaogantsweng] ke Amit Sheen. Ka sete ya tlhamo ya ditshwantsho tse di tshelang go tsenngwa, ditshwantsho tse di tshelang di kopanngwa ka thelelo le tse di leng tengfetola, ka jalo elemente e nna mo lefelong la yone mme e tshela jaaka go ne go solofetswe. Ditshwantsho tse di tshegisang Tsela e nngwe ya go tshwara ditshwantsho tse dintsi ke go di “tlhotlhora” — ke gore, go simolola ditshwantsho tsa bobedi go sekae fa tsa ntlha di sena go fela. Ga se tharabololo e e dirang mo kgetseng nngwe le nngwe, mme e mosola fa re na le motshikinyego wa botseno o o latelang ke motšhini o o tswelelang. /* nyelela + go itaya ga pelo ga go sa bonale */ .kitsiso { dipopae: kf-nyemela-mo 2s nolofatsa-ntle, kf-pulse 0.5s 2s bonolo-ka-ntle e sa feleng e fapaneng; --kf-go sa bonale ga pelo-go-go: 0.5; }
Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 10 [e e kgaogantsweng] ke Amit Sheen. Dikgang tsa Taelo Karolo e kgolo ya ditshwantsho tse re dirang le tsone di dirisa thoto ya go fetola. Mo maemong a mantsi, seno se siametse fela. E boetse e na le tshebetso molemo e le phetoho ditshwantsho ka GPU-potlakisa. Mme fa re dirisa diphetogo, re tlhoka go amogela gore tatelano e re dirang diphetogo tsa rona ka yone e botlhokwa. Ntsi. Mo diforeimeng tsa rona tsa konokono go tla go fitlha jaanong, re dirisitse diphetogo ka bongwe. Ho ya ka di-specs, tsena di sebediswa kamehla ka tatellano e tsitsitseng: pele, elemente e fumana phetolelo, ebe e potoloha, ebe e lekanya. Seno se a utlwala mme ke sone se bontsi jwa rona re se solofetseng. Le fa go ntse jalo, fa re dirisa thoto ya transform, tatelano e ditiro di kwadilweng ka yone ke tatelano e di dirisiwang ka yone. Mo kgannyeng eno, fa re tsamaisa sengwe ka dipiksele di le 100 mo X-axis mme re bo re se dikolosa ka didikirii di le 45, ga go tshwane le go se dikolosa pele ka didikirii di le 45 re bo re se tsamaisa dipiksele di le 100. /* Sekwere se se pinki: Ranola pele, o bo o dikolosa */ .sekao-nngwe { fetola: ranolaX (100px) dikolosa (45deg); }
/* Sekwere se setala: Dikolosa pele, o bo o ranola */ .sekao-pedi { fetola: dikolosa (45deg) ranolaX (100px); }
Bona Dithokene tsa Diforeime tsa Senotlolo sa Pene - Pontsho 11 [e e kgaogantsweng] ke Amit Sheen. Mme go ya ka tatelano ya phetogo, diphetogo tsotlhe ka bongwe — sengwe le sengwe se re se dirisitseng mo dithokeneng tsa diforeime tsa konokono — se diragala pele ga ditiro tsa phetogo. Seo se raya gore sengwe le sengwe se o se setang mo thotong ya phetolo se tla diragala morago ga ditshwantsho. Mme fa o seta, ka sekai, go ranola mmogo le diforeime tsa konokono tsa kf-spin, go ranola go tla diragala pele ga motshikinyego. O sa ntse o tlhakane tlhogo?! Seno se dira gore go nne le maemo a mo go one boleng jo bo sa fetogeng bo ka bakang dipholo tse di farologaneng tsa ditshwantsho tse di tshwanang, jaaka mo kgannyeng e e latelang:
/* Ditshwantsho tse di tlwaelegileng tsa di-spinner ka bobedi */ .modikolosi { ditshwantsho: kf-spin 1s mola o sa feleng; }
/* Sedikolosi se se pinki: ranola pele ga go dikolosa (phetogo ya motho ka bongwe) */ .pinki-sedikolosi { ranola: 100% 50%; }
/* Sedikolosi se setala: dikolosa o bo o ranola (tatelano ya tiro) */ .botala jwa sedikolosi { fetola: ranola (100%, 50%); }
Bona Dithokene tsa Diforeime tsa Senotlolo tsa Pene - Pontsho 12 [e e kgaogantsweng] ke Amit Sheen. O ka bona gore spinner ya ntlha (pinki) e bona phetolelo e e diragalang pele ga go dikologa ga kf-spin, ka jalo e simolola pele go ya kwa lefelong la yone mme morago e bo e dikologa. Spinner ya bobedi (tala) e fumana tshebetso ya translate () e etsahalang kamora phetoho ya motho ka mong, kahoo elemente e dikologa pele, ebe e tsamaya mabapi le angle ya yona ya jwale, mme re fumana phello eo e bulehileng ya potoloho. Nnyaa, se ga se khukhwana. Ke nngwe ya dilo tseo re tlhokang go di itse ka CSS le go di gakologelwa fa re dira ka ditshwantsho tse dintsi kgotsa diphetogo tse dintsi. Fa go tlhokega, o ka tlhama gape sete e nngwe ya diforeime tsa konokono tsa kf-spin-alt tse di dikolosang dielemente o dirisa tiro ya rotate(). Tshisinyo e e Fokoditsweng Mme fa re ntse re bua ka diforeime tse dingwe tsa konokono, ga re ka ke ra itlhokomolosa kgetho ya “go se nne le ditshwantsho tse di tshelang”. E nngwe ya melemo e meholo ka ho fetisisa ya ho sebedisa di-keyframe di-tokens ke hore phihlello e ka besiwa, mme ha e le hantle ho bonolo haholo ho etsa. Ka go tlhama diforeime tsa rona tsa konokono re akantse ka go fitlhelega, re ka netefatsa gore badirisi ba ba ratang go fokodiwa ga motsamao ba bona maitemogelo a a borethe, a a sa iteegeng tsebe thata, kwantle ga tiro e e oketsegileng kgotsa go boeletsa khoutu. Bokao jo bo tlhomameng jwa “Reduced Motion” bo ka fetoga go sekae go tswa mo setshwantshong se sengwe go ya kwa go se sengwe, le go tswa mo porojekeng e nngwe go ya kwa go e nngwe, mme dintlha di le mmalwa tsa botlhokwa tse o tshwanetseng go di gakologelwa ke tseno: Go didimatsa diforeime tsa konokono Le fa ditshwantsho dingwe tse di tshelang di ka nolofadiwa kgotsa tsa fokodiwa, go na le tse dingwe tse di tshwanetseng go nyelela gotlhelele fa go kopiwa gore go fokodiwe motsamao. Ditshwantsho tsa pulse ke sekai se se molemo. Go netefatsa gore ditshwantsho tseno ga di dire ka mokgwa wa motsamao o o fokoditsweng, re ka di phuthela fela mo potsong e e tshwanetseng ya bobegakgang.
@media (e rata-motsamao o o fokoditsweng: ga e rate) { @selotlolo sa kf-pulse { go tswa go { sekala: var (--kf-sekale sa go itaya ga pelo-go tswa, 1); go sa bonale: var (--kf-go sa bonale ga pelo-go tswa, 1); } go { sekala: var (--kf-sekale sa go itaya-go, 1); go sa bonale sentle:var (--kf-go-sa bonale-go-go, 1); } } }
This ensures that users who have set prefers-reduced-motion to reduce will not see the animation and will get an experience that matches their preference. Tsena ka bonako Go na le diforeime dingwe tsa konokono tse re ka se kgoneng go di tlosa fela, tse di jaaka ditshwantsho tse di tshelang tsa go tsena. Boleng bo tshwanetse go fetoga, bo tshwanetse go tshedisa; go seng jalo, elemente ga e kitla e nna le boleng jo bo siameng. Mme mo tshisinyong e e fokoditsweng, phetogo eno go tswa mo boleng jwa ntlha e tshwanetse go nna ya ka bonako. Go fitlhelela seno, re tla tlhalosa sete e nngwe ya diforeime tsa konokono moo boleng bo tlolelang gone fela foo go ya kwa seemong sa bokhutlo. Tseno e nna diforeime tsa rona tsa konokono tsa thulaganyetsoruri. Go tswa foo, re tla tsenya diforeime tsa konokono tse di tlwaelegileng mo teng ga potsopatlisiso ya media ya go rata-motsamao o o fokoditsweng o o beilweng go se rate, fela jaaka mo sekaong se se fetileng. /* tsena ka bonako go fokotsa motsamao */ @diforeime tsa konokono kf-atolosetsa { go tswa go, go ya go { sekala: var (--kf-atolosetsa-go, 1); } }
@media (e rata-motsamao o o fokoditsweng: ga e rate) { /* Diforeime tsa konokono tsa zoom tsa ntlha */ @diforeime tsa konokono kf-atolosetsa { go tswa go { sekala: var (--kf-atolosetsa-go tswa, 0.8); } go { sekala: var (--kf-atolosetsa-go, 1); } } }
This way, users who prefer reduced motion will see the element appear instantly in its final state, while everyone else gets the animated transition. Tsela e e Bonolo Go na le maemo a re batlang go nna le motsamao mongwe, mme o le bonolo thata e bile o ritibetse go feta ditshwantsho tsa ntlhantlha. Ka sekai, re ka emisetsa botseno jo bo boang ka jo bo nyelela ka bonolo.
@diforeime tsa konokono kf-boa { /* Go nyelela go go bonolo ga motsamao o o fokoditsweng */ }
@media (e rata-motsamao o o fokoditsweng: ga e rate) { @diforeime tsa konokono kf-boa { /* Diforeime tsa konokono tsa ntlha tse di boang */ } }
Hona joale, basebedisi ba nang le fokotswa tshisinyo kgontshitswe ntse fumana maikutlo a ponahalo, empa ntle le motsamao o matla oa bounce kapa elastic animation. Ka diboloko tsa go aga di le teng, potso e e latelang ke gore di ka dirwa jang karolo ya kelelo ya tiro ya mmatota. Writing flexible keyframes is one thing, but making them reliable across a large project requires a few strategies that I had to learn the hard way. Maano a go Tsenya Tirisong le Ditiro tse di Gaisang Fa re setse re na le laeborari e e tiileng ya dithokene tsa diforeime tsa konokono, kgwetlho ya mmatota ke gore re ka di tlisa jang mo tirong ya letsatsi le letsatsi.
The temptation is to drop all keyframes in at once and declare the problem solved, but in practice I have found that the best results come from gradual adoption. Simolola ka ditshwantsho tse di tlwaelegileng thata, tse di jaaka fade kgotsa slide. Tsena ke diphenyo tse di bonolo tse di bontshang boleng jwa ka bonako kwantle ga go tlhoka go kwalwa gape go gogolo. Go naya maina ke ntlha e nngwe e e tshwanetseng go elwa tlhoko. Ketapele e e tlhomameng kgotsa sebaka sa maina se dira gore go bonale sentle gore ke ditshwantsho dife tse e leng dithokene le gore ke dife tse di dirisiwang gangwe fela tsa selegae. Gape e thibela go thulana ka phoso mme e thusa maloko a masha a setlhopha go lemoga tsamaiso e e tlhakanetsweng ka go e leba fela. Ditokomane di botlhokwa fela jaaka khoutu ka boyone. Le tshwaelo e khutshwane e e fa godimo ga letshwao lengwe le lengwe la diforeime tsa konokono e ka boloka diura tsa go fopholetsa moragonyana. Motlhabolodi o tshwanetse go kgona go bula faele ya dithokene, go sekaseka phelelo e ba e tlhokang, le go kopololela mokgwa wa tiriso ka tlhamalalo mo karolong ya bone. Go fetofetoga le maemo ke gone go dirang gore tsela eno e tshwanele maiteko. Ka go senola dithoto tse di utlwalang tsa setso, re naya ditlhopha sebaka sa go fetola ditshwantsho tse di tshelang kwantle ga go thuba tsamaiso. Ka nako e e tshwanang, leka go se raraane go feta selekanyo. Fana ka dikonopo tse bohlokwa mme o boloke ba bang kaofela ba na le maikutlo. La bofelo, gakologelwa go fitlhelega. Ga se ditshwantsho tsotlhe tse di tshelang tse di tlhokang motsamao o o fokoditsweng, mme bontsi bo a tlhoka. Baking in these adjustments early means we never have to retrofit them later, and it shows a level of care that our users will notice even if they never mention it.
Ka maitemogelo a me, go tshwara dithokene tsa diforeime tsa konokono jaaka karolo ya kelelo ya tiro ya rona ya dithokene tsa go tlhama ke sone se se dirang gore di kgomarele. Once they are in place, they stop feeling like special effects and become part of the design language, a natural extension of how the product moves and responds. Go phuthela Animations can be one of the most joyful parts of building interfaces, but without structure, they can also become one of the biggest sources of frustration. Ka go tshwara diforeime tsa konokono jaaka dithokene, o tsaya sengwe se gantsi se tlhakatlhakaneng e bile go le thata go se laola mme o se fetole go nna thulaganyo e e tlhapileng, e e ka bonelwang pele. Boleng jwa mmatota ga se fela mo go bolokeng mela e le mmalwa ya khoutu. Ke mo tshepong ya gore fa o dirisa go nyelela, go relela, go atolosa, kgotsa go dikologa, o itse sentle gore e tla itshwara jang go ralala porojeke. Ke mo go fetofetogeng go go tswang mo dithotong tsa setso kwantle ga tlhakatlhakano ya dipharologano tse di sa feleng. Mme e mo phitlhelelong e e ageletsweng mo motheong go na le go tsenngwa jaakakgopolo ya morago ga moo. Ke bone mehopolo ena e sebetsa dihlopheng tse fapaneng le di-codebase tse fapaneng, mme paterone e dula e tshwana. Hang ha di-tokens di se di le teng, di-keyframe di kgaotsa ho ba pokello e hasaneng ya maqheka mme di be karolo ya puo ya moralo. Di dira gore setlhagiswa se ikutlwe se le ka boikaelelo, se tlhomame e bile se tshela. Fa o ka tsaya selo se le sengwe mo setlhogong seno, a e nne seno: ditshwantsho tse di tshelang di tshwanelwa ke tlhokomelo le thulaganyo e e tshwanang le e re setseng re e naya mebala, go thaepa le go katogana ga tsone. Peeletso e nnye mo dithokeneng tsa di-keyframe e duela nako le nako fa segokaganyi sa gago se tsamaya.