tlc · design.md

$ open --design-system // Tech Leads club

Design System
Tech Leads club

Blocos reutilizáveis, paleta dinâmica e estética de terminal. A mesma cara em toda peça.

versão 1.0temas Dark + Light fontes Roboto · Bahnschrift · JetBrains Mono

$ open --marca

Marca & logo

Hexágono isométrico de cubos. Lê-se como bloco/módulo/construção, coerente com engenharia de software. Wordmark em Roboto: TechLeads bold + .club regular.

Tech Leads club
monocromático branco

Lockup horizontal · display condensado · símbolo isolado · monocromático branco (sobre fundo escuro/cor)

Regras rápidas

  • Símbolo em #3B82FF (logo) · marca em #1D4BFA; branco sobre dark denso.
  • Área de proteção ≥ meio símbolo em todos os lados.
  • Mínimos: lockup 120px · símbolo isolado 24px.
  • Nunca recolorir o wordmark com cores de pilar.
  • Sem distorção, rotação ou sombra dura.

$ open --cores

Cores

5 cores + 1 tom de cinza/preto + azul select. Quatro conceitos são pilares oficiais. Verde neon é identidade; no produto light, success/warning/info usam tons mais pesados. O vermelho live é exceção — só ícones de Live / ao vivo. Accent do app é o roxo, para conviver com primary.

Cores de marca

O hex do chip acompanha o toggle Dark / Light no canto. Verde, amarelo, info e accent ficam mais pesados no light. Live e azuis de marca não mudam.

Verde
#7AFA8F
--green · commit · success
dark neon · light vivo + texto ink
acento
Amarelo
#F1D15F
--yellow · empatia · warning
dark neon · light vivo + texto ink
pilar · Empatia
Vermelho
#FF3862
--red · live
só ícones Live / ao vivo
exceção
Roxo
#BF38FF
--purple · accent
dark #BF38FF · light mais pesado
acento · pilar
Azul marca
#1D4BFA
--blue · confiança
Primária · ações · gradientes
pilar · Confiança
Azul logo
#3B82FF
--blue-light · símbolo
Ícone hex · títulos · headlines
marca
Azul info
#2F6BFF
--in · --select · sintaxe
dark #2F6BFF · light pesado
funcional
Preto/Cinza
#101010
--ink · privacidade
Fundo · texto sobre claro
pilar · Privacidade

Paleta semântica

Tokens agrupados por matiz, em gradual escuro → claro e frio → quente. Hex atualiza com o toggle de tema. No light, info / success / warning ficam mais pesados para contraste em fundo claro. Accent é o roxo — não o vermelho live.

Neutros · escuro → claro

neutral
ink · privacidade
--n
base-100
navy · fundo
--b1
base-200
navy · surface
--b2
secondary
cinza · surface
--s
base-300
navy · surface-2
--b3
neutral-content
texto dim
--nc
secondary-content
texto muted
--sc
base-content
texto principal
--bc

Azuis · frio

primary
azul · confiança
--p
info
azul · select · sintaxe
--in
primary-content
branco
--pc
info-content
branco
--inc

Verde · transição

success-content
texto sobre o fill
--suc
success
verde · commit
--su

Amarelo · quente

warning-content
texto sobre o fill
--wac
warning
amarelo · empatia
--wa

Roxo · acento

accent
roxo · diversidade
--a
accent-content
branco
--ac

