bootstrap-guidelines
Garante uso correto do Bootstrap 5 sem CSS customizado. Use quando criar ou modificar HTML, estilizar componentes, ajustar layout, ou o usuário mencionar Bootstrap, grid, responsividade, ou classes CSS.
When & Why to Use This Skill
This Claude skill enforces the strict application of Bootstrap 5.3.0 standards, ensuring that all web styling is handled exclusively through native framework classes with zero custom CSS. It streamlines front-end development by providing precise guidelines for responsive grids, UI components, and utility-based layouts, resulting in clean, maintainable, and standardized HTML code.
Use Cases
- Rapidly prototyping responsive web pages using the Bootstrap 12-column grid system and breakpoints without writing external stylesheets.
- Implementing consistent UI components such as cards, modals, navbars, and accordions using verified Bootstrap 5 syntax.
- Managing layout spacing, typography, and color schemes efficiently through the use of Bootstrap's comprehensive utility class library.
- Refactoring existing HTML structures to remove custom CSS bloat and replace it with modern, framework-compliant functional classes.
| name | bootstrap-guidelines |
|---|---|
| description | Garante uso correto do Bootstrap 5 sem CSS customizado. Use quando criar ou modificar HTML, estilizar componentes, ajustar layout, ou o usuário mencionar Bootstrap, grid, responsividade, ou classes CSS. |
Skill: Bootstrap 5 Guidelines
Esta skill garante o uso correto do Bootstrap 5.3.0, seguindo o princípio fundamental do projeto de ZERO CSS customizado.
Princípio Fundamental
🚫 NUNCA use CSS customizado. SOMENTE classes Bootstrap.
Toda estilização deve ser feita usando classes nativas do Bootstrap. Se algo não puder ser feito com Bootstrap, reconsidere o design.
Quando Usar
- Ao criar novas páginas HTML
- Ao adicionar componentes (cards, badges, alerts, etc)
- Ao ajustar layout e responsividade
- Quando o usuário mencionar "estilizar", "layout", "responsivo"
- Ao trabalhar com grid system
- Quando precisar de cores, espaçamento, ou tipografia
Sistema de Grid
Container
<!-- Largura fixa responsiva (recomendado) -->
<div class="container">
<!-- 100% da largura -->
<div class="container-fluid">
Grid System
<div class="row">
<div class="col-12 col-md-6 col-lg-4">
<!-- Conteúdo -->
</div>
</div>
Breakpoints
col-: Extra small (< 576px) - Mobilecol-sm-: Small (≥ 576px)col-md-: Medium (≥ 768px) - Tabletcol-lg-: Large (≥ 992px) - Desktopcol-xl-: Extra large (≥ 1200px)col-xxl-: Extra extra large (≥ 1400px)
Exemplos de Grid
<!-- 2 colunas em desktop, 1 em mobile -->
<div class="row">
<div class="col-12 col-lg-6">Coluna 1</div>
<div class="col-12 col-lg-6">Coluna 2</div>
</div>
<!-- 3 colunas em desktop, 1 em mobile -->
<div class="row">
<div class="col-12 col-md-6 col-lg-4">Col 1</div>
<div class="col-12 col-md-6 col-lg-4">Col 2</div>
<div class="col-12 col-md-12 col-lg-4">Col 3</div>
</div>
<!-- Proporções diferentes (5-7) -->
<div class="row">
<div class="col-lg-5">Coluna menor</div>
<div class="col-lg-7">Coluna maior</div>
</div>
Componentes Principais
Cards
<div class="card">
<div class="card-header">Título</div>
<div class="card-body">
<h5 class="card-title">Título do Card</h5>
<p class="card-text">Conteúdo</p>
</div>
<div class="card-footer">Rodapé</div>
</div>
<!-- Card com sombra e borda -->
<div class="card shadow border-secondary">
Badges
<span class="badge bg-primary">Primário</span>
<span class="badge bg-success">Sucesso</span>
<span class="badge bg-danger">Perigo</span>
<span class="badge bg-warning text-dark">Aviso</span>
<span class="badge bg-info">Info</span>
<span class="badge bg-dark">Escuro</span>
<!-- Tamanhos -->
<span class="badge bg-primary fs-6">Grande</span>
Alerts
<div class="alert alert-info">
<h6 class="alert-heading">Título</h6>
<p class="mb-0">Conteúdo do alerta</p>
</div>
<!-- Outros tipos -->
<div class="alert alert-primary">Primário</div>
<div class="alert alert-success">Sucesso</div>
<div class="alert alert-danger">Perigo</div>
<div class="alert alert-warning">Aviso</div>
<div class="alert alert-light border">Light com borda</div>
<div class="alert alert-dark">Escuro</div>
Progress Bars
<div class="progress" style="height: 25px;">
<div class="progress-bar bg-success"
role="progressbar"
style="width: 85%;"
aria-valuenow="85"
aria-valuemin="0"
aria-valuemax="100">
<span class="fw-bold">85%</span>
</div>
</div>
<!-- Diferentes cores -->
<div class="progress-bar bg-success">Verde</div>
<div class="progress-bar bg-warning">Amarelo</div>
<div class="progress-bar bg-danger">Vermelho</div>
<div class="progress-bar bg-secondary">Cinza</div>
Accordion
<div class="accordion accordion-flush" id="accordionExample">
<div class="accordion-item border-bottom">
<h2 class="accordion-header">
<button class="accordion-button bg-light"
type="button"
data-bs-toggle="collapse"
data-bs-target="#collapse1">
Título
</button>
</h2>
<div id="collapse1" class="accordion-collapse collapse show">
<div class="accordion-body bg-white small">
Conteúdo
</div>
</div>
</div>
</div>
Navbar
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<div class="container">
<a class="navbar-brand fw-bold" href="index.html">Título</a>
<button class="navbar-toggler"
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
</ul>
</div>
</div>
</nav>
Modals
<div class="modal fade" id="modalId" tabindex="-1">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content bg-dark">
<div class="modal-header border-secondary">
<h5 class="modal-title text-white">Título</h5>
<button type="button" class="btn-close btn-close-white"
data-bs-dismiss="modal" aria-label="Fechar"></button>
</div>
<div class="modal-body text-center p-0">
Conteúdo
</div>
</div>
</div>
</div>
Utility Classes Essenciais
Spacing (Margin e Padding)
Sintaxe: {property}{sides}-{size} ou {property}{sides}-{breakpoint}-{size}
Properties:
m: marginp: padding
Sides:
t: topb: bottoms: start (left em LTR)e: end (right em LTR)x: horizontal (left + right)y: vertical (top + bottom)- (vazio) : todos os lados
Sizes:
0: 01: 0.25rem (4px)2: 0.5rem (8px)3: 1rem (16px)4: 1.5rem (24px)5: 3rem (48px)auto: auto
Exemplos:
<div class="mt-3"> <!-- margin-top: 1rem -->
<div class="mb-4"> <!-- margin-bottom: 1.5rem -->
<div class="p-2"> <!-- padding: 0.5rem -->
<div class="px-3"> <!-- padding horizontal: 1rem -->
<div class="my-5"> <!-- margin vertical: 3rem -->
<div class="mx-auto"> <!-- margin horizontal: auto (centralizar) -->
Cores
Background:
<div class="bg-primary"> <!-- Azul -->
<div class="bg-secondary"> <!-- Cinza -->
<div class="bg-success"> <!-- Verde -->
<div class="bg-danger"> <!-- Vermelho -->
<div class="bg-warning"> <!-- Amarelo -->
<div class="bg-info"> <!-- Azul claro -->
<div class="bg-light"> <!-- Cinza claro -->
<div class="bg-dark"> <!-- Preto -->
<div class="bg-white"> <!-- Branco -->
Text:
<p class="text-primary"> <!-- Texto azul -->
<p class="text-secondary"> <!-- Texto cinza -->
<p class="text-success"> <!-- Texto verde -->
<p class="text-danger"> <!-- Texto vermelho -->
<p class="text-warning"> <!-- Texto amarelo -->
<p class="text-info"> <!-- Texto azul claro -->
<p class="text-dark"> <!-- Texto escuro -->
<p class="text-white"> <!-- Texto branco -->
<p class="text-muted"> <!-- Texto cinza claro -->
Texto
Alinhamento:
<p class="text-start"> <!-- Alinhado à esquerda -->
<p class="text-center"> <!-- Centralizado -->
<p class="text-end"> <!-- Alinhado à direita -->
<!-- Responsivo -->
<p class="text-start text-md-center"> <!-- Esquerda em mobile, centro em md+ -->
Peso:
<span class="fw-bold"> <!-- Negrito -->
<span class="fw-normal"> <!-- Normal -->
<span class="fw-light"> <!-- Leve -->
<span class="fst-italic"> <!-- Itálico -->
Tamanho:
<p class="fs-1"> <!-- Maior -->
<p class="fs-2">
<p class="fs-3">
<p class="fs-4">
<p class="fs-5">
<p class="fs-6"> <!-- Menor -->
<!-- Display headings (grandes) -->
<h1 class="display-1"> <!-- Muito grande -->
<h1 class="display-4"> <!-- Grande -->
<!-- Monospace -->
<code class="font-monospace">P0000254</code>
Bordas
<!-- Adicionar bordas -->
<div class="border">
<div class="border-top">
<div class="border-bottom">
<div class="border-start">
<div class="border-end">
<!-- Cores de borda -->
<div class="border border-primary">
<div class="border border-secondary">
<div class="border border-success">
<!-- Arredondamento -->
<img class="rounded"> <!-- Cantos arredondados -->
<img class="rounded-circle"> <!-- Círculo -->
<div class="rounded-pill"> <!-- Pílula -->
Sombras
<div class="shadow-sm"> <!-- Sombra pequena -->
<div class="shadow"> <!-- Sombra média -->
<div class="shadow-lg"> <!-- Sombra grande -->
Display
<div class="d-none"> <!-- Escondido -->
<div class="d-block"> <!-- Bloco -->
<div class="d-inline"> <!-- Inline -->
<div class="d-flex"> <!-- Flex -->
<!-- Responsivo -->
<div class="d-none d-md-block"> <!-- Escondido em mobile, visível em md+ -->
<div class="d-block d-lg-none"> <!-- Visível até lg, escondido em lg+ -->
Flexbox
<div class="d-flex justify-content-start"> <!-- Início -->
<div class="d-flex justify-content-center"> <!-- Centro -->
<div class="d-flex justify-content-end"> <!-- Fim -->
<div class="d-flex justify-content-between"> <!-- Espaço entre -->
<div class="d-flex align-items-start"> <!-- Topo -->
<div class="d-flex align-items-center"> <!-- Centro -->
<div class="d-flex align-items-end"> <!-- Base -->
<!-- Combinado -->
<div class="d-flex justify-content-between align-items-center">
Largura
<div class="w-25"> <!-- 25% -->
<div class="w-50"> <!-- 50% -->
<div class="w-75"> <!-- 75% -->
<div class="w-100"> <!-- 100% -->
<button class="btn btn-primary w-100"> <!-- Botão largura total -->
Altura
<div class="h-25"> <!-- 25% -->
<div class="h-50"> <!-- 50% -->
<div class="h-75"> <!-- 75% -->
<div class="h-100"> <!-- 100% -->
Botões
<!-- Estilos -->
<button class="btn btn-primary">Primário</button>
<button class="btn btn-secondary">Secundário</button>
<button class="btn btn-success">Sucesso</button>
<button class="btn btn-danger">Perigo</button>
<button class="btn btn-warning">Aviso</button>
<button class="btn btn-dark">Escuro</button>
<!-- Outline -->
<button class="btn btn-outline-primary">Outline</button>
<!-- Tamanhos -->
<button class="btn btn-primary btn-sm">Pequeno</button>
<button class="btn btn-primary">Normal</button>
<button class="btn btn-primary btn-lg">Grande</button>
<!-- Largura total -->
<button class="btn btn-primary w-100">Largura Total</button>
Tabelas
<table class="table">
<tbody>
<tr>
<td>Célula</td>
</tr>
</tbody>
</table>
<!-- Variações -->
<table class="table table-sm"> <!-- Compacta -->
<table class="table table-borderless"> <!-- Sem bordas -->
<table class="table table-striped"> <!-- Zebrada -->
<table class="table table-hover"> <!-- Hover -->
Gaps (Espaçamento em Grid)
<div class="row g-2"> <!-- Gap de 0.5rem -->
<div class="row g-3"> <!-- Gap de 1rem -->
<div class="row g-4"> <!-- Gap de 1.5rem -->
<!-- Gaps direcionais -->
<div class="row gx-3"> <!-- Gap horizontal -->
<div class="row gy-3"> <!-- Gap vertical -->
Cores para Tipos Pokémon (Sugestões)
<!-- Fogo -->
<div class="bg-danger text-white">
<div class="bg-warning text-dark">
<!-- Água -->
<div class="bg-info text-white">
<div class="bg-primary text-white">
<!-- Planta -->
<div class="bg-success text-white">
<!-- Elétrico -->
<div class="bg-warning text-dark">
<!-- Psíquico -->
<div class="bg-primary text-white">
<!-- Normal/Lutador/Metal -->
<div class="bg-secondary text-white">
<!-- Fantasma -->
<div class="bg-dark text-white">
Regras de Ouro
- ✅ Use APENAS classes Bootstrap nativas
- ✅ Combine classes para obter o efeito desejado
- ✅ Use o sistema de grid responsivo
- ✅ Aproveite as utility classes
- ❌ NUNCA crie CSS customizado
- ❌ NUNCA use tags
<style> - ⚠️ Style inline APENAS para:
- Width de progress bars (
style="width: 85%;") - Height de progress bars (
style="height: 25px;") - Object-fit de imagens (
style="object-fit: contain;")
- Width de progress bars (
Checklist Bootstrap
Ao criar ou modificar HTML:
- ✅ CDN do Bootstrap 5.3.0 no
<head> - ✅ Bootstrap JS no final do
<body> - ✅ Container (
containeroucontainer-fluid) - ✅ Grid system com breakpoints apropriados
- ✅ Componentes usando classes Bootstrap
- ✅ Spacing com utility classes (m-, p-)
- ✅ Cores com utility classes (bg-, text-)
- ✅ Responsividade testada
- ✅ Zero CSS customizado
- ✅ Zero tags
<style>
CDN do Bootstrap
No <head>:
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
No final do <body>:
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
Recursos
Integração com Outras Skills
Esta skill trabalha em conjunto com:
- acessibilidade: Para garantir componentes acessíveis
- codigo-html: Para estrutura HTML limpa
- estrutura-paginas: Para layout consistente
Lembre-se: Bootstrap 5 já inclui muitas práticas de acessibilidade por padrão. Mantenha-as!