Bootstrap CSS Framework
The world's most popular front-end component library for building responsive, mobile-first websites.
What is Bootstrap?
Bootstrap is a powerful, feature-packed frontend toolkit. Build anything—from prototype to production—in minutes.
Rapid Development
Pre-built components and utilities speed up development significantly
Responsive Design
Mobile-first approach with comprehensive breakpoint system
Consistent Design
Unified design language and extensive component library
Grid System
Key Features:
- 12-column responsive grid system - Flexible layout foundation
- 6 responsive breakpoints - xs, sm, md, lg, xl, xxl for precise control
- Flexbox-based - Modern layout with mobile-first approach
- Auto-layout columns - Equal width distribution without specific sizing
- Nesting support - Grids within grids for complex layouts
Grid System Demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bootstrap Grid System</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <style> .grid-demo [class*="col"] { background: #0d6efd; color: white; padding: 1rem; border: 2px solid white; text-align: center; } .demo-section { margin: 2rem 0; padding: 2rem; background: #f8f9fa; border-radius: 10px; } </style> </head> <body> <div class="container py-4"> <h1 class="text-center mb-4">Bootstrap Grid System</h1> <div class="demo-section"> <h3>Basic Grid - Equal Width Columns</h3> <p class="text-muted">Automatically divides available space equally</p> <div class="row grid-demo"> <div class="col">col</div> <div class="col">col</div> <div class="col">col</div> </div> </div> <div class="demo-section"> <h3>Responsive Grid - Stack on Mobile</h3> <p class="text-muted">Columns stack vertically on mobile, become horizontal on medium screens</p> <div class="row grid-demo"> <div class="col-md-4">col-md-4</div> <div class="col-md-4">col-md-4</div> <div class="col-md-4">col-md-4</div> </div> </div> <div class="demo-section"> <h3>Mixed Column Widths</h3> <p class="text-muted">Custom column ratios using Bootstrap's 12-column system</p> <div class="row grid-demo"> <div class="col-8">col-8 (66.66%)</div> <div class="col-4">col-4 (33.33%)</div> </div> </div> <div class="demo-section"> <h3>Nested Grid System</h3> <p class="text-muted">Grids can be nested inside other grid columns</p> <div class="row grid-demo"> <div class="col-6"> Parent col-6 <div class="row"> <div class="col-6">Nested col-6</div> <div class="col-6">Nested col-6</div> </div> </div> <div class="col-6">Parent col-6</div> </div> </div> </div> </body> </html>
Components
Component Library:
ButtonsCardsNavbarsModalsAlertsFormsCarouselsDropdowns
Components Demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bootstrap Components</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <style> .demo-section { margin: 2rem 0; padding: 2rem; background: #f8f9fa; border-radius: 10px; } </style> </head> <body> <div class="container py-4"> <h1 class="text-center mb-4">Bootstrap Components</h1> <div class="demo-section"> <h3>Button Variants</h3> <p class="text-muted">Pre-styled buttons for different actions and importance levels</p> <button class="btn btn-primary me-2">Primary</button> <button class="btn btn-secondary me-2">Secondary</button> <button class="btn btn-success me-2">Success</button> <button class="btn btn-danger me-2">Danger</button> <button class="btn btn-warning me-2">Warning</button> <button class="btn btn-info me-2">Info</button> </div> <div class="demo-section"> <h3>Card Components</h3> <p class="text-muted">Flexible content containers with multiple layout options</p> <div class="row"> <div class="col-md-4 mb-3"> <div class="card"> <div class="card-body"> <h5 class="card-title">Basic Card</h5> <p class="card-text">Simple card with text content and action button.</p> <a href="#" class="btn btn-primary">Action</a> </div> </div> </div> <div class="col-md-4 mb-3"> <div class="card"> <div class="card-body"> <h5 class="card-title">Feature Card</h5> <p class="card-text">Card demonstrating different content types.</p> <a href="#" class="btn btn-success">Learn More</a> </div> </div> </div> </div> </div> <div class="demo-section"> <h3>Alert Components</h3> <p class="text-muted">Contextual feedback messages for user actions</p> <div class="alert alert-primary" role="alert">Primary alert - Informational message</div> <div class="alert alert-success" role="alert">Success alert - Positive confirmation</div> <div class="alert alert-warning" role="alert">Warning alert - Caution required</div> <div class="alert alert-danger" role="alert">Danger alert - Error or problem</div> </div> <div class="demo-section"> <h3>Navigation Components</h3> <p class="text-muted">Tab-based navigation with active state tracking</p> <ul class="nav nav-tabs"> <li class="nav-item"> <a class="nav-link active" href="#">Active Tab</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Inactive Tab</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Another Tab</a> </li> </ul> </div> </div> </body> </html>
Forms
Form Features:
- Custom form controls - Consistent styling across all browsers
- Input groups - Text add-ons and button integrations
- Floating labels - Modern label placement
- Form validation - Built-in validation styles and feedback
- Responsive layout - Forms that adapt to screen size
Forms Demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bootstrap Forms</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <style> .demo-section { margin: 2rem 0; padding: 2rem; background: #f8f9fa; border-radius: 10px; } </style> </head> <body> <div class="container py-4"> <h1 class="text-center mb-4">Bootstrap Forms</h1> <div class="demo-section"> <h3>Basic Form Structure</h3> <p class="text-muted">Properly structured forms with labels and form controls</p> <form> <div class="mb-3"> <label for="email" class="form-label">Email Address</label> <input type="email" class="form-control" id="email" placeholder="name@example.com"> <div class="form-text">We'll never share your email with anyone else.</div> </div> <div class="mb-3"> <label for="password" class="form-label">Password</label> <input type="password" class="form-control" id="password"> </div> <div class="mb-3 form-check"> <input type="checkbox" class="form-check-input" id="remember"> <label class="form-check-label" for="remember">Remember me</label> </div> <button type="submit" class="btn btn-primary">Submit Form</button> </form> </div> <div class="demo-section"> <h3>Responsive Form Layout</h3> <p class="text-muted">Multi-column forms that adapt to different screen sizes</p> <div class="row"> <div class="col-md-6"> <div class="mb-3"> <label class="form-label">First Name</label> <input type="text" class="form-control" placeholder="Enter first name"> </div> </div> <div class="col-md-6"> <div class="mb-3"> <label class="form-label">Last Name</label> <input type="text" class="form-control" placeholder="Enter last name"> </div> </div> </div> </div> <div class="demo-section"> <h3>Form Controls - Select & Textarea</h3> <p class="text-muted">Advanced form elements with custom styling</p> <div class="mb-3"> <label class="form-label">Select Option</label> <select class="form-select"> <option selected>Choose an option...</option> <option value="1">Option One</option> <option value="2">Option Two</option> <option value="3">Option Three</option> </select> </div> <div class="mb-3"> <label class="form-label">Message Textarea</label> <textarea class="form-control" rows="3" placeholder="Enter your message"></textarea> </div> </div> <div class="demo-section"> <h3>Input Groups</h3> <p class="text-muted">Form controls with attached text or buttons</p> <div class="input-group mb-3"> <span class="input-group-text">@</span> <input type="text" class="form-control" placeholder="Username"> </div> <div class="input-group mb-3"> <input type="text" class="form-control" placeholder="Recipient's username"> <span class="input-group-text">@example.com</span> </div> </div> </div> </body> </html>
Utilities
Utility Classes:
SpacingColorsTextBordersShadowsDisplay
Utilities Demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bootstrap Utilities</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <style> .demo-section { margin: 2rem 0; padding: 2rem; background: #f8f9fa; border-radius: 10px; } .utility-box { background: #0d6efd; color: white; padding: 1rem; margin: 0.5rem; } </style> </head> <body> <div class="container py-4"> <h1 class="text-center mb-4">Bootstrap Utilities</h1> <div class="demo-section"> <h3>Spacing Utilities</h3> <p class="text-muted">Consistent margin and padding using shorthand classes</p> <div class="utility-box p-3 mb-2">p-3 (padding: 1rem) mb-2 (margin-bottom: 0.5rem)</div> <div class="utility-box m-4 p-4">m-4 (margin: 1.5rem) p-4 (padding: 1.5rem)</div> <div class="utility-box mt-5 pt-5">mt-5 (margin-top: 3rem) pt-5 (padding-top: 3rem)</div> </div> <div class="demo-section"> <h3>Text & Color Utilities</h3> <p class="text-muted">Text alignment, coloring, and typography helpers</p> <p class="text-primary">.text-primary - Primary color text</p> <p class="text-success">.text-success - Success color text</p> <p class="text-danger">.text-danger - Danger color text</p> <p class="text-warning bg-dark">.text-warning .bg-dark - Warning text on dark background</p> <p class="text-center">.text-center - Center aligned text</p> <p class="text-end">.text-end - Right aligned text</p> <p class="fw-bold">.fw-bold - Bold font weight</p> <p class="fst-italic">.fst-italic - Italic font style</p> </div> <div class="demo-section"> <h3>Background Color Utilities</h3> <p class="text-muted">Contextual background colors with proper contrast</p> <div class="p-3 mb-2 bg-primary text-white">.bg-primary - Primary background</div> <div class="p-3 mb-2 bg-success text-white">.bg-success - Success background</div> <div class="p-3 mb-2 bg-warning text-dark">.bg-warning - Warning background</div> <div class="p-3 mb-2 bg-danger text-white">.bg-danger - Danger background</div> </div> <div class="demo-section"> <h3>Border & Shadow Utilities</h3> <p class="text-muted">Border styling and shadow effects for depth</p> <div class="p-3 mb-3 border">.border - Default border</div> <div class="p-3 mb-3 border border-primary">.border-primary - Primary colored border</div> <div class="p-3 mb-3 border-success border-3">.border-success .border-3 - Thick success border</div> <div class="p-3 mb-3 shadow-sm">.shadow-sm - Small shadow</div> <div class="p-3 mb-3 shadow">.shadow - Regular shadow</div> </div> <div class="demo-section"> <h3>Display & Visibility Utilities</h3> <p class="text-muted">Control element display and responsive visibility</p> <div class="d-inline p-2 bg-primary text-white">d-inline - Inline display</div> <div class="d-inline p-2 bg-dark text-white">d-inline - Another inline element</div> <div class="d-block p-2 bg-success text-white">d-block - Block display</div> <div class="d-none d-md-block p-2 bg-warning text-dark">Visible only on medium screens and up</div> </div> </div> </body> </html>
Quick Start Guide
CDN Method (Easiest)
<!-- CSS Only --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- Complete Bundle (CSS + JS) --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
Package Manager (npm)
# Install via npm npm install bootstrap@5.3.0 # Import in your JavaScript import 'bootstrap/dist/css/bootstrap.min.css'; import 'bootstrap/dist/js/bootstrap.bundle.min.js'; // Or import specific components import { Modal, Toast } from 'bootstrap';
Best Practices
✅ Do This
- Mobile-first approach - Start with mobile design
- Use utility classes - Leverage built-in spacing and styling
- Semantic HTML - Maintain proper document structure
- Customize with SASS - Use variables for theming
- Responsive images - Use img-fluid class
❌ Avoid This
- Overriding core styles - Use customization methods instead
- Ignoring breakpoints - Always consider responsive behavior
- Deep nesting - Keep grid structures simple
- Forgetting JavaScript - Some components require JS
- Inline styles - Use utility classes instead
Ready to Build with Bootstrap?
Start creating beautiful, responsive websites with the world's most popular CSS framework.