Catatan Belajar · · 2 menit baca
Belajar Bootstrap 5: grid, komponen, dan kustomisasi Sass
Tutorial Bootstrap 5: pasang via CDN atau npm, grid 12 kolom mobile-first, komponen interaktif lewat data-bs-* tanpa JavaScript, dan cara kustomisasi yang benar lewat variabel Sass.
Bootstrap 5 adalah jalan tercepat dari nol ke halaman yang rapi: komponen jadi (navbar, modal, card), sistem grid yang teruji, dan tanpa perlu memikirkan desain dari awal. Filosofinya kebalikan dari Tailwind — Bootstrap memberimu komponen siap pakai, Tailwind memberimu bahan mentah. Keduanya layak dikuasai.
1. Instalasi
Jalur tercepat — CDN (untuk belajar & prototipe):
<!doctype html>
<html lang="id">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
</head>
<body>
<h1 class="text-center mt-5">Halo Bootstrap</h1>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Jalur project sungguhan — npm (supaya bisa kustomisasi):
npm install bootstrap
// styles/main.scss
@import "bootstrap/scss/bootstrap";
2. Grid: 12 kolom, mobile-first
<div class="container">
<div class="row g-4">
<div class="col-12 col-md-6 col-lg-4">Kartu 1</div>
<div class="col-12 col-md-6 col-lg-4">Kartu 2</div>
<div class="col-12 col-md-6 col-lg-4">Kartu 3</div>
</div>
</div>
Bacanya: penuh (12/12) di HP, setengah (6/12) mulai tablet, sepertiga (4/12) mulai desktop. g-4 = jarak antar kolom. Ini 80% dari layout Bootstrap.
3. Komponen tanpa menulis JavaScript
Komponen interaktif Bootstrap dikendalikan lewat atribut data-bs-*:
<!-- Tombol yang membuka modal -->
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#konfirmasi">
Hapus Produk
</button>
<div class="modal fade" id="konfirmasi" tabindex="-1">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Yakin?</h5>
<button class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">Produk akan dihapus permanen.</div>
<div class="modal-footer">
<button class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button class="btn btn-danger">Hapus</button>
</div>
</div>
</div>
</div>
Pola yang sama berlaku untuk dropdown, collapse, offcanvas, tooltip — hafalkan satu, paham semua.
4. Kustomisasi lewat Sass, bukan menimpa CSS
Cara yang benar mengubah warna brand — timpa variabelnya sebelum import:
// styles/main.scss
$primary: #0d9488; // ganti biru default jadi teal
$border-radius: 0.25rem;
$font-family-sans-serif: "Inter", system-ui, sans-serif;
@import "bootstrap/scss/bootstrap";
Semua komponen (tombol, link, badge, form focus) mengikuti otomatis. Menimpa .btn-primary { background: ... } di CSS belakangan = perang specificity tanpa akhir — hindari.
Tips dari pengalaman
- Jangan lawan grid — kalau layout terasa sulit, biasanya kamu sedang mencoba sesuatu yang grid 12 kolom tidak dirancang untuknya; pakai flex utilities (
d-flex,justify-content-between) yang juga tersedia. - Situs Bootstrap terlihat “seperti Bootstrap” kalau kamu memakai default-nya mentah — kustomisasi Sass 15 menit (warna, radius, font) langsung menghilangkan kesan template.
- Pilih Bootstrap saat butuh cepat dan tim belum kuat di CSS; pilih Tailwind saat butuh desain yang benar-benar khas. Aku memakai keduanya tergantung project.
Mau fitur seperti ini dibangun untuk bisnismu?