@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
|
@@ -377,6 +377,8 @@ body {
|
|
|
377
377
|
--color-red-10: #dc3d43;
|
|
378
378
|
--color-red-11: #cd2b31;
|
|
379
379
|
--color-red-12: #381316;
|
|
380
|
+
--color-redStrong-1: #bd1524;
|
|
381
|
+
--color-redStrong-2: #ab001a;
|
|
380
382
|
--color-ruby-1: #fffcfd;
|
|
381
383
|
--color-ruby-2: #fff7f8;
|
|
382
384
|
--color-ruby-3: #ffeef1;
|
|
@@ -1175,6 +1177,9 @@ body {
|
|
|
1175
1177
|
--color-state-error-default: #e54d4e;
|
|
1176
1178
|
--color-state-error-contrast: #fea6a6;
|
|
1177
1179
|
--color-state-error-background: #3d181e;
|
|
1180
|
+
--color-state-error-solid-default: #e54d4e;
|
|
1181
|
+
--color-state-error-solid-hover: #f56565;
|
|
1182
|
+
--color-state-error-solid-pressed: #f56565;
|
|
1178
1183
|
--color-state-info-default: #0090ff;
|
|
1179
1184
|
--color-state-info-contrast: #70b8ff;
|
|
1180
1185
|
--color-state-info-background: #0d2847;
|
|
@@ -1275,6 +1280,9 @@ body {
|
|
|
1275
1280
|
--alias-color-state-error-contrast: #fea6a6;
|
|
1276
1281
|
--alias-color-state-error-default: #e54d4e;
|
|
1277
1282
|
--alias-color-state-error-muted: #3d181e;
|
|
1283
|
+
--alias-color-state-error-solid-default: #e54d4e;
|
|
1284
|
+
--alias-color-state-error-solid-hover: #f56565;
|
|
1285
|
+
--alias-color-state-error-solid-pressed: #f56565;
|
|
1278
1286
|
--alias-color-state-error-surface-level0: #2c1419;
|
|
1279
1287
|
--alias-color-state-error-surface-level1: #3d181e;
|
|
1280
1288
|
--alias-color-state-error-surface-level2: #4a1a22;
|
|
@@ -1571,6 +1579,18 @@ body {
|
|
|
1571
1579
|
--button-color-primary-shadow-hover: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1572
1580
|
--button-color-primary-shadow-pressed: none;
|
|
1573
1581
|
--button-color-primary-shadow-disabled: none;
|
|
1582
|
+
--button-color-destructive-background-default: #e54d4e;
|
|
1583
|
+
--button-color-destructive-background-hover: #f56565;
|
|
1584
|
+
--button-color-destructive-background-pressed: #f56565;
|
|
1585
|
+
--button-color-destructive-background-disabled: #313131;
|
|
1586
|
+
--button-color-destructive-foreground-default: #111111;
|
|
1587
|
+
--button-color-destructive-foreground-hover: #111111;
|
|
1588
|
+
--button-color-destructive-foreground-pressed: #111111;
|
|
1589
|
+
--button-color-destructive-foreground-disabled: #606060;
|
|
1590
|
+
--button-color-destructive-shadow-default: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1591
|
+
--button-color-destructive-shadow-hover: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.090);
|
|
1592
|
+
--button-color-destructive-shadow-pressed: none;
|
|
1593
|
+
--button-color-destructive-shadow-disabled: none;
|
|
1574
1594
|
--button-color-secondary-background-default: #2a2a2a;
|
|
1575
1595
|
--button-color-secondary-background-hover: #2a2a2a;
|
|
1576
1596
|
--button-color-secondary-background-pressed: #313131;
|
|
@@ -1935,7 +1955,7 @@ body {
|
|
|
1935
1955
|
--contextmenu-trigger-outline-color: #b4b4b4;
|
|
1936
1956
|
--contextmenu-trigger-outline-offset: 0.25rem;
|
|
1937
1957
|
--tabs-trigger-color-default-background: #2a2a2a;
|
|
1938
|
-
--tabs-trigger-color-default-foreground: #
|
|
1958
|
+
--tabs-trigger-color-default-foreground: #7b7b7b;
|
|
1939
1959
|
--tabs-trigger-color-default-border: #606060;
|
|
1940
1960
|
--tabs-trigger-color-hover-background: #2a2a2a;
|
|
1941
1961
|
--tabs-trigger-color-hover-foreground: #eeeeee;
|
|
@@ -1950,8 +1970,16 @@ body {
|
|
|
1950
1970
|
--tabs-trigger-padding-y: 0.5rem;
|
|
1951
1971
|
--tabs-trigger-height: 3rem;
|
|
1952
1972
|
--tabs-trigger-radius: 0px;
|
|
1973
|
+
--tabs-trigger-min-height-sm: 2.5rem;
|
|
1974
|
+
--tabs-trigger-min-height-md: 3.5rem;
|
|
1975
|
+
--tabs-trigger-min-height-lg: 5rem;
|
|
1953
1976
|
--tabs-panel-background: #111111;
|
|
1954
1977
|
--tabs-panel-border: #606060;
|
|
1978
|
+
--tabs-indicator-color: #b4b4b4;
|
|
1979
|
+
--tabs-indicator-height-sm: 2px;
|
|
1980
|
+
--tabs-indicator-height-md: 3px;
|
|
1981
|
+
--tabs-indicator-height-lg: 4px;
|
|
1982
|
+
--tabs-list-padding-x: 1rem;
|
|
1955
1983
|
--separator-color-default: #313131;
|
|
1956
1984
|
--separator-color-contrast: #606060;
|
|
1957
1985
|
--separator-width: 0.0625rem;
|
|
@@ -1984,6 +2012,9 @@ body {
|
|
|
1984
2012
|
--progress-size-circle-strokeWidth-sm: 0.25rem;
|
|
1985
2013
|
--progress-size-circle-strokeWidth-md: 0.5rem;
|
|
1986
2014
|
--progress-size-circle-strokeWidth-lg: 0.75rem;
|
|
2015
|
+
--avatar-size-4xs: 1rem;
|
|
2016
|
+
--avatar-size-3xs: 1.5rem;
|
|
2017
|
+
--avatar-size-2xs: 2rem;
|
|
1987
2018
|
--avatar-size-xs: 2.5rem;
|
|
1988
2019
|
--avatar-size-sm: 3rem;
|
|
1989
2020
|
--avatar-size-md: 4rem;
|
|
@@ -1993,26 +2024,38 @@ body {
|
|
|
1993
2024
|
--avatar-color-background-loading: #313131;
|
|
1994
2025
|
--avatar-color-foreground-default: #eeeeee;
|
|
1995
2026
|
--avatar-color-foreground-muted: #606060;
|
|
1996
|
-
--avatar-color-border-default: #313131;
|
|
1997
2027
|
--avatar-color-status-online: #30a46c;
|
|
1998
2028
|
--avatar-color-status-offline: #606060;
|
|
1999
2029
|
--avatar-color-status-busy: #e54d4e;
|
|
2000
2030
|
--avatar-color-status-away: #ffc53d;
|
|
2001
2031
|
--avatar-radius-circle: 999rem;
|
|
2002
2032
|
--avatar-radius-square: 0px;
|
|
2033
|
+
--avatar-radius-square-sm: 0px;
|
|
2034
|
+
--avatar-font-size-3xs: 0.75rem;
|
|
2035
|
+
--avatar-font-size-2xs: 0.75rem;
|
|
2003
2036
|
--avatar-font-size-xs: 0.75rem;
|
|
2004
2037
|
--avatar-font-size-sm: 0.875rem;
|
|
2005
2038
|
--avatar-font-size-md: 1.125rem;
|
|
2006
2039
|
--avatar-font-size-lg: 1.25rem;
|
|
2007
2040
|
--avatar-font-size-xl: 1.5rem;
|
|
2041
|
+
--avatar-status-size-3xs: 0.5rem;
|
|
2042
|
+
--avatar-status-size-2xs: 0.5rem;
|
|
2008
2043
|
--avatar-status-size-xs: 0.5rem;
|
|
2009
2044
|
--avatar-status-size-sm: 0.75rem;
|
|
2010
2045
|
--avatar-status-size-md: 1rem;
|
|
2011
2046
|
--avatar-status-size-lg: 1.25rem;
|
|
2012
2047
|
--avatar-status-size-xl: 1.5rem;
|
|
2013
|
-
--avatar-
|
|
2014
|
-
--avatar-group-
|
|
2015
|
-
--avatar-group-
|
|
2048
|
+
--avatar-group-ring-width: 0.125rem;
|
|
2049
|
+
--avatar-group-ring-color: #111111;
|
|
2050
|
+
--avatar-group-overlap-tight-sm: 2rem;
|
|
2051
|
+
--avatar-group-overlap-tight-2xs: 1.25rem;
|
|
2052
|
+
--avatar-group-overlap-tight-3xs: 1rem;
|
|
2053
|
+
--avatar-group-overlap-compact-sm: 1.5rem;
|
|
2054
|
+
--avatar-group-overlap-compact-2xs: 1rem;
|
|
2055
|
+
--avatar-group-overlap-compact-3xs: 0.75rem;
|
|
2056
|
+
--avatar-group-overlap-spacious-sm: 1rem;
|
|
2057
|
+
--avatar-group-overlap-spacious-2xs: 0.75rem;
|
|
2058
|
+
--avatar-group-overlap-spacious-3xs: 0.5rem;
|
|
2016
2059
|
--toast-color-info-background: #eeeeee;
|
|
2017
2060
|
--toast-color-info-foreground: #111111;
|
|
2018
2061
|
--toast-color-info-accent: #0d2847;
|
|
@@ -2418,116 +2461,6 @@ body {
|
|
|
2418
2461
|
}
|
|
2419
2462
|
|
|
2420
2463
|
|
|
2421
|
-
/* View */
|
|
2422
|
-
/* View Component Styles */
|
|
2423
|
-
|
|
2424
|
-
/* ─── Base layout ─────────────────────────────────────── */
|
|
2425
|
-
|
|
2426
|
-
.muka-view {
|
|
2427
|
-
display: flex;
|
|
2428
|
-
flex-direction: column;
|
|
2429
|
-
height: 100dvh;
|
|
2430
|
-
background-color: var(--view-color-background);
|
|
2431
|
-
position: relative;
|
|
2432
|
-
isolation: isolate;
|
|
2433
|
-
box-sizing: border-box;
|
|
2434
|
-
|
|
2435
|
-
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2436
|
-
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2437
|
-
--view-sidebar-width: 240px;
|
|
2438
|
-
}
|
|
2439
|
-
|
|
2440
|
-
/* ─── Surface level variants ─────────────────────────── */
|
|
2441
|
-
|
|
2442
|
-
.muka-view--surface-3 {
|
|
2443
|
-
background-color: var(--color-surface-level3);
|
|
2444
|
-
}
|
|
2445
|
-
|
|
2446
|
-
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2447
|
-
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2448
|
-
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2449
|
-
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2450
|
-
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2451
|
-
for a sidebar that hasn't rendered yet. */
|
|
2452
|
-
@media (min-width: 1024px) {
|
|
2453
|
-
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2454
|
-
padding-left: var(--view-sidebar-width);
|
|
2455
|
-
}
|
|
2456
|
-
}
|
|
2457
|
-
|
|
2458
|
-
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2459
|
-
|
|
2460
|
-
.muka-view .muka-topbar {
|
|
2461
|
-
flex-shrink: 0;
|
|
2462
|
-
z-index: 3;
|
|
2463
|
-
box-shadow: var(--shadow-level2);
|
|
2464
|
-
}
|
|
2465
|
-
|
|
2466
|
-
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2467
|
-
|
|
2468
|
-
.muka-view__body {
|
|
2469
|
-
flex: 1 1 0%;
|
|
2470
|
-
min-height: 0;
|
|
2471
|
-
overflow-y: auto;
|
|
2472
|
-
overflow-x: clip;
|
|
2473
|
-
z-index: 1;
|
|
2474
|
-
|
|
2475
|
-
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2476
|
-
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2477
|
-
reveal the content underneath. */
|
|
2478
|
-
display: flex;
|
|
2479
|
-
flex-direction: column;
|
|
2480
|
-
}
|
|
2481
|
-
|
|
2482
|
-
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2483
|
-
using the alias-layer section/container tokens, while the body scrolls full
|
|
2484
|
-
width. Full-bleed below large. */
|
|
2485
|
-
.muka-view__body-inner {
|
|
2486
|
-
width: 100%;
|
|
2487
|
-
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2488
|
-
than floating mid-screen. */
|
|
2489
|
-
flex: 1 0 auto;
|
|
2490
|
-
}
|
|
2491
|
-
|
|
2492
|
-
@media (min-width: 1024px) {
|
|
2493
|
-
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2494
|
-
max-width: var(--container-max-width-xl);
|
|
2495
|
-
margin-inline: auto;
|
|
2496
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2497
|
-
}
|
|
2498
|
-
}
|
|
2499
|
-
|
|
2500
|
-
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2501
|
-
max-width: var(--container-max-width-xl);
|
|
2502
|
-
margin-inline: auto;
|
|
2503
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2504
|
-
}
|
|
2505
|
-
|
|
2506
|
-
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2507
|
-
|
|
2508
|
-
.muka-view__footer {
|
|
2509
|
-
position: sticky;
|
|
2510
|
-
bottom: 0;
|
|
2511
|
-
flex-shrink: 0;
|
|
2512
|
-
z-index: 2;
|
|
2513
|
-
}
|
|
2514
|
-
|
|
2515
|
-
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2516
|
-
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2517
|
-
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2518
|
-
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2519
|
-
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2520
|
-
@media (min-width: 1024px) {
|
|
2521
|
-
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2522
|
-
display: none;
|
|
2523
|
-
}
|
|
2524
|
-
}
|
|
2525
|
-
|
|
2526
|
-
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2527
|
-
display: none;
|
|
2528
|
-
}
|
|
2529
|
-
|
|
2530
|
-
|
|
2531
2464
|
/* Typography */
|
|
2532
2465
|
.muka-typography-catalog {
|
|
2533
2466
|
display: flex;
|
|
@@ -2878,166 +2811,113 @@ body {
|
|
|
2878
2811
|
}
|
|
2879
2812
|
|
|
2880
2813
|
|
|
2881
|
-
/*
|
|
2882
|
-
/*
|
|
2814
|
+
/* View */
|
|
2815
|
+
/* View Component Styles */
|
|
2883
2816
|
|
|
2884
|
-
/*
|
|
2885
|
-
|
|
2817
|
+
/* ─── Base layout ─────────────────────────────────────── */
|
|
2818
|
+
|
|
2819
|
+
.muka-view {
|
|
2886
2820
|
display: flex;
|
|
2887
|
-
|
|
2888
|
-
|
|
2821
|
+
flex-direction: column;
|
|
2822
|
+
height: 100dvh;
|
|
2823
|
+
background-color: var(--view-color-background);
|
|
2889
2824
|
position: relative;
|
|
2890
|
-
|
|
2825
|
+
isolation: isolate;
|
|
2826
|
+
box-sizing: border-box;
|
|
2827
|
+
|
|
2828
|
+
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2829
|
+
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2830
|
+
--view-sidebar-width: 240px;
|
|
2891
2831
|
}
|
|
2892
2832
|
|
|
2893
|
-
|
|
2894
|
-
|
|
2833
|
+
/* ─── Surface level variants ─────────────────────────── */
|
|
2834
|
+
|
|
2835
|
+
.muka-view--surface-3 {
|
|
2836
|
+
background-color: var(--color-surface-level3);
|
|
2895
2837
|
}
|
|
2896
2838
|
|
|
2897
|
-
|
|
2898
|
-
|
|
2839
|
+
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2840
|
+
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2841
|
+
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2842
|
+
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2843
|
+
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2844
|
+
for a sidebar that hasn't rendered yet. */
|
|
2845
|
+
@media (min-width: 1024px) {
|
|
2846
|
+
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2847
|
+
padding-left: var(--view-sidebar-width);
|
|
2848
|
+
}
|
|
2899
2849
|
}
|
|
2900
2850
|
|
|
2901
|
-
/*
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
align-items: center;
|
|
2905
|
-
justify-content: center;
|
|
2851
|
+
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2852
|
+
|
|
2853
|
+
.muka-view .muka-topbar {
|
|
2906
2854
|
flex-shrink: 0;
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
color: var(--color-text-default-default);
|
|
2855
|
+
z-index: 3;
|
|
2856
|
+
box-shadow: var(--shadow-level2);
|
|
2910
2857
|
}
|
|
2911
2858
|
|
|
2912
|
-
|
|
2913
|
-
width: 100%;
|
|
2914
|
-
height: 100%;
|
|
2915
|
-
}
|
|
2859
|
+
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2916
2860
|
|
|
2917
|
-
|
|
2918
|
-
|
|
2861
|
+
.muka-view__body {
|
|
2862
|
+
flex: 1 1 0%;
|
|
2863
|
+
min-height: 0;
|
|
2864
|
+
overflow-y: auto;
|
|
2865
|
+
overflow-x: clip;
|
|
2866
|
+
z-index: 1;
|
|
2867
|
+
|
|
2868
|
+
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2869
|
+
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2870
|
+
reveal the content underneath. */
|
|
2919
2871
|
display: flex;
|
|
2920
2872
|
flex-direction: column;
|
|
2921
|
-
flex: 1;
|
|
2922
|
-
min-width: 0;
|
|
2923
|
-
gap: var(--spacing-1);
|
|
2924
2873
|
}
|
|
2925
2874
|
|
|
2926
|
-
/*
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2875
|
+
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2876
|
+
using the alias-layer section/container tokens, while the body scrolls full
|
|
2877
|
+
width. Full-bleed below large. */
|
|
2878
|
+
.muka-view__body-inner {
|
|
2879
|
+
width: 100%;
|
|
2880
|
+
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2881
|
+
than floating mid-screen. */
|
|
2882
|
+
flex: 1 0 auto;
|
|
2934
2883
|
}
|
|
2935
2884
|
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2885
|
+
@media (min-width: 1024px) {
|
|
2886
|
+
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2887
|
+
max-width: var(--container-max-width-xl);
|
|
2888
|
+
margin-inline: auto;
|
|
2889
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2890
|
+
}
|
|
2941
2891
|
}
|
|
2942
2892
|
|
|
2943
|
-
.muka-
|
|
2944
|
-
|
|
2945
|
-
|
|
2893
|
+
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2894
|
+
max-width: var(--container-max-width-xl);
|
|
2895
|
+
margin-inline: auto;
|
|
2896
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2946
2897
|
}
|
|
2947
2898
|
|
|
2948
|
-
/*
|
|
2949
|
-
.muka-toggle__caption {
|
|
2950
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
2951
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
2952
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
2953
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
2954
|
-
color: var(--color-text-subtle-default);
|
|
2955
|
-
}
|
|
2899
|
+
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2956
2900
|
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
display: inline-flex;
|
|
2901
|
+
.muka-view__footer {
|
|
2902
|
+
position: sticky;
|
|
2903
|
+
bottom: 0;
|
|
2961
2904
|
flex-shrink: 0;
|
|
2962
|
-
|
|
2905
|
+
z-index: 2;
|
|
2963
2906
|
}
|
|
2964
2907
|
|
|
2965
|
-
|
|
2966
|
-
|
|
2908
|
+
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2909
|
+
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2910
|
+
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2911
|
+
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2912
|
+
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2913
|
+
@media (min-width: 1024px) {
|
|
2914
|
+
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2915
|
+
display: none;
|
|
2916
|
+
}
|
|
2967
2917
|
}
|
|
2968
2918
|
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
position: absolute;
|
|
2972
|
-
width: 1px;
|
|
2973
|
-
height: 1px;
|
|
2974
|
-
padding: 0;
|
|
2975
|
-
margin: -1px;
|
|
2976
|
-
overflow: hidden;
|
|
2977
|
-
clip: rect(0, 0, 0, 0);
|
|
2978
|
-
white-space: nowrap;
|
|
2979
|
-
border: 0;
|
|
2980
|
-
}
|
|
2981
|
-
|
|
2982
|
-
/* Track (background pill) */
|
|
2983
|
-
.muka-toggle__track {
|
|
2984
|
-
display: flex;
|
|
2985
|
-
align-items: center;
|
|
2986
|
-
width: var(--toggle-track-width);
|
|
2987
|
-
height: var(--toggle-track-height);
|
|
2988
|
-
border-radius: var(--toggle-track-radius);
|
|
2989
|
-
background-color: var(--toggle-track-color-off);
|
|
2990
|
-
transition: background-color 0.2s ease;
|
|
2991
|
-
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
2992
|
-
position: relative;
|
|
2993
|
-
}
|
|
2994
|
-
|
|
2995
|
-
/* Knob (sliding circle) */
|
|
2996
|
-
.muka-toggle__knob {
|
|
2997
|
-
position: absolute;
|
|
2998
|
-
width: var(--toggle-knob-size);
|
|
2999
|
-
height: var(--toggle-knob-size);
|
|
3000
|
-
border-radius: var(--border-radius-full);
|
|
3001
|
-
background-color: var(--toggle-knob-color-default);
|
|
3002
|
-
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3003
|
-
left: var(--toggle-knob-offset);
|
|
3004
|
-
transition: left 0.2s ease, transform 0.2s ease;
|
|
3005
|
-
}
|
|
3006
|
-
|
|
3007
|
-
/* Focus state */
|
|
3008
|
-
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3009
|
-
outline: 2px solid var(--color-border-focus);
|
|
3010
|
-
outline-offset: 2px;
|
|
3011
|
-
}
|
|
3012
|
-
|
|
3013
|
-
/* Checked (on) state */
|
|
3014
|
-
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3015
|
-
background-color: var(--toggle-track-color-on);
|
|
3016
|
-
}
|
|
3017
|
-
|
|
3018
|
-
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3019
|
-
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3020
|
-
}
|
|
3021
|
-
|
|
3022
|
-
/* Disabled state */
|
|
3023
|
-
.muka-toggle--disabled .muka-toggle__track {
|
|
3024
|
-
background-color: var(--toggle-track-color-disabled);
|
|
3025
|
-
box-shadow: none;
|
|
3026
|
-
}
|
|
3027
|
-
|
|
3028
|
-
.muka-toggle--disabled .muka-toggle__knob {
|
|
3029
|
-
background-color: var(--toggle-knob-color-disabled);
|
|
3030
|
-
box-shadow: none;
|
|
3031
|
-
}
|
|
3032
|
-
|
|
3033
|
-
/* Divider */
|
|
3034
|
-
.muka-toggle__divider {
|
|
3035
|
-
position: absolute;
|
|
3036
|
-
bottom: 0;
|
|
3037
|
-
left: 0;
|
|
3038
|
-
right: 0;
|
|
3039
|
-
height: 1px;
|
|
3040
|
-
background-color: var(--color-border-muted);
|
|
2919
|
+
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2920
|
+
display: none;
|
|
3041
2921
|
}
|
|
3042
2922
|
|
|
3043
2923
|
|
|
@@ -3766,249 +3646,166 @@ body {
|
|
|
3766
3646
|
}
|
|
3767
3647
|
|
|
3768
3648
|
|
|
3769
|
-
/*
|
|
3770
|
-
/*
|
|
3771
|
-
|
|
3772
|
-
.muka-text-link {
|
|
3773
|
-
display: inline;
|
|
3774
|
-
cursor: pointer;
|
|
3775
|
-
text-decoration: underline;
|
|
3776
|
-
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
3777
|
-
text-underline-offset: 0.2em;
|
|
3778
|
-
text-decoration-thickness: from-font;
|
|
3779
|
-
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
3780
|
-
border-radius: var(--border-radius-sm);
|
|
3781
|
-
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
3782
|
-
}
|
|
3783
|
-
|
|
3784
|
-
/* ─── Sizes ───────────────────────────────────────────────
|
|
3785
|
-
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
3786
|
-
.muka-text-link--sm {
|
|
3787
|
-
font-family: var(--text-body-sm-regular-fontFamily);
|
|
3788
|
-
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
3789
|
-
font-size: var(--text-body-sm-regular-fontSize);
|
|
3790
|
-
line-height: var(--text-body-sm-regular-lineHeight);
|
|
3791
|
-
}
|
|
3792
|
-
|
|
3793
|
-
.muka-text-link--base {
|
|
3794
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
3795
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3796
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
3797
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
3798
|
-
}
|
|
3799
|
-
|
|
3800
|
-
.muka-text-link--lg {
|
|
3801
|
-
font-family: var(--text-body-lg-regular-fontFamily);
|
|
3802
|
-
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
3803
|
-
font-size: var(--text-body-lg-regular-fontSize);
|
|
3804
|
-
line-height: var(--text-body-lg-regular-lineHeight);
|
|
3805
|
-
}
|
|
3806
|
-
|
|
3807
|
-
/* ─── Variant: default (accent) ───────────────────────────
|
|
3808
|
-
Visited repeats the default colour on purpose: the design treats visited and
|
|
3809
|
-
default the same, and pinning it stops the browser's purple from showing. */
|
|
3810
|
-
.muka-text-link--default,
|
|
3811
|
-
.muka-text-link--default:visited {
|
|
3812
|
-
color: var(--color-text-action-default);
|
|
3813
|
-
}
|
|
3649
|
+
/* Toggle */
|
|
3650
|
+
/* Toggle Component Styles - Using Muka Design Tokens */
|
|
3814
3651
|
|
|
3815
|
-
|
|
3816
|
-
.muka-
|
|
3817
|
-
|
|
3652
|
+
/* Wrapper container */
|
|
3653
|
+
.muka-toggle {
|
|
3654
|
+
display: flex;
|
|
3655
|
+
align-items: center;
|
|
3656
|
+
gap: var(--spacing-2);
|
|
3657
|
+
position: relative;
|
|
3658
|
+
padding: var(--spacing-4) 0;
|
|
3818
3659
|
}
|
|
3819
3660
|
|
|
3820
|
-
.muka-
|
|
3821
|
-
|
|
3661
|
+
.muka-toggle--with-caption {
|
|
3662
|
+
padding: var(--spacing-5) 0;
|
|
3822
3663
|
}
|
|
3823
3664
|
|
|
3824
|
-
|
|
3825
|
-
|
|
3826
|
-
.muka-text-link--subtle,
|
|
3827
|
-
.muka-text-link--subtle:visited {
|
|
3828
|
-
color: var(--color-text-subtle-default);
|
|
3665
|
+
.muka-toggle--disabled {
|
|
3666
|
+
opacity: 0.6;
|
|
3829
3667
|
}
|
|
3830
3668
|
|
|
3831
|
-
|
|
3832
|
-
.muka-
|
|
3833
|
-
|
|
3669
|
+
/* Icon */
|
|
3670
|
+
.muka-toggle__icon {
|
|
3671
|
+
display: flex;
|
|
3672
|
+
align-items: center;
|
|
3673
|
+
justify-content: center;
|
|
3674
|
+
flex-shrink: 0;
|
|
3675
|
+
width: var(--icon-size-default);
|
|
3676
|
+
height: var(--icon-size-default);
|
|
3834
3677
|
color: var(--color-text-default-default);
|
|
3835
3678
|
}
|
|
3836
3679
|
|
|
3837
|
-
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
outline: 2px solid var(--color-border-focus);
|
|
3841
|
-
outline-offset: 2px;
|
|
3842
|
-
}
|
|
3843
|
-
|
|
3844
|
-
@media (prefers-reduced-motion: reduce) {
|
|
3845
|
-
.muka-text-link {
|
|
3846
|
-
transition: none;
|
|
3847
|
-
}
|
|
3680
|
+
.muka-toggle__icon svg {
|
|
3681
|
+
width: 100%;
|
|
3682
|
+
height: 100%;
|
|
3848
3683
|
}
|
|
3849
3684
|
|
|
3850
|
-
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
.muka-textarea {
|
|
3855
|
-
display: inline-flex;
|
|
3685
|
+
/* Content area (label + caption) */
|
|
3686
|
+
.muka-toggle__content {
|
|
3687
|
+
display: flex;
|
|
3856
3688
|
flex-direction: column;
|
|
3857
|
-
|
|
3689
|
+
flex: 1;
|
|
3690
|
+
min-width: 0;
|
|
3691
|
+
gap: var(--spacing-1);
|
|
3858
3692
|
}
|
|
3859
3693
|
|
|
3860
3694
|
/* Label */
|
|
3861
|
-
.muka-
|
|
3695
|
+
.muka-toggle__label {
|
|
3696
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
3697
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
3698
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
3699
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
3862
3700
|
color: var(--color-text-default-default);
|
|
3863
3701
|
cursor: pointer;
|
|
3864
3702
|
}
|
|
3865
3703
|
|
|
3866
|
-
.muka-
|
|
3867
|
-
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
3868
|
-
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
3869
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
3870
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
3871
|
-
}
|
|
3872
|
-
|
|
3873
|
-
.muka-textarea__label--md {
|
|
3874
|
-
font-family: var(--text-label-md-semibold-fontFamily);
|
|
3875
|
-
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
3876
|
-
font-size: var(--text-label-md-semibold-fontSize);
|
|
3877
|
-
line-height: var(--text-label-md-semibold-lineHeight);
|
|
3878
|
-
}
|
|
3879
|
-
|
|
3880
|
-
.muka-textarea__label--lg {
|
|
3704
|
+
.muka-toggle--with-caption .muka-toggle__label {
|
|
3881
3705
|
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
3882
3706
|
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
3883
3707
|
font-size: var(--text-label-lg-semibold-fontSize);
|
|
3884
3708
|
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
3885
3709
|
}
|
|
3886
3710
|
|
|
3887
|
-
.muka-
|
|
3888
|
-
color: var(--color-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
/* Field container */
|
|
3892
|
-
.muka-textarea__field {
|
|
3893
|
-
display: flex;
|
|
3894
|
-
background-color: var(--input-field-color-default-background);
|
|
3895
|
-
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
3896
|
-
border-radius: var(--input-field-radius-md);
|
|
3897
|
-
padding: var(--input-field-padding-y) var(--input-field-padding-x);
|
|
3898
|
-
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
3899
|
-
box-sizing: border-box;
|
|
3900
|
-
}
|
|
3901
|
-
|
|
3902
|
-
.muka-textarea__field--sm {
|
|
3903
|
-
min-height: var(--input-textarea-height-sm);
|
|
3904
|
-
border-radius: var(--input-field-radius-sm);
|
|
3711
|
+
.muka-toggle--disabled .muka-toggle__label {
|
|
3712
|
+
color: var(--color-text-subtle-default);
|
|
3713
|
+
cursor: not-allowed;
|
|
3905
3714
|
}
|
|
3906
3715
|
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3716
|
+
/* Caption */
|
|
3717
|
+
.muka-toggle__caption {
|
|
3718
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
3719
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3720
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
3721
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
3722
|
+
color: var(--color-text-subtle-default);
|
|
3910
3723
|
}
|
|
3911
3724
|
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3725
|
+
/* Switch container */
|
|
3726
|
+
.muka-toggle__switch {
|
|
3727
|
+
position: relative;
|
|
3728
|
+
display: inline-flex;
|
|
3729
|
+
flex-shrink: 0;
|
|
3730
|
+
cursor: pointer;
|
|
3915
3731
|
}
|
|
3916
3732
|
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
border-width: var(--border-width-bold);
|
|
3920
|
-
border-color: var(--input-field-color-focus-border);
|
|
3921
|
-
background-color: var(--input-field-color-focus-background);
|
|
3922
|
-
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
3733
|
+
.muka-toggle--disabled .muka-toggle__switch {
|
|
3734
|
+
cursor: not-allowed;
|
|
3923
3735
|
}
|
|
3924
3736
|
|
|
3925
|
-
/*
|
|
3926
|
-
.muka-
|
|
3927
|
-
|
|
3928
|
-
|
|
3929
|
-
|
|
3930
|
-
padding:
|
|
3737
|
+
/* Hidden native input */
|
|
3738
|
+
.muka-toggle__input {
|
|
3739
|
+
position: absolute;
|
|
3740
|
+
width: 1px;
|
|
3741
|
+
height: 1px;
|
|
3742
|
+
padding: 0;
|
|
3743
|
+
margin: -1px;
|
|
3744
|
+
overflow: hidden;
|
|
3745
|
+
clip: rect(0, 0, 0, 0);
|
|
3746
|
+
white-space: nowrap;
|
|
3747
|
+
border: 0;
|
|
3931
3748
|
}
|
|
3932
3749
|
|
|
3933
|
-
/*
|
|
3934
|
-
.muka-
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
|
|
3938
|
-
|
|
3939
|
-
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
outline: none;
|
|
3945
|
-
background: transparent;
|
|
3946
|
-
color: var(--input-field-color-default-foreground);
|
|
3947
|
-
font-family: var(--text-input-md-fontFamily);
|
|
3948
|
-
font-weight: var(--text-input-md-fontWeight);
|
|
3949
|
-
font-size: var(--text-input-md-fontSize);
|
|
3950
|
-
line-height: var(--text-input-md-lineHeight);
|
|
3951
|
-
padding: 0;
|
|
3952
|
-
width: 100%;
|
|
3953
|
-
min-width: 0;
|
|
3954
|
-
}
|
|
3955
|
-
|
|
3956
|
-
.muka-textarea__field--sm .muka-textarea__native {
|
|
3957
|
-
font-family: var(--text-input-sm-fontFamily);
|
|
3958
|
-
font-weight: var(--text-input-sm-fontWeight);
|
|
3959
|
-
font-size: var(--text-input-sm-fontSize);
|
|
3960
|
-
line-height: var(--text-input-sm-lineHeight);
|
|
3750
|
+
/* Track (background pill) */
|
|
3751
|
+
.muka-toggle__track {
|
|
3752
|
+
display: flex;
|
|
3753
|
+
align-items: center;
|
|
3754
|
+
width: var(--toggle-track-width);
|
|
3755
|
+
height: var(--toggle-track-height);
|
|
3756
|
+
border-radius: var(--toggle-track-radius);
|
|
3757
|
+
background-color: var(--toggle-track-color-off);
|
|
3758
|
+
transition: background-color 0.2s ease;
|
|
3759
|
+
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3760
|
+
position: relative;
|
|
3961
3761
|
}
|
|
3962
3762
|
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3763
|
+
/* Knob (sliding circle) */
|
|
3764
|
+
.muka-toggle__knob {
|
|
3765
|
+
position: absolute;
|
|
3766
|
+
width: var(--toggle-knob-size);
|
|
3767
|
+
height: var(--toggle-knob-size);
|
|
3768
|
+
border-radius: var(--border-radius-full);
|
|
3769
|
+
background-color: var(--toggle-knob-color-default);
|
|
3770
|
+
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3771
|
+
left: var(--toggle-knob-offset);
|
|
3772
|
+
transition: left 0.2s ease, transform 0.2s ease;
|
|
3968
3773
|
}
|
|
3969
3774
|
|
|
3970
|
-
|
|
3971
|
-
|
|
3775
|
+
/* Focus state */
|
|
3776
|
+
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3777
|
+
outline: 2px solid var(--color-border-focus);
|
|
3778
|
+
outline-offset: 2px;
|
|
3972
3779
|
}
|
|
3973
3780
|
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3781
|
+
/* Checked (on) state */
|
|
3782
|
+
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3783
|
+
background-color: var(--toggle-track-color-on);
|
|
3977
3784
|
}
|
|
3978
3785
|
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
display: flex;
|
|
3982
|
-
justify-content: space-between;
|
|
3983
|
-
align-items: flex-start;
|
|
3984
|
-
gap: var(--spacing-2);
|
|
3786
|
+
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3787
|
+
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3985
3788
|
}
|
|
3986
3789
|
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3992
|
-
color: var(--color-text-subtle-default);
|
|
3993
|
-
margin: 0;
|
|
3790
|
+
/* Disabled state */
|
|
3791
|
+
.muka-toggle--disabled .muka-toggle__track {
|
|
3792
|
+
background-color: var(--toggle-track-color-disabled);
|
|
3793
|
+
box-shadow: none;
|
|
3994
3794
|
}
|
|
3995
3795
|
|
|
3996
|
-
.muka-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
4000
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4001
|
-
color: var(--color-state-error-default);
|
|
4002
|
-
margin: 0;
|
|
3796
|
+
.muka-toggle--disabled .muka-toggle__knob {
|
|
3797
|
+
background-color: var(--toggle-knob-color-disabled);
|
|
3798
|
+
box-shadow: none;
|
|
4003
3799
|
}
|
|
4004
3800
|
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
3801
|
+
/* Divider */
|
|
3802
|
+
.muka-toggle__divider {
|
|
3803
|
+
position: absolute;
|
|
3804
|
+
bottom: 0;
|
|
3805
|
+
left: 0;
|
|
3806
|
+
right: 0;
|
|
3807
|
+
height: 1px;
|
|
3808
|
+
background-color: var(--color-border-muted);
|
|
4012
3809
|
}
|
|
4013
3810
|
|
|
4014
3811
|
|
|
@@ -4043,12 +3840,17 @@ body {
|
|
|
4043
3840
|
border-bottom: 1px solid var(--tabs-trigger-color-default-border);
|
|
4044
3841
|
}
|
|
4045
3842
|
|
|
3843
|
+
/* Padding: inset the tabs; the divider (border) still spans the full width */
|
|
3844
|
+
.muka-tabs--padding-default .muka-tabs__list {
|
|
3845
|
+
padding-inline: var(--tabs-list-padding-x);
|
|
3846
|
+
}
|
|
3847
|
+
|
|
4046
3848
|
/* Tab Trigger — clean underline style */
|
|
4047
3849
|
.muka-tabs__trigger {
|
|
4048
3850
|
display: inline-flex;
|
|
4049
3851
|
align-items: center;
|
|
4050
3852
|
justify-content: center;
|
|
4051
|
-
gap: var(--spacing-
|
|
3853
|
+
gap: var(--spacing-1);
|
|
4052
3854
|
background: transparent;
|
|
4053
3855
|
border: none;
|
|
4054
3856
|
cursor: pointer;
|
|
@@ -4061,8 +3863,8 @@ body {
|
|
|
4061
3863
|
color: var(--tabs-trigger-color-default-foreground);
|
|
4062
3864
|
|
|
4063
3865
|
/* Default MD size values */
|
|
4064
|
-
height:
|
|
4065
|
-
padding:
|
|
3866
|
+
min-height: var(--tabs-trigger-min-height-md);
|
|
3867
|
+
padding: var(--spacing-3);
|
|
4066
3868
|
font-family: var(--text-label-md-regular-fontFamily);
|
|
4067
3869
|
font-weight: var(--text-label-md-regular-fontWeight);
|
|
4068
3870
|
font-size: var(--text-label-md-regular-fontSize);
|
|
@@ -4071,8 +3873,8 @@ body {
|
|
|
4071
3873
|
|
|
4072
3874
|
/* Size Variants */
|
|
4073
3875
|
.muka-tabs--size-sm .muka-tabs__trigger {
|
|
4074
|
-
height:
|
|
4075
|
-
padding: 0 var(--spacing-2
|
|
3876
|
+
min-height: var(--tabs-trigger-min-height-sm);
|
|
3877
|
+
padding: 0 var(--spacing-2);
|
|
4076
3878
|
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4077
3879
|
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4078
3880
|
font-size: var(--text-label-sm-regular-fontSize);
|
|
@@ -4080,8 +3882,8 @@ body {
|
|
|
4080
3882
|
}
|
|
4081
3883
|
|
|
4082
3884
|
.muka-tabs--size-lg .muka-tabs__trigger {
|
|
4083
|
-
height:
|
|
4084
|
-
padding:
|
|
3885
|
+
min-height: var(--tabs-trigger-min-height-lg);
|
|
3886
|
+
padding: var(--spacing-4);
|
|
4085
3887
|
font-family: var(--text-label-lg-regular-fontFamily);
|
|
4086
3888
|
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
4087
3889
|
font-size: var(--text-label-lg-regular-fontSize);
|
|
@@ -4105,8 +3907,8 @@ body {
|
|
|
4105
3907
|
bottom: -1px; /* Overlap the 1px border */
|
|
4106
3908
|
left: 0;
|
|
4107
3909
|
right: 0;
|
|
4108
|
-
height:
|
|
4109
|
-
background-color: var(--tabs-
|
|
3910
|
+
height: var(--tabs-indicator-height-md);
|
|
3911
|
+
background-color: var(--tabs-indicator-color);
|
|
4110
3912
|
border-bottom-left-radius: 1px;
|
|
4111
3913
|
border-bottom-right-radius: 1px;
|
|
4112
3914
|
border-top-left-radius: 3px;
|
|
@@ -4114,6 +3916,13 @@ body {
|
|
|
4114
3916
|
z-index: 3;
|
|
4115
3917
|
}
|
|
4116
3918
|
|
|
3919
|
+
.muka-tabs--size-sm .muka-tabs__trigger--current::after {
|
|
3920
|
+
height: var(--tabs-indicator-height-sm);
|
|
3921
|
+
}
|
|
3922
|
+
.muka-tabs--size-lg .muka-tabs__trigger--current::after {
|
|
3923
|
+
height: var(--tabs-indicator-height-lg);
|
|
3924
|
+
}
|
|
3925
|
+
|
|
4117
3926
|
.muka-tabs__trigger--disabled {
|
|
4118
3927
|
color: var(--tabs-trigger-color-disabled-foreground);
|
|
4119
3928
|
cursor: not-allowed;
|
|
@@ -4124,18 +3933,29 @@ body {
|
|
|
4124
3933
|
outline-offset: -2px;
|
|
4125
3934
|
}
|
|
4126
3935
|
|
|
4127
|
-
/*
|
|
4128
|
-
|
|
3936
|
+
/* Label: Figma pads the label 8px either side, so with the 4px gap a leading
|
|
3937
|
+
item sits 12px from the text */
|
|
3938
|
+
.muka-tabs__label {
|
|
3939
|
+
padding: 0 var(--spacing-2);
|
|
3940
|
+
}
|
|
3941
|
+
|
|
3942
|
+
/* Leading item: icon, avatar, avatar group or data pie chart */
|
|
3943
|
+
.muka-tabs__leading {
|
|
4129
3944
|
display: flex;
|
|
4130
3945
|
align-items: center;
|
|
4131
3946
|
justify-content: center;
|
|
3947
|
+
flex-shrink: 0;
|
|
4132
3948
|
}
|
|
4133
3949
|
.muka-tabs__trigger .muka-icon {
|
|
4134
3950
|
color: inherit;
|
|
4135
3951
|
}
|
|
4136
|
-
|
|
4137
|
-
.muka-tabs--size-
|
|
4138
|
-
.muka-tabs--size-
|
|
3952
|
+
/* Icon sizes only: avatars and pie charts are sized through their size prop */
|
|
3953
|
+
.muka-tabs--size-sm .muka-tabs__leading > svg,
|
|
3954
|
+
.muka-tabs--size-sm .muka-tabs__leading > .muka-icon svg { width: 16px; height: 16px; }
|
|
3955
|
+
.muka-tabs--size-md .muka-tabs__leading > svg,
|
|
3956
|
+
.muka-tabs--size-md .muka-tabs__leading > .muka-icon svg { width: 20px; height: 20px; }
|
|
3957
|
+
.muka-tabs--size-lg .muka-tabs__leading > svg,
|
|
3958
|
+
.muka-tabs--size-lg .muka-tabs__leading > .muka-icon svg { width: 24px; height: 24px; }
|
|
4139
3959
|
|
|
4140
3960
|
/* Responsive Scroll behavior on small screens */
|
|
4141
3961
|
@media (max-width: 768px) {
|
|
@@ -4179,6 +3999,252 @@ body {
|
|
|
4179
3999
|
}
|
|
4180
4000
|
|
|
4181
4001
|
|
|
4002
|
+
/* Textarea */
|
|
4003
|
+
/* Textarea Component Styles - Using Muka Design Tokens */
|
|
4004
|
+
|
|
4005
|
+
.muka-textarea {
|
|
4006
|
+
display: inline-flex;
|
|
4007
|
+
flex-direction: column;
|
|
4008
|
+
gap: var(--spacing-2);
|
|
4009
|
+
}
|
|
4010
|
+
|
|
4011
|
+
/* Label */
|
|
4012
|
+
.muka-textarea__label {
|
|
4013
|
+
color: var(--color-text-default-default);
|
|
4014
|
+
cursor: pointer;
|
|
4015
|
+
}
|
|
4016
|
+
|
|
4017
|
+
.muka-textarea__label--sm {
|
|
4018
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4019
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4020
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4021
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4022
|
+
}
|
|
4023
|
+
|
|
4024
|
+
.muka-textarea__label--md {
|
|
4025
|
+
font-family: var(--text-label-md-semibold-fontFamily);
|
|
4026
|
+
font-weight: var(--text-label-md-semibold-fontWeight);
|
|
4027
|
+
font-size: var(--text-label-md-semibold-fontSize);
|
|
4028
|
+
line-height: var(--text-label-md-semibold-lineHeight);
|
|
4029
|
+
}
|
|
4030
|
+
|
|
4031
|
+
.muka-textarea__label--lg {
|
|
4032
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
4033
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
4034
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
4035
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
4036
|
+
}
|
|
4037
|
+
|
|
4038
|
+
.muka-textarea__required {
|
|
4039
|
+
color: var(--color-state-error-default);
|
|
4040
|
+
}
|
|
4041
|
+
|
|
4042
|
+
/* Field container */
|
|
4043
|
+
.muka-textarea__field {
|
|
4044
|
+
display: flex;
|
|
4045
|
+
background-color: var(--input-field-color-default-background);
|
|
4046
|
+
border: var(--border-width-regular) solid var(--input-field-color-default-border);
|
|
4047
|
+
border-radius: var(--input-field-radius-md);
|
|
4048
|
+
padding: var(--input-field-padding-y) var(--input-field-padding-x);
|
|
4049
|
+
transition: border-color 0.2s ease, background-color 0.2s ease;
|
|
4050
|
+
box-sizing: border-box;
|
|
4051
|
+
}
|
|
4052
|
+
|
|
4053
|
+
.muka-textarea__field--sm {
|
|
4054
|
+
min-height: var(--input-textarea-height-sm);
|
|
4055
|
+
border-radius: var(--input-field-radius-sm);
|
|
4056
|
+
}
|
|
4057
|
+
|
|
4058
|
+
.muka-textarea__field--md {
|
|
4059
|
+
min-height: var(--input-textarea-height-default);
|
|
4060
|
+
border-radius: var(--input-field-radius-md);
|
|
4061
|
+
}
|
|
4062
|
+
|
|
4063
|
+
.muka-textarea__field--lg {
|
|
4064
|
+
min-height: var(--input-textarea-height-lg);
|
|
4065
|
+
border-radius: var(--input-field-radius-lg);
|
|
4066
|
+
}
|
|
4067
|
+
|
|
4068
|
+
/* Focus state */
|
|
4069
|
+
.muka-textarea__field--focused:not(.muka-textarea__field--disabled) {
|
|
4070
|
+
border-width: var(--border-width-bold);
|
|
4071
|
+
border-color: var(--input-field-color-focus-border);
|
|
4072
|
+
background-color: var(--input-field-color-focus-background);
|
|
4073
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
4074
|
+
}
|
|
4075
|
+
|
|
4076
|
+
/* Error state */
|
|
4077
|
+
.muka-textarea__field--error:not(.muka-textarea__field--disabled) {
|
|
4078
|
+
border-width: var(--border-width-bold);
|
|
4079
|
+
border-color: var(--input-field-color-error-border);
|
|
4080
|
+
background-color: var(--input-field-color-error-background);
|
|
4081
|
+
padding: calc(var(--input-field-padding-y) - 1px) calc(var(--input-field-padding-x) - 1px);
|
|
4082
|
+
}
|
|
4083
|
+
|
|
4084
|
+
/* Disabled state */
|
|
4085
|
+
.muka-textarea__field--disabled {
|
|
4086
|
+
background-color: var(--input-field-color-disabled-background);
|
|
4087
|
+
border-color: var(--input-field-color-disabled-border);
|
|
4088
|
+
cursor: not-allowed;
|
|
4089
|
+
}
|
|
4090
|
+
|
|
4091
|
+
/* Native textarea */
|
|
4092
|
+
.muka-textarea__native {
|
|
4093
|
+
flex: 1;
|
|
4094
|
+
border: none;
|
|
4095
|
+
outline: none;
|
|
4096
|
+
background: transparent;
|
|
4097
|
+
color: var(--input-field-color-default-foreground);
|
|
4098
|
+
font-family: var(--text-input-md-fontFamily);
|
|
4099
|
+
font-weight: var(--text-input-md-fontWeight);
|
|
4100
|
+
font-size: var(--text-input-md-fontSize);
|
|
4101
|
+
line-height: var(--text-input-md-lineHeight);
|
|
4102
|
+
padding: 0;
|
|
4103
|
+
width: 100%;
|
|
4104
|
+
min-width: 0;
|
|
4105
|
+
}
|
|
4106
|
+
|
|
4107
|
+
.muka-textarea__field--sm .muka-textarea__native {
|
|
4108
|
+
font-family: var(--text-input-sm-fontFamily);
|
|
4109
|
+
font-weight: var(--text-input-sm-fontWeight);
|
|
4110
|
+
font-size: var(--text-input-sm-fontSize);
|
|
4111
|
+
line-height: var(--text-input-sm-lineHeight);
|
|
4112
|
+
}
|
|
4113
|
+
|
|
4114
|
+
.muka-textarea__field--lg .muka-textarea__native {
|
|
4115
|
+
font-family: var(--text-input-lg-fontFamily);
|
|
4116
|
+
font-weight: var(--text-input-lg-fontWeight);
|
|
4117
|
+
font-size: var(--text-input-lg-fontSize);
|
|
4118
|
+
line-height: var(--text-input-lg-lineHeight);
|
|
4119
|
+
}
|
|
4120
|
+
|
|
4121
|
+
.muka-textarea__native::placeholder {
|
|
4122
|
+
color: var(--color-text-subtle-default);
|
|
4123
|
+
}
|
|
4124
|
+
|
|
4125
|
+
.muka-textarea__field--disabled .muka-textarea__native {
|
|
4126
|
+
color: var(--input-field-color-disabled-foreground);
|
|
4127
|
+
cursor: not-allowed;
|
|
4128
|
+
}
|
|
4129
|
+
|
|
4130
|
+
/* Footer (helper/error + count) */
|
|
4131
|
+
.muka-textarea__footer {
|
|
4132
|
+
display: flex;
|
|
4133
|
+
justify-content: space-between;
|
|
4134
|
+
align-items: flex-start;
|
|
4135
|
+
gap: var(--spacing-2);
|
|
4136
|
+
}
|
|
4137
|
+
|
|
4138
|
+
.muka-textarea__helper {
|
|
4139
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4140
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4141
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4142
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4143
|
+
color: var(--color-text-subtle-default);
|
|
4144
|
+
margin: 0;
|
|
4145
|
+
}
|
|
4146
|
+
|
|
4147
|
+
.muka-textarea__error {
|
|
4148
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4149
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4150
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4151
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4152
|
+
color: var(--color-state-error-default);
|
|
4153
|
+
margin: 0;
|
|
4154
|
+
}
|
|
4155
|
+
|
|
4156
|
+
.muka-textarea__count {
|
|
4157
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4158
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4159
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4160
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4161
|
+
color: var(--color-text-subtle-default);
|
|
4162
|
+
margin-left: auto;
|
|
4163
|
+
}
|
|
4164
|
+
|
|
4165
|
+
|
|
4166
|
+
/* TextLink */
|
|
4167
|
+
/* TextLink Component Styles - Using Muka Design Tokens */
|
|
4168
|
+
|
|
4169
|
+
.muka-text-link {
|
|
4170
|
+
display: inline;
|
|
4171
|
+
cursor: pointer;
|
|
4172
|
+
text-decoration: underline;
|
|
4173
|
+
/* Nudge the rule clear of descenders; the Figma underline sits off baseline. */
|
|
4174
|
+
text-underline-offset: 0.2em;
|
|
4175
|
+
text-decoration-thickness: from-font;
|
|
4176
|
+
/* Rounds the focus ring's corners; the link itself has no visible box. */
|
|
4177
|
+
border-radius: var(--border-radius-sm);
|
|
4178
|
+
transition: color var(--motion-duration-micro, 0.15s) var(--motion-easing-enter, ease);
|
|
4179
|
+
}
|
|
4180
|
+
|
|
4181
|
+
/* ─── Sizes ───────────────────────────────────────────────
|
|
4182
|
+
Mirrors the body text scale so a link matches the copy it sits in. */
|
|
4183
|
+
.muka-text-link--sm {
|
|
4184
|
+
font-family: var(--text-body-sm-regular-fontFamily);
|
|
4185
|
+
font-weight: var(--text-body-sm-regular-fontWeight);
|
|
4186
|
+
font-size: var(--text-body-sm-regular-fontSize);
|
|
4187
|
+
line-height: var(--text-body-sm-regular-lineHeight);
|
|
4188
|
+
}
|
|
4189
|
+
|
|
4190
|
+
.muka-text-link--base {
|
|
4191
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4192
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4193
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4194
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4195
|
+
}
|
|
4196
|
+
|
|
4197
|
+
.muka-text-link--lg {
|
|
4198
|
+
font-family: var(--text-body-lg-regular-fontFamily);
|
|
4199
|
+
font-weight: var(--text-body-lg-regular-fontWeight);
|
|
4200
|
+
font-size: var(--text-body-lg-regular-fontSize);
|
|
4201
|
+
line-height: var(--text-body-lg-regular-lineHeight);
|
|
4202
|
+
}
|
|
4203
|
+
|
|
4204
|
+
/* ─── Variant: default (accent) ───────────────────────────
|
|
4205
|
+
Visited repeats the default colour on purpose: the design treats visited and
|
|
4206
|
+
default the same, and pinning it stops the browser's purple from showing. */
|
|
4207
|
+
.muka-text-link--default,
|
|
4208
|
+
.muka-text-link--default:visited {
|
|
4209
|
+
color: var(--color-text-action-default);
|
|
4210
|
+
}
|
|
4211
|
+
|
|
4212
|
+
.muka-text-link--default:hover,
|
|
4213
|
+
.muka-text-link--default:focus-visible {
|
|
4214
|
+
color: var(--color-text-action-hover);
|
|
4215
|
+
}
|
|
4216
|
+
|
|
4217
|
+
.muka-text-link--default:active {
|
|
4218
|
+
color: var(--color-text-action-pressed);
|
|
4219
|
+
}
|
|
4220
|
+
|
|
4221
|
+
/* ─── Variant: subtle (neutral) ───────────────────────────
|
|
4222
|
+
Hover, focus and pressed all darken to the default text colour. */
|
|
4223
|
+
.muka-text-link--subtle,
|
|
4224
|
+
.muka-text-link--subtle:visited {
|
|
4225
|
+
color: var(--color-text-subtle-default);
|
|
4226
|
+
}
|
|
4227
|
+
|
|
4228
|
+
.muka-text-link--subtle:hover,
|
|
4229
|
+
.muka-text-link--subtle:focus-visible,
|
|
4230
|
+
.muka-text-link--subtle:active {
|
|
4231
|
+
color: var(--color-text-default-default);
|
|
4232
|
+
}
|
|
4233
|
+
|
|
4234
|
+
/* ─── Focus ───────────────────────────────────────────────
|
|
4235
|
+
Same ring as every other focusable Muka component. */
|
|
4236
|
+
.muka-text-link:focus-visible {
|
|
4237
|
+
outline: 2px solid var(--color-border-focus);
|
|
4238
|
+
outline-offset: 2px;
|
|
4239
|
+
}
|
|
4240
|
+
|
|
4241
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4242
|
+
.muka-text-link {
|
|
4243
|
+
transition: none;
|
|
4244
|
+
}
|
|
4245
|
+
}
|
|
4246
|
+
|
|
4247
|
+
|
|
4182
4248
|
/* Table */
|
|
4183
4249
|
/* Table Component Styles - Using Muka Design Tokens */
|
|
4184
4250
|
|
|
@@ -4444,198 +4510,90 @@ body {
|
|
|
4444
4510
|
.muka-table__header-cell {
|
|
4445
4511
|
vertical-align: middle;
|
|
4446
4512
|
}
|
|
4447
|
-
|
|
4448
|
-
/* Size: Small */
|
|
4449
|
-
.muka-table--sm .muka-table__cell,
|
|
4450
|
-
.muka-table--sm .muka-table__header-cell {
|
|
4451
|
-
padding: var(--table-cell-padding-y-sm) var(--table-cell-padding-x-sm);
|
|
4452
|
-
}
|
|
4453
|
-
|
|
4454
|
-
/* Size: Medium */
|
|
4455
|
-
.muka-table--md .muka-table__cell,
|
|
4456
|
-
.muka-table--md .muka-table__header-cell {
|
|
4457
|
-
padding: var(--table-cell-padding-y-md) var(--table-cell-padding-x-md);
|
|
4458
|
-
}
|
|
4459
|
-
|
|
4460
|
-
/* Size: Large */
|
|
4461
|
-
.muka-table--lg .muka-table__cell,
|
|
4462
|
-
.muka-table--lg .muka-table__header-cell {
|
|
4463
|
-
padding: var(--table-cell-padding-y-lg) var(--table-cell-padding-x-lg);
|
|
4464
|
-
}
|
|
4465
|
-
|
|
4466
|
-
/* Alignment */
|
|
4467
|
-
.muka-table__cell--left,
|
|
4468
|
-
.muka-table__header-cell--left {
|
|
4469
|
-
text-align: left;
|
|
4470
|
-
}
|
|
4471
|
-
|
|
4472
|
-
.muka-table__cell--center,
|
|
4473
|
-
.muka-table__header-cell--center {
|
|
4474
|
-
text-align: center;
|
|
4475
|
-
}
|
|
4476
|
-
|
|
4477
|
-
.muka-table__cell--right,
|
|
4478
|
-
.muka-table__header-cell--right {
|
|
4479
|
-
text-align: right;
|
|
4480
|
-
}
|
|
4481
|
-
|
|
4482
|
-
/* ========================================
|
|
4483
|
-
HEADER CELLS
|
|
4484
|
-
======================================== */
|
|
4485
|
-
|
|
4486
|
-
.muka-table__header-cell {
|
|
4487
|
-
font-family: var(--text-body-base-bold-fontFamily);
|
|
4488
|
-
font-weight: var(--text-body-base-bold-fontWeight);
|
|
4489
|
-
font-size: var(--text-body-base-bold-fontSize);
|
|
4490
|
-
line-height: var(--text-body-base-bold-lineHeight);
|
|
4491
|
-
color: var(--color-text-default-default);
|
|
4492
|
-
white-space: nowrap;
|
|
4493
|
-
}
|
|
4494
|
-
|
|
4495
|
-
.muka-table__header-content {
|
|
4496
|
-
display: inline-flex;
|
|
4497
|
-
align-items: center;
|
|
4498
|
-
gap: var(--spacing-1);
|
|
4499
|
-
}
|
|
4500
|
-
|
|
4501
|
-
/* Sortable */
|
|
4502
|
-
.muka-table__header-cell--sortable {
|
|
4503
|
-
cursor: pointer;
|
|
4504
|
-
user-select: none;
|
|
4505
|
-
}
|
|
4506
|
-
|
|
4507
|
-
.muka-table__header-cell--sortable:hover {
|
|
4508
|
-
color: var(--color-text-default-default);
|
|
4509
|
-
}
|
|
4510
|
-
|
|
4511
|
-
.muka-table__header-cell--sortable:focus-visible {
|
|
4512
|
-
outline: 2px solid var(--color-action-default);
|
|
4513
|
-
outline-offset: -2px;
|
|
4514
|
-
}
|
|
4515
|
-
|
|
4516
|
-
/* Sort icon */
|
|
4517
|
-
.muka-table__sort-icon {
|
|
4518
|
-
width: 1em;
|
|
4519
|
-
height: 1em;
|
|
4520
|
-
opacity: 0.4;
|
|
4521
|
-
transition: opacity 0.2s, transform 0.2s;
|
|
4522
|
-
}
|
|
4523
|
-
|
|
4524
|
-
.muka-table__header-cell--sortable:hover .muka-table__sort-icon {
|
|
4525
|
-
opacity: 0.7;
|
|
4526
|
-
}
|
|
4527
|
-
|
|
4528
|
-
.muka-table__sort-icon--asc,
|
|
4529
|
-
.muka-table__sort-icon--desc {
|
|
4530
|
-
opacity: 1;
|
|
4531
|
-
}
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
/* SwipeActions */
|
|
4535
|
-
/* SwipeActions Component Styles */
|
|
4536
|
-
|
|
4537
|
-
.muka-swipe-actions {
|
|
4538
|
-
position: relative;
|
|
4539
|
-
overflow: hidden;
|
|
4540
|
-
touch-action: pan-y;
|
|
4541
|
-
-webkit-user-select: none;
|
|
4542
|
-
user-select: none;
|
|
4543
|
-
background-color: var(--color-surface-level3);
|
|
4544
|
-
}
|
|
4545
|
-
|
|
4546
|
-
.muka-swipe-actions--disabled {
|
|
4547
|
-
touch-action: auto;
|
|
4548
|
-
}
|
|
4549
|
-
|
|
4550
|
-
/* ─── Row that holds the actual content ────────────────── */
|
|
4551
|
-
|
|
4552
|
-
.muka-swipe-actions__row {
|
|
4553
|
-
position: relative;
|
|
4554
|
-
z-index: 1;
|
|
4555
|
-
background-color: inherit;
|
|
4556
|
-
will-change: transform;
|
|
4557
|
-
}
|
|
4558
|
-
|
|
4559
|
-
/* ─── Action panels — sit beneath the row ──────────────── */
|
|
4560
|
-
|
|
4561
|
-
.muka-swipe-actions__panel {
|
|
4562
|
-
position: absolute;
|
|
4563
|
-
top: 0;
|
|
4564
|
-
bottom: 0;
|
|
4565
|
-
display: flex;
|
|
4566
|
-
align-items: stretch;
|
|
4567
|
-
z-index: 0;
|
|
4513
|
+
|
|
4514
|
+
/* Size: Small */
|
|
4515
|
+
.muka-table--sm .muka-table__cell,
|
|
4516
|
+
.muka-table--sm .muka-table__header-cell {
|
|
4517
|
+
padding: var(--table-cell-padding-y-sm) var(--table-cell-padding-x-sm);
|
|
4568
4518
|
}
|
|
4569
4519
|
|
|
4570
|
-
|
|
4571
|
-
|
|
4520
|
+
/* Size: Medium */
|
|
4521
|
+
.muka-table--md .muka-table__cell,
|
|
4522
|
+
.muka-table--md .muka-table__header-cell {
|
|
4523
|
+
padding: var(--table-cell-padding-y-md) var(--table-cell-padding-x-md);
|
|
4572
4524
|
}
|
|
4573
4525
|
|
|
4574
|
-
|
|
4575
|
-
|
|
4526
|
+
/* Size: Large */
|
|
4527
|
+
.muka-table--lg .muka-table__cell,
|
|
4528
|
+
.muka-table--lg .muka-table__header-cell {
|
|
4529
|
+
padding: var(--table-cell-padding-y-lg) var(--table-cell-padding-x-lg);
|
|
4576
4530
|
}
|
|
4577
4531
|
|
|
4578
|
-
/*
|
|
4532
|
+
/* Alignment */
|
|
4533
|
+
.muka-table__cell--left,
|
|
4534
|
+
.muka-table__header-cell--left {
|
|
4535
|
+
text-align: left;
|
|
4536
|
+
}
|
|
4579
4537
|
|
|
4580
|
-
.muka-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
align-items: center;
|
|
4584
|
-
justify-content: center;
|
|
4585
|
-
gap: var(--spacing-1);
|
|
4586
|
-
border: none;
|
|
4587
|
-
cursor: pointer;
|
|
4588
|
-
padding: var(--spacing-2);
|
|
4589
|
-
background-color: var(--color-surface-level2);
|
|
4590
|
-
color: var(--color-text-default-default);
|
|
4591
|
-
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4592
|
-
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4593
|
-
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4594
|
-
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4595
|
-
-webkit-tap-highlight-color: transparent;
|
|
4596
|
-
transition: filter 0.12s ease;
|
|
4538
|
+
.muka-table__cell--center,
|
|
4539
|
+
.muka-table__header-cell--center {
|
|
4540
|
+
text-align: center;
|
|
4597
4541
|
}
|
|
4598
4542
|
|
|
4599
|
-
.muka-
|
|
4600
|
-
|
|
4543
|
+
.muka-table__cell--right,
|
|
4544
|
+
.muka-table__header-cell--right {
|
|
4545
|
+
text-align: right;
|
|
4601
4546
|
}
|
|
4602
4547
|
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
|
|
4548
|
+
/* ========================================
|
|
4549
|
+
HEADER CELLS
|
|
4550
|
+
======================================== */
|
|
4551
|
+
|
|
4552
|
+
.muka-table__header-cell {
|
|
4553
|
+
font-family: var(--text-body-base-bold-fontFamily);
|
|
4554
|
+
font-weight: var(--text-body-base-bold-fontWeight);
|
|
4555
|
+
font-size: var(--text-body-base-bold-fontSize);
|
|
4556
|
+
line-height: var(--text-body-base-bold-lineHeight);
|
|
4557
|
+
color: var(--color-text-default-default);
|
|
4558
|
+
white-space: nowrap;
|
|
4606
4559
|
}
|
|
4607
4560
|
|
|
4608
|
-
.muka-
|
|
4561
|
+
.muka-table__header-content {
|
|
4609
4562
|
display: inline-flex;
|
|
4610
4563
|
align-items: center;
|
|
4611
|
-
|
|
4564
|
+
gap: var(--spacing-1);
|
|
4612
4565
|
}
|
|
4613
4566
|
|
|
4614
|
-
/*
|
|
4567
|
+
/* Sortable */
|
|
4568
|
+
.muka-table__header-cell--sortable {
|
|
4569
|
+
cursor: pointer;
|
|
4570
|
+
user-select: none;
|
|
4571
|
+
}
|
|
4615
4572
|
|
|
4616
|
-
.muka-
|
|
4617
|
-
background-color: var(--color-surface-level2);
|
|
4573
|
+
.muka-table__header-cell--sortable:hover {
|
|
4618
4574
|
color: var(--color-text-default-default);
|
|
4619
4575
|
}
|
|
4620
4576
|
|
|
4621
|
-
.muka-
|
|
4622
|
-
|
|
4623
|
-
|
|
4577
|
+
.muka-table__header-cell--sortable:focus-visible {
|
|
4578
|
+
outline: 2px solid var(--color-action-default);
|
|
4579
|
+
outline-offset: -2px;
|
|
4624
4580
|
}
|
|
4625
4581
|
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4582
|
+
/* Sort icon */
|
|
4583
|
+
.muka-table__sort-icon {
|
|
4584
|
+
width: 1em;
|
|
4585
|
+
height: 1em;
|
|
4586
|
+
opacity: 0.4;
|
|
4587
|
+
transition: opacity 0.2s, transform 0.2s;
|
|
4629
4588
|
}
|
|
4630
4589
|
|
|
4631
|
-
.muka-
|
|
4632
|
-
|
|
4633
|
-
color: var(--color-text-default-default);
|
|
4590
|
+
.muka-table__header-cell--sortable:hover .muka-table__sort-icon {
|
|
4591
|
+
opacity: 0.7;
|
|
4634
4592
|
}
|
|
4635
4593
|
|
|
4636
|
-
.muka-
|
|
4637
|
-
|
|
4638
|
-
|
|
4594
|
+
.muka-table__sort-icon--asc,
|
|
4595
|
+
.muka-table__sort-icon--desc {
|
|
4596
|
+
opacity: 1;
|
|
4639
4597
|
}
|
|
4640
4598
|
|
|
4641
4599
|
|
|
@@ -4802,6 +4760,114 @@ body {
|
|
|
4802
4760
|
}
|
|
4803
4761
|
|
|
4804
4762
|
|
|
4763
|
+
/* SwipeActions */
|
|
4764
|
+
/* SwipeActions Component Styles */
|
|
4765
|
+
|
|
4766
|
+
.muka-swipe-actions {
|
|
4767
|
+
position: relative;
|
|
4768
|
+
overflow: hidden;
|
|
4769
|
+
touch-action: pan-y;
|
|
4770
|
+
-webkit-user-select: none;
|
|
4771
|
+
user-select: none;
|
|
4772
|
+
background-color: var(--color-surface-level3);
|
|
4773
|
+
}
|
|
4774
|
+
|
|
4775
|
+
.muka-swipe-actions--disabled {
|
|
4776
|
+
touch-action: auto;
|
|
4777
|
+
}
|
|
4778
|
+
|
|
4779
|
+
/* ─── Row that holds the actual content ────────────────── */
|
|
4780
|
+
|
|
4781
|
+
.muka-swipe-actions__row {
|
|
4782
|
+
position: relative;
|
|
4783
|
+
z-index: 1;
|
|
4784
|
+
background-color: inherit;
|
|
4785
|
+
will-change: transform;
|
|
4786
|
+
}
|
|
4787
|
+
|
|
4788
|
+
/* ─── Action panels — sit beneath the row ──────────────── */
|
|
4789
|
+
|
|
4790
|
+
.muka-swipe-actions__panel {
|
|
4791
|
+
position: absolute;
|
|
4792
|
+
top: 0;
|
|
4793
|
+
bottom: 0;
|
|
4794
|
+
display: flex;
|
|
4795
|
+
align-items: stretch;
|
|
4796
|
+
z-index: 0;
|
|
4797
|
+
}
|
|
4798
|
+
|
|
4799
|
+
.muka-swipe-actions__panel--left {
|
|
4800
|
+
left: 0;
|
|
4801
|
+
}
|
|
4802
|
+
|
|
4803
|
+
.muka-swipe-actions__panel--right {
|
|
4804
|
+
right: 0;
|
|
4805
|
+
}
|
|
4806
|
+
|
|
4807
|
+
/* ─── Single action button ─────────────────────────────── */
|
|
4808
|
+
|
|
4809
|
+
.muka-swipe-actions__button {
|
|
4810
|
+
display: flex;
|
|
4811
|
+
flex-direction: column;
|
|
4812
|
+
align-items: center;
|
|
4813
|
+
justify-content: center;
|
|
4814
|
+
gap: var(--spacing-1);
|
|
4815
|
+
border: none;
|
|
4816
|
+
cursor: pointer;
|
|
4817
|
+
padding: var(--spacing-2);
|
|
4818
|
+
background-color: var(--color-surface-level2);
|
|
4819
|
+
color: var(--color-text-default-default);
|
|
4820
|
+
font-family: var(--text-label-sm-semibold-fontFamily);
|
|
4821
|
+
font-weight: var(--text-label-sm-semibold-fontWeight);
|
|
4822
|
+
font-size: var(--text-label-sm-semibold-fontSize);
|
|
4823
|
+
line-height: var(--text-label-sm-semibold-lineHeight);
|
|
4824
|
+
-webkit-tap-highlight-color: transparent;
|
|
4825
|
+
transition: filter 0.12s ease;
|
|
4826
|
+
}
|
|
4827
|
+
|
|
4828
|
+
.muka-swipe-actions__button:hover {
|
|
4829
|
+
filter: brightness(0.95);
|
|
4830
|
+
}
|
|
4831
|
+
|
|
4832
|
+
.muka-swipe-actions__button:focus-visible {
|
|
4833
|
+
outline: 2px solid var(--color-action-default);
|
|
4834
|
+
outline-offset: -2px;
|
|
4835
|
+
}
|
|
4836
|
+
|
|
4837
|
+
.muka-swipe-actions__button-icon {
|
|
4838
|
+
display: inline-flex;
|
|
4839
|
+
align-items: center;
|
|
4840
|
+
justify-content: center;
|
|
4841
|
+
}
|
|
4842
|
+
|
|
4843
|
+
/* ─── Color variants ───────────────────────────────────── */
|
|
4844
|
+
|
|
4845
|
+
.muka-swipe-actions__button--neutral {
|
|
4846
|
+
background-color: var(--color-surface-level2);
|
|
4847
|
+
color: var(--color-text-default-default);
|
|
4848
|
+
}
|
|
4849
|
+
|
|
4850
|
+
.muka-swipe-actions__button--primary {
|
|
4851
|
+
background-color: var(--color-action-default);
|
|
4852
|
+
color: var(--color-text-default-inverse);
|
|
4853
|
+
}
|
|
4854
|
+
|
|
4855
|
+
.muka-swipe-actions__button--success {
|
|
4856
|
+
background-color: var(--color-state-success-default);
|
|
4857
|
+
color: var(--color-text-default-inverse);
|
|
4858
|
+
}
|
|
4859
|
+
|
|
4860
|
+
.muka-swipe-actions__button--warning {
|
|
4861
|
+
background-color: var(--color-state-warning-default);
|
|
4862
|
+
color: var(--color-text-default-default);
|
|
4863
|
+
}
|
|
4864
|
+
|
|
4865
|
+
.muka-swipe-actions__button--destructive {
|
|
4866
|
+
background-color: var(--color-state-error-default);
|
|
4867
|
+
color: var(--color-text-default-inverse);
|
|
4868
|
+
}
|
|
4869
|
+
|
|
4870
|
+
|
|
4805
4871
|
/* SocialSignInButton */
|
|
4806
4872
|
/*
|
|
4807
4873
|
* SocialSignInButton lockup colors are provider-mandated (Apple HIG /
|
|
@@ -13570,6 +13636,39 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
13570
13636
|
opacity: 1; /* Remove opacity since we have proper disabled tokens */
|
|
13571
13637
|
}
|
|
13572
13638
|
|
|
13639
|
+
/* Destructive variant - primary's structure on the solid error fill, for
|
|
13640
|
+
irreversible actions. Hover and pressed step away from the label color, so
|
|
13641
|
+
contrast never drops (darker in light themes, lighter in dark themes).
|
|
13642
|
+
Disabled is neutral grey rather than primary's brand-tinted fill. */
|
|
13643
|
+
.muka-button--destructive {
|
|
13644
|
+
background-color: var(--button-color-destructive-background-default);
|
|
13645
|
+
color: var(--button-color-destructive-foreground-default);
|
|
13646
|
+
box-shadow: var(--button-color-destructive-shadow-default);
|
|
13647
|
+
}
|
|
13648
|
+
|
|
13649
|
+
.muka-button--destructive:hover:not(:disabled) {
|
|
13650
|
+
background-color: var(--button-color-destructive-background-hover);
|
|
13651
|
+
color: var(--button-color-destructive-foreground-hover);
|
|
13652
|
+
box-shadow: var(--button-color-destructive-shadow-hover);
|
|
13653
|
+
}
|
|
13654
|
+
|
|
13655
|
+
.muka-button--destructive:active:not(:disabled),
|
|
13656
|
+
.muka-button--destructive.muka-button--pressed:not(:disabled),
|
|
13657
|
+
.muka-button--destructive[data-state="open"]:not(:disabled),
|
|
13658
|
+
.muka-button--destructive[aria-pressed="true"]:not(:disabled) {
|
|
13659
|
+
background-color: var(--button-color-destructive-background-pressed);
|
|
13660
|
+
color: var(--button-color-destructive-foreground-pressed);
|
|
13661
|
+
box-shadow: var(--button-color-destructive-shadow-pressed);
|
|
13662
|
+
}
|
|
13663
|
+
|
|
13664
|
+
.muka-button--destructive:disabled {
|
|
13665
|
+
background-color: var(--button-color-destructive-background-disabled);
|
|
13666
|
+
color: var(--button-color-destructive-foreground-disabled);
|
|
13667
|
+
box-shadow: var(--button-color-destructive-shadow-disabled);
|
|
13668
|
+
cursor: not-allowed;
|
|
13669
|
+
opacity: 1;
|
|
13670
|
+
}
|
|
13671
|
+
|
|
13573
13672
|
/* Secondary variant - supporting actions, no border, only bottom inner shadow */
|
|
13574
13673
|
.muka-button--secondary {
|
|
13575
13674
|
background-color: var(--button-color-secondary-background-default);
|
|
@@ -14503,12 +14602,29 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14503
14602
|
vertical-align: middle;
|
|
14504
14603
|
background-color: var(--avatar-color-background-default);
|
|
14505
14604
|
color: var(--avatar-color-foreground-default);
|
|
14506
|
-
border: var(--avatar-border-width) solid var(--avatar-color-border-default);
|
|
14507
14605
|
font-family: var(--alias-font-brand-family);
|
|
14508
14606
|
font-weight: var(--alias-font-brand-weight-semibold);
|
|
14509
14607
|
}
|
|
14510
14608
|
|
|
14511
14609
|
/* Size variants */
|
|
14610
|
+
.muka-avatar--4xs {
|
|
14611
|
+
width: var(--avatar-size-4xs);
|
|
14612
|
+
height: var(--avatar-size-4xs);
|
|
14613
|
+
font-size: var(--avatar-font-size-3xs); /* only used by an AvatarGroup "+N" */
|
|
14614
|
+
}
|
|
14615
|
+
|
|
14616
|
+
.muka-avatar--3xs {
|
|
14617
|
+
width: var(--avatar-size-3xs);
|
|
14618
|
+
height: var(--avatar-size-3xs);
|
|
14619
|
+
font-size: var(--avatar-font-size-3xs);
|
|
14620
|
+
}
|
|
14621
|
+
|
|
14622
|
+
.muka-avatar--2xs {
|
|
14623
|
+
width: var(--avatar-size-2xs);
|
|
14624
|
+
height: var(--avatar-size-2xs);
|
|
14625
|
+
font-size: var(--avatar-font-size-2xs);
|
|
14626
|
+
}
|
|
14627
|
+
|
|
14512
14628
|
.muka-avatar--xs {
|
|
14513
14629
|
width: var(--avatar-size-xs);
|
|
14514
14630
|
height: var(--avatar-size-xs);
|
|
@@ -14548,6 +14664,20 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14548
14664
|
border-radius: var(--avatar-radius-square);
|
|
14549
14665
|
}
|
|
14550
14666
|
|
|
14667
|
+
.muka-avatar--square.muka-avatar--4xs,
|
|
14668
|
+
.muka-avatar--square.muka-avatar--3xs,
|
|
14669
|
+
.muka-avatar--square.muka-avatar--2xs {
|
|
14670
|
+
border-radius: var(--avatar-radius-square-sm);
|
|
14671
|
+
}
|
|
14672
|
+
|
|
14673
|
+
/* 4xs is too small for initials, the fallback icon or a status dot:
|
|
14674
|
+
it shows the picture, or the plain background */
|
|
14675
|
+
.muka-avatar--4xs .muka-avatar__initials,
|
|
14676
|
+
.muka-avatar--4xs .muka-avatar__fallback,
|
|
14677
|
+
.muka-avatar--4xs .muka-avatar__status {
|
|
14678
|
+
display: none;
|
|
14679
|
+
}
|
|
14680
|
+
|
|
14551
14681
|
/* Clickable state */
|
|
14552
14682
|
.muka-avatar--clickable {
|
|
14553
14683
|
cursor: pointer;
|
|
@@ -14651,6 +14781,16 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14651
14781
|
box-sizing: border-box;
|
|
14652
14782
|
}
|
|
14653
14783
|
|
|
14784
|
+
.muka-avatar--3xs .muka-avatar__status {
|
|
14785
|
+
width: var(--avatar-status-size-3xs);
|
|
14786
|
+
height: var(--avatar-status-size-3xs);
|
|
14787
|
+
}
|
|
14788
|
+
|
|
14789
|
+
.muka-avatar--2xs .muka-avatar__status {
|
|
14790
|
+
width: var(--avatar-status-size-2xs);
|
|
14791
|
+
height: var(--avatar-status-size-2xs);
|
|
14792
|
+
}
|
|
14793
|
+
|
|
14654
14794
|
.muka-avatar--xs .muka-avatar__status {
|
|
14655
14795
|
width: var(--avatar-status-size-xs);
|
|
14656
14796
|
height: var(--avatar-status-size-xs);
|
|
@@ -14704,44 +14844,17 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14704
14844
|
background-color: var(--avatar-color-status-away);
|
|
14705
14845
|
}
|
|
14706
14846
|
|
|
14707
|
-
/* Avatar Group */
|
|
14847
|
+
/* Avatar Group (Figma "Avatar Stack") */
|
|
14708
14848
|
.muka-avatar-group {
|
|
14709
14849
|
display: inline-flex;
|
|
14710
14850
|
align-items: center;
|
|
14711
14851
|
flex-direction: row;
|
|
14712
14852
|
}
|
|
14713
14853
|
|
|
14854
|
+
/* Later avatars sit on top of earlier ones (DOM order); a hovered one comes to the front */
|
|
14714
14855
|
.muka-avatar-group__item {
|
|
14715
14856
|
position: relative;
|
|
14716
14857
|
display: inline-flex;
|
|
14717
|
-
border: 2px solid var(--color-surface-level1);
|
|
14718
|
-
border-radius: inherit;
|
|
14719
|
-
}
|
|
14720
|
-
|
|
14721
|
-
/* Add border radius to match avatar shape */
|
|
14722
|
-
.muka-avatar-group__item .muka-avatar--circle {
|
|
14723
|
-
border-radius: var(--avatar-radius-circle);
|
|
14724
|
-
}
|
|
14725
|
-
|
|
14726
|
-
.muka-avatar-group__item .muka-avatar--square {
|
|
14727
|
-
border-radius: var(--avatar-radius-square);
|
|
14728
|
-
}
|
|
14729
|
-
|
|
14730
|
-
.muka-avatar-group__item .muka-avatar {
|
|
14731
|
-
border: none;
|
|
14732
|
-
}
|
|
14733
|
-
|
|
14734
|
-
/* Spacing variants for avatar group */
|
|
14735
|
-
.muka-avatar-group--tight .muka-avatar-group__item:not(:first-child) {
|
|
14736
|
-
margin-left: calc(var(--avatar-group-spacing-tight));
|
|
14737
|
-
}
|
|
14738
|
-
|
|
14739
|
-
.muka-avatar-group--normal .muka-avatar-group__item:not(:first-child) {
|
|
14740
|
-
margin-left: calc(var(--avatar-group-spacing-normal));
|
|
14741
|
-
}
|
|
14742
|
-
|
|
14743
|
-
/* Z-index stacking for overlap effect */
|
|
14744
|
-
.muka-avatar-group__item {
|
|
14745
14858
|
z-index: 0;
|
|
14746
14859
|
}
|
|
14747
14860
|
|
|
@@ -14749,6 +14862,41 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14749
14862
|
z-index: 10;
|
|
14750
14863
|
}
|
|
14751
14864
|
|
|
14865
|
+
/* Grouped avatars get a ring outside their edge, drawn as a shadow so it
|
|
14866
|
+
does not change the avatar's size or the overlap */
|
|
14867
|
+
.muka-avatar-group__item .muka-avatar {
|
|
14868
|
+
box-shadow: 0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
|
|
14869
|
+
}
|
|
14870
|
+
|
|
14871
|
+
/* Overlap. Figma specifies exact values for 48 / 32 / 24px avatars (sm / 2xs / 3xs);
|
|
14872
|
+
other sizes use the same proportions: tight 2/3, compact 1/2, spacious 1/3. */
|
|
14873
|
+
.muka-avatar-group--4xs { --muka-avatar-group-size: var(--avatar-size-4xs); }
|
|
14874
|
+
.muka-avatar-group--3xs { --muka-avatar-group-size: var(--avatar-size-3xs); }
|
|
14875
|
+
.muka-avatar-group--2xs { --muka-avatar-group-size: var(--avatar-size-2xs); }
|
|
14876
|
+
.muka-avatar-group--xs { --muka-avatar-group-size: var(--avatar-size-xs); }
|
|
14877
|
+
.muka-avatar-group--sm { --muka-avatar-group-size: var(--avatar-size-sm); }
|
|
14878
|
+
.muka-avatar-group--md { --muka-avatar-group-size: var(--avatar-size-md); }
|
|
14879
|
+
.muka-avatar-group--lg { --muka-avatar-group-size: var(--avatar-size-lg); }
|
|
14880
|
+
.muka-avatar-group--xl { --muka-avatar-group-size: var(--avatar-size-xl); }
|
|
14881
|
+
|
|
14882
|
+
.muka-avatar-group--tight { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) * 2 / 3); }
|
|
14883
|
+
.muka-avatar-group--compact { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 2); }
|
|
14884
|
+
.muka-avatar-group--spacious { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 3); }
|
|
14885
|
+
|
|
14886
|
+
.muka-avatar-group--tight.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-sm); }
|
|
14887
|
+
.muka-avatar-group--tight.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-2xs); }
|
|
14888
|
+
.muka-avatar-group--tight.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-3xs); }
|
|
14889
|
+
.muka-avatar-group--compact.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-sm); }
|
|
14890
|
+
.muka-avatar-group--compact.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-2xs); }
|
|
14891
|
+
.muka-avatar-group--compact.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-3xs); }
|
|
14892
|
+
.muka-avatar-group--spacious.muka-avatar-group--sm { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-sm); }
|
|
14893
|
+
.muka-avatar-group--spacious.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-2xs); }
|
|
14894
|
+
.muka-avatar-group--spacious.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-3xs); }
|
|
14895
|
+
|
|
14896
|
+
.muka-avatar-group__item:not(:first-child) {
|
|
14897
|
+
margin-left: calc(-1 * var(--muka-avatar-group-overlap));
|
|
14898
|
+
}
|
|
14899
|
+
|
|
14752
14900
|
/* Overflow avatar styling */
|
|
14753
14901
|
.muka-avatar--overflow {
|
|
14754
14902
|
background-color: var(--avatar-color-background-default);
|