Files
benevoles/frontend/tailwind.config.js
T
AdamThomasandClaude Sonnet 5 367dfe42eb Grille : colonnes par créneau (pas par heure), largeur adaptative
- `buildLattice` (frontend/src/lib/planning.ts) identifie une colonne par
  (date, heure de début, heure de fin) et non plus par la seule heure de
  début : deux créneaux qui démarrent en même temps mais durent
  différemment ont désormais chacun leur colonne, avec un en-tête « début
  → fin » au lieu du seul début.
- Largeur adaptative par jour (`columnWidthPx`) : peu de créneaux dans une
  journée ⇒ colonnes larges, beaucoup de créneaux ⇒ largeur compacte
  (défilement horizontal) — fini les colonnes étroites par défaut.
- `VolunteerViewPage` mis à jour pour rester synchronisé avec la nouvelle
  clé de colonne (fonction `buildLattice` partagée).
- CLAUDE.md à jour.

Corrige au passage `bg-hatch-mauve` (case en sureffectif) : la classe était
utilisée depuis le commit précédent mais l'utilitaire Tailwind
correspondant n'avait jamais été ajouté à `backgroundImage` — la case
retombait silencieusement sur un fond uni.

typecheck + lint + build + smoke OK.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
2026-09-11 20:28:41 +02:00

55 lines
2.0 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
// Palette et primitives issues du design Claude Design « Bénévoles Festival »
// (style néo-brutaliste : bordures franches, ombres portées dures, capitales).
export default {
content: ['./index.html', './src/**/*.{ts,tsx}'],
theme: {
extend: {
colors: {
cream: '#F5EFE1', // fond général
ink: '#14110E', // encre (quasi-noir)
paper: '#FFFDF7', // panneaux / cartes
sand: '#EFE8D6', // barres secondaires
'sand-line': '#E0D8C4', // séparateurs sur paper
'sand-dark': '#E7E0CE',
yellow: '#FFD23F',
'yellow-soft': '#FFE68A', // état « incomplet »
'yellow-hover': '#FFDF77',
orange: '#FF5C39',
'orange-dark': '#E0421F',
green: '#0E9F6E',
blue: '#A8C4FF',
'blue-strong': '#2A6BFF', // « non publié »
mauve: '#CBA6E3', // état « sureffectif »
'mauve-hover': '#BE93D9',
},
fontFamily: {
display: ['Archivo', 'Helvetica', 'Arial', 'sans-serif'],
mono: ['"DM Mono"', 'ui-monospace', 'SFMono-Regular', 'monospace'],
},
boxShadow: {
brutal: '3px 3px 0 #14110E',
'brutal-sm': '2px 2px 0 #14110E',
'brutal-md': '4px 4px 0 #14110E',
'brutal-lg': '6px 6px 0 #14110E',
},
backgroundImage: {
// Hachures « sous-effectif critique »
'hatch-orange':
'repeating-linear-gradient(45deg,#FF5C39 0 6px,#E0421F 6px 12px)',
'hatch-mauve':
'repeating-linear-gradient(45deg,#CBA6E3 0 6px,#BE93D9 6px 12px)',
// Hachures « brouillon »
'hatch-ink':
'repeating-linear-gradient(45deg,#14110E 0 8px,#2A2520 8px 16px)',
// Trame « poste fermé »
'hatch-sand':
'repeating-linear-gradient(45deg,#E9E2D0 0 5px,#DFD7C2 5px 10px)',
// Pointillés « disponibilité déclarée »
'dots-sand': 'radial-gradient(#CFC7B4 1px,transparent 1.2px)',
},
},
},
plugins: [],
};