Design System
Implementação das diretrizes visuais da Tech Leads club em daisyUI 5 + Tailwind CSS 4. Um tema, dois modos, e exemplos de todos os componentes da biblioteca com o visual da marca aplicado.
O tema
Um único par de temas — tlc-dark e tlc-light — traduz os tokens da marca para as variáveis do daisyUI. Nenhum componente desta página usa cor fixa do Tailwind: tudo muda junto com o tema.
Cores
Forma
Todas as variáveis
Cada variável do bloco @plugin "daisyui/theme", editável direto. As cores valem para o tema ativo; raio, tamanho e borda valem para os dois.
--radius-selector--radius-field--radius-box--size-selector--size-field--border--depth--noiseAs mudanças valem para o tema ativo e seguem para as páginas de exemplo.
Opacidade
Raios
Tipografia
Ações
Botões e gatilhos. Use btn-primary uma vez por tela, para a ação mais importante; o resto fica no btn neutro.
Cores
Estilos
Tamanhos
Modificadores e estados
Dropdown
Abrir menu
Alinhado à direita
Modal
Swap
Theme controller
Um checkbox marcado com a classe theme-controller troca o tema da página para o valor do input.
FAB
O FAB fica fixo no canto inferior direito da tela — role a página e clique nele para ver as ações.
Exibição de dados
Componentes para apresentar conteúdo: cards, listas, tabelas, métricas e mídia.
Card
Mentoria em grupo
Encontros quinzenais com líderes da comunidade.
Workshopnovo
card-border, sem sombra.
card-side
Imagem à esquerda do corpo.
Badge
O padrão para status inline: cor suficiente para ler o estado, sem o peso de um badge cheio.
Avatar





Stat
List
- Mais acessados da semana
Como dar feedback difícilLiderança
Arquitetura para times pequenosTécnico
Accordion e collapse
Chat


Timeline
- 2021●Fundação da comunidade
- 2023●Primeiro evento presencial
- 2025●Design system unificado
Status
Countdown
Stack
Carousel
Diff
Mask





