Patterns
Settings Page
Multi-section settings page with sidebar navigation, grouped form fields, and save actions.
Preview
Skip to content
Acme Rocketry
Workspace settings
Manage workspace-level configuration. All edits commit together.
General
Basic information about your workspace.
Branding
Colors and assets used across the product.
Team
Seat counts and default permissions for new members.
Integrations
Third-party services connected to this workspace.
Danger zone
Irreversible actions. Type "delete me" to arm the delete button.
When to Use
- User profile and account settings
- Application preferences and configuration
- Team or organization settings
Components Used
Structure
<div style={{ display: "grid", gridTemplateColumns: "220px 1fr", gap: "var(--spacing-8)" }}>
<nav>
<Tabs orientation="vertical" defaultValue="profile">
<TabsList>
<TabsTrigger value="profile">Profile</TabsTrigger>
<TabsTrigger value="notifications">Notifications</TabsTrigger>
<TabsTrigger value="security">Security</TabsTrigger>
</TabsList>
</Tabs>
</nav>
<div>
<Card>
<CardHeader>
<CardTitle>Profile</CardTitle>
<CardDescription>Manage your public profile information.</CardDescription>
</CardHeader>
<CardContent>
<Fieldset>
<Field>
<FieldLabel htmlFor="name">Display name</FieldLabel>
<Input id="name" defaultValue={user.name} />
</Field>
<Field>
<FieldLabel htmlFor="bio">Bio</FieldLabel>
<Textarea id="bio" defaultValue={user.bio} />
</Field>
</Fieldset>
<Separator />
<Fieldset legend="Notifications">
<div style={{ display: "flex", justifyContent: "space-between", alignItems: "center" }}>
<span>Email notifications</span>
<Switch checked={emailNotifications} onCheckedChange={setEmailNotifications} />
</div>
</Fieldset>
</CardContent>
<CardFooter>
<Button onClick={handleSave}>Save changes</Button>
</CardFooter>
</Card>
</div>
</div>Notes
- Use vertical Tabs for sidebar navigation on desktop.
- On mobile, switch to horizontal Tabs or an accordion layout.
- Group related fields with Fieldset and separate sections with Separator.
- Place the save Button in CardFooter, aligned to the right.
- Use Avatar at the top of the profile section for photo upload.