Design system

Components

Building blocks for the Poinqu admin panel. Every component is typed, accessible, and ready to compose into real screens.

Ready to use

Typography

A consistent type scale for headings, body copy, labels, code, and quotes. Every variant uses the same tokens as the rest of the kit.

Foundation
Display scale

Design with rhythm

Heading one

Heading two

Heading three

Heading four

Text styles

Lead paragraphs introduce a page or section with a little more presence.

Body copy is the default. It is sized for comfortable reading in dense admin screens and pairs with the card and table rhythm.

Small text for metadata and helper copy.

Muted text for secondary information.

Good design is as little design as possible.

Run npm run build before shipping.

Success tone

Warning tone

Danger tone

Gunakan variant="label" untuk eyebrow dan variant="code" untuk inline code. Semua variant bisa diberi tone tanpa mengubah ukuran.

Card

A flexible surface for grouping related content. Every showcase section below uses the same Card component.

Layout

Support plan

Your current subscription

Active

Unlimited tickets, SLA policies, and a shared inbox for your support team.

24agents online

SLA compliance

At risk

92% of conversations were answered within the first response target this week.

Within target92%

Upgrade workspace

Advanced SLA policies, audit logs, and priority support.

Built for teams that need more control over routing and reporting.

Alert

Inline messages for information, success, warning, and destructive states.

Feedback

Dismissible

Badge

Compact status labels with soft, solid, and outline treatments.

Data display

Soft

neutralinfosuccesswarningdangervioletcyanyellow

Solid

neutralinfosuccesswarningdangervioletcyanyellow

Outline, dot, icon, and size

In reviewActiveAI assistedAt riskSmall

Notification badge

83Overlay badges on icon buttons

Button

Primary, neutral, success, warning, and danger actions in outline, solid, and ghost variants.

Actions

Variants and tones

Size, icons, loading, and disabled

Button Group

Segmented controls that keep related actions and views together.

Actions

Segmented control

Selected: week

Icon group

Alignment: left

Action group

Form Controls

Inputs, selects, textareas, checkboxes, radios, and switches with consistent sizing, focus states, and validation.

Forms

Shown to teammates and customers.

Enter a valid email address.

Managed by your administrator.

Only visible to agents.

Checkbox

Radio

Default priority for new tickets
Send a CSAT survey

Switch

Combobox

Autocomplete input with a filtered list, keyboard navigation, clear action, and optional multiple selection with chips.

Forms

Single select with search, clear, and keyboard navigation.

BillingUrgent

Multiple select with chips and backspace removal.

Disabled state with a selected value.

Choose a team to continue.

Gunakan panah atas/bawah untuk berpindah opsi, Enter untuk memilih, dan Escape untuk menutup. Mode multiple menyimpan pilihan sebagai chip dan bisa dihapus dengan tombol x atau Backspace.

Attachment

File cards with media, metadata, upload state, progress, and actions. Use them in composers, message threads, and upload lists.

Forms
sales-dashboard.pdfPDF · 2.4 MB
design-system.zipUploading · 64%
market-research.pdfProcessing document…
financial-model.xlsxUpload failed. Try again.

State upload: idle, uploading, processing, error, dan done. Klik kartu untuk preview, atau tombol x untuk menghapus.

Placeholder

Skeleton shapes for loading states. Compose circles, headings, text lines, and rectangles while data is on the way.

Loading

Building blocks

CircleHeadingTextRect

Spinner

Indeterminate progress indicators for actions that take a moment.

Loading
sm
md
lg

Tones

default
primary
success
danger
muted

Inline

Syncing tickets… Connected

Tabs

Switch between related views in place, with arrow-key navigation and accessible tab panels.

Navigation

Payment failed on invoice #INV-8821. The gateway returned a timeout, and the customer has retried twice.

PriorityHigh
Assigned agentJohn Doe
SLA due2h left

Pill variant

Showing ticket volume for today — 584 conversations.

Collapse

Progressive disclosure for secondary details, preferences, and advanced settings.

Disclosure
How do SLA policies work?Targets, business hours, and escalation rules.

Every new ticket inherits the SLA policy for its priority. The timer pauses outside business hours and escalates when 80% of the target has elapsed.

Active2h first responseBusiness hours
Notification preferencesChoose what your team receives.3 changes
Danger zonePermanent actions for this workspace.

Stepper

Show progress through a multi-step flow, with completed, current, and upcoming states.

Navigation

Vertical

  1. Ticket createdAug 18, 09:12
  2. SLA policy appliedHigh priority · 2h target
  3. Assigned to John DoeSupport team
  4. ResolvedWaiting for customer confirmation

Pagination

Move through long result sets with page numbers, previous/next controls, and a compact mobile summary.

