Valle Roleplay · Design system 1.0

Guia de design

Tudo o que faz o Valle parecer o Valle: marca, cores, tipografia, formas, texturas, movimento e todos os componentes prontos. Nasceu da tela de loading — e vale para todos os sites da cidade.

O DESIGN.md é autocontido: cole em qualquer IA para aplicar o design instantaneamente.

01 · Marca e logo

O V do vale

Três versões: logo completo, wordmark e o V. Sempre nas cores oficiais, com proporção preservada e área de proteção.

Valle Roleplay

Completo · fundo escuro

Logo do Valle Roleplay para fundo claro

Fundo claro

Valle Roleplay

Wordmark

V

Área de proteção

xxxxValle Roleplay

x = largura da perna amarela do V (≈ 30% da altura do V). Nada de texto, borda ou outro grafismo dentro dessa área.

Tamanhos mínimos

Valle RoleplayCompleto · 160px
Valle RoleplayWordmark · 120px
V · 16px

Abaixo disso, use a versão seguinte (completo → wordmark → V).

Uso correto

Valle Roleplay

Proporção preservada

Cores oficiais

Valle Roleplay

Área de proteção

Valle Roleplay

Contraste com grafismos moderados

Uso incorreto

Valle Roleplay

Distorcido

Valle Roleplay

Cores alteradas

Valle Roleplay

Excesso de glow, 3D e sombras

Valle Roleplay

V modificado / baixa legibilidade

Guia oficial de uso (referência)

Guia oficial de uso do logo Valle Roleplay: usos corretos e incorretos

02 · Paleta

Grafite, amarelo, concreto e pôr do sol

O amarelo é tinta de sinalização: use só onde há ação ou destaque (até ~10% da tela). O resto é grafite e concreto.

Amarelo#F2E205

Primary · ação principal, foco, destaque, kicker

Branco concreto#ECE8E1

Foreground · texto, perna do V, CTA secundário

Laranja-vermelho#FF4A2B

Destructive · perigo, progresso, filtro ativo

Grafite#0B0C0E

Background · a noite da cidade

Grafite 2#131417

Card · superfícies e painéis

Grafite 3#1B1C20

Secondary · botões secundários, hover

Cinza#9C9A95

Muted · texto secundário, legendas

Texto longo#C9C6BF

Corpo de leitura sobre grafite

Linhas e bordas

--line · bordas padrão
--line-strong · hover, separadores

Tons de status

AbertoAprovadaEm análiseReprovadaRespondidoFechado

success #8FBF7A e warning #FF9A3C são auxiliares — só em badges e gráficos, nunca como cor de marca.

03 · Tipografia

Condensada no grito, Montserrat na conversa

Barlow Condensed 800 em caixa alta para títulos e números. Montserrat para tudo que se lê. Mono para dados técnicos.

Display XLBarlow Condensed 800 · clamp(56–128px) · .95

Valle Roleplay

DisplayBarlow Condensed 800 · 48px

Menu da cidade

TítuloBarlow Condensed 800 · 30px · .02em

Regras da cidade

SubtítuloBarlow Condensed 800 · 22px

Estrada do Vale

CorpoMontserrat 500 · 14–16px · 1.7

Enquanto a cidade carrega, conheça as regras e o código penal. Todo cidadão é responsável por conhecê-los.

RótuloMontserrat 800 · 12px · .18em

Entrando na cidade

KickerMontserrat 800 · 11px · .3em · amarelo

Dica da cidade

MonoJetBrains Mono 400/600 · 12px

license:3f9a1c… · passaporte 1024

NúmerosBarlow Condensed 800 · tabular-nums

128/256

Google Fonts

04 · Forma

Reto, cortado e emoldurado

Nenhum canto arredondado. O movimento da forma vem dos cortes diagonais, das molduras de canto e das barras grossas.

Cantos retos · radius 0

O terceiro (arredondado) não existe no Valle.