Hover 3D
Passe o cursor sobre a imagem.
Hover gallery
Mova o cursor horizontalmente sobre a imagem.
Text rotate
Aura
Use no máximo um aura por tela, no elemento mais importante.
Tabelas
Os padrões em uso no obelisco. No Rails eles vêm dos helpers card_tag e table_tag; aqui está o HTML equivalente.
Lista de atividade (nosso padrão)
Linha com ícone em círculo, título e subtítulo; colunas de apoio em text-base-content/60 e ação em btn-ghost.
| Atividade | Início | Duração | |
|---|---|---|---|
Membro concluiu curso-python Certificado emitido automaticamente | 1 semana atrás | 17 minutos | |
Novo membro entrou em Geral Mensagem de boas-vindas enviada | 27 jan às 18:43 | 5 minutos | |
Spam detectado em space-geral 3 posts sinalizados pela automoderação | 19 fev às 12:07 | Em andamento |
Linhas clicáveis (a linha inteira é um link)
O pseudo-elemento do link cobre a linha toda; a ação recebe z-10 para continuar clicável.
| Membro | Status | Entrou | |
|---|---|---|---|
| Ana Costa ana@example.com | Ativa | 3 meses atrás | |
| Ricardo Mendes ricardo@example.com | Pausado | 1 mês atrás |
Básica
| Nome | Cargo | Cor favorita | |
|---|---|---|---|
| 1 | Cy Ganderton | Quality Control Specialist | Azul |
| 2 | Hart Hagerty | Desktop Support Technician | Roxo |
| 3 | Brice Swyre | Tax Accountant | Vermelho |
Linha ativa e hover
| Nome | Cargo | Cor favorita | |
|---|---|---|---|
| 1 | Cy Ganderton | Quality Control Specialist | Azul |
| 2 | Hart Hagerty | Desktop Support Technician | Roxo |
| 3 | Brice Swyre | Tax Accountant | Vermelho |
Zebra
| Nome | Cargo | Cor favorita | |
|---|---|---|---|
| 1 | Cy Ganderton | Quality Control Specialist | Azul |
| 2 | Hart Hagerty | Desktop Support Technician | Roxo |
| 3 | Brice Swyre | Tax Accountant | Vermelho |
Com elementos visuais
| Nome | Empresa | Cor favorita | ||
|---|---|---|---|---|
![]() Hart Hagerty Estados Unidos | Zemlak, Daniel and Leannon Desktop Support Technician | Roxo | ||
![]() Brice Swyre China | Carroll Group Tax Accountant | Vermelho | ||
| Nome | Empresa | Cor favorita |
Tamanhos
| Nome | Cargo | Empresa | Local | Último acesso | Cor favorita | |
|---|---|---|---|---|---|---|
| 1 | Cy Ganderton | Quality Control Specialist | Littel, Schaden and Vandervort | Canadá | 16/12/2020 | Azul |
| 2 | Hart Hagerty | Desktop Support Technician | Zemlak, Daniel and Leannon | Estados Unidos | 05/12/2020 | Roxo |
| 3 | Brice Swyre | Tax Accountant | Carroll Group | China | 15/08/2020 | Vermelho |
| 4 | Marjy Ferencz | Office Assistant I | Rowe-Schoen | Rússia | 25/03/2021 | Carmim |
| 5 | Yancy Tear | Community Outreach Specialist | Wyman-Ledner | Brasil | 22/05/2020 | Índigo |
| Nome | Cargo | Empresa | Local | Último acesso | Cor favorita |
| Nome | Cargo | Cor favorita | |
|---|---|---|---|
| 1 | Cy Ganderton | Quality Control Specialist | Azul |
| 2 | Hart Hagerty | Desktop Support Technician | Roxo |
| 3 | Brice Swyre | Tax Accountant | Vermelho |
Cabeçalho e coluna fixos
Role a área nas duas direções: o cabeçalho e as colunas th ficam parados.
| Nome | Cargo | Empresa | Local | Último acesso | Cor favorita | ||
| 1 | Cy Ganderton | Quality Control Specialist | Littel, Schaden and Vandervort | Canadá | 16/12/2020 | Azul | 1 |
| 2 | Hart Hagerty | Desktop Support Technician | Zemlak, Daniel and Leannon | Estados Unidos | 05/12/2020 | Roxo | 2 |
| 3 | Brice Swyre | Tax Accountant | Carroll Group | China | 15/08/2020 | Vermelho | 3 |
| 4 | Marjy Ferencz | Office Assistant I | Rowe-Schoen | Rússia | 25/03/2021 | Carmim | 4 |
| 5 | Yancy Tear | Community Outreach Specialist | Wyman-Ledner | Brasil | 22/05/2020 | Índigo | 5 |
| 6 | Irma Vasilik | Editor | Wiza, Bins and Emard | Venezuela | 08/12/2020 | Roxo | 6 |
| 7 | Meghann Durtnal | Staff Accountant IV | Schuster-Schimmel | Filipinas | 17/02/2021 | Amarelo | 7 |
| 8 | Sammy Seston | Accountant I | O'Hara, Welch and Keebler | Indonésia | 23/05/2020 | Carmim | 8 |
| 9 | Lesya Tinham | Safety Technician IV | Turner-Kuhlman | Filipinas | 21/02/2021 | Bordô | 9 |
| 10 | Zaneta Tewkesbury | VP Marketing | Sauer LLC | Chade | 23/06/2020 | Verde | 10 |
| Nome | Cargo | Empresa | Local | Último acesso | Cor favorita |
Formulários
Campos, seletores e validação. O foco usa a cor primary do tema em todos eles.
Input
Label
Textarea
Select
Checkbox, radio e toggle
Fieldset
File input
Range
Rating
Filter
OTP
Validator
Digite um e-mail inválido para ver o estado de erro.
Informe um e-mail válido.
Calendar
O daisyUI só estiliza bibliotecas de calendário — Cally, React Day Picker ou Vanilla Calendar Pro. Instale a lib e aplique a classe correspondente.
<calendar-date class="cally">…</calendar-date>
Feedback
Estados de carregamento, progresso e mensagens ao usuário.
Alert
Loading
Progress
Radial progress
Skeleton
Tooltip
Toast
O toast é fixo em relação à tela. Aqui ele é exibido dentro de um container relativo apenas para demonstração.
Layout e utilitários
Estruturas de página, agrupamentos e mockups.
Hero
Lidere melhor
A comunidade de líderes técnicos que compartilha o que realmente funciona.
Divider
Join
Indicator

