expria-frontend/src/features/simulations/components/SujetCard.tsx
Hermann_Kitio b68f160bce feat(design-system): reskin Charcoal — tokens dark-default + sidebar navy permanent
- Remplacement intégral index.css par palette Charcoal (DESIGN_SYSTEM.md v2.0)
- Dark = thème par défaut, .light = override via @custom-variant light
- Sidebar navy #0C1528 permanent (identique dark+light)
- Script anti-FOUC inline dans index.html
- Layout : radial-gradient sur <main>, sidebar 230px, max-w-[1100px]
- Renommage tokens Boréal→Charcoal sur ~45 composants
- Inversion dark: → baseline + light: sur primitives shadcn
- Fix logo blanc forcé dans sidebar
- ADR 006 mis à jour

Typecheck: OK · Tests: 122/122 

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 23:09:15 +03:00

31 lines
978 B
TypeScript

/**
* Carte cliquable pour un sujet dans la grille /sujets.
*
* Rendu : consigne tronquée sur 3 lignes (line-clamp-3) + badge rôle si présent.
* Règle H : purement présentationnel — l'action vient du parent.
* Règle L : tokens Direction H via la primitive Card (variant interactive).
*/
import { Badge } from '@/shared/ui/Badge'
import { Card } from '@/shared/ui/Card'
import type { SujetData } from '@/entities/production/types'
interface Props {
sujet: SujetData
onSelect: (sujet: SujetData) => void
}
export function SujetCard({ sujet, onSelect }: Props) {
return (
<Card variant="interactive" onClick={() => onSelect(sujet)}>
<div className="flex h-full flex-col gap-3 p-4 text-left">
{sujet.role && (
<div>
<Badge variant="neutral">{sujet.role}</Badge>
</div>
)}
<p className="line-clamp-3 text-sm leading-relaxed text-ink-primary">{sujet.consigne}</p>
</div>
</Card>
)
}