Tips Menulis CSS seperti Profesional

Salah satu masalah terbesar dengan pemrograman adalah maintenance atau pemeliharaan. Dalam skenario sebenarnya, seorang programmer pro tidak selalu memulai pengembangan proyek dari awal. Sebagian besar, mereka mendapatkan (atau mengambil) proyek yang mungkin telah ditulis sebelumnya atau biasa kita sebut dengan template.

Untuk bekerja secara efektif pada suatu proyek, pertama-tama kita harus memahami kode sumbernya. Pada titik ini, kita harus menyadari pentingnya kode yang bersih dalam suatu template. Sebagai programmer, kita harus mencoba menulis kode kita sebersih mungkin.

Hal ini juga berlaku untuk CSS. Ada beberapa poin yang perlu kita perhatikan saat menulis CSS. Dalam posting ini, saya ingin berbagi beberapa yang paling penting dengan Anda. Saya yakin beberapa tips ini akan membantu Anda meningkatkan kualitas kode CSS Anda dan layak disebut sebaga desainer pro.

Jadi mari kita mulai...

Gunakan Reset CSS

Setiap browser dilengkapi dengan gaya default masing-masing untuk setiap halaman. Ini menyebabkan halaman tampil berbeda dari browser ke browser.

Tujuan dari reset CSS adalah untuk mengurangi jenis ketidakkonsistenan permasalahan tersebut. Reset CSS akan mengatur ulang nilai elemen seperti tinggi garis default, margin dan ukuran font judul, dan sebagainya.

Berikut adalah contoh reset CSS yang dapat digunakan:

/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

Gunakan CSS Variable

Variabel CSS juga dikenal sebagai properti khusus yang dapat digunakan kembali di seluruh dokumen. Situs kompleks memiliki banyak nilai berulang. Misalnya, alih-alih menggunakan warna yang sama berulang kali, Anda dapat menetapkannya ke variabel CSS.

Dengan cara ini, saat Anda perlu melakukan perubahan global, hanya ada satu tempat untuk melakukannya.

Contohnya adalah sebagai berikut:

:root{
--body-color:#fdfdfd;
--font-color:#333;
}

Untuk penggunaan dalam CSS gunakan aturan berikut:

body{
background:var(--body-color);
color:var(--font-color);
}

Adapun kegunaannya adalah apabila anda ingin mengubah warna atau gaya CSS yang lain, anda tinggal mengganti yang ada di :root saja, tidak perlu merubah semua CSS yang menggunakan nama yang sama. Sehingga mempersingkat waktu anda dan membuat CSS anda menjadi terlihat seperti profesional.

Gunakan komentar untuk mengatur bagian CSS

Biasanya saat menata CSS, Anda berpindah dari satu bagian halaman ke bagian lain, sambil menulis beberapa baris CSS untuk setiap bagian untuk menatanya. Ini membuat kode Anda terfragmentasi. Lebih mudah untuk menulis pemilih CSS dalam urutan yang sama atau mengelompokkannya dalam satu elemen halaman.

Jadi, pertama Anda memiliki gaya umum, untuk seluruh halaman kemudian Header, Navbar, body dll. Dengan cara ini ketika Anda perlu melakukan perubahan, sangat mudah untuk dengan cepat mencari ke baris yang benar di file CSS Anda.

/***** Header *****/
header{
// CSS anda
}

/***** Aside *****/
aside{
// CSS anda
}

/***** Footer *****/
footer{
// CSS anda
}

Gunakan Prinsip DRY

DRY adalah singkatan dari "Don't Repeat Yourself". Ini merupakan prinsip umum dari pengembangan software dan dapat diterapkan dalam bahasa pemrograman apa pun juga dalam CSS. Seperti namanya, DRY bertujuan untuk menghindari atau mengurangi pengulangan sebanyak mungkin.

Misalnya, kita dapat membuat 3 kelas CSS untuk 3 tombol seperti ini:

.primary-button {
  background: blue;
  color: white;
  border-radius: 5px;
  padding: 10px 20px;
  text-align: center;
  font-size: 16px;
}

.form-button {
  background: green;
  color: white;
  border-radius: 5px;
  padding: 10px 20px;
  text-align: center;
  font-size: 16px;
}

.cancel-button {
  background: red;
  color: white;
  border-radius: 5px;
  padding: 10px 20px;
  text-align: center;
  font-size: 16px;
}

Bisa dilihat kode dengan background kuning terdapat kesamaan, kita dapat menggunakan prinsip DRY dengan menulis aturan umum "satu kali" di class CSS tambahan dan aturan lain dalam CSS lain. Maka jadilah seperti ini:

.button {
  color: white;
  border-radius: 5px;
  padding: 10px 20px;
  text-align: center;
  font-size: 16px;
}

.primary-button {
  background: blue;
}

.form-button {
  background: green;
}

.cancel-button {
  background: red;
}

Seperti yang dapat kita lihat, penerapan prinsip DRY menghindari pengulangan, mengurangi jumlah baris, dan meningkatkan keterbacaan serta kelancaran kinerja.

Penamaan

Memberi nama CSS selector adalah aspek penting lainnya dalam menulis CSS yang lebih baik. Nama pemilih harus deskriptif dan dapat dibaca dengan jelas.

// PENAMAAN YANG BURUK
.p {
  // Rules
}

.myFirstForm {
  // Rules
}