Corte diagonal · clip-cut / clip-cut-sm

010203

Moldura de canto

Hover
Ativa

22px → 30px e amarelo no hover.

Divisor com hachura

Barra lateral do drawer

Valle Roleplay

Menu da cidade

Bloco de informação

Dica da cidade

Aperte F9 para abrir o menu principal do personagem.

05 · Texturas

Atmosfera de cidade

Camadas sempre atrás do conteúdo, discretas e performáticas. Grid urbano a 7%, grão a 9%, hachura quase invisível.

Grid urbano
Grão fotográfico
Hachura
Slash
Sombras radiais
Fagulhas

06 · Iconografia

Lucide, traço 2, sem enfeite

Ícones lineares do lucide-react em branco concreto; amarelo só quando o ícone é o destaque ou o estado ativo. Marcas (Discord) em SVG próprio.

Tamanhos

14 · botões
16 · menus
20 · cards
24 · destaque

Vocabulário

07 · Motion

Contido como a noite

Entradas que sobem 14px, trocas com fade, ticker contínuo e hovers que acendem amarelo. Tudo respeita prefers-reduced-motion.

Clique para repetir as entradas

Rise

1.1s ease-out · translateY(14px)

Fade

.3s ease-out · troca de aba

Conteúdo da aba Regras

Hover

.2s · acende amarelo

Passe o mouseMoldura

Pulse

status ao vivo · ping

128/256 na cidade
Últimas novidades:
Novo sistema de trabalhosEventos semanaisMais opções de customizaçãoE muito mais!
rise1.1s ease-out
fade.3s ease-out
ticker40s linear ∞
grain.9s steps(4) ∞

08 · Componentes

Tudo pronto, tudo da marca

