Nicholai bba1bab8c2 feat(components): initialize custom component library with foundational files
- Added essential configuration files including components.json, package.json, and tsconfig.json to establish the component library structure.
- Introduced global styles in globals.css and layout structure in layout.tsx for consistent design application.
- Implemented various UI components such as Accordion, AlertDialog, Button, Card, and more, enhancing the component library for future development.
- Included utility functions and hooks to support component functionality and responsiveness.

This commit sets up the groundwork for a comprehensive UI component library, facilitating a modular and scalable design system.
2025-11-25 03:01:30 -07:00

41 lines
1.1 KiB
TypeScript

"use client"
import * as React from "react"
import { cn } from "@/lib/utils"
export interface ColorSwatchProps extends React.HTMLAttributes<HTMLDivElement> {
hex: string
name: string
usage: string
bgColor?: string
}
const ColorSwatch = React.forwardRef<HTMLDivElement, ColorSwatchProps>(
({ className, hex, name, usage, bgColor, ...props }, ref) => {
return (
<div
ref={ref}
className={cn(
"rounded-[24px] p-6 text-white min-h-[220px]",
"flex flex-col justify-between",
"shadow-[var(--shadow-subtle)]",
"transition-transform duration-200 ease-out",
"hover:scale-105",
className,
)}
style={{ backgroundColor: bgColor || hex }}
{...props}
>
<div>
<strong className="text-xl font-semibold tracking-wide block">{hex}</strong>
<span className="text-[0.9rem] opacity-90">{name}</span>
</div>
<span className="text-[0.75rem] uppercase tracking-[0.15em] opacity-85">{usage}</span>
</div>
)
},
)
ColorSwatch.displayName = "ColorSwatch"
export { ColorSwatch }