- Ruhiges Dark-Designsystem (Tokens, Karten, Badges/Pills, KPIs) in global.css, animierter PixelBlast-Hintergrund entfernt (kleineres Bundle) - Aufgeraeumter App-Rahmen: feste Sidebar mit sichtbaren Labels, gruppierter Navigation, aktivem Zustand und Collapse - Wiederverwendbare UI-Bausteine unter src/components/ui/ - Ticketliste als scanbare Karten (TicketCard) statt rowSpan-Tabelle - Neue Bereiche: Kunden (CRM-360), Finanzen-Cockpit, Dokumente-Browser - Dashboard als echtes Cockpit (Ticket-/Finanz-/Dokument-Kennzahlen) - Alle Seiten auf einheitlichen PageHeader/Container/Tokens umgestellt Co-authored-by: Cursor <cursoragent@cursor.com>
24 lines
480 B
React
24 lines
480 B
React
const VARIANTS = {
|
|
default: 'ui-btn',
|
|
primary: 'ui-btn ui-btn-primary',
|
|
ghost: 'ui-btn ui-btn-ghost',
|
|
danger: 'ui-btn ui-btn-danger',
|
|
}
|
|
|
|
export default function Button({
|
|
variant = 'default',
|
|
size,
|
|
as = 'button',
|
|
className = '',
|
|
children,
|
|
...props
|
|
}) {
|
|
const cls = `${VARIANTS[variant] || VARIANTS.default}${size === 'sm' ? ' ui-btn-sm' : ''} ${className}`
|
|
const Comp = as
|
|
return (
|
|
<Comp className={cls} {...props}>
|
|
{children}
|
|
</Comp>
|
|
)
|
|
}
|