Design System · v2 (responsif) · Beralih ke v1 · Pilih versi

Dasa Design System

PT Dasa Aprilindo Sentosa — system integration & data technology. Diturunkan dari identitas visual daas.co.id: navy korporat, aksen biru & oranye, tipografi Montserrat/DM Sans/Roboto. Token yang sama mendukung tema terang dan gelap.

Warna

Warna brand (navy, biru, oranye) tetap konstan di kedua tema — hanya permukaan (background, surface, border, teks) yang beradaptasi. Coba tombol tema di atas.

Brand (konstan)

navy-ink
#00092C — teks isi utama
navy-heading
#142B4F — heading, nav aktif
blue-500
#086AD8 — aksen primer
blue-400
#378CFF — hover primer
orange-500
#FF5F00 — aksen sekunder / CTA
orange-600
#D94F00 — hover sekunder

Netral — tema terang

gray-800
#333333
gray-500
#777777
gray-400
#999999
gray-100
#E0E0E0
gray-50
#F3F2ED
bg-light
#FFFAF7

Netral — tema gelap (diturunkan dari navy)

navy-950
#05081C — bg gelap
navy-900
#0B1430 — surface gelap
navy-800
#101C3D — surface-muted gelap
navy-700
#1E3159 — border gelap
slate-300
#AEB4C4 — teks sekunder gelap
slate-500
#7C879E — teks tersier gelap

Permukaan & teks semantik (adaptif per tema)

--color-bg
--color-surface
--color-surface-muted
--color-border

Tipografi

Tiga peran font: --font-display (Montserrat) untuk heading & tombol, --font-body (DM Sans) untuk navigasi & UI label, --font-copy (Roboto) untuk paragraf panjang.

H1 · 26-36px (fluid) · 700
Most Reliable Technology
H2 · 20-26px (fluid) · 700
Deliver the best solution
H3 · 17-20px (fluid) · 700
What we deliver
UI label · 14px · 600
Home · Services · About
Body copy · 16px · 400
We help our clients succeed by creating brand identities, digital IT experiences, & print materials.

Tombol

Kartu & Badge

B

Build

End-to-end system integration dan implementasi teknologi data.

Layanan Inti
R

Research

Riset kebutuhan bisnis untuk solusi teknologi yang tepat sasaran.

Strategi
D

Develop

Pengembangan dan manajemen layanan berkelanjutan.

Delivery

Navigasi

Form

Pengelompokan field (fieldset)

Gunakan <fieldset class="fieldset"> dengan <legend> untuk mengelompokkan field yang berkaitan; pembaca layar ikut mengumumkan nama grupnya. Isi grup memakai .field dan .grid seperti biasa.

Data kontak

Dipakai tim kami untuk menghubungi Anda.

Detail proyek

Tata letak form (.form, .form-row, .field--sm)

Form tidak melebar penuh: bungkus dengan .form (atau kartu .card--form), kelompokkan dengan fieldset, sejajarkan field berkaitan dengan .form-row, dan batasi field pendek dengan .field--xs|sm|md.

Data anggota
Pengaturan

Status galat (field--invalid)

Tambahkan field--invalid pada .field agar label, border, dan cincin fokus menjadi merah; letakkan pesan galat di <small>.

Masukkan alamat email yang valid.

Varian

Tanpa kotak (fieldset--plain)
Latar lembut (fieldset--muted)
Dinonaktifkan (atribut disabled)

Semua field di dalam grup ikut nonaktif.

Statistik

70+
Projects Delivered
12+
Years Experience
40+
Clients
98%
Satisfaction

Alert & Notifikasi

Informasi

Pembaruan sistem terjadwal Sabtu, 02.00–04.00 WIB.

Berhasil

Konfigurasi data integrator telah disimpan.

Peringatan

Kuota penyimpanan mendekati batas maksimum.

Gagal

Koneksi ke server database terputus.

Bisa ditutup & tutup otomatis

Tambahkan alert--dismissible dan tombol .alert__close[data-alert-close] untuk tombol tutup; tambahkan data-autoclose="ms" agar tertutup sendiri dengan indikator waktu (berhenti selagi kursor di atasnya). Perilakunya dijalankan dasa-ui.js (opsional). Pesan galat sebaiknya tidak ditutup otomatis.

Bisa ditutup

Klik tombol × untuk menutup pesan ini.

Tutup otomatis (8 dtk)

Tertutup sendiri; arahkan kursor untuk menjeda.

Peringatan menetap

Tetap tampil sampai pengguna menutupnya.

Hanya tutup otomatis

Tanpa tombol tutup; hilang setelah 6 detik.

Tabel

ProyekKlienLayananStatus
Migrasi Data NasionalSinarmas FinanceData IntegrationBerjalan
Platform DevOpsIndosatDevOpsSelesai
Database ModernizationProdia WidyahusadaDatabase PlatformPerencanaan

Tab

Pagination

Breadcrumb

Tooltip

Arahkan kursor ke teks bergaris putus-putus untuk melihat tooltip.

Zero-downtime migration SLA Terjamin

Modal

Navbar Responsif (Hamburger)

Tambahkan .navbar--collapsible: di bawah 768px menu tersembunyi dan dibuka lewat tombol hamburger (tanpa JavaScript; Escape / klik link menutup bila dasa-ui.js dimuat). Perkecil jendela untuk mencoba.

