KasyKasy

Design System

Tipografia, cores, componentes Kasy e como personalizar sem quebrar o app.

O app gerado já vem com design system centralizado. Mudou um token num lugar, muda no app inteiro (web, iOS, Android).

Princípio: clean, moderno, minimalista. A tela Home é a referência visual.

Três lugares, três papéis

Não são três fontes de verdade. Cada um serve pra uma coisa:

LugarPra quêQuando você mexe
Figma (arquivo Community)Rebrand e desenho. Você vê a marca, troca variables, monta telas novas.Uma vez no rebrand (e quando inventar UI nova). Depois a IA leva os números pro código.
Home → Design System / Components (no app)Visualizar o que já está no código: tokens, variantes, estados. É o espelho vivo.Não “edita” tokens aqui. Só confere claro/escuro depois do rebrand.
DESIGN_SYSTEM.md (na raiz do projeto)Contrato pra IA e dev: use token, use KasyButton, nested card = filled, etc.Quase nunca. Atualiza quando o comportamento do kit muda, não a cada troca de cor.

A fonte que o app executa é só o código: lib/core/theme/ + lib/components/.

Por que não dropar o .md e deixar a IA “seguir a tela”? A tela roda no Flutter. A IA do editor lê arquivos do repo. Sem o contrato escrito, ela inventa Material cru e número hardcoded (já vimos isso com Card). O .md é barato de manter se ficar como régua, não como cópia de toda tabela de token.

Fluxo típico de rebrand: Figma (variables) → IA sincroniza colors.dart / theme → confere na tela Design System do app. Detalhe em Figma (rebrand e telas).

Camadas

CamadaOndeExemplo
TipografiaKasyTextThemecontext.textTheme.pageTitle
ÍconesKasyIconSizeKasyIconSize.rowLeading
EspaçamentoKasySpacingKasySpacing.md (16)
RaiosKasyRadiusKasyRadius.lg (16)
Corescontext.colors.*Resolve claro/escuro sozinho
Componenteslib/components/KasyButton, KasyCard, KasyTextField

Pelo MCP: antes de criar ou editar qualquer tela, o assistente deveria chamar list_components, ela escaneia lib/components/ ao vivo (não uma lista fixa) e devolve cada KasyXxx com o resumo de uso, pra nunca inventar Material cru quando já existe um componente Kasy pra isso. Veja MCP do Kasy.

KasyScreen

Envolva telas novas em KasyScreen para herdar fundo, gutter, largura máxima (~600) e card opcional:

KasyScreen(
  title: 'Minha tela',
  child: ...,
)

Você não fica preso

Rebrand = trocar tokens (cor primária, tipografia) num lugar. Componentes aceitam variantes e overrides.

Guard-rail opcional

dart run tool/design_check.dart

Avisa quando uma tela usa valor cru (cor/fonte Material direto) em vez do design system. Opcional, não bloqueia build.

Atualizado em 03/11/2026