first commit
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-09-28 13:52:25 +07:00
commit 566275348c
262 changed files with 37008 additions and 0 deletions
@@ -0,0 +1,47 @@
import Icon from '@/components/site/icon';
import { cn } from '@/lib/utils';
const sizes = {
sm: 'h-10 w-10 rounded-xl text-xl',
md: 'h-12 w-12 rounded-xl text-2xl',
lg: 'h-14 w-14 rounded-2xl text-3xl',
} as const;
const tones = {
soft: 'border border-primary/30 bg-primary-container/10 text-primary dark:bg-primary-container/20',
solid: 'bg-primary-container text-white',
neutral:
'border border-outline-variant/50 bg-surface-container-high text-primary',
} as const;
type IconTileProps = {
icon: string;
size?: keyof typeof sizes;
tone?: keyof typeof tones;
/** Fill with crimson when the parent `group` is hovered. */
groupHover?: boolean;
className?: string;
};
export default function IconTile({
icon,
size = 'sm',
tone = 'soft',
groupHover = false,
className,
}: IconTileProps) {
return (
<div
className={cn(
'flex shrink-0 items-center justify-center transition-all',
sizes[size],
tones[tone],
groupHover &&
'group-hover:bg-primary-container group-hover:text-white',
className,
)}
>
<Icon name={icon} />
</div>
);
}