Todos os componentes shadcn de @workspace/ui/components/* já estilizados, mais os componentes da marca em @workspace/ui/components/valle/*. Nunca recrie em HTML cru.

Componentes · 6

Ações

Botões, grupos e alternâncias. Todo CTA principal usa a variante brand com corte diagonal.

Button

@workspace/ui/components/button

Variantes (incluindo as extras brand e cut) e todos os tamanhos.

Variantes

Tamanhos

Ícone

Button Group

@workspace/ui/components/button-group
Passaporte

Badge

@workspace/ui/components/badge
VIP OuroCivilBanidoWhitelistRascunhoVer regras Staff

Toggle

@workspace/ui/components/toggle

Toggle Group

@workspace/ui/components/toggle-group

Emprego selecionado: policia

Kbd

@workspace/ui/components/kbd

Abra o celular com K, o inventário com Tab e a busca do painel com Ctrl+K.

F1F5F9ShiftEsc

Componentes · 14

Formulários

Campos com linha inferior, rótulos em caixa alta e foco amarelo. Combine sempre com Field.

Input

@workspace/ui/components/input

Textarea

@workspace/ui/components/textarea

Label

@workspace/ui/components/label

Checkbox

@workspace/ui/components/checkbox

Radio Group

@workspace/ui/components/radio-group

Switch

@workspace/ui/components/switch

Slider

@workspace/ui/components/slider
Volume do rádio65%
Faixa de preço do veículo$ 5.000 – $ 40.000

Select

@workspace/ui/components/select

Native Select

@workspace/ui/components/native-select

Combobox

@workspace/ui/components/combobox

Base UI: lista filtrável com digitação.

Input OTP

@workspace/ui/components/input-otp

Código de vínculo enviado pelo bot no Discord:

valor: —

Input Group

@workspace/ui/components/input-group
4 resultados
Markdown suportado

Field

@workspace/ui/components/field

Composição de formulário: FieldSet, FieldGroup, Field, FieldLabel, FieldDescription e FieldError.

Dados do personagem

Essas informações aparecem no RG dentro da cidade.

Nome e sobrenome realistas. Nada de nomes de famosos.

Preferências

Atualizações e eventos por DM.

ou

Calendar

@workspace/ui/components/calendar
outubro 2026

Agenda de eventos

17 de outubro

Corrida noturna na serra, 21h. Inscrições na oficina do Mecânico Zé.

Componentes · 7

Navegação

Trilhas, abas, menus e a sidebar dos painéis. O item ativo acende em amarelo.

Breadcrumb

@workspace/ui/components/breadcrumb

Pagination

@workspace/ui/components/pagination

Tabs

@workspace/ui/components/tabs
Conta vinculada ao Discord desde março de 2025.
23 tickets aguardando a staff.

Navigation Menu

@workspace/ui/components/navigation-menu

Menubar

@workspace/ui/components/menubar

Command

@workspace/ui/components/command

Sidebar

@workspace/ui/components/sidebar

Demo contida (collapsible='none'). Nos painéis ela vem montada pelo AppShell.

Staff Valle
Gestão

Logado como Admin Valle

Página ativa

Jogadores

Clique nos itens da sidebar para trocar o estado ativo.

Componentes · 9

Overlays

Camadas por cima do conteúdo: diálogos, gavetas, popovers e menus. Fundo grafite, borda de linha e cantos retos.

Dialog

@workspace/ui/components/dialog

Alert Dialog

@workspace/ui/components/alert-dialog

Sheet

@workspace/ui/components/sheet

Drawer

@workspace/ui/components/drawer

Popover

@workspace/ui/components/popover

Hover Card

@workspace/ui/components/hover-card

Ticket atribuído a @admin.valle.

Tooltip

@workspace/ui/components/tooltip

Dropdown Menu

@workspace/ui/components/dropdown-menu

Context Menu

@workspace/ui/components/context-menu
Clique com o botão direito no veículo

Componentes · 7

Feedback

Avisos, toasts, carregamento e estados vazios. Erros usam o laranja-vermelho da marca.

Alert

@workspace/ui/components/alert

Sonner (toast)

@workspace/ui/components/sonner

O Toaster já está montado no ValleProviders. Dispare com toast() do pacote sonner.

Progress

@workspace/ui/components/progress
Análise da whitelist64%
Slots da cidade128/256

Spinner

@workspace/ui/components/spinner

Skeleton

@workspace/ui/components/skeleton

Empty

@workspace/ui/components/empty
Nenhum ticket aberto
Precisa de ajuda com a cidade? Abra um ticket e a staff responde em até 24h.

Marker

@workspace/ui/components/marker

Marcadores de linha do tempo / separadores de data em listas e chats.

default

Whitelist aprovada por @admin.valle

separator

Hoje · 15 de outubro

border

Evento: corrida noturna · ver detalhes

Componentes · 7

Dados

Tabelas, gráficos e cartões. Gráficos usam as cores --chart-1 a --chart-5 da marca.

Table

@workspace/ui/components/table
Jogadores conectados agora na cidade.
PassaportePersonagemEmpregoWhitelistPing
#1024Tony ValentePolícia MilitarAprovada38 ms
#1187Maria RochaHospitalAprovada52 ms
#1302Jefinho BorgesMecânicaEm análise71 ms
#1455Duda SalgadoDesempregadaReprovada104 ms
Total online128

Chart

@workspace/ui/components/chart

ChartContainer + recharts 3 com ChartTooltip e ChartLegend.

Jogadores por hora · hoje

Receita da loja por semana (R$)

--chart-1--chart-2--chart-3--chart-4--chart-5

Card

@workspace/ui/components/card
Polícia Militar
Corporação · 18 membros em serviço
Recrutando
Patrulhamento, abordagens e atendimento de ocorrências na cidade. Requer whitelist aprovada e 7 dias de cidade.
Card pequeno
size="sm" reduz o espaçamento interno.

Item

@workspace/ui/components/item
VIP Ouro

Ativo até 14/11/2026

Whitelist

Aprovada em 02/03/2025

Tony Valente

Personagem principal · passaporte #1024

Item muted / xs

Avatar

@workspace/ui/components/avatar
TVMRJB
TVMRJBDS
+124

Accordion

@workspace/ui/components/accordion

Entre no painel do cidadão com o Discord, leia as regras e responda o questionário.

Collapsible

@workspace/ui/components/collapsible
Histórico de punições · 3 registros
Advertência · 12/09/2026 · Metagaming

Componentes · 5

Layout

Estrutura e divisão de espaço: separadores, proporções, painéis redimensionáveis e rolagem.

Separator

@workspace/ui/components/separator

Valle Roleplay

Servidor de roleplay sério desde 2024.

Regras
Código penal
Loja

Aspect Ratio

@workspace/ui/components/aspect-ratio
16:9 trailer
1:1 avatar

Resizable

@workspace/ui/components/resizable

react-resizable-panels v4 — tamanhos em string são porcentagem.

Tickets

#482 Carro sumiu da garagem após restart

#479 Revisão de banimento — RDM

#471 VIP Ouro não entregou o salário extra

#482 · Carro sumiu da garagem

Arraste as alças para redimensionar os painéis.

Resposta da staff…

Scroll Area

@workspace/ui/components/scroll-area

Changelog

Temporada 3: porto aberto

Novo emprego: estivador

Rebalanceamento de salários

Garagem VIP no centro

Correção: carros sumindo após restart

Corrida noturna na serra

Novas roupas na loja de diamantes

Hospital com nova recepção

Fila prioritária para VIP

Bot do Discord com /status

Sultan RS
Kuruma
Elegy Retro
Bati 801
Sanchez
Zentorno
Sandking
Faggio

Direction

@workspace/ui/components/direction

DirectionProvider define a direção de leitura para os primitivos radix (sliders, menus, abas).

useDirection(): rtl

Volume do rádio: 30%

Componentes · 3

Mídia

Galerias, anexos e blocos de código. Imagens reais entram no lugar dos placeholders com grid urbano.

Attachment

@workspace/ui/components/attachment

Anexos de ticket com estados idle, uploading, processing, error e done.

print-garagem.png1,2 MB
clip-rdm.mp4Enviando… 48%
gravacao-assalto.movArquivo acima de 50 MB
historia.txt
Frente
Lateral
Placa

Code Block

@workspace/ui/components/code-block
server.lua
-- resources/valle-bridge/server.luaRegisterNetEvent("valle:whitelist:check", function(license)  local src = source  local ok = exports["valle-bridge"]:isWhitelisted(license)  if not ok then    DropPlayer(src, "Whitelist pendente: valle.gg/whitelist")  endend)
resources/valle-bridge
Config.MaxPlayers = 128Config.MaxPlayers = 256Config.Whitelist = true
[valle-bridge] ERRO: não foi possível conectar à API em 127.0.0.1:3333 (ECONNREFUSED)

Componentes · 5

Chat / IA

Componentes de conversa usados no chat dos tickets, no questionário da whitelist e nos logs do bot.

Message

@workspace/ui/components/message
TV
Tony Valente · 13:02
Meu carro sumiu da garagem depois do restart.
Admin Valle · staff
Já devolvi para a sua garagem!
Lida · 13:11

Bubble

@workspace/ui/components/bubble

Variantes: default, secondary, muted, tinted, outline, ghost e destructive.

default · Bem-vindo a Valle!
secondary · Valeu, staff!
muted · Ticket transferido para a equipe da loja.
tinted · Sua whitelist foi aprovada.
outline · Anexe o print, por favor.
ghost · Admin Valle está digitando…
destructive · Mensagem removida por violar as regras.
⚠️ 2

Message Scroller

@workspace/ui/components/message-scroller

Rolagem do chat com auto-scroll e botão para voltar ao fim.

Tony Valente · 13:02
Boa tarde! Meu Sultan RS sumiu da garagem depois do restart das 12h.
Admin Valle · 13:05
Opa, Tony! Pode mandar a placa do veículo e o print da garagem?
Tony Valente · 13:06
Placa VLL-1024. Print em anexo.
Admin Valle · 13:11
Achei nos logs: o carro foi para o pátio por um bug no restart. Já devolvi para a sua garagem.
Tony Valente · 13:12
Apareceu aqui! Valeu demais pela agilidade.
Admin Valle · 13:13
Tamo junto. Vou fechar o ticket, qualquer coisa abre outro. Bom RP!

Questionnaire

@workspace/ui/components/questionnaire

Questionário passo a passo — o formato do formulário de whitelist.

Pergunta 0 de 0

Trace

@workspace/ui/components/trace

Passos de uma rotina automática (bot / worker) com status running, pending e error.

Vínculo do Discord conferido120 ms

SELECT * FROM accounts WHERE license = 'license:5f2a…'

SELECT * FROM characters WHERE account_id = 1024

Sincronizando cargos no DiscordLiberar whitelist na cidadeEnviar DM para o jogadorDMs fechadas
Rotina executada pelo bot Valle às 13:20.

Componentes · 29

Marca Valle

Componentes próprios da marca em components/valle — construídos em cima do shadcn e compartilhados entre os apps.

BrandBackground

@workspace/ui/components/valle/brand-background

Por padrão é fixed atrás da página; aqui está com className='absolute' dentro de uma caixa relative isolate.

Atmosfera

Bem-vindo a Valle

sombra quente + grid urbano + grão + poeira

Kicker

@workspace/ui/components/valle/kicker

Temporada 3 · brand

Atualizado há 2 dias · muted

Manutenção às 06h · danger

SlashDivider

@workspace/ui/components/valle/slash-divider

Regras da cidade

Barra amarela 54px + 22px + hachura diagonal até o fim.

SectionHeading

@workspace/ui/components/valle/section-heading

Loja oficial

Apoie a cidade, ganhe vantagens

Todo valor arrecadado mantém o servidor online e financia eventos semanais.

Como entrar

Quatro passos até a cidade

PageHeader

@workspace/ui/components/valle/page-header

Ticket #482

Carro sumiu da garagem

Aberto por Tony Valente · categoria Suporte · prioridade Alta

CutBadge

@workspace/ui/components/valle/cut-badge
01020304
  1. 01Entre com o Discord
  2. 02Leia as regras
  3. 03Responda a whitelist
  4. 04Entre na cidade

CornerFrame

@workspace/ui/components/valle/corner-frame

Passe o mouse: os cantos crescem e acendem em amarelo.

Hover

Passe o mouse aqui

Ativo

active=true

ToneBadge · LabelBadge

@workspace/ui/components/valle/status-badge

ToneBadge — todos os tons

branddangersuccesswarninginfomuted

LabelBadge com ticketStatusLabels

AbertoRespondidoAguardando staffFechado—

StatCard

@workspace/ui/components/valle/stat-card

Jogadores online

128

+12% vs. ontemde 256 slots

Whitelists pendentes

9

média de 6h

Tickets abertos

23

-8%

Vendas no mês

R$ 18,4 mil

0% estável

DataTable

@workspace/ui/components/valle/data-table

TanStack Table + Table/Pagination/Skeleton do shadcn.

#AssuntoStatusPrioridadeAtualizado
#482Carro sumiu da garagem após restartAbertoAlta15/10/2026
#479Revisão de banimento — RDMAguardando staffNormal14/10/2026
#471VIP Ouro não entregou o salário extraRespondidoNormal13/10/2026
#455Denúncia de metagaming no assalto ao bancoFechadoUrgente10/10/2026

Página 1 de 12 · 1.204 registros

Vazio

#AssuntoStatusPrioridadeAtualizado
Nada por aqui
Nenhum registro encontrado com os filtros atuais.

UserAvatar

@workspace/ui/components/valle/user-avatar
TVMRJESI
AVAdmin Valle@admin.valle

LiveStatusPill

@workspace/ui/components/valle/live-status-pill
128/256 na cidade · fila 14Cidade offlineStatus indisponível

FilterChips

@workspace/ui/components/valle/filter-chips

Selecionado: todos

SearchInput

@workspace/ui/components/valle/search-input

valor: —

Ticker

@workspace/ui/components/valle/ticker
Últimas novidades:
Temporada 3 no arCorrida noturna sábado às 21hNovo emprego: estivador no portoVIP Ouro com 30% offRestart diário às 06h

DiscordLoginButton · DiscordIcon

@workspace/ui/components/valle/discord-button

ConfirmDialog

@workspace/ui/components/valle/confirm-dialog

LoadingState · ErrorState

@workspace/ui/components/valle/state

Carregando jogadores

ProductCard

@workspace/ui/components/valle/product-card
VIP Destaque
-29%

VIP Ouro

Prioridade na fila, salário extra e acesso à garagem exclusiva do Valle por 30 dias.

  • Prioridade na fila de entrada
  • +25% no salário dos empregos
  • Garagem VIP no centro
  • Tag dourada no Discord
R$ 69,90R$ 49,90por 30 dias
Diamantes

500 Diamantes

Moeda premium para trocar por roupas, placas personalizadas e itens cosméticos.

  • Entrega automática na cidade
  • Sem validade
R$ 24,90

NewsCard

@workspace/ui/components/valle/news-card
Evento

Corrida noturna na serra neste sábado

Inscrições abertas na oficina do Mecânico Zé. Premiação de $ 250.000 e um carro exclusivo para o primeiro lugar.

Ler mais

RulesAccordion

@workspace/ui/components/valle/rules-accordion

Regras gerais

Conduta

PenalCodeTable

@workspace/ui/components/valle/penal-code-table
Art.CrimePenaMultaFiança
Art. 121Homicídio dolosoCrimes contra a vida60 meses$ 150.000Inafiançável
Art. 129Lesão corporalCrimes contra a vida15 meses$ 25.000$ 40.000
Art. 306Dirigir sob efeito de álcoolTrânsito5 meses$ 12.000$ 15.000
Art. 311Fuga em alta velocidadeTrânsito10 meses$ 30.000$ 35.000

Markdown

@workspace/ui/components/valle/markdown

Como enviar sua whitelist

  1. Entre com o Discord no painel do cidadão.
  2. Leia as regras da cidade e o código penal.
  3. Responda o questionário com a história do seu personagem.

A análise leva até 48 horas. Você recebe o resultado por DM no Discord.

EtapaPrazo
Questionárioimediato
Análise da staffaté 48h

Use /ticket no Discord se tiver dúvidas.

LoginScreen

@workspace/ui/components/valle/login-screen

Tela cheia (min-h-svh). Aqui reduzida a 60% dentro de uma caixa com transform.

Voltar ao site
Valle Roleplay

Painel do cidadão

Entre na cidade

Use a sua conta do Discord para acessar. Sem senha, sem cadastro extra.

Entrar com Discord

Ao entrar você concorda com as regras da cidade e com a política de privacidade.

AppShell

@workspace/ui/components/valle/app-shell

Casca de tela cheia dos painéis (customer/staff) — Sidebar, header com trigger e menu do usuário com Sair. Não renderizada aqui; veja a demo da Sidebar acima.

AV
<AppShell
  app={{ name: "Painel da staff", href: "/" }}
  nav={[{ label: "Gestão", items: [
    { title: "Jogadores", href: "/jogadores", icon: UsersIcon },
    { title: "Tickets", href: "/tickets", icon: LifeBuoyIcon, badge: 23 },
  ] }]}
  user={{ username: "admin.valle", roleName: "Moderador" }}
>
  {children}
</AppShell>

ValleProviders

@workspace/ui/components/valle/providers

Tema escuro fixo (next-themes), react-query, TooltipProvider e o Toaster. Já envolve esta página no layout do app.

  • ThemeProvider · forcedTheme dark
  • ApiProvider · react-query
  • TooltipProvider · delay 150ms
  • Toaster · bottom-right
// app/layout.tsx
<body>
  <ValleProviders>{children}</ValleProviders>
</body>

09 · Padrões de layout

Composições da cidade

Estruturas recorrentes nos sites do Valle. Use como ponto de partida — a densidade e o ritmo importam tanto quanto as cores.

Hero cinematográfico

Vídeo desfocado + sombras + grid + grão. Logo central, etapas, status ao vivo, 2 CTAs, ticker na base.

Bento

Grid de 6 colunas: card principal 3×2 com V gigante e barra do drawer; cards menores com ícone.

Dashboard

Sidebar com item ativo amarelo, header sticky, PageHeader com divisor, StatCards e tabela de dados.

Tabela de referência

Chips de categoria + busca + tabela com cabeçalho amarelo; inafiançável em vermelho.

Formulário

Kicker + título, campos com borda reta e foco amarelo, ação principal com corte à direita.

Auth

Tela cheia com fundo da marca, logo, card com moldura ativa e barra do drawer, botão Discord.

10 · Voz e tom

Fala de cidadão para cidadão

Português do Brasil, segunda pessoa, frases curtas e vocabulário de RP. Botões com verbos de ação. Erros sem culpa e sempre com saída.

Princípios

  • Direto. Diga o que acontece e o que fazer. Sem jargão técnico.
  • Caloroso. A cidade recebe: “Sua história está chegando”.
  • Com atitude. Títulos curtos e fortes: “Rua sem saída”, “Entre na cidade”.
  • Brasileiro. Datas 15/10/2026 às 19:40, R$ 19,90, $ 48.250 (dinheiro do jogo).

Submit

Enviar whitelist

Login

Entrar com Discord

Loading...

Conectando ao vale…

Error 500: Internal Server Error

Não conseguimos falar com a cidade agora. Tente novamente em instantes.

No data

Nada por aqui ainda.

Você foi banido por violar os termos.

Seu acesso está suspenso. Veja o motivo e, se quiser, peça revisão por ticket.

11 · Acessibilidade

Contraste de sinalização

A paleta nasceu para ser lida de longe. Mantenha o foco amarelo visível, alvos de 40px, texto em todo status e respeite o movimento reduzido.

Aa Valle
14,6:1AAA
#F2E205 sobre #0B0C0ECTA, kicker, destaque
Aa Valle
14,6:1AAA
#0B0C0E sobre #F2E205Texto de botão amarelo
Aa Valle
16,0:1AAA
#ECE8E1 sobre #0B0C0ETexto principal
Aa Valle
11,5:1AAA
#C9C6BF sobre #0B0C0ETexto longo
Aa Valle
7,0:1AAA
#9C9A95 sobre #0B0C0ETexto secundário
Aa Valle
5,8:1AA
#FF4A2B sobre #0B0C0EAlertas, inafiançável
Aa Valle
5,8:1AA
#0B0C0E sobre #FF4A2BBotão destrutivo sólido
Aa Valle
1,1:1Proibido
#F2E205 sobre #ECE8E1Nunca use amarelo sobre branco

Checklist

  • Foco sempre visível (ring amarelo; nos botões cortados, fundo branco)
  • Alvos de toque com pelo menos 40px
  • Status nunca só por cor: badge sempre tem texto
  • Ícones decorativos com aria-hidden; ícones-botão com aria-label em PT-BR
  • Vídeo, grão, fagulhas e ticker desligam com prefers-reduced-motion
  • Texto longo em #C9C6BF, nunca amarelo
Atalho para alternar o menu lateral dos painéis: Ctrl + B

Leve o design com você

DESIGN.md pronto para qualquer IA

Tokens, CSS, regras de componentes, padrões, motion, do/don't e um prompt de exemplo.