Skip to content

P3: Animacoes de transicao (fade-in mensagens, smooth scroll, thinking pulse) #34

Description

@chapzin

Estado atual

O jcode-harness ja tem algumas animacoes basicas:

  • Spinner braile (⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏) — theme.rs
  • Tool activity bars (●◆··◆) — theme.rs
  • Prompt entry animation com shimmer (450ms) — ui.rs
  • Idle donut — ui_animations.rs
  • Flag enable_decorative_animations para reduced motion

O que precisa ser adicionado

1. Fade-in de novas mensagens

  • Mensagens do assistant aparecem com fade-in de 200-300ms
  • Tool results aparecem com slide-in da direita
  • User messages sem animacao (resposta imediata)
  • Respeitar enable_decorative_animations (static quando false)

2. Smooth scrolling

  • Scroll animado ao inves de jumps instantaneos
  • Easing function: ease-out para scroll down (nova msg), ease-in-out para scroll manual
  • Duracao: ~150ms
  • Interrompivel: novo input cancela animacao

3. Indicador de "thinking" pulsando

  • Pulso sutil no canto do chat enquanto o modelo processa
  • Efeito de "respiracao" (fade in/out do accent color)
  • Ou dots animados: "thinking." → "thinking.." → "thinking..."

4. Barra de progresso de tool calls

  • Tool calls longas mostram progresso estimado
  • Barra horizontal preenchendo:
[████████░░░░░░░░] 56% · running tests...
  • Baseada em output streaming ou tempo estimado

5. Transicao entre tabs da sidebar

  • Crossfade de 150ms ao trocar de tab
  • Conteudo mantido ate novo conteudo estar pronto

6. Notificacao toast

  • Alertas do sistema aparecem como toast no canto superior direito
  • Slide-in + auto-dismiss apos 3-5 segundos
  • Ex: "Memory pipeline complete", "5 new changelog entries"

Respeitar preferencias

  • Verificar JCODE_REDUCED_MOTION env var
  • Verificar prefer-motion do terminal (se disponivel)
  • Animacoes automaticamente desabilitadas em testes/CI

Arquivos a modificar

  • src/tui/ui_animations.rs — expandir significativamente
  • src/tui/ui.rs — integrar fade-in e smooth scroll
  • src/tui/ui_transitions.rs — transicoes entre estados
  • crates/jcode-tui-style/src/theme.rs — constantes de animacao

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions