@zevra/ui 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DECISIONS.md +24 -0
- package/README.md +64 -1
- package/demo/index.html +33 -0
- package/dist/actions.d.ts +41 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +24 -0
- package/dist/actions.js.map +1 -0
- package/dist/catalogue.d.ts +30 -0
- package/dist/catalogue.d.ts.map +1 -0
- package/dist/catalogue.js +881 -0
- package/dist/catalogue.js.map +1 -0
- package/dist/content.d.ts +186 -0
- package/dist/content.d.ts.map +1 -0
- package/dist/content.js +122 -0
- package/dist/content.js.map +1 -0
- package/dist/css-inline.d.ts +11 -0
- package/dist/css-inline.d.ts.map +1 -0
- package/dist/css-inline.js +13 -0
- package/dist/css-inline.js.map +1 -0
- package/dist/cx.d.ts +16 -0
- package/dist/cx.d.ts.map +1 -0
- package/dist/cx.js +20 -0
- package/dist/cx.js.map +1 -0
- package/dist/data.d.ts +136 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +98 -0
- package/dist/data.js.map +1 -0
- package/dist/feedback.d.ts +88 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/feedback.js +38 -0
- package/dist/feedback.js.map +1 -0
- package/dist/forms.d.ts +120 -0
- package/dist/forms.d.ts.map +1 -0
- package/dist/forms.js +60 -0
- package/dist/forms.js.map +1 -0
- package/dist/icon-data.d.ts +6 -0
- package/dist/icon-data.d.ts.map +1 -0
- package/dist/icon-data.js +77 -0
- package/dist/icon-data.js.map +1 -0
- package/dist/icon.d.ts +33 -0
- package/dist/icon.d.ts.map +1 -0
- package/dist/icon.js +13 -0
- package/dist/icon.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/layout.d.ts +167 -0
- package/dist/layout.d.ts.map +1 -0
- package/dist/layout.js +121 -0
- package/dist/layout.js.map +1 -0
- package/dist/navigation.d.ts +150 -0
- package/dist/navigation.d.ts.map +1 -0
- package/dist/navigation.js +104 -0
- package/dist/navigation.js.map +1 -0
- package/dist/overlays.d.ts +68 -0
- package/dist/overlays.d.ts.map +1 -0
- package/dist/overlays.js +114 -0
- package/dist/overlays.js.map +1 -0
- package/dist/surfaces.d.ts +61 -0
- package/dist/surfaces.d.ts.map +1 -0
- package/dist/surfaces.js +54 -0
- package/dist/surfaces.js.map +1 -0
- package/dist/typography.d.ts +89 -0
- package/dist/typography.d.ts.map +1 -0
- package/dist/typography.js +76 -0
- package/dist/typography.js.map +1 -0
- package/package.json +36 -4
- package/react/actions.tsx +138 -0
- package/react/catalogue.tsx +1752 -0
- package/react/content.tsx +417 -0
- package/react/css-inline.ts +14 -0
- package/react/cx.ts +20 -0
- package/react/data.tsx +300 -0
- package/react/feedback.tsx +229 -0
- package/react/forms.tsx +383 -0
- package/react/icon-data.ts +114 -0
- package/react/icon.tsx +84 -0
- package/react/index.ts +42 -0
- package/react/layout.tsx +348 -0
- package/react/navigation.tsx +329 -0
- package/react/overlays.tsx +237 -0
- package/react/surfaces.tsx +161 -0
- package/react/typography.tsx +220 -0
- package/src/components.css +201 -0
- package/src/layout.css +4 -0
package/src/components.css
CHANGED
|
@@ -524,8 +524,182 @@
|
|
|
524
524
|
background: var(--spectre);
|
|
525
525
|
}
|
|
526
526
|
|
|
527
|
+
|
|
528
|
+
/* ─── Blocs éditoriaux ──────────────────────────────────────────────────
|
|
529
|
+
* HORS RELEVÉ — ajoutés le 24/08/2026 à la demande de la DA (règle de
|
|
530
|
+
* variété : jamais deux blocs de même forme qui se suivent, 80 % de formes
|
|
531
|
+
* différentes par page). Quatre façons de poser du contenu SANS carte,
|
|
532
|
+
* pour que les grilles de cartes redeviennent un choix et non un réflexe.
|
|
533
|
+
* Dessinés dans les tokens existants, rien de nouveau dans la palette. */
|
|
534
|
+
|
|
535
|
+
/* Rangées à filets : un libellé fort, un contenu, un trait fin entre
|
|
536
|
+
* chaque rangée. Pour les listes où l'alignement fait la lecture
|
|
537
|
+
* (profils rencontrés, prestations, caractéristiques). */
|
|
538
|
+
.zv-rows {
|
|
539
|
+
display: flex;
|
|
540
|
+
flex-direction: column;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
.zv-rows__row {
|
|
544
|
+
display: flex;
|
|
545
|
+
gap: 24px;
|
|
546
|
+
align-items: baseline;
|
|
547
|
+
flex-wrap: wrap;
|
|
548
|
+
padding: 18px 0;
|
|
549
|
+
border-top: 1px solid var(--line);
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
.zv-rows__row:first-child {
|
|
553
|
+
border-top: none;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
.zv-rows__key {
|
|
557
|
+
font-weight: 600;
|
|
558
|
+
flex: 0 0 280px;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
.zv-rows__val {
|
|
562
|
+
flex: 1;
|
|
563
|
+
min-width: 260px;
|
|
564
|
+
/* C'est le corps de texte du paquet — le token, pas sa valeur recopiée. */
|
|
565
|
+
font-size: var(--body);
|
|
566
|
+
line-height: 1.6;
|
|
567
|
+
color: var(--muted);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/* Sommaire numéroté : le numéro en display léger, le contenu à droite,
|
|
571
|
+
* un filet entre les entrées. Pour les suites longues qui étoufferaient
|
|
572
|
+
* en cartes (offres détaillées, programmes). */
|
|
573
|
+
.zv-index {
|
|
574
|
+
display: flex;
|
|
575
|
+
flex-direction: column;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.zv-index__item {
|
|
579
|
+
display: flex;
|
|
580
|
+
gap: 28px;
|
|
581
|
+
align-items: flex-start;
|
|
582
|
+
padding: 28px 0;
|
|
583
|
+
border-top: 1px solid var(--line);
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
.zv-index__item:first-child {
|
|
587
|
+
border-top: none;
|
|
588
|
+
padding-top: 0;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
.zv-index__num {
|
|
592
|
+
font-family: var(--font-display);
|
|
593
|
+
font-weight: 300;
|
|
594
|
+
font-size: 40px;
|
|
595
|
+
line-height: 1;
|
|
596
|
+
letter-spacing: -0.02em;
|
|
597
|
+
color: var(--accent-deep);
|
|
598
|
+
flex: 0 0 64px;
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
.zv-index__body {
|
|
602
|
+
flex: 1;
|
|
603
|
+
min-width: 0;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
/* Variante en colonnes : les mêmes entrées numérotées, posées en grille
|
|
607
|
+
* de trois, sans filets — l'espace fait la séparation. */
|
|
608
|
+
.zv-index--cols {
|
|
609
|
+
display: grid;
|
|
610
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
611
|
+
gap: 40px 32px;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
.zv-index--cols .zv-index__item {
|
|
615
|
+
flex-direction: column;
|
|
616
|
+
gap: 10px;
|
|
617
|
+
padding: 0;
|
|
618
|
+
border-top: none;
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
.zv-index--cols .zv-index__num {
|
|
622
|
+
flex: none;
|
|
623
|
+
font-size: 32px;
|
|
624
|
+
color: var(--accent-line);
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
/* Déroulé vertical : le rail et ses points, à la verticale. La déclinaison
|
|
628
|
+
* verticale de zv-steps, pour les méthodes qui se lisent comme un récit.
|
|
629
|
+
* Les points reprennent les couleurs des points de méthode (l'un des
|
|
630
|
+
* trois emplois autorisés du spectre). */
|
|
631
|
+
.zv-flow {
|
|
632
|
+
position: relative;
|
|
633
|
+
display: flex;
|
|
634
|
+
flex-direction: column;
|
|
635
|
+
gap: 36px;
|
|
636
|
+
padding-left: 32px;
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
.zv-flow::before {
|
|
640
|
+
content: '';
|
|
641
|
+
position: absolute;
|
|
642
|
+
left: 5px;
|
|
643
|
+
top: 8px;
|
|
644
|
+
bottom: 8px;
|
|
645
|
+
width: 2px;
|
|
646
|
+
background: var(--line);
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
.zv-flow__step {
|
|
650
|
+
position: relative;
|
|
651
|
+
--zv-flow-dot: var(--iris);
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
.zv-flow__step::before {
|
|
655
|
+
content: '';
|
|
656
|
+
position: absolute;
|
|
657
|
+
left: -32px;
|
|
658
|
+
top: 5px;
|
|
659
|
+
width: 12px;
|
|
660
|
+
height: 12px;
|
|
661
|
+
border-radius: 50%;
|
|
662
|
+
background: var(--zv-flow-dot);
|
|
663
|
+
box-shadow:
|
|
664
|
+
0 0 0 4px var(--paper),
|
|
665
|
+
0 0 0 5px var(--accent-line);
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.zv-flow__step--violet {
|
|
669
|
+
--zv-flow-dot: var(--violet);
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.zv-flow__step--cyan {
|
|
673
|
+
--zv-flow-dot: var(--cyan);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
/* Encart d'appel : une bande claire sur fond indigo dilué, un titre, une
|
|
677
|
+
* action. Pour l'offre transverse qui doit se voir sans crier
|
|
678
|
+
* (remise Campus, renvoi vers une autre page). */
|
|
679
|
+
.zv-callout {
|
|
680
|
+
display: flex;
|
|
681
|
+
align-items: center;
|
|
682
|
+
justify-content: space-between;
|
|
683
|
+
gap: 24px;
|
|
684
|
+
flex-wrap: wrap;
|
|
685
|
+
background: var(--accent-soft);
|
|
686
|
+
border: 1px solid var(--accent-line);
|
|
687
|
+
border-radius: var(--r-card);
|
|
688
|
+
padding: 32px 36px;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
.zv-callout__title {
|
|
692
|
+
margin: 0;
|
|
693
|
+
font-family: var(--font-display);
|
|
694
|
+
font-weight: 300;
|
|
695
|
+
letter-spacing: -0.01em;
|
|
696
|
+
font-size: 26px;
|
|
697
|
+
line-height: 1.2;
|
|
698
|
+
}
|
|
699
|
+
|
|
527
700
|
/* ─── Mobile ────────────────────────────────────────────────────────────*/
|
|
528
701
|
|
|
702
|
+
|
|
529
703
|
@media (max-width: 767px) {
|
|
530
704
|
.zv-btn--sm {
|
|
531
705
|
height: 36px;
|
|
@@ -549,4 +723,31 @@
|
|
|
549
723
|
.zv-inset {
|
|
550
724
|
max-width: none;
|
|
551
725
|
}
|
|
726
|
+
|
|
727
|
+
.zv-rows__key {
|
|
728
|
+
flex-basis: 100%;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
.zv-index__item {
|
|
732
|
+
gap: 18px;
|
|
733
|
+
padding: 22px 0;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.zv-index__num {
|
|
737
|
+
flex-basis: 44px;
|
|
738
|
+
font-size: 30px;
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
.zv-index--cols {
|
|
742
|
+
grid-template-columns: minmax(0, 1fr);
|
|
743
|
+
gap: 28px;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
.zv-callout {
|
|
747
|
+
padding: 24px 22px;
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
.zv-callout__title {
|
|
751
|
+
font-size: 21px;
|
|
752
|
+
}
|
|
552
753
|
}
|
package/src/layout.css
CHANGED
|
@@ -61,7 +61,9 @@
|
|
|
61
61
|
|
|
62
62
|
.zv-col-3 { grid-column: span 3; }
|
|
63
63
|
.zv-col-4 { grid-column: span 4; }
|
|
64
|
+
.zv-col-5 { grid-column: span 5; }
|
|
64
65
|
.zv-col-6 { grid-column: span 6; }
|
|
66
|
+
.zv-col-7 { grid-column: span 7; }
|
|
65
67
|
.zv-col-8 { grid-column: span 8; }
|
|
66
68
|
.zv-col-9 { grid-column: span 9; }
|
|
67
69
|
|
|
@@ -520,7 +522,9 @@
|
|
|
520
522
|
|
|
521
523
|
.zv-col-3,
|
|
522
524
|
.zv-col-4,
|
|
525
|
+
.zv-col-5,
|
|
523
526
|
.zv-col-6,
|
|
527
|
+
.zv-col-7,
|
|
524
528
|
.zv-col-8,
|
|
525
529
|
.zv-col-9,
|
|
526
530
|
.zv-section-head__main,
|