Normalnya ada tag HTML <p> yang menjadi singkatan dari paragraf. Di atas kita tidak bisa benar-benar memahami apa class p itu. Hindari juga nama seperti myFirstForm dan saya tidak merekomendasikan penggunaan huruf besar kecil yang bercampur.

Sebagai gantinya, gunakan nama deklaratif (dipisahkan dengan tanda hubung jika ada banyak nama). Seperti contoh dibawah ini:

// PENAMAAN YANG BAGUS

.article-paragraph {
  // Rules
}

.contact-form {
  // Rules
}

Saya pikir nama-nama itu lebih masuk akal sekarang.

Memberi nama sesuatu dalam pemrograman tidaklah mudah, tetapi ada berbagai konvensi penamaan yang dapat Anda gunakan dalam proyek Anda. Salah satunya adalah BEM (Block Element Modifier). Anda dapat mempelajarinya disini.

Gunakan Singkatan

Beberapa properti CSS seperti paddings, margins, fonts dan border dapat ditulis dengan cara yang jauh lebih sederhana dengan singkatan. Karena dengan begitu akan membantu mengurangi garis aturan CSS, jadi CSS anda menjadi lebih bersih, yang otomatis mempercepat loading.

Jadi jika tanpa singkatan, class CSS akan terlihat seperti ini:

.article-container {
  padding-top: 10px;
  padding-bottom: 20px;
  padding-left: 15px;
  padding-right: 15px;
  margin-top: 10px;
  margin-bottom: 10px;
  margin-left: 15px;
  margin-right: 15px;
  border-width: 1px;
  border-style: solid:
  border-color: black;
}

Dan setelah disingkat akan menjadi seperti ini:

.article-container {
  padding: 10px 15px 20px 15px;
  margin: 10px 15px;
  border: 1px solid black;
}

Untuk mempelajari lebih lanjut tentang penyingkatan CSS silakan klik disini.

Jangan gunakan penamaan Warna (Named colors)

Gunakan kode hex untuk warna Anda. Lebih sulit untuk dibaca tetapi mereka memiliki beberapa keuntungan. Pertama mereka diberikan lebih cepat daripada menggunakan nama warna. Kedua, browser terkadang tidak setuju dengan arti beberapa nama warna. Ketiga Anda memiliki 16.777.216 pilihan warna untuk dipilih. Juga akan lebih mudah untuk mengatasinya setelah Anda mulai bermain dengan Javascript.

Contoh penggunaan warna adalah sebagai berikut:

// Gunakan kode hex
body{
background-color:#f50000;
}

//Jangan gunakan named colors
body{
background-color:red;
}

Jangan gunakan inline-styles

Terdapat beberapa argumen di web tentang hal ini: beberapa mengatakan kepada Anda untuk tidak pernah menggunakan inline styles, sementara yang lain berpendapat bahwa ini berguna dalam beberapa kasus.

Menurut pendapat saya, praktik terbaik sebenarnya adalah tidak menggunakan inline styles. Saya akan fokus di sini tentang mengapa kita tidak boleh melakukannya.

Menurut prinsip separation of concerns, desain (CSS), konten (HTML), dan logika (JavaScript) harus dipisahkan karena alasan seperti keterbacaan dan pemeliharaan yang lebih baik.

Menyertakan inline styles atau CSS di dalam tag HTML adalah hal yang melanggar aturan ini, seperti contoh dibawah:

<div style="font-size: 16px; color: red;">Some Text</div>

Masalah lainnya dalam menggunakan inline styles adalah kita sulit untuk mencarinya ketika ingin merubah gaya CSS. Misalnya, ketika kita akan mengubah ubah ukuran font teks di halaman web. Untuk melakukan itu, hal yang paling memudahkan adalah pertama-tama kita menemukan bagian tertentu di browser tempat perubahan diperlukan dengan melihat struktur HTML, contoh seperti di bawah.

<div class="text-bold">Some Text</div>

Kemudian kita hanya perlu menemukan selector dalam tag tersebut. Lalu, kita pergi ke class itu dan membuat perubahan:

.text-bold {
  font-size: 16px;    // change the font-size to 14px
  font-weight: bold;
}

Sesimpel itu.

Namun beda kasus jika kita menggunakan inline styles. Hal tersebut akan memakan banyak waktu kita untuk mencari dan menemukan.

Kurangi Ukuran File CSS

File CSS yang lebih kecil berarti pemuatan halaman yang lebih cepat dan pengalaman pengguna yang lebih baik. Pertama, Anda harus menghapus kode yang tidak perlu. Untuk melakukan ini, periksa kode CSS yang berlebihan atau duplikat menggunakan alat seperti ini: http://unused-css.com/

Kecilkan juga ukuran file css dengan menggunakan kompresor css. Ada banyak. Salah satu favorit saya adalah minifier CSS: http://www.csscompressor.net/

Periksa di CSS Validator

Meskipun halaman Anda dimuat dengan benar di browser Anda, halaman tersebut mungkin muncul secara tidak terduga di browser lain. Atau mungkin ada bug yang tidak muncul di browser Anda. 

CSS Validator akan memeriksa kesalahan atau bug pada CSS Anda dan memastikan kompatibilitas lintas platform, lintas browser, dan di masa mendatang. Pilihan saya adalah https://jigsaw.w3.org/css-validator/

Demikan yang dapat saya bagikan mengenai cara menulis CSS seperti profesional, semoga bermanfaat. Terima kasih telah mengunjungi blog agung jaka nugraha. Wassalam!