Getting Started

Kaizen Design System

Este documento apresenta os componentes, padrões e diretrizes visuais que compõem o design system do site ofabio.com.br. O objetivo é garantir consistência visual e funcional em todas as páginas do site.

Getting Started

Installation

Como configurar e usar o Design System em seu projeto.

Getting Started

Design Principles

Os valores e diretrizes fundamentais que orientam o Design System.

Foundation

Colors

A paleta de cores foi projetada para transmitir minimalismo, elegância e sofisticação.

Preview
Code
Usage

Cores Principais

Primary
#000000 var(--primary-color)
Secondary
#333333 var(--secondary-color)
Accent
#000000 var(--accent-color)
Background
#E7E5DE var(--background-color)

Cores de Interface

Text
#000000 var(--text-color)
Light Text
#333333 var(--light-text)
Card BG
rgba(0,0,0,0.03) var(--card-bg)
Card Hover
rgba(0,0,0,0.05) var(--card-hover)
Code BG
#F5F3EE var(--code-bg)
Highlight BG
#FFFACC var(--highlight-bg)
<!-- Exemplo de exibição de cor -->
<div class="color-grid"> <!-- Contêiner Flex/Grid -->
    <div class="color-item"> <!-- Item individual -->
        <div class="color-sample" style="background-color: var(--primary-color);">
            <span style="color: white;">Primary</span> <!-- Nome da cor (cor do texto para contraste) -->
        </div>
        <div class="color-info"> <!-- Informações -->
            <code class="color-value">#000000</code> <!-- Valor (HEX/RGBA) -->
            <code class="color-token">var(--primary-color)</code> <!-- Token CSS -->
        </div>
    </div>
    <!-- Repetir para outras cores -->
</div>
/* Estilos para exibição de Cores */
.color-grid {
    display: flex;
    gap: var(--spacing-md); /* Espaço entre os itens de cor */
    flex-wrap: wrap; /* Quebra linha no mobile */
}

.color-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* Alinha info abaixo da amostra */
}

.color-sample {
    width: 100px;
    height: 100px;
    border-radius: var(--radius-sm);
    margin-bottom: var(--spacing-sm);
    display: flex; /* Para centralizar o texto interno */
    align-items: center;
    justify-content: center;
    font-weight: bold;
    border: 1px solid rgba(0,0,0,0.1);
    overflow: hidden;
    text-align: center;
    padding: var(--spacing-xs);
    font-size: var(--text-sm);
    line-height: 1.2;
}

.color-sample span {
     display: block; /* Garante que o span é um bloco para alinhamento */
     /* Cor do texto definida inline para garantir contraste */
}

.color-info {
     display: flex;
     flex-direction: column;
     align-items: flex-start;
     font-size: var(--text-xs);
     line-height: 1.4;
     /* Remove default code styling */
}
 .color-info code {
     background-color: transparent;
     padding: 0;
     border-radius: 0;
     /* Ajustes específicos para legibilidade */
 }
 .color-info .color-value {
     font-weight: 500; /* Valor mais proeminente */
 }
 .color-info .color-token {
     color: var(--light-text); /* Nome do token menos proeminente */
 }

Diretrizes de Uso

Use as cores de forma consistente para manter a identidade visual. As cores primárias e de destaque são para elementos de ação e atenção. As cores secundárias e de texto leve são para informações de apoio.

Acessibilidade

Nossa paleta foi desenvolvida com foco em acessibilidade, buscando contraste adequado entre texto e fundo. Verifique sempre a combinação de cores para garantir conformidade com WCAG 2.1 AA, especialmente para textos pequenos.

Tokens CSS

Lista completa das variáveis CSS para cores:

Token Valor Descrição
--primary-color#000000Cor principal do sistema, usada em elementos de destaque e ações primárias
--secondary-color#333333Cor secundária usada em elementos complementares
--accent-color#000000Cor de destaque para chamar atenção para elementos específicos
--background-color#E7E5DECor de fundo principal do site
--sidebar-bg#F5F3EECor de fundo da barra lateral
--content-bgvar(--background-color)Cor de fundo da área de conteúdo principal (usa a cor de fundo principal)
--text-color#000000Cor padrão para texto
--light-text#333333Cor para texto secundário e com menor ênfase
--border-colorrgba(0, 0, 0, 0.1)Cor padrão para bordas e divisores
--card-bgrgba(0,0,0,0.03)Cor de fundo para cards e containers leves
--card-hoverrgba(0,0,0,0.05)Cor de fundo para cards e containers leves no estado hover
--code-bg#F5F3EECor de fundo para blocos de código e elementos de interface leves
--highlight-bg#FFFACCCor de fundo para elementos de destaque ou avisos
Foundation

