Settings Page

Account settings with a side nav whose pill glides between Profile, Notifications, Appearance and Billing, sections built from inline edits, switches, selects, toggle groups and usage bars, a draft that slides up a sticky unsaved-changes bar with Reset and an async Save that shakes on failure, and a danger zone behind a type-to-confirm dialog.

Preview

Settings Page preview width

Install

Add it with the shadcn CLI, or copy the source manually.

$ bunx --bun shadcn add @karaui/settings-page
@karaui not found? Add it to components.json
{
  "registries": {
    "@karaui": "https://karaui.kamisama-v0.my.id/r/{name}.json"
  }
}

@karaui is in shadcn's public registry directory, so the latest CLI needs no setup. On an older CLI, merge this into the existing file once and every @karaui/… install resolves.

API Reference

defaultValues?
Partial<SettingsValues>
—
onSave?
((values: SettingsValues) => void | Promise<void>)

Persist the draft. Reject to keep the bar open with an error and a shake.

—
onDeleteAccount?
(() => void | Promise<void>)

Fires after the type-to-confirm dialog.

—
onManageBilling?
(() => void)
—
section?
"appearance" | "billing" | "profile" | "notifications"

Controlled active section.

—
defaultSection?
"appearance" | "billing" | "profile" | "notifications"
profile
onSectionChange?
((section: SettingsSection) => void)
—
billing?
SettingsBilling
{ plan: "Pro", price: "$12 / month", renewal: "Renews Nov 14, 2026", seats: { used: 3, total: 5 }, storage: { used: 18, total: 50, unit: "GB" }, paymentMethod: "Card ending 4242", }
className?
string
—

Keep in mind

Some components on this site are inspired by or recreated from existing work across the web. I'm not here to take credit; just to learn, experiment, and sometimes push things a bit further. If something looks familiar and I forgot to mention you, reach out and I'll fix that right away.

Updated