Files
btpxpress-frontend/components/chantiers/ActionButtonStyles.ts
2025-10-01 01:39:07 +00:00

115 lines
2.8 KiB
TypeScript

/**
* Styles distinctifs pour chaque bouton d'action
* Couleurs spécifiques et animations pour une UX premium
*/
export const ACTION_BUTTON_THEMES = {
VIEW: {
name: 'Vue Rapide',
icon: 'pi pi-eye',
colors: {
primary: '#3B82F6', // Bleu moderne
light: '#DBEAFE', // Bleu très clair
dark: '#1D4ED8', // Bleu foncé
text: '#1E40AF' // Texte bleu
},
className: ''
},
PHASES: {
name: 'Phases',
icon: 'pi pi-sitemap',
colors: {
primary: '#10B981', // Vert émeraude
light: '#D1FAE5', // Vert très clair
dark: '#059669', // Vert foncé
text: '#047857' // Texte vert
},
className: ''
},
PLANNING: {
name: 'Planning',
icon: 'pi pi-calendar',
colors: {
primary: '#8B5CF6', // Violet moderne
light: '#EDE9FE', // Violet très clair
dark: '#7C3AED', // Violet foncé
text: '#6D28D9' // Texte violet
},
className: ''
},
STATS: {
name: 'Statistiques',
icon: 'pi pi-chart-bar',
colors: {
primary: '#06B6D4', // Cyan moderne
light: '#CFFAFE', // Cyan très clair
dark: '#0891B2', // Cyan foncé
text: '#0E7490' // Texte cyan
},
className: ''
},
MENU: {
name: 'Plus d\'actions',
icon: 'pi pi-ellipsis-v',
colors: {
primary: '#6B7280', // Gris moderne
light: '#F3F4F6', // Gris très clair
dark: '#4B5563', // Gris foncé
text: '#374151' // Texte gris
},
className: ''
},
EDIT: {
name: 'Modifier',
icon: 'pi pi-pencil',
colors: {
primary: '#F59E0B', // Orange/Ambre
light: '#FEF3C7', // Orange très clair
dark: '#D97706', // Orange foncé
text: '#B45309' // Texte orange
},
className: ''
},
DELETE: {
name: 'Supprimer',
icon: 'pi pi-trash',
colors: {
primary: '#EF4444', // Rouge moderne
light: '#FEE2E2', // Rouge très clair
dark: '#DC2626', // Rouge foncé
text: '#B91C1C' // Texte rouge
},
className: ''
}
} as const;
export type ActionButtonType = keyof typeof ACTION_BUTTON_THEMES;
// Tailles compactes pour DataTable optimisée
export const BUTTON_SIZES = {
xs: {
padding: 'p-1',
iconSize: 'text-xs',
width: 'w-5 h-5' // Extra compact
},
sm: {
padding: 'p-1',
iconSize: 'text-sm',
width: 'w-6 h-6' // Compact
},
md: {
padding: 'p-2',
iconSize: 'text-base',
width: 'w-8 h-8'
},
lg: {
padding: 'p-2',
iconSize: 'text-lg',
width: 'w-10 h-10'
}
} as const;
// Style Rounded Text uniquement - autres variantes supprimées
export const BUTTON_VARIANTS = {
roundedText: 'p-button-text p-button-rounded'
} as const;