⟵   Back to posts

Menguasai CSS Variables: Variables yang Mengubah Cara Kita Styling

CSS Variables atau CSS Custom Properties adalah fitur yang sering underrated padahal sangat powerful. Dengan CSS Variables, Anda bisa membuat kode yang lebih maintainable, themeable, dan mudah diubah-ubah. Mari kita深入探讨 fitur amazing ini!

Apa itu CSS Variables?

CSS Variables adalah nilai yang dapat digunakan kembali di seluruh stylesheet. Mereka didefinisikan dengan double dash (--) dan diakses menggunakan fungsi var().

:root {
  --primary-color: #3b82f6;
  --secondary-color: #10b981;
  --spacing-unit: 8px;
}

Dasar-Dasar Penggunaan

Mendefinisikan dan menggunakan CSS Variables sangat mudah:

/* Mendefinisikan */
:root {
  --font-primary: 'Inter', sans-serif;
  --container-width: 1200px;
}

/* Menggunakan */
body {
  font-family: var(--font-primary);
}

.container {
  max-width: var(--container-width);
}

Fallback Values

Salah satu fitur awesome dari CSS Variables adalah kemampuan memberikan fallback value:

/* Jika --text-color tidak ada, gunakan blue */
p {
  color: var(--text-color, blue);
}

Theming dengan CSS Variables

CSS Variables sempurna untuk membuat dark mode atau theme switching:

:root {
  --bg-color: #ffffff;
  --text-color: #1f2937;
  --card-bg: #f3f4f6;
}

/* Dark Mode */
[data-theme="dark"] {
  --bg-color: #1f2937;
  --text-color: #f9fafb;
  --card-bg: #374151;
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

/* Toggle theme dengan JavaScript */
document.documentElement.setAttribute('data-theme', 'dark');

Menggunakan dalam JavaScript

Anda dapat membaca dan mengubah CSS Variables secara dinamis:

// Membaca nilai
const primaryColor = getComputedStyle(document.documentElement)
  .getPropertyValue('--primary-color').trim();

// Mengubah nilai
document.documentElement.style.setProperty('--primary-color', '#ff0000');

Responsive Design dengan CSS Variables

Buat layout yang responsif dengan mudah:

:root {
  --container-padding: 16px;
  --font-size-base: 16px;
}

@media (min-width: 768px) {
  :root {
    --container-padding: 24px;
    --font-size-base: 18px;
  }
}

.container {
  padding: var(--container-padding);
}

body {
  font-size: var(--font-size-base);
}

Architecture yang Baik

Gunakan naming convention yang konsisten:

:root {
  /* Colors - Brand */
  --color-primary: #3b82f6;
  --color-primary-hover: #2563eb;

  /* Colors - Neutral */
  --color-gray-100: #f3f4f6;
  --color-gray-200: #e5e7eb;
  --color-gray-800: #1f2937;

  /* Spacing */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;

  /* Typography */
  --font-sans: 'Inter', sans-serif;
  --font-serif: 'Merriweather', serif;
}

Keuntungan Menggunakan CSS Variables

  1. Maintainability - Ubah nilai di satu tempat, apply di seluruh stylesheet
  2. Themeability - Mudah switch antar theme
  3. Dynamic - Dapat diubah via JavaScript
  4. Readability - Kode lebih mudah dibaca dengan nama yang meaningful
  5. Responsive - Nilai berbeda untuk breakpoint berbeda

Kesimpulan

CSS Variables adalah game-changer dalam cara kita menulis CSS. Dengan memahami dan mengimplementasikan CSS Variables dengan baik, Anda akan membuat kode yang lebih clean, maintainable, dan profesional.

Mulai gunakan CSS Variables hari ini dan rasakan perbedaannya!

Happy coding! 🚀