Typography

Utilizamos a fonte Epilogue para todo o site, combinando elegância com excelente legibilidade. A escala tipográfica é definida por tokens CSS.

Preview
Code
Usage

Título H1 - Epilogue (var(--text-5xl))

Usado para títulos principais e heróis de página.

Título H2 - Epilogue (var(--text-2xl))

Usado para títulos de seção.

Título H3 - Epilogue (var(--text-lg))

Usado para subtítulos e títulos de cards.

Texto médio - Epilogue (var(--text-md)). Usado para textos em destaque e introduções de seção.

Texto padrão - Epilogue (var(--text-base)). Este é o texto padrão usado para a maior parte do conteúdo do site.

Texto pequeno - Epilogue (var(--text-sm)). Usado para informações secundárias, navegação e textos complementares.

Etiqueta/Timestamp (var(--text-xs))

Font-size var(--text-xs) pode ser usado para metadados ou etiquetas.

/* Variáveis CSS para Tipografia */
:root {
    --text-xs: 0.75rem;     /* 12px */
    --text-sm: 0.9rem;      /* 14px */
    --text-base: 1rem;      /* 16px */
    --text-md: 1.1rem;      /* 18px */
    --text-lg: 1.2rem;      /* 20px */
    --text-xl: 1.5rem;      /* 24px */
    --text-2xl: 2rem;       /* 32px */
    --text-3xl: 2.5rem;     /* 40px */
    --text-4xl: 3rem;       /* 48px */
    --text-5xl: 4.5rem;     /* 72px */

    /* Default Font */
    font-family: 'Epilogue', sans-serif;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: -0.3px;
}

/* Estilos padrão para elementos tipográficos */
h1, h2, h3, h4, h5, h6 {
    font-weight: 400;
    line-height: 1.1;
    margin-top: var(--spacing-lg);
    font-style: normal;
}

h1 { font-size: var(--text-5xl); margin-bottom: var(--spacing-3xl); }
h2 { font-size: var(--text-2xl); margin-bottom: var(--spacing-2xl); }
h3 { font-size: var(--text-lg); margin-bottom: var(--spacing-lg); }
p { font-size: var(--text-base); line-height: 1.6; margin-bottom: var(--spacing-md); }

/* Exemplo de uso com classes utilitárias (se existirem) */
.text-heading-xl { font-size: var(--text-xl); }
.text-small { font-size: var(--text-sm); }
.font-bold { font-weight: 700; }

Hierarquia Tipográfica

Use os tamanhos de fonte para criar uma hierarquia clara no conteúdo, guiando o olho do usuário. Use H1 para o título principal da página, H2 para títulos de seção, etc.

Combinações e Peso

Utilize o peso 400 (regular) para a maioria dos textos e 600 (semi-bold) ou 700 (bold) para elementos de destaque ou navegação, conforme definido nos estilos dos componentes (como links e títulos da sidebar).

Tokens de Tipografia

Variáveis CSS para tamanhos de fonte:

TokenValor (rem)Valor (px base 16)Uso Típico
--text-xs0.75rem12pxEtiquetas, metadados
--text-sm0.9rem14pxTextos secundários, navegação
--text-base1rem16pxTexto de corpo padrão
--text-md1.1rem18pxTextos de apoio, descrições
--text-lg1.2rem20pxSubtítulos (H3)
--text-xl1.5rem24pxTítulos menores
--text-2xl2rem32pxTítulos de seção (H2)
--text-3xl2.5rem40pxTítulos grandes (H1 mobile)
--text-4xl3rem48pxTítulos maiores (ex: H1 tablet)
--text-5xl4.5rem72pxTítulo principal (H1 desktop)
Foundation

Spacing

Nossa escala de espaçamento é baseada em tokens CSS para garantir consistência vertical e horizontal. Use esses tokens para margens, paddings e lacunas em grids/flexbox.

Preview
Code
Usage

Escala de Espaçamento Visual