Navigation
12 pages · controlled
Compact, no siblings

Di layar kecil, deretan nomor halaman diganti dengan ringkasan “Page X of Y” agar tetap muat.

Marker

Inline notes, bordered status rows, and labeled separators for conversation and activity threads.

Data display
Switched to a new branch fix/frozen-lockfile
Explored 4 related files4 files
Compacting conversation…Live
Today
Failed to connect to the workspaceRetry

Variant default untuk catatan inline, border untuk baris status, separator untuk pemisah berlabel. Gunakan loading untuk status yang sedang berjalan.

Trace

A compact list of steps for reasoning, tool calls, and plans. Lines can expand to show detail and reflect running, error, or pending states.

Data display
  1. Thought for 5sDiagnosing the failing CI install

    The lockfile is out of sync with package.json, so a frozen install cannot resolve the new version.

  2. Ran pnpm --version9.12.0
  3. Failed to run pnpm installExit code 1
    ERR_PNPM_OUTDATED_LOCKFILE  Cannot install with "frozen-lockfile"
    package.json and pnpm-lock.yaml are out of sync
  4. Running pnpm buildCompiling 24 routes
  5. Run pnpm testQueued

Klik baris yang punya detail untuk membuka output. Status running memakai spinner dan shimmer; error, pending, dan done punya warna masing-masing.

List Group

A responsive list for records, activity, and navigation. Meta and actions move to a new row on small screens.

Data display
  • Ticket #2319Payment failed on invoice · John DoeHigh
  • Sarah LeeSupport agent · Online nowOnline
  • SLA breach risk3 tickets need attention before 18:003 alerts
  • Knowledge base updatedLogin troubleshooting · 10:30 AMArticle

Coba perkecil viewport: badge meta dan tombol action akan turun ke baris berikutnya secara otomatis.

Accordion

An exclusive group of collapsible panels. Opening one panel closes the others when type is set to single.

Data display
SLA & escalation policyTargets, business hours, and escalation rules.

High priority tickets have a two-hour first response target. When 80% of the target elapses, the ticket is escalated to the team lead.

Ticket routingHow conversations reach the right team.

Incoming conversations are routed by language, product area, and agent availability. Manual overrides are always allowed.

Notification rulesAlerts for agents and team leads.3 rules
Security & audit logsWorkspace access and retention.

Audit logs are retained for 12 months. Only workspace administrators can export or delete them.

Hanya satu panel terbuka pada satu waktu. Gunakan type="multiple" jika beberapa panel boleh terbuka bersamaan.

Table

Semantic table primitives with a flush mode that sits edge-to-edge inside a Card, plus aligned cells and a scrollable wrapper.

Data display
TicketSubjectPriorityAgentStatus
#2319Payment failed on invoiceHighJohn DoeIn Review
#2320Login issueMediumSarah LeeDelivered
#2321Feature request exportLowJohn DoeIn Progress
#2322Contract renewal issueMediumMichael WongIn Progress
#2323Two-factor authenticationHighSarah LeeIn Progress

Table dasar tanpa state. Mode flush dipakai saat tabel berada di dalam card agar header sejajar dengan judul card.

Data Table

Search, sortable columns, row selection, pagination, and an empty state built on top of the Table primitives.

Data display
12 results
#2319Payment failed on invoiceHighJohn DoeIn Review2025-08-20
#2320Login issueMediumSarah LeeDelivered2025-08-20
#2321Feature request exportLowJohn DoeIn Progress2025-08-19
#2322Contract renewal issueMediumMichael WongIn Progress2025-08-19
#2323Two-factor authenticationHighSarah LeeIn Progress2025-08-18

Coba cari, klik header kolom untuk sort, pilih baris, lalu pindah halaman. Toolbar dan footer tetap punya padding sendiri, tabelnya full-bleed di dalam card.

Alert Dialog

A focused confirmation surface for destructive or high-impact actions. Backdrop clicks do not dismiss it.

Overlays

Alert Dialog memakai role="alertdialog", fokus terkunci di dalam dialog, Escape atau Cancel menutup, dan klik backdrop tidak menutup.

Publish changes?

This publishes 24 pending changes to the production workspace and notifies every agent.

Toast

Stackable, auto-dismissing notifications triggered from anywhere through useToast().

Feedback

Tooltip

Short contextual hints on hover or keyboard focus, available in four placements.

Overlays

Tooltip muncul setelah hover atau fokus singkat, menutup saat blur, dan bisa ditutup dengan Escape. Konten memakai role="tooltip".

Poinqu UI KitNext.js · CSS Modules · Iconify

Workspace settings

Update the defaults for your support workspace.

Account

Informasi akun yang sedang login.

RoleAdministrator
WorkspacePoinqu
StatusOnline