Footer
Kbd
Mockup — browser
Mockup — code
npm i -D tailwindcss @tailwindcss/vite daisyuiinstalando…prontoMockup — janela
Mockup — telefone
Páginas de exemplo
Telas completas montadas só com os componentes acima — as mesmas do guia de exemplos do obelisco. Abrem em tela cheia, com o menu lateral do app.
Índice com busca, filtros, tabela e paginação.
Registro completo: cabeçalho, blocos de dados e zona de perigo.
Configurações em seções, com descrição à esquerda e campos à direita.
Ainda não há dados — explica o que fazer e oferece a ação.
Falha na operação, o que fazer e as ações de recuperação.
Operação concluída, com resumo do que aconteceu.
Processo em andamento com progresso passo a passo.
Mensagens de sistema como toasts no rodapé.
Instalação
Como colocar o tema em um projeto novo, ou levar para outro app do ecossistema.
daisyUI 5 exige Tailwind CSS 4. Não use tailwind.config.js — toda a configuração vive no CSS.
@import "tailwindcss";
@plugin "daisyui" { themes: false; }
@plugin "daisyui/theme" {
name: "tlc-dark";
default: true;
prefersdark: true;
color-scheme: dark;
--color-base-100: #0A0E1A;
--color-base-200: #111725;
--color-base-300: #1A2233;
--color-base-content: #EAEEF7;
--color-primary: #1D4BFA;
--color-primary-content: #FFFFFF;
--color-secondary: #1A2233;
--color-secondary-content: #9AA3B8;
--color-accent: #BF38FF;
--color-accent-content: #FFFFFF;
--color-neutral: #101010;
--color-neutral-content: #EAEEF7;
--color-info: #2F6BFF;
--color-info-content: #FFFFFF;
--color-success: #7AFA8F;
--color-success-content: #101010;
--color-warning: #F1D15F;
--color-warning-content: #101010;
--color-error: #FF5F57;
--color-error-content: #101010;
--radius-selector: 2rem;
--radius-field: 0.5rem;
--radius-box: 1rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 0;
--noise: 0;
}
@plugin "daisyui/theme" {
name: "tlc-light";
default: false;
prefersdark: false;
color-scheme: light;
--color-base-100: #FFFFFF;
--color-base-200: #F4F6FB;
--color-base-300: #E6EAF4;
--color-base-content: #101010;
--color-primary: #1D4BFA;
--color-primary-content: #FFFFFF;
--color-secondary: #E6EAF4;
--color-secondary-content: #3D4454;
--color-accent: #9333EA;
--color-accent-content: #FFFFFF;
--color-neutral: #101010;
--color-neutral-content: #F4F6FB;
--color-info: #1D4ED8;
--color-info-content: #FFFFFF;
--color-success: #20C95B;
--color-success-content: #101010;
--color-warning: #E8B923;
--color-warning-content: #101010;
--color-error: #FF5F57;
--color-error-content: #101010;
--radius-selector: 2rem;
--radius-field: 0.5rem;
--radius-box: 1rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 0;
--noise: 0;
}
[data-theme="tlc-dark"],
[data-theme="tlc-light"] {
--tlc-live: #FF3862;
}O arquivo completo está em src/styles/daisy.css. Copie os dois blocos para o application.css do seu app. No light, success / warning são vivos com texto ink; info / accent um degrau mais pesados. Ícones de ao vivo usam --tlc-live (#FF3862), não accent.
DESIGN.md
O tema no formato DESIGN.md, para colar em agentes de código e ferramentas de design. Segue o spec alpha do google-labs-code/design.md.
Cole na raiz do repositório do seu app. Agentes leem os tokens do front matter YAML e a intenção de cada decisão na prosa, então o resultado sai com a identidade da marca sem você repetir hex code a cada prompt.
---
version: alpha
name: Tech Leads club
description: Design system da Tech Leads club, tema daisyUI 5 sobre Tailwind CSS 4.
colors:
base-100: "#0A0E1A"
base-200: "#111725"
base-300: "#1A2233"
base-content: "#EAEEF7"
primary: "#1D4BFA"
primary-content: "#FFFFFF"
secondary: "#1A2233"
secondary-content: "#9AA3B8"
accent: "#BF38FF"
accent-content: "#FFFFFF"
neutral: "#101010"
neutral-content: "#EAEEF7"
info: "#2F6BFF"
info-content: "#FFFFFF"
success: "#7AFA8F"
success-content: "#101010"
warning: "#F1D15F"
warning-content: "#101010"
error: "#FF5F57"
error-content: "#101010"
base-100-light: "#FFFFFF"
base-200-light: "#F4F6FB"
base-300-light: "#E6EAF4"
base-content-light: "#101010"
secondary-light: "#E6EAF4"
secondary-content-light: "#3D4454"
accent-light: "#9333EA"
neutral-content-light: "#F4F6FB"
info-light: "#1D4ED8"
success-light: "#20C95B"
warning-light: "#E8B923"
live: "#FF3862"
logo-symbol: "#3B82FF"
typography:
display-lg:
fontFamily: "Bahnschrift, Roboto Condensed, Segoe UI, sans-serif"
fontSize: 48px
fontWeight: 700
lineHeight: 1.05
letterSpacing: 0.02em
display-md:
fontFamily: "Bahnschrift, Roboto Condensed, Segoe UI, sans-serif"
fontSize: 36px
fontWeight: 700
lineHeight: 1.1
letterSpacing: 0.02em
headline-lg:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 30px
fontWeight: 700
lineHeight: 1.2
letterSpacing: -0.02em
headline-md:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 24px
fontWeight: 700
lineHeight: 1.25
letterSpacing: -0.01em
title-md:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 20px
fontWeight: 500
lineHeight: 1.4
body-lg:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 18px
fontWeight: 400
lineHeight: 1.55
body-md:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
body-sm:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 14px
fontWeight: 400
lineHeight: 1.45
subtitle-light:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 20px
fontWeight: 300
lineHeight: 1.4
label-md:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 14px
fontWeight: 500
lineHeight: 1.2
letterSpacing: 0.02em
label-sm:
fontFamily: "Roboto, system-ui, sans-serif"
fontSize: 12px
fontWeight: 500
lineHeight: 1.3
letterSpacing: 0.04em
code:
fontFamily: "JetBrains Mono, ui-monospace, monospace"
fontSize: 14px
fontWeight: 400
lineHeight: 1.6
rounded:
selector: 2rem
field: 0.5rem
box: 1rem
spacing:
base: 4px
xs: 4px
sm: 8px
md: 12px
lg: 16px
xl: 24px
2xl: 32px
3xl: 48px
4xl: 64px
grid: 48px
components:
button-primary:
backgroundColor: "{colors.primary}"
textColor: "{colors.primary-content}"
rounded: "{rounded.field}"
typography: "{typography.label-md}"
button-accent:
backgroundColor: "{colors.accent}"
textColor: "{colors.accent-content}"
rounded: "{rounded.field}"
card:
backgroundColor: "{colors.base-200}"
textColor: "{colors.base-content}"
rounded: "{rounded.box}"
input:
backgroundColor: "{colors.base-100}"
textColor: "{colors.base-content}"
rounded: "{rounded.field}"
badge:
rounded: "{rounded.selector}"
typography: "{typography.label-md}"
badge-live:
backgroundColor: "{colors.live}"
textColor: "{colors.base-100}"
rounded: "{rounded.selector}"
---
# Tech Leads club
## Overview
A Tech Leads club fala de par para par com pessoas seniores: tom técnico e
direto, sem infantilização nem hype vazio. Vocabulário de terminal quando faz
sentido, sem forçar. A identidade nasce do hexágono isométrico de cubos, que lê
como bloco, módulo e construção, coerente com engenharia de software.
A interface é densa e escura por padrão (`tlc-dark`), com o tema claro
(`tlc-light`) como par obrigatório: toda peça é entregue nos dois temas. O grid de
fundo de 48px é assinatura visual e aparece atrás do conteúdo em baixa opacidade.
Escrevemos Dev sempre com D maiúsculo, para valorizar o profissional.
## Colors
O azul é a cor de ação; o roxo é o segundo destaque, não um substituto.
- **Primary (#1D4BFA):** azul da marca, usado em ação principal, links e foco.
- **Accent (#BF38FF):** roxo, para telas que precisam de dois destaques ao lado
do primary. No tema claro fecha em #9333EA para manter contraste.
- **Base (#0A0E1A / #FFFFFF):** fundo da página, com base-200 e base-300 como
elevações 1 e 2.
- **Live (#FF3862):** vermelho exclusivo de ícones de Live e ao vivo. Não é
token daisyUI e não substitui `error`, porque competiria com ele.
- **Logo (#3B82FF):** azul do símbolo do logo, mais claro que o primary da marca.
Tokens com sufixo `-light` valem para o tema `tlc-light`; sem sufixo, para
`tlc-dark`. Onde os dois temas compartilham o mesmo valor, existe só o token base.
## Typography
Três famílias, três papéis, e os papéis nunca se misturam.
- **Roboto** é a primária: título em Bold, subtítulo em Light, corpo em Regular.
- **Bahnschrift** é o display condensado, só em headline caixa alta e chamadas
técnicas.
- **JetBrains Mono** é utilitária, só em terminal, tagline e metadados.
Os tokens abaixo descrevem a escala de tela, que segue a escala padrão do
Tailwind usada nas páginas do design system. Peças de capa usam outra regra, a
proporcional: o título é a base (100%) e label, subtítulo e descrição são
derivados dele em 60%, 50% e 50%.
## Layout
Escala de espaço base 4: 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px.
O grid de fundo de 48px atravessa a página inteira e é parte da marca,
não decoração. Fotos e áreas de destaque são circuladas com o aro cromático, e o
gradiente de fundo fica em torno de 20% de opacidade para nunca competir com o texto.
## Elevation & Depth
A profundidade vem de camadas tonais, não de sombra. O tema define `--depth: 0`
e `--noise: 0`: a hierarquia é construída por base-100, base-200 e base-300, mais
uma borda de 1px. Não há escala de sombra no design system.
## Shapes
Cantos suaves e consistentes: campo em 0.5rem, container em 1rem e
seletor/pill em 2rem. Não misture cantos arredondados e retos na mesma tela.
## Components
Os componentes vêm do daisyUI 5 com o tema da marca aplicado; os tokens abaixo
fixam só o que a marca decide, e o resto segue o default da biblioteca. Variantes
de estado (hover, active) são derivadas pelo daisyUI a partir do token base.
## Do's and Don'ts
- Do derivar label, subtítulo e descrição do título (60% / 50% / 50%)
- Do usar primary e accent juntos quando a tela precisa de dois destaques
- Do entregar toda peça nos dois temas
- Do escrever Dev com D maiúsculo, sempre
- Do respeitar a área de proteção do logo de no mínimo meio símbolo
- Don't recolorir o wordmark com cores de pilar
- Don't usar o vermelho live (#FF3862) fora de ícones de Live, porque compete com error
- Don't tratar o live como accent do daisyUI: accent é o roxo
- Don't deixar o gradiente competir com o texto
- Don't misturar os papéis das fontes