--spacing-xs (4px)
--spacing-sm (8px)
--spacing-md (16px)
--spacing-lg (24px)
--spacing-xl (32px)
--spacing-2xl (48px)
--spacing-3xl (64px)
--spacing-4xl (96px)
--spacing-5xl (128px)
/* Variáveis CSS para Espaçamento */
:root {
    --spacing-xs: 0.25rem;  /* 4px */
    --spacing-sm: 0.5rem;   /* 8px */
    --spacing-md: 1rem;     /* 16px */
    --spacing-lg: 1.5rem;   /* 24px */
    --spacing-xl: 2rem;     /* 32px */
    --spacing-2xl: 3rem;    /* 48px */
    --spacing-3xl: 4rem;    /* 64px */
    --spacing-4xl: 6rem;    /* 96px */
    --spacing-5xl: 8rem;    /* 128px */
}

/* Exemplo de uso */
.element {
  margin-bottom: var(--spacing-md);
  padding: var(--spacing-lg) var(--spacing-xl);
  gap: var(--spacing-sm); /* For flex/grid */
}

/* Exemplo de classes utilitárias (se existirem) */
.mb-md { margin-bottom: var(--spacing-md); }
.py-lg { padding-top: var(--spacing-lg); padding-bottom: var(--spacing-lg); }
.gap-sm { gap: var(--spacing-sm); }

Uso Consistente

Aplique os tokens de espaçamento de forma consistente em todo o layout para criar ritmos verticais e horizontais previsíveis.

Em Componentes

Use tokens de espaçamento para definir o padding interno dos componentes e as margens entre elementos dentro deles.

Em Layouts

Utilize os tokens para definir as lacunas entre itens em layouts flexbox ou grid e para as margens externas dos componentes ou seções.

Tokens de Espaçamento

Variáveis CSS para espaçamento:

TokenValor (rem)Valor (px base 16)Uso Típico
--spacing-xs0.25rem4pxEspaçamento mínimo
--spacing-sm0.5rem8pxEspaçamento pequeno
--spacing-md1rem16pxEspaçamento médio (padrão)
--spacing-lg1.5rem24pxEspaçamento grande
--spacing-xl2rem32pxEspaçamento extra grande
--spacing-2xl3rem48pxEspaçamento de seção menor, entre blocos grandes
--spacing-3xl4rem64pxEspaçamento entre seções
--spacing-4xl6rem96pxEspaçamento grande entre seções
--spacing-5xl8rem128pxEspaçamento máximo, em heróis ou entre blocos muito distintos
Foundation

Layout

Diretrizes e padrões para a estrutura e organização do conteúdo nas páginas, incluindo contêineres e seções.

Preview
Code
Usage

Contêiner Principal (`.container`)

Conteúdo dentro do contêiner (max-width: var(--max-width), padding: var(--spacing-xl))

Simulação do .container (usado na tag `main` neste layout)

Seção de Conteúdo (`.ds-section`)

Conteúdo dentro da seção de documentação (padding: var(--spacing-xl))

Simulação do .ds-section

Seção Principal (`.section-header`)

Cabeçalho da seção (padding vertical, border-bottom)

Simulação do .section-header (usado na introdução)

<!-- Estrutura básica de layout -->
<body>
    <header class="top-header">...</header>
    <aside class="sidebar">...</aside>
    <main class="main-content">
        <!-- Seção de Cabeçalho (ex: Introdução) -->
        <section id="introduction" class="section-header">
             <div class="component-tag"><span>...</span></div>
             <h1 class="component-title">...</h1>
             <p class="component-description">...</p>
        </section>

        <!-- Seção de Documentação (para componentes e fundação) -->
        <section id="alguma-secao" class="ds-section">
            <div class="component-tag"><span>...</span></div>
            <h2>Título da Seção</h2>
            <p>Descrição...</p>
            <!-- Conteúdo da seção (demo, código, uso, props) -->
            <div class="demo-area">...</div>
            <div class="table-responsive">...</div>
            <div class="controls-panel">...</div>
        </section>

        <!-- Outras seções ds-section -->

    </main>
    <!-- Footer removido -->
</body>
/* Contêiner principal */
.app-container {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

/* Área de conteúdo principal */
.main-content {
    margin-left: var(--sidebar-width);
    margin-top: var(--header-height);
    padding: var(--spacing-2xl);
    width: calc(100% - var(--sidebar-width));
    background-color: var(--content-bg);
    min-height: calc(100vh - var(--header-height));
}

/* Seções de documentação */
.ds-section {
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-2xl);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-md);
    background-color: var(--content-bg);
}

