Files
dashboard-noc-desa-darmasaba/Pengaduan-New.md
2026-03-17 21:41:03 +07:00

2.9 KiB
Raw Blame History

Create a modern analytics dashboard UI for a village complaint system (Pengaduan Dashboard).

Tech stack:

  • React 19 + Vite (Bun runtime)
  • Mantine UI (core components)
  • TailwindCSS (layout & spacing only)
  • Recharts (charts)
  • TanStack Router
  • Icons: lucide-react
  • State: Valtio
  • Date: dayjs

🎨 DESIGN STYLE

  • Clean, minimal, and soft dashboard
  • Background: light gray (#f3f4f6)
  • Card: white with subtle shadow
  • Border radius: 16px24px (rounded-2xl)
  • Typography: medium contrast (not too bold)
  • Primary color: navy blue (#1E3A5F)
  • Accent: soft blue + neutral gray
  • Icons inside circular solid background

Spacing:

  • Use gap-6 consistently
  • Internal padding: p-5 or p-6
  • Layout must feel breathable (no clutter)

🧱 LAYOUT STRUCTURE

🔹 TOP SECTION (4 STAT CARDS - GRID)

Grid: 4 columns (responsive → 2 / 1)

Each card contains:

  • Title (small, muted)
  • Big number (bold, large)
  • Subtitle (small gray text)
  • Right side: circular icon container

Example:

  • Total Pengaduan → 42 → "Bulan ini"
  • Baru → 14 → "Belum diproses"
  • Diproses → 14 → "Sedang ditangani"
  • Selesai → 14 → "Terselesaikan"

Use:

  • Mantine Card
  • Group justify="space-between"
  • Icon inside circle (bg navy, icon white)

📈 MAIN CHART (FULL WIDTH)

Title: "Tren Pengaduan"

  • Use Recharts LineChart
  • Smooth line (monotone)
  • Show dots on each point
  • Data: Apr → Okt
  • Value range: 3060

Style:

  • Minimal grid (light dashed)
  • No heavy colors (use gray/blue line)
  • Rounded container card
  • Add small top-right icon (expand)

📊 BOTTOM SECTION (3 COLUMN GRID)

🔹 LEFT: "Surat Terbanyak"

  • Horizontal bar chart (Recharts)
  • Categories:
    • KTP
    • KK
    • Domisili
    • Usaha
    • Lainnya

Style:

  • Dark blue bars
  • Rounded edges
  • Clean axis

🔹 CENTER: "Pengajuan Terbaru"

List of activity cards:

Each item:

  • Name (bold)
  • Subtitle (jenis surat)
  • Time (small text)
  • Status badge (kanan)

Status:

  • baru → red
  • proses → blue
  • selesai → green

Style:

  • Card per item
  • Soft border
  • Rounded
  • Compact spacing

🔹 RIGHT: "Ajuan Ide Inovatif"

List mirip dengan pengajuan terbaru:

Each item:

  • Nama
  • Judul ide
  • Waktu
  • Button kecil "Detail"

Style:

  • Right-aligned action button
  • Light border
  • Clean spacing

⚙️ COMPONENT STRUCTURE

components/

  • StatCard.tsx
  • LineChartCard.tsx
  • BarChartCard.tsx
  • ActivityList.tsx
  • IdeaList.tsx

routes/

  • dashboard.tsx

INTERACTIONS (IMPORTANT)

  • Hover card → scale(1.02)
  • Transition: 150ms ease
  • Icon circle slightly pop on hover
  • List item hover → subtle bg change

🎯 UX DETAILS

  • Numbers must be visually dominant
  • Icons must balance layout (not too big)
  • Avoid heavy borders
  • Keep everything aligned perfectly
  • No clutter

🚀 OUTPUT

  • Modular React components (NOT one file)
  • Clean code (production-ready)
  • Use Mantine properly (no hacky inline styles unless needed)
  • Use Tailwind only for layout/grid/spacing