feat(ui): botões 'rich' em CSS puro + toolbar mobile em 3 linhas organizadas

Sistema de botões (mesma linguagem do Rich Button do spell.sh — que é
React/Tailwind e não se aplica a um app vanilla com CSP script-src 'self'):
- gradiente vertical com gloss de vidro (::after), borda e sombra derivadas
  dos tokens, lift no hover, press no active, focus ring, glow no primário
- variantes primary/danger/icon/small, selects e segmented control ricos
- 100% via color-mix() + light-dark() sobre os tokens: adapta-se sozinho aos
  21 temas (color-scheme declarado em todos, incl. nativos agora)
- cores antes fixas (#cfe2fa/#e9e6e2/#dcd7d2/#dbe9fb/#e5effb) tokenizadas

Toolbar responsiva (≤760px):
- fim do scroll horizontal: quebra em 3 linhas — arquivo+formato+versões /
  alternador de modo full-width / ferramentas de formatação full-width com
  flex-wrap de segurança; alvos ≥40px
- verificado em 393px (última borda 385) e 320px (311), uma linha de ícones

sw.js: CACHE notas-shell-v8; README atualizado
This commit is contained in:
lgcosta committed 2026-11-05 09:28:20 -03:00
1 parent cb8feac6ff
commit ea6b3b915d
3 files changed
+181 -42

No files matched your search

+14 -5
View File
@@ -117,11 +117,20 @@ ocupa a tela inteira; menus e toolbar rolam horizontalmente com botões só de
guardado em **cookie HttpOnly/SameSite=Lax** (30 dias). A API também aceita
`Authorization: Bearer <token>` para scripts.
- **Responsivo para celular** (≤760px): barra lateral vira gaveta com backdrop (☰ fecha ao
tocar uma nota), painel de versões ocupa a tela toda, toolbar e menus rolam horizontalmente
sem rótulos, **dropdowns dos menus posicionados como `fixed`** (o `overflow-x` da menubar não
os corta mais em telas pequenas), alvos de toque ampliados, diálogos em largura total, fonte
do editor com mínimo de 16px (evita zoom automático do iOS), altura em `dvh` e
`safe-area-inset` para notch.
tocar uma nota), painel de versões ocupa a tela toda, **toolbar quebra em 3 linhas
organizadas** — ① ações de arquivo + formato + versões, ② alternador de modo em largura
total, ③ ferramentas de formatação distribuídas (cabe em 393px **e** 320px sem corte) —,
alvos de toque ≥40px, diálogos em largura total, fonte do editor com mínimo de 16px (evita
zoom automático do iOS), altura em `dvh` e `safe-area-inset` para notch; **dropdowns dos
menus em `position:fixed`** (o `overflow-x` da menubar não os corta mais) e menus rolam
horizontalmente sem rótulos.
- **Botões "rich"** (linguagem visual do Rich Button/spell.sh, mas em CSS puro — o componente
deles é React+Tailwind, incompatível com o build-free + CSP do app): gradiente vertical com
brilho de vidro, reflexo interno superior, sombra dupla e glow no primário, micro-interações
de hover (eleva) / active (pressiona) / focus ring. Tudo derivado dos tokens com
`color-mix()` + `light-dark()`, então **os 21 temas** (claros e escuros) ganham botões
coerentes automaticamente; o mesmo vale para o controle segmentado Editar/WYSIWYG/Preview,
selects da toolbar e chips.
- **Estilo Mousepad**: tema claro Greybird-like, menus nativos (Arquivo/Editar/Exibir/Ajuda),
atalhos `Ctrl+S`, `Ctrl+N`, `Ctrl+E/M/R` (edição/wysiwyg/preview), `Ctrl+H` (histórico), `F9`
(barra lateral), `Ctrl+B/I/K` (formatação), `Ctrl+,` (preferências), `Alt+W`/`Alt+←/→`/