/* Seção de cabeçalho (primeira seção) */
.section-header {
    margin-bottom: var(--spacing-2xl);
    padding-bottom: var(--spacing-lg);
    border-bottom: 1px solid var(--border-color);
     background-color: var(--content-bg);
     padding-left: var(--spacing-2xl);
     padding-right: var(--spacing-2xl);
     margin-left: 0;
     margin-right: 0;
     width: 100%;
}
/* Adjust padding-top for scroll-margin */
#introduction.section-header {
    padding-top: calc(var(--spacing-2xl) + var(--header-height));
    scroll-margin-top: var(--header-height);
}


/* Responsivo */
@media (max-width: 768px) {
   .main-content {
       margin-left: 0;
       width: 100%;
       padding: var(--spacing-lg);
   }

   .section-header {
       padding-left: var(--spacing-lg);
       padding-right: var(--spacing-lg);
   }
   #introduction.section-header {
      padding-top: calc(var(--spacing-lg) + var(--header-height));
   }
}

Estrutura Base

Use a estrutura `.app-container` > `header`, `aside`, `main` para o layout principal. O conteúdo das páginas deve ficar dentro da tag `

`.

Contêiner de Conteúdo

Utilize a classe `.container` para centralizar e limitar a largura do conteúdo principal em páginas que não são a de documentação, garantindo espaçamento lateral em todas as telas. (Observação: Neste layout de docs, `.main-content` já gerencia a largura devido à sidebar).

Organização de Seções

Divida o conteúdo da página em seções semânticas usando a tag `

`. Para a seção de introdução, use a classe `.section-header`. Para as seções de documentação de componentes e fundação, use a classe `.ds-section`.

Component Stable

Buttons

Os botões são elementos interativos essenciais para a navegação e ações do usuário. Utilize as classes `.btn` combinadas com modificadores para tipos e tamanhos.

Preview
Code
Usage
Props

Tipos de Botão

Tamanhos de Botão

Botões com Ícone

Estado Desabilitado

<!-- Botão Primário -->
<a href="#" class="btn btn-primary">Botão Primário</a>
<button type="button" class="btn btn-primary">Botão Primário</button> <!-- Use <button> para ações -->

<!-- Botão Secundário -->
<a href="#" class="btn btn-secondary">Botão Secundário</a>
<button type="button" class="btn btn-secondary">Botão Secundário</button>

<!-- Botão Outline -->
<a href="#" class="btn btn-outline">Botão Outline</a>
<button type="button" class="btn btn-outline">Botão Outline</button>

<!-- Tamanhos -->
<button type="button" class="btn btn-primary btn-sm">Pequeno</button>
<button type="button" class="btn btn-primary btn-lg">Grande</button>

<!-- Botão com Ícone (Requer Font Awesome) -->
<button type="button" class="btn btn-primary"><i class="fas fa-download mr-sm"></i> Download</button>
<!-- 'mr-sm' é uma classe utilitária para margem à direita -->

<!-- Botão Desabilitado -->
<button type="button" class="btn btn-primary" disabled>Desabilitado</button>
<button type="button" class="btn btn-secondary" disabled>Desabilitado</button>
<button type="button" class="btn btn-outline" disabled>Desabilitado</button>
/* Estilos Base para Botões */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-sm);

    padding: var(--spacing-md) var(--spacing-xl);
    border-radius: var(--radius-full);
    font-weight: 400;
    font-size: var(--text-base);
    line-height: 1;
    transition: all 0.3s ease;
    cursor: pointer;
    text-decoration: none;
    border: none;
    font-family: 'Epilogue', sans-serif;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
 .btn::after { display: none; }


.btn:hover {
    transform: translateY(-2px);
    text-decoration: none;
}
.btn:active {
     transform: translateY(0);
     opacity: 0.9;
}
.btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.2);
}

/* Button Types */
.btn-primary {
    background-color: var(--primary-color);
    color: white;
}
.btn-primary:hover {
    background-color: var(--secondary-color);
}

.btn-secondary {
    background-color: var(--light-text);
    color: var(--background-color);
}
.btn-secondary:hover {
    background-color: var(--text-color);
    color: var(--background-color);
}

.btn-outline {
    background-color: var(--card-bg);
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
}
.btn-outline:hover {
    background-color: var(--primary-color);
    color: white;
}

/* Disabled State */
.btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: translateY(0);
    pointer-events: none;
}


