Repository navigation
Closed
Labels
ready-for-agentScoped and ready for an agent to pick upScoped and ready for an agent to pick upui-uxUI/UX polish and consistency workUI/UX polish and consistency work
Description
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:
pages/layout.tsx,pages/layout-new.tsxpages/layout/*(app-project-sidebar, inline-editor, session-tab-avatar, sidebar-items, sidebar-project, sidebar-shell, sidebar-workspace) — excetodialog-workspace-actions.tsx, coberto na leva de modais
Passos:
- Revisar cada componente em light e dark mode usando os tokens
--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. - Aplicar refinamento estilo Apple HIG: hierarquia por peso/tamanho (não só cor), 1 CTA primário por tela, transições 150-300ms (
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. - Garantir que texto muted/faint, bordas e estados de hover/pressed permanecem legíveis nos dois temas (retestar após [Design] Dark-mode token contrast pass — packages/ui/src/v2/styles/theme.css #164).
- Verificar botões só-ícone têm
aria-label, e que nenhuma informação é passada só por cor.
Nota: conforme CLAUDE.md, pages/layout.tsx não deve ser dividido em arquivos menores antes do épico #25 avançar — esta issue é só ajuste visual/tokens, não split de arquivo, então não conflita com essa regra.
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
Blocked by
Verification
Screenshots antes/depois em light e dark mode desta página/superfície, anexados ao PR.
Metadata
Metadata
Assignees
Labels
ready-for-agentScoped and ready for an agent to pick upScoped and ready for an agent to pick upui-uxUI/UX polish and consistency workUI/UX polish and consistency work
Activity
alltomatos commentedon Sep 9, 2026
Audited `pages/layout.tsx`, `pages/layout-new.tsx`, and `pages/layout/*.tsx` (app-project-sidebar, inline-editor, session-tab-avatar, sidebar-items, sidebar-project, sidebar-shell, sidebar-workspace — excluding `dialog-workspace-actions.tsx`, covered in the shared-modals issue #178).
Found one real gap during the earlier a11y sweep for #182: the tab close (×) button in `TabNavItem` (`components/titlebar-tab-nav.tsx`, used by the shell's tab bar) was missing `aria-label` — already fixed in #182. Everything else in this file set is clean: no raw hex, no ad-hoc box-shadow outside `--v2-elevation-*`, no non-token Tailwind color classes, no other missing aria-labels.
Per CLAUDE.md, not touching `pages/layout.tsx`/`layout-new.tsx` beyond this kind of token/a11y check — no file-split work here, consistent with holding off until epic #25 progresses (this issue is visual-only anyway, doesn't conflict).
Closing as verified (a11y gap fixed in #182).