7.9 KiB
Sistem Desain Terinspirasi dari GitHub
Category: Alat Pengembang Platform berorientasi kode. Kepadatan fungsional, presisi biru-di-atas-putih, fondasi Primer.
1. Tema Visual & Atmosfer
Tampilan GitHub dirancang secara teknis, bukan sekadar dekoratif. Setiap piksel menegaskan sebuah sikap: ini adalah alat bagi orang-orang yang peduli pada diff, build, dan pull request. Latar belakang halaman adalah #ffffff yang bersih (mode terang) atau #0d1117 (mode gelap), dengan konten yang tersusun pada panel persegi padat yang dipisahkan oleh garis batas tipis alih-alih ruang kosong. Kepadatan informasi adalah mereknya — baris daftar, baris kode, header repositori, dan kartu notifikasi semuanya tersusun rapat sehingga pengguna mahir dapat memindai ratusan item tanpa menggulir.
Aksen khas adalah biru Primer (#0969da) untuk tautan dan aksi utama, serta hijau GitHub (#1a7f37) untuk status merged, keberhasilan, dan tombol merge itu sendiri. Keduanya terasa sedikit redup dibandingkan biru dan hijau produk konsumen — cukup jenuh untuk terbaca di atas teks abu-abu yang padat, namun cukup tenang untuk menyatu dengan latar belakang ketika beberapa warna muncul dalam satu viewport.
Tipografi menggunakan tumpukan system-ui di seluruh produk sehingga teks dirender dengan tajam di setiap sistem operasi, dipasangkan dengan SFMono / Menlo / Consolas untuk kode. Tidak ada font display editorial; suara GitHub adalah suara sistem yang sudah Anda gunakan.
Karakteristik Utama:
- Kanvas putih murni (
#ffffff) atau hitam biru tua (#0d1117) — tanpa kehangatan, tanpa warna tint - Garis batas abu-abu tipis (
#d0d7de) mendefinisikan setiap panel dan bagian - Biru Primer (
#0969da) untuk tautan/aksi utama; hijau GitHub (#1a7f37) untuk keberhasilan/merge - system-ui untuk prosa; SFMono untuk kode — tanpa typeface kustom
- Baris daftar padat dengan padding minimal; ruang putih jarang digunakan
- Ikonografi Octicon pada 16px / 24px — goresan tunggal, geometris, konsisten
- Lencana status berbentuk pil dengan semantik warna yang kuat
2. Palet Warna & Perannya
Utama
- Canvas Default (
#ffffff): Latar belakang halaman utama, tema terang. - Canvas Subtle (
#f6f8fa): Permukaan sekunder, sidebar, latar belakang input, strip header. - Canvas Inset (
#eaeef2): Latar belakang blok kode, permukaan terbenam. - Fg Default (
#1f2328): Teks utama, judul, tinta. - Fg Muted (
#656d76): Teks sekunder, keterangan, jalur file.
Aksen Merek
- Primer Blue (
#0969da): Tautan, CTA utama, dasar cincin fokus — warna interaktif universal. - Primer Blue Hover (
#0550ae): Hover/ditekan untuk biru utama. - Accent Subtle (
#ddf4ff): Permukaan biru lembut untuk callout, spanduk info.
Semantik
- Success / Merge Green (
#1a7f37): PR yang di-merge, lencana keberhasilan, tombol merge. - Success Subtle (
#dafbe1): Tint permukaan keberhasilan. - Open Green (
#1a7f37): Status issue/PR "Terbuka". - Closed / Danger Red (
#cf222e): PR tertutup, aksi destruktif, kesalahan validasi. - Danger Subtle (
#ffebe9): Permukaan spanduk kesalahan. - Attention / Warning Yellow (
#9a6700): Teks peringatan di atas permukaan amber. - Attention Subtle (
#fff8c5): Permukaan spanduk peringatan. - Done Purple (
#8250df): Merged-dan-diarsipkan, status "selesai", lencana premium. - Sponsor Pink (
#bf3989): Ikon hati sponsor, merek GitHub Sponsors.
Border & Pemisah
- Border Default (
#d0d7de): Garis batas tipis standar, garis luar panel. - Border Muted (
#d8dee4): Pemisah dalam di dalam panel. - Border Subtle (
#eaeef2): Pemisah baris tabel yang samar.
Tema Gelap
- Dark Canvas (
#0d1117): Latar belakang halaman gelap. - Dark Surface (
#161b22): Sidebar, header, permukaan sekunder. - Dark Border (
#30363d): Garis batas mode gelap standar. - Dark Fg (
#e6edf3): Teks utama di atas latar gelap.
3. Aturan Tipografi
Keluarga Font
- Body / UI:
-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif - Code / Mono:
ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace - Emoji:
"Apple Color Emoji", "Segoe UI Emoji"
Hierarki
| Peran | Font | Ukuran | Ketebalan | Tinggi Baris | Spasi Huruf | Catatan |
|---|---|---|---|---|---|---|
| Display | system-ui | 32px (2rem) | 600 | 1.25 | -0.01em | Header repo, hero pemasaran |
| H1 | system-ui | 24px (1.5rem) | 600 | 1.25 | normal | Judul halaman |
| H2 | system-ui | 20px (1.25rem) | 600 | 1.25 | normal | Judul bagian |
| H3 | system-ui | 16px (1rem) | 600 | 1.25 | normal | Sub-bagian, header panel |
| Body | system-ui | 14px (0.875rem) | 400 | 1.5 | normal | Ukuran teks default — bukan 16px |
| Body Small | system-ui | 12px (0.75rem) | 400 | 1.4 | normal | Keterangan, metadata file |
| Code | SFMono | 12px (0.75rem) | 400 | 1.45 | normal | Blok kode, diff |
| Code Inline | SFMono | 0.85em | 400 | inherit | normal | Span code inline |
Prinsip
- Body 14px, bukan 16px: Kepadatan prosa GitHub adalah identitasnya. Produk dibaca pada 14px untuk muat lebih banyak baris dalam satu viewport.
- Ketebalan biner: 400 untuk segalanya secara default; 600 untuk judul dan penekanan. Tidak ada 500, tidak ada 700.
- Font sistem selalu: jangan muat webfont untuk antarmuka — teks harus dirender seketika pada koneksi lambat.
4. Gaya Komponen
Tombol
Utama (Hijau)
- Background:
#1f883d - Teks:
#ffffff - Border: 1px solid
rgba(31, 35, 40, 0.15) - Padding: 5px 16px
- Radius: 6px
- Shadow:
0 1px 0 rgba(31,35,40,0.1) - Hover: background
#1a7f37 - Penggunaan: "Buat repositori", "Merge pull request"
Default
- Background:
#f6f8fa - Teks:
#1f2328 - Border: 1px solid
#d0d7de - Padding: 5px 16px
- Radius: 6px
- Hover: background
#f3f4f6, border#d0d7de
Outline (Gaya Tautan Biru)
- Background:
#ffffff - Teks:
#0969da - Border: 1px solid
#d0d7de - Hover: background
#0969da, teks#ffffff
Bahaya
- Background:
#ffffff - Teks:
#cf222e - Border: 1px solid
#d0d7de - Hover: background
#a40e26, teks#ffffff, border#a40e26
Kartu / Kotak
- Background:
#ffffff - Border: 1px solid
#d0d7de - Radius: 6px
- Padding: 16px (header) + 16px (body)
- Header memiliki strip
#f6f8fadengan border bawah.
Input
- Background:
#ffffff - Border: 1px solid
#d0d7de - Radius: 6px
- Padding: 5px 12px
- Fokus: border
#0969da, ring0 0 0 3px rgba(9,105,218,0.3)
Pil Status (Issue / PR)
- Terbuka: background
#1a7f37, teks putih, padding 4px 10px, radius 9999px. - Tertutup: background
#cf222e, teks putih. - Merged: background
#8250df, teks putih. - Draf: background
#6e7781, teks putih.
Label (Tag pada Issue/PR)
- Padding: 0 7px
- Radius: 9999px
- Font: 12px / 500
- Background dan teks bersifat programatik (warna label → teks dihitung untuk kontras).
5. Spasi & Tata Letak
- Unit dasar: 4px. Skala spasi: 4, 8, 12, 16, 24, 32, 40, 48.
- Lebar maksimum halaman: 1280px (
Container-xl). - Sidebar: 296px di desktop, mengecil di bawah 1012px.
- Padding baris: 16px horizontal, 12px vertikal (daftar padat berdasarkan desain).
6. Gerakan
- Durasi: 80ms untuk hover; 200ms untuk membuka menu/popover.
- Easing:
ease-outuntuk membuka,ease-inuntuk menutup. - Dihindari: animasi saat halaman dimuat, parallax, micro-interaksi persisten. Elemen muncul; tidak tampil berlebihan.
7. Batasan Penggunaan
- Pertahankan daftar padat, kotak berbatas, dan tipografi sistem secara bersamaan; tombol hijau yang berdiri sendiri tidak cukup untuk menciptakan tampilan produk seperti GitHub.
- Gunakan hijau untuk aksi repositori yang konstruktif, biru untuk tautan dan fokus, serta merah/ungu/abu-abu hanya untuk status issue, PR, dan workflow.
- Utamakan antarmuka yang tenang, border yang eksplisit, dan spasi yang kompak dibandingkan bayangan dekoratif atau kartu bergaya pemasaran yang besar.