Pular para o conteúdo

Verge

Verge é a linguagem visual do Koder Design System — o mapa fechado de tokens (cor, forma, espaço, sombra, tipografia) que toda UI Koder consome. v0 espelha GNOME Adwaita 1:1; divergência é incremental, guiada pelo feedback do owner sobre widgets renderizados.

Spec do Verge (verge.kmd) → · Preview ao vivo do preset →

Cor

TokenClaroEscuroUso
--accent#3584E4herda do claroCor de ação primária (botões, focus rings, links)
--accent-strong#1c71d8herda do claroEstado hover do accent
--accent-on#FFFFFFherda do claroCor de texto/ícone sobre superfícies accent
--bg#FAFAFA#242424Canvas da página — surface mais baixa do stack de elevação
--surface#FFFFFF#303030Superfície de card / form / panel (1 nível acima do canvas)
--surface-2#424242Superfície aninhada / elevada (2 níveis acima do canvas)
--on-surface#2e3436#FFFFFFTexto corpo e glyphs primários em surfaces
--label-color#5e6772#ccccccTexto secundário — labels, helpers, captions
--btn-secondary-bg#3a3a3aBackground de botões secundários (modo escuro)
--btn-secondary-fg#FFFFFFCor de texto de botões secundários (modo escuro)
--btn-secondary-hover#4a4a4aBackground de botões secundários no hover (modo escuro)

Forma & bordas

TokenClaroEscuroUso
--radius-sm4pxherda do claroRadius pequeno — cantos de chip, badge, tag
--radius-md6pxherda do claroRadius médio — cantos de input, card, panel
--radius-lg8pxherda do claroRadius grande — cantos de dialog, sheet, drawer
--radius-btn6pxherda do claroRadius dos cantos do botão (Verge owner decision: quadrados minimamente abaulados)
--input-border1px solid #c0c0c01px solid #1b1b1bStroke de borda de input e field
--btn-secondary-border1px solid #c0c0c01px solid #1b1b1bStroke de borda de botão secundário

Espaçamento & padding

TokenClaroEscuroUso
--pad-y8pxherda do claroPadding vertical dentro de inputs e botões
--pad-x12pxherda do claroPadding horizontal dentro de inputs e botões
--gap-field10pxherda do claroGap entre fields adjacentes em um form
--gap-title14pxherda do claroGap entre título e conteúdo
--pad-form18pxherda do claroPadding interno do card do form

Elevação & sombra

TokenClaroEscuroUso
--shadow-form0 0 0 1px rgba(0,0,0,0.1)0 0 0 1px rgba(0,0,0,0.5)Drop shadow / outline do card do form

Stack de fontes

TokenClaroEscuroUso
--fontAa'Cabin', 'Cantarell', 'Inter', sans-serifherda do claroStack de font do body — Cabin / Cantarell / Inter fallbacks

Modos de densidade

Três densidades canônicas em nível de página escalam spacing Verge + mínimos de componente uniformemente. Compacto = −20%, Confortável = +20%. Veja a cascata viva abaixo — as três colunas escopam o próprio data-density e mostram o mesmo trio de botões em cada ritmo.

Compacto

Padrão

Confortável

specs/themes/density.kmd

Como a divergência funciona

Verge inicia como GNOME Adwaita 1:1; tokens divergem gradualmente conforme os produtos Koder evoluem. O fluxo:

  1. Owner renderiza um form ou widget com os tokens Verge atuais em um produto Koder
  2. Owner avalia visualmente e identifica o que deve mudar ("esse botão tá muito largo", "borda do input ficou fina demais")
  3. AI mapeia o pedido pro token correto (`--accent`, `--radius-btn`, `--pad-y`, etc.) e atualiza `tools/design-gen/assets/css/presets.css` + `specs/themes/verge.kmd` §R4
  4. Quando várias divergências acumulam, um release Verge v(N+1) é cortado — changelog e migration guide shipam junto