๐ŸŽจ Phase 2 โ€” CSS
P09 ยท Pertemuan 9 dari 20

Warna, Tipografi & Unit CSS

Menerapkan sistem warna, CSS Variables, Google Fonts, dan berbagai unit CSS untuk membangun desain yang konsisten dan responsif.

Phase
Phase 2 โ€” CSS
Topik
CSS Fundamentals
Durasi
90 Menit
Deadline Tugas
Sebelum Pertemuan Berikutnya โ€” Pukul 23.59 WIB
๐ŸŽฏTujuan Pembelajaran
  • 01Menggunakan warna: nama, hex (#), rgb(), rgba(), hsl()
  • 02Membuat CSS Variables (custom properties) dengan :root
  • 03Mengatur properti font: family, size, weight, style, line-height, letter-spacing
  • 04Mengintegrasikan Google Fonts ke halaman
  • 05Memahami unit CSS: px, em, rem, %, vh, vw
  • 06Membedakan web-safe fonts vs custom fonts
๐Ÿ“–Sub-topik & Materi
  • 01Format warna: nama, hex (#RRGGBB), rgb(), rgba(), hsl()
  • 02CSS Variables: --nama-variable dan var(--nama-variable)
  • 03Properti tipografi: font-family, font-size, font-weight, line-height, letter-spacing
  • 04Google Fonts: @import atau <link> di HTML
  • 05Unit CSS: px (absolut), em (relatif ke parent), rem (relatif ke root), %, vh, vw
  • 06Web-safe fonts vs custom fonts (Google Fonts, dll)
๐Ÿ’กPenjelasan Konsep
Konsep 1
CSS Variables (Custom Properties)
CSS Variables dideklarasikan dengan awalan dua strip (--) di dalam selector :root agar berlaku global. Gunakan var(--nama-variable) untuk memakainya. Keuntungan: ubah satu nilai di :root, semua elemen yang menggunakannya berubah sekaligus โ€” sangat efisien untuk sistem warna dan spacing.
css
/* Deklarasi di: root (berlaku global) */
: root {
  --color-primary: #3B82F6;
  --color-secondary: #8B5CF6;
  --color-text: #1F2937;
  --color-bg: #F9FAFB;
  --font-heading: 'Poppins', sans-serif;
  --font-body: 'Inter', sans-serif;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 32px;
  --radius: 8px;
}

/* Pemakaian */
h1 { font-family: var(--font-heading); color: var(--color-primary); }
.card { padding: var(--spacing-md); border-radius: var(--radius); }
Konsep 2
Google Fonts โ€” Import dan Pakai
Google Fonts adalah layanan font gratis dari Google. Buka fonts.google.com โ†’ pilih font โ†’ klik "Get embed code" โ†’ copy tag <link> ke <head> HTML. Untuk performa terbaik, pilih maksimal 2 font family dan hanya weight yang kamu butuhkan (misal: 400 untuk regular, 600 untuk semibold, 700 untuk bold).
html
<!-- Di HTML <head> -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&family=Inter:wght@400;500&display=swap" rel="stylesheet">

/* Di CSS */
:root {
  --font-heading: 'Poppins', sans-serif;
  --font-body: 'Inter', sans-serif;
}

body { font-family: var(--font-body); }
h1, h2, h3 { font-family: var(--font-heading); }
Konsep 3
Unit CSS: px, rem, em, %, vw/vh
px adalah ukuran absolut. rem relatif terhadap font-size root (html) โ€” sangat disarankan untuk ukuran font dan spacing. em relatif terhadap font-size elemen parent. % relatif terhadap ukuran parent. vw/vh relatif terhadap ukuran viewport (layar). Gunakan rem untuk konsistensi, % dan vw/vh untuk layout responsif.
css
html { font-size: 16px; } /* 1rem = 16px */

body {
  font-size: 1rem;      /* 16px */
  line-height: 1.6;     /* tanpa unit: relatif ke font-size */
}

h1 { font-size: 2.5rem; }   /* 40px */
h2 { font-size: 2rem; }     /* 32px */
p { font-size: 1rem; }     /* 16px */

.hero {
  height: 100vh;       /* penuh tinggi layar */
  width: 100%;         /* penuh lebar parent */
  padding: 2rem;       /* 32px di semua sisi */
}
๐Ÿ’ปContoh Kode Lengkap
css
/* === CSS Variables (Custom Properties) === */
: root {
  --color-primary: #1A4A8A;
  --color-accent: #F4A300;
  --color-text: #333333;
  --color-bg: #F8F9FA;
  --font-heading: 'Syne', sans-serif;
  --font-body: 'Inter', sans-serif;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 32px;
}

/* === Google Fonts === */
@import url('https: //fonts.googleapis.com/css2?family=Inter:wght@300;400;700&family=Syne: wght@700;800&display=swap');

/* === Penggunaan === */
body {
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  font-size: 1rem;    /* 16px */
  line-height: 1.6;
}
h1 {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 5vw, 3.5rem); /* Responsif! */
  color: var(--color-primary);
}
โšกLatihan Kelas ยท Terapkan Google Fonts, CSS Variables untuk palet warna, dan atur tipografi halaman
1
Pilih 2 Google Fonts (1 untuk heading, 1 untuk body) dan import
2
Definisikan minimal 6 CSS Variables di :root (warna + font + spacing)
3
Terapkan typographic scale: h1 > h2 > h3 > p dengan ukuran proporsional
4
Gunakan unit rem untuk font-size (bukan px)
5
Ubah 1 warna di :root โ€” lihat bagaimana seluruh halaman ikut berubah
๐Ÿ“ Tugas 3.2 โ€” Tipografi & Warna
โฐ Deadline: Sebelum Pertemuan Berikutnya โ€” Pukul 23.59 WIB

Redesign halaman artikel (P02) dengan: Google Fonts (min. 2 jenis), CSS Variables (min. 6 variable), typographic scale konsisten (h1-h6 + p), dan palet warna harmonis. Semua warna dan font harus menggunakan variables.

Kriteria PenilaianPoin
Minimal 6 CSS Variables di :root dan digunakan konsisten25
Google Fonts terpakai dan visible perbedaannya25
Typographic scale h1โ€“h6 + p konsisten dan harmonis25
Palet warna konsisten, tidak ada warna hardcode di luar :root25
Total100
โš ๏ธKesalahan yang Sering Dibuat
Menggunakan px untuk semua ukuran โ€” font dalam px tidak mengikuti preferensi aksesibilitas browser
Terlalu banyak font (3+) yang di-import โ€” memperlambat loading halaman secara signifikan
Tidak mendefinisikan CSS Variables di :root โ€” variabel tidak bisa diakses secara global
Typo nama variabel: --colour-primary vs --color-primary โ€” harus persis sama
Mengubah nilai var() langsung di setiap elemen alih-alih di :root โ€” kehilangan manfaat variabel
๐Ÿ’ก Tips Instruktur
Naming convention: --color-primary, --font-heading, --spacing-md
Pilih Google Fonts maksimal 2 family agar halaman tidak lambat
Line-height ideal: 1.5โ€“1.7 untuk teks body
clamp(min, preferred, max) untuk font-size yang responsif otomatis
๐Ÿ“‹ Checklist Belajar
Pahami konsep sebelum latihan
Coba kode sendiri tanpa copy-paste
Kerjakan tugas sebelum deadline
Tanya instruktur jika ada yang belum jelas
Parelabs Academy - Kursus Bahasa Inggris Terbaik Offline & Online