← Kembali ke Blog

CSS Minimalis yang Efektif

Teknik menulis CSS bersih dan efisien tanpa bergantung pada framework utility seperti Tailwind.

CSSWeb DesignFrontend

Di era Tailwind CSS dan CSS-in-JS, menulis CSS "biasa" semakin terasa asing bagi banyak developer. Tapi ada nilai tersendiri dalam memahami CSS secara mendalam — tanpa lapisan abstraksi di atasnya.

Kenapa Tidak Pakai Tailwind Saja?

Tailwind bagus. Saya tidak anti-Tailwind. Tapi ada beberapa situasi di mana CSS custom lebih masuk akal:

  • Project kecil — overhead Tailwind tidak sebanding
  • Kontrol penuh — kamu yang tentukan semua
  • Belajar lebih dalam — memaksa kamu memahami cascade dan specificity

Prinsip Utama

1. Gunakan CSS Custom Properties (Variables)

Alih-alih menyebar nilai hardcoded di mana-mana, centralize semua nilai ke dalam :root:

:root {
  --color-bg: #0e0e0e;
  --color-text: #f0f0f0;
  --color-muted: #888;
  --space-4: 16px;
  --space-8: 32px;
  --radius: 8px;
  --transition: 0.2s ease;
}

Manfaatnya: mengubah satu variabel langsung mempengaruhi semua tempat yang menggunakannya.

2. Desain dengan Skala

Buat skala untuk spacing, font size, dan ukuran lainnya — dan patuhi skala tersebut:

/* Spacing scale */
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-6: 24px;
--space-8: 32px;
--space-12: 48px;

3. Utamakan Layout dengan Grid dan Flexbox

Dua alat ini sudah cukup untuk hampir semua kebutuhan layout modern:

/* Centered container */
.container {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

/* Flexbox untuk perataan sederhana */
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

/* Grid untuk layout dua kolom */
.layout {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 48px;
}

4. Komponen CSS, Bukan Utility Class

Daripada menulis class utility seperti .text-sm, .font-bold, .p-4, lebih baik buat komponen:

/* Bukan ini: */
<div class="text-sm font-mono text-gray-400 border rounded px-3 py-1">

/* Tapi ini: */
.tag {
  font-size: 0.75rem;
  font-family: var(--font-mono);
  color: var(--color-muted);
  border: 1px solid var(--border);
  border-radius: 100px;
  padding: 3px 12px;
}

5. Transisi yang Halus

Tambahkan transisi pada interaksi hover untuk rasa yang lebih premium:

.button {
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.button:hover {
  opacity: 0.8;
  transform: translateY(-1px);
}

Struktur File yang Saya Gunakan

src/
└── app.css
    ├── — Design tokens (variables)
    ├── — Reset & base styles
    ├── — Typography
    ├── — Layout utilities
    ├── — Component styles (card, tag, button)
    └── — Utility classes (minimal)

Satu file besar bisa menjadi masalah jika project berkembang — tapi untuk website personal, ini sudah lebih dari cukup.


CSS minimalis bukan berarti CSS yang fungsional saja. Ini tentang CSS yang disengaja — setiap baris ada alasannya, dan setiap keputusan visual terasa kohesif.

Komentar (0)

Belum ada komentar. Jadilah yang pertama!