You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aplicar refinamento estilo Apple HIG: hierarquia por peso/tamanho (não só cor), 1 CTA primário por tela, transições 150-300ms (ease-out ao entrar / ease-in ao sair), cantos e sombras usando a escala --v2-elevation-* existente (sem valores de shadow ad-hoc), focus ring visível em todo elemento interativo, scrim de modal 40-60% preto reservado para contexto de dismissal.
Verificar botões só-ícone têm aria-label, e que nenhuma informação é passada só por cor.
Objetivo específico desta issue: garantir que todos os modais/dialogs do app compartilham a mesma escala de elevação (--v2-elevation-floating/-overlay), o mesmo scrim de fundo, o mesmo raio de canto e a mesma affordance de fechamento (X visível ou Esc), em vez de cada dialog reinventar esses valores individualmente.
Acceptance criteria
Nenhuma mudança de comportamento/UX — apenas visual (cor, espaçamento, tipografia, elevação, motion)
Sem hex cru — só tokens --v2-* semânticos
Contraste de texto ≥4.5:1 (corpo) / ≥3:1 (grande, ícones, bordas) confirmado em light e dark
Estados de foco visíveis via teclado em todos os elementos interativos da página
Botões ícone-apenas têm aria-label
Testado manualmente em light e dark antes de abrir o PR
Parent
Épico: revisão visual dark-mode / Apple-like do OpenCode Desktop. Depende da fundação de tokens (#164).
What to build
Auditar e ajustar apenas visual/tokens, sem alterar comportamento, os seguintes arquivos:
components/dialog-command-palette-v2.tsxcomponents/dialog-select-directory*.tsx,dialog-select-file.tsx,dialog-select-mcp.tsx,dialog-select-server.tsxcomponents/dialog-fork.tsx,dialog-release-notes.tsx,dialog-usage-exceeded.tsx,dialog-edit-project*.tsx,dialog-custom-provider.tsx,dialog-connect-provider.tsx,dialog-connect-omniroute.tsx,dialog-settings.tsx,settings-dialog.tsxcomponents/session/dialog-background-tasks.tsxpages/session/timeline/dialog-delete-session.tsxpages/session/usage-exceeded-dialogs.tsxpages/layout/dialog-workspace-actions.tsxcomponents/settings-v2/dialog-settings-v2.tsxPassos:
--v2-*depackages/ui/src/v2/styles/theme.css(já corrigidos por [Design] Dark-mode token contrast pass — packages/ui/src/v2/styles/theme.css #164) — nenhum hex cru, apenas tokens semânticos.ease-outao entrar /ease-inao sair), cantos e sombras usando a escala--v2-elevation-*existente (sem valores de shadow ad-hoc), focus ring visível em todo elemento interativo, scrim de modal 40-60% preto reservado para contexto de dismissal.aria-label, e que nenhuma informação é passada só por cor.Objetivo específico desta issue: garantir que todos os modais/dialogs do app compartilham a mesma escala de elevação (
--v2-elevation-floating/-overlay), o mesmo scrim de fundo, o mesmo raio de canto e a mesma affordance de fechamento (X visível ou Esc), em vez de cada dialog reinventar esses valores individualmente.Acceptance criteria
--v2-*semânticosaria-labelBlocked by
Verification
Screenshots antes/depois em light e dark mode desta página/superfície, anexados ao PR.