Accent existe para trabalhar primary + accent na mesma tela. No light o fill é um degrau mais pesado (#9333EA) para branco passar AA; a identidade continua #BF38FF. Não use o vermelho live no lugar.

Vermelho · quente

live
exceção · ao vivo
--live
error
vermelho · erro
--er
error-content
texto sobre o fill
--erc

Exceção. --live / --tlc-live (#FF3862) é exclusivo de ícones de Live / ao vivo. Não é o accent do daisyUI e não vai em CTA, alerta nem ação destrutiva — o tom é próximo demais de error (#FF5F57). Erro e destrutivo ficam só em error.

$ render --circulo-cromatico

Círculo cromático

O motor da paleta e, ao mesmo tempo, um elemento gráfico. Cria subtons e transições, e “circula” fotos e áreas de conteúdo. É o gesto que representa o acolhimento em nichos.

  • Qualquer combinação presente no círculo é válida.
  • Os círculos são rotacionados para definir a paleta de cada capa.
  • O círculo oposto é a continuação da parte oculta, ou o mesmo em gradiente inverso.
  • Gradiente de fundo sempre em ~20% de opacidade.
  • Aro de foto/avatar: espessura de 2 a 12px conforme a peça.

$ render --gradientes

Gradientes

--grad-blue · títulos · #3B82FF a #1D4BFA
--grad-primary · #1D4BFA a #BF38FF
--grad-accent · #BF38FF a #FF3862

Azul é o gradiente padrão de títulos e da marca. O roxo (#BF38FF) é o accent de produto. O vermelho sólido (#FF3862) é exceção para ícones de Live / ao vivo — compete com o vermelho de erro. Labels de capa usam cor sólida (azul ou accent), nunca o live.

$ open --tipografia

Tipografia

Três famílias, três papéis. Nunca misture papéis: mono só no terminal, Bahnschrift só no display condensado.

Roboto · primária · Bold / Regular / Light

Título da Capa
Corpo e descrição do conteúdo (Regular)
Subtítulo da capa (Light)

Bahnschrift · secundária · display condensado

ENGENHARIA DE SOFTWARE COM IA
Headlines em caixa alta · chamadas técnicas · datas/horas

JetBrains Mono · utilitária · terminal

$ deploy --Workshop
// Garanta seu ingresso.   -- execute Tagline
@waldemar.devlab   ao_vivo   18h30 às 20h

Escala proporcional (regra da capa)

ElementoTamanhoFamília / pesoCaixa
Labelpill · 14pxRoboto Regular / Mediumminúsculo
Título100% (base)Roboto BoldTitle Case
Subtítulo50% do títuloRoboto LightSentence case
Descrição50% do títuloRoboto RegularSentence case
Terminal14 a 18pxJetBrains Monocomo digitado

$ open --grid

Grid & espaçamento

Escala de espaço (base 4)

4
8
12
16
24
32
48
64

Raios

--r-pill · 999px
--r-card · 20px
--r-window · 14px
--r-field · 10px

$ layout --estrutura-capa

Estrutura de capa

Conteúdo alinhado ao centro, dentro de uma janela de prompt. Blocos: Label → Título → Subtítulo → Descrição. Fotos vão em label retangular ou circuladas pelo aro.

Label
Título da Capa
Subtítulo da capa

Descrição do conteúdo · Copyright  ·  área útil = variável / centralizada

Responsividade

EspaçoMostra
GrandeLabel + título + subtítulo + descrição + thumbnails
MédioLabel + título + subtítulo
Pequeno c/ fotoCírculo cromático grande + foto em área redonda

Exemplo · 1600×300 · centralizado · com logo

Capa wide para evento/carrossel. Conteúdo centralizado · símbolo TLC no canto inferior direito.

1600×300 · centralizado · símbolo canto inferior direito · margem var(--cover-pad)

Logo em capas: símbolo isolado (`.ic`) · 24–32px · canto inferior direito · margem var(--cover-pad) · azul logo #3B82FF.

Exemplo · 1600×300 · alinhado à esquerda · com logo

Mesma faixa wide, conteúdo à esquerda · símbolo TLC no canto inferior direito (padrão em todos os layouts).

1600×300 · alinhado à esquerda · símbolo canto inferior direito · pill + título + subtítulo

$ theme --list

Temas

■ dark · padrão

Fundo navy, grid sutil, azul de acento

Posts, eventos, meetups, carrosséis, capa do guia. Sem blurs focais.

□ light

Grid sutil, título em azul

Institucional, landing, workshop mais sóbrio · caixa de bônus no warning pesado.

Paridade: todo componente existe nos dois temas. Neutros trocam; info / success / warning no light são mais pesados (contraste). Gradientes de marca permanecem iguais. Use o toggle no canto para pré-visualizar este documento nos dois.

Fundos com gradiente: só em peças internas da comunidade (de preferência em azul), como capas de evento e carrosséis. Social media usa fundo navy liso. Cards translúcidos aplicam glass (blur no fundo); o aro cromático de fotos tem 1px.

$ render --componentes

Componentes

Pills & tags

Roboto Regular/Medium · 14px mínimo · minúsculo · cor sólida (sem gradiente).

boas vindas clube do livro meetup ia painelistas ● workshop avançado

Card de post social (carrossel)

Waldemar Neto
@waldemar.devlab
Headline do post ou frase.

//Subheadline, copy ou contexto.

Anatomia

  • avatar + nome + + @handle
  • headline Roboto Bold
  • // subheadline com trecho em highlight azul
  • screenshot / conteúdo
  • nav pill: “Continue lendo · Passe para o lado ›”
  • marcador #1 #2 só com sequência real

Card de evento (TLC Commit)

Tech Leads club Commit
16/09 18h30 às 20h Florianópolis
Elton Minetto
Waldemar Neto
painelistas
Mercado de tech para Devs Sênior+

Card de meetup & Clube do Livro

CONVIDADO DO MEETUP AO VIVO DE AMANHÃ

Pedro Nauck
Founder & CEO @ Compozy.com
meetup ia
LLM Wiki: base de conhecimento que o agente mantém
Link pra entrar na TLC nos comentários
clube do livro
ENCONTRO FINAL COM O AUTOR
18 de julho · 14h
Vlad Khononov
Aprenda Domain-Driven Design

Card de workshop · Dark e Light

workshop.ai
$ execute --workshop
Workshop Avançado
Engenharia de Software com IA
@12-13_set · 10h às 17h · Zoom
Tech Leads.club
Workshop Avançado
Engenharia de Software com IA
// ao_vivo  @12 e 13 Set · 10h às 17h · Zoom
10
HORAS
7
MÓDULOS
2
DIAS
100% Hands-on: spec · harness · arquitetura · review
TechLeads.club
TRANSFORME SEU TIME EM
IA FIRST EM DOIS DIAS.
// APRENDA CONTEXT ENGINEERING
$ deploy --Workshop
Desenvolvimento Assistido por IA.
// Garanta seu ingresso.
Bônus: Guia Completo de Adoção de IA no Time.

$ lint --voz

Voz & do / don't

Tom técnico e direto, de par para par com pessoas seniores. Sem infantilização nem hype vazio. Vocabulário de terminal quando fizer sentido, sem forçar. Escrevemos Dev sempre com D maiúsculo, para valorizar o profissional.

✓ do

  • Derivar label/subtítulo/descrição do título (60% / 50% / 50%).
  • Circular fotos e áreas com o aro cromático.
  • Gradiente de fundo em ~20% de opacidade.
  • Usar primary e accent (azul + roxo) juntos quando a tela precisa de dois destaques.
  • Entregar toda peça nos dois temas.
  • Escrever Dev com D maiúsculo, sempre.

✕ don't

  • Recolorir o wordmark com cores de pilar.
  • Usar o vermelho live (#FF3862 / --live) fora de ícones de Live / ao vivo — compete com error.
  • Tratar o live como accent do daisyUI. Accent é o roxo.
  • Usar numeração #1 #2 sem sequência real.
  • Deixar o gradiente competir com o texto.
  • Misturar papéis das fontes.

$ cat tokens.css

Tokens

:root{
  /* marca */
  --green:#7AFA8F; --yellow:#F1D15F; --red:#FF3862;
  --purple:#BF38FF; --blue:#1D4BFA; --blue-light:#3B82FF; --ink:#101010;
  /* funcionais */
  --success:#7AFA8F; --live:#FF3862; --warning:#F1D15F; --select:#2F6BFF;
  /* gradientes */
  --grad-primary: linear-gradient(90deg,#1D4BFA,#BF38FF);
  --grad-accent:  linear-gradient(90deg,#BF38FF,#FF3862);
  --grad-blue:    linear-gradient(90deg,#3B82FF,#1D4BFA); /* títulos */
  --grad-spectrum: conic-gradient(#7AFA8F,#1D4BFA,#BF38FF,#FF3862,#F1D15F,#7AFA8F);
  /* raios / tipo */
  --r-pill:999px; --r-card:20px; --r-window:14px; --r-field:10px;
  --font-primary:"Roboto"; --font-display:"Bahnschrift","Roboto Condensed";
  --font-mono:"JetBrains Mono";
}
:root[data-theme="dark"]{
  --bg:#0A0E1A; --surface:#111725; --surface-2:#1A2233;
  --text:#EAEEF7; --text-muted:#9AA3B8; --text-dim:#616B82;
  /* semânticos (daisyUI) */
  --b1:#0A0E1A; --b2:#111725; --b3:#1A2233; --bc:#EAEEF7;
  --p:#1D4BFA; --pc:#FFFFFF;
  --s:#17181C; --sc:#9AA3B8;
  --a:#BF38FF; --ac:#FFFFFF;
  --n:#101010; --nc:#616B82;
  --in:#2F6BFF; --inc:#FFFFFF;
  --su:#7AFA8F; --suc:#101010;
  --wa:#F1D15F; --wac:#101010;
  --er:#FF5F57; --erc:#101010;
}
:root[data-theme="light"]{
  --bg:#F4F6FB; --surface:#FFFFFF; --surface-2:#E6EAF4;
  --text:#101010; --text-muted:#3D4454; --text-dim:#5C6478;
  --b1:#F4F6FB; --b2:#FFFFFF; --b3:#E6EAF4; --bc:#101010;
  --p:#1D4BFA; --pc:#FFFFFF;
  --s:#E6EAF4; --sc:#3D4454;
  --a:#9333EA; --ac:#FFFFFF;
  --n:#101010; --nc:#5C6478;
  --in:#1D4ED8; --inc:#FFFFFF;
  --su:#20C95B; --suc:#101010;
  --wa:#E8B923; --wac:#101010;
  --er:#FF5F57; --erc:#101010;
  --green:#20C95B; --yellow:#E8B923; --purple:#9333EA;
}