Claritas UIKit

Clerk-inspired design system for admin interfaces

Design Principles

Nested Card Pattern

Outer gray card (#f5f5f6) containing inner white card with shadow. Headers/footers live in the gray area.

Shadows Over Borders

Multi-layer box shadows replace visible borders for a softer, more elevated appearance.

Consistent Timing

150ms transitions with cubic-bezier(0.4, 0, 0.2, 1) for all interactive elements.

Colors

#ffffff
Background
--background
#f5f5f6
Outer Card
bg-[#f5f5f6]
#191c21
Foreground
--foreground
#747584
Muted
--muted-foreground
#ececee
Divider
--border
#fafafb
Hover Gray
hover state
#22c55e
Success
bg-green-500
#ef4444
Error
bg-red-500

Shadows

shadow-card

Default card shadow - subtle, replaces borders

shadow-card-hover

Hover state - slightly more elevated

shadow-elevated

Modals, popovers, dropdowns

Data Tables

Tables with status indicators, badges, and pagination. Used for data dashboards like logs and analytics.

Table with Status Badges

StatusTimestampEndpointModelTokensCostDuration
success
2025-01-27 14:32:05/api/storiesgpt-4o1,247$0.03121.2s
success
2025-01-27 14:31:42/api/trendingclaude-3892$0.02230.8s
error
2025-01-27 14:30:18/api/storiesgpt-4o0$0.00000.1s
success
2025-01-27 14:29:55/api/summarizegpt-4o-mini456$0.00910.5s
timeout
2025-01-27 14:28:33/api/trendingclaude-30$0.000030.0s
7 calls71.4% success4,826 tokens$0.1178
1 / 2

Nested Card Pattern

The core pattern: outer gray card with inner white card. Headers and footers sit in the gray outer area.

Basic Card with Footer

Card Title

This is an example of the basic nested card pattern. The outer gray container provides visual separation while the inner white card holds the content.

Updated today

Card with Header and Footer

Monday, January 27, 2025
First Item
Description of the first item
Second Item
Description of the second item

Card with Status Bar (Topic Card Style)

High Priority

Example card with a colored status bar indicating priority level.

Category5/5

Medium Priority

Example card with a colored status bar indicating priority level.

Category3/5

Low Priority

Example card with a colored status bar indicating priority level.

Category1/5

Buttons

Buttons with Icons

Form Elements

Form elements using inset shadows instead of borders, with various input variants.

Form Groups

Card containers for grouping related form fields with a header title and optional description.

Basic information

Blank
seconds
seconds
Custom signing key

Enable if using a third-party authentication service that requires custom signing keys.

Customize session token

Augment your session tokens by adding custom claims. Learn more

<>Claims
1{}
Insert shortcodes
Clerk automatically includes standard claims in your session tokens for common use cases. Learn more

Text Inputs

seconds

Input with Copy Button

Use this if there is an Issuer field

Use this if there is a JWKS Endpoint field

Select / Dropdown

Toggle Switch

Custom signing key

Enable if using a third-party authentication service that requires custom signing keys. If disabled, the default private key of your instance will be used.

Chips / Tags

Click to insert shortcodes:

Collapsible Accordion

user.iduser.external_iduser.first_nameuser.last_name

Alerts

Clerk automatically includes standard claims in your session tokens for common use cases. Learn more
Your changes have been saved successfully. Learn more
This action may affect existing integrations. Learn more
There was an error processing your request. Please try again. Learn more

Modal Structure

Modals use the nested card pattern with status bars and footers in the outer gray area.

List Cards

Lists with grouped items by date, featuring headers in the outer card and expandable archived sections.

Monday, January 27, 2025

Breaking News Story

A summary of the breaking news

#1

Tech Update

Draft

Latest in technology

#2

Market Analysis

Financial market overview

#3

Authentication

Sign in and sign up screens using the centered card pattern with social login options.

Sign In

A

Sign in to Acme Co

Welcome back! Please sign in to continue

or
Don't have an account? Sign up
Secured by Clerk

Sign Up

A

Create your account

Welcome! Please fill in the details to get started.

or
Already have an account? Sign in
Secured by Clerk

Quick Reference

/* Nested Card Pattern */
<div className="rounded-xl bg-[#f5f5f6] py-1 px-1">
  {/* Header in gray area */}
  <div className="px-3 py-2">
    <span className="text-xs text-foreground font-medium">Header</span>
  </div>

  {/* Inner white card */}
  <div className="rounded-[10px] bg-card shadow-card overflow-hidden">
    {/* Content */}
  </div>

  {/* Footer in gray area */}
  <div className="px-3 py-2 flex justify-between">
    <span className="text-xs text-muted-foreground">Footer text</span>
    <button className="px-4 py-1.5 bg-foreground text-background rounded-md text-xs font-medium">
      Action
    </button>
  </div>
</div>

/* Pill Navigation */
<nav className="relative inline-flex items-center gap-1 bg-[#f5f5f6] rounded-full px-1.5 py-1 shadow-card">
  <div className="absolute h-[calc(100%-8px)] bg-[#191c21] rounded-full" style={{ left, width }} />
  <button className="relative z-10 text-white">Active</button>
  <button className="relative z-10 text-muted-foreground">Inactive</button>
</nav>

/* Status Bar (for topic cards / modals) */
<div className="absolute inset-x-14 top-1 h-[2px] rounded-b-full bg-green-500" />

/* Status Badge */
<div className="inline-flex items-center gap-1.5 px-2 py-1 rounded bg-green-50">
  <CheckCircle className="w-3.5 h-3.5 text-green-500" />
  <span className="text-[10px] font-medium text-green-500">Success</span>
</div>

/* Model Badge */
<span className="px-2 py-0.5 rounded text-[10px] font-medium bg-emerald-100 text-emerald-700">
  gpt-4o
</span>

/* Button Styles */
.primary: "px-4 py-1.5 bg-foreground text-background rounded-md text-xs font-medium"
.secondary: "px-4 py-1.5 bg-card border border-[#ececee] rounded-md text-xs font-medium"
.text: "px-4 py-1.5 text-xs font-medium text-muted-foreground hover:text-foreground"

/* Transitions */
.all: "transition-colors duration-150"
.pill: "left 0.3s cubic-bezier(0.25, 0.1, 0.25, 1)"