/* Button Sizes */
.btn-sm {
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--text-xs);
    gap: var(--spacing-xs);
}
.btn-lg {
    padding: var(--spacing-md) var(--spacing-2xl);
    font-size: var(--text-md);
    gap: var(--spacing-sm);
}

/* Button Icon styles */
.btn i {
    line-height: 1;
}

/* Utility for icon spacing */
.mr-sm { margin-right: var(--spacing-sm); }

Quando Usar

Use botões primários (`.btn-primary`) para as ações mais importantes por página. Use botões secundários (`.btn-secondary`, `.btn-outline`) para ações de menor prioridade, complementares ou alternativas.

HTML Semântico

Use a tag `

Classes CSS

Classes disponíveis para estilizar botões:

ClasseDescrição
.btn**Classe base** para estilização de botões. Aplica formato pílula, padding base, transições, alinhamento interno e reset de aparência. Essencial em todos os botões.
.btn-primaryAplica o estilo de **botão primário** (fundo escuro, texto claro). Use para ações mais importantes.
.btn-secondaryAplica o estilo de **botão secundário** (fundo `light-text`, texto claro). Use para ações de prioridade média.
.btn-outlineAplica o estilo de **botão outline** (fundo `card-bg`, borda e texto `primary-color`). Use para ações secundárias ou alternativas.
.btn-smReduz o tamanho do padding e fonte do botão para **pequeno**.
.btn-lgAumenta o tamanho do padding e fonte do botão para **grande**.
NenhumUm botão sem modificador de tamanho terá o tamanho **médio** padrão.
Atributo disabledAdicionado à tag `
Component Stable

Cards

Cards são containers versáteis para agrupar e exibir conteúdo relacionado de forma organizada e visualmente distinta.

Preview
Code
Usage
Props

Exemplos de uso da classe `.card` em um grid:

Serviço

Este é um exemplo de card de serviço. Os cards são usados para apresentar informações de forma clara e concisa.

Local

Este é um exemplo de card de local. Os cards locais mostram endereços e informações de contato.

Blog

Este é um exemplo de card de blog. Os cards de blog geralmente incluem uma imagem, título e uma breve descrição.

<!-- Exemplo básico de Card -->
<div class="card">
    <h3>Título do Card</h3>
    <p>Conteúdo do card.</p>
</div>

<!-- Exemplo de Cards em um Grid (usando classes de Grid) -->
<div class="grid grid-2">
    <div class="card">Card 1</div>
    <div class="card">Card 2</div>
