import React from 'react' interface ComponentCardProps { title: string desc: string href: string children: React.ReactNode } const cardStyle: React.CSSProperties = { display: 'flex', flexDirection: 'column', border: '1px solid #e8e8e8', borderRadius: 8, textDecoration: 'none', color: 'inherit', transition: 'all 0.3s cubic-bezier(0.4, 0, 0.2, 1)', background: '#fff', overflow: 'hidden', } const previewStyle: React.CSSProperties = { display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '28px 16px 20px', background: '#fafafa', minHeight: 72, borderBottom: '1px solid #f0f0f0', flexWrap: 'wrap', gap: 8, } const infoStyle: React.CSSProperties = { padding: '14px 16px', flex: 1, } const titleStyle: React.CSSProperties = { fontWeight: 500, fontSize: 14, color: 'rgba(0, 0, 0, 0.88)', marginBottom: 2, } const descStyle: React.CSSProperties = { fontSize: 12, color: 'rgba(0, 0, 0, 0.45)', lineHeight: 1.4, } export const ComponentCard: React.FC = ({ title, desc, href, children }) => { const [hovered, setHovered] = React.useState(false) const currentStyle: React.CSSProperties = { ...cardStyle, ...(hovered ? { borderColor: '#1890ff', boxShadow: '0 4px 12px rgba(24, 144, 255, 0.15)', transform: 'translateY(-2px)', } : {}), } return ( setHovered(true)} onMouseLeave={() => setHovered(false)} >
{children}
{title}
{desc}
) } export default ComponentCard