Inspect · Formulários de inspeção

DesignSystem

The rules the app already followed, written down: one palette, one typeface, one icon family and a set of components, documented the way I would build them today.

● Retrospective, built in 2026 on the original app
9Core colours
4×9Colour ramps
16Icons
7Components
01 · Foundations

Colour, named and scaled.

Seven hues were already in the app. Each now has a role and a token, and four of them grow into nine-step ramps for states and surfaces.

Brand

Go#5AE770--ins-green-500Primary action · success
Blue#3398FE--ins-blue-500Info · selection
Deep blue#2273A9--ins-blue-700Links · pressed

Neutrals

Ink#241D46--ins-ink-900App bar · text
Indigo#3B326C--ins-indigo-700Hero surface
Haze#6F6A8C--ins-haze-500Secondary text
Mist#D5D5D7--ins-mist-300Dividers
Lavender#E2E2F2--ins-lav-100Page surface

Feedback

Alert#FF6666--ins-red-500Danger · errors

The original had two greens: #5AE770 on buttons and #36D57B on icons. Both stay, as steps 500 and 600 of one ramp.

Semantic ramps · 100 to 900 (derived)

Primary--ins-green-500 #5AE770
100
200
300
400
500
600
700
800
900
Info--ins-blue-500 #3398FE
100
200
300
400
500
600
700
800
900
Danger--ins-red-500 #FF6666
100
200
300
400
500
600
700
800
900
Secondary--ins-haze-500 #6F6A8C
100
200
300
400
500
600
700
800
900

Steps 100–400 mix the base with white, 600–900 with Ink. Same pattern as the EasyTags theme scale.

02 · Foundations

One typeface, four jobs.

Aa
Cairo ExtraLight
Cairo Regular
Cairo Bold
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 ÁÉÍÓÚ Ç ÃÕ

Cairo ExtraLight and Bold come from the original identity board. Regular is added for running text.

Resumo
display
200 · 38/44
Dados do cliente
title
200 · 22/28
Formulários disponíveis
app-bar / label
700 · 14/20 · caps
Relatório de inspeção de extintores
body
400 · 15/22
CNPJ: 63.748.647/0001-78
data label
700 · 11/16 · caps
45
counter
700 · 30/32
Entrar
button
700 · 13/16 · caps

Space · 4 pt grid

1 · 4
2 · 8
3 · 12
4 · 16
6 · 24
8 · 32

Radius

4
12
20
pill

Elevation

card-1
card-2
dialog
03 · Foundations

One icon family, three states.

The outline icon set drawn for the app, 2 px stroke and rounded caps, with a token per glyph.

Clientes
Clientesins-icon-clientes
Contratos
Contratosins-icon-contratos
Produtos
Produtosins-icon-produtos
Formulários
Formuláriosins-icon-formularios
Em aberto
Em abertoins-icon-em-aberto
Enviados
Enviadosins-icon-enviados
Adicionar
Adicionarins-icon-adicionar
Concluído
Concluídoins-icon-concluido
Foto
Fotoins-icon-foto
Anexo
Anexoins-icon-anexo
Sincronizar
Sincronizarins-icon-sincronizar
Imagem
Imagemins-icon-imagem
Editar
Editarins-icon-editar
Editar (caixa)
Editar (caixa)ins-icon-editar-caixa
Falha
Falhains-icon-falha
Vazio
Vazioins-icon-vazio

Rules

Outline only, 2 px stroke, rounded caps. Green on dark surfaces, white on Ink app bars, Alert only for failed or empty states. Keep 24 dp glyphs inside a 32 dp touch frame.

Keyline · 24 dp

Glyph sits on a 24 dp keyline, 4 dp padding, 48 dp minimum touch target.

States

04 · Components

Built from the screens.

Button

EntrarAtualizar tudoCancelarDesativado
height 46 · radius pill · 700 / 13 caps
label colour: Ink (see contrast audit)

Field

Usuário
usuario@empresa.com
Senha
••••••••
Pesquisar cliente

Summary tile

12
Clientescount badge · 34 dp
ring 104 · Ink · icon 48 · badge Haze, 3 px white border

List card

Cliente Exemplo S.A.contato@exemplo.com
(31) 0000-0000
radius 18 · shadow card-2 · action 34

Message card

Aipiscing elit sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna.
06/01/2020 · 20:30

Date picker

‹JANEIRO 2020›
DSTQQSS293031123456789101112131415161718

Dialog · multi-select

Executores
Executor 01
Executor 02
Executor 03
CANCELAROK
05 · In context

The system, on the real screens.

123
456
78
1
App barins-ink-900 · 700 caps
2
Summary tilering 104 · Ink
3
Count badgeins-haze-500
4
Search fieldink fill · radius 4
5
List cardradius 20 · card-2
6
Add actionins-icon-adicionar
7
Primary buttonins-green-500 · pill
8
Radio optionins-blue-500 selected
06 · Tokens & accessibility

Tokens in code, contrast on paper.

:root {
  /* color · core */
  --ins-ink-900: #241D46;      --ins-indigo-700: #3B326C;
  --ins-haze-500: #6F6A8C;    --ins-mist-300: #D5D5D7;
  --ins-lav-100: #E2E2F2;
  --ins-green-500: #5AE770;  --ins-green-600: #36D57B;
  --ins-blue-500: #3398FE;    --ins-blue-700: #2273A9;
  --ins-blue-800: #2B5397;   --ins-haze-700: #544E73;   /* small text + links */
  --ins-red-500: #FF6666;

  /* type */
  --ins-font: "Cairo", system-ui, sans-serif;

  /* space · 4 pt grid */
  --ins-space-1: 4px;  --ins-space-2: 8px;  --ins-space-3: 12px;
  --ins-space-4: 16px; --ins-space-6: 24px; --ins-space-8: 32px;

  /* shape */
  --ins-radius-sm: 4px; --ins-radius-md: 12px;
  --ins-radius-lg: 20px; --ins-radius-pill: 999px;
  --ins-shadow-card: 0 6px 18px rgba(36,29,70,.14);
}
What the audit changed. The original labelled the green and red buttons in white (1.6:1 and 2.9:1). The system sets the label in Ink instead: 9.8:1 on green, 5.5:1 on red. Every hue stays untouched. Small text moves to Haze 700 and links to Blue 800 (≥ 4.5:1).

Contrast audit · WCAG 2.1

Aa
Ink on LavenderBody text on surface
12.2:1AAA
Aa
White on InkApp bar, dark surfaces
15.7:1AAA
Aa
Ink on GreenPrimary button label · system
9.8:1AAA
Aa
White on GreenPrimary button label · original
1.6:1Fail
Aa
White on RedDanger button label · original
2.9:1Fail
Aa
Ink on RedDanger button label · system
5.5:1AA
Aa
Blue 800 on LavenderLinks · system
5.9:1AA
Aa
Haze on LavenderSmall text · base value
4.0:1AA Large
Aa
Haze 700 on LavenderSmall text · system
6.0:1AA