kodda

BentoGrid

Sistema de grid estilo Vercel/Linear para layouts de features e demonstrações de produto.

Visão Geral

O BentoGrid é um sistema de layout responsivo inspirado no estilo Vercel e Linear. Composto por 4 componentes que trabalham juntos para criar layouts de features visualmente impactantes.

Importação

import {
  BentoGrid,
  BentoCard,
  BentoFeature,
  BentoHeroCard
} from '@/components/linear/bento-grid'

Componentes

BentoGrid

Container principal que organiza os cards em grid responsivo.

<BentoGrid className="max-w-6xl">
  {/* BentoCards aqui */}
</BentoGrid>
PropTipoDefaultDescrição
childrenReactNodeCards filhos
classNamestringClasses adicionais

BentoCard

Card padrão para demonstrações de produto. Aceita qualquer mock como children.

<BentoCard
  title="Gestão de Tarefas"
  description="Kanban inteligente com sugestões de AI"
  number="FIG 0.1"
  colSpan={2}
>
  <MockKanban columns={demoColumns} />
</BentoCard>
PropTipoDefaultDescrição
titlestringTítulo do card
descriptionstringDescrição opcional
numberstringNúmero/figura (ex: "FIG 0.1")
childrenReactNodeConteúdo (mock)
colSpan1 | 2 | 31Colunas ocupadas
rowSpan1 | 21Linhas ocupadas
hoverEffectbooleantrueEfeito hover
onClick() => voidCallback de click
classNamestringClasses adicionais

BentoFeature

Card simplificado para listar features com ícone.

<BentoFeature
  icon={<IconRocket className="size-5" />}
  title="Deploy Instantâneo"
  description="Atualizações em produção em segundos"
/>
PropTipoDefaultDescrição
iconReactNodeÍcone da feature
titlestringTítulo
descriptionstringDescrição
classNamestringClasses adicionais

BentoHeroCard

Card hero que ocupa múltiplas colunas, ideal para demonstrações principais.

<BentoHeroCard gradient>
  <div className="p-8">
    <h2>Título Principal</h2>
    <MockDashboard {...props} />
  </div>
</BentoHeroCard>
PropTipoDefaultDescrição
childrenReactNodeConteúdo
gradientbooleanfalseFundo com gradiente
classNamestringClasses adicionais

Exemplo Completo

import { BentoGrid, BentoCard, BentoFeature } from '@/components/linear/bento-grid'
import { MockKanban, demoColumns } from '@/components/linear/mock-kanban'
import { MockDashboard, demoDashboardData } from '@/components/linear/mock-dashboard'

export function FeaturesSection() {
  return (
    <BentoGrid>
      {/* Card principal - 2 colunas */}
      <BentoCard
        title="Kanban Inteligente"
        description="Tarefas organizadas automaticamente com sugestões de AI"
        number="FIG 0.1"
        colSpan={2}
      >
        <MockKanban columns={demoColumns} compact />
      </BentoCard>

      {/* Card simples - 1 coluna */}
      <BentoCard
        title="Dashboard"
        description="Métricas em tempo real"
      >
        <MockDashboard {...demoDashboardData} />
      </BentoCard>

      {/* Features menores */}
      <BentoFeature
        icon={<IconBolt className="size-5" />}
        title="Rápido"
        description="Respostas em menos de 2s"
      />
      <BentoFeature
        icon={<IconShield className="size-5" />}
        title="Seguro"
        description="Dados criptografados"
      />
      <BentoFeature
        icon={<IconCloud className="size-5" />}
        title="Cloud"
        description="Infraestrutura escalável"
      />
    </BentoGrid>
  )
}

Grid Responsivo

O grid adapta automaticamente:

  • Mobile: 1 coluna
  • Tablet (md): 2 colunas
  • Desktop (lg): 3 colunas

Cards com colSpan={2} ocupam 2 colunas em tablet/desktop, mas voltam para 1 coluna em mobile.

Estilos

O BentoGrid usa o design system Linear-style da kodda:

  • Bordas sutis (border-border)
  • Hover com destaque primary (hover:border-primary/30)
  • Sombras suaves (shadow-lg shadow-primary/5)
  • Transições de 300ms

On this page