</div>
/* Estilo Base para Cards */
.card {
    background: var(--card-bg);
    padding: var(--spacing-xl);
    border-radius: var(--radius-md);
    transition: all 0.3s ease;
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.card:hover {
    background: var(--card-hover);
    transform: translateY(-5px);
}

/* Estilos de Grid usados nos exemplos */
.grid {
    display: grid;
    gap: var(--spacing-xl);
}
.grid-2 { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
/* ... outros tamanhos de grid ... */

Quando Usar

Use cards para agrupar informações relacionadas, como serviços, artigos de blog, produtos, membros de equipe, etc. São ideais para layouts baseados em grid.

Estrutura

A classe `.card` define o contêiner visual. O conteúdo interno (títulos, parágrafos, imagens, botões) deve seguir as diretrizes tipográficas e de espaçamento do Design System.

Classes CSS

Classe base disponível para estilizar cards:

ClasseDescrição
.cardAplica o estilo visual padrão de card (fundo, padding, borda, sombra sutil no hover).
Component Stable

Tags

Tags são pequenos elementos visuais usados para categorizar, destacar ou rotular informações de forma concisa.

Preview
Code
Usage
Props

Exemplos de Tags:

Status Ativo
Versão 1.0.0
Categoria Design
<!-- Exemplo básico de Tag -->
<div class="tag">
    <span>Rótulo</span>
    <span>Valor</span>
</div>

<!-- Tag simples (apenas um span) -->
<div class="tag">
    <span>Design</span>
</div>
/* Estilo para Tags */
.tag {
    display: inline-flex;
    gap: 0.5rem;
    align-items: center;
    background: var(--card-bg);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-full);
    font-size: var(--text-sm);
    color: var(--text-color);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

.tag span:first-child {
    font-weight: 500;
}

/* TODO: Add modifiers for colors, interactive tags, etc. */
/*
.tag-primary { background-color: var(--primary-color); color: white; border-color: var(--primary-color); }
*/

Quando Usar

Use tags para metadados, status, categorias, filtros ou qualquer informação curta que precise ser visualmente destacada.

Estrutura

A tag base é um `div` com a classe `.tag`. O conteúdo interno pode ser dividido em `span`s para separar rótulo e valor, se necessário.

Classes CSS

Classe base disponível para estilizar tags:

ClasseDescrição
.tagAplica o estilo visual padrão de tag (fundo `card-bg`, padding, bordas arredondadas).
Component Beta

Forms

Componentes de formulário para coletar informações do usuário de forma acessível e consistente.

Preview
Code
Usage
Props

Exemplo de formulário básico:

<form>
    <div class="form-group">
        <label for="input-id">Campo:</label>
        <input type="text" id="input-id" class="form-control" placeholder="...">
    </div>
    <div class="form-group">
        <label for="textarea-id">Mensagem:</label>
        <textarea id="textarea-id" class="form-control" placeholder="..."></textarea>
    </div>
    <button type="submit" class="btn btn-primary">Enviar</button>
</form>
/* Estilos básicos para campos de formulário */
.form-group {
    margin-bottom: var(--spacing-lg);
}

label {
    display: block;
    margin-bottom: var(--spacing-xs);
    font-weight: 500;
    font-size: var(--text-sm);
    color: var(--text-color);
}

.form-control {
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    border: 1px solid var(--border-color);
    border-radius: var(--radius-sm);
    font-family: 'Epilogue', sans-serif;
    font-size: var(--text-base);
    color: var(--text-color);
    background-color: var(--content-bg);
    outline: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.form-control:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
}

textarea.form-control {
    min-height: 120px;
    resize: vertical;
}

/* TODO: Add styles for checkboxes, radios, selects, validation states (error, success) */

Acessibilidade

Sempre associe `

Validação

Indique estados de validação (erro, sucesso) usando classes CSS específicas (a serem definidas e documentadas).

Classes CSS

Classes e estilos para elementos de formulário:

Elemento/ClasseDescrição
.form-groupContêiner para agrupar label e input/textarea.
labelEstilo para as etiquetas dos campos.
.form-controlEstilo base para campos de texto, email, senha e áreas de texto.
textarea.form-controlAjustes específicos para a área de texto.
Component Stable

Grids

Sistema de layout baseado em CSS Grid para organizar conteúdo em colunas de forma responsiva.

Preview
Code
Usage

Exemplos de Grids usando cards como itens:

Grid de 2 colunas (`.grid.grid-2`)

Conteúdo na Coluna 1
Conteúdo na Coluna 2

Grid de 3 colunas (`.grid.grid-3`)

Conteúdo na Coluna 1
Conteúdo na Coluna 2
Conteúdo na Coluna 3

Grid de 4 colunas (`.grid.grid-4`)

Conteúdo na Coluna 1
Conteúdo na Coluna 2
Conteúdo na Coluna 3
Conteúdo na Coluna 4
<!-- Grid de 2 colunas (responsivo) -->
<div class="grid grid-2">
    <div>Item 1</div>
    <div>Item 2</div>
</div>

<!-- Grid de 3 colunas (responsivo) -->
<div class="grid grid-3">
    <div>Item 1</div>
    <div>Item 2</div>
    <div>Item 3</div>
</div>

<!-- Grid de 4 colunas (responsivo) -->
<div class="grid grid-4">
    <div>Item 1</div>
    <div>Item 2</div>
    <div>Item 3</div>
    <div>Item 4</div>
</div>
/* Estilo Base para Grids */
.grid {
    display: grid;
    gap: var(--spacing-xl);
}

/* Modificadores de Coluna (responsivos) */
.grid-2 {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.grid-3 {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.grid-4 {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

/* TODO: Adicionar breakpoints ou variações específicas se necessário */

Uso

Use a classe `.grid` em um contêiner (ex: `div`) e combine-a com uma classe modificadora como `.grid-2`, `.grid-3` ou `.grid-4` para definir o layout em colunas.

Responsividade

As definições `minmax` e `auto-fit` garantem que as colunas se adaptem automaticamente à largura da tela. Em telas menores, os itens que não couberem na mesma linha passarão para a linha seguinte.

Resources

Figma Library

Acesse nossa biblioteca de componentes no Figma para utilizar os elementos visuais no seu trabalho de design.

Resources

Templates

Templates de página e seção para agilizar o desenvolvimento e garantir consistência nos layouts.

Resources

Changelog

Histórico de alterações, novas funcionalidades e correções em cada versão do Design System.