laif-ds
Version:
Design System di Laif con componenti React basati su principi di Atomic Design
114 lines (84 loc) • 2.85 kB
Markdown
Circular user/avatar component with image and fallback. Accessible and easily styled.
---
| Prop | Type | Default | Description |
| ----------- | ----------------- | ----------- | ------------------------------------------------ |
| `className` | `string` | `""` | Additional classes for size/border/layout. |
| `children` | `React.ReactNode` | **required**| Typically `AvatarImage` and `AvatarFallback`. |
- `AvatarImage`: The image element.
- Props: `src`, `alt`, `className`.
- `AvatarFallback`: Fallback content shown when the image fails or loads slowly.
- Props: `children` (e.g., initials), `className`.
---
- **Shape**: Circular by default (`rounded-full`).
- **Sizing**: Control via `className` (e.g., `h-16 w-16`).
- **Fallback**: Displays initials or an icon when the image is unavailable.
---
## Examples
### With Image
```tsx
import { Avatar, AvatarImage, AvatarFallback } from "laif-ds";
export function WithImage() {
return (
<Avatar>
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
);
}
```
```tsx
import { Avatar, AvatarImage, AvatarFallback } from "laif-ds";
export function WithFallback() {
return (
<Avatar>
<AvatarImage src="" alt="User" />
<AvatarFallback>JD</AvatarFallback>
</Avatar>
);
}
```
```tsx
import { Avatar, AvatarImage, AvatarFallback } from "laif-ds";
export function CustomSize() {
return (
<Avatar className="h-16 w-16">
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
);
}
```
```tsx
import { Avatar, AvatarImage, AvatarFallback } from "laif-ds";
export function AvatarGroup() {
return (
<div className="flex -space-x-2">
<Avatar className="border-background border-2">
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>CN</AvatarFallback>
</Avatar>
<Avatar className="border-background border-2">
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>JD</AvatarFallback>
</Avatar>
<Avatar className="border-background border-2">
<AvatarImage src="https://github.com/shadcn.png" alt="@shadcn" />
<AvatarFallback>MK</AvatarFallback>
</Avatar>
</div>
);
}
```
---
- **Accessibility**: Provide `alt` text for `AvatarImage`.
- **Styling**: Combine with borders/shadows via `className`.