Files
bscscore/src/lib/ui/Card.tsx
T
Frank Schwenk 8a46a8a019 refactor: extract reusable library
- move reusable domain, data, state, ui code into src/lib
- update host screens to consume new library exports
- document architecture and configure path aliases
- bump astro integration dependencies for compatibility

Refs #30
2025-11-13 10:41:55 +01:00

34 lines
717 B
TypeScript

import { h } from 'preact';
import styles from './Card.module.css';
interface CardProps {
children: any;
variant?: 'default' | 'elevated' | 'outlined';
padding?: 'none' | 'small' | 'medium' | 'large';
className?: string;
onClick?: () => void;
}
export function Card({
children,
variant = 'default',
padding = 'medium',
className = '',
onClick
}: CardProps) {
const classNames = [
styles.card,
styles[variant],
styles[`padding-${padding}`],
onClick && styles.clickable,
className,
].filter(Boolean).join(' ');
const Component = onClick ? 'button' : 'div';
return (
<Component className={classNames} onClick={onClick}>
{children}
</Component>
);
}