Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
9542aae
fix(docs): update Link component to use Link.Root for consistency wit…
jrgarciadev Oct 24, 2025
d9adec2
feat: light theme in progress, button, spearator & accordion adjusted…
jrgarciadev Oct 24, 2025
a966254
feat: button and chip done
jrgarciadev Oct 25, 2025
9f88f7b
feat: enhance Skeleton component with new Grid and Single Shimmer pre…
jrgarciadev Oct 25, 2025
d2a52f7
feat: update Kbd component styles and add Abbr support in stories
jrgarciadev Oct 25, 2025
70e0f04
feat: avatar and chip updated
jrgarciadev Oct 25, 2025
311978e
fix(accordion): adjust separator styling for consistency in accordion…
jrgarciadev Oct 25, 2025
966a85c
refactor: close button adjsuted
jrgarciadev Oct 25, 2025
0264a16
feat(link): add underline variants and offset options to Link compone…
jrgarciadev Oct 25, 2025
bcdeec5
feat(link): enhance link component with hover state and transition ef…
jrgarciadev Oct 25, 2025
c88a455
refactor: surfaces variables are now calculated by default, card, but…
jrgarciadev Oct 26, 2025
230f998
refactor: update styles for various components to improve consistency…
jrgarciadev Oct 26, 2025
b62ab5b
feat(storybook): add welcome story and update story order; feat(style…
jrgarciadev Oct 26, 2025
9cf547e
Merge branch 'alpha-36' of github.com:heroui-inc/heroui into feat/new-ds
jrgarciadev Oct 26, 2025
8da09a0
refactor: update accordion, card, and kbd components to enhance styli…
jrgarciadev Oct 27, 2025
52aa089
refactor(link): update hover underline effect to use opacity transiti…
jrgarciadev Oct 27, 2025
8b4ae4e
refactor(styles): update background color variables and remove gradie…
jrgarciadev Oct 27, 2025
a3ba0f1
refactor(storybook): enhance color stories by adding calculated color…
jrgarciadev Oct 27, 2025
b97e290
refactor(styles): introduce background quaternary color and update sh…
jrgarciadev Oct 27, 2025
d21e844
feat: alert component created
jrgarciadev Oct 27, 2025
6d6d5f5
refactor(alert-demo, x-profile-demo): simplify button usage and enhan…
jrgarciadev Oct 27, 2025
a0f6605
feat: input otp
jrgarciadev Oct 28, 2025
96819d5
feat: inpuit otp docs
jrgarciadev Oct 28, 2025
602d6b2
refactor(switch): enhance styling with improved transition timings an…
jrgarciadev Oct 28, 2025
9b7143f
feat: home page design in progress
jrgarciadev Oct 28, 2025
26423e6
feat: add Surface component with context-based on-surface styling
jrgarciadev Oct 29, 2025
3e3bf3f
feat: add Surface component documentation and update meta.json
jrgarciadev Oct 29, 2025
9d11cd0
feat(card): implement form handling in WithForm story using Form, Inp…
jrgarciadev Oct 30, 2025
a1857c3
feat(card): refactor WithForm to use Form component for improved form…
jrgarciadev Oct 30, 2025
961abc0
refactor(accordion): remove background class from stories and enhance…
jrgarciadev Oct 30, 2025
17c5fb9
refactor(accordion): update variant from elevated to surface across c…
jrgarciadev Oct 30, 2025
2a31243
Merge branch 'alpha-36' of github.com:heroui-inc/heroui into feat/new-ds
jrgarciadev Oct 30, 2025
797a59a
feat: add checkbox-group component and checkbox enhancements
jrgarciadev Oct 30, 2025
f2423c1
feat(demo): add UIComponentsDemo to the DemoComponents
jrgarciadev Oct 30, 2025
15a25fc
refactor: migrate Component.Root to Component in docs and demos
jrgarciadev Oct 30, 2025
8ebde84
style: update global styles and card component
jrgarciadev Oct 30, 2025
07dfabc
feat(storybook): enhance color stories with new "On Surface" color va…
jrgarciadev Oct 30, 2025
ef84c55
feat(demos): update chip component props from 'type' to 'color' and a…
jrgarciadev Oct 30, 2025
3ce2e96
feat(demos): add "use client" directive to basic button demo
jrgarciadev Oct 30, 2025
f3a3039
refactor: theme variables update background color in dark mode
jrgarciadev Oct 30, 2025
7abdb86
feat(demos): add "use client" directive to multiple demo files
jrgarciadev Oct 30, 2025
34caf9e
feat(demos): add FieldError component to TextfieldDemo for improved v…
jrgarciadev Oct 31, 2025
869d0d1
fix(demo): update avatar images and names in avatar-group-demo for co…
jrgarciadev Oct 31, 2025
0cc96fb
feat: listbox component preview created and documented
jrgarciadev Oct 31, 2025
f1bc8d7
feat: selecte component created
jrgarciadev Nov 1, 2025
c63a47e
feat: export React Aria components from rac module
jrgarciadev Nov 1, 2025
9ae5590
feat: slider component created, documentation styles and content upda…
jrgarciadev Nov 3, 2025
1d0a1c6
fix(demo): correct spelling of "credits" in AlertDemo component
jrgarciadev Nov 3, 2025
1f037c3
refactor(docs): simplify component usage by using compound pattern (#…
tianenpang Nov 3, 2025
20f9237
feat(docs): enhance component preview with intersection observer for …
jrgarciadev Nov 3, 2025
e3e8dd1
feat(docs): enhance code block styling and functionality with isolate…
jrgarciadev Nov 3, 2025
21cfd0b
chore(root): upgrade package manager
tianenpang Nov 3, 2025
b80043e
fix(docs): update image sources and enhance styling across various co…
jrgarciadev Nov 3, 2025
7a6e0c2
Merge branch 'feat/new-ds' of github.com:heroui-inc/heroui into feat/…
jrgarciadev Nov 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .claude/agents/tailwind-v4-css-expert.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ You communicate technical concepts clearly and can assist both human developers

```css
/* Good */
@apply bg-panel rounded-lg border p-4 shadow-md;
@apply bg-surface rounded-lg border p-4 shadow-md;
```

2. **Keep custom CSS properties**: Don't convert properties without Tailwind utilities
Expand Down
2 changes: 1 addition & 1 deletion .claude/guides/tailwindcss-v4-css-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ Tailwind CSS v4 embraces CSS custom properties for theming and dynamic values:
```css
.component {
/* Good: Use @apply for Tailwind utilities */
@apply bg-panel rounded-lg border p-4 shadow-md;
@apply bg-surface rounded-lg border p-4 shadow-md;

/* Keep custom CSS for non-utility properties */
cursor: var(--cursor-interactive);
Expand Down
15 changes: 7 additions & 8 deletions apps/docs/content/docs/components/accordion.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
title: Accordion
description: A collapsible content panel for organizing information in a compact space
icon: updated
links:
rac: Disclosure
source: accordion/accordion.tsx
Expand Down Expand Up @@ -31,7 +30,7 @@ Import the Accordion component and access all parts using dot notation.
import { Accordion } from '@heroui/react';

export default () => (
<Accordion.Root>
<Accordion>
<Accordion.Item>
<Accordion.Heading>
<Accordion.Trigger>
Expand All @@ -42,7 +41,7 @@ export default () => (
<Accordion.Body/>
</Accordion.Panel>
</Accordion.Item>
</Accordion.Root>
</Accordion>
)
```

Expand Down Expand Up @@ -120,7 +119,7 @@ const items = [
export function CustomStyles() {
return (
<Accordion.Root className="bg-surface-1 w-full max-w-md rounded-2xl" variant="outline">
<Accordion className="bg-surface-secondary w-full max-w-md rounded-2xl" variant="surface">
{items.map((item, index) => (
<Accordion.Item
key={index}
Expand All @@ -131,7 +130,7 @@ export function CustomStyles() {
)}
>
<Accordion.Heading>
<Accordion.Trigger className="hover:bg-surface-2 group flex items-center gap-2">
<Accordion.Trigger className="hover:bg-surface-tertiary group flex items-center gap-2">
{item.iconUrl ? (
<img
alt={item.title}
Expand All @@ -153,7 +152,7 @@ export function CustomStyles() {
</Accordion.Panel>
</Accordion.Item>
))}
</Accordion.Root>
</Accordion>
);
}`} />

Expand Down Expand Up @@ -211,7 +210,7 @@ The component supports both CSS pseudo-classes and data attributes for flexibili

## API Reference

### Accordion.Root Props
### Accordion Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
Expand All @@ -220,7 +219,7 @@ The component supports both CSS pseudo-classes and data attributes for flexibili
| `expandedKeys` | `Iterable<Key>` | - | The controlled expanded keys |
| `onExpandedChange` | `(keys: Set<Key>) => void` | - | Handler called when expanded keys change |
| `isDisabled` | `boolean` | `false` | Whether the entire accordion is disabled |
| `variant` | `"default" \| "outline"` | `"default"` | The visual variant of the accordion |
| `variant` | `"default" \| "surface"` | `"default"` | The visual variant of the accordion |
| `className` | `string` | - | Additional CSS classes |
| `children` | `ReactNode` | - | The accordion items |

Expand Down
153 changes: 153 additions & 0 deletions apps/docs/content/docs/components/alert.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
---
title: Alert
description: Display important messages and notifications to users with status indicators
icon: new
links:
source: alert/alert.tsx
styles: alert.css
storybook: alert
figma: true
---

## Import

```tsx
import { Alert } from '@heroui/react';
```

### Usage

<ComponentPreview
name="alert-basic"
/>


### Anatomy

Import the Alert component and access all parts using dot notation.

```tsx
import { Alert } from '@heroui/react';

export default () => (
<Alert>
<Alert.Indicator />
<Alert.Content>
<Alert.Title />
<Alert.Description />
</Alert.Content>
</Alert>
)
```

<RelatedComponents component="alert" />

## Styling

### Passing Tailwind CSS classes

```tsx
import { Alert } from "@heroui/react";

function CustomAlert() {
return (
<Alert className="border-2 border-blue-500 rounded-xl" status="accent">
<Alert.Indicator className="text-blue-600" />
<Alert.Content className="gap-1">
<Alert.Title className="font-bold text-lg">Custom Alert</Alert.Title>
<Alert.Description className="text-sm opacity-80">
This alert has custom styling applied
</Alert.Description>
</Alert.Content>
</Alert>
);
}
```

### Customizing the component classes

To customize the Alert component classes, you can use the `@layer components` directive.
<br/>[Learn more](https://tailwindcss.com/docs/adding-custom-styles#adding-component-classes).

```css
@layer components {
.alert {
@apply rounded-2xl shadow-lg;
}

.alert__title {
@apply font-bold text-lg;
}

.alert--danger {
@apply border-l-4 border-red-600;
}
}
```

HeroUI follows the [BEM](https://getbem.com/) methodology to ensure component variants and states are reusable and easy to customize.

### CSS Classes

The Alert component uses these CSS classes ([View source styles](https://github.com/heroui-inc/heroui/blob/v3/packages/styles/components/alert.css)):

#### Base Classes
- `.alert` - Base alert container
- `.alert__indicator` - Icon/indicator container
- `.alert__content` - Content wrapper for title and description
- `.alert__title` - Alert title text
- `.alert__description` - Alert description text

#### Status Variant Classes
- `.alert--default` - Default gray status
- `.alert--accent` - Accent blue status
- `.alert--success` - Success green status
- `.alert--warning` - Warning yellow/orange status
- `.alert--danger` - Danger red status

### Interactive States

The Alert component is primarily informational and doesn't have interactive states on the base component. However, it can contain interactive elements like buttons or close buttons.

## API Reference

### Alert Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `status` | `"default" \| "accent" \| "success" \| "warning" \| "danger"` | `"default"` | The visual status of the alert |
| `asChild` | `boolean` | `false` | Merge props onto the child element |
| `className` | `string` | - | Additional CSS classes |
| `children` | `ReactNode` | - | The alert content |

### Alert.Indicator Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `asChild` | `boolean` | `false` | Merge props onto the child element |
| `className` | `string` | - | Additional CSS classes |
| `children` | `ReactNode` | - | Custom indicator icon (defaults to status icon) |

### Alert.Content Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `asChild` | `boolean` | `false` | Merge props onto the child element |
| `className` | `string` | - | Additional CSS classes |
| `children` | `ReactNode` | - | Content (typically Title and Description) |

### Alert.Title Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `asChild` | `boolean` | `false` | Merge props onto the child element |
| `className` | `string` | - | Additional CSS classes |
| `children` | `ReactNode` | - | The alert title text |

### Alert.Description Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `asChild` | `boolean` | `false` | Merge props onto the child element |
| `className` | `string` | - | Additional CSS classes |
| `children` | `ReactNode` | - | The alert description text |
19 changes: 13 additions & 6 deletions apps/docs/content/docs/components/avatar.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
---
title: Avatar
description: Display user profile images with customizable fallback content
icon: updated
links:
radix: avatar
source: avatar/avatar.tsx
Expand All @@ -28,10 +27,10 @@ Import the Avatar component and access all parts using dot notation.
import { Avatar } from '@heroui/react';

export default () => (
<Avatar.Root>
<Avatar>
<Avatar.Image/>
<Avatar.Fallback/>
</Avatar.Root>
</Avatar>
)
```

Expand All @@ -43,6 +42,10 @@ export default () => (

<ComponentPreview name="avatar-colors" />

### Variants

<ComponentPreview name="avatar-variants" />

### Fallback Content

<ComponentPreview name="avatar-fallback" />
Expand All @@ -64,10 +67,10 @@ import { Avatar } from '@heroui/react';

function CustomAvatar() {
return (
<Avatar.Root className="size-20">
<Avatar className="size-20">
<Avatar.Image src="..." alt="..." />
<Avatar.Fallback>XL</Avatar.Fallback>
</Avatar.Root>
</Avatar>
);
}
```
Expand Down Expand Up @@ -105,6 +108,9 @@ The Avatar component uses these CSS classes ([View source styles](https://github
- `.avatar--md` - Medium avatar (default, no additional styles)
- `.avatar--lg` - Large avatar (size-12)

#### Variant Modifiers
- `.avatar--soft` - Soft variant with lighter background

#### Color Modifiers
- `.avatar__fallback--default` - Default text color
- `.avatar__fallback--accent` - Accent text color
Expand All @@ -114,12 +120,13 @@ The Avatar component uses these CSS classes ([View source styles](https://github

## API Reference

### Avatar.Root Props
### Avatar Props

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | Avatar size |
| `color` | `'default' \| 'accent' \| 'success' \| 'warning' \| 'danger'` | `'default'` | Fallback color theme |
| `variant` | `'default' \| 'soft'` | `'default'` | Visual style variant |
| `className` | `string` | - | Additional CSS classes |
| `asChild` | `boolean` | `false` | Render as child element |

Expand Down
Loading