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