motion library
Camada de motion do Flocks: reduce-motion (AppMotion) e widgets/mixins de
micro-interação. Tokens de duração/curva (AppDurations/AppCurves) vivem
em tokens.dart. Só sobre a camada widgets (sem Material/Cupertino).
Classes
- AppAnimatedRotation
- Rotação animada (implícita) que respeita reduce-motion.
- AppAppear
- Entrada canônica: fade + pop ao montar (compõe AppFade e AppPop).
- AppCrossFade
- Troca de conteúdo com cross-fade (o antigo some, o novo aparece).
- AppExpand
- Revela por tamanho (expandir/colapsar) quando o filho muda de dimensão.
- AppFade
- Opacidade animada (implícita) que respeita reduce-motion / o global do DS.
- AppFadeThroughStack
- Um IndexedStack que troca com fade em vez de corte seco.
- AppInteractiveMotion
- Aplica escala e/ou rotação a child enquanto o gatilho trigger está ativo, animando de volta ao repouso quando ele sai.
- AppMotion
- Ponto único de decisão de "reduce motion" do Flocks.
- AppPop
- Escala animada com overshoot contido — o "pop"/bounce das micro- interações (checkbox, radio, tooltip).
- AppScaleOnTap
- Embrulho que aplica uma leve escala ao pressionar, integrando a micro-interação de press ao primitivo FlocksInteraction (foco/teclado/ hover incluídos). Respeita reduce-motion.
- AppSlide
- Translada o filho (entrada/saída pelas bordas) quando offset muda.
- AppSpin
- Rotação contínua para indicadores de carregamento.
- AppTypewriter
- Revela um texto caractere a caractere (efeito "sendo escrito").
- AppValueBuilder
-
Anima um
doubleaté value e entrega o valor interpolado a builder.
Enums
- AppMotionTrigger
- Gatilho de interação que dispara a micro-animação de AppInteractiveMotion.
Mixins
-
AppShakeMixin<
T extends StatefulWidget> - Mixin para disparar um "shake" horizontal (ex.: erro de validação em um campo). Requer TickerProviderStateMixin.