🎨 Panduan penulisan tema
Pelajari skema JSON tema ForcedSkin dan aturan field palet — rancang palet untuk situs apa pun dan kirim ke komunitas.
Mulai cepat
Pilih mode
Tentukan apakah tema berjalan dalam light (palet terang) atau dark (palet gelap).
Isi warna
Ikuti spesifikasi field di bawah — setidaknya semua kunci wajib harus ada di JSON Anda.
Kirim untuk ditinjau
Di halaman Tema klik “Kirim tema”. Admin menyetujui sebelum tampil untuk semua orang.
Field warna
Semua entri palet harus berupa string hex (#RRGGBB) atau nilai CSS rgba(...).
backgroundWajibLatar halaman utama — tema terang dekat putih, tema gelap dekat netral dalam. Variabel CSS: --color-background
Contoh: #F8FFF8 / #101410
foregroundWajibTeks utama — kontras yang mudah dibaca terhadap latar. Variabel CSS: --color-foreground
Contoh: #2C3E2C / #E0E0E0
surfaceWajibIsian kartu/panel/kontainer — sedikit terangkat dari latar. Variabel CSS: --color-surface
Contoh: #F0FFF0 / #1E221E
surfaceMutedOpsionalHover redup / sub-kontainer selangkah dari surface. Variabel CSS: --color-surface-muted
Contoh: #F5FDF5 / #161816
borderWajibGaris tipis & pemisah — biasanya abu saturasi rendah / nada semi-transparan. Variabel CSS: --color-border
Contoh: #D8E8D8 / #333633
mutedWajibTeks sekunder & placeholder. Variabel CSS: --color-muted
Contoh: #6C7E6C / #A0A0A0
primaryWajibTangga merek utama untuk tombol/tautan/fokus — bisa satu warna atau tangga (50–950). Minimal nuansa 500/600/700. Dipetakan ke variabel CSS --color-primary- plus token nuansa (50–950)
Contoh: { "500": "#4CAF50", "600": "#43A047", "700": "#388E3C" }
secondaryOpsionalTangga aksen sekunder untuk chip/tombol ghost — strukturnya sama dengan primary — dipetakan ke --color-secondary- plus token nuansa
Contoh: { "500": "#AAA", ... }
accentOpsionalSorotan, lencana, warna spotlight — strukturnya sama dengan primary — dipetakan ke --color-accent- plus token nuansa
Contoh: { "500": "#FFEB3B", ... }
varsOpsionalProperti kustom CSS bebas — kunci tanpa “--”; nilai diterapkan apa adanya pada :root
Contoh: { "custom-radius": "8px" }
Tangga warna
Kunci JSON primary, secondary, dan accent masing-masing menerima salah satu gaya penulisan di bawah:
Ringkas (tiga nuansa inti)
{
"primary": {
"500": "#4CAF50",
"600": "#43A047",
"700": "#388E3C"
}
}Mesin menjadikan nuansa 500 sebagai hue default; 600/700 untuk hover/aktif.
Tangga penuh (50 → 950, sebelas titik)
{
"primary": {
"50": "#E8F5E9",
"100": "#C8E6C9",
...
"500": "#4CAF50",
...
"950": "#0F3D12"
}
}Memublikasikan tangga lengkap menghasilkan transisi tonal yang lebih halus di mana-mana.
Contoh lengkap
🌿 Contoh terang (light-mint)
{
"background": "#F8FFF8",
"foreground": "#2C3E2C",
"surface": "#F0FFF0",
"surfaceMuted": "#F5FDF5",
"border": "#D8E8D8",
"muted": "#6C7E6C",
"primary": {
"50": "#E8F5E9",
"100": "#C8E6C9",
"200": "#A5D6A7",
"300": "#81C784",
"400": "#66BB6A",
"500": "#4CAF50",
"600": "#43A047",
"700": "#388E3C",
"800": "#2E7D32",
"900": "#1B5E20",
"950": "#0F3D12"
},
"secondary": {
"500": "#AAAAAA",
"600": "#999999",
"700": "#777777"
},
"accent": {
"500": "#FFEB3B",
"600": "#FDD835",
"700": "#FBC02D"
}
}🌑 Contoh gelap (dark-forest)
{
"background": "#101410",
"foreground": "#E0E0E0",
"surface": "#1E221E",
"surfaceMuted": "#161816",
"border": "#333633",
"muted": "#A0A0A0",
"primary": {
"500": "#4A9B6B",
"600": "#3F855C",
"700": "#346F4D"
}
}Variabel kustom (vars)
Jika token default kurang, tambahkan variabel CSS extra di bawah node vars — hilangkan awalan -- pada setiap kunci.
{
"background": "#101010",
"foreground": "#E0E0E0",
...
"vars": {
"radius-card": "16px",
"shadow-card": "0 2px 12px rgba(0,0,0,0.4)"
}
}Aturan slug (name)
- Hanya huruf ASCII kecil, angka, dan tanda hubung (
a-z 0-9 -). - Utamakan pasangan ringkas “mode-gaya” seperti “dark-ocean” atau “light-sakura”.
- Slug harus unik secara global — tidak dapat diubah setelah dipublikasikan, jadi periksa ulang sebelumnya.
- Panjang maksimum 50 karakter.
Pengiriman & tinjauan
🔐 Masuk sebelum mengirim.
⏳ Kiriman masuk antrean tinjauan — tim biasanya merespons dalam 1–3 hari kerja.
✅ Tema yang disetujui muncul di toko agar semua orang bisa memfavoritkannya.
❌ Warna tidak valid, nama bentrok, atau pelanggaran kebijakan akan ditolak — hapus dan kirim versi yang diperbaiki.
🚫 Tidak ada kode berbahaya, konten kebencian, atau palet yang jelas melanggar hak.
Siap? Buka toko tema dan publikasikan palet Anda.
🎨 Kirim tema