Carlos

Luna Design System

Uma única fonte de tokens para Apple e Material, no claro e no escuro

Times mobile entregam o mesmo produto duas vezes: uma na linguagem da Apple e outra na do Google, e normalmente mais duas para os modos claro e escuro. Kits que parecem completos no primeiro dia desmoronam no primeiro rebrand, porque cores, raios e tamanhos de texto são digitados à mão em centenas de camadas.

Luna é um design system em Figma para apps iOS e Android, construído para que uma única fonte de tokens alimente componentes Apple e Material nos modos claro e escuro, com saídas para SwiftUI, Jetpack Compose, Flutter e CSS.

  • Fundamentos
  • Tokens semânticos
  • Componentes e padrões
  • Telas de app

Princípios

Os componentes apontam para papéis semânticos como brand/base ou text/strong-950, nunca para um valor. O papel aponta para uma fundação, e a cadeia corre em um só sentido.

Light e Dark são dois modos de uma mesma coleção, então nenhum componente tem variante escura. As plataformas diferem nos números, não na intenção: uma coleção Platform guarda as áreas de toque de 44 ou 48 pontos e as alturas das barras, para que um mesmo componente obedeça às duas.

Dez escalas de cor primitivas e tokens semânticos com seus valores Light e Dark, e a cadeia de um componente até um primitivo
Uma seleção de ícones do Luna em um grid de 24 px com traço de 2 px
A escala tipográfica do Luna em Inter, de 6xl em 60/64 a xs em 12/16
Spec do Balance Card: dimensões, paddings e espaçamentos em redlines, e os tokens por trás do preenchimento, do raio, da tipografia e das ações
A barra de navegação Material nos modos Brand e System, no claro e no escuro
As mesmas instâncias do Finance no modo claro e no modo escuro

Um componente nunca nomeia uma cor. Ele nomeia um token, o token nomeia uma fundação, e a cadeia corre em um só sentido.

Documentação do Luna DS, Read me
Seis Live Activities redesenhadas no Luna
A Dynamic Island nos estados compacto e expandido, Brand e System

Padrões nativos

21 padrões Apple e 17 do Material 3 foram redesenhados na geometria do Luna. A Platform Bridge mapeia 112 slots Apple e Material para tokens do Luna no modo Brand, ou para os valores publicados pela própria plataforma no modo System, então uma tela pode ser conferida com a paleta nativa em uma única troca.

Quatro notificações do iOS redesenhadas no Luna
Um app de tarefas no iPhone Duo: o quadro na tela externa, dobrado, e o quadro completo, aberto

Fundações

Tudo começa nos tokens. As cores primitivas viram papéis semânticos com valor claro e escuro, e tipografia, espaçamento e elevação seguem a mesma estrutura em dois níveis. Um componente nunca aponta para uma cor bruta, só para um papel.

Uma ponte de plataforma traduz as mesmas decisões para as medidas de iOS e Android, e é isso que permite a uma só biblioteca servir SwiftUI, Compose, Flutter e CSS.

Papéis semânticos de cor, claro e escuro lado a lado
Escala tipográfica em dez passos
Variáveis de plataforma para iOS e Android

Em telas reais

Um sistema se prova no uso. Montei telas completas de aplicativo com a biblioteca, no claro e no escuro, para testar densidade, hierarquia e o comportamento de cada componente com conteúdo real antes de publicar.

Início de um app financeiro, tema claro
Cartões, tema escuro
Quadro de tarefas
Detalhe de uma tarefa
Cinco telas do app financeiro, tema claro
As mesmas cinco telas no tema escuro

O que eu levaria para o próximo sistema

Um sistema é feito das suas restrições: não ter paint styles nem variantes escuras foram escolhas deliberadas, e cada atalho removido era um lugar a menos para o sistema se desviar.

Nomear os tokens do jeito que SwiftUI, Compose, Flutter e CSS os leem manteve o arquivo e o código descrevendo a mesma coisa, e telas de app completas feitas só com instâncias provaram o sistema mais rápido do que qualquer página de documentação conseguiria.

Resultados

556

Variáveis em seis coleções

79

Componentes, todo estado em um token

88

Telas de app no claro e no escuro

0

Variantes escuras para manter

Próximo case

Core ERP

Um sistema de gestão completo e simples de usar no dia a dia.