62317f2ad7
Mise en place du Design System ManageMate Group v0.2 — refonte du
système de tokens (préfixe --mmg-color-*), 9 presets accent
user-themable validés WCAG AA, overlays Radix UI + Floating UI,
Storybook 8 + Vitest + axe-core en CI, doc Astro Starlight,
DESIGN.md (format google-labs-code) et exports tokens DTCG/CSS/
TS/Figma/Tailwind v3 et v4.
- 4 packages monorepo pnpm : @managemate/{tokens,css,react,icons}
- 62 composants React headless-first (Sheet, HoverCard, ContextMenu,
Slider, ToggleGroup, AvatarGroup, UserCard, ProfileHeader,
MetricCard, PricingCard, FeatureCard, Text/Display/Eyebrow/Lead…)
- Lint contraste WCAG : 37/37 paires AA, branché CI
- Toast pile Sonner-style avec ResizeObserver
- Theming user (9 presets) sans casser sémantique fixe
- Identité Synapse (rose #D12B6A) préservée
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
23 lines
514 B
TypeScript
23 lines
514 B
TypeScript
import type { ButtonHTMLAttributes } from "react";
|
|
import { cx } from "./utils";
|
|
import { Icon, type IconName } from "./Icon";
|
|
|
|
export type FabProps = ButtonHTMLAttributes<HTMLButtonElement> & {
|
|
icon: IconName;
|
|
label: string;
|
|
};
|
|
|
|
export function Fab({ icon, label, className, ...rest }: FabProps) {
|
|
return (
|
|
<button
|
|
type="button"
|
|
className={cx("mmg-fab", className)}
|
|
aria-label={label}
|
|
title={label}
|
|
{...rest}
|
|
>
|
|
<Icon name={icon} size="lg" />
|
|
</button>
|
|
);
|
|
}
|