01 — Brand Book
Instituto
ibe.IA
Este documento define a identidade visual e a voz do IBEIA — Instituto Brasileiro de Educação em Inteligência Artificial. Use-o como referência para manter a marca consistente em todos os pontos de contato.
Missão
Democratizar o acesso à educação em Inteligência Artificial, capacitando qualquer pessoa a dominar IA, automação e ferramentas inteligentes.
Visão
Ser o maior instituto de educação em IA do Brasil e referência na América Latina em formação prática de Inteligência Artificial.
Valores
Resultado acima de tudo. Educação que transforma. Método prático. Acesso democrático à Inteligência Artificial.
Ver código
/* Pillars grid */
.intro__pillars {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 18px;
}
/* Pillar card — glass + accent tint */
.intro__pillar {
padding: 30px 28px;
/* Inherits from .glass--card */
}
/* Color-tinted gradient (blue variant) */
.intro__pillar--blue {
background: linear-gradient(148deg,
var(--g-2) 0%,
color-mix(in srgb, var(--c-blue) 8%, var(--g-1)) 100%);
box-shadow: var(--g-shadow-card);
border-color: color-mix(in srgb, var(--c-blue) 22%, var(--g-border));
}
/* Purple variant */
.intro__pillar--purple {
background: linear-gradient(148deg,
var(--g-2) 0%,
color-mix(in srgb, var(--c-purple) 8%, var(--g-1)) 100%);
border-color: color-mix(in srgb, var(--c-purple) 22%, var(--g-border));
}
/* Green variant */
.intro__pillar--green {
background: linear-gradient(148deg,
var(--g-2) 0%,
color-mix(in srgb, var(--c-green) 7%, var(--g-1)) 100%);
border-color: color-mix(in srgb, var(--c-green) 22%, var(--g-border));
}
/* Accent icon */
.intro__pillar-icon {
width: 40px; height: 40px;
border-radius: var(--r-sm);
display: flex;
align-items: center;
justify-content: center;
}
.intro__pillar-icon--blue {
background: color-mix(in srgb, var(--c-blue) 16%, transparent);
color: color-mix(in srgb, var(--c-blue) 60%, white);
box-shadow: 0 0 16px color-mix(in srgb, var(--c-blue) 22%, transparent);
}
.intro__pillar h3 {
font-family: var(--f-display);
font-size: 17px;
font-weight: 700;
color: var(--text);
}
.intro__pillar p {
font-size: 14px;
line-height: 1.65;
color: var(--text-2);
} Ver código
/* Stats grid */
.intro__stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 16px;
border-top: 1px solid rgba(255, 255, 255, 0.07);
}
/* Stat card */
.intro__stat {
padding: 26px 28px 24px;
background: var(--g-1);
border: 1px solid var(--g-border);
box-shadow: var(--g-shadow-card);
}
/* Left accent bar */
.intro__stat::before {
content: '';
position: absolute;
left: 0; top: 20%; bottom: 20%;
width: 2px;
background: linear-gradient(180deg, transparent, var(--c-yellow-em), transparent);
border-radius: 2px;
}
/* Gradient number */
.intro__stat-number {
font-family: var(--f-display);
font-size: clamp(24px, 3.2vw, 36px);
font-weight: 900;
letter-spacing: -0.02em;
background: linear-gradient(135deg,
var(--c-yellow-em) 0%,
color-mix(in srgb, var(--c-yellow-em) 60%, white) 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
/* 2nd stat: purple gradient */
.intro__stat:nth-child(2) .intro__stat-number {
background: linear-gradient(135deg,
var(--c-purple) 0%,
color-mix(in srgb, var(--c-purple) 60%, white) 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
/* 3rd stat: green gradient */
.intro__stat:nth-child(3) .intro__stat-number {
background: linear-gradient(135deg,
var(--c-green) 0%,
color-mix(in srgb, var(--c-green) 60%, white) 100%);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
.intro__stat-label {
font-size: 12.5px;
color: var(--text-2);
font-weight: 500;
letter-spacing: 0.01em;
} 02 — Logo
A nossa marca
O logo do ibe.IA combina nosso símbolo exclusivo — que representa movimento, inteligência e resultado — com a tipografia bold da marca.
Ver código
/* Logo variations grid */
.logo-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 16px;
}
/* Logo card */
.logo-card {
border-radius: var(--r-lg);
overflow: hidden;
border: 1px solid var(--g-border);
transition: transform var(--t-fast), box-shadow var(--t-fast);
}
.logo-card__preview {
height: 180px;
display: flex;
align-items: center;
justify-content: center;
padding: 32px;
}
.logo-card__label {
padding: 14px 20px;
font-family: var(--f-mono);
font-size: 11px;
font-weight: 500;
color: var(--text-2);
border-top: 1px solid var(--g-border-dim);
}
/* Background variants */
.logo-card--dark { background: var(--c-black); }
.logo-card--light { background: var(--c-cream); }
.logo-card--purple { background: var(--c-purple); }
.logo-card--gradient {
background: linear-gradient(135deg, var(--c-blue), var(--c-purple));
}
/* Inline logo sizing */
.logo-inline { height: 36px; width: auto; }
.logo-wordmark { height: 20px; width: auto; }
/* Min size: 24px height */
/* Clear space: 1x logo mark height on all sides */ Ver código
/* Logo rules list */
.logo-rules {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 12px;
}
/* Individual rule */
.logo-rule {
display: flex;
align-items: center;
gap: 12px;
padding: 14px 18px;
border-radius: var(--r-sm);
font-size: 13.5px;
color: var(--text-2);
border: 1px solid var(--g-border-dim);
background: var(--g-1);
}
/* Correct — green accent */
.logo-rule--correct {
border-left: 3px solid var(--c-green);
}
/* Wrong — red accent */
.logo-rule--wrong {
border-left: 3px solid var(--c-red);
opacity: 0.75;
}
/* Min size: 24px height */
/* Clear space: 1x mark height on all sides */ 03 — Cores
Paleta de cores
A paleta do ibe.IA é ousada e moderna. O azul como cor primária transmite confiança e tecnologia; o roxo adiciona personalidade; o verde CTA converte.
Ver código
/* Full-width palette strip */
.palette-strip {
display: flex;
border-radius: var(--r-md);
overflow: hidden;
height: 56px;
border: 1px solid var(--g-border-dim);
box-shadow: var(--g-shadow-card);
}
.ps-slab {
flex: 1;
transition: flex var(--t-slow);
cursor: pointer;
}
.ps-slab:hover { flex: 2.5; }
/* Color values */
.ps-slab--black { background: var(--c-black); } /* #1C1C1C */
.ps-slab--cream { background: var(--c-cream); } /* #FBF9F4 */
.ps-slab--blue { background: var(--c-blue); } /* #0058D4 */
.ps-slab--purple { background: var(--c-purple); } /* #AF6DFF */
.ps-slab--green-cta { background: var(--c-greenCta); } /* #84CC16 */
.ps-slab--green { background: var(--c-green); } /* #63D059 */
.ps-slab--red { background: var(--c-red); } /* #F84F2E */
.ps-slab--yellow-em { background: var(--c-yellowEm); } /* #FACC15 */
.ps-slab--yellow { background: var(--c-yellow); } /* #FFB801 */
.ps-slab--gray-dark { background: var(--c-grayDark); } /* #27272A */ Ver código
/* Color swatches grid */
.color-swatches {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 14px;
}
/* Individual swatch */
.swatch {
border-radius: var(--r-md);
overflow: hidden;
border: 1px solid var(--g-border);
background: var(--g-1);
backdrop-filter: var(--g-blur);
box-shadow: var(--g-shadow-card);
cursor: pointer;
transition: transform var(--t-fast), box-shadow var(--t-fast);
}
.swatch:hover {
transform: translateY(-2px);
box-shadow: var(--g-shadow-hover);
}
/* Color preview area */
.swatch__color { height: 100px; }
/* Per-color backgrounds */
.sc--blue { background: var(--c-blue); }
.sc--purple { background: var(--c-purple); }
.sc--black { background: var(--c-black); }
.sc--cream { background: var(--c-cream); }
/* Swatch info */
.swatch__info { padding: 14px 16px; }
.swatch__label {
font-family: var(--f-display);
font-size: 14px;
font-weight: 700;
color: var(--text);
}
.swatch__name {
font-family: var(--f-mono);
font-size: 11px;
color: var(--text-3);
letter-spacing: 0.04em;
}
.swatch__role {
font-size: 11.5px;
color: var(--text-2);
}
.swatch__values {
font-family: var(--f-mono);
font-size: 10.5px;
color: var(--text-3);
} Ver código
/* Action & status color values */
.sc--green-cta { background: var(--c-greenCta); } /* #84CC16 — CTA */
.sc--green { background: var(--c-green); } /* #63D059 — Success */
.sc--red { background: var(--c-red); } /* #F84F2E — Error */
.sc--yellow-em { background: var(--c-yellowEm); } /* #FACC15 — Emphasis */
.sc--yellow { background: var(--c-yellow); } /* #FFB801 — Attention */ Ver código
/* Neutral color values */
.sc--cream-alt { background: var(--c-creamAlt); } /* #F5F0E8 — Light mode bg */
.sc--gray-dark { background: var(--c-grayDark); } /* #27272A — Borders */ 04 — Tipografia
Tipografia
Quatro famílias tipográficas com papéis bem definidos — cada uma com personalidade própria, juntas formam a voz visual do ibe.IA.
abcdefghijklmnopqrstuvwxyz 0–9
abcdefghijklmnopqrstuvwxyz 0–9
abcdefghijklmnopqrstuvwxyz 0–9
Ver código
/* Font family grid */
.type-families {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 16px;
}
/* Font family card (extends .glass--card) */
.type-family {
padding: 32px 28px 24px;
display: flex;
flex-direction: column;
}
/* Role badge */
.type-family__role {
font-family: var(--f-mono);
font-size: 10px;
font-weight: 600;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--text-3);
margin-bottom: 24px;
}
/* Sora specimen */
.tfs--sora {
font-family: var(--f-display);
font-weight: 800;
font-size: clamp(56px, 6.5vw, 82px);
letter-spacing: -0.04em;
color: var(--text);
line-height: 0.88;
}
/* Plus Jakarta Sans specimen */
.tfs--jakarta {
font-family: var(--f-body);
font-weight: 700;
font-size: clamp(22px, 2.6vw, 36px);
letter-spacing: -0.025em;
}
/* JetBrains Mono specimen */
.tfs--mono {
font-family: var(--f-mono);
font-weight: 500;
font-size: clamp(20px, 2.4vw, 32px);
color: var(--text);
}
/* Yellowtail specimen */
.tfs--script {
font-family: var(--f-script);
font-weight: 400;
font-size: clamp(48px, 6vw, 76px);
}
/* Alphabet tester */
.type-family__alpha {
font-size: 11px;
letter-spacing: 0.04em;
color: var(--text-3);
line-height: 1.7;
border-top: 1px solid var(--g-border-dim);
padding-top: 16px;
}
/* Meta row */
.type-family__meta {
display: flex;
justify-content: space-between;
align-items: baseline;
}
.type-family__name {
font-family: var(--f-display);
font-size: 14px;
font-weight: 700;
}
.type-family__weights {
font-family: var(--f-mono);
font-size: 10.5px;
color: var(--text-3);
letter-spacing: 0.04em;
}
@media (max-width: 768px) {
.type-families { grid-template-columns: 1fr; }
} Sora · letter-spacing −0.03em
Sora · letter-spacing −0.02em
Plus Jakarta Sans
Plus Jakarta Sans · lh 1.78
JetBrains Mono · uppercase
JetBrains Mono
Ver código
/* Type scale container (glass panel) */
.type-scale {
border-radius: var(--r-lg);
border: 1px solid var(--g-border);
background: var(--g-1);
backdrop-filter: var(--g-blur);
box-shadow: var(--g-shadow-card);
overflow: hidden;
}
.type-scale__item {
padding: 24px 32px;
border-bottom: 1px solid var(--g-border-dim);
display: grid;
grid-template-columns: 172px 1fr;
align-items: center;
gap: 48px;
}
/* Display — 58px */
.ts-display {
font-family: var(--f-display);
font-size: clamp(24px, 3.8vw, 48px);
font-weight: 800;
line-height: 1.04;
letter-spacing: -0.03em;
color: var(--text);
}
/* H2 — 40px */
.ts-h2 {
font-family: var(--f-display);
font-size: clamp(20px, 2.8vw, 34px);
font-weight: 700;
line-height: 1.15;
letter-spacing: -0.02em;
}
/* H3 — 22px */
.ts-h3 {
font-family: var(--f-body);
font-size: clamp(15px, 1.8vw, 19px);
font-weight: 700;
line-height: 1.3;
}
/* Body — 17px */
.ts-body {
font-family: var(--f-body);
font-size: 15px;
font-weight: 400;
line-height: 1.78;
color: var(--text-2);
}
/* Label — 11px */
.ts-label {
font-family: var(--f-mono);
font-size: 10.5px;
font-weight: 500;
letter-spacing: 0.2em;
text-transform: uppercase;
color: color-mix(in srgb, var(--c-blue) 55%, white);
}
/* Mono — 14px */
.ts-mono {
font-family: var(--f-mono);
font-size: 13px;
font-weight: 500;
color: color-mix(in srgb, var(--c-blue) 55%, white);
} Ver código
/* Pairing container (glass panel) */
.type-pairing {
border-radius: var(--r-lg);
border: 1px solid var(--g-border);
background: var(--g-1);
backdrop-filter: var(--g-blur);
box-shadow: var(--g-shadow-card);
padding: 40px 44px;
position: relative;
}
/* Specular highlight */
.type-pairing::before {
content: '';
position: absolute;
top: 0; left: 4%; right: 4%;
height: 1px;
background: var(--g-specular);
}
/* Headline — Sora bold */
.type-pairing__headline {
font-family: var(--f-display);
font-size: clamp(28px, 3.5vw, 44px);
font-weight: 800;
letter-spacing: -0.03em;
line-height: 1.04;
color: var(--text);
}
/* Sub-headline — Yellowtail */
.type-pairing__sub {
font-family: var(--f-script);
font-size: clamp(20px, 2.5vw, 28px);
color: var(--accent-2);
line-height: 1.1;
}
/* Body text — Plus Jakarta Sans */
.type-pairing__body {
font-family: var(--f-body);
font-size: 15px;
font-weight: 400;
line-height: 1.78;
color: var(--text-2);
max-width: 560px;
}
/* Tag — mono badge */
.type-pairing__tag {
font-family: var(--f-mono);
font-size: 10.5px;
font-weight: 500;
letter-spacing: 0.16em;
text-transform: uppercase;
color: var(--accent);
padding: 4px 10px;
border: 1px solid var(--g-border);
border-radius: var(--r-xs);
} 05 — Iconografia
Iconografia
Usamos Lucide Icons como biblioteca padrão — ícones outline com traço consistente, estilo limpo e moderno. Combinam perfeitamente com a tipografia e a identidade do ibe.IA.
Lucide Icons — biblioteca padrão
lucide.devVer código
/* Icon library: Lucide Icons (outline, 1.5px stroke) */
/* CDN: unpkg.com/lucide-static@latest */
/* Icon sizes */
.icon--ui { width: 16px; height: 16px; } /* inline UI */
.icon--highlight { width: 24px; height: 24px; } /* section highlights */
.icon--decorative { width: 40px; height: 40px; } /* hero decorative */
/* Icon colors — always brand palette */
color: var(--c-blue); /* primary actions */
color: var(--c-purple); /* secondary/decorative */
color: var(--text-3); /* muted/UI */
/* Icon grid */
.icon-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
gap: 8px;
}
.icon-item {
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
padding: 16px 8px;
border-radius: var(--r-sm);
transition: background var(--t-fast);
}
.icon-item:hover {
background: var(--g-1);
}
/* Rules */
/* ✅ Always: outline style, 1.5px stroke weight */
/* ❌ Never: filled icons, mixed stroke weights */
/* ✅ Color: brand palette only (blue, purple, gray) */
/* ❌ Never: black, arbitrary colors */ --c-blue para ícones de destaque; roxo --c-purple para contextos especiais; cinza para utilitáriosVer código
/* Icon rule card (extends .glass--card) */
.icon-rules {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 14px;
}
.icon-rule {
padding: 24px 20px;
/* glass--card provides: */
/* background: var(--g-2); */
/* backdrop-filter: var(--g-blur); */
/* border: 1px solid var(--g-border); */
/* border-radius: var(--r-lg); */
/* box-shadow: var(--g-shadow-card); */
}
.icon-rule__title {
font-family: var(--f-display);
font-size: 14px;
font-weight: 700;
color: var(--text);
margin-bottom: 6px;
}
.icon-rule__desc {
font-size: 12.5px;
color: var(--text-2);
line-height: 1.55;
} 06 — Fotografia & Imagens
Fotografia & Imagens
As imagens do ibe.IA devem transmitir ambição, resultado e movimento. Pessoas reais comemorando conquistas, telas de produtos e tecnologia em ação.
- Pessoas reais em contexto de trabalho ou celebração
- Screenshots de produtos com resultados visíveis (faturamento, métricas)
- Fundo escuro ou neutro que não compete com o conteúdo
- Tom quente e energético
- Contraste alto e cores vibrantes
- Imagens de produto com UI limpa e legível
- Stock photos genéricas sem contexto real
- Imagens com logos de concorrentes visíveis
- Paleta de cores que conflita com a identidade
- Imagens de baixa resolução ou mal iluminadas
- Pessoas em poses artificiais ou não naturais
- Filtros pesados que distorcem as cores da marca
Ver código
/* Photo guideline card (extends .glass--card) */
.photo-guidelines {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
}
.photo-guideline {
padding: 28px 24px;
border-radius: var(--r-lg);
}
/* Approved badge — green */
.photo-guideline__badge--approved {
color: var(--c-green);
background: color-mix(in srgb, var(--c-green) 12%, transparent);
border: 1px solid color-mix(in srgb, var(--c-green) 25%, transparent);
border-radius: 100px;
padding: 4px 12px;
font-family: var(--f-mono);
font-size: 10px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.12em;
}
/* Rejected badge — red */
.photo-guideline__badge--rejected {
color: var(--c-red);
background: color-mix(in srgb, var(--c-red) 12%, transparent);
border: 1px solid color-mix(in srgb, var(--c-red) 25%, transparent);
} Ver código
/* Photo treatment card */
.photo-treatments {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 14px;
}
.photo-treatment {
border-radius: var(--r-md);
overflow: hidden;
border: 1px solid var(--g-border);
}
/* Treatment swatch */
.photo-treatment__swatch {
height: 120px;
border-radius: var(--r-md) var(--r-md) 0 0;
}
/* Treatment colors */
.photo-treatment__swatch--dark { background: var(--c-black); }
.photo-treatment__swatch--blue { background: var(--c-blue); }
.photo-treatment__swatch--purple { background: var(--c-purple); }
.photo-treatment__swatch--green { background: var(--c-green); }
.photo-treatment__swatch--gold { background: var(--c-yellow); }
/* Apply over image: */
.image-treatment {
position: relative;
}
.image-treatment::after {
content: '';
position: absolute;
inset: 0;
background: var(--treatment-color);
mix-blend-mode: multiply;
opacity: 0.4;
border-radius: inherit;
}
.photo-treatment__info {
padding: 14px 16px;
background: var(--g-1);
}
.photo-treatment__name {
font-family: var(--f-display);
font-size: 13px;
font-weight: 700;
color: var(--text);
}
.photo-treatment__desc {
font-size: 11.5px;
color: var(--text-2);
} 07 — Voz & Tom
Voz & Tom
A voz do ibe.IA é direta, ambiciosa e humana. Falamos como um mentor que já chegou lá e quer que você chegue também — sem enrolação, sem promessas vazias.
Ver código
/* Personality traits grid */
.personality-traits {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
gap: 14px;
}
/* Trait card (extends .glass--card) */
.trait {
padding: 24px 20px;
display: flex;
flex-direction: column;
transition: transform 380ms cubic-bezier(0.34, 1.56, 0.64, 1),
box-shadow 380ms ease;
}
.trait:hover {
transform: translateY(-3px);
border-color: color-mix(in srgb, var(--c-purple) 38%, transparent);
}
.trait__icon {
color: var(--accent-2);
width: 22px; height: 22px;
margin-bottom: 16px;
}
.trait__name {
font-family: var(--f-display);
font-size: 15px;
font-weight: 700;
color: var(--text);
letter-spacing: -0.01em;
}
.trait__desc {
font-size: 12.5px;
color: var(--text-2);
line-height: 1.55;
} "Aprenda a criar soluções tecnológicas inovadoras utilizando metodologias no-code avançadas para transformar seus processos de negócio de forma eficiente."
"Crie seu primeiro app hoje. Sem código. Sem enrolação. Do zero ao faturamento."
"Potencialmente, com dedicação e esforço, você poderá talvez alcançar resultados positivos em sua jornada de aprendizado."
"Nossos alunos já geraram mais de R$106 milhões. O próximo pode ser você."
Ver código
/* Copy examples — do/don't pairs */
.copy-examples {
display: flex;
flex-direction: column;
gap: 12px;
}
.copy-example {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
}
.copy-col {
padding: 20px 22px;
border-radius: var(--r-lg);
border: 1px solid;
backdrop-filter: blur(8px);
}
/* Wrong — red tint */
.copy-col--wrong {
background: color-mix(in srgb, var(--c-red) 5%, transparent);
border-color: color-mix(in srgb, var(--c-red) 18%, transparent);
}
/* Right — green tint */
.copy-col--right {
background: color-mix(in srgb, var(--c-green-cta) 5%, transparent);
border-color: color-mix(in srgb, var(--c-green-cta) 18%, transparent);
}
.copy-col__label {
font-family: var(--f-mono);
font-size: 10.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.12em;
}
.copy-col--wrong .copy-col__label { color: var(--c-red); }
.copy-col--right .copy-col__label { color: var(--c-green-cta); }
@media (max-width: 600px) {
.copy-example { grid-template-columns: 1fr; }
} - Instituto
- Inteligência Artificial
- IA
- Agente de IA
- Automação
- Método
- Resultado
- Campo de batalha
- Virada de chave
- Educação em IA
- Curso (preferimos "Instituto")
- Fácil / Simples demais
- Disrupto / Disruptivo
- Sinergia
- Jornada de aprendizado
- Conteúdo exclusivo
- Aprenda no seu ritmo
- Revolucionário
Ver código
/* Vocabulary grid — two columns */
.vocab-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 16px;
}
.vocab-col {
border-radius: var(--r-lg);
overflow: hidden;
/* extends .glass--card */
}
.vocab-col__title {
padding: 14px 20px;
font-family: var(--f-mono);
font-size: 10.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.12em;
border-bottom: 1px solid var(--g-border-dim);
}
/* "Usamos" column — green */
.vocab-col:first-child .vocab-col__title { color: var(--c-green-cta); }
.vocab-col:first-child:hover {
border-color: color-mix(in srgb, var(--c-green-cta) 35%, transparent);
}
/* "Evitamos" column — red */
.vocab-col:last-child .vocab-col__title { color: var(--c-red); }
.vocab-col:last-child:hover {
border-color: color-mix(in srgb, var(--c-red) 35%, transparent);
}
.vocab-col ul li {
padding: 9px 20px 9px 22px;
font-size: 13.5px;
color: var(--text-2);
border-bottom: 1px solid var(--g-border-dim);
}
@media (max-width: 600px) {
.vocab-grid { grid-template-columns: 1fr; }
} 08 — Exemplos de Aplicação
Exemplos de aplicação
Referências de como a identidade ibe.IA se aplica nos diferentes pontos de contato com a marca.
Ver código
/* Social post card */
.mockup-social {
display: flex;
gap: 16px;
flex-wrap: wrap;
}
.mockup-social__post {
border-radius: var(--r-lg);
border: 1px solid rgba(255, 255, 255, 0.09);
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.07),
0 1px 2px rgba(0, 0, 0, 0.30),
0 8px 32px rgba(0, 0, 0, 0.28);
overflow: hidden;
}
/* Square post background — dark aurora */
.mockup-social__bg {
width: 300px;
height: 300px;
background:
radial-gradient(ellipse 68% 52% at 108% -8%,
color-mix(in srgb, var(--c-purple) 28%, transparent) 0%, transparent 62%),
radial-gradient(ellipse 58% 58% at -8% 112%,
color-mix(in srgb, var(--c-blue) 20%, transparent) 0%, transparent 65%),
color-mix(in srgb, var(--c-black) 78%, black);
padding: 24px;
}
/* Badge — frosted glass pill */
.mockup-social__top-badge {
font-size: 9px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.16em;
padding: 5px 12px;
border-radius: 100px;
background: rgba(255, 255, 255, 0.06);
backdrop-filter: blur(10px);
border: 1px solid rgba(255, 255, 255, 0.11);
}
/* Headline */
.mockup-social__headline {
font-family: var(--f-display);
font-size: 19px;
font-weight: 800;
line-height: 1.3;
letter-spacing: -0.025em;
color: rgba(255, 255, 255, 0.90);
}
/* Accent text */
.mockup-social__headline span {
color: color-mix(in srgb, var(--c-purple) 60%, var(--c-cream));
text-shadow: 0 0 22px color-mix(in srgb, var(--c-purple) 32%, transparent);
} Ver código
/* Product card grid */
.mockup-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 16px;
}
/* Product card (extends .glass--card) */
.mockup-card {
border-radius: var(--r-lg);
overflow: hidden;
display: flex;
flex-direction: column;
}
.mockup-card__header {
height: 140px;
padding: 16px;
background: linear-gradient(135deg,
color-mix(in srgb, var(--c-blue) 18%, var(--g-1)),
color-mix(in srgb, var(--c-purple) 12%, var(--g-1)));
}
.mockup-card__tag {
font-family: var(--f-mono);
font-size: 9px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.16em;
padding: 4px 10px;
border-radius: 100px;
background: color-mix(in srgb, var(--c-blue) 20%, transparent);
color: color-mix(in srgb, var(--c-blue) 70%, white);
border: 1px solid color-mix(in srgb, var(--c-blue) 25%, transparent);
}
/* Yellow variant */
.mockup-card--yellow .mockup-card__tag {
background: color-mix(in srgb, var(--c-yellow) 20%, transparent);
color: var(--c-yellow);
border-color: color-mix(in srgb, var(--c-yellow) 25%, transparent);
}
.mockup-card__body { padding: 18px 20px; }
.mockup-card__title {
font-family: var(--f-display);
font-size: 16px;
font-weight: 700;
color: var(--text);
letter-spacing: -0.01em;
}
.mockup-card__footer {
padding: 14px 20px;
border-top: 1px solid var(--g-border-dim);
display: flex;
justify-content: space-between;
align-items: center;
}
.mockup-card__badge {
font-family: var(--f-mono);
font-size: 10px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.1em;
} Oi, [Nome] 👋
Você está a 1 passo de criar seu primeiro agente de IA
Na aula de hoje você vai aprender como configurar um agente que responde clientes, agenda reuniões e qualifica leads — tudo no automático.
Assistir aula agora →Ver código
/* Email container */
.mockup-email {
max-width: 480px;
border-radius: var(--r-lg);
border: 1px solid var(--g-border);
background: var(--g-1);
backdrop-filter: var(--g-blur);
box-shadow: var(--g-shadow-card);
overflow: hidden;
}
.mockup-email__header {
padding: 24px 28px;
border-bottom: 1px solid var(--g-border-dim);
background: var(--g-2);
}
.mockup-email__body { padding: 28px; }
.mockup-email__headline {
font-family: var(--f-display);
font-size: 20px;
font-weight: 700;
color: var(--text);
}
.mockup-email__cta {
display: inline-block;
padding: 10px 24px;
background: var(--c-blue);
color: var(--c-cream);
border-radius: var(--r-sm);
font-family: var(--f-body);
font-size: 14px;
font-weight: 600;
text-decoration: none;
}
.mockup-email__footer {
padding: 16px 28px;
border-top: 1px solid var(--g-border-dim);
font-size: 11px;
color: var(--text-3);
} 09 — Sistema de Design
Componentes
Componentes prontos para uso em qualquer projeto. Copie o HTML e aplique
as variáveis CSS de tokens.css.
Botões
Ver código
<button class="btn btn--primary">Começar agora →</button>
<button class="btn btn--secondary">Saiba mais →</button>
<button class="btn btn--ghost">Ver detalhes →</button> Ver código
<div class="btn-highlight-container">
<div class="btn-highlight-shimmer-wrap" aria-hidden="true">
<div class="btn-highlight-shimmer btn-highlight-shimmer--green"></div>
</div>
<button class="btn btn--primary">Começar agora →</button>
</div> Ver código
<button class="btn-glass btn-glass--green">
<span class="btn-glass__shimmer"></span>
Começar agora →
</button> Ver código
<div class="btn-highlight-container">
<div class="btn-highlight-shimmer-wrap" aria-hidden="true">
<div class="btn-highlight-shimmer btn-highlight-shimmer--green"></div>
</div>
<button class="btn-glass btn-glass--green">
<span class="btn-glass__shimmer"></span>
Começar agora →
</button>
</div> Ver código
<button class="btn-glass btn-glass--green btn-glass--icon">
<span class="btn-glass__shimmer"></span>
<i data-lucide="zap" class="btn-glass__icon"></i>
Automatizar agora
</button>
<button class="btn-glass btn-glass--icon-only btn-glass--neutral">
<span class="btn-glass__shimmer"></span>
<i data-lucide="heart" class="btn-glass__icon"></i>
</button> Ver código
<button class="btn-glass btn-glass--green btn-glass--sm">Pequeno →</button>
<button class="btn-glass btn-glass--green">Padrão →</button>
<button class="btn-glass btn-glass--green btn-glass--lg">Grande →</button> Ver código
<button class="btn-glass btn-glass--green" disabled>
Desabilitado
</button>
<button class="btn-glass btn-glass--purple btn-glass--loading">
<span class="btn-glass__spinner"></span>
Carregando
</button> Badges
Ver código
<span class="badge badge--purple">No-Code</span>
<span class="badge badge--green">IA</span>
<span class="badge badge--yellow">Automações</span>
<span class="badge badge--red">Novo</span> Feature Cards
Automações
Automatize processos repetitivos com IA.
Agentes IA
Crie agentes que trabalham por você 24/7.
Aplicativos
Sistemas completos sem escrever código.
Ver código
<div class="feature-cards">
<div class="feature-card feature-card--dark">
<i data-lucide="zap" class="feature-card__icon"></i>
<h4 class="feature-card__title">Automações</h4>
<p class="feature-card__desc">Automatize processos repetitivos com IA.</p>
</div>
</div> Bento Grid
Plataforma Exclusiva
Acesso completo ao ambiente de aprendizado.
Trilhas
Percursos sob medida.
Tutor IA
Suporte com IA treinada.
Mentorias Ao Vivo
Encontros semanais com professores.
Ver código
<div class="bento">
<div class="bento__card bento__card--wide">
<i data-lucide="monitor" class="bento__icon"></i>
<h4 class="bento__title">Plataforma Exclusiva</h4>
<p class="bento__desc">Acesso completo ao ambiente de aprendizado.</p>
</div>
<div class="bento__card">...</div>
</div> Pricing Card
Use o cupom DESCONTO200 e pague
Ver código
<div class="pricing-card">
<span class="pricing-card__discount-tag">−42% OFF</span>
<div class="pricing-card__header">
<span class="pricing-card__from">de <s>R$2.582</s> por apenas</span>
<div class="pricing-card__price-row">
<span class="pricing-card__price-currency">R$</span>
<span class="pricing-card__price">1.497</span>
</div>
</div>
<div class="pricing-card__coupon">
<p class="pricing-card__coupon-text">Use o cupom <strong class="pricing-card__code">DESCONTO200</strong> e pague</p>
<div class="pricing-card__installment">
<span class="pricing-card__x">12×</span>
<span class="pricing-card__value">R$127</span>
</div>
<span class="pricing-card__cash">ou R$1.297 à vista</span>
</div>
<button class="pricing-card__cta">QUERO ME INSCREVER →</button>
</div> Value Stack (Seção de Preços)
- Curso Appmakers — Vibe Coding & No Code R$997
- Curso Automakers — Agentes IA R$997
- Tutor IA Incalculável
- VALOR TOTAL: R$2.582,00
Ver código
<div class="value-stack__scene">
<ul class="value-stack__list">
<li class="value-stack__item">
<span class="value-stack__label">
<span class="value-stack__check"></span>
Curso Appmakers
</span>
<span class="value-stack__price">R$997</span>
</li>
<li class="value-stack__total">
<span class="value-stack__total-label">VALOR TOTAL:</span>
<span class="value-stack__total-value">R$2.582,00</span>
</li>
</ul>
</div> FAQ Accordion
Quero saber mais sobre o curso +
Aqui vai a resposta detalhada sobre o curso e seus conteúdos. O programa cobre automação, IA e no-code do zero ao avançado.
Qual a carga horária? +
O curso tem mais de 200 horas de conteúdo prático, incluindo aulas gravadas, mentorias ao vivo e projetos reais.
Preciso saber programar? +
Não! O método IBEIA foi criado para quem não tem background técnico. Você aprenderá a dominar IA e automação com ferramentas visuais e práticas.
Ver código
<div class="faq">
<details class="faq__item">
<summary class="faq__question">
Pergunta aqui <span class="faq__icon">+</span>
</summary>
<div class="faq__body">
<p class="faq__answer">Resposta aqui.</p>
</div>
</details>
</div> Trust Badges
Ver código
<div class="trust-badges">
<div class="trust-badge">
<i data-lucide="shield-check" class="trust-badge__icon"></i>
<span class="trust-badge__title">PAGAMENTO SEGURO</span>
<span class="trust-badge__desc">Seus dados protegidos.</span>
</div>
</div> Social Proof Bar
Ver código
<div class="social-proof-bar">
<span class="sp-pill"><i data-lucide="book-open" class="sp-pill__icon"></i> Curso Completo</span>
<span class="sp-pill"><i data-lucide="users" class="sp-pill__icon"></i> Mentorias Ao Vivo</span>
<span class="sp-pill"><i data-lucide="shield" class="sp-pill__icon"></i> Garantia 15 dias</span>
</div> Stats Banner
Ver código
<div class="stats-banner">
<span class="stats-banner__label">Mais de</span>
<span class="stats-banner__number">10.000</span>
<span class="stats-banner__sub">alunos formados na América Latina</span>
</div> Logo Strip
Ver código
<div class="logo-strip">
<div class="logo-strip__track">
<span class="logo-strip__item">Make</span>
<span class="logo-strip__sep"></span>
<span class="logo-strip__item">Lovable</span>
<span class="logo-strip__sep"></span>
<!-- duplicate items for seamless loop -->
</div>
</div> Stat Card com Ranking
promissora
contratada
anual do setor
empregabilidade
em automação
Ver código
<!-- Variantes de cor disponíveis -->
<div class="stat-card"> <!-- roxo (padrão) -->
<div class="stat-card stat-card--blue"> <!-- azul -->
<div class="stat-card stat-card--green"> <!-- verde -->
<div class="stat-card stat-card--yellow"> <!-- amarelo -->
<div class="stat-card stat-card--light"> <!-- claro / branco --> Data Highlight Card
Ver código
<div class="data-highlight">
<div class="data-highlight__visual">
<i data-lucide="trending-up" class="data-highlight__icon"></i>
</div>
<div class="data-highlight__content">
<div class="data-highlight__stat">340%</div>
<div class="data-highlight__desc">crescimento em vagas No Code</div>
<span class="data-highlight__source">Fonte: LinkedIn Jobs 2024</span>
</div>
</div> Testimonial Cards
"Saí do zero e hoje faturei R$12k no primeiro mês com automações."
Ver código
<div class="testimonial-card">
<div class="testimonial-card__avatar">JS</div>
<div class="testimonial-card__body">
<p class="testimonial-card__quote">"Depoimento do aluno aqui."</p>
<div class="testimonial-card__author">
<strong>Nome do Aluno</strong>
<span class="testimonial-card__result">Resultado em destaque</span>
</div>
</div>
</div> Guarantee Block
Garantia Incondicional de 15 Dias
Se em 15 dias você não estiver satisfeito, devolvemos 100% do seu investimento. Sem perguntas, sem burocracia.
Ver código
<div class="guarantee-block">
<h3 class="guarantee-block__title">Garantia Incondicional de 15 Dias</h3>
<div class="guarantee-block__seal">
<i data-lucide="shield-check" class="guarantee-block__icon"></i>
<span>15 DIAS</span>
</div>
<p class="guarantee-block__text">Texto da garantia aqui.</p>
<button class="btn btn--primary">GARANTIR MINHA VAGA →</button>
</div> Tool Tag Cloud
Ver código
<div class="tool-tag-cloud">
<div class="tool-tag-group">
<span class="tool-tag-group__label">No-Code</span>
<div class="tool-tag-group__tags">
<span class="tool-tag">Lovable</span>
<span class="tool-tag">Bolt</span>
</div>
</div>
</div> Hero Section
Qualquer pessoa pode criar Aplicativos e Agentes de IA sem programar.
A maior escola No Code & IA da América Latina.
Ver código
<section class="hero">
<div class="hero__eyebrow">
<span class="sp-pill">+10.000 alunos</span>
</div>
<h1 class="hero__title">
Headline principal com <em class="hero__highlight">destaque colorido</em>.
</h1>
<p class="hero__sub">Subtexto de suporte.</p>
<button class="btn btn--primary">CTA principal →</button>
</section> Chat Bubbles
Ver código
<div class="chat-bubbles">
<div class="chat-bubble chat-bubble--left">Mensagem do usuário</div>
<div class="chat-bubble chat-bubble--right">Outra mensagem</div>
</div> Founder / Bio
Renato Asse
Founder & CEO, IBEIA
Empreendedor serial, educador e especialista em IA & Automação. Ajudou mais de 10.000 pessoas a dominarem Inteligência Artificial.
Ver código
<div class="founder-bio">
<div class="founder-bio__avatar">RN</div>
<div class="founder-bio__content">
<h4 class="founder-bio__name">Nome</h4>
<p class="founder-bio__title">Título</p>
<p class="founder-bio__text">Bio aqui.</p>
<div class="founder-bio__badges">
<span class="tool-tag">Badge</span>
</div>
</div>
</div> Final Closer
ÚLTIMA CHANCE
Sua vida pode mudar
nos próximos 30 dias.
Junte-se a mais de 10.000 alunos que já transformaram suas carreiras.
Ver código
<div class="final-closer">
<p class="final-closer__eyebrow">ÚLTIMA CHANCE</p>
<h2 class="final-closer__title">Sua vida pode mudar<br>nos próximos 30 dias.</h2>
<p class="final-closer__sub">Subtexto de urgência aqui.</p>
<button class="btn btn--primary">GARANTIR MINHA VAGA →</button>
</div> News / Article Cards
"No Code cresce 340% e vira tendência entre empreendedores brasileiros"
"Ferramentas de IA permitem criar apps em minutos sem escrever código"
Ver código
<div class="news-cards">
<div class="news-card">
<span class="news-card__source">Nome do Veículo</span>
<p class="news-card__headline">"Manchete da notícia aqui"</p>
</div>
</div> Footer
Ver código
<footer class="doc-footer">
<div class="doc-footer__brand">
<span class="doc-footer__logo">ibe.IA</span>
<span class="doc-footer__tagline">Tagline aqui.</span>
</div>
<div class="doc-footer__meta">
<span class="doc-footer__cnpj">CNPJ: XX.XXX.XXX/0001-XX</span>
<span class="doc-footer__copy">© 2025 IBEIA.</span>
</div>
</footer> 10 — Sistema Visual
Background
O sistema de background do ibe.IA opera em dois modos: escuro (padrão) e claro. Cada camada é definida por variáveis CSS semânticas que garantem contraste, hierarquia e coesão visual.
--bg Fundo principal do corpo #1C1C1C --bg-2 Fundo alternado de seções #171717 --surface Cards, painéis, modais #252525 --surface-2 Superfícies elevadas, hover #2E2E2E --border Bordas, divisores #363636 Ver código
/* Dark theme background system */
body {
background: var(--bg-body);
}
/* --bg-body composição (dark): */
background:
radial-gradient(ellipse 100% 65% at 5% -5%,
rgba(0, 88, 212, 0.09) 0%, transparent 55%),
radial-gradient(ellipse 75% 55% at 96% 5%,
rgba(175, 109, 255, 0.07) 0%, transparent 52%),
radial-gradient(ellipse 60% 50% at 50% 100%,
rgba(99, 208, 89, 0.05) 0%, transparent 52%),
radial-gradient(ellipse 45% 40% at 82% 65%,
rgba(255, 184, 1, 0.03) 0%, transparent 48%),
radial-gradient(ellipse 35% 30% at 18% 75%,
rgba(0, 88, 212, 0.04) 0%, transparent 45%),
#08080e;
/* Semantic surface tokens (dark) */
--bg: #1C1C1C;
--bg-2: #171717;
--surface: #252525;
--surface-2: #2E2E2E;
--border: #363636;
--text: #FBF9F4;
--text-2: #B2B2B2;
--text-3: #8A8A8A;
/* Ambient orb opacities */
--orb-1-op: 0.06;
--orb-2-op: 0.05;
--orb-3-op: 0.04;
/* Noise overlay */
body::before {
content: '';
position: fixed;
inset: 0;
background: url('/assets/noise.svg');
opacity: 0.028;
pointer-events: none;
z-index: 9999;
} --bg Fundo principal — creme #FBF9F4 --bg-2 Fundo alternado — creme escuro #F3EFE8 --surface Cards, painéis, modais #FFFFFF --surface-2 Superfícies elevadas #ECE9E3 --border Bordas, divisores #DDD9D1 Ver código
/* Light theme background system */
/* --bg-body composição (light): */
background:
radial-gradient(ellipse 60% 45% at 0% 0%,
rgba(0, 88, 212, 0.04) 0%, transparent 60%),
radial-gradient(ellipse 55% 40% at 100% 0%,
rgba(175, 109, 255, 0.03) 0%, transparent 55%),
linear-gradient(160deg, #FFFFFF 0%, #FDFCFF 100%);
/* Semantic surface tokens (light) */
--bg: #FBF9F4;
--bg-2: #F3EFE8;
--surface: #FFFFFF;
--surface-2: #ECE9E3;
--border: #DDD9D1;
--text: #1C1C1C;
--text-2: #6A6461;
--text-3: #A09C98;
/* Ambient orb opacities (reduced) */
--orb-1-op: 0.03;
--orb-2-op: 0.03;
--orb-3-op: 0.02; Anatomia das camadas
--bg + --bg-2 — alternados a cada seção via classes .section--dark e .section--cream blur(80–100px), position fixed, z-index: 1. Animação de flutuação lenta (20–30s). <canvas>, z-index: 0. Densidade baixa para não competir com o conteúdo. fractalNoise SVG com opacidade 2,8% (escuro) / 1,8% (claro) via body::before. Adiciona profundidade orgânica. Regras de uso
Sempre use var(--bg), var(--surface) e similares. Nunca hardcode valores hexadecimais diretamente no código de componentes.
Use .section--dark para seções ímpares e .section--cream para pares. Isso cria ritmo visual e separa conteúdo naturalmente.
Os orbs ambiente são parte da identidade visual. Removê-los torna o background plano e sem personalidade. Ajuste opacidade se necessário, mas não elimine.
No modo escuro, use --text (#FBF9F4) ao invés de #FFFFFF. O creme quente é parte da identidade — branco puro parece frio e genérico.
Ver código
/* Background rules */
/* ✅ Always use CSS variables for bg/surface/text */
/* ✅ Keep noise overlay (body::before, opacity 0.028) */
/* ✅ Keep ambient orbs (opacity 0.04-0.06) */
/* ❌ Never remove noise texture */
/* ❌ Never use solid black (#000) as background */
/* ❌ Never make orbs opacity > 0.10 */ O tema é controlado pelo atributo data-theme no elemento <html>. O script theme-toggle.js persiste a preferência no localStorage e respeita prefers-color-scheme.
html[data-theme="light"] { --bg: #FBF9F4; … } 12 — Estrutura de Página
Seções Alternadas
Todas as páginas do ibe.IA são construídas com um ritmo visual de seções alternadas: seções transparentes (com blobs, grid e noise de fundo visíveis) intercaladas com seções opacas (com background sólido + gradiente + blob interno). Essa cadência cria profundidade, respiro e hierarquia visual.
Ritmo da Página
Seção Transparente
A seção transparente não possui background próprio — o fundo da página (#08080e)
com seus blobs flutuantes, grid sutil e noise texture ficam visíveis através da seção.
Todo o conteúdo vive em z-index acima das camadas de fundo.
Título da Seção
Conteúdo com blobs e grid visíveis ao fundo. As camadas de atmosfera da página passam através da seção.
Ver código
<!-- Estrutura da página (BrandLayout / page wrapper) -->
<body style="background: #08080e;">
<!-- Camadas de fundo (fixas na página) -->
<div class="bg-grid" aria-hidden="true"></div>
<div class="bg-blobs" aria-hidden="true">
<div class="bg-blob bg-blob--1"></div>
<div class="bg-blob bg-blob--2"></div>
<div class="bg-blob bg-blob--3"></div>
</div>
<div class="bg-noise" aria-hidden="true"></div>
<!-- Seção transparente — sem background próprio -->
<section class="section-transparent">
<div class="container">
<h2>Título da Seção</h2>
<p>Conteúdo aqui...</p>
</div>
</section>
</body>
/* CSS da seção transparente */
.section-transparent {
position: relative;
z-index: 2;
padding: 5rem 1.5rem;
/* Sem background — herda o fundo da página */
/* Blobs, grid e noise ficam visíveis */
}
/* Grid de fundo da página (fixo) */
.bg-grid {
position: fixed;
inset: 0;
z-index: 0;
pointer-events: none;
background-image:
linear-gradient(rgba(255,255,255,0.018) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.018) 1px, transparent 1px);
background-size: 48px 48px;
}
/* Blobs flutuantes (fixos) */
.bg-blobs {
position: fixed;
inset: 0;
z-index: 0;
pointer-events: none;
overflow: hidden;
}
.bg-blob {
position: absolute;
border-radius: 50%;
filter: blur(120px);
will-change: transform;
animation: float 20s ease-in-out infinite;
}
/* Noise overlay */
.bg-noise {
position: fixed;
inset: 0;
z-index: 0;
pointer-events: none;
opacity: 0.028;
mix-blend-mode: overlay;
background-image: url("/assets/noise.svg");
background-repeat: repeat;
background-size: 256px 256px;
} Seções Opacas — 5 Variações
As seções opacas bloqueiam a visão dos blobs e grid — possuem background sólido com gradiente diagonal, uma borda sutil colorida (top + bottom), e um blob interno grande e difuso que tinge a seção com a cor temática. Cada variação usa uma cor da paleta.
Título da Seção
Seção opaca com gradiente teal. O blob ciano cria uma atmosfera fria e profissional.
Ver código
/* Variação 1: Deep Teal */
.section-opaque--v1 {
position: relative;
overflow: hidden;
padding: 3.5rem 1.5rem 4rem;
background: linear-gradient(135deg, #041f1e 0%, #08080e 50%, #0a2a28 100%);
border-top: 1px solid rgba(0, 229, 204, 0.15);
border-bottom: 1px solid rgba(0, 229, 204, 0.15);
}
/* Blob interno */
.section-opaque--v1 .bg-effects {
position: absolute;
inset: 0;
pointer-events: none;
z-index: 0;
}
.section-opaque--v1 .blob {
position: absolute;
width: 50%;
height: 120%;
top: -10%;
left: 25%;
border-radius: 50%;
filter: blur(80px);
opacity: 0.4;
background: radial-gradient(circle,
rgba(0, 229, 204, 0.3), transparent 70%);
}
/* Conteúdo acima do blob */
.section-opaque--v1 .container {
position: relative;
z-index: 1;
} Título da Seção
Seção opaca com gradiente púrpura. O blob violeta reforça a cor accent secundária da marca.
Ver código
/* Variação 2: Royal Purple */
.section-opaque--v2 {
position: relative;
overflow: hidden;
padding: 3.5rem 1.5rem 4rem;
background: linear-gradient(135deg, #1a0a2e 0%, #08080e 50%, #1e0e35 100%);
border-top: 1px solid rgba(153, 69, 255, 0.15);
border-bottom: 1px solid rgba(153, 69, 255, 0.15);
}
.section-opaque--v2 .blob {
background: radial-gradient(circle,
rgba(153, 69, 255, 0.3), transparent 70%);
} Título da Seção
Seção opaca com gradiente azul meia-noite. O blob azul celeste conecta com o accent principal da marca.
Ver código
/* Variação 3: Midnight Blue */
.section-opaque--v3 {
position: relative;
overflow: hidden;
padding: 3.5rem 1.5rem 4rem;
background: linear-gradient(135deg, #060d1f 0%, #08080e 50%, #0a1230 100%);
border-top: 1px solid rgba(80, 160, 255, 0.15);
border-bottom: 1px solid rgba(80, 160, 255, 0.15);
}
.section-opaque--v3 .blob {
background: radial-gradient(circle,
rgba(80, 160, 255, 0.25), transparent 70%);
} Título da Seção
Seção opaca com gradiente esmeralda. O blob verde combina com o verde vibrante da paleta.
Ver código
/* Variação 4: Emerald Dark */
.section-opaque--v4 {
position: relative;
overflow: hidden;
padding: 3.5rem 1.5rem 4rem;
background: linear-gradient(135deg, #071a0e 0%, #08080e 50%, #0a2012 100%);
border-top: 1px solid rgba(99, 208, 89, 0.15);
border-bottom: 1px solid rgba(99, 208, 89, 0.15);
}
.section-opaque--v4 .blob {
background: radial-gradient(circle,
rgba(99, 208, 89, 0.25), transparent 70%);
} Título da Seção
Seção opaca com gradiente carvão quente. O blob âmbar cria calor e aconchego, ideal para social proof.
Ver código
/* Variação 5: Warm Charcoal + Amber */
.section-opaque--v5 {
position: relative;
overflow: hidden;
padding: 3.5rem 1.5rem 4rem;
background: linear-gradient(135deg, #1a1408 0%, #08080e 50%, #201a0a 100%);
border-top: 1px solid rgba(255, 184, 1, 0.15);
border-bottom: 1px solid rgba(255, 184, 1, 0.15);
}
.section-opaque--v5 .blob {
background: radial-gradient(circle,
rgba(255, 184, 1, 0.2), transparent 70%);
} Anatomia da Seção Opaca
linear-gradient(135deg, [cor-escura] 0%, #08080e 50%, [cor-escura] 100%) — a cor central é sempre o preto base da página 1px solid rgba([cor], 0.15) — linhas sutis que demarcam a transição entre seções radial-gradient com filter: blur(80px), opacity: 0.4, posicionado centralmente — tinge a seção sem dominar Regras de Uso
Nunca coloque duas seções opacas seguidas. O ritmo de alternância é obrigatório para manter a respiração visual.
Não repita a mesma variação em seções opacas consecutivas. Use variações diferentes para criar diversidade visual ao longo da página.
A primeira e última seção da página são sempre transparentes, com os blobs e grid visíveis, para manter a imersão atmosférica nos extremos.
Use apenas as 5 variações definidas: Deep Teal, Royal Purple, Midnight Blue, Emerald Dark e Warm Charcoal + Amber. Cada uma foi calibrada para harmonizar com #08080e.
O blob opera em opacity: 0.4 com blur(80px). Aumentar a opacidade torna a seção pesada e quebra a sutileza da identidade.
Ver código
/* ── Estrutura HTML de seção opaca (qualquer variação) ── */
<section class="section-opaque section-opaque--v[1-5]">
<!-- Efeitos de fundo -->
<div class="bg-effects" aria-hidden="true">
<div class="blob"></div>
</div>
<!-- Conteúdo -->
<div class="container">
<h2>Título</h2>
<p>Conteúdo aqui...</p>
</div>
</section>
/* ── CSS compartilhado entre todas as variações ── */
.section-opaque {
position: relative;
overflow: hidden;
padding: 3.5rem 1.5rem 4rem;
}
.section-opaque .bg-effects {
position: absolute;
inset: 0;
pointer-events: none;
z-index: 0;
}
.section-opaque .blob {
position: absolute;
width: 50%;
height: 120%;
top: -10%;
left: 25%;
border-radius: 50%;
filter: blur(80px);
opacity: 0.4;
}
.section-opaque .container {
position: relative;
z-index: 1;
}
/* ── As 5 variações ── */
/* V1: Deep Teal */
.section-opaque--v1 {
background: linear-gradient(135deg, #041f1e 0%, #08080e 50%, #0a2a28 100%);
border-top: 1px solid rgba(0, 229, 204, 0.15);
border-bottom: 1px solid rgba(0, 229, 204, 0.15);
}
.section-opaque--v1 .blob {
background: radial-gradient(circle, rgba(0,229,204,0.3), transparent 70%);
}
/* V2: Royal Purple */
.section-opaque--v2 {
background: linear-gradient(135deg, #1a0a2e 0%, #08080e 50%, #1e0e35 100%);
border-top: 1px solid rgba(153, 69, 255, 0.15);
border-bottom: 1px solid rgba(153, 69, 255, 0.15);
}
.section-opaque--v2 .blob {
background: radial-gradient(circle, rgba(153,69,255,0.3), transparent 70%);
}
/* V3: Midnight Blue */
.section-opaque--v3 {
background: linear-gradient(135deg, #060d1f 0%, #08080e 50%, #0a1230 100%);
border-top: 1px solid rgba(80, 160, 255, 0.15);
border-bottom: 1px solid rgba(80, 160, 255, 0.15);
}
.section-opaque--v3 .blob {
background: radial-gradient(circle, rgba(80,160,255,0.25), transparent 70%);
}
/* V4: Emerald Dark */
.section-opaque--v4 {
background: linear-gradient(135deg, #071a0e 0%, #08080e 50%, #0a2012 100%);
border-top: 1px solid rgba(99, 208, 89, 0.15);
border-bottom: 1px solid rgba(99, 208, 89, 0.15);
}
.section-opaque--v4 .blob {
background: radial-gradient(circle, rgba(99,208,89,0.25), transparent 70%);
}
/* V5: Warm Charcoal + Amber */
.section-opaque--v5 {
background: linear-gradient(135deg, #1a1408 0%, #08080e 50%, #201a0a 100%);
border-top: 1px solid rgba(255, 184, 1, 0.15);
border-bottom: 1px solid rgba(255, 184, 1, 0.15);
}
.section-opaque--v5 .blob {
background: radial-gradient(circle, rgba(255,184,1,0.2), transparent 70%);
} Referência Rápida
#00E5CC #041f1e → #08080e → #0a2a28 rgba(0,229,204, 0.15) rgba(0,229,204, 0.3) #9945FF #1a0a2e → #08080e → #1e0e35 rgba(153,69,255, 0.15) rgba(153,69,255, 0.3) #50A0FF #060d1f → #08080e → #0a1230 rgba(80,160,255, 0.15) rgba(80,160,255, 0.25) #63D059 #071a0e → #08080e → #0a2012 rgba(99,208,89, 0.15) rgba(99,208,89, 0.25) #FFB801 #1a1408 → #08080e → #201a0a rgba(255,184,1, 0.15) rgba(255,184,1, 0.2) 11 — Navegação
Barra de Progresso
A barra de progresso de leitura fica fixa no topo da página e indica quanto o usuário percorreu do Brand Book. É um elemento funcional e expressivo — carrega toda a paleta da marca em um único traço.
Ver código
/* Progress bar container */
.pb-showcase__bar-container {
position: absolute;
top: 0; left: 0; right: 0;
height: 3px;
background: color-mix(in srgb, var(--c-blue) 8%, transparent);
}
/* Progress bar fill — brand gradient */
.pb-showcase__bar {
height: 100%;
background: linear-gradient(90deg,
var(--c-blue),
var(--c-purple),
#C49AFF,
var(--c-green)
);
background-size: 200% 100%;
animation: progress-shimmer 3s linear infinite;
border-radius: 0 2px 2px 0;
box-shadow:
0 0 12px rgba(175, 109, 255, 0.55),
0 0 4px rgba(0, 88, 212, 0.4);
}
@keyframes progress-shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
/* Leading dot */
.pb-showcase__dot {
width: 8px; height: 8px;
border-radius: 50%;
background: radial-gradient(circle,
rgba(255,255,255,0.9) 0%, var(--c-purple) 60%);
box-shadow:
0 0 12px 4px rgba(175, 109, 255, 0.85),
0 0 24px 8px rgba(175, 109, 255, 0.35);
} Anatomia do componente
3pxfixed; top: 0; left: 09999width 80ms linearprogress-shimmer 3s linear ∞widthGradiente da marca
--c-blue #0058D4 0% --c-purple #AF6DFF 33% purple-light #C49AFF 66% --c-green #63D059 100% .scroll-progress {
position: fixed;
top: 0; left: 0;
height: 3px;
width: 0%;
background: linear-gradient(
90deg,
var(--c-blue),
var(--c-purple),
#C49AFF,
var(--c-green)
);
background-size: 200% 100%;
animation: progress-shimmer 3s linear infinite;
z-index: 9999;
box-shadow:
0 0 12px rgba(175, 109, 255, 0.55),
0 0 4px rgba(0, 88, 212, 0.4);
} Ver código
/* Gradient color stops */
/* Stop 1: 0% — var(--c-blue) #0058D4 */
/* Stop 2: 40% — var(--c-purple) #AF6DFF */
/* Stop 3: 70% — #C49AFF lavender blend */
/* Stop 4: 100% — var(--c-green) #63D059 */
background: linear-gradient(90deg,
var(--c-blue) 0%,
var(--c-purple) 40%,
#C49AFF 70%,
var(--c-green) 100%
); Ponto de progresso
::after .scroll-progress::after 8 × 8px right: -3px; top: 50% radial-gradient(white → roxo) 0 0 12px 4px rgba(175,109,255,0.85) 0 0 24px 8px rgba(175,109,255,0.35) Ver código
/* Dot core */
.pb-dot-core {
width: 9px; height: 9px;
border-radius: 50%;
background: white;
}
/* Inner halo */
.pb-dot-halo {
width: 20px; height: 20px;
border-radius: 50%;
background: radial-gradient(circle,
color-mix(in srgb, var(--c-purple) 40%, transparent) 0%,
transparent 70%);
}
/* Outer halo */
.pb-dot-halo--outer {
width: 36px; height: 36px;
border-radius: 50%;
background: radial-gradient(circle,
color-mix(in srgb, var(--c-purple) 15%, transparent) 0%,
transparent 70%);
}
/* Glow shadow */
box-shadow:
0 0 6px 2px rgba(255,255,255, 0.5),
0 0 16px 4px color-mix(in srgb, var(--c-purple) 40%, transparent); const bar = document.getElementById('scrollProgress');
window.addEventListener('scroll', () => {
const scrolled = window.scrollY;
const total = document.body.scrollHeight - window.innerHeight;
const pct = total > 0 ? (scrolled / total) * 100 : 0;
bar.style.width = pct + '%';
}, { passive: true });