DEV Community

Cover image for CSS Naming Convention yang Perlu Diketahui dan Kenapa Perlu Digunakan
Yoga Meleniawan Pamungkas
Yoga Meleniawan Pamungkas

Posted on • Edited on

CSS Naming Convention yang Perlu Diketahui dan Kenapa Perlu Digunakan

Image description

Kalau teman-teman pengen bikin website yang keren dan gampang diatur, teman-teman kudu ngerti yang namanya konvensi penamaan CSS. Ini kayak aturan main buat ngasih nama class dan ID di CSS biar kode teman-teman gampang dibaca dan dipelihara. Ada beberapa gaya penamaan yang sering dipake: BEM, OOCSS, SMACSS, dan Atomic CSS. Nih gue jelasin satu-satu dengan bahasa yang asik.

1. BEM (Block, Element, Modifier)
BEM ini pendekatan dari Rusia yang bikin kode teman-teman lebih terstruktur.

  • Block: Ini kayak komponen utama, misal tombol atau menu.
  • Element: Bagian dari block, kayak item di dalam menu.
  • Modifier: Variasi dari block atau element, kayak tombol yang warnanya beda.
<div class="menu">
  <ul class="menu__list">
    <li class="menu__item menu__item--active">Home</li>
    <li class="menu__item">About</li>
    <li class="menu__item">Contact</li>
  </ul>
</div>
Enter fullscreen mode Exit fullscreen mode
.menu { ... }
.menu__list { ... }
.menu__item { ... }
.menu__item--active { ... }

Enter fullscreen mode Exit fullscreen mode

Kenapa Pake Ini:

  • Jelas: Nama-nama class-nya gampang dipahami.
  • Gampang Diatur: Kode lebih terorganisir, jadi kalo mau ubah sesuatu, gak bikin pusing.
  • Bisa Dipake Ulang: Teman-teman bisa pake komponen yang sama di tempat lain tanpa masalah.

2. OOCSS (Object-Oriented CSS)
OOCSS ini kayak OOP di pemrograman, fokusnya ke komponen yang bisa dipake berulang.

  • Memisahkan Struktur dan style: Struktur di satu class, style di class lain.
  • Komponen Reusable: Bikin komponen generik yang bisa dipake di mana aja.

Contoh:

<div class="box box--small color-primary">
  <p class="text">This is a small box with primary color.</p>
</div>
Enter fullscreen mode Exit fullscreen mode
.box { ... }
.box--small { width: 100px; height: 100px; }
.color-primary { background-color: blue; }
.text { ... }
Enter fullscreen mode Exit fullscreen mode

Kenapa Pake Ini:

  • Modular: Teman-teman bisa bikin komponen yang terpisah dan bisa dipake ulang.
  • Gampang Diatur: Mudah buat maintain, karena struktur dan style terpisah.

3. SMACSS (Scalable and Modular Architecture for CSS)
SMACSS ini cara buat ngatur CSS yang fleksibel dengan kategorikan aturan jadi lima: Base, Layout, Module, State, dan Theme.

  • Base: Style dasar buat elemen HTML.
  • Layout: Style buat tata letak utama.
  • Module: Komponen yang bisa dipake ulang.
  • State: Style buat status khusus dari modul.
  • Theme: Variasi tema buat modul atau layout.

Contoh:

<div class="header">
  <h1 class="header__title">Website Title</h1>
  <nav class="header__nav">
    <ul class="nav__list">
      <li class="nav__item">Home</li>
      <li class="nav__item nav__item--active">About</li>
    </ul>
  </nav>
</div>

Enter fullscreen mode Exit fullscreen mode
.header { ... }
.header__title { ... }
.header__nav { ... }
.nav__list { ... }
.nav__item { ... }
.nav__item--active { ... }

Enter fullscreen mode Exit fullscreen mode

Kenapa Pake Ini:

  • Skalabilitas: Kode tetap rapi walau proyek gede.
  • Modular: Bikin komponen yang bisa dipake ulang dengan aturan jelas.

4. Atomic CSS
Atomic CSS ini setiap class cuma punya satu properti CSS, kayak utility-first CSS.

Contoh:

<div class="d-flex justify-center align-items-center p-2">
  <p class="text-center font-bold">Hello, world!</p>
</div>

Enter fullscreen mode Exit fullscreen mode
.d-flex { display: flex; }
.justify-center { justify-content: center; }
.align-items-center { align-items: center; }
.p-2 { padding: 0.5rem; }
.text-center { text-align: center; }
.font-bold { font-weight: bold; }

Enter fullscreen mode Exit fullscreen mode

Kenapa Pake Ini:

  • Konsisten: Utility classes bikin gaya yang sama di seluruh proyek.
  • Cepat: Teman-teman bisa cepat apply gaya tanpa nulis CSS baru.

Kesimpulan
Pake CSS Naming Conventions itu penting biar kode teman-teman rapi dan gampang diatur. Mau pake BEM, OOCSS, SMACSS, atau Atomic CSS, tergantung kebutuhan proyek teman-teman. Yang jelas, dengan penamaan yang konsisten, teman-teman bakal lebih mudah maintain dan ngembangin website teman-teman. Jadi, mulai sekarang coba deh ikutin salah satu konvensi ini, pasti bakal kerasa bedanya! Sampai bertemu di artikel yang lain!!

Top comments (0)