@maboussoleaidant/design-system 0.1.38 → 0.1.40
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/AGENTS.md +7 -4
- package/CHANGELOG.md +88 -0
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/assets/fonts/Congenial-Bold.woff2 +0 -0
- package/assets/fonts/Congenial-Medium.woff2 +0 -0
- package/assets/fonts/Congenial.woff2 +0 -0
- package/assets/fonts/MaterialSymbolsRounded.woff2 +0 -0
- package/assets/fonts/OpenSans-Bold.woff2 +0 -0
- package/assets/fonts/OpenSans-ExtraBold.woff2 +0 -0
- package/assets/fonts/OpenSans-Regular.woff2 +0 -0
- package/assets/fonts/OpenSans-SemiBold.woff2 +0 -0
- package/assets/icons-social.svg +0 -0
- package/assets/logo-mba-agirc-arrco-pro.svg +0 -0
- package/assets/logo-mba-agirc-arrco.svg +0 -0
- package/assets/wave.svg +0 -0
- package/dist/mba-design-system.css +778 -115
- package/dist/mba-design-system.css.map +1 -1
- package/dist/mba-design-system.min.css +2 -2
- package/dist/mba-tailwind.css +539 -5
- package/dist/mba-tailwind.css.map +1 -1
- package/dist/mba-tailwind.min.css +2 -2
- package/dist/mba-tokens-only.css +0 -0
- package/dist/mba-tokens-only.css.map +0 -0
- package/package.json +2 -1
- package/src/tailwind-preset.css +0 -0
- package/src/tokens/_breakpoints.css +0 -0
- package/src/tokens/_colors.css +0 -0
- package/src/tokens/_decorations.css +0 -0
- package/src/tokens/_radius.css +0 -0
- package/src/tokens/_shadows.css +0 -0
- package/src/tokens/_spacing.css +0 -0
- package/src/tokens/_transitions.css +0 -0
- package/src/tokens/_typography.css +0 -0
- package/src/tokens/index.css +0 -0
|
@@ -1,23 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
@layer theme, base, components, utilities;
|
|
1
3
|
/**
|
|
2
4
|
* MBA Design System
|
|
3
5
|
*
|
|
4
6
|
* Point d'entrée principal (sans Tailwind utilities)
|
|
5
7
|
* Inclut: tokens + base + composants
|
|
6
8
|
*/
|
|
7
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Ordre des cascade layers — DOIT rester la 1re règle du CSS compilé.
|
|
11
|
+
*
|
|
12
|
+
* Sans cette déclaration, les layers étaient ordonnés par ordre d'apparition
|
|
13
|
+
* (`components` puis `base`), ce qui faisait gagner le reset `base`
|
|
14
|
+
* (ex. `button { background-color: transparent }`, `a { … }`) sur les
|
|
15
|
+
* composants `.mba-*` de `@layer components` — y compris à l'intérieur d'un
|
|
16
|
+
* Shadow DOM qui importe ce fichier. En figeant l'ordre priorité croissante
|
|
17
|
+
* `theme < base < components < utilities`, les composants gagnent enfin sur
|
|
18
|
+
* le reset, comme attendu.
|
|
19
|
+
*/
|
|
8
20
|
/**
|
|
9
21
|
* MBA Design System - Tokens
|
|
10
22
|
*
|
|
11
23
|
* Point d'entrée pour tous les design tokens
|
|
12
24
|
*/
|
|
13
|
-
|
|
14
25
|
/**
|
|
15
26
|
* MBA Design System - Couleurs
|
|
16
27
|
*
|
|
17
28
|
* Palette de couleurs extraite du Design System Figma
|
|
18
29
|
* Préfixe: --mba-color-
|
|
19
30
|
*/
|
|
20
|
-
|
|
21
31
|
:root {
|
|
22
32
|
/* ===========================================
|
|
23
33
|
BASICS
|
|
@@ -173,14 +183,12 @@
|
|
|
173
183
|
/* Focus ring (accessibilité) */
|
|
174
184
|
--mba-focus-ring: 0 0 0 3px rgba(112, 57, 115, 0.25);
|
|
175
185
|
}
|
|
176
|
-
|
|
177
186
|
/**
|
|
178
187
|
* MBA Design System - Typographie
|
|
179
188
|
*
|
|
180
189
|
* Polices: Open Sans (textes) + Congenial (titres)
|
|
181
190
|
* Source: Design System Figma
|
|
182
191
|
*/
|
|
183
|
-
|
|
184
192
|
:root {
|
|
185
193
|
/* ===========================================
|
|
186
194
|
FAMILLES DE POLICES
|
|
@@ -229,12 +237,10 @@
|
|
|
229
237
|
--mba-tracking-wider: 0.05em;
|
|
230
238
|
--mba-tracking-widest: 0.1em;
|
|
231
239
|
}
|
|
232
|
-
|
|
233
240
|
/* ===========================================
|
|
234
241
|
HEADING PRESETS (Congenial)
|
|
235
242
|
Wrappé dans @layer components pour être overridable par utilities
|
|
236
243
|
=========================================== */
|
|
237
|
-
|
|
238
244
|
@layer components {
|
|
239
245
|
|
|
240
246
|
/* XXL - 48px Bold */
|
|
@@ -338,16 +344,13 @@
|
|
|
338
344
|
}
|
|
339
345
|
|
|
340
346
|
}
|
|
341
|
-
|
|
342
347
|
/* end @layer components */
|
|
343
|
-
|
|
344
348
|
/**
|
|
345
349
|
* MBA Design System - Espacements
|
|
346
350
|
*
|
|
347
351
|
* Échelle d'espacements extraite du Design System Figma
|
|
348
352
|
* Préfixe: --mba-space-
|
|
349
353
|
*/
|
|
350
|
-
|
|
351
354
|
:root {
|
|
352
355
|
/* ===========================================
|
|
353
356
|
ÉCHELLE FIGMA
|
|
@@ -372,14 +375,12 @@
|
|
|
372
375
|
=========================================== */
|
|
373
376
|
--mba-container-width: 70rem; /* 1120px */
|
|
374
377
|
}
|
|
375
|
-
|
|
376
378
|
/**
|
|
377
379
|
* MBA Design System - Border Radius
|
|
378
380
|
*
|
|
379
381
|
* Échelle de rayons de bordure extraite du Design System Figma
|
|
380
382
|
* Préfixe: --mba-radius-
|
|
381
383
|
*/
|
|
382
|
-
|
|
383
384
|
:root {
|
|
384
385
|
/* ===========================================
|
|
385
386
|
ÉCHELLE FIGMA
|
|
@@ -398,7 +399,6 @@
|
|
|
398
399
|
--mba-radius-none: 0;
|
|
399
400
|
--mba-radius-full: 9999px;
|
|
400
401
|
}
|
|
401
|
-
|
|
402
402
|
/**
|
|
403
403
|
* MBA Design System - Ombres (Elevation)
|
|
404
404
|
*
|
|
@@ -406,7 +406,6 @@
|
|
|
406
406
|
* Couleur de base: Grey 400 (#71717A / rgba(113, 113, 122))
|
|
407
407
|
* Préfixe: --mba-shadow-
|
|
408
408
|
*/
|
|
409
|
-
|
|
410
409
|
:root {
|
|
411
410
|
/* ===========================================
|
|
412
411
|
ÉCHELLE FIGMA (Elevation)
|
|
@@ -450,13 +449,11 @@
|
|
|
450
449
|
--mba-input-ring-success: 0 0 0 1.5px var(--mba-color-success-100);
|
|
451
450
|
--mba-input-ring-success-focus: 0 0 0 1.5px var(--mba-color-success-300);
|
|
452
451
|
}
|
|
453
|
-
|
|
454
452
|
/**
|
|
455
453
|
* MBA Design System - Transitions
|
|
456
454
|
*
|
|
457
455
|
* Durées et easings pour les animations
|
|
458
456
|
*/
|
|
459
|
-
|
|
460
457
|
:root {
|
|
461
458
|
/* ===========================================
|
|
462
459
|
DUREES
|
|
@@ -485,7 +482,6 @@
|
|
|
485
482
|
--mba-transition-base: var(--mba-duration-200) var(--mba-ease-in-out);
|
|
486
483
|
--mba-transition-slow: var(--mba-duration-300) var(--mba-ease-in-out);
|
|
487
484
|
}
|
|
488
|
-
|
|
489
485
|
/**
|
|
490
486
|
* MBA Design System - Breakpoints
|
|
491
487
|
*
|
|
@@ -496,7 +492,6 @@
|
|
|
496
492
|
* Utiliser les classes Tailwind (sm:, md:, lg:, xl:, 2xl:)
|
|
497
493
|
* ou les @media queries directement.
|
|
498
494
|
*/
|
|
499
|
-
|
|
500
495
|
:root {
|
|
501
496
|
/* Breakpoints pour référence (usage JS) */
|
|
502
497
|
--mba-breakpoint-sm: 640px;
|
|
@@ -505,7 +500,6 @@
|
|
|
505
500
|
--mba-breakpoint-xl: 1280px;
|
|
506
501
|
--mba-breakpoint-2xl: 1536px;
|
|
507
502
|
}
|
|
508
|
-
|
|
509
503
|
/*
|
|
510
504
|
Usage en CSS pur (les @media ne supportent pas les custom properties) :
|
|
511
505
|
|
|
@@ -515,7 +509,6 @@
|
|
|
515
509
|
@media (min-width: 1280px) { ... } xl
|
|
516
510
|
@media (min-width: 1536px) { ... } 2xl
|
|
517
511
|
*/
|
|
518
|
-
|
|
519
512
|
/**
|
|
520
513
|
* MBA Design System - Decorations
|
|
521
514
|
*
|
|
@@ -525,7 +518,6 @@
|
|
|
525
518
|
* - dip-up = creux vers le haut ↑ (utilisé en position bottom)
|
|
526
519
|
* - dip-down = creux vers le bas ↓ (utilisé en position top)
|
|
527
520
|
*/
|
|
528
|
-
|
|
529
521
|
:root {
|
|
530
522
|
/* Wave Default (42px) */
|
|
531
523
|
--mba-wave-height: 42px;
|
|
@@ -537,23 +529,19 @@
|
|
|
537
529
|
--mba-wave-sm-dip-up-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1280 24' preserveAspectRatio='none'%3E%3Cpath d='M1280 24H0V15.8118C95.612 15.8118 246.789 0 360.422 0C499.085 0 780.915 15.8118 914.071 15.8118C1068.75 15.8118 1190.9 0 1280 0V24Z' fill='black'/%3E%3C/svg%3E");
|
|
538
530
|
--mba-wave-sm-dip-down-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1280 24' preserveAspectRatio='none'%3E%3Cpath d='M0 0H1280V8.18824C1184.39 8.18824 1033.21 24 919.578 24C780.915 24 499.085 8.18824 365.929 8.18824C211.248 8.18824 89.1044 24 0 24V0Z' fill='black'/%3E%3C/svg%3E");
|
|
539
531
|
}
|
|
540
|
-
|
|
541
532
|
/**
|
|
542
533
|
* MBA Design System - Base
|
|
543
534
|
*
|
|
544
535
|
* Reset et styles de base
|
|
545
536
|
*/
|
|
546
|
-
|
|
547
537
|
/**
|
|
548
538
|
* MBA Design System - Fonts
|
|
549
539
|
*
|
|
550
540
|
* @font-face declarations pour Open Sans et Congenial
|
|
551
541
|
*/
|
|
552
|
-
|
|
553
542
|
/* ===========================================
|
|
554
543
|
OPEN SANS (Textes)
|
|
555
544
|
=========================================== */
|
|
556
|
-
|
|
557
545
|
@font-face {
|
|
558
546
|
font-family: "Open Sans";
|
|
559
547
|
font-style: normal;
|
|
@@ -561,7 +549,6 @@
|
|
|
561
549
|
font-display: swap;
|
|
562
550
|
src: url("../assets/fonts/OpenSans-Regular.woff2") format("woff2");
|
|
563
551
|
}
|
|
564
|
-
|
|
565
552
|
@font-face {
|
|
566
553
|
font-family: "Open Sans";
|
|
567
554
|
font-style: normal;
|
|
@@ -569,7 +556,6 @@
|
|
|
569
556
|
font-display: swap;
|
|
570
557
|
src: url("../assets/fonts/OpenSans-SemiBold.woff2") format("woff2");
|
|
571
558
|
}
|
|
572
|
-
|
|
573
559
|
@font-face {
|
|
574
560
|
font-family: "Open Sans";
|
|
575
561
|
font-style: normal;
|
|
@@ -577,7 +563,6 @@
|
|
|
577
563
|
font-display: swap;
|
|
578
564
|
src: url("../assets/fonts/OpenSans-Bold.woff2") format("woff2");
|
|
579
565
|
}
|
|
580
|
-
|
|
581
566
|
@font-face {
|
|
582
567
|
font-family: "Open Sans";
|
|
583
568
|
font-style: normal;
|
|
@@ -585,12 +570,10 @@
|
|
|
585
570
|
font-display: swap;
|
|
586
571
|
src: url("../assets/fonts/OpenSans-ExtraBold.woff2") format("woff2");
|
|
587
572
|
}
|
|
588
|
-
|
|
589
573
|
/* ===========================================
|
|
590
574
|
CONGENIAL (Titres)
|
|
591
575
|
Note: ExtraBold non disponible, on utilise Bold pour les titres
|
|
592
576
|
=========================================== */
|
|
593
|
-
|
|
594
577
|
@font-face {
|
|
595
578
|
font-family: "Congenial";
|
|
596
579
|
font-style: normal;
|
|
@@ -598,7 +581,6 @@
|
|
|
598
581
|
font-display: swap;
|
|
599
582
|
src: url("../assets/fonts/Congenial.woff2") format("woff2");
|
|
600
583
|
}
|
|
601
|
-
|
|
602
584
|
@font-face {
|
|
603
585
|
font-family: "Congenial";
|
|
604
586
|
font-style: normal;
|
|
@@ -606,7 +588,6 @@
|
|
|
606
588
|
font-display: swap;
|
|
607
589
|
src: url("../assets/fonts/Congenial-Medium.woff2") format("woff2");
|
|
608
590
|
}
|
|
609
|
-
|
|
610
591
|
@font-face {
|
|
611
592
|
font-family: "Congenial";
|
|
612
593
|
font-style: normal;
|
|
@@ -614,7 +595,6 @@
|
|
|
614
595
|
font-display: swap;
|
|
615
596
|
src: url("../assets/fonts/Congenial-Bold.woff2") format("woff2");
|
|
616
597
|
}
|
|
617
|
-
|
|
618
598
|
/**
|
|
619
599
|
* MBA Design System - Icons
|
|
620
600
|
*
|
|
@@ -626,11 +606,9 @@
|
|
|
626
606
|
* 1. Éditer src/icons/icons.list.txt
|
|
627
607
|
* 2. Lancer: npm run icons:build
|
|
628
608
|
*/
|
|
629
|
-
|
|
630
609
|
/* ===========================================
|
|
631
610
|
FONT FACE - Material Symbols Rounded
|
|
632
611
|
=========================================== */
|
|
633
|
-
|
|
634
612
|
@font-face {
|
|
635
613
|
font-family: 'Material Symbols Rounded';
|
|
636
614
|
font-style: normal;
|
|
@@ -638,12 +616,10 @@
|
|
|
638
616
|
font-display: block;
|
|
639
617
|
src: url('../assets/fonts/MaterialSymbolsRounded.woff2') format('woff2');
|
|
640
618
|
}
|
|
641
|
-
|
|
642
619
|
/* ===========================================
|
|
643
620
|
BASE ICON CLASS
|
|
644
621
|
Wrappé dans @layer base pour permettre aux @layer components de l'overrider
|
|
645
622
|
=========================================== */
|
|
646
|
-
|
|
647
623
|
@layer base {
|
|
648
624
|
|
|
649
625
|
.material-symbols-rounded {
|
|
@@ -766,9 +742,7 @@
|
|
|
766
742
|
}
|
|
767
743
|
|
|
768
744
|
}
|
|
769
|
-
|
|
770
745
|
/* end @layer base */
|
|
771
|
-
|
|
772
746
|
/**
|
|
773
747
|
* MBA Design System - Preflight
|
|
774
748
|
*
|
|
@@ -778,7 +752,6 @@
|
|
|
778
752
|
* Wrappé dans @layer base pour permettre aux utilities Tailwind
|
|
779
753
|
* de l'overrider sans avoir besoin de !important
|
|
780
754
|
*/
|
|
781
|
-
|
|
782
755
|
@layer base {
|
|
783
756
|
|
|
784
757
|
*,
|
|
@@ -1013,15 +986,12 @@ video {
|
|
|
1013
986
|
}
|
|
1014
987
|
|
|
1015
988
|
}
|
|
1016
|
-
|
|
1017
989
|
/* end @layer base */
|
|
1018
|
-
|
|
1019
990
|
/**
|
|
1020
991
|
* MBA Design System - Base Typography
|
|
1021
992
|
*
|
|
1022
993
|
* Styles de base pour le texte
|
|
1023
994
|
*/
|
|
1024
|
-
|
|
1025
995
|
@layer base {
|
|
1026
996
|
|
|
1027
997
|
body {
|
|
@@ -1065,15 +1035,12 @@ a:hover {
|
|
|
1065
1035
|
}
|
|
1066
1036
|
|
|
1067
1037
|
}
|
|
1068
|
-
|
|
1069
1038
|
/* end @layer base */
|
|
1070
|
-
|
|
1071
1039
|
/**
|
|
1072
1040
|
* MBA Design System - Composants
|
|
1073
1041
|
*
|
|
1074
1042
|
* Classes de composants prêtes à l'emploi
|
|
1075
1043
|
*/
|
|
1076
|
-
|
|
1077
1044
|
/**
|
|
1078
1045
|
* MBA Design System - Boutons
|
|
1079
1046
|
*
|
|
@@ -1081,7 +1048,6 @@ a:hover {
|
|
|
1081
1048
|
* Couleur: Primary (Violet #703973)
|
|
1082
1049
|
* Source: Design System Figma
|
|
1083
1050
|
*/
|
|
1084
|
-
|
|
1085
1051
|
@layer components {
|
|
1086
1052
|
|
|
1087
1053
|
/* ===========================================
|
|
@@ -1505,6 +1471,53 @@ a:hover {
|
|
|
1505
1471
|
color: var(--mba-color-error-500);
|
|
1506
1472
|
}
|
|
1507
1473
|
|
|
1474
|
+
/* ===========================================
|
|
1475
|
+
BACK TO TOP (retour en haut)
|
|
1476
|
+
Bouton rond flottant (bas-droit), ancre #top → JS-free.
|
|
1477
|
+
L'app bascule .is-hidden selon le scroll. Pour un défilement doux,
|
|
1478
|
+
poser `scroll-behavior: smooth` sur <html> côté app.
|
|
1479
|
+
width/height 48px, icône arrow_upward 24px.
|
|
1480
|
+
Source: Design System Figma (Annuaire, node 7672-576).
|
|
1481
|
+
=========================================== */
|
|
1482
|
+
.mba-btn-to-top {
|
|
1483
|
+
position: fixed;
|
|
1484
|
+
right: var(--mba-space-lg);
|
|
1485
|
+
bottom: var(--mba-space-lg);
|
|
1486
|
+
z-index: 40;
|
|
1487
|
+
display: inline-flex;
|
|
1488
|
+
align-items: center;
|
|
1489
|
+
justify-content: center;
|
|
1490
|
+
width: var(--mba-space-xl); /* 48px */
|
|
1491
|
+
height: var(--mba-space-xl); /* 48px */
|
|
1492
|
+
padding: 0;
|
|
1493
|
+
border: none;
|
|
1494
|
+
border-radius: var(--mba-radius-full);
|
|
1495
|
+
background-color: var(--mba-color-primary-500);
|
|
1496
|
+
color: var(--mba-color-white);
|
|
1497
|
+
cursor: pointer;
|
|
1498
|
+
transition: background-color var(--mba-transition-base);
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
.mba-btn-to-top .mba-icon {
|
|
1502
|
+
font-size: 24px;
|
|
1503
|
+
width: 24px;
|
|
1504
|
+
height: 24px;
|
|
1505
|
+
}
|
|
1506
|
+
|
|
1507
|
+
.mba-btn-to-top:hover:not(:disabled):not(.is-disabled) {
|
|
1508
|
+
background-color: var(--mba-color-primary-800);
|
|
1509
|
+
}
|
|
1510
|
+
|
|
1511
|
+
.mba-btn-to-top:focus-visible {
|
|
1512
|
+
outline: none;
|
|
1513
|
+
box-shadow: var(--mba-focus-ring);
|
|
1514
|
+
}
|
|
1515
|
+
|
|
1516
|
+
/* Affichage géré par l'app (visible au scroll) */
|
|
1517
|
+
.mba-btn-to-top.is-hidden {
|
|
1518
|
+
display: none;
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1508
1521
|
/* ===========================================
|
|
1509
1522
|
SMALL BUTTON
|
|
1510
1523
|
padding: 4px 8px, gap: 8px
|
|
@@ -1559,9 +1572,7 @@ a:hover {
|
|
|
1559
1572
|
}
|
|
1560
1573
|
|
|
1561
1574
|
}
|
|
1562
|
-
|
|
1563
1575
|
/* end @layer components */
|
|
1564
|
-
|
|
1565
1576
|
/**
|
|
1566
1577
|
* MBA Design System - Links
|
|
1567
1578
|
*
|
|
@@ -1577,7 +1588,6 @@ a:hover {
|
|
|
1577
1588
|
* <span class="material-symbols-rounded">arrow_forward</span>
|
|
1578
1589
|
* </a>
|
|
1579
1590
|
*/
|
|
1580
|
-
|
|
1581
1591
|
@layer components {
|
|
1582
1592
|
|
|
1583
1593
|
.mba-link {
|
|
@@ -1620,16 +1630,13 @@ a:hover {
|
|
|
1620
1630
|
}
|
|
1621
1631
|
|
|
1622
1632
|
}
|
|
1623
|
-
|
|
1624
1633
|
/* end @layer components */
|
|
1625
|
-
|
|
1626
1634
|
/**
|
|
1627
1635
|
* MBA Design System - Cards
|
|
1628
1636
|
*
|
|
1629
1637
|
* Classes: .mba-card, .mba-card--sm, .mba-card-grid
|
|
1630
1638
|
* Source: Design System Figma
|
|
1631
1639
|
*/
|
|
1632
|
-
|
|
1633
1640
|
@layer components {
|
|
1634
1641
|
|
|
1635
1642
|
/* ===========================================
|
|
@@ -1710,6 +1717,24 @@ a:hover {
|
|
|
1710
1717
|
transform: translateX(4px);
|
|
1711
1718
|
}
|
|
1712
1719
|
|
|
1720
|
+
/* ===========================================
|
|
1721
|
+
ICÔNE EN PASTILLE RONDE (badge de tête)
|
|
1722
|
+
Modifieur de .mba-card__icon : icône décorative dans un cercle, en tête de
|
|
1723
|
+
card (ex. cartes « rubrique » / « sujet »). Neutralise le décalage au survol,
|
|
1724
|
+
réservé à la flèche d'action de fin de card.
|
|
1725
|
+
=========================================== */
|
|
1726
|
+
.mba-card__icon--circle {
|
|
1727
|
+
width: var(--mba-space-xl); /* 48px */
|
|
1728
|
+
height: var(--mba-space-xl);
|
|
1729
|
+
padding: var(--mba-space-xs);
|
|
1730
|
+
border-radius: var(--mba-radius-full);
|
|
1731
|
+
background-color: var(--mba-color-primary-50);
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
.mba-card:hover .mba-card__icon--circle {
|
|
1735
|
+
transform: none;
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1713
1738
|
/* ===========================================
|
|
1714
1739
|
CARD GRID
|
|
1715
1740
|
=========================================== */
|
|
@@ -1989,10 +2014,241 @@ a:hover {
|
|
|
1989
2014
|
}
|
|
1990
2015
|
}
|
|
1991
2016
|
|
|
2017
|
+
/* ===========================================
|
|
2018
|
+
ARTICLE CARD - VARIANTE EDITO
|
|
2019
|
+
Card article éditoriale : image inset arrondie, ligne meta (date + auteur),
|
|
2020
|
+
tag catégorie AU-DESSUS du titre (réutiliser .mba-tag), lien « Lire l'article ».
|
|
2021
|
+
N'altère pas la base .mba-article-card.
|
|
2022
|
+
Source: Design System Figma (Card edito, node 4749-3666).
|
|
2023
|
+
=========================================== */
|
|
2024
|
+
.mba-article-card--edito {
|
|
2025
|
+
padding: var(--mba-space-xs); /* 8px : l'image et le contenu sont inset */
|
|
2026
|
+
gap: var(--mba-space-md); /* 16px entre média / contenu / footer */
|
|
2027
|
+
justify-content: space-between;
|
|
1992
2028
|
}
|
|
1993
2029
|
|
|
1994
|
-
/*
|
|
2030
|
+
/* Bloc média : image + ligne meta (gap 8px) */
|
|
2031
|
+
.mba-article-card__media {
|
|
2032
|
+
display: flex;
|
|
2033
|
+
flex-direction: column;
|
|
2034
|
+
gap: var(--mba-space-xs);
|
|
2035
|
+
width: 100%;
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2038
|
+
/* Image inset : arrondie sur tous les coins, plus haute */
|
|
2039
|
+
.mba-article-card--edito .mba-article-card__image {
|
|
2040
|
+
height: 232px;
|
|
2041
|
+
border-radius: var(--mba-radius-xs);
|
|
2042
|
+
}
|
|
2043
|
+
|
|
2044
|
+
/* Ligne meta : « Mis à jour le … - Par … » */
|
|
2045
|
+
.mba-article-card__meta {
|
|
2046
|
+
margin: 0;
|
|
2047
|
+
font-family: var(--mba-font-family-text);
|
|
2048
|
+
font-size: var(--mba-font-size-xxs); /* 14px */
|
|
2049
|
+
font-weight: var(--mba-font-weight-regular);
|
|
2050
|
+
color: var(--mba-color-primary-900);
|
|
2051
|
+
line-height: normal;
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
/* Contenu edito : le tag/titre/texte s'alignent sur l'image (pas de padding) */
|
|
2055
|
+
.mba-article-card--edito .mba-article-card__content {
|
|
2056
|
+
padding: 0;
|
|
2057
|
+
gap: var(--mba-space-xs);
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
/* Titre edito : primary-900, tronqué sur 2 lignes */
|
|
2061
|
+
.mba-article-card--edito .mba-article-card__title {
|
|
2062
|
+
color: var(--mba-color-primary-900);
|
|
2063
|
+
display: -webkit-box;
|
|
2064
|
+
-webkit-box-orient: vertical;
|
|
2065
|
+
-webkit-line-clamp: 2;
|
|
2066
|
+
overflow: hidden;
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
/* Texte edito : primary-900, tronqué sur 3 lignes */
|
|
2070
|
+
.mba-article-card--edito .mba-article-card__text {
|
|
2071
|
+
color: var(--mba-color-primary-900);
|
|
2072
|
+
display: -webkit-box;
|
|
2073
|
+
-webkit-box-orient: vertical;
|
|
2074
|
+
-webkit-line-clamp: 3;
|
|
2075
|
+
overflow: hidden;
|
|
2076
|
+
}
|
|
2077
|
+
|
|
2078
|
+
/* Footer edito : le padding est porté par la card, on neutralise */
|
|
2079
|
+
.mba-article-card--edito .mba-article-card__footer {
|
|
2080
|
+
padding: 0;
|
|
2081
|
+
margin-top: 0;
|
|
2082
|
+
}
|
|
2083
|
+
|
|
2084
|
+
/* ===========================================
|
|
2085
|
+
FEATURE CARD (image pleine + label flottant)
|
|
2086
|
+
Card de mise en avant : image de couverture + étiquette blanche ancrée en
|
|
2087
|
+
bas (titre + flèche). Toute la card est cliquable.
|
|
2088
|
+
Source: Design System Figma (node 4660-19320).
|
|
2089
|
+
=========================================== */
|
|
2090
|
+
.mba-feature-card {
|
|
2091
|
+
position: relative;
|
|
2092
|
+
display: block;
|
|
2093
|
+
overflow: hidden;
|
|
2094
|
+
aspect-ratio: 181 / 212; /* ~362 x 424 (maquette) */
|
|
2095
|
+
border-radius: var(--mba-radius-sm);
|
|
2096
|
+
text-decoration: none;
|
|
2097
|
+
}
|
|
2098
|
+
|
|
2099
|
+
.mba-feature-card__image {
|
|
2100
|
+
position: absolute;
|
|
2101
|
+
inset: 0;
|
|
2102
|
+
width: 100%;
|
|
2103
|
+
height: 100%;
|
|
2104
|
+
object-fit: cover;
|
|
2105
|
+
transition: transform var(--mba-transition-base);
|
|
2106
|
+
}
|
|
2107
|
+
|
|
2108
|
+
/* Étiquette blanche flottante, ancrée en bas avec 8px de marge */
|
|
2109
|
+
.mba-feature-card__label {
|
|
2110
|
+
position: absolute;
|
|
2111
|
+
left: var(--mba-space-xs);
|
|
2112
|
+
right: var(--mba-space-xs);
|
|
2113
|
+
bottom: var(--mba-space-xs);
|
|
2114
|
+
display: flex;
|
|
2115
|
+
align-items: center;
|
|
2116
|
+
gap: var(--mba-space-xs);
|
|
2117
|
+
padding: var(--mba-space-sm);
|
|
2118
|
+
background-color: var(--mba-color-white);
|
|
2119
|
+
border-radius: var(--mba-radius-sm);
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
.mba-feature-card__title {
|
|
2123
|
+
flex: 1 1 0;
|
|
2124
|
+
min-width: 0;
|
|
2125
|
+
font-family: var(--mba-font-family-text);
|
|
2126
|
+
font-size: var(--mba-font-size-sm); /* 18px */
|
|
2127
|
+
font-weight: var(--mba-font-weight-semibold);
|
|
2128
|
+
color: var(--mba-color-primary-900);
|
|
2129
|
+
line-height: normal;
|
|
2130
|
+
}
|
|
2131
|
+
|
|
2132
|
+
.mba-feature-card__icon {
|
|
2133
|
+
flex-shrink: 0;
|
|
2134
|
+
color: var(--mba-color-primary-500);
|
|
2135
|
+
transition: transform var(--mba-transition-base);
|
|
2136
|
+
}
|
|
2137
|
+
|
|
2138
|
+
/* Hover : léger zoom de l'image + flèche qui avance */
|
|
2139
|
+
.mba-feature-card:hover .mba-feature-card__image {
|
|
2140
|
+
transform: scale(1.04);
|
|
2141
|
+
}
|
|
2142
|
+
|
|
2143
|
+
.mba-feature-card:hover .mba-feature-card__icon {
|
|
2144
|
+
transform: translateX(4px);
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2147
|
+
.mba-feature-card:focus-visible {
|
|
2148
|
+
outline: none;
|
|
2149
|
+
box-shadow: var(--mba-focus-ring);
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2153
|
+
.mba-feature-card__image,
|
|
2154
|
+
.mba-feature-card__icon {
|
|
2155
|
+
transition: none;
|
|
2156
|
+
}
|
|
2157
|
+
.mba-feature-card:hover .mba-feature-card__image {
|
|
2158
|
+
transform: none;
|
|
2159
|
+
}
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
/* ===========================================
|
|
2163
|
+
RESOURCE CARD (dossier / ressource)
|
|
2164
|
+
Card bordée avec forme décorative en fond, pastille, titre, sous-titre et
|
|
2165
|
+
bouton. Réutilise .mba-tag (pastille) et .mba-btn (bouton).
|
|
2166
|
+
La forme décorative est un SLOT rempli par l'app (.mba-resource-card__decoration) :
|
|
2167
|
+
le DS pose un lavis pastel par défaut, thémable via --lavender/--oranger/--bleuet.
|
|
2168
|
+
Source: Design System Figma (node 4660-19046).
|
|
2169
|
+
=========================================== */
|
|
2170
|
+
.mba-resource-card {
|
|
2171
|
+
/* Couleur du lavis décoratif (thémée par les modifieurs ci-dessous) */
|
|
2172
|
+
--mba-resource-decoration-color: var(--mba-color-pastel-lavender);
|
|
2173
|
+
|
|
2174
|
+
position: relative;
|
|
2175
|
+
display: flex;
|
|
2176
|
+
flex-direction: column;
|
|
2177
|
+
justify-content: space-between;
|
|
2178
|
+
gap: var(--mba-space-md);
|
|
2179
|
+
overflow: hidden;
|
|
2180
|
+
padding: var(--mba-space-md) var(--mba-space-xxl) var(--mba-space-md) var(--mba-space-md);
|
|
2181
|
+
background-color: var(--mba-color-white);
|
|
2182
|
+
border: 1px solid var(--mba-color-grey-100);
|
|
2183
|
+
border-radius: var(--mba-radius-md);
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
/* Thèmes de la forme décorative */
|
|
2187
|
+
.mba-resource-card--oranger {
|
|
2188
|
+
--mba-resource-decoration-color: var(--mba-color-pastel-oranger);
|
|
2189
|
+
}
|
|
2190
|
+
.mba-resource-card--bleuet {
|
|
2191
|
+
--mba-resource-decoration-color: var(--mba-color-pastel-bleuet);
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
/* Slot décoratif : lavis pastel par défaut, remplaçable par une illustration
|
|
2195
|
+
fournie par l'app (poser une <img>/<svg> à l'intérieur). */
|
|
2196
|
+
.mba-resource-card__decoration {
|
|
2197
|
+
position: absolute;
|
|
2198
|
+
inset: 0;
|
|
2199
|
+
z-index: 0;
|
|
2200
|
+
overflow: hidden;
|
|
2201
|
+
border-radius: inherit;
|
|
2202
|
+
pointer-events: none;
|
|
2203
|
+
background: radial-gradient(
|
|
2204
|
+
115% 90% at 12% 100%,
|
|
2205
|
+
var(--mba-resource-decoration-color),
|
|
2206
|
+
transparent 72%
|
|
2207
|
+
);
|
|
2208
|
+
}
|
|
2209
|
+
|
|
2210
|
+
/* Contenu au-dessus de la décoration */
|
|
2211
|
+
.mba-resource-card__content {
|
|
2212
|
+
position: relative;
|
|
2213
|
+
z-index: 1;
|
|
2214
|
+
display: flex;
|
|
2215
|
+
flex-direction: column;
|
|
2216
|
+
gap: var(--mba-space-sm);
|
|
2217
|
+
width: 100%;
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
.mba-resource-card__title {
|
|
2221
|
+
margin: 0;
|
|
2222
|
+
font-family: var(--mba-font-family-text);
|
|
2223
|
+
font-size: var(--mba-font-size-md); /* 24px */
|
|
2224
|
+
font-weight: var(--mba-font-weight-semibold);
|
|
2225
|
+
color: var(--mba-color-primary-900);
|
|
2226
|
+
line-height: normal;
|
|
2227
|
+
}
|
|
2228
|
+
|
|
2229
|
+
.mba-resource-card__text {
|
|
2230
|
+
margin: 0;
|
|
2231
|
+
font-family: var(--mba-font-family-text);
|
|
2232
|
+
font-size: var(--mba-font-size-xs); /* 16px */
|
|
2233
|
+
font-weight: var(--mba-font-weight-semibold);
|
|
2234
|
+
color: var(--mba-color-primary-900);
|
|
2235
|
+
line-height: normal;
|
|
2236
|
+
}
|
|
2237
|
+
|
|
2238
|
+
/* Bouton : au-dessus de la décoration */
|
|
2239
|
+
.mba-resource-card__action {
|
|
2240
|
+
position: relative;
|
|
2241
|
+
z-index: 1;
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
@media (max-width: 600px) {
|
|
2245
|
+
.mba-resource-card {
|
|
2246
|
+
padding-right: var(--mba-space-md);
|
|
2247
|
+
}
|
|
2248
|
+
}
|
|
1995
2249
|
|
|
2250
|
+
}
|
|
2251
|
+
/* end @layer components */
|
|
1996
2252
|
/**
|
|
1997
2253
|
* MBA Design System - Arrow Buttons
|
|
1998
2254
|
*
|
|
@@ -2004,7 +2260,6 @@ a:hover {
|
|
|
2004
2260
|
* - background: Primary-500
|
|
2005
2261
|
* - disabled: Grey-300
|
|
2006
2262
|
*/
|
|
2007
|
-
|
|
2008
2263
|
@layer components {
|
|
2009
2264
|
|
|
2010
2265
|
.mba-arrow {
|
|
@@ -2047,16 +2302,13 @@ a:hover {
|
|
|
2047
2302
|
}
|
|
2048
2303
|
|
|
2049
2304
|
}
|
|
2050
|
-
|
|
2051
2305
|
/* end @layer components */
|
|
2052
|
-
|
|
2053
2306
|
/**
|
|
2054
2307
|
* MBA Design System - Radio & Checkbox
|
|
2055
2308
|
*
|
|
2056
2309
|
* Classes: .mba-radio, .mba-radio--pro, .mba-checkbox, .mba-checkbox--pro
|
|
2057
2310
|
* Source: Design System Figma
|
|
2058
2311
|
*/
|
|
2059
|
-
|
|
2060
2312
|
@layer components {
|
|
2061
2313
|
|
|
2062
2314
|
/* ===========================================
|
|
@@ -2260,16 +2512,13 @@ a:hover {
|
|
|
2260
2512
|
}
|
|
2261
2513
|
|
|
2262
2514
|
}
|
|
2263
|
-
|
|
2264
2515
|
/* end @layer components */
|
|
2265
|
-
|
|
2266
2516
|
/**
|
|
2267
2517
|
* MBA Design System - Pagination
|
|
2268
2518
|
*
|
|
2269
2519
|
* Composant de pagination pour la navigation entre pages
|
|
2270
2520
|
* Source: Design System Figma
|
|
2271
2521
|
*/
|
|
2272
|
-
|
|
2273
2522
|
@layer components {
|
|
2274
2523
|
|
|
2275
2524
|
/* ===========================================
|
|
@@ -2438,17 +2687,40 @@ a:hover {
|
|
|
2438
2687
|
cursor: default;
|
|
2439
2688
|
}
|
|
2440
2689
|
|
|
2690
|
+
/* ===========================================
|
|
2691
|
+
DOTS - Variante « pilule extensible »
|
|
2692
|
+
Point actif allongé, inactifs courts (carousel).
|
|
2693
|
+
Actif: 72px primary-500 · inactif: 16px grey-100.
|
|
2694
|
+
=========================================== */
|
|
2695
|
+
.mba-dots--expand .mba-dot {
|
|
2696
|
+
width: var(--mba-space-sm); /* 16px (inactif) */
|
|
2697
|
+
background-color: var(--mba-color-grey-100);
|
|
2698
|
+
transition: width var(--mba-transition-base), background-color var(--mba-transition-base);
|
|
2441
2699
|
}
|
|
2442
2700
|
|
|
2443
|
-
|
|
2701
|
+
.mba-dots--expand .mba-dot:hover:not(.is-active) {
|
|
2702
|
+
background-color: var(--mba-color-grey-300);
|
|
2703
|
+
}
|
|
2444
2704
|
|
|
2445
|
-
|
|
2446
|
-
|
|
2447
|
-
|
|
2448
|
-
|
|
2449
|
-
* Source: Design System Figma
|
|
2450
|
-
*/
|
|
2705
|
+
.mba-dots--expand .mba-dot.is-active {
|
|
2706
|
+
width: 4.5rem; /* 72px (actif) - valeur visuelle maquette (~71px) */
|
|
2707
|
+
background-color: var(--mba-color-primary-500);
|
|
2708
|
+
}
|
|
2451
2709
|
|
|
2710
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2711
|
+
.mba-dots--expand .mba-dot {
|
|
2712
|
+
transition: none;
|
|
2713
|
+
}
|
|
2714
|
+
}
|
|
2715
|
+
|
|
2716
|
+
}
|
|
2717
|
+
/* end @layer components */
|
|
2718
|
+
/**
|
|
2719
|
+
* MBA Design System - Inputs
|
|
2720
|
+
*
|
|
2721
|
+
* Classes: .mba-textarea, .mba-input, .mba-label
|
|
2722
|
+
* Source: Design System Figma
|
|
2723
|
+
*/
|
|
2452
2724
|
@layer components {
|
|
2453
2725
|
|
|
2454
2726
|
/* ===========================================
|
|
@@ -2880,6 +3152,14 @@ a:hover {
|
|
|
2880
3152
|
margin-left: var(--mba-space-xs);
|
|
2881
3153
|
}
|
|
2882
3154
|
|
|
3155
|
+
/* Variante icône EN TÊTE (à gauche du champ).
|
|
3156
|
+
L'icône précède l'<input> dans le DOM : on inverse la marge
|
|
3157
|
+
(margin-right au lieu de margin-left). Ex. barre de recherche « loupe ». */
|
|
3158
|
+
.mba-input-icon--leading .mba-input-icon__icon {
|
|
3159
|
+
margin-left: 0;
|
|
3160
|
+
margin-right: var(--mba-space-xs);
|
|
3161
|
+
}
|
|
3162
|
+
|
|
2883
3163
|
/* Icon clickable (button) */
|
|
2884
3164
|
button.mba-input-icon__icon {
|
|
2885
3165
|
background: none;
|
|
@@ -2955,9 +3235,7 @@ button.mba-input-icon__icon:hover {
|
|
|
2955
3235
|
}
|
|
2956
3236
|
|
|
2957
3237
|
}
|
|
2958
|
-
|
|
2959
3238
|
/* end @layer components */
|
|
2960
|
-
|
|
2961
3239
|
/**
|
|
2962
3240
|
* MBA Design System - Tabs
|
|
2963
3241
|
*
|
|
@@ -2966,7 +3244,6 @@ button.mba-input-icon__icon:hover {
|
|
|
2966
3244
|
* Couleurs: Primary 500 (MBA), Primary 900 (Partenaires)
|
|
2967
3245
|
* Source: Design System Figma (Tabs - Lina-7347)
|
|
2968
3246
|
*/
|
|
2969
|
-
|
|
2970
3247
|
@layer components {
|
|
2971
3248
|
|
|
2972
3249
|
/* ===========================================
|
|
@@ -3055,9 +3332,7 @@ button.mba-input-icon__icon:hover {
|
|
|
3055
3332
|
}
|
|
3056
3333
|
|
|
3057
3334
|
}
|
|
3058
|
-
|
|
3059
3335
|
/* @layer components */
|
|
3060
|
-
|
|
3061
3336
|
/**
|
|
3062
3337
|
* MBA Design System - Tags (Badges)
|
|
3063
3338
|
*
|
|
@@ -3083,7 +3358,6 @@ button.mba-input-icon__icon:hover {
|
|
|
3083
3358
|
* Note: fonds plus foncés que les pastels de base pour l'accessibilité.
|
|
3084
3359
|
* Source: Design System Figma.
|
|
3085
3360
|
*/
|
|
3086
|
-
|
|
3087
3361
|
@layer components {
|
|
3088
3362
|
|
|
3089
3363
|
.mba-tag {
|
|
@@ -3177,16 +3451,13 @@ button.mba-input-icon__icon:hover {
|
|
|
3177
3451
|
}
|
|
3178
3452
|
|
|
3179
3453
|
}
|
|
3180
|
-
|
|
3181
3454
|
/* end @layer components */
|
|
3182
|
-
|
|
3183
3455
|
/**
|
|
3184
3456
|
* MBA Design System - Header
|
|
3185
3457
|
*
|
|
3186
3458
|
* Navigation principale avec dropdown et version mobile
|
|
3187
3459
|
* Source: Design System Figma
|
|
3188
3460
|
*/
|
|
3189
|
-
|
|
3190
3461
|
@layer components {
|
|
3191
3462
|
|
|
3192
3463
|
/* ===========================================
|
|
@@ -3862,9 +4133,7 @@ button.mba-input-icon__icon:hover {
|
|
|
3862
4133
|
}
|
|
3863
4134
|
|
|
3864
4135
|
}
|
|
3865
|
-
|
|
3866
4136
|
/* end @layer components */
|
|
3867
|
-
|
|
3868
4137
|
/**
|
|
3869
4138
|
* MBA Design System - Wave
|
|
3870
4139
|
*
|
|
@@ -3886,7 +4155,6 @@ button.mba-input-icon__icon:hover {
|
|
|
3886
4155
|
* <div class="mba-wave mba-wave--lavender"></div>
|
|
3887
4156
|
* <div class="mba-wave mba-wave--sm mba-wave--lavender mba-wave--top"></div>
|
|
3888
4157
|
*/
|
|
3889
|
-
|
|
3890
4158
|
@layer components {
|
|
3891
4159
|
|
|
3892
4160
|
.mba-wave {
|
|
@@ -3952,9 +4220,7 @@ button.mba-input-icon__icon:hover {
|
|
|
3952
4220
|
|
|
3953
4221
|
|
|
3954
4222
|
}
|
|
3955
|
-
|
|
3956
4223
|
/* end @layer components */
|
|
3957
|
-
|
|
3958
4224
|
/**
|
|
3959
4225
|
* MBA Design System - Section
|
|
3960
4226
|
*
|
|
@@ -3982,7 +4248,6 @@ button.mba-input-icon__icon:hover {
|
|
|
3982
4248
|
* ...
|
|
3983
4249
|
* </section>
|
|
3984
4250
|
*/
|
|
3985
|
-
|
|
3986
4251
|
@layer components {
|
|
3987
4252
|
|
|
3988
4253
|
.mba-section {
|
|
@@ -4157,9 +4422,7 @@ button.mba-input-icon__icon:hover {
|
|
|
4157
4422
|
}
|
|
4158
4423
|
|
|
4159
4424
|
}
|
|
4160
|
-
|
|
4161
4425
|
/* end @layer components */
|
|
4162
|
-
|
|
4163
4426
|
/**
|
|
4164
4427
|
* MBA Design System - Footer
|
|
4165
4428
|
*
|
|
@@ -4178,7 +4441,6 @@ button.mba-input-icon__icon:hover {
|
|
|
4178
4441
|
* Modificateurs:
|
|
4179
4442
|
* - .mba-footer--pro - Version partenaire (primary-pro)
|
|
4180
4443
|
*/
|
|
4181
|
-
|
|
4182
4444
|
@layer components {
|
|
4183
4445
|
|
|
4184
4446
|
/* ===========================================
|
|
@@ -4566,13 +4828,170 @@ button.mba-input-icon__icon:hover {
|
|
|
4566
4828
|
}
|
|
4567
4829
|
|
|
4568
4830
|
}
|
|
4569
|
-
|
|
4570
4831
|
/* end @layer components */
|
|
4571
|
-
|
|
4572
4832
|
/* @import "./_forms.css"; */
|
|
4833
|
+
/**
|
|
4834
|
+
* MBA Design System - Alerts
|
|
4835
|
+
*
|
|
4836
|
+
* Alerte contextuelle : message d'information, de succès, d'avertissement ou
|
|
4837
|
+
* d'erreur. Différent de `.mba-feedback` (qui ne sert qu'à la validation de
|
|
4838
|
+
* champs de formulaire).
|
|
4839
|
+
*
|
|
4840
|
+
* Principe visuel (source Figma - « Recherche : détresse détectée ») :
|
|
4841
|
+
* - fond + bordure portent la couleur sémantique de la variante ;
|
|
4842
|
+
* - le texte reste neutre (titre grey-800, corps primary-900) pour la
|
|
4843
|
+
* lisibilité et le contraste ;
|
|
4844
|
+
* - l'icône porte l'accent de la variante.
|
|
4845
|
+
*
|
|
4846
|
+
* Variantes : --info, --success, --warning, --error.
|
|
4847
|
+
* Le « bandeau détresse » de la maquette = .mba-alert--warning (+ --dashed et
|
|
4848
|
+
* icône « boxed »), pas de variante « support » maison.
|
|
4849
|
+
*
|
|
4850
|
+
* Convention d'état :
|
|
4851
|
+
* - .is-hidden masque l'alerte (dismiss basculé par l'app, zéro JS dans le DS).
|
|
4852
|
+
*
|
|
4853
|
+
* Accessibilité (câblage markup, cf. story) :
|
|
4854
|
+
* - info / success : role="status" + aria-live="polite".
|
|
4855
|
+
* - warning / error : role="alert" + aria-live="assertive".
|
|
4856
|
+
* - bouton fermeture : aria-label="Fermer".
|
|
4857
|
+
*
|
|
4858
|
+
* Source: Design System Figma (node 4660-18800).
|
|
4859
|
+
*/
|
|
4860
|
+
@layer components {
|
|
4861
|
+
|
|
4862
|
+
/* ===========================================
|
|
4863
|
+
CONTENEUR
|
|
4864
|
+
=========================================== */
|
|
4865
|
+
.mba-alert {
|
|
4866
|
+
display: flex;
|
|
4867
|
+
align-items: flex-start;
|
|
4868
|
+
gap: var(--mba-space-sm);
|
|
4869
|
+
padding: var(--mba-space-sm);
|
|
4870
|
+
border: 1px solid transparent;
|
|
4871
|
+
border-radius: var(--mba-radius-sm);
|
|
4872
|
+
background-color: var(--mba-color-grey-50);
|
|
4873
|
+
font-family: var(--mba-font-family-text);
|
|
4874
|
+
}
|
|
4875
|
+
|
|
4876
|
+
/* Bordure en pointillés (bandeau détresse) */
|
|
4877
|
+
.mba-alert--dashed {
|
|
4878
|
+
border-style: dashed;
|
|
4879
|
+
}
|
|
4880
|
+
|
|
4881
|
+
/* État masqué (dismiss géré par l'app) */
|
|
4882
|
+
.mba-alert.is-hidden {
|
|
4883
|
+
display: none;
|
|
4884
|
+
}
|
|
4885
|
+
|
|
4886
|
+
/* ===========================================
|
|
4887
|
+
ICÔNE
|
|
4888
|
+
=========================================== */
|
|
4889
|
+
.mba-alert__icon {
|
|
4890
|
+
display: inline-flex;
|
|
4891
|
+
align-items: center;
|
|
4892
|
+
justify-content: center;
|
|
4893
|
+
flex-shrink: 0;
|
|
4894
|
+
color: var(--mba-color-grey-800);
|
|
4895
|
+
}
|
|
4896
|
+
|
|
4897
|
+
/* Icône dans un chip blanc (bandeau détresse) */
|
|
4898
|
+
.mba-alert__icon--boxed {
|
|
4899
|
+
padding: var(--mba-space-xs);
|
|
4900
|
+
background-color: var(--mba-color-white);
|
|
4901
|
+
border-radius: var(--mba-radius-xs);
|
|
4902
|
+
}
|
|
4903
|
+
|
|
4904
|
+
/* ===========================================
|
|
4905
|
+
CONTENU
|
|
4906
|
+
=========================================== */
|
|
4907
|
+
.mba-alert__content {
|
|
4908
|
+
display: flex;
|
|
4909
|
+
flex-direction: column;
|
|
4910
|
+
gap: var(--mba-space-xs);
|
|
4911
|
+
flex: 1 1 0;
|
|
4912
|
+
min-width: 0;
|
|
4913
|
+
}
|
|
4914
|
+
|
|
4915
|
+
.mba-alert__title {
|
|
4916
|
+
margin: 0;
|
|
4917
|
+
font-size: var(--mba-font-size-xxs); /* 14px */
|
|
4918
|
+
font-weight: var(--mba-font-weight-bold);
|
|
4919
|
+
color: var(--mba-color-grey-800);
|
|
4920
|
+
line-height: normal;
|
|
4921
|
+
}
|
|
4922
|
+
|
|
4923
|
+
.mba-alert__text {
|
|
4924
|
+
margin: 0;
|
|
4925
|
+
font-size: var(--mba-font-size-xs); /* 16px */
|
|
4926
|
+
font-weight: var(--mba-font-weight-regular);
|
|
4927
|
+
color: var(--mba-color-primary-900);
|
|
4928
|
+
line-height: var(--mba-leading-snug);
|
|
4929
|
+
}
|
|
4573
4930
|
|
|
4574
|
-
/*
|
|
4931
|
+
/* ===========================================
|
|
4932
|
+
BOUTON FERMETURE (optionnel)
|
|
4933
|
+
=========================================== */
|
|
4934
|
+
.mba-alert__close {
|
|
4935
|
+
display: inline-flex;
|
|
4936
|
+
align-items: center;
|
|
4937
|
+
justify-content: center;
|
|
4938
|
+
flex-shrink: 0;
|
|
4939
|
+
margin-left: auto;
|
|
4940
|
+
padding: 0;
|
|
4941
|
+
border: none;
|
|
4942
|
+
background-color: transparent;
|
|
4943
|
+
color: var(--mba-color-grey-400);
|
|
4944
|
+
cursor: pointer;
|
|
4945
|
+
transition: color var(--mba-transition-base);
|
|
4946
|
+
}
|
|
4575
4947
|
|
|
4948
|
+
.mba-alert__close:hover {
|
|
4949
|
+
color: var(--mba-color-grey-800);
|
|
4950
|
+
}
|
|
4951
|
+
|
|
4952
|
+
.mba-alert__close:focus-visible {
|
|
4953
|
+
outline: none;
|
|
4954
|
+
border-radius: var(--mba-radius-2xs);
|
|
4955
|
+
box-shadow: var(--mba-focus-ring);
|
|
4956
|
+
}
|
|
4957
|
+
|
|
4958
|
+
/* ===========================================
|
|
4959
|
+
VARIANTES SÉMANTIQUES
|
|
4960
|
+
Fond = teinte claire ; bordure = teinte 400 ; icône = teinte 500.
|
|
4961
|
+
=========================================== */
|
|
4962
|
+
.mba-alert--info {
|
|
4963
|
+
background-color: var(--mba-color-info-50);
|
|
4964
|
+
border-color: var(--mba-color-info-400);
|
|
4965
|
+
}
|
|
4966
|
+
.mba-alert--info .mba-alert__icon {
|
|
4967
|
+
color: var(--mba-color-info-500);
|
|
4968
|
+
}
|
|
4969
|
+
|
|
4970
|
+
.mba-alert--success {
|
|
4971
|
+
background-color: var(--mba-color-success-100);
|
|
4972
|
+
border-color: var(--mba-color-success-400);
|
|
4973
|
+
}
|
|
4974
|
+
.mba-alert--success .mba-alert__icon {
|
|
4975
|
+
color: var(--mba-color-success-500);
|
|
4976
|
+
}
|
|
4977
|
+
|
|
4978
|
+
.mba-alert--warning {
|
|
4979
|
+
background-color: var(--mba-color-warning-50);
|
|
4980
|
+
border-color: var(--mba-color-warning-400);
|
|
4981
|
+
}
|
|
4982
|
+
.mba-alert--warning .mba-alert__icon {
|
|
4983
|
+
color: var(--mba-color-warning-500);
|
|
4984
|
+
}
|
|
4985
|
+
|
|
4986
|
+
.mba-alert--error {
|
|
4987
|
+
background-color: var(--mba-color-error-100);
|
|
4988
|
+
border-color: var(--mba-color-error-400);
|
|
4989
|
+
}
|
|
4990
|
+
.mba-alert--error .mba-alert__icon {
|
|
4991
|
+
color: var(--mba-color-error-500);
|
|
4992
|
+
}
|
|
4993
|
+
|
|
4994
|
+
}
|
|
4576
4995
|
/**
|
|
4577
4996
|
* MBA Design System - Accordion
|
|
4578
4997
|
*
|
|
@@ -4581,7 +5000,6 @@ button.mba-input-icon__icon:hover {
|
|
|
4581
5000
|
* - À partir de 5 items (ou si le contenu est trop long),
|
|
4582
5001
|
* utiliser la variante scrollable pour afficher une scrollbar.
|
|
4583
5002
|
*/
|
|
4584
|
-
|
|
4585
5003
|
@layer components {
|
|
4586
5004
|
|
|
4587
5005
|
/* ===========================================
|
|
@@ -4848,39 +5266,301 @@ button.mba-input-icon__icon:hover {
|
|
|
4848
5266
|
}
|
|
4849
5267
|
|
|
4850
5268
|
}
|
|
5269
|
+
/**
|
|
5270
|
+
* MBA Design System - Carousel
|
|
5271
|
+
*
|
|
5272
|
+
* Carousel 100% CSS : défilement horizontal natif avec scroll-snap (swipe
|
|
5273
|
+
* tactile + molette + clavier), zéro JS dans le DS.
|
|
5274
|
+
* - .mba-carousel__track : piste flex scrollable, scroll-snap-type: x mandatory.
|
|
5275
|
+
* - .mba-carousel__slide : chaque diapo s'aligne au début (scroll-snap-align).
|
|
5276
|
+
* - .mba-carousel__controls : flèches rondes (précédent / suivant).
|
|
5277
|
+
* - Pagination : réutiliser .mba-dots / .mba-dot (_paging.css).
|
|
5278
|
+
*
|
|
5279
|
+
* Comportement (à la charge de l'app, zéro JS embarqué) :
|
|
5280
|
+
* - Le clic sur les flèches / points fait défiler la piste (scrollBy / scrollIntoView).
|
|
5281
|
+
* - L'app bascule .is-active sur le point courant et .is-disabled / [disabled]
|
|
5282
|
+
* sur la flèche en butée.
|
|
5283
|
+
*
|
|
5284
|
+
* Accessibilité (câblage markup, cf. story) :
|
|
5285
|
+
* - Conteneur : role="region" + aria-roledescription="carousel" + aria-label.
|
|
5286
|
+
* - Piste focusable au clavier (tabindex="0") pour le défilement clavier.
|
|
5287
|
+
* - Flèches : aria-label "Précédent" / "Suivant".
|
|
5288
|
+
*
|
|
5289
|
+
* Largeur des diapos : personnalisable via --mba-carousel-slide-width
|
|
5290
|
+
* (défaut 360px ; ex. 85% pour laisser deviner la diapo suivante en mobile).
|
|
5291
|
+
*
|
|
5292
|
+
* Source: Design System Figma (nodes 4660-19043 / 4660-19016).
|
|
5293
|
+
*/
|
|
5294
|
+
@layer components {
|
|
4851
5295
|
|
|
4852
|
-
|
|
5296
|
+
.mba-carousel {
|
|
5297
|
+
width: 100%;
|
|
5298
|
+
}
|
|
4853
5299
|
|
|
4854
|
-
/*
|
|
5300
|
+
/* ===========================================
|
|
5301
|
+
PISTE (scroll-snap horizontal)
|
|
5302
|
+
=========================================== */
|
|
5303
|
+
.mba-carousel__track {
|
|
5304
|
+
display: flex;
|
|
5305
|
+
gap: var(--mba-space-sm);
|
|
5306
|
+
overflow-x: auto;
|
|
5307
|
+
scroll-snap-type: x mandatory;
|
|
5308
|
+
scroll-behavior: smooth;
|
|
5309
|
+
/* Masquer la scrollbar sans bloquer le scroll clavier / tactile */
|
|
5310
|
+
scrollbar-width: none; /* Firefox */
|
|
5311
|
+
-ms-overflow-style: none; /* IE/Edge legacy */
|
|
5312
|
+
}
|
|
5313
|
+
|
|
5314
|
+
.mba-carousel__track::-webkit-scrollbar {
|
|
5315
|
+
display: none; /* WebKit */
|
|
5316
|
+
}
|
|
4855
5317
|
|
|
5318
|
+
.mba-carousel__slide {
|
|
5319
|
+
flex: 0 0 var(--mba-carousel-slide-width, 360px);
|
|
5320
|
+
max-width: 100%;
|
|
5321
|
+
scroll-snap-align: start;
|
|
5322
|
+
}
|
|
5323
|
+
|
|
5324
|
+
/* ===========================================
|
|
5325
|
+
PIED : pagination centrée + flèches à droite
|
|
5326
|
+
=========================================== */
|
|
5327
|
+
.mba-carousel__footer {
|
|
5328
|
+
position: relative;
|
|
5329
|
+
display: flex;
|
|
5330
|
+
align-items: center;
|
|
5331
|
+
justify-content: center;
|
|
5332
|
+
min-height: 32px;
|
|
5333
|
+
margin-top: var(--mba-space-md);
|
|
5334
|
+
}
|
|
5335
|
+
|
|
5336
|
+
.mba-carousel__controls {
|
|
5337
|
+
position: absolute;
|
|
5338
|
+
right: 0;
|
|
5339
|
+
display: inline-flex;
|
|
5340
|
+
align-items: center;
|
|
5341
|
+
gap: var(--mba-space-xs);
|
|
5342
|
+
}
|
|
5343
|
+
|
|
5344
|
+
/* ===========================================
|
|
5345
|
+
FLÈCHE (contrôle rond)
|
|
5346
|
+
=========================================== */
|
|
5347
|
+
.mba-carousel__control {
|
|
5348
|
+
display: inline-flex;
|
|
5349
|
+
align-items: center;
|
|
5350
|
+
justify-content: center;
|
|
5351
|
+
flex-shrink: 0;
|
|
5352
|
+
padding: var(--mba-space-xxs);
|
|
5353
|
+
border: none;
|
|
5354
|
+
border-radius: var(--mba-radius-full);
|
|
5355
|
+
background-color: var(--mba-color-primary-500);
|
|
5356
|
+
color: var(--mba-color-white);
|
|
5357
|
+
cursor: pointer;
|
|
5358
|
+
transition: background-color var(--mba-transition-base);
|
|
5359
|
+
}
|
|
5360
|
+
|
|
5361
|
+
.mba-carousel__control:hover:not(:disabled):not(.is-disabled) {
|
|
5362
|
+
background-color: var(--mba-color-primary-800);
|
|
5363
|
+
}
|
|
5364
|
+
|
|
5365
|
+
.mba-carousel__control:focus-visible {
|
|
5366
|
+
outline: none;
|
|
5367
|
+
box-shadow: var(--mba-focus-ring);
|
|
5368
|
+
}
|
|
5369
|
+
|
|
5370
|
+
/* Flèche en butée (début / fin de piste) */
|
|
5371
|
+
.mba-carousel__control:disabled,
|
|
5372
|
+
.mba-carousel__control.is-disabled {
|
|
5373
|
+
background-color: var(--mba-color-grey-100);
|
|
5374
|
+
cursor: not-allowed;
|
|
5375
|
+
}
|
|
5376
|
+
|
|
5377
|
+
/* ===========================================
|
|
5378
|
+
ACCESSIBILITÉ : mouvement réduit
|
|
5379
|
+
=========================================== */
|
|
5380
|
+
@media (prefers-reduced-motion: reduce) {
|
|
5381
|
+
.mba-carousel__track {
|
|
5382
|
+
scroll-behavior: auto;
|
|
5383
|
+
}
|
|
5384
|
+
}
|
|
5385
|
+
|
|
5386
|
+
}
|
|
5387
|
+
/**
|
|
5388
|
+
* MBA Design System - Navigation
|
|
5389
|
+
*
|
|
5390
|
+
* Fil d'Ariane (breadcrumb).
|
|
5391
|
+
* - Le premier niveau porte une icône « maison » (home) + libellé.
|
|
5392
|
+
* - Les séparateurs sont des chevrons décoratifs (keyboard_arrow_right).
|
|
5393
|
+
* - Les niveaux parents sont des liens neutres (grey-800) ; l'élément courant
|
|
5394
|
+
* est mis en avant en primary-500 et n'est pas cliquable.
|
|
5395
|
+
*
|
|
5396
|
+
* Accessibilité (câblage markup, cf. story) :
|
|
5397
|
+
* - Conteneur : <nav aria-label="Fil d'Ariane"> avec un <ol>.
|
|
5398
|
+
* - Élément courant : aria-current="page" (stylé via l'attribut).
|
|
5399
|
+
* - Séparateurs : aria-hidden="true".
|
|
5400
|
+
*
|
|
5401
|
+
* Source: Design System Figma (Breadcrumbs - Ma vie d'aidant, node 4660-18352).
|
|
5402
|
+
*/
|
|
5403
|
+
@layer components {
|
|
5404
|
+
|
|
5405
|
+
/* ===========================================
|
|
5406
|
+
CONTENEUR
|
|
5407
|
+
=========================================== */
|
|
5408
|
+
.mba-breadcrumb {
|
|
5409
|
+
font-family: var(--mba-font-family-text);
|
|
5410
|
+
font-size: var(--mba-font-size-xxs); /* 14px */
|
|
5411
|
+
line-height: normal;
|
|
5412
|
+
}
|
|
5413
|
+
|
|
5414
|
+
/* ===========================================
|
|
5415
|
+
LISTE (<ol>)
|
|
5416
|
+
Gap uniforme de 4px entre chaque élément et séparateur.
|
|
5417
|
+
=========================================== */
|
|
5418
|
+
.mba-breadcrumb__list {
|
|
5419
|
+
display: flex;
|
|
5420
|
+
flex-wrap: wrap;
|
|
5421
|
+
align-items: center;
|
|
5422
|
+
gap: var(--mba-space-xxs); /* 4px */
|
|
5423
|
+
margin: 0;
|
|
5424
|
+
padding: 0;
|
|
5425
|
+
list-style: none;
|
|
5426
|
+
}
|
|
5427
|
+
|
|
5428
|
+
/* ===========================================
|
|
5429
|
+
ITEM (<li>)
|
|
5430
|
+
Contient le lien (ou l'élément courant) et son séparateur.
|
|
5431
|
+
=========================================== */
|
|
5432
|
+
.mba-breadcrumb__item {
|
|
5433
|
+
display: inline-flex;
|
|
5434
|
+
align-items: center;
|
|
5435
|
+
gap: var(--mba-space-xxs); /* 4px */
|
|
5436
|
+
min-width: 0;
|
|
5437
|
+
}
|
|
5438
|
+
|
|
5439
|
+
/* ===========================================
|
|
5440
|
+
LIEN (niveaux parents)
|
|
5441
|
+
Neutre grey-800, hover primary-800 + soulignement.
|
|
5442
|
+
=========================================== */
|
|
5443
|
+
.mba-breadcrumb__link {
|
|
5444
|
+
display: inline-flex;
|
|
5445
|
+
align-items: center;
|
|
5446
|
+
gap: var(--mba-space-xxs); /* 4px : icône home + libellé */
|
|
5447
|
+
min-width: 0;
|
|
5448
|
+
color: var(--mba-color-grey-800);
|
|
5449
|
+
font-weight: var(--mba-font-weight-semibold);
|
|
5450
|
+
text-decoration: none;
|
|
5451
|
+
transition: color var(--mba-transition-base);
|
|
5452
|
+
}
|
|
5453
|
+
|
|
5454
|
+
.mba-breadcrumb__link:hover {
|
|
5455
|
+
color: var(--mba-color-primary-800);
|
|
5456
|
+
text-decoration: underline;
|
|
5457
|
+
}
|
|
5458
|
+
|
|
5459
|
+
.mba-breadcrumb__link:focus-visible {
|
|
5460
|
+
outline: none;
|
|
5461
|
+
border-radius: var(--mba-radius-2xs);
|
|
5462
|
+
box-shadow: var(--mba-focus-ring);
|
|
5463
|
+
}
|
|
5464
|
+
|
|
5465
|
+
/* Libellé tronqué proprement si trop long (mobile) */
|
|
5466
|
+
.mba-breadcrumb__label {
|
|
5467
|
+
overflow: hidden;
|
|
5468
|
+
text-overflow: ellipsis;
|
|
5469
|
+
white-space: nowrap;
|
|
5470
|
+
}
|
|
5471
|
+
|
|
5472
|
+
/* Icône « maison » : hérite de la couleur du lien (grey-800) */
|
|
5473
|
+
.mba-breadcrumb__home-icon {
|
|
5474
|
+
flex-shrink: 0;
|
|
5475
|
+
color: inherit;
|
|
5476
|
+
}
|
|
5477
|
+
|
|
5478
|
+
/* ===========================================
|
|
5479
|
+
SÉPARATEUR (chevron décoratif)
|
|
5480
|
+
=========================================== */
|
|
5481
|
+
.mba-breadcrumb__separator {
|
|
5482
|
+
flex-shrink: 0;
|
|
5483
|
+
color: var(--mba-color-grey-400);
|
|
5484
|
+
user-select: none;
|
|
5485
|
+
}
|
|
5486
|
+
|
|
5487
|
+
/* ===========================================
|
|
5488
|
+
ÉLÉMENT COURANT (page active, non cliquable)
|
|
5489
|
+
Accent primary-500. Stylé via la classe ou l'attribut aria-current.
|
|
5490
|
+
=========================================== */
|
|
5491
|
+
.mba-breadcrumb__current,
|
|
5492
|
+
.mba-breadcrumb [aria-current="page"] {
|
|
5493
|
+
color: var(--mba-color-primary-500);
|
|
5494
|
+
font-weight: var(--mba-font-weight-semibold);
|
|
5495
|
+
overflow: hidden;
|
|
5496
|
+
text-overflow: ellipsis;
|
|
5497
|
+
white-space: nowrap;
|
|
5498
|
+
}
|
|
5499
|
+
|
|
5500
|
+
/* ===========================================
|
|
5501
|
+
FIL REPLIABLE (ellipsis)
|
|
5502
|
+
Pour les fils longs / mobile : les niveaux intermédiaires sont masqués
|
|
5503
|
+
derrière un bouton « … » qui les déplie.
|
|
5504
|
+
Comportement (masquage des items, bascule aria-expanded) piloté par l'app —
|
|
5505
|
+
zéro JS dans le DS. Style du bouton aligné sur .mba-breadcrumb__link.
|
|
5506
|
+
À câbler : <button class="mba-breadcrumb__toggle" aria-expanded="false"
|
|
5507
|
+
aria-label="Afficher le fil d'Ariane complet">…</button>
|
|
5508
|
+
=========================================== */
|
|
5509
|
+
.mba-breadcrumb__toggle {
|
|
5510
|
+
display: inline-flex;
|
|
5511
|
+
align-items: center;
|
|
5512
|
+
justify-content: center;
|
|
5513
|
+
min-width: 24px;
|
|
5514
|
+
padding: 0 var(--mba-space-xxs);
|
|
5515
|
+
border: none;
|
|
5516
|
+
background: transparent;
|
|
5517
|
+
color: var(--mba-color-grey-800);
|
|
5518
|
+
font-family: inherit;
|
|
5519
|
+
font-size: inherit;
|
|
5520
|
+
font-weight: var(--mba-font-weight-semibold);
|
|
5521
|
+
line-height: normal;
|
|
5522
|
+
cursor: pointer;
|
|
5523
|
+
transition: color var(--mba-transition-base);
|
|
5524
|
+
}
|
|
5525
|
+
|
|
5526
|
+
.mba-breadcrumb__toggle:hover {
|
|
5527
|
+
color: var(--mba-color-primary-800);
|
|
5528
|
+
}
|
|
5529
|
+
|
|
5530
|
+
.mba-breadcrumb__toggle:focus-visible {
|
|
5531
|
+
outline: none;
|
|
5532
|
+
border-radius: var(--mba-radius-2xs);
|
|
5533
|
+
box-shadow: var(--mba-focus-ring);
|
|
5534
|
+
}
|
|
5535
|
+
|
|
5536
|
+
/* Item masqué tant que le fil est replié (bascule par l'app). */
|
|
5537
|
+
.mba-breadcrumb__item.is-hidden {
|
|
5538
|
+
display: none;
|
|
5539
|
+
}
|
|
5540
|
+
|
|
5541
|
+
}
|
|
4856
5542
|
/**
|
|
4857
5543
|
* MBA Design System - Utilities
|
|
4858
5544
|
*
|
|
4859
5545
|
* Classes utilitaires complémentaires à Tailwind
|
|
4860
5546
|
*/
|
|
4861
|
-
|
|
4862
5547
|
/* ===========================================
|
|
4863
5548
|
FONT SIZE UTILITIES (MBA custom scale)
|
|
4864
5549
|
Tailwind génère xs, sm, base, lg, xl, 2xl...
|
|
4865
5550
|
On ajoute nos tailles custom : xxs, md, xxl
|
|
4866
5551
|
=========================================== */
|
|
4867
|
-
|
|
4868
5552
|
.text-xxs {
|
|
4869
5553
|
font-size: var(--mba-font-size-xxs);
|
|
4870
5554
|
}
|
|
4871
|
-
|
|
4872
5555
|
.text-md {
|
|
4873
5556
|
font-size: var(--mba-font-size-md);
|
|
4874
5557
|
}
|
|
4875
|
-
|
|
4876
5558
|
.text-xxl {
|
|
4877
5559
|
font-size: var(--mba-font-size-xxl);
|
|
4878
5560
|
}
|
|
4879
|
-
|
|
4880
5561
|
/* ===========================================
|
|
4881
5562
|
ACCESSIBILITY UTILITIES
|
|
4882
5563
|
=========================================== */
|
|
4883
|
-
|
|
4884
5564
|
/* Reduced motion - Respect user preference for reduced animations
|
|
4885
5565
|
Triggered when user enables "Reduce motion" in system settings
|
|
4886
5566
|
(macOS, Windows, iOS, Android)
|
|
@@ -4892,7 +5572,6 @@ button.mba-input-icon__icon:hover {
|
|
|
4892
5572
|
|
|
4893
5573
|
WCAG 2.1 Success Criterion 2.3.3 (AAA)
|
|
4894
5574
|
*/
|
|
4895
|
-
|
|
4896
5575
|
@media (prefers-reduced-motion: reduce) {
|
|
4897
5576
|
*,
|
|
4898
5577
|
*::before,
|
|
@@ -4903,9 +5582,7 @@ button.mba-input-icon__icon:hover {
|
|
|
4903
5582
|
scroll-behavior: auto !important;
|
|
4904
5583
|
}
|
|
4905
5584
|
}
|
|
4906
|
-
|
|
4907
5585
|
/* Visually hidden (accessible) */
|
|
4908
|
-
|
|
4909
5586
|
.mba-sr-only {
|
|
4910
5587
|
position: absolute;
|
|
4911
5588
|
width: 1px;
|
|
@@ -4917,9 +5594,7 @@ button.mba-input-icon__icon:hover {
|
|
|
4917
5594
|
white-space: nowrap;
|
|
4918
5595
|
border-width: 0;
|
|
4919
5596
|
}
|
|
4920
|
-
|
|
4921
5597
|
/* Not visually hidden */
|
|
4922
|
-
|
|
4923
5598
|
.mba-not-sr-only {
|
|
4924
5599
|
position: static;
|
|
4925
5600
|
width: auto;
|
|
@@ -4930,43 +5605,32 @@ button.mba-input-icon__icon:hover {
|
|
|
4930
5605
|
clip: auto;
|
|
4931
5606
|
white-space: normal;
|
|
4932
5607
|
}
|
|
4933
|
-
|
|
4934
5608
|
/* ===========================================
|
|
4935
5609
|
VISIBILITY UTILITIES
|
|
4936
5610
|
Override pour garantir le masquage même avec
|
|
4937
5611
|
les composants MBA (display: inline-flex, etc.)
|
|
4938
5612
|
=========================================== */
|
|
4939
|
-
|
|
4940
5613
|
/* Hidden - force display: none sur tous les composants */
|
|
4941
|
-
|
|
4942
5614
|
.hidden {
|
|
4943
5615
|
display: none !important;
|
|
4944
5616
|
}
|
|
4945
|
-
|
|
4946
5617
|
/* Visible utilities */
|
|
4947
|
-
|
|
4948
5618
|
.visible {
|
|
4949
5619
|
visibility: visible;
|
|
4950
5620
|
}
|
|
4951
|
-
|
|
4952
5621
|
.invisible {
|
|
4953
5622
|
visibility: hidden;
|
|
4954
5623
|
}
|
|
4955
|
-
|
|
4956
5624
|
/* ===========================================
|
|
4957
5625
|
GRADIENT UTILITIES
|
|
4958
5626
|
=========================================== */
|
|
4959
|
-
|
|
4960
5627
|
.bg-gradient-sunset {
|
|
4961
5628
|
background: var(--mba-gradient-sunset);
|
|
4962
5629
|
}
|
|
4963
|
-
|
|
4964
5630
|
/* Border gradient (hover reveal) — applique un contour gradient sunset via ::before */
|
|
4965
|
-
|
|
4966
5631
|
.mba-border-gradient {
|
|
4967
5632
|
position: relative;
|
|
4968
5633
|
}
|
|
4969
|
-
|
|
4970
5634
|
.mba-border-gradient::before {
|
|
4971
5635
|
content: "";
|
|
4972
5636
|
position: absolute;
|
|
@@ -4983,7 +5647,6 @@ button.mba-input-icon__icon:hover {
|
|
|
4983
5647
|
opacity: 0;
|
|
4984
5648
|
transition: opacity var(--mba-transition-base);
|
|
4985
5649
|
}
|
|
4986
|
-
|
|
4987
5650
|
.mba-border-gradient:hover::before,
|
|
4988
5651
|
.mba-border-gradient--visible::before {
|
|
4989
5652
|
opacity: 1;
|