@revikornmann/muka-ui 0.26.0 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Avatar/Avatar.css +79 -30
- package/dist/cjs/components/Avatar/Avatar.js +1 -1
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarGroup.js +4 -3
- package/dist/cjs/components/Avatar/AvatarGroup.js.map +1 -1
- package/dist/cjs/components/Button/Button.css +33 -0
- package/dist/cjs/components/Button/Button.js +2 -2
- package/dist/cjs/components/DataPieChart/DataPieChart.js +5 -2
- package/dist/cjs/components/DataPieChart/DataPieChart.js.map +1 -1
- package/dist/cjs/components/DataPieChart/index.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.css +37 -14
- package/dist/cjs/components/Tabs/Tabs.js +30 -10
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/esm/components/Avatar/Avatar.css +79 -30
- package/dist/esm/components/Avatar/Avatar.js +1 -1
- package/dist/esm/components/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/Avatar/AvatarGroup.js +4 -3
- package/dist/esm/components/Avatar/AvatarGroup.js.map +1 -1
- package/dist/esm/components/Button/Button.css +33 -0
- package/dist/esm/components/Button/Button.js +2 -2
- package/dist/esm/components/DataPieChart/DataPieChart.js +4 -1
- package/dist/esm/components/DataPieChart/DataPieChart.js.map +1 -1
- package/dist/esm/components/DataPieChart/index.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.css +37 -14
- package/dist/esm/components/Tabs/Tabs.js +30 -10
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/index.js.map +1 -1
- package/dist/styles/components/Avatar.css +79 -30
- package/dist/styles/components/Button.css +33 -0
- package/dist/styles/components/Tabs.css +37 -14
- package/dist/styles/index.css +796 -648
- package/dist/styles/muka-dark.css +796 -648
- package/dist/styles/muka-light.css +796 -648
- package/dist/styles/tokens-bouwplan-dark.css +48 -5
- package/dist/styles/tokens-bouwplan-light.css +48 -5
- package/dist/styles/tokens-fscl-dark.css +48 -5
- package/dist/styles/tokens-fscl-light.css +48 -5
- package/dist/styles/tokens-grip-dark.css +48 -5
- package/dist/styles/tokens-grip-light.css +48 -5
- package/dist/styles/tokens-muka-dark.css +48 -5
- package/dist/styles/tokens-muka-light.css +48 -5
- package/dist/styles/tokens-wireframe-dark.css +48 -5
- package/dist/styles/tokens-wireframe-light.css +48 -5
- package/dist/styles/wireframe-dark.css +796 -648
- package/dist/styles/wireframe-light.css +796 -648
- package/dist/types/components/Avatar/Avatar.d.ts +8 -3
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Avatar/AvatarGroup.d.ts +10 -5
- package/dist/types/components/Avatar/AvatarGroup.d.ts.map +1 -1
- package/dist/types/components/Avatar/index.d.ts +1 -1
- package/dist/types/components/Avatar/index.d.ts.map +1 -1
- package/dist/types/components/Button/Button.d.ts +3 -3
- package/dist/types/components/Button/Button.d.ts.map +1 -1
- package/dist/types/components/DataPieChart/DataPieChart.d.ts +13 -2
- package/dist/types/components/DataPieChart/DataPieChart.d.ts.map +1 -1
- package/dist/types/components/DataPieChart/index.d.ts +1 -1
- package/dist/types/components/DataPieChart/index.d.ts.map +1 -1
- package/dist/types/components/Tabs/Tabs.d.ts +17 -2
- package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/components/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/tokens/t1-primitives/color.json +10 -0
- package/tokens/t2-alias/base.json +14 -0
- package/tokens/t2-alias/brand/bouwplan/dark.json +5 -0
- package/tokens/t2-alias/brand/bouwplan/light.json +5 -0
- package/tokens/t2-alias/brand/fscl/dark.json +5 -0
- package/tokens/t2-alias/brand/fscl/light.json +5 -0
- package/tokens/t2-alias/brand/grip/dark.json +14 -0
- package/tokens/t2-alias/brand/grip/light.json +14 -0
- package/tokens/t2-alias/brand/muka/dark.json +14 -0
- package/tokens/t2-alias/brand/muka/light.json +14 -0
- package/tokens/t2-alias/brand/wireframe/dark.json +14 -0
- package/tokens/t2-alias/brand/wireframe/light.json +14 -0
- package/tokens/t3-semantics/ui.json +49 -2
- package/tokens/t4-components/avatar.json +82 -18
- package/tokens/t4-components/button.json +56 -0
- package/tokens/t4-components/tabs.json +41 -1
|
@@ -409,6 +409,8 @@ body {
|
|
|
409
409
|
--color-red-10: #dc3d43;
|
|
410
410
|
--color-red-11: #cd2b31;
|
|
411
411
|
--color-red-12: #381316;
|
|
412
|
+
--color-redStrong-1: #bd1524;
|
|
413
|
+
--color-redStrong-2: #ab001a;
|
|
412
414
|
--color-ruby-1: #fffcfd;
|
|
413
415
|
--color-ruby-2: #fff7f8;
|
|
414
416
|
--color-ruby-3: #ffeef1;
|
|
@@ -1207,6 +1209,9 @@ body {
|
|
|
1207
1209
|
--color-state-error-default: #e54d4e;
|
|
1208
1210
|
--color-state-error-contrast: #fea6a6;
|
|
1209
1211
|
--color-state-error-background: #3d181e;
|
|
1212
|
+
--color-state-error-solid-default: #e54d4e;
|
|
1213
|
+
--color-state-error-solid-hover: #f56565;
|
|
1214
|
+
--color-state-error-solid-pressed: #f56565;
|
|
1210
1215
|
--color-state-info-default: #0090ff;
|
|
1211
1216
|
--color-state-info-contrast: #70b8ff;
|
|
1212
1217
|
--color-state-info-background: #0d2847;
|
|
@@ -1307,6 +1312,9 @@ body {
|
|
|
1307
1312
|
--alias-color-state-error-contrast: #fea6a6;
|
|
1308
1313
|
--alias-color-state-error-default: #e54d4e;
|
|
1309
1314
|
--alias-color-state-error-muted: #3d181e;
|
|
1315
|
+
--alias-color-state-error-solid-default: #e54d4e;
|
|
1316
|
+
--alias-color-state-error-solid-hover: #f56565;
|
|
1317
|
+
--alias-color-state-error-solid-pressed: #f56565;
|
|
1310
1318
|
--alias-color-state-error-surface-level0: #2c1419;
|
|
1311
1319
|
--alias-color-state-error-surface-level1: #3d181e;
|
|
1312
1320
|
--alias-color-state-error-surface-level2: #4a1a22;
|
|
@@ -1603,6 +1611,18 @@ body {
|
|
|
1603
1611
|
--button-color-primary-shadow-hover: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1604
1612
|
--button-color-primary-shadow-pressed: none;
|
|
1605
1613
|
--button-color-primary-shadow-disabled: none;
|
|
1614
|
+
--button-color-destructive-background-default: #e54d4e;
|
|
1615
|
+
--button-color-destructive-background-hover: #f56565;
|
|
1616
|
+
--button-color-destructive-background-pressed: #f56565;
|
|
1617
|
+
--button-color-destructive-background-disabled: #2b2b30;
|
|
1618
|
+
--button-color-destructive-foreground-default: #161618;
|
|
1619
|
+
--button-color-destructive-foreground-hover: #161618;
|
|
1620
|
+
--button-color-destructive-foreground-pressed: #161618;
|
|
1621
|
+
--button-color-destructive-foreground-disabled: #4c4c57;
|
|
1622
|
+
--button-color-destructive-shadow-default: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1623
|
+
--button-color-destructive-shadow-hover: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1624
|
+
--button-color-destructive-shadow-pressed: none;
|
|
1625
|
+
--button-color-destructive-shadow-disabled: none;
|
|
1606
1626
|
--button-color-secondary-background-default: #232326;
|
|
1607
1627
|
--button-color-secondary-background-hover: #232326;
|
|
1608
1628
|
--button-color-secondary-background-pressed: #2b2b30;
|
|
@@ -1967,7 +1987,7 @@ body {
|
|
|
1967
1987
|
--contextmenu-trigger-outline-color: #9eb1ff;
|
|
1968
1988
|
--contextmenu-trigger-outline-offset: 0.25rem;
|
|
1969
1989
|
--tabs-trigger-color-default-background: #232326;
|
|
1970
|
-
--tabs-trigger-color-default-foreground: #
|
|
1990
|
+
--tabs-trigger-color-default-foreground: #737387;
|
|
1971
1991
|
--tabs-trigger-color-default-border: #4c4c57;
|
|
1972
1992
|
--tabs-trigger-color-hover-background: #232326;
|
|
1973
1993
|
--tabs-trigger-color-hover-foreground: #e6e6ea;
|
|
@@ -1982,8 +2002,16 @@ body {
|
|
|
1982
2002
|
--tabs-trigger-padding-y: 0.5rem;
|
|
1983
2003
|
--tabs-trigger-height: 3rem;
|
|
1984
2004
|
--tabs-trigger-radius: 0.75rem;
|
|
2005
|
+
--tabs-trigger-min-height-sm: 2.5rem;
|
|
2006
|
+
--tabs-trigger-min-height-md: 3.5rem;
|
|
2007
|
+
--tabs-trigger-min-height-lg: 5rem;
|
|
1985
2008
|
--tabs-panel-background: #161618;
|
|
1986
2009
|
--tabs-panel-border: #4c4c57;
|
|
2010
|
+
--tabs-indicator-color: #9eb1ff;
|
|
2011
|
+
--tabs-indicator-height-sm: 2px;
|
|
2012
|
+
--tabs-indicator-height-md: 3px;
|
|
2013
|
+
--tabs-indicator-height-lg: 4px;
|
|
2014
|
+
--tabs-list-padding-x: 1rem;
|
|
1987
2015
|
--separator-color-default: #2b2b30;
|
|
1988
2016
|
--separator-color-contrast: #4c4c57;
|
|
1989
2017
|
--separator-width: 0.0625rem;
|
|
@@ -2016,6 +2044,9 @@ body {
|
|
|
2016
2044
|
--progress-size-circle-strokeWidth-sm: 0.25rem;
|
|
2017
2045
|
--progress-size-circle-strokeWidth-md: 0.5rem;
|
|
2018
2046
|
--progress-size-circle-strokeWidth-lg: 0.75rem;
|
|
2047
|
+
--avatar-size-4xs: 1rem;
|
|
2048
|
+
--avatar-size-3xs: 1.5rem;
|
|
2049
|
+
--avatar-size-2xs: 2rem;
|
|
2019
2050
|
--avatar-size-xs: 2.5rem;
|
|
2020
2051
|
--avatar-size-sm: 3rem;
|
|
2021
2052
|
--avatar-size-md: 4rem;
|
|
@@ -2025,26 +2056,38 @@ body {
|
|
|
2025
2056
|
--avatar-color-background-loading: #2b2b30;
|
|
2026
2057
|
--avatar-color-foreground-default: #e6e6ea;
|
|
2027
2058
|
--avatar-color-foreground-muted: #4c4c57;
|
|
2028
|
-
--avatar-color-border-default: #2b2b30;
|
|
2029
2059
|
--avatar-color-status-online: #58d5ba;
|
|
2030
2060
|
--avatar-color-status-offline: #4c4c57;
|
|
2031
2061
|
--avatar-color-status-busy: #e54d4e;
|
|
2032
2062
|
--avatar-color-status-away: #ffc53d;
|
|
2033
2063
|
--avatar-radius-circle: 999rem;
|
|
2034
2064
|
--avatar-radius-square: 0.75rem;
|
|
2065
|
+
--avatar-radius-square-sm: 0.375rem;
|
|
2066
|
+
--avatar-font-size-3xs: 0.75rem;
|
|
2067
|
+
--avatar-font-size-2xs: 0.75rem;
|
|
2035
2068
|
--avatar-font-size-xs: 0.75rem;
|
|
2036
2069
|
--avatar-font-size-sm: 0.875rem;
|
|
2037
2070
|
--avatar-font-size-md: 1.125rem;
|
|
2038
2071
|
--avatar-font-size-lg: 1.25rem;
|
|
2039
2072
|
--avatar-font-size-xl: 1.5rem;
|
|
2073
|
+
--avatar-status-size-3xs: 0.5rem;
|
|
2074
|
+
--avatar-status-size-2xs: 0.5rem;
|
|
2040
2075
|
--avatar-status-size-xs: 0.5rem;
|
|
2041
2076
|
--avatar-status-size-sm: 0.75rem;
|
|
2042
2077
|
--avatar-status-size-md: 1rem;
|
|
2043
2078
|
--avatar-status-size-lg: 1.25rem;
|
|
2044
2079
|
--avatar-status-size-xl: 1.5rem;
|
|
2045
|
-
--avatar-
|
|
2046
|
-
--avatar-group-
|
|
2047
|
-
--avatar-group-
|
|
2080
|
+
--avatar-group-ring-width: 0.125rem;
|
|
2081
|
+
--avatar-group-ring-color: #161618;
|
|
2082
|
+
--avatar-group-overlap-tight-sm: 2rem;
|
|
2083
|
+
--avatar-group-overlap-tight-2xs: 1.25rem;
|
|
2084
|
+
--avatar-group-overlap-tight-3xs: 1rem;
|
|
2085
|
+
--avatar-group-overlap-compact-sm: 1.5rem;
|
|
2086
|
+
--avatar-group-overlap-compact-2xs: 1rem;
|
|
2087
|
+
--avatar-group-overlap-compact-3xs: 0.75rem;
|
|
2088
|
+
--avatar-group-overlap-spacious-sm: 1rem;
|
|
2089
|
+
--avatar-group-overlap-spacious-2xs: 0.75rem;
|
|
2090
|
+
--avatar-group-overlap-spacious-3xs: 0.5rem;
|
|
2048
2091
|
--toast-color-info-background: #e6e6ea;
|
|
2049
2092
|
--toast-color-info-foreground: #161618;
|
|
2050
2093
|
--toast-color-info-accent: #0d2847;
|
|
@@ -2450,116 +2493,6 @@ body {
|
|
|
2450
2493
|
}
|
|
2451
2494
|
|
|
2452
2495
|
|
|
2453
|
-
/* View */
|
|
2454
|
-
/* View Component Styles */
|
|
2455
|
-
|
|
2456
|
-
/* ─── Base layout ─────────────────────────────────────── */
|
|
2457
|
-
|
|
2458
|
-
.muka-view {
|
|
2459
|
-
display: flex;
|
|
2460
|
-
flex-direction: column;
|
|
2461
|
-
height: 100dvh;
|
|
2462
|
-
background-color: var(--view-color-background);
|
|
2463
|
-
position: relative;
|
|
2464
|
-
isolation: isolate;
|
|
2465
|
-
box-sizing: border-box;
|
|
2466
|
-
|
|
2467
|
-
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2468
|
-
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2469
|
-
--view-sidebar-width: 240px;
|
|
2470
|
-
}
|
|
2471
|
-
|
|
2472
|
-
/* ─── Surface level variants ─────────────────────────── */
|
|
2473
|
-
|
|
2474
|
-
.muka-view--surface-3 {
|
|
2475
|
-
background-color: var(--color-surface-level3);
|
|
2476
|
-
}
|
|
2477
|
-
|
|
2478
|
-
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2479
|
-
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2480
|
-
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2481
|
-
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2482
|
-
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2483
|
-
for a sidebar that hasn't rendered yet. */
|
|
2484
|
-
@media (min-width: 1024px) {
|
|
2485
|
-
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2486
|
-
padding-left: var(--view-sidebar-width);
|
|
2487
|
-
}
|
|
2488
|
-
}
|
|
2489
|
-
|
|
2490
|
-
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2491
|
-
|
|
2492
|
-
.muka-view .muka-topbar {
|
|
2493
|
-
flex-shrink: 0;
|
|
2494
|
-
z-index: 3;
|
|
2495
|
-
box-shadow: var(--shadow-level2);
|
|
2496
|
-
}
|
|
2497
|
-
|
|
2498
|
-
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2499
|
-
|
|
2500
|
-
.muka-view__body {
|
|
2501
|
-
flex: 1 1 0%;
|
|
2502
|
-
min-height: 0;
|
|
2503
|
-
overflow-y: auto;
|
|
2504
|
-
overflow-x: clip;
|
|
2505
|
-
z-index: 1;
|
|
2506
|
-
|
|
2507
|
-
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2508
|
-
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2509
|
-
reveal the content underneath. */
|
|
2510
|
-
display: flex;
|
|
2511
|
-
flex-direction: column;
|
|
2512
|
-
}
|
|
2513
|
-
|
|
2514
|
-
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2515
|
-
using the alias-layer section/container tokens, while the body scrolls full
|
|
2516
|
-
width. Full-bleed below large. */
|
|
2517
|
-
.muka-view__body-inner {
|
|
2518
|
-
width: 100%;
|
|
2519
|
-
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2520
|
-
than floating mid-screen. */
|
|
2521
|
-
flex: 1 0 auto;
|
|
2522
|
-
}
|
|
2523
|
-
|
|
2524
|
-
@media (min-width: 1024px) {
|
|
2525
|
-
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2526
|
-
max-width: var(--container-max-width-xl);
|
|
2527
|
-
margin-inline: auto;
|
|
2528
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2529
|
-
}
|
|
2530
|
-
}
|
|
2531
|
-
|
|
2532
|
-
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2533
|
-
max-width: var(--container-max-width-xl);
|
|
2534
|
-
margin-inline: auto;
|
|
2535
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2536
|
-
}
|
|
2537
|
-
|
|
2538
|
-
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2539
|
-
|
|
2540
|
-
.muka-view__footer {
|
|
2541
|
-
position: sticky;
|
|
2542
|
-
bottom: 0;
|
|
2543
|
-
flex-shrink: 0;
|
|
2544
|
-
z-index: 2;
|
|
2545
|
-
}
|
|
2546
|
-
|
|
2547
|
-
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2548
|
-
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2549
|
-
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2550
|
-
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2551
|
-
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2552
|
-
@media (min-width: 1024px) {
|
|
2553
|
-
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2554
|
-
display: none;
|
|
2555
|
-
}
|
|
2556
|
-
}
|
|
2557
|
-
|
|
2558
|
-
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2559
|
-
display: none;
|
|
2560
|
-
}
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
2496
|
/* Typography */
|
|
2564
2497
|
.muka-typography-catalog {
|
|
2565
2498
|
display: flex;
|
|
@@ -2910,166 +2843,113 @@ body {
|
|
|
2910
2843
|
}
|
|
2911
2844
|
|
|
2912
2845
|
|
|
2913
|
-
/*
|
|
2914
|
-
/*
|
|
2846
|
+
/* View */
|
|
2847
|
+
/* View Component Styles */
|
|
2915
2848
|
|
|
2916
|
-
/*
|
|
2917
|
-
|
|
2849
|
+
/* ─── Base layout ─────────────────────────────────────── */
|
|
2850
|
+
|
|
2851
|
+
.muka-view {
|
|
2918
2852
|
display: flex;
|
|
2919
|
-
|
|
2920
|
-
|
|
2853
|
+
flex-direction: column;
|
|
2854
|
+
height: 100dvh;
|
|
2855
|
+
background-color: var(--view-color-background);
|
|
2921
2856
|
position: relative;
|
|
2922
|
-
|
|
2857
|
+
isolation: isolate;
|
|
2858
|
+
box-sizing: border-box;
|
|
2859
|
+
|
|
2860
|
+
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2861
|
+
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2862
|
+
--view-sidebar-width: 240px;
|
|
2923
2863
|
}
|
|
2924
2864
|
|
|
2925
|
-
|
|
2926
|
-
|
|
2865
|
+
/* ─── Surface level variants ─────────────────────────── */
|
|
2866
|
+
|
|
2867
|
+
.muka-view--surface-3 {
|
|
2868
|
+
background-color: var(--color-surface-level3);
|
|
2927
2869
|
}
|
|
2928
2870
|
|
|
2929
|
-
|
|
2930
|
-
|
|
2871
|
+
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2872
|
+
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2873
|
+
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2874
|
+
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2875
|
+
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2876
|
+
for a sidebar that hasn't rendered yet. */
|
|
2877
|
+
@media (min-width: 1024px) {
|
|
2878
|
+
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2879
|
+
padding-left: var(--view-sidebar-width);
|
|
2880
|
+
}
|
|
2931
2881
|
}
|
|
2932
2882
|
|
|
2933
|
-
/*
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
align-items: center;
|
|
2937
|
-
justify-content: center;
|
|
2883
|
+
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2884
|
+
|
|
2885
|
+
.muka-view .muka-topbar {
|
|
2938
2886
|
flex-shrink: 0;
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
color: var(--color-text-default-default);
|
|
2887
|
+
z-index: 3;
|
|
2888
|
+
box-shadow: var(--shadow-level2);
|
|
2942
2889
|
}
|
|
2943
2890
|
|
|
2944
|
-
|
|
2945
|
-
width: 100%;
|
|
2946
|
-
height: 100%;
|
|
2947
|
-
}
|
|
2891
|
+
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2948
2892
|
|
|
2949
|
-
|
|
2950
|
-
|
|
2893
|
+
.muka-view__body {
|
|
2894
|
+
flex: 1 1 0%;
|
|
2895
|
+
min-height: 0;
|
|
2896
|
+
overflow-y: auto;
|
|
2897
|
+
overflow-x: clip;
|
|
2898
|
+
z-index: 1;
|
|
2899
|
+
|
|
2900
|
+
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2901
|
+
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2902
|
+
reveal the content underneath. */
|
|
2951
2903
|
display: flex;
|
|
2952
2904
|
flex-direction: column;
|
|
2953
|
-
flex: 1;
|
|
2954
|
-
min-width: 0;
|
|
2955
|
-
gap: var(--spacing-1);
|
|
2956
2905
|
}
|
|
2957
2906
|
|
|
2958
|
-
/*
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2907
|
+
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2908
|
+
using the alias-layer section/container tokens, while the body scrolls full
|
|
2909
|
+
width. Full-bleed below large. */
|
|
2910
|
+
.muka-view__body-inner {
|
|
2911
|
+
width: 100%;
|
|
2912
|
+
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2913
|
+
than floating mid-screen. */
|
|
2914
|
+
flex: 1 0 auto;
|
|
2966
2915
|
}
|
|
2967
2916
|
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2917
|
+
@media (min-width: 1024px) {
|
|
2918
|
+
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2919
|
+
max-width: var(--container-max-width-xl);
|
|
2920
|
+
margin-inline: auto;
|
|
2921
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2922
|
+
}
|
|
2973
2923
|
}
|
|
2974
2924
|
|
|
2975
|
-
.muka-
|
|
2976
|
-
|
|
2977
|
-
|
|
2925
|
+
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2926
|
+
max-width: var(--container-max-width-xl);
|
|
2927
|
+
margin-inline: auto;
|
|
2928
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2978
2929
|
}
|
|
2979
2930
|
|
|
2980
|
-
/*
|
|
2981
|
-
.muka-toggle__caption {
|
|
2982
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
2983
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
2984
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
2985
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
2986
|
-
color: var(--color-text-subtle-default);
|
|
2987
|
-
}
|
|
2931
|
+
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2988
2932
|
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
display: inline-flex;
|
|
2933
|
+
.muka-view__footer {
|
|
2934
|
+
position: sticky;
|
|
2935
|
+
bottom: 0;
|
|
2993
2936
|
flex-shrink: 0;
|
|
2994
|
-
|
|
2937
|
+
z-index: 2;
|
|
2995
2938
|
}
|
|
2996
2939
|
|
|
2997
|
-
|
|
2998
|
-
|
|
2940
|
+
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2941
|
+
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2942
|
+
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2943
|
+
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2944
|
+
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2945
|
+
@media (min-width: 1024px) {
|
|
2946
|
+
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2947
|
+
display: none;
|
|
2948
|
+
}
|
|
2999
2949
|
}
|
|
3000
2950
|
|
|
3001
|
-
|
|
3002
|
-
|
|
3003
|
-
position: absolute;
|
|
3004
|
-
width: 1px;
|
|
3005
|
-
height: 1px;
|
|
3006
|
-
padding: 0;
|
|
3007
|
-
margin: -1px;
|
|
3008
|
-
overflow: hidden;
|
|
3009
|
-
clip: rect(0, 0, 0, 0);
|
|
3010
|
-
white-space: nowrap;
|
|
3011
|
-
border: 0;
|
|
3012
|
-
}
|
|
3013
|
-
|
|
3014
|
-
/* Track (background pill) */
|
|
3015
|
-
.muka-toggle__track {
|
|
3016
|
-
display: flex;
|
|
3017
|
-
align-items: center;
|
|
3018
|
-
width: var(--toggle-track-width);
|
|
3019
|
-
height: var(--toggle-track-height);
|
|
3020
|
-
border-radius: var(--toggle-track-radius);
|
|
3021
|
-
background-color: var(--toggle-track-color-off);
|
|
3022
|
-
transition: background-color 0.2s ease;
|
|
3023
|
-
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3024
|
-
position: relative;
|
|
3025
|
-
}
|
|
3026
|
-
|
|
3027
|
-
/* Knob (sliding circle) */
|
|
3028
|
-
.muka-toggle__knob {
|
|
3029
|
-
position: absolute;
|
|
3030
|
-
width: var(--toggle-knob-size);
|
|
3031
|
-
height: var(--toggle-knob-size);
|
|
3032
|
-
border-radius: var(--border-radius-full);
|
|
3033
|
-
background-color: var(--toggle-knob-color-default);
|
|
3034
|
-
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3035
|
-
left: var(--toggle-knob-offset);
|
|
3036
|
-
transition: left 0.2s ease, transform 0.2s ease;
|
|
3037
|
-
}
|
|
3038
|
-
|
|
3039
|
-
/* Focus state */
|
|
3040
|
-
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3041
|
-
outline: 2px solid var(--color-border-focus);
|
|
3042
|
-
outline-offset: 2px;
|
|
3043
|
-
}
|
|
3044
|
-
|
|
3045
|
-
/* Checked (on) state */
|
|
3046
|
-
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3047
|
-
background-color: var(--toggle-track-color-on);
|
|
3048
|
-
}
|
|
3049
|
-
|
|
3050
|
-
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3051
|
-
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3052
|
-
}
|
|
3053
|
-
|
|
3054
|
-
/* Disabled state */
|
|
3055
|
-
.muka-toggle--disabled .muka-toggle__track {
|
|
3056
|
-
background-color: var(--toggle-track-color-disabled);
|
|
3057
|
-
box-shadow: none;
|
|
3058
|
-
}
|
|
3059
|
-
|
|
3060
|
-
.muka-toggle--disabled .muka-toggle__knob {
|
|
3061
|
-
background-color: var(--toggle-knob-color-disabled);
|
|
3062
|
-
box-shadow: none;
|
|
3063
|
-
}
|
|
3064
|
-
|
|
3065
|
-
/* Divider */
|
|
3066
|
-
.muka-toggle__divider {
|
|
3067
|
-
position: absolute;
|
|
3068
|
-
bottom: 0;
|
|
3069
|
-
left: 0;
|
|
3070
|
-
right: 0;
|
|
3071
|
-
height: 1px;
|
|
3072
|
-
background-color: var(--color-border-muted);
|
|
2951
|
+
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2952
|
+
display: none;
|
|
3073
2953
|
}
|
|
3074
2954
|
|
|
3075
2955
|
|
|
@@ -3798,249 +3678,166 @@ body {
|
|
|
3798
3678
|
}
|
|
3799
3679
|
|
|
3800
3680
|
|
|
3801
|
-
/*
|
|
3802
|
-
/*
|
|
3803
|
-
|
|
3804
|
-
.muka-text-link {
|
|
3805
|
-
display: inline;
|
|
3806
|
-
cursor: pointer;
|
|
3807
|
-
text-decoration: underline;
|
|
3808
|
-
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
3809
|
-
text-underline-offset: 0.2em;
|
|
3810
|
-
text-decoration-thickness: from-font;
|
|
3811
|
-
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
3812
|
-
border-radius: var(--border-radius-sm);
|
|
3813
|
-
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
3814
|
-
}
|
|
3815
|
-
|
|
3816
|
-
/* ─── Sizes ───────────────────────────────────────────────
|
|
3817
|
-
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
3818
|
-
.muka-text-link--sm {
|
|
3819
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3820
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3821
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
3822
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3823
|
-
}
|
|
3824
|
-
|
|
3825
|
-
.muka-text-link--base {
|
|
3826
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
3827
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3828
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
3829
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
3830
|
-
}
|
|
3831
|
-
|
|
3832
|
-
.muka-text-link--lg {
|
|
3833
|
-
font-family: var(--text-body-lg-regular-fontFamily);
|
|
3834
|
-
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
3835
|
-
font-size: var(--text-body-lg-regular-fontSize);
|
|
3836
|
-
line-height: var(--text-body-lg-regular-lineHeight);
|
|
3837
|
-
}
|
|
3838
|
-
|
|
3839
|
-
/* ─── Variant: default (accent) ───────────────────────────
|
|
3840
|
-
Visited repeats the default colour on purpose: the design treats visited and
|
|
3841
|
-
default the same, and pinning it stops the browser's purple from showing. */
|
|
3842
|
-
.muka-text-link--default,
|
|
3843
|
-
.muka-text-link--default:visited {
|
|
3844
|
-
color: var(--color-text-action-default);
|
|
3845
|
-
}
|
|
3681
|
+
/* Toggle */
|
|
3682
|
+
/* Toggle Component Styles - Using Muka Design Tokens */
|
|
3846
3683
|
|
|
3847
|
-
|
|
3848
|
-
.muka-
|
|
3849
|
-
|
|
3684
|
+
/* Wrapper container */
|
|
3685
|
+
.muka-toggle {
|
|
3686
|
+
display: flex;
|
|
3687
|
+
align-items: center;
|
|
3688
|
+
gap: var(--spacing-2);
|
|
3689
|
+
position: relative;
|
|
3690
|
+
padding: var(--spacing-4) 0;
|
|
3850
3691
|
}
|
|
3851
3692
|
|
|
3852
|
-
.muka-
|
|
3853
|
-
|
|
3693
|
+
.muka-toggle--with-caption {
|
|
3694
|
+
padding: var(--spacing-5) 0;
|
|
3854
3695
|
}
|
|
3855
3696
|
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
.muka-text-link--subtle,
|
|
3859
|
-
.muka-text-link--subtle:visited {
|
|
3860
|
-
color: var(--color-text-subtle-default);
|
|
3697
|
+
.muka-toggle--disabled {
|
|
3698
|
+
opacity: 0.6;
|
|
3861
3699
|
}
|
|
3862
3700
|
|
|
3863
|
-
|
|
3864
|
-
.muka-
|
|
3865
|
-
|
|
3701
|
+
/* Icon */
|
|
3702
|
+
.muka-toggle__icon {
|
|
3703
|
+
display: flex;
|
|
3704
|
+
align-items: center;
|
|
3705
|
+
justify-content: center;
|
|
3706
|
+
flex-shrink: 0;
|
|
3707
|
+
width: var(--icon-size-default);
|
|
3708
|
+
height: var(--icon-size-default);
|
|
3866
3709
|
color: var(--color-text-default-default);
|
|
3867
3710
|
}
|
|
3868
3711
|
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
outline: 2px solid var(--color-border-focus);
|
|
3873
|
-
outline-offset: 2px;
|
|
3874
|
-
}
|
|
3875
|
-
|
|
3876
|
-
@media (prefers-reduced-motion: reduce) {
|
|
3877
|
-
.muka-text-link {
|
|
3878
|
-
transition: none;
|
|
3879
|
-
}
|
|
3712
|
+
.muka-toggle__icon svg {
|
|
3713
|
+
width: 100%;
|
|
3714
|
+
height: 100%;
|
|
3880
3715
|
}
|
|
3881
3716
|
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
.muka-textarea {
|
|
3887
|
-
display: inline-flex;
|
|
3717
|
+
/* Content area (label + caption) */
|
|
3718
|
+
.muka-toggle__content {
|
|
3719
|
+
display: flex;
|
|
3888
3720
|
flex-direction: column;
|
|
3889
|
-
|
|
3721
|
+
flex: 1;
|
|
3722
|
+
min-width: 0;
|
|
3723
|
+
gap: var(--spacing-1);
|
|
3890
3724
|
}
|
|
3891
3725
|
|
|
3892
3726
|
/* Label */
|
|
3893
|
-
.muka-
|
|
3727
|
+
.muka-toggle__label {
|
|
3728
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
3729
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
3730
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
3731
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
3894
3732
|
color: var(--color-text-default-default);
|
|
3895
3733
|
cursor: pointer;
|
|
3896
3734
|
}
|
|
3897
3735
|
|
|
3898
|
-
.muka-
|
|
3899
|
-
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
3900
|
-
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
3901
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
3902
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
3903
|
-
}
|
|
3904
|
-
|
|
3905
|
-
.muka-textarea__label--md {
|
|
3906
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
3907
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
3908
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
3909
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
3910
|
-
}
|
|
3911
|
-
|
|
3912
|
-
.muka-textarea__label--lg {
|
|
3736
|
+
.muka-toggle--with-caption .muka-toggle__label {
|
|
3913
3737
|
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
3914
3738
|
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
3915
3739
|
font-size: var(--text-label-lg-semibold-fontSize);
|
|
3916
3740
|
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
3917
3741
|
}
|
|
3918
3742
|
|
|
3919
|
-
.muka-
|
|
3920
|
-
color: var(--color-
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
/* Field container */
|
|
3924
|
-
.muka-textarea__field {
|
|
3925
|
-
display: flex;
|
|
3926
|
-
background-color: var(--input-field-color-default-background);
|
|
3927
|
-
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
3928
|
-
border-radius: var(--input-field-radius-md);
|
|
3929
|
-
padding: var(--input-field-padding-y) var(--input-field-padding-x);
|
|
3930
|
-
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
3931
|
-
box-sizing: border-box;
|
|
3932
|
-
}
|
|
3933
|
-
|
|
3934
|
-
.muka-textarea__field--sm {
|
|
3935
|
-
min-height: var(--input-textarea-height-sm);
|
|
3936
|
-
border-radius: var(--input-field-radius-sm);
|
|
3743
|
+
.muka-toggle--disabled .muka-toggle__label {
|
|
3744
|
+
color: var(--color-text-subtle-default);
|
|
3745
|
+
cursor: not-allowed;
|
|
3937
3746
|
}
|
|
3938
3747
|
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3748
|
+
/* Caption */
|
|
3749
|
+
.muka-toggle__caption {
|
|
3750
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
3751
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3752
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
3753
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
3754
|
+
color: var(--color-text-subtle-default);
|
|
3942
3755
|
}
|
|
3943
3756
|
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3757
|
+
/* Switch container */
|
|
3758
|
+
.muka-toggle__switch {
|
|
3759
|
+
position: relative;
|
|
3760
|
+
display: inline-flex;
|
|
3761
|
+
flex-shrink: 0;
|
|
3762
|
+
cursor: pointer;
|
|
3947
3763
|
}
|
|
3948
3764
|
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
border-width: var(--border-width-bold);
|
|
3952
|
-
border-color: var(--input-field-color-focus-border);
|
|
3953
|
-
background-color: var(--input-field-color-focus-background);
|
|
3954
|
-
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
3765
|
+
.muka-toggle--disabled .muka-toggle__switch {
|
|
3766
|
+
cursor: not-allowed;
|
|
3955
3767
|
}
|
|
3956
3768
|
|
|
3957
|
-
/*
|
|
3958
|
-
.muka-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
padding:
|
|
3769
|
+
/* Hidden native input */
|
|
3770
|
+
.muka-toggle__input {
|
|
3771
|
+
position: absolute;
|
|
3772
|
+
width: 1px;
|
|
3773
|
+
height: 1px;
|
|
3774
|
+
padding: 0;
|
|
3775
|
+
margin: -1px;
|
|
3776
|
+
overflow: hidden;
|
|
3777
|
+
clip: rect(0, 0, 0, 0);
|
|
3778
|
+
white-space: nowrap;
|
|
3779
|
+
border: 0;
|
|
3963
3780
|
}
|
|
3964
3781
|
|
|
3965
|
-
/*
|
|
3966
|
-
.muka-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
|
|
3973
|
-
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
outline: none;
|
|
3977
|
-
background: transparent;
|
|
3978
|
-
color: var(--input-field-color-default-foreground);
|
|
3979
|
-
font-family: var(--text-input-md-fontFamily);
|
|
3980
|
-
font-weight: var(--text-input-md-fontWeight);
|
|
3981
|
-
font-size: var(--text-input-md-fontSize);
|
|
3982
|
-
line-height: var(--text-input-md-lineHeight);
|
|
3983
|
-
padding: 0;
|
|
3984
|
-
width: 100%;
|
|
3985
|
-
min-width: 0;
|
|
3986
|
-
}
|
|
3987
|
-
|
|
3988
|
-
.muka-textarea__field--sm .muka-textarea__native {
|
|
3989
|
-
font-family: var(--text-input-sm-fontFamily);
|
|
3990
|
-
font-weight: var(--text-input-sm-fontWeight);
|
|
3991
|
-
font-size: var(--text-input-sm-fontSize);
|
|
3992
|
-
line-height: var(--text-input-sm-lineHeight);
|
|
3782
|
+
/* Track (background pill) */
|
|
3783
|
+
.muka-toggle__track {
|
|
3784
|
+
display: flex;
|
|
3785
|
+
align-items: center;
|
|
3786
|
+
width: var(--toggle-track-width);
|
|
3787
|
+
height: var(--toggle-track-height);
|
|
3788
|
+
border-radius: var(--toggle-track-radius);
|
|
3789
|
+
background-color: var(--toggle-track-color-off);
|
|
3790
|
+
transition: background-color 0.2s ease;
|
|
3791
|
+
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3792
|
+
position: relative;
|
|
3993
3793
|
}
|
|
3994
3794
|
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
3795
|
+
/* Knob (sliding circle) */
|
|
3796
|
+
.muka-toggle__knob {
|
|
3797
|
+
position: absolute;
|
|
3798
|
+
width: var(--toggle-knob-size);
|
|
3799
|
+
height: var(--toggle-knob-size);
|
|
3800
|
+
border-radius: var(--border-radius-full);
|
|
3801
|
+
background-color: var(--toggle-knob-color-default);
|
|
3802
|
+
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3803
|
+
left: var(--toggle-knob-offset);
|
|
3804
|
+
transition: left 0.2s ease, transform 0.2s ease;
|
|
4000
3805
|
}
|
|
4001
3806
|
|
|
4002
|
-
|
|
4003
|
-
|
|
3807
|
+
/* Focus state */
|
|
3808
|
+
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3809
|
+
outline: 2px solid var(--color-border-focus);
|
|
3810
|
+
outline-offset: 2px;
|
|
4004
3811
|
}
|
|
4005
3812
|
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
3813
|
+
/* Checked (on) state */
|
|
3814
|
+
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3815
|
+
background-color: var(--toggle-track-color-on);
|
|
4009
3816
|
}
|
|
4010
3817
|
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
display: flex;
|
|
4014
|
-
justify-content: space-between;
|
|
4015
|
-
align-items: flex-start;
|
|
4016
|
-
gap: var(--spacing-2);
|
|
3818
|
+
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3819
|
+
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
4017
3820
|
}
|
|
4018
3821
|
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4024
|
-
color: var(--color-text-subtle-default);
|
|
4025
|
-
margin: 0;
|
|
3822
|
+
/* Disabled state */
|
|
3823
|
+
.muka-toggle--disabled .muka-toggle__track {
|
|
3824
|
+
background-color: var(--toggle-track-color-disabled);
|
|
3825
|
+
box-shadow: none;
|
|
4026
3826
|
}
|
|
4027
3827
|
|
|
4028
|
-
.muka-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
4032
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4033
|
-
color: var(--color-state-error-default);
|
|
4034
|
-
margin: 0;
|
|
3828
|
+
.muka-toggle--disabled .muka-toggle__knob {
|
|
3829
|
+
background-color: var(--toggle-knob-color-disabled);
|
|
3830
|
+
box-shadow: none;
|
|
4035
3831
|
}
|
|
4036
3832
|
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
3833
|
+
/* Divider */
|
|
3834
|
+
.muka-toggle__divider {
|
|
3835
|
+
position: absolute;
|
|
3836
|
+
bottom: 0;
|
|
3837
|
+
left: 0;
|
|
3838
|
+
right: 0;
|
|
3839
|
+
height: 1px;
|
|
3840
|
+
background-color: var(--color-border-muted);
|
|
4044
3841
|
}
|
|
4045
3842
|
|
|
4046
3843
|
|
|
@@ -4075,12 +3872,17 @@ body {
|
|
|
4075
3872
|
border-bottom: 1px solid var(--tabs-trigger-color-default-border);
|
|
4076
3873
|
}
|
|
4077
3874
|
|
|
3875
|
+
/* Padding: inset the tabs; the divider (border) still spans the full width */
|
|
3876
|
+
.muka-tabs--padding-default .muka-tabs__list {
|
|
3877
|
+
padding-inline: var(--tabs-list-padding-x);
|
|
3878
|
+
}
|
|
3879
|
+
|
|
4078
3880
|
/* Tab Trigger — clean underline style */
|
|
4079
3881
|
.muka-tabs__trigger {
|
|
4080
3882
|
display: inline-flex;
|
|
4081
3883
|
align-items: center;
|
|
4082
3884
|
justify-content: center;
|
|
4083
|
-
gap: var(--spacing-
|
|
3885
|
+
gap: var(--spacing-1);
|
|
4084
3886
|
background: transparent;
|
|
4085
3887
|
border: none;
|
|
4086
3888
|
cursor: pointer;
|
|
@@ -4093,8 +3895,8 @@ body {
|
|
|
4093
3895
|
color: var(--tabs-trigger-color-default-foreground);
|
|
4094
3896
|
|
|
4095
3897
|
/* Default MD size values */
|
|
4096
|
-
height:
|
|
4097
|
-
padding:
|
|
3898
|
+
min-height: var(--tabs-trigger-min-height-md);
|
|
3899
|
+
padding: var(--spacing-3);
|
|
4098
3900
|
font-family: var(--text-label-md-regular-fontFamily);
|
|
4099
3901
|
font-weight: var(--text-label-md-regular-fontWeight);
|
|
4100
3902
|
font-size: var(--text-label-md-regular-fontSize);
|
|
@@ -4103,8 +3905,8 @@ body {
|
|
|
4103
3905
|
|
|
4104
3906
|
/* Size Variants */
|
|
4105
3907
|
.muka-tabs--size-sm .muka-tabs__trigger {
|
|
4106
|
-
height:
|
|
4107
|
-
padding: 0 var(--spacing-2
|
|
3908
|
+
min-height: var(--tabs-trigger-min-height-sm);
|
|
3909
|
+
padding: 0 var(--spacing-2);
|
|
4108
3910
|
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4109
3911
|
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4110
3912
|
font-size: var(--text-label-sm-regular-fontSize);
|
|
@@ -4112,8 +3914,8 @@ body {
|
|
|
4112
3914
|
}
|
|
4113
3915
|
|
|
4114
3916
|
.muka-tabs--size-lg .muka-tabs__trigger {
|
|
4115
|
-
height:
|
|
4116
|
-
padding:
|
|
3917
|
+
min-height: var(--tabs-trigger-min-height-lg);
|
|
3918
|
+
padding: var(--spacing-4);
|
|
4117
3919
|
font-family: var(--text-label-lg-regular-fontFamily);
|
|
4118
3920
|
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
4119
3921
|
font-size: var(--text-label-lg-regular-fontSize);
|
|
@@ -4137,8 +3939,8 @@ body {
|
|
|
4137
3939
|
bottom: -1px; /* Overlap the 1px border */
|
|
4138
3940
|
left: 0;
|
|
4139
3941
|
right: 0;
|
|
4140
|
-
height:
|
|
4141
|
-
background-color: var(--tabs-
|
|
3942
|
+
height: var(--tabs-indicator-height-md);
|
|
3943
|
+
background-color: var(--tabs-indicator-color);
|
|
4142
3944
|
border-bottom-left-radius: 1px;
|
|
4143
3945
|
border-bottom-right-radius: 1px;
|
|
4144
3946
|
border-top-left-radius: 3px;
|
|
@@ -4146,6 +3948,13 @@ body {
|
|
|
4146
3948
|
z-index: 3;
|
|
4147
3949
|
}
|
|
4148
3950
|
|
|
3951
|
+
.muka-tabs--size-sm .muka-tabs__trigger--current::after {
|
|
3952
|
+
height: var(--tabs-indicator-height-sm);
|
|
3953
|
+
}
|
|
3954
|
+
.muka-tabs--size-lg .muka-tabs__trigger--current::after {
|
|
3955
|
+
height: var(--tabs-indicator-height-lg);
|
|
3956
|
+
}
|
|
3957
|
+
|
|
4149
3958
|
.muka-tabs__trigger--disabled {
|
|
4150
3959
|
color: var(--tabs-trigger-color-disabled-foreground);
|
|
4151
3960
|
cursor: not-allowed;
|
|
@@ -4156,18 +3965,29 @@ body {
|
|
|
4156
3965
|
outline-offset: -2px;
|
|
4157
3966
|
}
|
|
4158
3967
|
|
|
4159
|
-
/*
|
|
4160
|
-
|
|
3968
|
+
/* Label: Figma pads the label 8px either side, so with the 4px gap a leading
|
|
3969
|
+
item sits 12px from the text */
|
|
3970
|
+
.muka-tabs__label {
|
|
3971
|
+
padding: 0 var(--spacing-2);
|
|
3972
|
+
}
|
|
3973
|
+
|
|
3974
|
+
/* Leading item: icon, avatar, avatar group or data pie chart */
|
|
3975
|
+
.muka-tabs__leading {
|
|
4161
3976
|
display: flex;
|
|
4162
3977
|
align-items: center;
|
|
4163
3978
|
justify-content: center;
|
|
3979
|
+
flex-shrink: 0;
|
|
4164
3980
|
}
|
|
4165
3981
|
.muka-tabs__trigger .muka-icon {
|
|
4166
3982
|
color: inherit;
|
|
4167
3983
|
}
|
|
4168
|
-
|
|
4169
|
-
.muka-tabs--size-
|
|
4170
|
-
.muka-tabs--size-
|
|
3984
|
+
/* Icon sizes only: avatars and pie charts are sized through their size prop */
|
|
3985
|
+
.muka-tabs--size-sm .muka-tabs__leading > svg,
|
|
3986
|
+
.muka-tabs--size-sm .muka-tabs__leading > .muka-icon svg { width: 16px; height: 16px; }
|
|
3987
|
+
.muka-tabs--size-md .muka-tabs__leading > svg,
|
|
3988
|
+
.muka-tabs--size-md .muka-tabs__leading > .muka-icon svg { width: 20px; height: 20px; }
|
|
3989
|
+
.muka-tabs--size-lg .muka-tabs__leading > svg,
|
|
3990
|
+
.muka-tabs--size-lg .muka-tabs__leading > .muka-icon svg { width: 24px; height: 24px; }
|
|
4171
3991
|
|
|
4172
3992
|
/* Responsive Scroll behavior on small screens */
|
|
4173
3993
|
@media (max-width: 768px) {
|
|
@@ -4211,6 +4031,252 @@ body {
|
|
|
4211
4031
|
}
|
|
4212
4032
|
|
|
4213
4033
|
|
|
4034
|
+
/* Textarea */
|
|
4035
|
+
/* Textarea Component Styles - Using Muka Design Tokens */
|
|
4036
|
+
|
|
4037
|
+
.muka-textarea {
|
|
4038
|
+
display: inline-flex;
|
|
4039
|
+
flex-direction: column;
|
|
4040
|
+
gap: var(--spacing-2);
|
|
4041
|
+
}
|
|
4042
|
+
|
|
4043
|
+
/* Label */
|
|
4044
|
+
.muka-textarea__label {
|
|
4045
|
+
color: var(--color-text-default-default);
|
|
4046
|
+
cursor: pointer;
|
|
4047
|
+
}
|
|
4048
|
+
|
|
4049
|
+
.muka-textarea__label--sm {
|
|
4050
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4051
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4052
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4053
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4054
|
+
}
|
|
4055
|
+
|
|
4056
|
+
.muka-textarea__label--md {
|
|
4057
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
4058
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
4059
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
4060
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
4061
|
+
}
|
|
4062
|
+
|
|
4063
|
+
.muka-textarea__label--lg {
|
|
4064
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
4065
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
4066
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
4067
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
4068
|
+
}
|
|
4069
|
+
|
|
4070
|
+
.muka-textarea__required {
|
|
4071
|
+
color: var(--color-state-error-default);
|
|
4072
|
+
}
|
|
4073
|
+
|
|
4074
|
+
/* Field container */
|
|
4075
|
+
.muka-textarea__field {
|
|
4076
|
+
display: flex;
|
|
4077
|
+
background-color: var(--input-field-color-default-background);
|
|
4078
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
4079
|
+
border-radius: var(--input-field-radius-md);
|
|
4080
|
+
padding: var(--input-field-padding-y) var(--input-field-padding-x);
|
|
4081
|
+
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
4082
|
+
box-sizing: border-box;
|
|
4083
|
+
}
|
|
4084
|
+
|
|
4085
|
+
.muka-textarea__field--sm {
|
|
4086
|
+
min-height: var(--input-textarea-height-sm);
|
|
4087
|
+
border-radius: var(--input-field-radius-sm);
|
|
4088
|
+
}
|
|
4089
|
+
|
|
4090
|
+
.muka-textarea__field--md {
|
|
4091
|
+
min-height: var(--input-textarea-height-default);
|
|
4092
|
+
border-radius: var(--input-field-radius-md);
|
|
4093
|
+
}
|
|
4094
|
+
|
|
4095
|
+
.muka-textarea__field--lg {
|
|
4096
|
+
min-height: var(--input-textarea-height-lg);
|
|
4097
|
+
border-radius: var(--input-field-radius-lg);
|
|
4098
|
+
}
|
|
4099
|
+
|
|
4100
|
+
/* Focus state */
|
|
4101
|
+
.muka-textarea__field--focused:not(.muka-textarea__field--disabled) {
|
|
4102
|
+
border-width: var(--border-width-bold);
|
|
4103
|
+
border-color: var(--input-field-color-focus-border);
|
|
4104
|
+
background-color: var(--input-field-color-focus-background);
|
|
4105
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
4106
|
+
}
|
|
4107
|
+
|
|
4108
|
+
/* Error state */
|
|
4109
|
+
.muka-textarea__field--error:not(.muka-textarea__field--disabled) {
|
|
4110
|
+
border-width: var(--border-width-bold);
|
|
4111
|
+
border-color: var(--input-field-color-error-border);
|
|
4112
|
+
background-color: var(--input-field-color-error-background);
|
|
4113
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
4114
|
+
}
|
|
4115
|
+
|
|
4116
|
+
/* Disabled state */
|
|
4117
|
+
.muka-textarea__field--disabled {
|
|
4118
|
+
background-color: var(--input-field-color-disabled-background);
|
|
4119
|
+
border-color: var(--input-field-color-disabled-border);
|
|
4120
|
+
cursor: not-allowed;
|
|
4121
|
+
}
|
|
4122
|
+
|
|
4123
|
+
/* Native textarea */
|
|
4124
|
+
.muka-textarea__native {
|
|
4125
|
+
flex: 1;
|
|
4126
|
+
border: none;
|
|
4127
|
+
outline: none;
|
|
4128
|
+
background: transparent;
|
|
4129
|
+
color: var(--input-field-color-default-foreground);
|
|
4130
|
+
font-family: var(--text-input-md-fontFamily);
|
|
4131
|
+
font-weight: var(--text-input-md-fontWeight);
|
|
4132
|
+
font-size: var(--text-input-md-fontSize);
|
|
4133
|
+
line-height: var(--text-input-md-lineHeight);
|
|
4134
|
+
padding: 0;
|
|
4135
|
+
width: 100%;
|
|
4136
|
+
min-width: 0;
|
|
4137
|
+
}
|
|
4138
|
+
|
|
4139
|
+
.muka-textarea__field--sm .muka-textarea__native {
|
|
4140
|
+
font-family: var(--text-input-sm-fontFamily);
|
|
4141
|
+
font-weight: var(--text-input-sm-fontWeight);
|
|
4142
|
+
font-size: var(--text-input-sm-fontSize);
|
|
4143
|
+
line-height: var(--text-input-sm-lineHeight);
|
|
4144
|
+
}
|
|
4145
|
+
|
|
4146
|
+
.muka-textarea__field--lg .muka-textarea__native {
|
|
4147
|
+
font-family: var(--text-input-lg-fontFamily);
|
|
4148
|
+
font-weight: var(--text-input-lg-fontWeight);
|
|
4149
|
+
font-size: var(--text-input-lg-fontSize);
|
|
4150
|
+
line-height: var(--text-input-lg-lineHeight);
|
|
4151
|
+
}
|
|
4152
|
+
|
|
4153
|
+
.muka-textarea__native::placeholder {
|
|
4154
|
+
color: var(--color-text-subtle-default);
|
|
4155
|
+
}
|
|
4156
|
+
|
|
4157
|
+
.muka-textarea__field--disabled .muka-textarea__native {
|
|
4158
|
+
color: var(--input-field-color-disabled-foreground);
|
|
4159
|
+
cursor: not-allowed;
|
|
4160
|
+
}
|
|
4161
|
+
|
|
4162
|
+
/* Footer (helper/error + count) */
|
|
4163
|
+
.muka-textarea__footer {
|
|
4164
|
+
display: flex;
|
|
4165
|
+
justify-content: space-between;
|
|
4166
|
+
align-items: flex-start;
|
|
4167
|
+
gap: var(--spacing-2);
|
|
4168
|
+
}
|
|
4169
|
+
|
|
4170
|
+
.muka-textarea__helper {
|
|
4171
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4172
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4173
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4174
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4175
|
+
color: var(--color-text-subtle-default);
|
|
4176
|
+
margin: 0;
|
|
4177
|
+
}
|
|
4178
|
+
|
|
4179
|
+
.muka-textarea__error {
|
|
4180
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4181
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4182
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4183
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4184
|
+
color: var(--color-state-error-default);
|
|
4185
|
+
margin: 0;
|
|
4186
|
+
}
|
|
4187
|
+
|
|
4188
|
+
.muka-textarea__count {
|
|
4189
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4190
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4191
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4192
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4193
|
+
color: var(--color-text-subtle-default);
|
|
4194
|
+
margin-left: auto;
|
|
4195
|
+
}
|
|
4196
|
+
|
|
4197
|
+
|
|
4198
|
+
/* TextLink */
|
|
4199
|
+
/* TextLink Component Styles - Using Muka Design Tokens */
|
|
4200
|
+
|
|
4201
|
+
.muka-text-link {
|
|
4202
|
+
display: inline;
|
|
4203
|
+
cursor: pointer;
|
|
4204
|
+
text-decoration: underline;
|
|
4205
|
+
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
4206
|
+
text-underline-offset: 0.2em;
|
|
4207
|
+
text-decoration-thickness: from-font;
|
|
4208
|
+
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
4209
|
+
border-radius: var(--border-radius-sm);
|
|
4210
|
+
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
4211
|
+
}
|
|
4212
|
+
|
|
4213
|
+
/* ─── Sizes ───────────────────────────────────────────────
|
|
4214
|
+
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
4215
|
+
.muka-text-link--sm {
|
|
4216
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
4217
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
4218
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
4219
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
4220
|
+
}
|
|
4221
|
+
|
|
4222
|
+
.muka-text-link--base {
|
|
4223
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4224
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4225
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4226
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4227
|
+
}
|
|
4228
|
+
|
|
4229
|
+
.muka-text-link--lg {
|
|
4230
|
+
font-family: var(--text-body-lg-regular-fontFamily);
|
|
4231
|
+
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
4232
|
+
font-size: var(--text-body-lg-regular-fontSize);
|
|
4233
|
+
line-height: var(--text-body-lg-regular-lineHeight);
|
|
4234
|
+
}
|
|
4235
|
+
|
|
4236
|
+
/* ─── Variant: default (accent) ───────────────────────────
|
|
4237
|
+
Visited repeats the default colour on purpose: the design treats visited and
|
|
4238
|
+
default the same, and pinning it stops the browser's purple from showing. */
|
|
4239
|
+
.muka-text-link--default,
|
|
4240
|
+
.muka-text-link--default:visited {
|
|
4241
|
+
color: var(--color-text-action-default);
|
|
4242
|
+
}
|
|
4243
|
+
|
|
4244
|
+
.muka-text-link--default:hover,
|
|
4245
|
+
.muka-text-link--default:focus-visible {
|
|
4246
|
+
color: var(--color-text-action-hover);
|
|
4247
|
+
}
|
|
4248
|
+
|
|
4249
|
+
.muka-text-link--default:active {
|
|
4250
|
+
color: var(--color-text-action-pressed);
|
|
4251
|
+
}
|
|
4252
|
+
|
|
4253
|
+
/* ─── Variant: subtle (neutral) ───────────────────────────
|
|
4254
|
+
Hover, focus and pressed all darken to the default text colour. */
|
|
4255
|
+
.muka-text-link--subtle,
|
|
4256
|
+
.muka-text-link--subtle:visited {
|
|
4257
|
+
color: var(--color-text-subtle-default);
|
|
4258
|
+
}
|
|
4259
|
+
|
|
4260
|
+
.muka-text-link--subtle:hover,
|
|
4261
|
+
.muka-text-link--subtle:focus-visible,
|
|
4262
|
+
.muka-text-link--subtle:active {
|
|
4263
|
+
color: var(--color-text-default-default);
|
|
4264
|
+
}
|
|
4265
|
+
|
|
4266
|
+
/* ─── Focus ───────────────────────────────────────────────
|
|
4267
|
+
Same ring as every other focusable Muka component. */
|
|
4268
|
+
.muka-text-link:focus-visible {
|
|
4269
|
+
outline: 2px solid var(--color-border-focus);
|
|
4270
|
+
outline-offset: 2px;
|
|
4271
|
+
}
|
|
4272
|
+
|
|
4273
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4274
|
+
.muka-text-link {
|
|
4275
|
+
transition: none;
|
|
4276
|
+
}
|
|
4277
|
+
}
|
|
4278
|
+
|
|
4279
|
+
|
|
4214
4280
|
/* Table */
|
|
4215
4281
|
/* Table Component Styles - Using Muka Design Tokens */
|
|
4216
4282
|
|
|
@@ -4476,198 +4542,90 @@ body {
|
|
|
4476
4542
|
.muka-table__header-cell {
|
|
4477
4543
|
vertical-align: middle;
|
|
4478
4544
|
}
|
|
4479
|
-
|
|
4480
|
-
/* Size: Small */
|
|
4481
|
-
.muka-table--sm .muka-table__cell,
|
|
4482
|
-
.muka-table--sm .muka-table__header-cell {
|
|
4483
|
-
padding: var(--table-cell-padding-y-sm) var(--table-cell-padding-x-sm);
|
|
4484
|
-
}
|
|
4485
|
-
|
|
4486
|
-
/* Size: Medium */
|
|
4487
|
-
.muka-table--md .muka-table__cell,
|
|
4488
|
-
.muka-table--md .muka-table__header-cell {
|
|
4489
|
-
padding: var(--table-cell-padding-y-md) var(--table-cell-padding-x-md);
|
|
4490
|
-
}
|
|
4491
|
-
|
|
4492
|
-
/* Size: Large */
|
|
4493
|
-
.muka-table--lg .muka-table__cell,
|
|
4494
|
-
.muka-table--lg .muka-table__header-cell {
|
|
4495
|
-
padding: var(--table-cell-padding-y-lg) var(--table-cell-padding-x-lg);
|
|
4496
|
-
}
|
|
4497
|
-
|
|
4498
|
-
/* Alignment */
|
|
4499
|
-
.muka-table__cell--left,
|
|
4500
|
-
.muka-table__header-cell--left {
|
|
4501
|
-
text-align: left;
|
|
4502
|
-
}
|
|
4503
|
-
|
|
4504
|
-
.muka-table__cell--center,
|
|
4505
|
-
.muka-table__header-cell--center {
|
|
4506
|
-
text-align: center;
|
|
4507
|
-
}
|
|
4508
|
-
|
|
4509
|
-
.muka-table__cell--right,
|
|
4510
|
-
.muka-table__header-cell--right {
|
|
4511
|
-
text-align: right;
|
|
4512
|
-
}
|
|
4513
|
-
|
|
4514
|
-
/* ========================================
|
|
4515
|
-
HEADER CELLS
|
|
4516
|
-
======================================== */
|
|
4517
|
-
|
|
4518
|
-
.muka-table__header-cell {
|
|
4519
|
-
font-family: var(--text-body-base-bold-fontFamily);
|
|
4520
|
-
font-weight: var(--text-body-base-bold-fontWeight);
|
|
4521
|
-
font-size: var(--text-body-base-bold-fontSize);
|
|
4522
|
-
line-height: var(--text-body-base-bold-lineHeight);
|
|
4523
|
-
color: var(--color-text-default-default);
|
|
4524
|
-
white-space: nowrap;
|
|
4525
|
-
}
|
|
4526
|
-
|
|
4527
|
-
.muka-table__header-content {
|
|
4528
|
-
display: inline-flex;
|
|
4529
|
-
align-items: center;
|
|
4530
|
-
gap: var(--spacing-1);
|
|
4531
|
-
}
|
|
4532
|
-
|
|
4533
|
-
/* Sortable */
|
|
4534
|
-
.muka-table__header-cell--sortable {
|
|
4535
|
-
cursor: pointer;
|
|
4536
|
-
user-select: none;
|
|
4537
|
-
}
|
|
4538
|
-
|
|
4539
|
-
.muka-table__header-cell--sortable:hover {
|
|
4540
|
-
color: var(--color-text-default-default);
|
|
4541
|
-
}
|
|
4542
|
-
|
|
4543
|
-
.muka-table__header-cell--sortable:focus-visible {
|
|
4544
|
-
outline: 2px solid var(--color-action-default);
|
|
4545
|
-
outline-offset: -2px;
|
|
4546
|
-
}
|
|
4547
|
-
|
|
4548
|
-
/* Sort icon */
|
|
4549
|
-
.muka-table__sort-icon {
|
|
4550
|
-
width: 1em;
|
|
4551
|
-
height: 1em;
|
|
4552
|
-
opacity: 0.4;
|
|
4553
|
-
transition: opacity 0.2s, transform 0.2s;
|
|
4554
|
-
}
|
|
4555
|
-
|
|
4556
|
-
.muka-table__header-cell--sortable:hover .muka-table__sort-icon {
|
|
4557
|
-
opacity: 0.7;
|
|
4558
|
-
}
|
|
4559
|
-
|
|
4560
|
-
.muka-table__sort-icon--asc,
|
|
4561
|
-
.muka-table__sort-icon--desc {
|
|
4562
|
-
opacity: 1;
|
|
4563
|
-
}
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
/* SwipeActions */
|
|
4567
|
-
/* SwipeActions Component Styles */
|
|
4568
|
-
|
|
4569
|
-
.muka-swipe-actions {
|
|
4570
|
-
position: relative;
|
|
4571
|
-
overflow: hidden;
|
|
4572
|
-
touch-action: pan-y;
|
|
4573
|
-
-webkit-user-select: none;
|
|
4574
|
-
user-select: none;
|
|
4575
|
-
background-color: var(--color-surface-level3);
|
|
4576
|
-
}
|
|
4577
|
-
|
|
4578
|
-
.muka-swipe-actions--disabled {
|
|
4579
|
-
touch-action: auto;
|
|
4580
|
-
}
|
|
4581
|
-
|
|
4582
|
-
/* ─── Row that holds the actual content ────────────────── */
|
|
4583
|
-
|
|
4584
|
-
.muka-swipe-actions__row {
|
|
4585
|
-
position: relative;
|
|
4586
|
-
z-index: 1;
|
|
4587
|
-
background-color: inherit;
|
|
4588
|
-
will-change: transform;
|
|
4589
|
-
}
|
|
4590
|
-
|
|
4591
|
-
/* ─── Action panels — sit beneath the row ──────────────── */
|
|
4592
|
-
|
|
4593
|
-
.muka-swipe-actions__panel {
|
|
4594
|
-
position: absolute;
|
|
4595
|
-
top: 0;
|
|
4596
|
-
bottom: 0;
|
|
4597
|
-
display: flex;
|
|
4598
|
-
align-items: stretch;
|
|
4599
|
-
z-index: 0;
|
|
4545
|
+
|
|
4546
|
+
/* Size: Small */
|
|
4547
|
+
.muka-table--sm .muka-table__cell,
|
|
4548
|
+
.muka-table--sm .muka-table__header-cell {
|
|
4549
|
+
padding: var(--table-cell-padding-y-sm) var(--table-cell-padding-x-sm);
|
|
4600
4550
|
}
|
|
4601
4551
|
|
|
4602
|
-
|
|
4603
|
-
|
|
4552
|
+
/* Size: Medium */
|
|
4553
|
+
.muka-table--md .muka-table__cell,
|
|
4554
|
+
.muka-table--md .muka-table__header-cell {
|
|
4555
|
+
padding: var(--table-cell-padding-y-md) var(--table-cell-padding-x-md);
|
|
4604
4556
|
}
|
|
4605
4557
|
|
|
4606
|
-
|
|
4607
|
-
|
|
4558
|
+
/* Size: Large */
|
|
4559
|
+
.muka-table--lg .muka-table__cell,
|
|
4560
|
+
.muka-table--lg .muka-table__header-cell {
|
|
4561
|
+
padding: var(--table-cell-padding-y-lg) var(--table-cell-padding-x-lg);
|
|
4608
4562
|
}
|
|
4609
4563
|
|
|
4610
|
-
/*
|
|
4564
|
+
/* Alignment */
|
|
4565
|
+
.muka-table__cell--left,
|
|
4566
|
+
.muka-table__header-cell--left {
|
|
4567
|
+
text-align: left;
|
|
4568
|
+
}
|
|
4611
4569
|
|
|
4612
|
-
.muka-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
align-items: center;
|
|
4616
|
-
justify-content: center;
|
|
4617
|
-
gap: var(--spacing-1);
|
|
4618
|
-
border: none;
|
|
4619
|
-
cursor: pointer;
|
|
4620
|
-
padding: var(--spacing-2);
|
|
4621
|
-
background-color: var(--color-surface-level2);
|
|
4622
|
-
color: var(--color-text-default-default);
|
|
4623
|
-
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4624
|
-
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4625
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4626
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4627
|
-
-webkit-tap-highlight-color: transparent;
|
|
4628
|
-
transition: filter 0.12s ease;
|
|
4570
|
+
.muka-table__cell--center,
|
|
4571
|
+
.muka-table__header-cell--center {
|
|
4572
|
+
text-align: center;
|
|
4629
4573
|
}
|
|
4630
4574
|
|
|
4631
|
-
.muka-
|
|
4632
|
-
|
|
4575
|
+
.muka-table__cell--right,
|
|
4576
|
+
.muka-table__header-cell--right {
|
|
4577
|
+
text-align: right;
|
|
4633
4578
|
}
|
|
4634
4579
|
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4580
|
+
/* ========================================
|
|
4581
|
+
HEADER CELLS
|
|
4582
|
+
======================================== */
|
|
4583
|
+
|
|
4584
|
+
.muka-table__header-cell {
|
|
4585
|
+
font-family: var(--text-body-base-bold-fontFamily);
|
|
4586
|
+
font-weight: var(--text-body-base-bold-fontWeight);
|
|
4587
|
+
font-size: var(--text-body-base-bold-fontSize);
|
|
4588
|
+
line-height: var(--text-body-base-bold-lineHeight);
|
|
4589
|
+
color: var(--color-text-default-default);
|
|
4590
|
+
white-space: nowrap;
|
|
4638
4591
|
}
|
|
4639
4592
|
|
|
4640
|
-
.muka-
|
|
4593
|
+
.muka-table__header-content {
|
|
4641
4594
|
display: inline-flex;
|
|
4642
4595
|
align-items: center;
|
|
4643
|
-
|
|
4596
|
+
gap: var(--spacing-1);
|
|
4644
4597
|
}
|
|
4645
4598
|
|
|
4646
|
-
/*
|
|
4599
|
+
/* Sortable */
|
|
4600
|
+
.muka-table__header-cell--sortable {
|
|
4601
|
+
cursor: pointer;
|
|
4602
|
+
user-select: none;
|
|
4603
|
+
}
|
|
4647
4604
|
|
|
4648
|
-
.muka-
|
|
4649
|
-
background-color: var(--color-surface-level2);
|
|
4605
|
+
.muka-table__header-cell--sortable:hover {
|
|
4650
4606
|
color: var(--color-text-default-default);
|
|
4651
4607
|
}
|
|
4652
4608
|
|
|
4653
|
-
.muka-
|
|
4654
|
-
|
|
4655
|
-
|
|
4609
|
+
.muka-table__header-cell--sortable:focus-visible {
|
|
4610
|
+
outline: 2px solid var(--color-action-default);
|
|
4611
|
+
outline-offset: -2px;
|
|
4656
4612
|
}
|
|
4657
4613
|
|
|
4658
|
-
|
|
4659
|
-
|
|
4660
|
-
|
|
4614
|
+
/* Sort icon */
|
|
4615
|
+
.muka-table__sort-icon {
|
|
4616
|
+
width: 1em;
|
|
4617
|
+
height: 1em;
|
|
4618
|
+
opacity: 0.4;
|
|
4619
|
+
transition: opacity 0.2s, transform 0.2s;
|
|
4661
4620
|
}
|
|
4662
4621
|
|
|
4663
|
-
.muka-
|
|
4664
|
-
|
|
4665
|
-
color: var(--color-text-default-default);
|
|
4622
|
+
.muka-table__header-cell--sortable:hover .muka-table__sort-icon {
|
|
4623
|
+
opacity: 0.7;
|
|
4666
4624
|
}
|
|
4667
4625
|
|
|
4668
|
-
.muka-
|
|
4669
|
-
|
|
4670
|
-
|
|
4626
|
+
.muka-table__sort-icon--asc,
|
|
4627
|
+
.muka-table__sort-icon--desc {
|
|
4628
|
+
opacity: 1;
|
|
4671
4629
|
}
|
|
4672
4630
|
|
|
4673
4631
|
|
|
@@ -4834,6 +4792,114 @@ body {
|
|
|
4834
4792
|
}
|
|
4835
4793
|
|
|
4836
4794
|
|
|
4795
|
+
/* SwipeActions */
|
|
4796
|
+
/* SwipeActions Component Styles */
|
|
4797
|
+
|
|
4798
|
+
.muka-swipe-actions {
|
|
4799
|
+
position: relative;
|
|
4800
|
+
overflow: hidden;
|
|
4801
|
+
touch-action: pan-y;
|
|
4802
|
+
-webkit-user-select: none;
|
|
4803
|
+
user-select: none;
|
|
4804
|
+
background-color: var(--color-surface-level3);
|
|
4805
|
+
}
|
|
4806
|
+
|
|
4807
|
+
.muka-swipe-actions--disabled {
|
|
4808
|
+
touch-action: auto;
|
|
4809
|
+
}
|
|
4810
|
+
|
|
4811
|
+
/* ─── Row that holds the actual content ────────────────── */
|
|
4812
|
+
|
|
4813
|
+
.muka-swipe-actions__row {
|
|
4814
|
+
position: relative;
|
|
4815
|
+
z-index: 1;
|
|
4816
|
+
background-color: inherit;
|
|
4817
|
+
will-change: transform;
|
|
4818
|
+
}
|
|
4819
|
+
|
|
4820
|
+
/* ─── Action panels — sit beneath the row ──────────────── */
|
|
4821
|
+
|
|
4822
|
+
.muka-swipe-actions__panel {
|
|
4823
|
+
position: absolute;
|
|
4824
|
+
top: 0;
|
|
4825
|
+
bottom: 0;
|
|
4826
|
+
display: flex;
|
|
4827
|
+
align-items: stretch;
|
|
4828
|
+
z-index: 0;
|
|
4829
|
+
}
|
|
4830
|
+
|
|
4831
|
+
.muka-swipe-actions__panel--left {
|
|
4832
|
+
left: 0;
|
|
4833
|
+
}
|
|
4834
|
+
|
|
4835
|
+
.muka-swipe-actions__panel--right {
|
|
4836
|
+
right: 0;
|
|
4837
|
+
}
|
|
4838
|
+
|
|
4839
|
+
/* ─── Single action button ─────────────────────────────── */
|
|
4840
|
+
|
|
4841
|
+
.muka-swipe-actions__button {
|
|
4842
|
+
display: flex;
|
|
4843
|
+
flex-direction: column;
|
|
4844
|
+
align-items: center;
|
|
4845
|
+
justify-content: center;
|
|
4846
|
+
gap: var(--spacing-1);
|
|
4847
|
+
border: none;
|
|
4848
|
+
cursor: pointer;
|
|
4849
|
+
padding: var(--spacing-2);
|
|
4850
|
+
background-color: var(--color-surface-level2);
|
|
4851
|
+
color: var(--color-text-default-default);
|
|
4852
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4853
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4854
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4855
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4856
|
+
-webkit-tap-highlight-color: transparent;
|
|
4857
|
+
transition: filter 0.12s ease;
|
|
4858
|
+
}
|
|
4859
|
+
|
|
4860
|
+
.muka-swipe-actions__button:hover {
|
|
4861
|
+
filter: brightness(0.95);
|
|
4862
|
+
}
|
|
4863
|
+
|
|
4864
|
+
.muka-swipe-actions__button:focus-visible {
|
|
4865
|
+
outline: 2px solid var(--color-action-default);
|
|
4866
|
+
outline-offset: -2px;
|
|
4867
|
+
}
|
|
4868
|
+
|
|
4869
|
+
.muka-swipe-actions__button-icon {
|
|
4870
|
+
display: inline-flex;
|
|
4871
|
+
align-items: center;
|
|
4872
|
+
justify-content: center;
|
|
4873
|
+
}
|
|
4874
|
+
|
|
4875
|
+
/* ─── Color variants ───────────────────────────────────── */
|
|
4876
|
+
|
|
4877
|
+
.muka-swipe-actions__button--neutral {
|
|
4878
|
+
background-color: var(--color-surface-level2);
|
|
4879
|
+
color: var(--color-text-default-default);
|
|
4880
|
+
}
|
|
4881
|
+
|
|
4882
|
+
.muka-swipe-actions__button--primary {
|
|
4883
|
+
background-color: var(--color-action-default);
|
|
4884
|
+
color: var(--color-text-default-inverse);
|
|
4885
|
+
}
|
|
4886
|
+
|
|
4887
|
+
.muka-swipe-actions__button--success {
|
|
4888
|
+
background-color: var(--color-state-success-default);
|
|
4889
|
+
color: var(--color-text-default-inverse);
|
|
4890
|
+
}
|
|
4891
|
+
|
|
4892
|
+
.muka-swipe-actions__button--warning {
|
|
4893
|
+
background-color: var(--color-state-warning-default);
|
|
4894
|
+
color: var(--color-text-default-default);
|
|
4895
|
+
}
|
|
4896
|
+
|
|
4897
|
+
.muka-swipe-actions__button--destructive {
|
|
4898
|
+
background-color: var(--color-state-error-default);
|
|
4899
|
+
color: var(--color-text-default-inverse);
|
|
4900
|
+
}
|
|
4901
|
+
|
|
4902
|
+
|
|
4837
4903
|
/* SocialSignInButton */
|
|
4838
4904
|
/*
|
|
4839
4905
|
* SocialSignInButton lockup colors are provider-mandated (Apple HIG /
|
|
@@ -13602,6 +13668,39 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13602
13668
|
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
13603
13669
|
}
|
|
13604
13670
|
|
|
13671
|
+
/* Destructive variant - primary's structure on the solid error fill, for
|
|
13672
|
+
irreversible actions. Hover and pressed step away from the label color, so
|
|
13673
|
+
contrast never drops (darker in light themes, lighter in dark themes).
|
|
13674
|
+
Disabled is neutral grey rather than primary's brand-tinted fill. */
|
|
13675
|
+
.muka-button--destructive {
|
|
13676
|
+
background-color: var(--button-color-destructive-background-default);
|
|
13677
|
+
color: var(--button-color-destructive-foreground-default);
|
|
13678
|
+
box-shadow: var(--button-color-destructive-shadow-default);
|
|
13679
|
+
}
|
|
13680
|
+
|
|
13681
|
+
.muka-button--destructive:hover:not(:disabled) {
|
|
13682
|
+
background-color: var(--button-color-destructive-background-hover);
|
|
13683
|
+
color: var(--button-color-destructive-foreground-hover);
|
|
13684
|
+
box-shadow: var(--button-color-destructive-shadow-hover);
|
|
13685
|
+
}
|
|
13686
|
+
|
|
13687
|
+
.muka-button--destructive:active:not(:disabled),
|
|
13688
|
+
.muka-button--destructive.muka-button--pressed:not(:disabled),
|
|
13689
|
+
.muka-button--destructive[data-state="open"]:not(:disabled),
|
|
13690
|
+
.muka-button--destructive[aria-pressed="true"]:not(:disabled) {
|
|
13691
|
+
background-color: var(--button-color-destructive-background-pressed);
|
|
13692
|
+
color: var(--button-color-destructive-foreground-pressed);
|
|
13693
|
+
box-shadow: var(--button-color-destructive-shadow-pressed);
|
|
13694
|
+
}
|
|
13695
|
+
|
|
13696
|
+
.muka-button--destructive:disabled {
|
|
13697
|
+
background-color: var(--button-color-destructive-background-disabled);
|
|
13698
|
+
color: var(--button-color-destructive-foreground-disabled);
|
|
13699
|
+
box-shadow: var(--button-color-destructive-shadow-disabled);
|
|
13700
|
+
cursor: not-allowed;
|
|
13701
|
+
opacity: 1;
|
|
13702
|
+
}
|
|
13703
|
+
|
|
13605
13704
|
/* Secondary variant - supporting actions, no border, only bottom inner shadow */
|
|
13606
13705
|
.muka-button--secondary {
|
|
13607
13706
|
background-color: var(--button-color-secondary-background-default);
|
|
@@ -14535,12 +14634,29 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14535
14634
|
vertical-align: middle;
|
|
14536
14635
|
background-color: var(--avatar-color-background-default);
|
|
14537
14636
|
color: var(--avatar-color-foreground-default);
|
|
14538
|
-
border: var(--avatar-border-width) solid var(--avatar-color-border-default);
|
|
14539
14637
|
font-family: var(--alias-font-brand-family);
|
|
14540
14638
|
font-weight: var(--alias-font-brand-weight-semibold);
|
|
14541
14639
|
}
|
|
14542
14640
|
|
|
14543
14641
|
/* Size variants */
|
|
14642
|
+
.muka-avatar--4xs {
|
|
14643
|
+
width: var(--avatar-size-4xs);
|
|
14644
|
+
height: var(--avatar-size-4xs);
|
|
14645
|
+
font-size: var(--avatar-font-size-3xs); /* only used by an AvatarGroup "+N" */
|
|
14646
|
+
}
|
|
14647
|
+
|
|
14648
|
+
.muka-avatar--3xs {
|
|
14649
|
+
width: var(--avatar-size-3xs);
|
|
14650
|
+
height: var(--avatar-size-3xs);
|
|
14651
|
+
font-size: var(--avatar-font-size-3xs);
|
|
14652
|
+
}
|
|
14653
|
+
|
|
14654
|
+
.muka-avatar--2xs {
|
|
14655
|
+
width: var(--avatar-size-2xs);
|
|
14656
|
+
height: var(--avatar-size-2xs);
|
|
14657
|
+
font-size: var(--avatar-font-size-2xs);
|
|
14658
|
+
}
|
|
14659
|
+
|
|
14544
14660
|
.muka-avatar--xs {
|
|
14545
14661
|
width: var(--avatar-size-xs);
|
|
14546
14662
|
height: var(--avatar-size-xs);
|
|
@@ -14580,6 +14696,20 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14580
14696
|
border-radius: var(--avatar-radius-square);
|
|
14581
14697
|
}
|
|
14582
14698
|
|
|
14699
|
+
.muka-avatar--square.muka-avatar--4xs,
|
|
14700
|
+
.muka-avatar--square.muka-avatar--3xs,
|
|
14701
|
+
.muka-avatar--square.muka-avatar--2xs {
|
|
14702
|
+
border-radius: var(--avatar-radius-square-sm);
|
|
14703
|
+
}
|
|
14704
|
+
|
|
14705
|
+
/* 4xs is too small for initials, the fallback icon or a status dot:
|
|
14706
|
+
it shows the picture, or the plain background */
|
|
14707
|
+
.muka-avatar--4xs .muka-avatar__initials,
|
|
14708
|
+
.muka-avatar--4xs .muka-avatar__fallback,
|
|
14709
|
+
.muka-avatar--4xs .muka-avatar__status {
|
|
14710
|
+
display: none;
|
|
14711
|
+
}
|
|
14712
|
+
|
|
14583
14713
|
/* Clickable state */
|
|
14584
14714
|
.muka-avatar--clickable {
|
|
14585
14715
|
cursor: pointer;
|
|
@@ -14683,6 +14813,16 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14683
14813
|
box-sizing: border-box;
|
|
14684
14814
|
}
|
|
14685
14815
|
|
|
14816
|
+
.muka-avatar--3xs .muka-avatar__status {
|
|
14817
|
+
width: var(--avatar-status-size-3xs);
|
|
14818
|
+
height: var(--avatar-status-size-3xs);
|
|
14819
|
+
}
|
|
14820
|
+
|
|
14821
|
+
.muka-avatar--2xs .muka-avatar__status {
|
|
14822
|
+
width: var(--avatar-status-size-2xs);
|
|
14823
|
+
height: var(--avatar-status-size-2xs);
|
|
14824
|
+
}
|
|
14825
|
+
|
|
14686
14826
|
.muka-avatar--xs .muka-avatar__status {
|
|
14687
14827
|
width: var(--avatar-status-size-xs);
|
|
14688
14828
|
height: var(--avatar-status-size-xs);
|
|
@@ -14736,44 +14876,17 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14736
14876
|
background-color: var(--avatar-color-status-away);
|
|
14737
14877
|
}
|
|
14738
14878
|
|
|
14739
|
-
/* Avatar Group */
|
|
14879
|
+
/* Avatar Group (Figma "Avatar Stack") */
|
|
14740
14880
|
.muka-avatar-group {
|
|
14741
14881
|
display: inline-flex;
|
|
14742
14882
|
align-items: center;
|
|
14743
14883
|
flex-direction: row;
|
|
14744
14884
|
}
|
|
14745
14885
|
|
|
14886
|
+
/* Later avatars sit on top of earlier ones (DOM order); a hovered one comes to the front */
|
|
14746
14887
|
.muka-avatar-group__item {
|
|
14747
14888
|
position: relative;
|
|
14748
14889
|
display: inline-flex;
|
|
14749
|
-
border: 2px solid var(--color-surface-level1);
|
|
14750
|
-
border-radius: inherit;
|
|
14751
|
-
}
|
|
14752
|
-
|
|
14753
|
-
/* Add border radius to match avatar shape */
|
|
14754
|
-
.muka-avatar-group__item .muka-avatar--circle {
|
|
14755
|
-
border-radius: var(--avatar-radius-circle);
|
|
14756
|
-
}
|
|
14757
|
-
|
|
14758
|
-
.muka-avatar-group__item .muka-avatar--square {
|
|
14759
|
-
border-radius: var(--avatar-radius-square);
|
|
14760
|
-
}
|
|
14761
|
-
|
|
14762
|
-
.muka-avatar-group__item .muka-avatar {
|
|
14763
|
-
border: none;
|
|
14764
|
-
}
|
|
14765
|
-
|
|
14766
|
-
/* Spacing variants for avatar group */
|
|
14767
|
-
.muka-avatar-group--tight .muka-avatar-group__item:not(:first-child) {
|
|
14768
|
-
margin-left: calc(var(--avatar-group-spacing-tight));
|
|
14769
|
-
}
|
|
14770
|
-
|
|
14771
|
-
.muka-avatar-group--normal .muka-avatar-group__item:not(:first-child) {
|
|
14772
|
-
margin-left: calc(var(--avatar-group-spacing-normal));
|
|
14773
|
-
}
|
|
14774
|
-
|
|
14775
|
-
/* Z-index stacking for overlap effect */
|
|
14776
|
-
.muka-avatar-group__item {
|
|
14777
14890
|
z-index: 0;
|
|
14778
14891
|
}
|
|
14779
14892
|
|
|
@@ -14781,6 +14894,41 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14781
14894
|
z-index: 10;
|
|
14782
14895
|
}
|
|
14783
14896
|
|
|
14897
|
+
/* Grouped avatars get a ring outside their edge, drawn as a shadow so it
|
|
14898
|
+
does not change the avatar's size or the overlap */
|
|
14899
|
+
.muka-avatar-group__item .muka-avatar {
|
|
14900
|
+
box-shadow: 0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
|
|
14901
|
+
}
|
|
14902
|
+
|
|
14903
|
+
/* Overlap. Figma specifies exact values for 48 / 32 / 24px avatars (sm / 2xs / 3xs);
|
|
14904
|
+
other sizes use the same proportions: tight 2/3, compact 1/2, spacious 1/3. */
|
|
14905
|
+
.muka-avatar-group--4xs { --muka-avatar-group-size: var(--avatar-size-4xs); }
|
|
14906
|
+
.muka-avatar-group--3xs { --muka-avatar-group-size: var(--avatar-size-3xs); }
|
|
14907
|
+
.muka-avatar-group--2xs { --muka-avatar-group-size: var(--avatar-size-2xs); }
|
|
14908
|
+
.muka-avatar-group--xs { --muka-avatar-group-size: var(--avatar-size-xs); }
|
|
14909
|
+
.muka-avatar-group--sm { --muka-avatar-group-size: var(--avatar-size-sm); }
|
|
14910
|
+
.muka-avatar-group--md { --muka-avatar-group-size: var(--avatar-size-md); }
|
|
14911
|
+
.muka-avatar-group--lg { --muka-avatar-group-size: var(--avatar-size-lg); }
|
|
14912
|
+
.muka-avatar-group--xl { --muka-avatar-group-size: var(--avatar-size-xl); }
|
|
14913
|
+
|
|
14914
|
+
.muka-avatar-group--tight { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) * 2 / 3); }
|
|
14915
|
+
.muka-avatar-group--compact { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 2); }
|
|
14916
|
+
.muka-avatar-group--spacious { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 3); }
|
|
14917
|
+
|
|
14918
|
+
.muka-avatar-group--tight.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-sm); }
|
|
14919
|
+
.muka-avatar-group--tight.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-2xs); }
|
|
14920
|
+
.muka-avatar-group--tight.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-3xs); }
|
|
14921
|
+
.muka-avatar-group--compact.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-sm); }
|
|
14922
|
+
.muka-avatar-group--compact.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-2xs); }
|
|
14923
|
+
.muka-avatar-group--compact.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-3xs); }
|
|
14924
|
+
.muka-avatar-group--spacious.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-sm); }
|
|
14925
|
+
.muka-avatar-group--spacious.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-2xs); }
|
|
14926
|
+
.muka-avatar-group--spacious.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-3xs); }
|
|
14927
|
+
|
|
14928
|
+
.muka-avatar-group__item:not(:first-child) {
|
|
14929
|
+
margin-left: calc(-1 * var(--muka-avatar-group-overlap));
|
|
14930
|
+
}
|
|
14931
|
+
|
|
14784
14932
|
/* Overflow avatar styling */
|
|
14785
14933
|
.muka-avatar--overflow {
|
|
14786
14934
|
background-color: var(--avatar-color-background-default);
|