Baca-Quran.id

🎨 Sistem Desain

Referensi hidup untuk komponen UI yang dipakai bersama di seluruh aplikasi. Setiap bagian menampilkan tampilan komponen, ragam variannya, dan petunjuk pemakaiannya.

Warna & Token

Token warna inti yang dipakai untuk latar, teks, dan pembatas di seluruh tema.

Token Semantik

bg-primary
bg-secondary
Aa
text-foreground
Aa
text-foreground-secondary

Palet per Tema

Setiap tema memiliki latar dan warna aksen tersendiri. Ganti tema dari ikon di header.

light
bg
fg
#f8fafc #1e293b
dark
bg
fg
#0f172a #f1f5f9
forest
bg
fg
#016A70 #FFF
halloween
bg
fg
#1a1a2e #ff6b35
fall
bg
fg
#92400e #FFF
pinky
bg
fg
#F564A9 #FFF
violet
bg
fg
#a78bfa #FFF
pastel
bg
fg
#ffa4a4 #ffbdbd
neon
bg
fg
#000000 #ffff00

Palet Utilitas

Skala warna utilitas dari Tailwind yang dipakai untuk status (info, sukses, peringatan, error).

blue
green
orange
red
purple
gray

Tipografi

Skala ukuran teks standar serta font Arab khusus untuk ayat Al-Qur'an.

Heading 1 — text-3xl font-bold
Heading 2 — text-2xl font-bold
Heading 3 — text-xl font-bold
Body strong — text-md font-semibold
Body — text-sm
Caption — text-xs opacity-75
بِسْمِ ٱللَّهِ ٱلرَّحْمَٰنِ ٱلرَّحِيمِ
.font-arabic — lpmq font

Tombol

Matriks varian × warna. Pakai varian solid untuk aksi penting, subtle untuk aksi sekunder, outline untuk aksi paling rendah.

Varian × Warna

Setiap kombinasi varian dan warna dapat digunakan sesuai konteks aksi.

primarysecondarysuccesswarningdanger
solid
subtle
outline

Ukuran

Dengan Ikon

Nonaktif

<Button variant="solid | subtle | outline"
        color="primary | secondary | success | warning | danger"
        size="sm | md | lg"
        disabled
        onClick={fn}>...</Button>

Tombol Ikon

Tombol bujur sangkar berukuran tetap untuk aksi cepat tanpa label. Wajib mengisi ariaLabel.

Ukuran

Varian & Warna

Sudut

Nonaktif

<IconButton variant="ghost | subtle | outline | solid"
            color="primary | secondary | success | warning | danger"
            size="xs | sm | md | lg"
            rounded="md | full"
            ariaLabel="…"
            onClick={fn}>
  <Icon size="sm" />
</IconButton>

Badge

Penanda status berukuran kecil. Mendukung matriks varian × warna yang sama dengan tombol.

Varian × Warna

primarysecondarysuccesswarningdanger
solidNewDefaultDoneHoldFail
subtleNewDefaultDoneHoldFail
outlineNewDefaultDoneHoldFail

Ukuran

sm md lg

Dengan Ikon

Terverifikasi 123 Beta
<Badge variant="solid | subtle | outline"
       color="primary | secondary | success | warning | danger"
       size="sm | md | lg">label</Badge>

Chip / Pill

Pelabelan ringkas atau filter yang bisa dipilih. Mendukung varian warna dan keadaan aktif.

Neutral Blue Green Orange Red Purple
size=sm size=md

Chip interaktif — pakai sebagai filter.

Aktif: all

<Chip color="blue" size="md" active onClick={fn}>label</Chip>

Banner / Alert

Pesan inline untuk menyampaikan status atau peringatan. Berbeda dengan toast, banner menetap di tempat.

Informasi
Banner info dipakai untuk pesan netral atau panduan ringan.
Berhasil
Aksi berhasil dijalankan dan datamu sudah tersimpan.
Banner ini bisa ditutup. Klik tombol X di kanan untuk menutupnya.
<Banner type="info | success | warn | error" title="..." dismissible>body</Banner>

Kontrol Form

Input, textarea, checkbox, dan radio dengan label dan pesan kesalahan yang konsisten.

Input

Hanya disimpan di peramban kamu.

Format email tidak valid.

Ukuran

<Input label="..." size="sm | md | lg" bind:value error="..." hint="..." />

Textarea

Maksimal beberapa paragraf.

Ukuran

<Textarea label="..." size="sm | md | lg" rows={4} bind:value />

Checkbox

<Checkbox label="..." bind:checked />

Radio

Terpilih: id

<Radio name="..." value="..." label="..." bind:group />

Collapsible

Wadah yang bisa dibuka-tutup untuk menyembunyikan detail.

  • FAQ dan teks bantuan panjang
  • Tafsir atau catatan kaki
  • Grup pengaturan opsional
<Collapsible title="..." open>content</Collapsible>

Bottom Sheet

Panel yang muncul dari bawah untuk aksi atau detail kontekstual.

<BottomSheet show={open} title="..." onClose={fn}>content</BottomSheet>

Toast

Notifikasi singkat di pojok atas. Mendukung info, sukses, peringatan, dan error.

toast.show({ message: '...', type: 'info | success | warn | error' })

Kartu

Wadah konten dengan latar sekunder dan bayangan lembut.

Varian

filled

Latar sekunder, tanpa bayangan.

outline

Bordir tipis, latar primer.

elevated

Latar sekunder dengan bayangan.

Dengan Header & Footer

Surat Favorit

Sematkan surat agar mudah diakses dari halaman utama.

Pelajari lebih lanjut

Buka detail sistem desain

Kartu yang bisa diklik — render sebagai anchor.

Padding

padding=none
padding=sm
padding=md
padding=lg

Komponen lama

CardShadow masih dipakai di banyak halaman dan kompatibel dengan tata letak yang ada.

CardShadow

Wadah konten generik dengan latar sekunder dan bayangan.

CardShadow (link)

Render sebagai anchor dengan tampilan yang sama.

<Card variant="filled | outline | elevated" padding="none | sm | md | lg" title="..." subtitle="...">
  body
  {#snippet header()}...{/snippet}
  {#snippet footer()}...{/snippet}
</Card>

Ikon

Kumpulan ikon SVG yang dipakai bersama. Semua ikon menerima prop ukuran.

Ukuran

xs
sm
md
lg
xl

Galeri Ikon

Bookmark
BookmarkSolid
Heart
HeartSolid
Share
Copy
Play
Pause
Home
Setting
Search
XMark
CheckCircle
Fire
InformationCircle
ExclamationTriangle
ArrowLeft
ArrowRight
ChevronUp
ChevronDown
<BookmarkIcon size="xs | sm | md | lg | xl" />