@maboussoleaidant/design-system 0.1.3 → 0.1.4

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.
@@ -1031,7 +1031,7 @@ a:hover {
1031
1031
 
1032
1032
  .mba-btn:disabled,
1033
1033
  .mba-btn.is-disabled {
1034
- background-color: var(--mba-color-grey-100);
1034
+ background-color: var(--mba-color-grey-50);
1035
1035
  color: var(--mba-color-grey-400);
1036
1036
  border-color: transparent;
1037
1037
  cursor: not-allowed;
@@ -1040,6 +1040,7 @@ a:hover {
1040
1040
 
1041
1041
  /* ===========================================
1042
1042
  SECONDARY BUTTON (Large/Default)
1043
+ height: 38px, padding: 8px 16px, gap: 8px
1043
1044
  =========================================== */
1044
1045
 
1045
1046
  .mba-btn-secondary {
@@ -1078,7 +1079,7 @@ a:hover {
1078
1079
 
1079
1080
  .mba-btn-secondary:disabled,
1080
1081
  .mba-btn-secondary.is-disabled {
1081
- background-color: var(--mba-color-grey-100);
1082
+ background-color: var(--mba-color-grey-50);
1082
1083
  color: var(--mba-color-grey-400);
1083
1084
  border-color: var(--mba-color-grey-100);
1084
1085
  cursor: not-allowed;
@@ -1086,204 +1087,533 @@ a:hover {
1086
1087
  }
1087
1088
 
1088
1089
  /* ===========================================
1089
- SMALL BUTTON
1090
- padding: 4px 8px, gap: 8px
1091
- =========================================== */
1092
-
1093
- .mba-btn-sm {
1094
- height: auto;
1095
- padding: var(--mba-space-xxs) var(--mba-space-xs);
1096
- gap: var(--mba-space-xs);
1097
- font-size: var(--mba-font-size-xxs);
1098
- }
1099
-
1100
- /* ===========================================
1101
- ICON BUTTON
1090
+ TERTIARY BUTTON (Large/Default)
1091
+ height: 38px, padding: 8px 16px, gap: 8px
1102
1092
  =========================================== */
1103
1093
 
1104
- .mba-btn-icon {
1094
+ .mba-btn-tertiary {
1105
1095
  display: inline-flex;
1106
- align-items: center;
1096
+ height: 38px;
1097
+ padding: var(--mba-space-xs) var(--mba-space-sm);
1107
1098
  justify-content: center;
1099
+ align-items: center;
1100
+ gap: var(--mba-space-xs);
1101
+ font-family: var(--mba-font-family-text);
1102
+ font-size: var(--mba-font-size-xs);
1103
+ font-weight: var(--mba-font-weight-semibold);
1104
+ line-height: var(--mba-leading-snug);
1105
+ text-decoration: none;
1106
+ border: none;
1107
+ border-radius: var(--mba-radius-xs);
1108
+ cursor: pointer;
1109
+ transition: all 0.25s ease-in-out;
1110
+ user-select: none;
1111
+ white-space: nowrap;
1112
+
1113
+ background-color: var(--mba-color-white);
1114
+ color: var(--mba-color-primary-500);
1108
1115
  }
1109
1116
 
1110
- .mba-btn-icon i,
1111
- .mba-btn-icon svg {
1112
- font-size: 1rem;
1113
- width: 1rem;
1114
- height: 1rem;
1117
+ .mba-btn-tertiary:hover:not(:disabled):not(.is-disabled) {
1118
+ background-color: var(--mba-color-primary-50);
1119
+ color: var(--mba-color-primary-500);
1115
1120
  }
1116
1121
 
1117
- /* Arrow forward icon alignment */
1122
+ .mba-btn-tertiary:focus {
1123
+ outline: none;
1124
+ box-shadow: var(--mba-focus-ring);
1125
+ }
1118
1126
 
1119
- .mba-btn .arrow-forward,
1120
- .mba-btn-secondary .arrow-forward {
1121
- vertical-align: middle;
1127
+ .mba-btn-tertiary:disabled,
1128
+ .mba-btn-tertiary.is-disabled {
1129
+ background-color: var(--mba-color-grey-50);
1130
+ color: var(--mba-color-grey-400);
1131
+ cursor: not-allowed;
1132
+ pointer-events: none;
1122
1133
  }
1123
1134
 
1124
1135
  /* ===========================================
1125
- MODIFIERS
1136
+ INLINE BUTTON
1137
+ height: 24px, padding: 8px 16px, gap: 4px
1126
1138
  =========================================== */
1127
1139
 
1128
- /* Full width */
1140
+ .mba-btn-inline {
1141
+ display: inline-flex;
1142
+ height: 24px;
1143
+ padding: var(--mba-space-xs) var(--mba-space-sm);
1144
+ justify-content: center;
1145
+ align-items: center;
1146
+ gap: var(--mba-space-xxs);
1147
+ font-family: var(--mba-font-family-text);
1148
+ font-size: var(--mba-font-size-xs);
1149
+ font-weight: var(--mba-font-weight-semibold);
1150
+ line-height: var(--mba-leading-snug);
1151
+ text-decoration: underline;
1152
+ border: none;
1153
+ border-radius: var(--mba-radius-xs);
1154
+ cursor: pointer;
1155
+ transition: all 0.25s ease-in-out;
1156
+ user-select: none;
1157
+ white-space: nowrap;
1129
1158
 
1130
- .mba-btn-block {
1131
- display: block;
1132
- width: 100%;
1133
- text-align: center;
1159
+ background-color: var(--mba-color-white);
1160
+ color: var(--mba-color-primary-500);
1134
1161
  }
1135
1162
 
1136
- /* ===========================================
1137
- RESPONSIVE (full width on mobile)
1138
- =========================================== */
1163
+ .mba-btn-inline:hover:not(:disabled):not(.is-disabled):not(.is-error) {
1164
+ background-color: var(--mba-color-white);
1165
+ color: var(--mba-color-primary-800);
1166
+ text-decoration: underline;
1167
+ }
1139
1168
 
1140
- @media (max-width: 767px) {
1141
- .mba-btn,
1142
- .mba-btn-secondary {
1143
- display: flex;
1144
- width: 100%;
1145
- max-width: 100%;
1146
- }
1169
+ .mba-btn-inline:focus {
1170
+ outline: none;
1171
+ box-shadow: var(--mba-focus-ring);
1147
1172
  }
1148
1173
 
1149
- /**
1150
- * MBA Design System - Cards
1151
- *
1152
- * Classes: .mba-card, .mba-card--sm, .mba-card-grid
1153
- * Source: Design System Figma
1154
- */
1174
+ .mba-btn-inline:disabled,
1175
+ .mba-btn-inline.is-disabled {
1176
+ background-color: var(--mba-color-white);
1177
+ color: var(--mba-color-grey-400);
1178
+ text-decoration: underline;
1179
+ cursor: not-allowed;
1180
+ pointer-events: none;
1181
+ }
1182
+
1183
+ /* Alert-Error state */
1184
+
1185
+ .mba-btn-inline.is-error {
1186
+ background-color: var(--mba-color-white);
1187
+ color: var(--mba-color-error-500);
1188
+ text-decoration: underline;
1189
+ }
1155
1190
 
1156
1191
  /* ===========================================
1157
- BASE CARD (Large / Default)
1158
- padding: 24px (MD), border-radius: 16px (SM)
1192
+ LIGHT BUTTON (Large/Default)
1193
+ height: 30px, padding: 4px 12px, gap: 4px
1159
1194
  =========================================== */
1160
1195
 
1161
- .mba-card {
1162
- display: flex;
1163
- flex-direction: column;
1164
- padding: var(--mba-space-md);
1196
+ .mba-btn-light {
1197
+ display: inline-flex;
1198
+ height: 30px;
1199
+ padding: var(--mba-space-xxs) 12px;
1200
+ justify-content: center;
1201
+ align-items: center;
1202
+ gap: var(--mba-space-xxs);
1203
+ font-family: var(--mba-font-family-text);
1204
+ font-size: var(--mba-font-size-xs);
1205
+ font-weight: var(--mba-font-weight-semibold);
1206
+ line-height: var(--mba-leading-snug);
1207
+ text-decoration: none;
1208
+ border: 1.5px solid var(--mba-color-primary-400);
1165
1209
  border-radius: var(--mba-radius-sm);
1166
- background-color: var(--mba-color-beige);
1167
- border: 2px solid transparent;
1168
- transition: border-color 0.25s ease-in-out;
1169
1210
  cursor: pointer;
1211
+ transition: all 0.25s ease-in-out;
1212
+ user-select: none;
1213
+ white-space: nowrap;
1214
+
1215
+ background-color: var(--mba-color-white);
1216
+ color: var(--mba-color-primary-900);
1170
1217
  }
1171
1218
 
1172
- .mba-card:hover {
1219
+ .mba-btn-light:hover:not(:disabled):not(.is-disabled) {
1220
+ background-color: var(--mba-color-white);
1221
+ color: var(--mba-color-primary-900);
1173
1222
  border-color: var(--mba-color-primary-500);
1223
+ text-decoration: underline;
1174
1224
  }
1175
1225
 
1176
- /* ===========================================
1177
- SMALL CARD
1178
- =========================================== */
1226
+ .mba-btn-light:focus {
1227
+ outline: none;
1228
+ box-shadow: var(--mba-focus-ring);
1229
+ }
1179
1230
 
1180
- .mba-card--sm {
1181
- padding: var(--mba-space-sm);
1231
+ .mba-btn-light:disabled,
1232
+ .mba-btn-light.is-disabled {
1233
+ background-color: var(--mba-color-white);
1234
+ color: var(--mba-color-grey-400);
1235
+ border-color: var(--mba-color-grey-100);
1236
+ cursor: not-allowed;
1237
+ pointer-events: none;
1182
1238
  }
1183
1239
 
1184
1240
  /* ===========================================
1185
- CARD PARTS
1241
+ ANNUAIRE BUTTON (Large/Default)
1242
+ height: 38px, padding: 8px 16px, gap: 8px
1186
1243
  =========================================== */
1187
1244
 
1188
- .mba-card__header {
1189
- display: flex;
1190
- justify-content: space-between;
1245
+ .mba-btn-annuaire {
1246
+ display: inline-flex;
1247
+ height: 38px;
1248
+ padding: var(--mba-space-xs) var(--mba-space-sm);
1249
+ justify-content: center;
1191
1250
  align-items: center;
1192
- gap: var(--mba-space-sm);
1193
- }
1194
-
1195
- .mba-card__content {
1196
- flex: 1;
1197
- }
1198
-
1199
- .mba-card__title {
1200
- font-family: var(--mba-font-family-text);
1201
- font-size: var(--mba-font-size-sm);
1202
- font-weight: var(--mba-font-weight-bold);
1203
- color: var(--mba-color-primary-800);
1204
- margin: 0 0 var(--mba-space-xs);
1205
- }
1206
-
1207
- .mba-card__text {
1251
+ gap: var(--mba-space-xs);
1208
1252
  font-family: var(--mba-font-family-text);
1209
1253
  font-size: var(--mba-font-size-xs);
1210
- font-weight: var(--mba-font-weight-regular);
1211
- color: var(--mba-color-text);
1254
+ font-weight: var(--mba-font-weight-semibold);
1212
1255
  line-height: var(--mba-leading-snug);
1213
- margin: 0;
1256
+ text-decoration: none;
1257
+ border: 1px solid var(--mba-color-grey-100);
1258
+ border-radius: var(--mba-radius-xs);
1259
+ cursor: pointer;
1260
+ transition: all 0.25s ease-in-out;
1261
+ user-select: none;
1262
+ white-space: nowrap;
1263
+
1264
+ background-color: var(--mba-color-white);
1265
+ color: var(--mba-color-primary-900);
1214
1266
  }
1215
1267
 
1216
- .mba-card__icon {
1217
- flex-shrink: 0;
1218
- color: var(--mba-color-primary-500);
1219
- font-size: 24px;
1220
- transition: transform 0.2s ease;
1268
+ .mba-btn-annuaire:hover:not(:disabled):not(.is-disabled) {
1269
+ background-color: var(--mba-color-white);
1270
+ color: var(--mba-color-primary-900);
1271
+ border-color: var(--mba-color-primary-500);
1221
1272
  }
1222
1273
 
1223
- .mba-card__icon svg {
1224
- width: 24px;
1225
- height: 24px;
1274
+ .mba-btn-annuaire:focus {
1275
+ outline: none;
1276
+ box-shadow: var(--mba-focus-ring);
1226
1277
  }
1227
1278
 
1228
- .mba-card:hover .mba-card__icon {
1229
- transform: translateX(4px);
1279
+ .mba-btn-annuaire:disabled,
1280
+ .mba-btn-annuaire.is-disabled {
1281
+ background-color: var(--mba-color-white);
1282
+ color: var(--mba-color-grey-400);
1283
+ border-color: var(--mba-color-grey-100);
1284
+ cursor: not-allowed;
1285
+ pointer-events: none;
1230
1286
  }
1231
1287
 
1232
1288
  /* ===========================================
1233
- CARD GRID
1289
+ PIN BUTTON
1290
+ width: 40px, height: 40px, icon: 20px
1234
1291
  =========================================== */
1235
1292
 
1236
- .mba-card-grid {
1237
- display: grid;
1238
- gap: var(--mba-space-md);
1239
- grid-template-columns: 1fr;
1240
- width: 100%;
1241
- }
1293
+ .mba-btn-pin {
1294
+ display: inline-flex;
1295
+ width: 40px;
1296
+ height: 40px;
1297
+ padding: 0;
1298
+ justify-content: center;
1299
+ align-items: center;
1300
+ border: 1px solid var(--mba-color-primary-500);
1301
+ border-radius: 50%;
1302
+ cursor: pointer;
1303
+ transition: all 0.25s ease-in-out;
1304
+ user-select: none;
1242
1305
 
1243
- @media (min-width: 600px) {
1244
- .mba-card-grid {
1245
- grid-template-columns: repeat(2, 1fr);
1246
- }
1306
+ background-color: var(--mba-color-white);
1307
+ color: var(--mba-color-primary-500);
1247
1308
  }
1248
1309
 
1249
- @media (min-width: 900px) {
1250
- .mba-card-grid {
1251
- grid-template-columns: repeat(3, 1fr);
1252
- }
1310
+ .mba-btn-pin .mba-icon {
1311
+ font-size: 20px;
1312
+ width: 20px;
1313
+ height: 20px;
1253
1314
  }
1254
1315
 
1255
- /* ===========================================
1256
- CARD VARIANTS
1257
- =========================================== */
1316
+ .mba-btn-pin:focus {
1317
+ outline: none;
1318
+ box-shadow: var(--mba-focus-ring);
1319
+ }
1258
1320
 
1259
- /* White background */
1321
+ /* Deja-vu state */
1260
1322
 
1261
- .mba-card--white {
1262
- background-color: var(--mba-color-white);
1323
+ .mba-btn-pin.is-deja-vu {
1324
+ border-color: var(--mba-color-grey-300);
1325
+ background-color: var(--mba-color-grey-50);
1326
+ color: var(--mba-color-grey-300);
1263
1327
  }
1264
1328
 
1265
- /* Non-interactive (no hover) */
1329
+ /* Activated state */
1266
1330
 
1267
- .mba-card--static {
1268
- cursor: default;
1331
+ .mba-btn-pin.is-activated {
1332
+ border-color: var(--mba-color-primary-500);
1333
+ background-color: var(--mba-color-primary-500);
1334
+ color: var(--mba-color-white);
1269
1335
  }
1270
1336
 
1271
- .mba-card--static:hover {
1272
- border-color: transparent;
1337
+ .mba-btn-pin.is-activated .mba-icon {
1338
+ color: var(--mba-color-white);
1339
+ }
1340
+
1341
+ .mba-btn-pin:disabled,
1342
+ .mba-btn-pin.is-disabled {
1343
+ opacity: 0.5;
1344
+ cursor: not-allowed;
1345
+ pointer-events: none;
1273
1346
  }
1274
1347
 
1275
1348
  /* ===========================================
1276
- CAROUSEL CARD (Testimonial)
1277
- Bordure gradient sunset
1349
+ ICON BUTTON
1350
+ width: 24px, height: 24px, icon: 16px
1278
1351
  =========================================== */
1279
1352
 
1280
- .mba-carousel-card {
1281
- position: relative;
1282
- display: flex;
1283
- flex-direction: column;
1284
- padding: var(--mba-space-md);
1285
- background-color: var(--mba-color-white);
1286
- border-radius: 24px 24px 8px 24px;
1353
+ .mba-btn-icon-only {
1354
+ display: inline-flex;
1355
+ width: 24px;
1356
+ height: 24px;
1357
+ padding: 0;
1358
+ justify-content: center;
1359
+ align-items: center;
1360
+ border-radius: var(--mba-radius-xs);
1361
+ cursor: pointer;
1362
+ transition: all 0.25s ease-in-out;
1363
+ user-select: none;
1364
+ border: 1px solid var(--mba-color-black);
1365
+ background-color: var(--mba-color-white);
1366
+ color: var(--mba-color-black);
1367
+ }
1368
+
1369
+ .mba-btn-icon-only .mba-icon {
1370
+ font-size: 16px;
1371
+ width: 16px;
1372
+ height: 16px;
1373
+ }
1374
+
1375
+ .mba-btn-icon-only:hover:not(:disabled):not(.is-disabled):not(.is-activated):not(.is-alert) {
1376
+ border-color: var(--mba-color-primary-500);
1377
+ color: var(--mba-color-primary-500);
1378
+ }
1379
+
1380
+ .mba-btn-icon-only:focus {
1381
+ outline: none;
1382
+ box-shadow: var(--mba-focus-ring);
1383
+ }
1384
+
1385
+ /* Activated state */
1386
+
1387
+ .mba-btn-icon-only.is-activated {
1388
+ border-color: var(--mba-color-primary-500);
1389
+ background-color: var(--mba-color-white);
1390
+ color: var(--mba-color-primary-500);
1391
+ }
1392
+
1393
+ .mba-btn-icon-only.is-activated:hover:not(:disabled):not(.is-disabled) {
1394
+ border-color: var(--mba-color-primary-500);
1395
+ color: var(--mba-color-primary-500);
1396
+ }
1397
+
1398
+ /* Disabled state */
1399
+
1400
+ .mba-btn-icon-only:disabled,
1401
+ .mba-btn-icon-only.is-disabled {
1402
+ border-color: var(--mba-color-grey-300);
1403
+ background-color: var(--mba-color-white);
1404
+ color: var(--mba-color-grey-300);
1405
+ cursor: not-allowed;
1406
+ pointer-events: none;
1407
+ }
1408
+
1409
+ /* Alert state */
1410
+
1411
+ .mba-btn-icon-only.is-alert {
1412
+ border-color: var(--mba-color-error-500);
1413
+ background-color: var(--mba-color-white);
1414
+ color: var(--mba-color-error-500);
1415
+ }
1416
+
1417
+ .mba-btn-icon-only.is-alert:hover:not(:disabled):not(.is-disabled) {
1418
+ border-color: var(--mba-color-error-500);
1419
+ color: var(--mba-color-error-500);
1420
+ }
1421
+
1422
+ /* ===========================================
1423
+ SMALL BUTTON
1424
+ padding: 4px 8px, gap: 8px
1425
+ =========================================== */
1426
+
1427
+ .mba-btn-sm {
1428
+ height: auto;
1429
+ padding: var(--mba-space-xxs) var(--mba-space-xs);
1430
+ gap: var(--mba-space-xs);
1431
+ font-size: var(--mba-font-size-xxs);
1432
+ }
1433
+
1434
+ /* ===========================================
1435
+ ICON ALIGNMENT
1436
+ =========================================== */
1437
+
1438
+ .mba-btn-icon-only i,
1439
+ .mba-btn-icon-only svg,
1440
+ .mba-btn i,
1441
+ .mba-btn svg {
1442
+ font-size: 1rem;
1443
+ width: 1rem;
1444
+ height: 1rem;
1445
+ }
1446
+
1447
+ /* Arrow forward icon alignment */
1448
+
1449
+ .mba-btn .arrow-forward,
1450
+ .mba-btn-secondary .arrow-forward {
1451
+ vertical-align: middle;
1452
+ }
1453
+
1454
+ /* ===========================================
1455
+ MODIFIERS
1456
+ =========================================== */
1457
+
1458
+ /* Full width */
1459
+
1460
+ .mba-btn-block {
1461
+ display: block;
1462
+ width: 100%;
1463
+ text-align: center;
1464
+ }
1465
+
1466
+ /* ===========================================
1467
+ RESPONSIVE (full width on mobile)
1468
+ =========================================== */
1469
+
1470
+ @media (max-width: 767px) {
1471
+ .mba-btn,
1472
+ .mba-btn-secondary {
1473
+ display: flex;
1474
+ width: 100%;
1475
+ max-width: 100%;
1476
+ }
1477
+ }
1478
+
1479
+ /**
1480
+ * MBA Design System - Cards
1481
+ *
1482
+ * Classes: .mba-card, .mba-card--sm, .mba-card-grid
1483
+ * Source: Design System Figma
1484
+ */
1485
+
1486
+ /* ===========================================
1487
+ BASE CARD (Large / Default)
1488
+ padding: 24px (MD), border-radius: 16px (SM)
1489
+ =========================================== */
1490
+
1491
+ .mba-card {
1492
+ display: flex;
1493
+ flex-direction: column;
1494
+ padding: var(--mba-space-md);
1495
+ border-radius: var(--mba-radius-sm);
1496
+ background-color: var(--mba-color-beige);
1497
+ border: 2px solid transparent;
1498
+ transition: border-color 0.25s ease-in-out;
1499
+ cursor: pointer;
1500
+ }
1501
+
1502
+ .mba-card:hover {
1503
+ border-color: var(--mba-color-primary-500);
1504
+ }
1505
+
1506
+ /* ===========================================
1507
+ SMALL CARD
1508
+ =========================================== */
1509
+
1510
+ .mba-card--sm {
1511
+ padding: var(--mba-space-sm);
1512
+ }
1513
+
1514
+ /* ===========================================
1515
+ CARD PARTS
1516
+ =========================================== */
1517
+
1518
+ .mba-card__header {
1519
+ display: flex;
1520
+ justify-content: space-between;
1521
+ align-items: center;
1522
+ gap: var(--mba-space-sm);
1523
+ }
1524
+
1525
+ .mba-card__content {
1526
+ flex: 1;
1527
+ }
1528
+
1529
+ .mba-card__title {
1530
+ font-family: var(--mba-font-family-text);
1531
+ font-size: var(--mba-font-size-sm);
1532
+ font-weight: var(--mba-font-weight-bold);
1533
+ color: var(--mba-color-primary-800);
1534
+ margin: 0 0 var(--mba-space-xs);
1535
+ }
1536
+
1537
+ .mba-card__text {
1538
+ font-family: var(--mba-font-family-text);
1539
+ font-size: var(--mba-font-size-xs);
1540
+ font-weight: var(--mba-font-weight-regular);
1541
+ color: var(--mba-color-text);
1542
+ line-height: var(--mba-leading-snug);
1543
+ margin: 0;
1544
+ }
1545
+
1546
+ .mba-card__icon {
1547
+ flex-shrink: 0;
1548
+ color: var(--mba-color-primary-500);
1549
+ font-size: 24px;
1550
+ transition: transform 0.2s ease;
1551
+ }
1552
+
1553
+ .mba-card__icon svg {
1554
+ width: 24px;
1555
+ height: 24px;
1556
+ }
1557
+
1558
+ .mba-card:hover .mba-card__icon {
1559
+ transform: translateX(4px);
1560
+ }
1561
+
1562
+ /* ===========================================
1563
+ CARD GRID
1564
+ =========================================== */
1565
+
1566
+ .mba-card-grid {
1567
+ display: grid;
1568
+ gap: var(--mba-space-md);
1569
+ grid-template-columns: 1fr;
1570
+ width: 100%;
1571
+ }
1572
+
1573
+ @media (min-width: 600px) {
1574
+ .mba-card-grid {
1575
+ grid-template-columns: repeat(2, 1fr);
1576
+ }
1577
+ }
1578
+
1579
+ @media (min-width: 900px) {
1580
+ .mba-card-grid {
1581
+ grid-template-columns: repeat(3, 1fr);
1582
+ }
1583
+ }
1584
+
1585
+ /* ===========================================
1586
+ CARD VARIANTS
1587
+ =========================================== */
1588
+
1589
+ /* White background */
1590
+
1591
+ .mba-card--white {
1592
+ background-color: var(--mba-color-white);
1593
+ }
1594
+
1595
+ /* Non-interactive (no hover) */
1596
+
1597
+ .mba-card--static {
1598
+ cursor: default;
1599
+ }
1600
+
1601
+ .mba-card--static:hover {
1602
+ border-color: transparent;
1603
+ }
1604
+
1605
+ /* ===========================================
1606
+ CAROUSEL CARD (Testimonial)
1607
+ Bordure gradient sunset
1608
+ =========================================== */
1609
+
1610
+ .mba-carousel-card {
1611
+ position: relative;
1612
+ display: flex;
1613
+ flex-direction: column;
1614
+ padding: var(--mba-space-md);
1615
+ background-color: var(--mba-color-white);
1616
+ border-radius: 24px 24px 8px 24px;
1287
1617
  width: 453px;
1288
1618
  height: 278px;
1289
1619
  box-sizing: border-box;
@@ -1472,6 +1802,912 @@ a:hover {
1472
1802
  font-size: 24px;
1473
1803
  }
1474
1804
 
1805
+ /**
1806
+ * MBA Design System - Radio & Checkbox
1807
+ *
1808
+ * Classes: .mba-radio, .mba-radio--pro, .mba-checkbox, .mba-checkbox--pro
1809
+ * Source: Design System Figma
1810
+ */
1811
+
1812
+ /* ===========================================
1813
+ RADIO BUTTON - Aidants (Primary)
1814
+ =========================================== */
1815
+
1816
+ .mba-radio {
1817
+ position: relative;
1818
+ display: inline-flex;
1819
+ align-items: center;
1820
+ justify-content: center;
1821
+ width: 16px;
1822
+ height: 16px;
1823
+ cursor: pointer;
1824
+ }
1825
+
1826
+ .mba-radio input {
1827
+ position: absolute;
1828
+ opacity: 0;
1829
+ width: 100%;
1830
+ height: 100%;
1831
+ margin: 0;
1832
+ cursor: pointer;
1833
+ }
1834
+
1835
+ .mba-radio .mba-radio__control {
1836
+ position: relative;
1837
+ width: 16px;
1838
+ height: 16px;
1839
+ border-radius: 8px;
1840
+ border: 1px solid var(--mba-color-primary-900);
1841
+ background-color: var(--mba-color-white);
1842
+ transition: all 0.2s ease;
1843
+ }
1844
+
1845
+ .mba-radio .mba-radio__control::after {
1846
+ content: "";
1847
+ position: absolute;
1848
+ top: 50%;
1849
+ left: 50%;
1850
+ transform: translate(-50%, -50%) scale(0);
1851
+ width: 12px;
1852
+ height: 12px;
1853
+ border-radius: 50%;
1854
+ background-color: var(--mba-color-primary-400);
1855
+ transition: transform 0.2s ease;
1856
+ }
1857
+
1858
+ /* Hover state (pas sur disabled) */
1859
+
1860
+ .mba-radio:hover:not(:has(input:disabled)) .mba-radio__control::after {
1861
+ transform: translate(-50%, -50%) scale(1);
1862
+ width: 10px;
1863
+ height: 10px;
1864
+ }
1865
+
1866
+ /* Selected state */
1867
+
1868
+ .mba-radio input:checked + .mba-radio__control::after {
1869
+ transform: translate(-50%, -50%) scale(1);
1870
+ width: 12px;
1871
+ height: 12px;
1872
+ }
1873
+
1874
+ /* Focus state */
1875
+
1876
+ .mba-radio input:focus + .mba-radio__control {
1877
+ box-shadow: var(--mba-focus-ring);
1878
+ }
1879
+
1880
+ /* Disabled state */
1881
+
1882
+ .mba-radio input:disabled + .mba-radio__control {
1883
+ border-color: var(--mba-color-grey-300);
1884
+ background-color: var(--mba-color-grey-50);
1885
+ cursor: not-allowed;
1886
+ }
1887
+
1888
+ .mba-radio input:disabled + .mba-radio__control::after {
1889
+ background-color: var(--mba-color-grey-300);
1890
+ }
1891
+
1892
+ .mba-radio:has(input:disabled) {
1893
+ cursor: not-allowed;
1894
+ }
1895
+
1896
+ /* ===========================================
1897
+ RADIO BUTTON - Partenaire (PrimaryPro)
1898
+ =========================================== */
1899
+
1900
+ .mba-radio--pro .mba-radio__control {
1901
+ border-color: var(--mba-color-primary-pro-800);
1902
+ }
1903
+
1904
+ .mba-radio--pro .mba-radio__control::after {
1905
+ background-color: var(--mba-color-primary-pro-400);
1906
+ }
1907
+
1908
+ /* ===========================================
1909
+ CHECKBOX - Aidants (Primary)
1910
+ =========================================== */
1911
+
1912
+ .mba-checkbox {
1913
+ position: relative;
1914
+ display: inline-flex;
1915
+ align-items: center;
1916
+ justify-content: center;
1917
+ width: 16px;
1918
+ height: 16px;
1919
+ cursor: pointer;
1920
+ }
1921
+
1922
+ .mba-checkbox input {
1923
+ position: absolute;
1924
+ opacity: 0;
1925
+ width: 100%;
1926
+ height: 100%;
1927
+ margin: 0;
1928
+ cursor: pointer;
1929
+ }
1930
+
1931
+ .mba-checkbox .mba-checkbox__control {
1932
+ position: relative;
1933
+ width: 16px;
1934
+ height: 16px;
1935
+ border-radius: var(--mba-radius-2xs);
1936
+ border: 1px solid var(--mba-color-primary-900);
1937
+ background-color: var(--mba-color-white);
1938
+ transition: all 0.2s ease;
1939
+ }
1940
+
1941
+ .mba-checkbox .mba-checkbox__control::after {
1942
+ content: "";
1943
+ position: absolute;
1944
+ top: 50%;
1945
+ left: 50%;
1946
+ transform: translate(-50%, -50%) scale(0);
1947
+ width: 12px;
1948
+ height: 12px;
1949
+ border-radius: 2px;
1950
+ background-color: var(--mba-color-primary-400);
1951
+ transition: transform 0.2s ease;
1952
+ }
1953
+
1954
+ /* Hover state (pas sur disabled) */
1955
+
1956
+ .mba-checkbox:hover:not(:has(input:disabled)) .mba-checkbox__control::after {
1957
+ transform: translate(-50%, -50%) scale(1);
1958
+ width: 10px;
1959
+ height: 10px;
1960
+ }
1961
+
1962
+ /* Selected state */
1963
+
1964
+ .mba-checkbox input:checked + .mba-checkbox__control::after {
1965
+ transform: translate(-50%, -50%) scale(1);
1966
+ width: 12px;
1967
+ height: 12px;
1968
+ }
1969
+
1970
+ /* Focus state */
1971
+
1972
+ .mba-checkbox input:focus + .mba-checkbox__control {
1973
+ box-shadow: var(--mba-focus-ring);
1974
+ }
1975
+
1976
+ /* Disabled state */
1977
+
1978
+ .mba-checkbox input:disabled + .mba-checkbox__control {
1979
+ border-color: var(--mba-color-grey-300);
1980
+ background-color: var(--mba-color-grey-50);
1981
+ cursor: not-allowed;
1982
+ }
1983
+
1984
+ .mba-checkbox input:disabled + .mba-checkbox__control::after {
1985
+ background-color: var(--mba-color-grey-300);
1986
+ }
1987
+
1988
+ .mba-checkbox:has(input:disabled) {
1989
+ cursor: not-allowed;
1990
+ }
1991
+
1992
+ /* ===========================================
1993
+ CHECKBOX - Partenaire (PrimaryPro)
1994
+ =========================================== */
1995
+
1996
+ .mba-checkbox--pro .mba-checkbox__control {
1997
+ border-color: var(--mba-color-primary-pro-800);
1998
+ }
1999
+
2000
+ .mba-checkbox--pro .mba-checkbox__control::after {
2001
+ background-color: var(--mba-color-primary-pro-400);
2002
+ }
2003
+
2004
+ /* ===========================================
2005
+ WITH LABEL
2006
+ =========================================== */
2007
+
2008
+ .mba-radio-label,
2009
+ .mba-checkbox-label {
2010
+ display: inline-flex;
2011
+ align-items: center;
2012
+ gap: var(--mba-space-xs);
2013
+ cursor: pointer;
2014
+ font-family: var(--mba-font-family-text);
2015
+ font-size: var(--mba-font-size-xs);
2016
+ color: var(--mba-color-black);
2017
+ }
2018
+
2019
+ .mba-radio-label:has(input:disabled),
2020
+ .mba-checkbox-label:has(input:disabled) {
2021
+ cursor: not-allowed;
2022
+ color: var(--mba-color-grey-400);
2023
+ }
2024
+
2025
+ /**
2026
+ * MBA Design System - Pagination
2027
+ *
2028
+ * Composant de pagination pour la navigation entre pages
2029
+ * Source: Design System Figma
2030
+ */
2031
+
2032
+ /* ===========================================
2033
+ PAGINATION CONTAINER
2034
+ height: hug (32px), gap: 16px (SM)
2035
+ =========================================== */
2036
+
2037
+ .mba-pagination {
2038
+ display: inline-flex;
2039
+ align-items: center;
2040
+ gap: var(--mba-space-sm); /* 16px */
2041
+ padding: 0;
2042
+ margin: 0;
2043
+ list-style: none;
2044
+ }
2045
+
2046
+ /* ===========================================
2047
+ PAGINATION ITEM
2048
+ width: 32px, height: 32px
2049
+ =========================================== */
2050
+
2051
+ .mba-pagination-item {
2052
+ display: inline-flex;
2053
+ width: 32px;
2054
+ height: 32px;
2055
+ padding: 0;
2056
+ justify-content: center;
2057
+ align-items: center;
2058
+ font-family: var(--mba-font-family-text);
2059
+ font-size: var(--mba-font-size-xs);
2060
+ font-weight: var(--mba-font-weight-semibold);
2061
+ font-size: 18px;
2062
+ line-height: var(--mba-leading-snug);
2063
+ text-decoration: none;
2064
+ border: none;
2065
+ border-radius: var(--mba-radius-xs);
2066
+ cursor: pointer;
2067
+ transition: all 0.25s ease-in-out;
2068
+ user-select: none;
2069
+ background-color: var(--mba-color-white);
2070
+ color: var(--mba-color-black);
2071
+ }
2072
+
2073
+ .mba-pagination-item:hover:not(:disabled):not(.is-disabled):not(.is-active) {
2074
+ background-color: var(--mba-color-grey-50);
2075
+ color: var(--mba-color-black);
2076
+ }
2077
+
2078
+ .mba-pagination-item:focus {
2079
+ outline: none;
2080
+ box-shadow: var(--mba-focus-ring);
2081
+ }
2082
+
2083
+ /* Active state */
2084
+
2085
+ .mba-pagination-item.is-active {
2086
+ background-color: var(--mba-color-secondary-500);
2087
+ border-radius: 50%;
2088
+ color: var(--mba-color-black);
2089
+ cursor: default;
2090
+ }
2091
+
2092
+ /* Disabled state */
2093
+
2094
+ .mba-pagination-item:disabled,
2095
+ .mba-pagination-item.is-disabled {
2096
+ background-color: var(--mba-color-white);
2097
+ color: var(--mba-color-grey-300);
2098
+ cursor: not-allowed;
2099
+ pointer-events: none;
2100
+ }
2101
+
2102
+ /* ===========================================
2103
+ PAGINATION ELLIPSIS
2104
+ =========================================== */
2105
+
2106
+ .mba-pagination-ellipsis {
2107
+ display: inline-flex;
2108
+ width: 32px;
2109
+ height: 32px;
2110
+ padding: 0;
2111
+ justify-content: center;
2112
+ align-items: center;
2113
+ font-family: var(--mba-font-family-text);
2114
+ font-size: var(--mba-font-size-xs);
2115
+ font-weight: var(--mba-font-weight-semibold);
2116
+ line-height: var(--mba-leading-snug);
2117
+ color: var(--mba-color-grey-400);
2118
+ user-select: none;
2119
+ pointer-events: none;
2120
+ }
2121
+
2122
+ /* ===========================================
2123
+ PAGINATION ARROW BUTTON
2124
+ width: 32px, height: 32px
2125
+ =========================================== */
2126
+
2127
+ .mba-pagination-arrow {
2128
+ display: inline-flex;
2129
+ width: 32px;
2130
+ height: 32px;
2131
+ padding: 0;
2132
+ justify-content: center;
2133
+ align-items: center;
2134
+ border: none;
2135
+ border-radius: var(--mba-radius-xs);
2136
+ cursor: pointer;
2137
+ transition: all 0.25s ease-in-out;
2138
+ user-select: none;
2139
+ background-color: var(--mba-color-white);
2140
+ color: var(--mba-color-black);
2141
+ }
2142
+
2143
+ .mba-pagination-arrow .mba-icon {
2144
+ font-size: 20px;
2145
+ width: 20px;
2146
+ height: 20px;
2147
+ }
2148
+
2149
+ .mba-pagination-arrow:hover:not(:disabled):not(.is-disabled) {
2150
+ background-color: var(--mba-color-grey-50);
2151
+ color: var(--mba-color-black);
2152
+ }
2153
+
2154
+ .mba-pagination-arrow:focus {
2155
+ outline: none;
2156
+ box-shadow: var(--mba-focus-ring);
2157
+ }
2158
+
2159
+ .mba-pagination-arrow:disabled,
2160
+ .mba-pagination-arrow.is-disabled {
2161
+ background-color: var(--mba-color-white);
2162
+ color: var(--mba-color-grey-300);
2163
+ cursor: not-allowed;
2164
+ pointer-events: none;
2165
+ }
2166
+
2167
+ /**
2168
+ * MBA Design System - Inputs
2169
+ *
2170
+ * Classes: .mba-textarea, .mba-input, .mba-label
2171
+ * Source: Design System Figma
2172
+ */
2173
+
2174
+ /* ===========================================
2175
+ LABEL
2176
+ =========================================== */
2177
+
2178
+ .mba-label {
2179
+ display: flex;
2180
+ align-items: center;
2181
+ gap: var(--mba-space-xxs);
2182
+ font-family: var(--mba-font-family-text);
2183
+ font-size: var(--mba-font-size-xxs);
2184
+ font-weight: var(--mba-font-weight-regular);
2185
+ line-height: normal;
2186
+ color: var(--mba-color-grey-800);
2187
+ }
2188
+
2189
+ /* Asterisque required */
2190
+
2191
+ .mba-label__required {
2192
+ color: var(--mba-color-error-500);
2193
+ font-size: var(--mba-font-size-xxs);
2194
+ }
2195
+
2196
+ /* Icone info */
2197
+
2198
+ .mba-label__icon {
2199
+ font-size: 16px;
2200
+ color: var(--mba-color-grey-400);
2201
+ }
2202
+
2203
+ /* ===========================================
2204
+ TEXTAREA - Base
2205
+ =========================================== */
2206
+
2207
+ .mba-textarea {
2208
+ display: block;
2209
+ width: 100%;
2210
+ padding: var(--mba-space-xs);
2211
+ border-radius: var(--mba-radius-xs);
2212
+ border: 1px solid var(--mba-color-grey-100);
2213
+ background-color: var(--mba-color-white);
2214
+ font-family: var(--mba-font-family-text);
2215
+ font-size: var(--mba-font-size-xxs);
2216
+ font-weight: var(--mba-font-weight-regular);
2217
+ color: var(--mba-color-black);
2218
+ resize: vertical;
2219
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2220
+ }
2221
+
2222
+ /* Placeholder */
2223
+
2224
+ .mba-textarea::placeholder {
2225
+ color: var(--mba-color-grey-400);
2226
+ }
2227
+
2228
+ /* Focus state */
2229
+
2230
+ .mba-textarea:focus {
2231
+ outline: none;
2232
+ border-color: var(--mba-color-info-400);
2233
+ box-shadow: 0 0 0 1.5px var(--mba-color-info-300);
2234
+ }
2235
+
2236
+ /* Active state (typing) - placeholder devient noir si visible */
2237
+
2238
+ .mba-textarea:focus::placeholder {
2239
+ color: var(--mba-color-black);
2240
+ }
2241
+
2242
+ /* Disabled state */
2243
+
2244
+ .mba-textarea:disabled {
2245
+ background-color: var(--mba-color-grey-50);
2246
+ border-color: var(--mba-color-grey-100);
2247
+ cursor: not-allowed;
2248
+ }
2249
+
2250
+ .mba-textarea:disabled::placeholder {
2251
+ color: var(--mba-color-grey-400);
2252
+ }
2253
+
2254
+ /* Hover state */
2255
+
2256
+ .mba-textarea:hover:not(:focus):not(:disabled):not(.mba-textarea--error):not(.mba-textarea--valid) {
2257
+ border-color: var(--mba-color-info-400);
2258
+ box-shadow: 0 0 0 1.5px var(--mba-color-info-100);
2259
+ }
2260
+
2261
+ /* Error state */
2262
+
2263
+ .mba-textarea--error {
2264
+ border-color: var(--mba-color-error-500);
2265
+ box-shadow: 0 0 0 1.5px var(--mba-color-error-100);
2266
+ }
2267
+
2268
+ .mba-textarea--error:focus {
2269
+ border-color: var(--mba-color-error-500);
2270
+ box-shadow: 0 0 0 1.5px var(--mba-color-error-300);
2271
+ }
2272
+
2273
+ /* Valid state */
2274
+
2275
+ .mba-textarea--valid {
2276
+ border-color: var(--mba-color-success-500);
2277
+ box-shadow: 0 0 0 1.5px var(--mba-color-success-100);
2278
+ }
2279
+
2280
+ .mba-textarea--valid:focus {
2281
+ border-color: var(--mba-color-success-500);
2282
+ box-shadow: 0 0 0 1.5px var(--mba-color-success-300);
2283
+ }
2284
+
2285
+ /* ===========================================
2286
+ INPUT - Base
2287
+ =========================================== */
2288
+
2289
+ .mba-input {
2290
+ display: block;
2291
+ width: 100%;
2292
+ padding: var(--mba-space-xs) var(--mba-space-sm);
2293
+ border-radius: var(--mba-radius-xs);
2294
+ border: 1px solid var(--mba-color-grey-100);
2295
+ background-color: var(--mba-color-white);
2296
+ font-family: var(--mba-font-family-text);
2297
+ font-size: var(--mba-font-size-xxs);
2298
+ font-weight: var(--mba-font-weight-regular);
2299
+ color: var(--mba-color-black);
2300
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2301
+ }
2302
+
2303
+ /* Placeholder */
2304
+
2305
+ .mba-input::placeholder {
2306
+ color: var(--mba-color-grey-400);
2307
+ }
2308
+
2309
+ /* Hover state */
2310
+
2311
+ .mba-input:hover:not(:focus):not(:disabled):not(.mba-input--error):not(.mba-input--valid) {
2312
+ border-color: var(--mba-color-info-400);
2313
+ box-shadow: 0 0 0 1.5px var(--mba-color-info-100);
2314
+ }
2315
+
2316
+ /* Focus state */
2317
+
2318
+ .mba-input:focus {
2319
+ outline: none;
2320
+ border-color: var(--mba-color-info-400);
2321
+ box-shadow: 0 0 0 1.5px var(--mba-color-info-300);
2322
+ }
2323
+
2324
+ /* Disabled state */
2325
+
2326
+ .mba-input:disabled {
2327
+ background-color: var(--mba-color-grey-50);
2328
+ border-color: var(--mba-color-grey-100);
2329
+ cursor: not-allowed;
2330
+ }
2331
+
2332
+ .mba-input:disabled::placeholder {
2333
+ color: var(--mba-color-grey-400);
2334
+ }
2335
+
2336
+ /* ===========================================
2337
+ INPUT - Error state
2338
+ =========================================== */
2339
+
2340
+ .mba-input--error {
2341
+ border-color: var(--mba-color-error-500);
2342
+ box-shadow: 0 0 0 1.5px var(--mba-color-error-100);
2343
+ }
2344
+
2345
+ .mba-input--error:focus {
2346
+ border-color: var(--mba-color-error-500);
2347
+ box-shadow: 0 0 0 1.5px var(--mba-color-error-300);
2348
+ }
2349
+
2350
+ /* ===========================================
2351
+ INPUT - Validate state
2352
+ =========================================== */
2353
+
2354
+ .mba-input--valid {
2355
+ border-color: var(--mba-color-success-500);
2356
+ box-shadow: 0 0 0 1.5px var(--mba-color-success-100);
2357
+ }
2358
+
2359
+ .mba-input--valid:focus {
2360
+ border-color: var(--mba-color-success-500);
2361
+ box-shadow: 0 0 0 1.5px var(--mba-color-success-300);
2362
+ }
2363
+
2364
+ /* ===========================================
2365
+ FEEDBACK MESSAGE (error / success)
2366
+ =========================================== */
2367
+
2368
+ .mba-feedback {
2369
+ font-family: var(--mba-font-family-text);
2370
+ font-size: 12px;
2371
+ font-weight: var(--mba-font-weight-regular);
2372
+ }
2373
+
2374
+ .mba-feedback--error {
2375
+ color: var(--mba-color-error-500);
2376
+ }
2377
+
2378
+ .mba-feedback--valid {
2379
+ color: var(--mba-color-success-500);
2380
+ }
2381
+
2382
+ /* ===========================================
2383
+ DROPDOWN
2384
+ =========================================== */
2385
+
2386
+ .mba-dropdown {
2387
+ position: relative;
2388
+ display: inline-block;
2389
+ width: 100%;
2390
+ }
2391
+
2392
+ /* Trigger (select-like button) */
2393
+
2394
+ .mba-dropdown__trigger {
2395
+ display: flex;
2396
+ align-items: center;
2397
+ justify-content: space-between;
2398
+ width: 100%;
2399
+ padding: var(--mba-space-xs) var(--mba-space-sm);
2400
+ border-radius: var(--mba-radius-xs);
2401
+ border: 1px solid var(--mba-color-grey-100);
2402
+ background-color: var(--mba-color-white);
2403
+ font-family: var(--mba-font-family-text);
2404
+ font-size: var(--mba-font-size-xs);
2405
+ font-weight: var(--mba-font-weight-regular);
2406
+ color: var(--mba-color-black);
2407
+ cursor: pointer;
2408
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2409
+ }
2410
+
2411
+ .mba-dropdown__trigger--placeholder {
2412
+ color: var(--mba-color-grey-400);
2413
+ }
2414
+
2415
+ .mba-dropdown:not(.mba-dropdown--error):not(.mba-dropdown--valid) .mba-dropdown__trigger:hover {
2416
+ border-color: var(--mba-color-info-400);
2417
+ box-shadow: 0 0 0 1.5px var(--mba-color-info-100);
2418
+ }
2419
+
2420
+ .mba-dropdown__trigger:focus {
2421
+ outline: none;
2422
+ border-color: var(--mba-color-info-400);
2423
+ box-shadow: 0 0 0 1.5px var(--mba-color-info-300);
2424
+ }
2425
+
2426
+ .mba-dropdown__trigger:disabled {
2427
+ background-color: var(--mba-color-grey-50);
2428
+ border-color: var(--mba-color-grey-100);
2429
+ cursor: not-allowed;
2430
+ color: var(--mba-color-grey-400);
2431
+ }
2432
+
2433
+ /* Chevron icon */
2434
+
2435
+ .mba-dropdown__chevron {
2436
+ font-size: 20px;
2437
+ color: var(--mba-color-grey-400);
2438
+ transition: transform 0.2s ease;
2439
+ }
2440
+
2441
+ .mba-dropdown--open .mba-dropdown__chevron {
2442
+ transform: rotate(180deg);
2443
+ }
2444
+
2445
+ /* Error state */
2446
+
2447
+ .mba-dropdown--error .mba-dropdown__trigger {
2448
+ border-color: var(--mba-color-error-500);
2449
+ box-shadow: 0 0 0 1.5px var(--mba-color-error-100);
2450
+ }
2451
+
2452
+ .mba-dropdown--error .mba-dropdown__trigger:focus {
2453
+ border-color: var(--mba-color-error-500);
2454
+ box-shadow: 0 0 0 1.5px var(--mba-color-error-300);
2455
+ }
2456
+
2457
+ /* Valid state */
2458
+
2459
+ .mba-dropdown--valid .mba-dropdown__trigger {
2460
+ border-color: var(--mba-color-success-500);
2461
+ box-shadow: 0 0 0 1.5px var(--mba-color-success-100);
2462
+ }
2463
+
2464
+ .mba-dropdown--valid .mba-dropdown__trigger:focus {
2465
+ border-color: var(--mba-color-success-500);
2466
+ box-shadow: 0 0 0 1.5px var(--mba-color-success-300);
2467
+ }
2468
+
2469
+ /* Panel */
2470
+
2471
+ .mba-dropdown__panel {
2472
+ position: absolute;
2473
+ top: calc(100% + 4px);
2474
+ left: 0;
2475
+ right: 0;
2476
+ display: none;
2477
+ flex-direction: column;
2478
+ gap: 10px;
2479
+ padding: var(--mba-space-xs);
2480
+ border-radius: var(--mba-radius-2xs);
2481
+ background-color: var(--mba-color-white);
2482
+ box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.04), 1px 2px 16px 0 rgba(28, 28, 29, 0.06);
2483
+ max-height: 200px;
2484
+ overflow-y: auto;
2485
+ z-index: 10;
2486
+ }
2487
+
2488
+ .mba-dropdown--open .mba-dropdown__panel {
2489
+ display: flex;
2490
+ }
2491
+
2492
+ /* Custom scrollbar */
2493
+
2494
+ .mba-dropdown__panel::-webkit-scrollbar {
2495
+ width: 6px;
2496
+ }
2497
+
2498
+ .mba-dropdown__panel::-webkit-scrollbar-track {
2499
+ background: transparent;
2500
+ }
2501
+
2502
+ .mba-dropdown__panel::-webkit-scrollbar-thumb {
2503
+ background-color: var(--mba-color-primary-pro-800);
2504
+ border-radius: 3px;
2505
+ }
2506
+
2507
+ /* Option */
2508
+
2509
+ .mba-dropdown__option {
2510
+ padding: var(--mba-space-xs);
2511
+ border-radius: var(--mba-radius-xs);
2512
+ font-family: var(--mba-font-family-text);
2513
+ font-size: var(--mba-font-size-xs);
2514
+ font-weight: var(--mba-font-weight-regular);
2515
+ color: var(--mba-color-black);
2516
+ cursor: pointer;
2517
+ transition: background-color 0.15s ease;
2518
+ }
2519
+
2520
+ .mba-dropdown__option:hover {
2521
+ background-color: var(--mba-color-grey-50);
2522
+ }
2523
+
2524
+ .mba-dropdown__option--selected {
2525
+ border: 1px solid var(--mba-color-primary-400);
2526
+ background-color: var(--mba-color-white);
2527
+ }
2528
+
2529
+ /* Option selected - Pro variant */
2530
+
2531
+ .mba-dropdown--pro .mba-dropdown__option--selected {
2532
+ border-color: var(--mba-color-primary-pro-400);
2533
+ }
2534
+
2535
+ /* ===========================================
2536
+ TOGGLE SWITCH
2537
+ width: 42px, height: 24px, cercle: 20px
2538
+ =========================================== */
2539
+
2540
+ .mba-toggle {
2541
+ position: relative;
2542
+ display: inline-block;
2543
+ width: 42px;
2544
+ height: 24px;
2545
+ }
2546
+
2547
+ .mba-toggle input {
2548
+ opacity: 0;
2549
+ width: 0;
2550
+ height: 0;
2551
+ }
2552
+
2553
+ .mba-toggle__slider {
2554
+ position: absolute;
2555
+ cursor: pointer;
2556
+ top: 0;
2557
+ left: 0;
2558
+ right: 0;
2559
+ bottom: 0;
2560
+ background-color: var(--mba-color-grey-300);
2561
+ transition: all 0.3s ease;
2562
+ border-radius: 32px;
2563
+ }
2564
+
2565
+ .mba-toggle__slider::before {
2566
+ position: absolute;
2567
+ content: "";
2568
+ height: 20px;
2569
+ width: 20px;
2570
+ left: 2px;
2571
+ top: 2px;
2572
+ background-color: var(--mba-color-white);
2573
+ transition: all 0.3s ease;
2574
+ border-radius: 50%;
2575
+ }
2576
+
2577
+ .mba-toggle input:checked + .mba-toggle__slider {
2578
+ background-color: var(--mba-color-secondary-500);
2579
+ }
2580
+
2581
+ .mba-toggle input:checked + .mba-toggle__slider::before {
2582
+ transform: translateX(18px);
2583
+ }
2584
+
2585
+ .mba-toggle input:focus + .mba-toggle__slider {
2586
+ box-shadow: var(--mba-focus-ring);
2587
+ }
2588
+
2589
+ .mba-toggle input:disabled + .mba-toggle__slider {
2590
+ opacity: 0.5;
2591
+ cursor: not-allowed;
2592
+ }
2593
+
2594
+ /* ===========================================
2595
+ INPUT WITH ICON
2596
+ =========================================== */
2597
+
2598
+ .mba-input-icon {
2599
+ display: flex;
2600
+ align-items: center;
2601
+ width: 100%;
2602
+ padding: var(--mba-space-xs) var(--mba-space-sm);
2603
+ border-radius: var(--mba-radius-xs);
2604
+ border: 1px solid var(--mba-color-grey-100);
2605
+ background-color: var(--mba-color-white);
2606
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
2607
+ }
2608
+
2609
+ .mba-input-icon input {
2610
+ flex: 1;
2611
+ border: none;
2612
+ background: transparent;
2613
+ font-family: var(--mba-font-family-text);
2614
+ font-size: var(--mba-font-size-xxs);
2615
+ font-weight: var(--mba-font-weight-regular);
2616
+ color: var(--mba-color-black);
2617
+ outline: none;
2618
+ }
2619
+
2620
+ .mba-input-icon input::placeholder {
2621
+ color: var(--mba-color-grey-400);
2622
+ }
2623
+
2624
+ .mba-input-icon__icon {
2625
+ font-size: 16px;
2626
+ color: var(--mba-color-grey-400);
2627
+ margin-left: var(--mba-space-xs);
2628
+ }
2629
+
2630
+ /* Icon clickable (button) */
2631
+
2632
+ button.mba-input-icon__icon {
2633
+ background: none;
2634
+ border: none;
2635
+ padding: 0;
2636
+ cursor: pointer;
2637
+ transition: color 0.2s ease;
2638
+ }
2639
+
2640
+ button.mba-input-icon__icon:hover {
2641
+ color: var(--mba-color-primary-500);
2642
+ }
2643
+
2644
+ /* Hover state */
2645
+
2646
+ .mba-input-icon:hover:not(:focus-within):not(.mba-input-icon--disabled):not(.mba-input-icon--error) {
2647
+ border-color: var(--mba-color-info-400);
2648
+ box-shadow: 0 0 0 1.5px var(--mba-color-info-100);
2649
+ }
2650
+
2651
+ /* Focus state */
2652
+
2653
+ .mba-input-icon:focus-within {
2654
+ border-color: var(--mba-color-info-400);
2655
+ box-shadow: 0 0 0 1.5px var(--mba-color-info-300);
2656
+ }
2657
+
2658
+ /* Disabled state */
2659
+
2660
+ .mba-input-icon--disabled {
2661
+ background-color: var(--mba-color-grey-50);
2662
+ cursor: not-allowed;
2663
+ }
2664
+
2665
+ .mba-input-icon--disabled input {
2666
+ cursor: not-allowed;
2667
+ color: var(--mba-color-grey-400);
2668
+ }
2669
+
2670
+ /* Error state */
2671
+
2672
+ .mba-input-icon--error {
2673
+ border-color: var(--mba-color-error-500);
2674
+ box-shadow: 0 0 0 1.5px var(--mba-color-error-100);
2675
+ }
2676
+
2677
+ .mba-input-icon--error:focus-within {
2678
+ border-color: var(--mba-color-error-500);
2679
+ box-shadow: 0 0 0 1.5px var(--mba-color-error-300);
2680
+ }
2681
+
2682
+ .mba-input-icon--error .mba-input-icon__icon {
2683
+ color: var(--mba-color-error-500);
2684
+ }
2685
+
2686
+ /* ===========================================
2687
+ INPUT GROUP (input + button)
2688
+ =========================================== */
2689
+
2690
+ .mba-input-group {
2691
+ display: flex;
2692
+ align-items: stretch;
2693
+ gap: var(--mba-space-xxs);
2694
+ }
2695
+
2696
+ .mba-input-group > .mba-input,
2697
+ .mba-input-group > .mba-input-icon {
2698
+ flex: 1;
2699
+ }
2700
+
2701
+ /* ===========================================
2702
+ FORM GROUP (label + input)
2703
+ =========================================== */
2704
+
2705
+ .mba-form-group {
2706
+ display: flex;
2707
+ flex-direction: column;
2708
+ gap: var(--mba-space-xxs);
2709
+ }
2710
+
1475
2711
  /* @import "./_forms.css"; */
1476
2712
 
1477
2713
  /* @import "./_alerts.css"; */