37 KiB
Project Overview
This is an Untitled UI React component library project built with:
- React 19.1.1 with TypeScript
- Tailwind CSS v4.1 for styling
- React Aria Components as the foundation for accessibility and behavior
Key Architecture Principles
Component Foundation
- All components are built on React Aria Components for consistent accessibility and behavior
- Components follow the compound component pattern with sub-components (e.g.,
Select.Item,Select.ComboBox) - TypeScript is used throughout for type safety
Import Naming Convention
CRITICAL: All imports from react-aria-components must be prefixed with Aria* for clarity and consistency:
// ✅ Correct
import { Button as AriaButton, TextField as AriaTextField } from "react-aria-components";
// ❌ Incorrect
import { Button, TextField } from "react-aria-components";
This convention:
- Prevents naming conflicts with custom components
- Makes it clear when using base React Aria components
- Maintains consistency across the entire codebase
File Naming Convention
IMPORTANT: All files must be named in kebab-case for consistency:
✅ Correct:
- date-picker.tsx
- user-profile.tsx
- api-client.ts
- auth-context.tsx
❌ Incorrect:
- DatePicker.tsx
- userProfile.tsx
- apiClient.ts
- AuthContext.tsx
This applies to all file types including:
- Component files (.tsx, .jsx)
- TypeScript/JavaScript files (.ts, .js)
- Style files (.css, .scss)
- Test files (.test.ts, .spec.tsx)
- Configuration files (when creating new ones)
Development Commands
# Development
npm run dev # Start Vite development server (http://localhost:5173)
npm run build # Build for production (TypeScript compilation + Vite build)
Project Structure
Application Architecture
src/
├── components/
│ ├── base/ # Core UI components (Button, Input, Select, etc.)
│ ├── application/ # Complex application components
│ ├── foundations/ # Design tokens and foundational elements
│ ├── marketing/ # Marketing-specific components
│ └── shared-assets/ # Reusable assets and illustrations
├── hooks/ # Custom React hooks
├── pages/ # Route components
├── providers/ # React context providers
├── styles/ # Global styles and theme
├── types/ # TypeScript type definitions
└── utils/ # Utility functions
Component Patterns
1. Base Components
Located in components/base/, these are the building blocks:
Button- All button variants with loading statesInput- Text inputs with validation and iconsSelect- Dropdown selections with complex optionsCheckbox,Radio,Toggle- Form controlsAvatar,Badge,Tooltip- Display components
2. Application Components
Located in components/application/, these are complex UI patterns:
DatePicker- Calendar-based date selectionModal- Overlay dialogsPagination- Data navigationTable- Data display with sortingTabs- Content organization
3. Styling Architecture
- Uses a
sortCxutility for organized style objects - Follows size variants:
sm,md,lg,xl - Color variants:
primary,secondary,tertiary,destructive, etc. - Responsive and state-aware styling with Tailwind
4. Component Props Pattern
interface CommonProps {
size?: "sm" | "md" | "lg";
isDisabled?: boolean;
isLoading?: boolean;
// ... other common props
}
interface ButtonProps extends CommonProps, HTMLButtonElement {
color?: "primary" | "secondary" | "tertiary";
iconLeading?: FC | ReactNode;
iconTrailing?: FC | ReactNode;
}
Styling Guidelines
Tailwind CSS v4.1
- Uses the latest Tailwind CSS v4.1 features
- Custom design tokens defined in theme configuration
- Consistent spacing, colors, and typography scales
Brand Color Customization
To change the main brand color across the entire application:
- Update Brand Color Variables: Edit
src/styles/theme.cssand modify the--color-brand-*variables - Maintain Color Scale: Ensure you provide a complete color scale from 25 to 950 with proper contrast ratios
- Example Brand Color Scale:
--color-brand-25: rgb(252 250 255); /* Lightest tint */ --color-brand-50: rgb(249 245 255); --color-brand-100: rgb(244 235 255); --color-brand-200: rgb(233 215 254); --color-brand-300: rgb(214 187 251); --color-brand-400: rgb(182 146 246); --color-brand-500: rgb(158 119 237); /* Base brand color */ --color-brand-600: rgb(127 86 217); /* Primary interactive color */ --color-brand-700: rgb(105 65 198); --color-brand-800: rgb(83 56 158); --color-brand-900: rgb(66 48 125); --color-brand-950: rgb(44 28 95); /* Darkest shade */
The color scale automatically adapts to both light and dark modes through the CSS variable system.
Style Organization
export const styles = sortCx({
common: {
root: "base-classes-here",
icon: "icon-classes-here",
},
sizes: {
sm: { root: "small-size-classes" },
md: { root: "medium-size-classes" },
},
colors: {
primary: { root: "primary-color-classes" },
secondary: { root: "secondary-color-classes" },
},
});
Utility Functions
cx()- Class name utility (from@/utils/cx)sortCx()- Organized style objectsisReactComponent()- Component type checking
Icon Usage
Available Libraries
@untitledui/icons- 1,100+ line-style icons (free)@untitledui/file-icons- File type icons@untitledui-pro/icons- 4,600+ icons in 4 styles (Requires PRO access)
Import & Usage
// Recommended: Named imports (tree-shakeable)
import { Home01, Settings01, ChevronDown } from "@untitledui/icons";
// Component props - pass as reference
<Button iconLeading={ChevronDown}>Options</Button>
// Standalone usage
<Home01 className="size-5 text-gray-600" />
// As JSX element - MUST include data-icon
<Button iconLeading={<ChevronDown data-icon className="size-4" />}>Options</Button>
Styling
// Size: use size-4 (16px), size-5 (20px), size-6 (24px)
<Home01 className="size-5" />
// Color: use semantic text colors
<Home01 className="size-5 text-brand-600" />
// Stroke width (line icons only)
<Home01 className="size-5" strokeWidth={2} />
// Accessibility: decorative icons need aria-hidden
<Home01 className="size-5" aria-hidden="true" />
PRO Icon Styles
import { Home01 } from "@untitledui-pro/icons";
// Line
import { Home01 } from "@untitledui-pro/icons/duocolor";
import { Home01 } from "@untitledui-pro/icons/duotone";
import { Home01 } from "@untitledui-pro/icons/solid";
Form Handling
Form Components
Input- Text inputs with validationSelect- Dropdown selectionsCheckbox,Radio- Selection controlsTextarea- Multi-line text inputForm- Form wrapper with validation
Animation and Interactions
Animation Libraries
motion(Framer Motion) for complex animationstailwindcss-animatefor utility-based animations- CSS transitions for simple state changes
CSS Transitions
For default small transition actions (hover states, color changes, etc.), use:
className = "transition duration-100 ease-linear";
This provides a snappy 100ms linear transition that feels responsive without being jarring.
Loading States
- Components support
isLoadingprop - Built-in loading spinners
- Proper disabled states during loading
Common Patterns
Compound Components
const Select = SelectComponent as typeof SelectComponent & {
Item: typeof SelectItem;
ComboBox: typeof ComboBox;
};
Select.Item = SelectItem;
Select.ComboBox = ComboBox;
Conditional Rendering
{label && <Label isRequired={isRequired}>{label}</Label>}
{hint && <HintText isInvalid={isInvalid}>{hint}</HintText>}
State Management
Component State
- Use React Aria's built-in state management
- Local state for component-specific data
- Context for shared component state (theme, router)
Global State
- Theme context in
src/providers/theme.tsx - Router context in
src/providers/router-provider.tsx
Key Files and Utilities
Core Utilities
src/utils/cx.ts- Class name utilitiessrc/utils/is-react-component.ts- Component type checkingsrc/hooks/- Custom React hooks
Style Configuration
src/styles/globals.css- Global stylessrc/styles/theme.css- Theme definitionssrc/styles/typography.css- Typography styles
Best Practices for AI Assistance
When Adding New Components
- Follow the existing component structure
- Use React Aria Components as foundation
- Implement proper TypeScript types
- Add size and color variants where applicable
- Include accessibility features
- Follow the naming conventions
- Add components to appropriate folders (
base/,application/, etc.)
Most Used Components Reference
Button
The Button component is the most frequently used interactive element across the library.
Import:
import { Button } from "@/components/base/buttons/button";
Common Props:
size:"sm" | "md" | "lg" | "xl"- Button size (default:"sm")color:"primary" | "secondary" | "tertiary" | "link-gray" | "link-color" | "primary-destructive" | "secondary-destructive" | "tertiary-destructive" | "link-destructive"- Button color variant (default:"primary")iconLeading:FC | ReactNode- Icon or component to display before texticonTrailing:FC | ReactNode- Icon or component to display after textisDisabled:boolean- Disabled stateisLoading:boolean- Loading state with spinnershowTextWhileLoading:boolean- Keep text visible during loadingchildren:ReactNode- Button content
Examples:
// Basic button
<Button size="md">Save</Button>
// With leading icon
<Button iconLeading={Check} color="primary">Save</Button>
// Loading state
<Button isLoading showTextWhileLoading>Submitting...</Button>
// Destructive action
<Button color="primary-destructive" iconLeading={Trash02}>Delete</Button>
Input
Text input component with extensive customization options.
Import:
import { Input } from "@/components/base/input/input";
import { InputGroup } from "@/components/base/input/input-group";
Common Props:
size:"sm" | "md"- Input size (default:"sm")label:string- Field labelplaceholder:string- Placeholder texthint:string- Helper text below inputtooltip:string- Tooltip text for help iconicon:FC- Leading icon componentisRequired:boolean- Required field indicatorisDisabled:boolean- Disabled stateisInvalid:boolean- Error state
Examples:
// Basic input with label
<Input label="Email" placeholder="olivia@untitledui.com" />
// With icon and validation
<Input
icon={Mail01}
label="Email"
isRequired
isInvalid
hint="Please enter a valid email"
/>
// Input group with button
<InputGroup label="Website" trailingAddon={<Button>Copy</Button>}>
<InputBase placeholder="www.untitledui.com" />
</InputGroup>
Select
Dropdown selection component with search and multi-select capabilities.
Import:
import { MultiSelect } from "@/components/base/select/multi-select";
import { Select } from "@/components/base/select/select";
Common Props:
size:"sm" | "md"- Select size (default:"sm")label:string- Field labelplaceholder:string- Placeholder texthint:string- Helper texttooltip:string- Tooltip textitems:Array- Data items to displayisRequired:boolean- Required fieldisDisabled:boolean- Disabled stateplaceholderIcon:FC | ReactNode- Icon for placeholder
Item Props:
id:string- Unique identifiersupportingText:string- Secondary texticon:FC | ReactNode- Leading iconavatarUrl:string- Avatar image URLisDisabled:boolean- Disabled item
Examples:
// Basic select
<Select label="Team member" placeholder="Select member" items={users}>
{(item) => (
<Select.Item id={item.id} supportingText={item.email}>
{item.name}
</Select.Item>
)}
</Select>
// With search (ComboBox)
<Select.ComboBox label="Search" placeholder="Search users" items={users}>
{(item) => <Select.Item id={item.id}>{item.name}</Select.Item>}
</Select.ComboBox>
// With avatars
<Select items={users} placeholderIcon={User01}>
{(item) => (
<Select.Item avatarUrl={item.avatar} supportingText={item.role}>
{item.name}
</Select.Item>
)}
</Select>
Checkbox
Checkbox component for boolean selections.
Import:
import { Checkbox } from "@/components/base/checkbox/checkbox";
Common Props:
size:"sm" | "md"- Checkbox size (default:"sm")label:string- Checkbox labelhint:string- Helper text below labelisSelected:boolean- Checked stateisDisabled:boolean- Disabled stateisIndeterminate:boolean- Indeterminate state
Examples:
// Basic checkbox
<Checkbox label="Remember me" />
// With hint text
<Checkbox
label="Remember me"
hint="Save my login details for next time"
/>
// Controlled state
<Checkbox isSelected={checked} onChange={setChecked} />
Badge
Badge components for status indicators and labels.
Import:
import { Badge, BadgeWithDot, BadgeWithIcon } from "@/components/base/badges/badges";
Common Props:
size:"sm" | "md" | "lg"- Badge sizecolor:"gray" | "brand" | "error" | "warning" | "success" | "blue-gray" | "blue-light" | "blue" | "indigo" | "purple" | "pink" | "rose" | "orange"- Color themetype:"pill-color" | "color" | "modern"- Badge style variant
Examples:
// Basic badge
<Badge color="brand" size="md">New</Badge>
// With dot indicator
<BadgeWithDot color="success" type="pill-color">Active</BadgeWithDot>
// With icon
<BadgeWithIcon iconLeading={ArrowUp} color="success">12%</BadgeWithIcon>
Avatar
Avatar component for user profile images.
Import:
import { Avatar } from "@/components/base/avatar/avatar";
import { AvatarLabelGroup } from "@/components/base/avatar/avatar-label-group";
Common Props:
size:"xs" | "sm" | "md" | "lg" | "xl" | "2xl"- Avatar sizesrc:string- Image URLalt:string- Alt text for accessibilityinitials:string- Text initials when no imageplaceholderIcon:FC- Icon when no imagestatus:"online" | "offline"- Status indicatorverified:boolean- Verification badgebadge:ReactNode- Custom badge element
Examples:
// Basic avatar
<Avatar src="/avatar.jpg" alt="User Name" size="md" />
// With status
<Avatar src="/avatar.jpg" status="online" />
// With initials fallback
<Avatar initials="OR" size="lg" />
// Label group
<AvatarLabelGroup
src="/avatar.jpg"
title="Olivia Rhye"
subtitle="olivia@untitledui.com"
size="md"
/>
FeaturedIcon
Decorative icon component with themed backgrounds for emphasis and visual hierarchy.
Import:
import { FeaturedIcon } from "@/components/foundations/featured-icon/featured-icon";
Common Props:
icon:FC- Icon component to display (required)size:"sm" | "md" | "lg" | "xl"- Icon container sizecolor:"brand" | "gray" | "error" | "warning" | "success"- Color schemetheme:"light" | "gradient" | "dark" | "modern" | "modern-neue" | "outline"- Visual theme style
Theme Styles:
light: Subtle background with colored icongradient: Gradient background effectdark: Solid colored background with white iconmodern: Contemporary gray styling (gray color only)modern-neue: Alternative modern style (gray color only)outline: Border style with transparent background
Examples:
// Basic featured icon
<FeaturedIcon icon={CheckCircle} color="success" theme="light" size="lg" />
// With gradient theme
<FeaturedIcon icon={AlertCircle} color="warning" theme="gradient" size="xl" />
// Dark theme for emphasis
<FeaturedIcon icon={XCircle} color="error" theme="dark" size="md" />
// Outline style
<FeaturedIcon icon={InfoCircle} color="brand" theme="outline" size="lg" />
// Modern styles (IMPORTANT: gray only)
<FeaturedIcon icon={Settings} color="gray" theme="modern" size="lg" />
Link
Note: There is no dedicated Link component. Instead, use the Button component with an href prop and link-specific color variants.
Import:
import { Button } from "@/components/base/buttons/button";
Link Colors:
link-gray- Gray link stylinglink-color- Brand color link stylinglink-destructive- Destructive link styling
Examples:
// Basic link
<Button href="/dashboard" color="link-color">View Dashboard</Button>
// With icon
<Button href="/settings" color="link-gray" iconLeading={Settings01}>
Settings
</Button>
// Destructive link
<Button href="/delete" color="link-destructive" iconLeading={Trash02}>
Delete Account
</Button>
// External link
<Button href="https://example.com" color="link-color" iconTrailing={ExternalLink01}>
Visit Site
</Button>
Common Component Patterns
- Size Variants: Most components support
sm,md,lgsizes - State Props:
isDisabled,isLoading,isInvalid,isRequiredare common - Icon Support: Components accept icons as both components (
Icon) or elements (<Icon />) - Compound Components: Complex components use dot notation (e.g.,
Select.Item,Select.ComboBox) - Accessibility: All components include proper ARIA attributes and keyboard support
Icon Usage
When passing icons to components:
// As component reference (preferred)
<Button iconLeading={ChevronDown}>Options</Button>
// As element (must include data-icon)
<Button iconLeading={<ChevronDown data-icon className="size-4" />}>Options</Button>
COLORS
MUST use color classes to style elements.
Bad:
- text-gray-900
- text-gray-600
- bg-blue-700
Good:
- text-primary
- text-secondary
- bg-primary
Text Color
Use text color variables to manage all text fill colors in your designs across light and dark modes.
| Name | Usage |
|---|---|
| text-primary | Primary text such as page headings. |
| text-primary_on-brand | Primary text when used on solid brand color backgrounds. Commonly used for brand theme website sections (e.g. CTA sections). |
| text-secondary | Secondary text such as labels and section headings. |
| text-secondary_hover | Secondary text when in hover state. |
| text-secondary_on-brand | Secondary text when used on solid brand color backgrounds. Commonly used for brand theme website sections (e.g. CTA sections). |
| text-tertiary | Tertiary text such as supporting text and paragraph text. |
| text-tertiary_hover | Tertiary text when in hover state. |
| text-tertiary_on-brand | Tertiary text when used on solid brand color backgrounds. Commonly used for brand theme website sections (e.g. CTA sections). |
| text-quaternary | Quaternary text for more subtle and lower-contrast text, such as footer column headings. |
| text-quaternary_on-brand | Quaternary text when used on solid brand color backgrounds. Commonly used for brand theme website sections (e.g. footers). |
| text-white | Text that is always white, regardless of the mode. |
| text-disabled | Default color for disabled text such as disabled input fields or buttons. This can be changed to gray-400, but gray-500 is higher contrast and more accessible. |
| text-placeholder | Default color for placeholder text such as input field placeholders. This can be changed to gray-400, but gray-500 is more accessible because it is higher contrast. |
| text-placeholder_subtle | A more subtle (lower contrast) alternative placeholder text. Useful for components such as verification code input fields. |
| text-brand-primary | Primary brand text useful for headings (e.g. cards in pricing page headers). |
| text-brand-secondary | Secondary brand text for brand buttons, as well as accented text, highlights, and subheadings (e.g. subheadings in blog post cards). |
| text-brand-secondary_hover | Secondary brand text when in hover state (e.g. brand buttons). |
| text-brand-tertiary | Tertiary brand text for lighter accented text and highlights (e.g. numbers in metric cards). |
| text-brand-tertiary_alt | An alternative to tertiary brand text that is lighter in dark mode (e.g. numbers in metric cards). |
| text-error-primary | Default error state semantic text color (e.g. input field error states). |
| text-warning-primary | Default warning state semantic text color. |
| text-success-primary | Default success state semantic text color. |
Border Color
Use border color variables to manage all stroke colors in your designs across light and dark modes. You can use the same values for ring- and outline- as well (i.e. ring-primary outline-secondary).
| Name | Usage |
|---|---|
| border-primary | High contrast borders. These are used for components such as input fields, button groups, and checkboxes. |
| border-secondary | Medium contrast borders. This is the most commonly used border color and is the default for most components (e.g. file uploaders), cards (such as tables), and content dividers. |
| border-secondary_alt | An alternative to secondary border that uses alpha transparency. This is used exclusively for floating menus such as input dropdowns and notifications to create sharper bottom border. |
| border-tertiary | Low contrast borders useful for very subtle dividers and borders such as line and bar chart axis dividers. |
| border-disabled | Default disabled border color for disabled states in components such as input fields and checkboxes. |
| border-disabled_subtle | A more subtle (lower contrast) alternative for disabled borders such as disabled buttons. |
| border-brand | Default brand border color. Useful for active states in components such as input fields. |
| border-brand_alt | An brand border color that switches to gray when in dark mode. Useful for components such as brand-style variants of banners and footers. |
| border-error | Default error state semantic border color. Useful for error states in components such as input fields and file uploaders. |
| border-error_subtle | A more subtle (lower contrast) alternative for error state semantic borders such as error state input fields. |
Foreground Color
Use foreground color variables to manage all non-text foreground elements in your designs across light and dark modes. Can be used via text-, bg-, ring-, outline-, stroke-, fill-, etc.
| Name | Usage |
|---|---|
| fg-primary | Highest contrast non-text foreground elements such as icons. |
| fg-secondary | High contrast non-text foreground elements such as icons. |
| fg-secondary_hover | Secondary foreground elements when in hover state. |
| fg-tertiary | Medium contrast non-text foreground elements such as icons. |
| fg-tertiary_hover | Tertiary foreground elements when in hover state. |
| fg-quaternary | Low contrast non-text foreground elements such as icons in buttons, help icons and icons used in input fields. |
| fg-quaternary_hover | Quaternary foreground elements when in hover state, such as help icons. |
| fg-white | Foreground elements that are always white, regardless of the mode. |
| fg-disabled | Default color for disabled non-text foreground elements such as icons in disabled button group buttons and input dropdown menu items. |
| fg-disabled_subtle | A more subtle (lower contrast) alternative for non-text disabled foreground elements such as disabled active checkboxes and tag checkboxes. |
| fg-brand-primary | Primary brand color non-text foreground elements such as featured icons and progress bars. |
| fg-brand-primary_alt | An alternative for primary brand color non-text foreground elements that switches to gray when in dark mode such as active horizontal tabs. |
| fg-brand-secondary | Secondary brand color non-text foreground elements such as accents and arrows in marketing site sections (e.g. hero header sections). |
| fg-brand-secondary_alt | An alternative for secondary brand color non-text foreground elements that switches to gray when in dark mode such as brand buttons. |
| fg-error-primary | Primary error state color for non-text foreground elements such as featured icons. |
| fg-error-secondary | Secondary error state color for non-text foreground elements such as icons in error state input fields and negative metrics item charts and icons. |
| fg-warning-primary | Primary warning state color for non-text foreground elements such as featured icons. |
| fg-warning-secondary | Secondary warning state color for non-text foreground elements. |
| fg-success-primary | Primary success state color for non-text foreground elements such as featured icons. |
| fg-success-secondary | Secondary success state color for non-text foreground elements such as button dots, avatar online indicator dots, and positive metrics item charts and icons. |
Background Color
Use background color variables to manage all fill colors for elements in your designs across light and dark modes.
| Name | Usage |
|---|---|
| bg-primary | The primary background color (white) used across all layouts and components. |
| bg-primary_alt | An alternative primary background color (white) that switches to bg-secondary when in dark mode. |
| bg-primary_hover | Primary background hover color. This acts as the default hover state background color for components with white backgrounds (e.g. input dropdown menu items). |
| bg-primary-solid | The primary dark background color used across layouts and components. This switches to bg-secondary when in dark mode and is useful for components such as tooltips and Text editor tooltips. |
| bg-secondary | The secondary background color used to create contrast against white backgrounds, such as website section backgrounds. |
| bg-secondary_alt | An alternative secondary background color that switches to bg-primary when in dark mode. Useful for components such as border-style horizontal tabs. |
| bg-secondary_hover | Secondary background hover color. Useful for hover states for components with gray-50 backgrounds such as active states (e.g. navigation items and date pickers). |
| bg-secondary_subtle | An alternative secondary background color that is slightly lighter and more subtle in light mode. This is useful for components such as banners. |
| bg-secondary-solid | The secondary dark background color used across layouts and components. This is useful for components such as featured icons. |
| bg-tertiary | The tertiary background color used to create contrast against light backgrounds such as toggles. |
| bg-quaternary | The quaternary background color used to create contrast against light backgrounds, such as sliders and progress bars. |
| bg-active | Default active background color for components such as selected menu items in input dropdowns. |
| bg-disabled | Default disabled background color for components such as disabled primary buttons and toggles. |
| bg-disabled_subtle | An alternative disabled background color that is more subtle. This is useful for components such as disabled input fields and checkboxes. |
| bg-overlay | Default background color for background overlays. These are useful for overlay components such as modals. |
| bg-brand-primary | The primary brand background color. Useful for components such as check icons. |
| bg-brand-primary_alt | An alternative primary brand background color that switches to bg-secondary when in dark mode. Useful for components such as active horizontal tabs. |
| bg-brand-secondary | The secondary brand background color. Useful for components such as featured icons. |
| bg-brand-solid | Default solid (dark) brand background color. Useful for components such as toggles and messages. |
| bg-brand-solid_hover | Solid brand background color when in hover state. Useful for components such as toggles. |
| bg-brand-section | This is the default dark brand color background used for website sections such as CTA sections and testimonials. Switches to bg-secondary when in dark mode. |
| bg-brand-section_subtle | An alternative brand section background color to provide contrast for website sections such as FAQ sections. Switches to bg-primary when in dark mode. |
| bg-error-primary | Primary error state background color for components such as buttons. |
| bg-error-secondary | Secondary error state background color for components such as featured icons. |
| bg-error-solid | Default solid (dark) error state background color for components such as buttons, featured icons and metric items. |
| bg-error-solid_hover | Default solid (dark) error hover state background color for components such as buttons. |
| bg-warning-primary | Primary warning state background color for components. |
| bg-warning-secondary | Secondary warning state background color for components such as featured icons. |
| bg-warning-solid | Default solid (dark) warning state background color for components such as featured icons. |
| bg-success-primary | Primary success state background color for components. |
| bg-success-secondary | Secondary success state background color for components such as featured icons. |
| bg-success-solid | Default solid (dark) success state background color for components such as featured icons and metric items. |