<nav class="navbar navbar--collapsible">
  <span class="navbar__brand">DASA</span>
  <input type="checkbox" id="menu" class="navbar__toggle-input" />
  <label for="menu" class="navbar__toggle" aria-label="Menu"></label>
  <ul class="navbar__links"><li><a href="#">Home</a></li></ul>
  <div class="navbar__actions"><button class="btn btn--cta btn--sm">Hubungi</button></div>
</nav>

Sidebar & App Shell (Drawer Mobile)

Gunakan .app-shell + .sidebar untuk navigasi aplikasi penuh. Di layar besar (≥ 1024px) tampil sebagai panel kiri permanen, sedangkan di mobile/tablet menjadi drawer geser dari kiri yang dibuka lewat .app-topbar (CSS-only via checkbox; Escape atau klik tautan menutup drawer bila dasa-ui.js dimuat).

DASA Portal

Area Konten Aplikasi

Pada layar ≥ 1024px sidebar selalu terlihat di kiri. Pada mobile/tablet, klik tombol hamburger di bar atas untuk membuka drawer dari kiri.

<div class="app-shell">
  <input type="checkbox" id="app-sb" class="sidebar-toggle-input" />
  <header class="app-topbar">
    <label for="app-sb" class="sidebar-toggle" aria-label="Menu"></label>
    <span class="navbar__brand">DASA</span>
  </header>
  <label for="app-sb" class="sidebar-backdrop"></label>
  <aside class="sidebar">
    <div class="sidebar__brand">DASA</div>
    <p class="sidebar__title">Menu</p>
    <nav class="sidebar__nav">
      <ul>
        <li><a href="#" class="is-active">Dashboard</a></li>
        <li><a href="#">Proyek</a></li>
      </ul>
    </nav>
  </aside>
  <main class="app-main">...</main>
</div>

Accordion

Memakai <details> bawaan browser. Beri atribut name="grup" yang sama pada tiap <details> agar hanya satu yang terbuka.

Apa itu Dasa Design System?
Sistem desain CSS-only untuk produk PT Dasa Aprilindo Sentosa.
Apakah perlu JavaScript?
Tidak. dasa-ui.js hanya untuk alert, toast, dan dropdown.
Bagaimana memilih v1 atau v2?
Pakai v2 untuk tampilan responsif penuh; v1 dipertahankan untuk proyek lama.
<div class="accordion">
  <details name="faq">
    <summary>Pertanyaan</summary>
    <div class="accordion__body">Jawaban</div>
  </details>
</div>

Switch & Dropdown

<label class="switch"><input type="checkbox" role="switch" /> Label</label>

<details class="dropdown">  <!-- tambah .dropdown--end jika menu harus rata kanan -->
  <summary class="btn btn--outline btn--sm">Aksi</summary>
  <ul class="dropdown__menu"><li><a href="#">Edit</a></li></ul>
</details>

Avatar

RA DA DS ABC
<span class="avatar">RA</span>   <!-- --sm | --lg; boleh berisi <img alt=""> -->
<span class="avatar-group"><span class="avatar">A</span><span class="avatar">B</span></span>

Empty State & Skeleton

Belum ada data

Data integrator yang Anda buat akan tampil di sini.

<div class="empty-state">
  <span class="empty-state__icon" aria-hidden="true">&#9744;</span>
  <h3 class="empty-state__title">Belum ada data</h3>
  <p>Keterangan singkat.</p>
</div>

<div aria-busy="true"><span class="skeleton skeleton--text"></span></div>

Toast

Notifikasi sementara (memakai gaya alert) dengan 7 posisi: atas/bawah × kiri/tengah/kanan, dan tengah. Di mobile otomatis dipusatkan horizontal. Butuh dasa-ui.js.

DasaUI.toast("Data tersimpan", { type: "success", title: "Berhasil", duration: 5000, position: "top-center" });
// posisi bawaan semua toast (default "bottom-right"):
DasaUI.toast.position = "top-right";

Utilitas Layout

.stack (vertikal), .cluster (baris membungkus), .hide-mobile, .show-mobile, .text-center, .text-muted, .visually-hidden. Atur jarak dengan .stack--sm|lg atau variabel --stack-gap / --cluster-gap.

JudulKeterangan
Teks ini hanya tampil di tablet ke atas. Teks ini hanya tampil di mobile.
<div class="stack"><h3>Judul</h3><p>Isi</p></div>
<div class="cluster cluster--between">...</div>

Aksesibilitas & Penamaan

  • Fokus keyboard: semua elemen interaktif mendapat cincin fokus biru (:focus-visible); animasi dimatikan untuk pengguna prefers-reduced-motion.
  • Kontras: oranye #FF5F00 hanya ±3:1 di atas putih. Untuk teks oranye kecil di latar terang pakai var(--color-brand-secondary-text) (#C24100, ±5.2:1); eyebrow dan .badge--secondary sudah memakainya. Tombol oranye (teks putih tebal) pakai ukuran btn--lg atau 18px+ bila perlu AA penuh.
  • Penamaan tombol: .btn--cta = oranye (alias .btn--primary), .btn--brand = biru (alias .btn--secondary). Nama lama tetap berfungsi.
  • Lebar kartu: .card--narrow (40rem, alias .card--form) dan .card--wide (56rem).

Contoh Section Gelap (fixed, tidak ikut tema)

Panel navy dekoratif ini sengaja tidak beradaptasi ke tema terang/gelap — dipakai untuk highlight konten, bukan sebagai permukaan default halaman.

About

Deliver the best technology solution

We focused on end to end IT solution to help a company improve their capabilities in facing today's business challenges with technology.