--ease-standard cubic-bezier(0.2, 0, 0, 1)Default para mudança on-screen — cor, posição, tamanho.
Tokens e padrões de animação para toda UI Koder — 5 curvas de easing, 5 durações canônicas, padrões de transição e o contrato de reduced-motion.
Toda transição determinística usa uma das cinco curvas canônicas. O SVG traça a curva; a caixa ao lado reproduz o movimento ao clicar.
--ease-standard cubic-bezier(0.2, 0, 0, 1)Default para mudança on-screen — cor, posição, tamanho.
--ease-decelerate cubic-bezier(0, 0, 0, 1)Entrada — elemento chegando à tela (modal, drawer entrando).
--ease-accelerate cubic-bezier(0.3, 0, 1, 1)Saída — elemento deixando a tela (modal fechando, drawer saindo).
--ease-emphasize cubic-bezier(0.2, 0, 0, 1)Movimento de alta atenção — container transform, coreografia hero.
--linear linearApenas para movimento indefinido — loaders, progresso, looping.
Curvas conforme specs/themes/motion/easing-duration.kmd §R2. Clique em qualquer caixa para reproduzir.
Cinco durações canônicas cobrindo de acknowledgment (instant) até coreografia hero de marketing (long). Defaults mostrados batem com o preset material3; presets como terminal_classic sobrescrevem para 0 ms.
--motion-instant 50 ms0–50 ms
Focus ring, início de ripple, ack imediato.
--motion-fast 150 ms100–200 ms
Hover, toggle de switch, press de botão.
--motion-medium 250 ms200–300 ms
Entrada/saída de modal, slide de drawer.
--motion-slow 400 ms300–500 ms
Multi-elemento coordenado (FAB morph), transição de página.
--motion-long 600 ms500–700 ms
Coreografia de onboarding, animação hero (só em landings).
Tokens conforme specs/themes/motion/easing-duration.kmd §R1. Clique em qualquer barra para reproduzir.
Sete padrões com previews CSS-only — paridade completa Material a partir de transitions.kmd §R1. Gestos stateful (interrupção mid-flight, drag-to-dismiss) seguem no track de embed Flutter Web.
fast · standardAparecer/desaparecer sem implicação espacial. Default para mudanças só de opacidade.
medium · decelerateElemento crescendo para a tela — modal, FAB expandindo, badge.
medium · decelerateDrawer, bottom sheet, transição de página. Decelerate na entrada, accelerate na saída.
slow · emphasizeCard ou thumbnail se transforma na página de detalhe — transição shared-element característica do Material.
medium · standardNavegação por etapas (onboarding, wizard, step indicator). Saída desliza+fade out; entrada desliza+fade in no mesmo eixo.
medium · decelerateNavegação por pilha (back gesture mobile). Pane de entrada desliza sobre o anterior, que escurece e recua levemente.
fast · standardTroca de tab dentro do mesmo contexto. Velho e novo sobrepõem brevemente.
Amostragem de specs/themes/motion/transitions.kmd §R1. Catálogo completo de padrões →
Coreografia por estado de transitions.kmd §R2 — duração + easing quando o usuário interage com o elemento. Cada demo replaya a animação definida na spec ao clique.
fast · standardPonteiro entra/sai. Cor ou elevação varia rapidamente; sem mudança espacial.
instant · standardFoco do teclado chega. Anel fade-in em 50 ms — instantâneo, nunca atrasado.
fast in · medium outToque ou clique. Scale 0.97 no entry rápido; volta a 1 no medium — o rebote é sentido.
medium · standardInício do arraste — elevação +2 com leve rotação. Final do arraste espelha de volta.
fast · standardItem escolhido. Fundo tinge no fast — overlay accent em mix 28%.
medium · standardOpacidade fade a 0.38 — valor padrão Material para disabled. Pointer-events seguem ativos no demo pra você poder replay.
Fonte: specs/themes/motion/transitions.kmd §R2.
Tokens de spring aproximam movimento físico via `linear()` keyframes do CSS. Overshoot e assentamento são visíveis comparado às transições cubic-bezier acima. Browsers sem suporte a linear() degradam pra ease-out.
--kds-motion-spring-spatial-fastSettle preciso, ~700 ms. Use em movimentos pequenos: slide de chip, deslocamento de thumb de switch.
--kds-motion-spring-spatial-defaultOvershoot visível. Use em movimentos de card ou panel inteiro onde o rebote ler como fisicalidade.
--kds-motion-spring-effect-defaultPara efeitos não-espaciais (fade, scale, mudança de cor). Curva mais apertada; sem overshoot.
3 de 6 tokens mostrados — catálogo completo e bindings Compose/Flutter em physics.kmd §springs →
`animation-timeline: scroll()` / `view()` ligam o progresso da animação à posição do scroll. A blob abaixo morfa conforme entra e sai da viewport — sem loop temporal, o usuário no controle.
Chromium/Safari/Firefox modernos; browsers antigos veem blob estática via fallback @supports.
Quando o sistema operacional reporta `prefers-reduced-motion: reduce`, toda animação colapsa para instantâneo. Segurança vestibular não é opcional — o mesmo conteúdo deve continuar comunicando mudança de estado sem movimento.
Bola pulsa em 600 ms com curva ease-standard.
Mesmo conteúdo, zero animação — duração colapsa para 0 ms.
Contrato: spec/themes/motion/physics.kmd §R1. Ler o contrato reduced-motion →
Motion canônico aplicado a formas concretas de UI — como cada tipo de widget anima num produto Koder. Previews CSS-only; implementações em produção vivem em `engines/sdk/koder_kit`.
Clique em qualquer demo pra replay da animação.
Composições multicolor elaboradas — bandas de aurora, roda de cores, lava lamp, confete, equalizer, glitch RGB-split, anel neon, mosaico. Vai além de widgets utilitários.
3 bandas de gradiente coloridas ondulando em ciclos defasados. Atmosfera de hero / fundo de empty-state.
Spinner conic-gradient mostrando o ciclo de 10 matizes. Loading / theme picker.
4 blobs coloridos morfam + flutuam; blur + filtro de contraste mistura tudo numa massa orgânica.
18 partículas coloridas caindo com rotação + stagger. Sucesso / celebração.
12 barras coloridas pulando em cadências desincronizadas. Playback de áudio / indicador de atividade.
Camadas RGB-split oscilando em stepped timing. Estética cyber / erro / redacted.
Halo conic-gradient girando em volta de núcleo escuro. Avatar / brand mark / indicador de foco.
Células coloridas 5×5 flipando em stagger. Splash de loading / refresh de dados / transição.
Clique em qualquer demo pra começar. Tudo CSS-only; reduced-motion desabilita.
Highlight radial seguindo o cursor. Passe o mouse em qualquer tile abaixo e o highlight acompanha o ponteiro. Signature pointer-only — desabilitado por reduced-motion + ignorado em touch.
Fonte: specs/themes/motion/reveal.kmd.
Comece a digitar para buscar. Tecle / em qualquer lugar.