@revikornmann/muka-ui 0.27.0 → 0.27.2
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 +15 -4
- package/dist/cjs/components/Avatar/Avatar.js +23 -1
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarGroup.js +4 -2
- package/dist/cjs/components/Avatar/AvatarGroup.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js +6 -3
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/Avatar/Avatar.css +15 -4
- package/dist/esm/components/Avatar/Avatar.js +24 -2
- package/dist/esm/components/Avatar/Avatar.js.map +1 -1
- package/dist/esm/components/Avatar/AvatarGroup.js +4 -2
- package/dist/esm/components/Avatar/AvatarGroup.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js +6 -3
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/styles/components/Avatar.css +15 -4
- package/dist/styles/index.css +483 -471
- package/dist/styles/muka-dark.css +483 -471
- package/dist/styles/muka-light.css +483 -471
- package/dist/styles/tokens-bouwplan-dark.css +7 -6
- package/dist/styles/tokens-bouwplan-light.css +7 -6
- package/dist/styles/tokens-fscl-dark.css +7 -6
- package/dist/styles/tokens-fscl-light.css +7 -6
- package/dist/styles/tokens-grip-dark.css +7 -6
- package/dist/styles/tokens-grip-light.css +7 -6
- package/dist/styles/tokens-muka-dark.css +7 -6
- package/dist/styles/tokens-muka-light.css +7 -6
- package/dist/styles/tokens-wireframe-dark.css +7 -6
- package/dist/styles/tokens-wireframe-light.css +7 -6
- package/dist/styles/wireframe-dark.css +483 -471
- package/dist/styles/wireframe-light.css +483 -471
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Avatar/AvatarGroup.d.ts +8 -0
- package/dist/types/components/Avatar/AvatarGroup.d.ts.map +1 -1
- package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
- package/package.json +1 -1
- package/tokens/t4-components/avatar.json +13 -7
|
@@ -2047,15 +2047,16 @@ body {
|
|
|
2047
2047
|
--avatar-status-size-xl: 1.5rem;
|
|
2048
2048
|
--avatar-group-ring-width: 0.125rem;
|
|
2049
2049
|
--avatar-group-ring-color: #111111;
|
|
2050
|
-
--avatar-group-overlap-tight-
|
|
2051
|
-
--avatar-group-overlap-tight-2xs: 1.
|
|
2050
|
+
--avatar-group-overlap-tight-xs: 1.75rem;
|
|
2051
|
+
--avatar-group-overlap-tight-2xs: 1.5rem;
|
|
2052
2052
|
--avatar-group-overlap-tight-3xs: 1rem;
|
|
2053
|
-
--avatar-group-overlap-compact-
|
|
2054
|
-
--avatar-group-overlap-compact-2xs:
|
|
2055
|
-
--avatar-group-overlap-compact-3xs: 0.
|
|
2056
|
-
--avatar-group-overlap-spacious-
|
|
2053
|
+
--avatar-group-overlap-compact-xs: 1.5rem;
|
|
2054
|
+
--avatar-group-overlap-compact-2xs: 1.125rem;
|
|
2055
|
+
--avatar-group-overlap-compact-3xs: 0.875rem;
|
|
2056
|
+
--avatar-group-overlap-spacious-xs: 1rem;
|
|
2057
2057
|
--avatar-group-overlap-spacious-2xs: 0.75rem;
|
|
2058
2058
|
--avatar-group-overlap-spacious-3xs: 0.5rem;
|
|
2059
|
+
--avatar-group-badge-offset: 0.25rem;
|
|
2059
2060
|
--toast-color-info-background: #eeeeee;
|
|
2060
2061
|
--toast-color-info-foreground: #111111;
|
|
2061
2062
|
--toast-color-info-accent: #0d2847;
|
|
@@ -2461,6 +2462,116 @@ body {
|
|
|
2461
2462
|
}
|
|
2462
2463
|
|
|
2463
2464
|
|
|
2465
|
+
/* View */
|
|
2466
|
+
/* View Component Styles */
|
|
2467
|
+
|
|
2468
|
+
/* ─── Base layout ─────────────────────────────────────── */
|
|
2469
|
+
|
|
2470
|
+
.muka-view {
|
|
2471
|
+
display: flex;
|
|
2472
|
+
flex-direction: column;
|
|
2473
|
+
height: 100dvh;
|
|
2474
|
+
background-color: var(--view-color-background);
|
|
2475
|
+
position: relative;
|
|
2476
|
+
isolation: isolate;
|
|
2477
|
+
box-sizing: border-box;
|
|
2478
|
+
|
|
2479
|
+
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2480
|
+
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2481
|
+
--view-sidebar-width: 240px;
|
|
2482
|
+
}
|
|
2483
|
+
|
|
2484
|
+
/* ─── Surface level variants ─────────────────────────── */
|
|
2485
|
+
|
|
2486
|
+
.muka-view--surface-3 {
|
|
2487
|
+
background-color: var(--color-surface-level3);
|
|
2488
|
+
}
|
|
2489
|
+
|
|
2490
|
+
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2491
|
+
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2492
|
+
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2493
|
+
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2494
|
+
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2495
|
+
for a sidebar that hasn't rendered yet. */
|
|
2496
|
+
@media (min-width: 1024px) {
|
|
2497
|
+
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2498
|
+
padding-left: var(--view-sidebar-width);
|
|
2499
|
+
}
|
|
2500
|
+
}
|
|
2501
|
+
|
|
2502
|
+
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2503
|
+
|
|
2504
|
+
.muka-view .muka-topbar {
|
|
2505
|
+
flex-shrink: 0;
|
|
2506
|
+
z-index: 3;
|
|
2507
|
+
box-shadow: var(--shadow-level2);
|
|
2508
|
+
}
|
|
2509
|
+
|
|
2510
|
+
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2511
|
+
|
|
2512
|
+
.muka-view__body {
|
|
2513
|
+
flex: 1 1 0%;
|
|
2514
|
+
min-height: 0;
|
|
2515
|
+
overflow-y: auto;
|
|
2516
|
+
overflow-x: clip;
|
|
2517
|
+
z-index: 1;
|
|
2518
|
+
|
|
2519
|
+
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2520
|
+
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2521
|
+
reveal the content underneath. */
|
|
2522
|
+
display: flex;
|
|
2523
|
+
flex-direction: column;
|
|
2524
|
+
}
|
|
2525
|
+
|
|
2526
|
+
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2527
|
+
using the alias-layer section/container tokens, while the body scrolls full
|
|
2528
|
+
width. Full-bleed below large. */
|
|
2529
|
+
.muka-view__body-inner {
|
|
2530
|
+
width: 100%;
|
|
2531
|
+
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2532
|
+
than floating mid-screen. */
|
|
2533
|
+
flex: 1 0 auto;
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2536
|
+
@media (min-width: 1024px) {
|
|
2537
|
+
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2538
|
+
max-width: var(--container-max-width-xl);
|
|
2539
|
+
margin-inline: auto;
|
|
2540
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
|
|
2544
|
+
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2545
|
+
max-width: var(--container-max-width-xl);
|
|
2546
|
+
margin-inline: auto;
|
|
2547
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2548
|
+
}
|
|
2549
|
+
|
|
2550
|
+
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2551
|
+
|
|
2552
|
+
.muka-view__footer {
|
|
2553
|
+
position: sticky;
|
|
2554
|
+
bottom: 0;
|
|
2555
|
+
flex-shrink: 0;
|
|
2556
|
+
z-index: 2;
|
|
2557
|
+
}
|
|
2558
|
+
|
|
2559
|
+
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2560
|
+
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2561
|
+
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2562
|
+
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2563
|
+
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2564
|
+
@media (min-width: 1024px) {
|
|
2565
|
+
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2566
|
+
display: none;
|
|
2567
|
+
}
|
|
2568
|
+
}
|
|
2569
|
+
|
|
2570
|
+
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2571
|
+
display: none;
|
|
2572
|
+
}
|
|
2573
|
+
|
|
2574
|
+
|
|
2464
2575
|
/* Typography */
|
|
2465
2576
|
.muka-typography-catalog {
|
|
2466
2577
|
display: flex;
|
|
@@ -2811,122 +2922,175 @@ body {
|
|
|
2811
2922
|
}
|
|
2812
2923
|
|
|
2813
2924
|
|
|
2814
|
-
/*
|
|
2815
|
-
/*
|
|
2816
|
-
|
|
2817
|
-
/* ─── Base layout ─────────────────────────────────────── */
|
|
2925
|
+
/* Toggle */
|
|
2926
|
+
/* Toggle Component Styles - Using Muka Design Tokens */
|
|
2818
2927
|
|
|
2819
|
-
|
|
2928
|
+
/* Wrapper container */
|
|
2929
|
+
.muka-toggle {
|
|
2820
2930
|
display: flex;
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
background-color: var(--view-color-background);
|
|
2931
|
+
align-items: center;
|
|
2932
|
+
gap: var(--spacing-2);
|
|
2824
2933
|
position: relative;
|
|
2825
|
-
|
|
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;
|
|
2934
|
+
padding: var(--spacing-4) 0;
|
|
2831
2935
|
}
|
|
2832
2936
|
|
|
2833
|
-
|
|
2834
|
-
|
|
2835
|
-
.muka-view--surface-3 {
|
|
2836
|
-
background-color: var(--color-surface-level3);
|
|
2937
|
+
.muka-toggle--with-caption {
|
|
2938
|
+
padding: var(--spacing-5) 0;
|
|
2837
2939
|
}
|
|
2838
2940
|
|
|
2839
|
-
|
|
2840
|
-
|
|
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
|
-
}
|
|
2941
|
+
.muka-toggle--disabled {
|
|
2942
|
+
opacity: 0.6;
|
|
2849
2943
|
}
|
|
2850
2944
|
|
|
2851
|
-
/*
|
|
2852
|
-
|
|
2853
|
-
|
|
2945
|
+
/* Icon */
|
|
2946
|
+
.muka-toggle__icon {
|
|
2947
|
+
display: flex;
|
|
2948
|
+
align-items: center;
|
|
2949
|
+
justify-content: center;
|
|
2854
2950
|
flex-shrink: 0;
|
|
2855
|
-
|
|
2856
|
-
|
|
2951
|
+
width: var(--icon-size-default);
|
|
2952
|
+
height: var(--icon-size-default);
|
|
2953
|
+
color: var(--color-text-default-default);
|
|
2857
2954
|
}
|
|
2858
2955
|
|
|
2859
|
-
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
min-height: 0;
|
|
2864
|
-
overflow-y: auto;
|
|
2865
|
-
overflow-x: clip;
|
|
2866
|
-
z-index: 1;
|
|
2956
|
+
.muka-toggle__icon svg {
|
|
2957
|
+
width: 100%;
|
|
2958
|
+
height: 100%;
|
|
2959
|
+
}
|
|
2867
2960
|
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
reveal the content underneath. */
|
|
2961
|
+
/* Content area (label + caption) */
|
|
2962
|
+
.muka-toggle__content {
|
|
2871
2963
|
display: flex;
|
|
2872
2964
|
flex-direction: column;
|
|
2965
|
+
flex: 1;
|
|
2966
|
+
min-width: 0;
|
|
2967
|
+
gap: var(--spacing-1);
|
|
2873
2968
|
}
|
|
2874
2969
|
|
|
2875
|
-
/*
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2970
|
+
/* Label */
|
|
2971
|
+
.muka-toggle__label {
|
|
2972
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
2973
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
2974
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
2975
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
2976
|
+
color: var(--color-text-default-default);
|
|
2977
|
+
cursor: pointer;
|
|
2883
2978
|
}
|
|
2884
2979
|
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
}
|
|
2980
|
+
.muka-toggle--with-caption .muka-toggle__label {
|
|
2981
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
2982
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
2983
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
2984
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
2891
2985
|
}
|
|
2892
2986
|
|
|
2893
|
-
.muka-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
2987
|
+
.muka-toggle--disabled .muka-toggle__label {
|
|
2988
|
+
color: var(--color-text-subtle-default);
|
|
2989
|
+
cursor: not-allowed;
|
|
2897
2990
|
}
|
|
2898
2991
|
|
|
2899
|
-
/*
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2992
|
+
/* Caption */
|
|
2993
|
+
.muka-toggle__caption {
|
|
2994
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
2995
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
2996
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
2997
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
2998
|
+
color: var(--color-text-subtle-default);
|
|
2906
2999
|
}
|
|
2907
3000
|
|
|
2908
|
-
/*
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2915
|
-
display: none;
|
|
2916
|
-
}
|
|
3001
|
+
/* Switch container */
|
|
3002
|
+
.muka-toggle__switch {
|
|
3003
|
+
position: relative;
|
|
3004
|
+
display: inline-flex;
|
|
3005
|
+
flex-shrink: 0;
|
|
3006
|
+
cursor: pointer;
|
|
2917
3007
|
}
|
|
2918
3008
|
|
|
2919
|
-
.muka-
|
|
2920
|
-
|
|
3009
|
+
.muka-toggle--disabled .muka-toggle__switch {
|
|
3010
|
+
cursor: not-allowed;
|
|
2921
3011
|
}
|
|
2922
3012
|
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
3013
|
+
/* Hidden native input */
|
|
3014
|
+
.muka-toggle__input {
|
|
3015
|
+
position: absolute;
|
|
3016
|
+
width: 1px;
|
|
3017
|
+
height: 1px;
|
|
3018
|
+
padding: 0;
|
|
3019
|
+
margin: -1px;
|
|
3020
|
+
overflow: hidden;
|
|
3021
|
+
clip: rect(0, 0, 0, 0);
|
|
3022
|
+
white-space: nowrap;
|
|
3023
|
+
border: 0;
|
|
3024
|
+
}
|
|
3025
|
+
|
|
3026
|
+
/* Track (background pill) */
|
|
3027
|
+
.muka-toggle__track {
|
|
3028
|
+
display: flex;
|
|
3029
|
+
align-items: center;
|
|
3030
|
+
width: var(--toggle-track-width);
|
|
3031
|
+
height: var(--toggle-track-height);
|
|
3032
|
+
border-radius: var(--toggle-track-radius);
|
|
3033
|
+
background-color: var(--toggle-track-color-off);
|
|
3034
|
+
transition: background-color 0.2s ease;
|
|
3035
|
+
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3036
|
+
position: relative;
|
|
3037
|
+
}
|
|
3038
|
+
|
|
3039
|
+
/* Knob (sliding circle) */
|
|
3040
|
+
.muka-toggle__knob {
|
|
3041
|
+
position: absolute;
|
|
3042
|
+
width: var(--toggle-knob-size);
|
|
3043
|
+
height: var(--toggle-knob-size);
|
|
3044
|
+
border-radius: var(--border-radius-full);
|
|
3045
|
+
background-color: var(--toggle-knob-color-default);
|
|
3046
|
+
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3047
|
+
left: var(--toggle-knob-offset);
|
|
3048
|
+
transition: left 0.2s ease, transform 0.2s ease;
|
|
3049
|
+
}
|
|
3050
|
+
|
|
3051
|
+
/* Focus state */
|
|
3052
|
+
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3053
|
+
outline: 2px solid var(--color-border-focus);
|
|
3054
|
+
outline-offset: 2px;
|
|
3055
|
+
}
|
|
3056
|
+
|
|
3057
|
+
/* Checked (on) state */
|
|
3058
|
+
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3059
|
+
background-color: var(--toggle-track-color-on);
|
|
3060
|
+
}
|
|
3061
|
+
|
|
3062
|
+
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3063
|
+
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3064
|
+
}
|
|
3065
|
+
|
|
3066
|
+
/* Disabled state */
|
|
3067
|
+
.muka-toggle--disabled .muka-toggle__track {
|
|
3068
|
+
background-color: var(--toggle-track-color-disabled);
|
|
3069
|
+
box-shadow: none;
|
|
3070
|
+
}
|
|
3071
|
+
|
|
3072
|
+
.muka-toggle--disabled .muka-toggle__knob {
|
|
3073
|
+
background-color: var(--toggle-knob-color-disabled);
|
|
3074
|
+
box-shadow: none;
|
|
3075
|
+
}
|
|
3076
|
+
|
|
3077
|
+
/* Divider */
|
|
3078
|
+
.muka-toggle__divider {
|
|
3079
|
+
position: absolute;
|
|
3080
|
+
bottom: 0;
|
|
3081
|
+
left: 0;
|
|
3082
|
+
right: 0;
|
|
3083
|
+
height: 1px;
|
|
3084
|
+
background-color: var(--color-border-muted);
|
|
3085
|
+
}
|
|
3086
|
+
|
|
3087
|
+
|
|
3088
|
+
/* Toast */
|
|
3089
|
+
/* Toast Component Styles - Using Muka Design Tokens */
|
|
3090
|
+
|
|
3091
|
+
.muka-toast {
|
|
3092
|
+
display: flex;
|
|
3093
|
+
align-items: flex-start;
|
|
2930
3094
|
gap: var(--toast-gap);
|
|
2931
3095
|
padding: var(--toast-padding-y) var(--toast-padding-x);
|
|
2932
3096
|
border-radius: var(--toast-radius);
|
|
@@ -3616,388 +3780,35 @@ body {
|
|
|
3616
3780
|
border-color var(--motion-duration-micro) var(--motion-easing-enter);
|
|
3617
3781
|
}
|
|
3618
3782
|
|
|
3619
|
-
.muka-thumbnail__remove:hover {
|
|
3620
|
-
color: var(--button-color-tertiary-foreground-hover);
|
|
3621
|
-
background-color: var(--button-color-tertiary-background-hover);
|
|
3622
|
-
border-color: var(--button-color-tertiary-border-hover);
|
|
3623
|
-
}
|
|
3624
|
-
|
|
3625
|
-
.muka-thumbnail__remove:active {
|
|
3626
|
-
color: var(--button-color-tertiary-foreground-pressed);
|
|
3627
|
-
background-color: var(--button-color-tertiary-background-pressed);
|
|
3628
|
-
border-color: var(--button-color-tertiary-border-pressed);
|
|
3629
|
-
}
|
|
3630
|
-
|
|
3631
|
-
.muka-thumbnail__remove:focus-visible {
|
|
3632
|
-
outline: 2px solid var(--color-border-focus);
|
|
3633
|
-
outline-offset: 2px;
|
|
3634
|
-
}
|
|
3635
|
-
|
|
3636
|
-
/* ─── Reduced motion ──────────────────────────────────── */
|
|
3637
|
-
@media (prefers-reduced-motion: reduce) {
|
|
3638
|
-
.muka-thumbnail__image,
|
|
3639
|
-
.muka-thumbnail__remove {
|
|
3640
|
-
transition: none;
|
|
3641
|
-
}
|
|
3642
|
-
|
|
3643
|
-
.muka-thumbnail--interactive:hover .muka-thumbnail__image {
|
|
3644
|
-
transform: none;
|
|
3645
|
-
}
|
|
3646
|
-
}
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
/* Toggle */
|
|
3650
|
-
/* Toggle Component Styles - Using Muka Design Tokens */
|
|
3651
|
-
|
|
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;
|
|
3659
|
-
}
|
|
3660
|
-
|
|
3661
|
-
.muka-toggle--with-caption {
|
|
3662
|
-
padding: var(--spacing-5) 0;
|
|
3663
|
-
}
|
|
3664
|
-
|
|
3665
|
-
.muka-toggle--disabled {
|
|
3666
|
-
opacity: 0.6;
|
|
3667
|
-
}
|
|
3668
|
-
|
|
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);
|
|
3677
|
-
color: var(--color-text-default-default);
|
|
3678
|
-
}
|
|
3679
|
-
|
|
3680
|
-
.muka-toggle__icon svg {
|
|
3681
|
-
width: 100%;
|
|
3682
|
-
height: 100%;
|
|
3683
|
-
}
|
|
3684
|
-
|
|
3685
|
-
/* Content area (label + caption) */
|
|
3686
|
-
.muka-toggle__content {
|
|
3687
|
-
display: flex;
|
|
3688
|
-
flex-direction: column;
|
|
3689
|
-
flex: 1;
|
|
3690
|
-
min-width: 0;
|
|
3691
|
-
gap: var(--spacing-1);
|
|
3692
|
-
}
|
|
3693
|
-
|
|
3694
|
-
/* Label */
|
|
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);
|
|
3700
|
-
color: var(--color-text-default-default);
|
|
3701
|
-
cursor: pointer;
|
|
3702
|
-
}
|
|
3703
|
-
|
|
3704
|
-
.muka-toggle--with-caption .muka-toggle__label {
|
|
3705
|
-
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
3706
|
-
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
3707
|
-
font-size: var(--text-label-lg-semibold-fontSize);
|
|
3708
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
3709
|
-
}
|
|
3710
|
-
|
|
3711
|
-
.muka-toggle--disabled .muka-toggle__label {
|
|
3712
|
-
color: var(--color-text-subtle-default);
|
|
3713
|
-
cursor: not-allowed;
|
|
3714
|
-
}
|
|
3715
|
-
|
|
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);
|
|
3723
|
-
}
|
|
3724
|
-
|
|
3725
|
-
/* Switch container */
|
|
3726
|
-
.muka-toggle__switch {
|
|
3727
|
-
position: relative;
|
|
3728
|
-
display: inline-flex;
|
|
3729
|
-
flex-shrink: 0;
|
|
3730
|
-
cursor: pointer;
|
|
3731
|
-
}
|
|
3732
|
-
|
|
3733
|
-
.muka-toggle--disabled .muka-toggle__switch {
|
|
3734
|
-
cursor: not-allowed;
|
|
3735
|
-
}
|
|
3736
|
-
|
|
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;
|
|
3748
|
-
}
|
|
3749
|
-
|
|
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;
|
|
3761
|
-
}
|
|
3762
|
-
|
|
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;
|
|
3773
|
-
}
|
|
3774
|
-
|
|
3775
|
-
/* Focus state */
|
|
3776
|
-
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3777
|
-
outline: 2px solid var(--color-border-focus);
|
|
3778
|
-
outline-offset: 2px;
|
|
3779
|
-
}
|
|
3780
|
-
|
|
3781
|
-
/* Checked (on) state */
|
|
3782
|
-
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3783
|
-
background-color: var(--toggle-track-color-on);
|
|
3784
|
-
}
|
|
3785
|
-
|
|
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));
|
|
3788
|
-
}
|
|
3789
|
-
|
|
3790
|
-
/* Disabled state */
|
|
3791
|
-
.muka-toggle--disabled .muka-toggle__track {
|
|
3792
|
-
background-color: var(--toggle-track-color-disabled);
|
|
3793
|
-
box-shadow: none;
|
|
3794
|
-
}
|
|
3795
|
-
|
|
3796
|
-
.muka-toggle--disabled .muka-toggle__knob {
|
|
3797
|
-
background-color: var(--toggle-knob-color-disabled);
|
|
3798
|
-
box-shadow: none;
|
|
3799
|
-
}
|
|
3800
|
-
|
|
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);
|
|
3809
|
-
}
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
/* Tabs */
|
|
3813
|
-
/* Tabs Component Styles - Clean underline style tabs matching Figma */
|
|
3814
|
-
|
|
3815
|
-
.muka-tabs {
|
|
3816
|
-
display: flex;
|
|
3817
|
-
flex-direction: column;
|
|
3818
|
-
}
|
|
3819
|
-
|
|
3820
|
-
/* Alignment Variants */
|
|
3821
|
-
.muka-tabs--align-left .muka-tabs__list {
|
|
3822
|
-
justify-content: flex-start;
|
|
3823
|
-
}
|
|
3824
|
-
.muka-tabs--align-center .muka-tabs__list {
|
|
3825
|
-
justify-content: center;
|
|
3826
|
-
}
|
|
3827
|
-
.muka-tabs--align-fill .muka-tabs__list {
|
|
3828
|
-
justify-content: space-between;
|
|
3829
|
-
}
|
|
3830
|
-
.muka-tabs--align-fill .muka-tabs__trigger {
|
|
3831
|
-
flex: 1;
|
|
3832
|
-
}
|
|
3833
|
-
|
|
3834
|
-
/* Tab List — strip container */
|
|
3835
|
-
.muka-tabs__list {
|
|
3836
|
-
display: flex;
|
|
3837
|
-
align-items: center;
|
|
3838
|
-
position: relative;
|
|
3839
|
-
z-index: 2;
|
|
3840
|
-
border-bottom: 1px solid var(--tabs-trigger-color-default-border);
|
|
3841
|
-
}
|
|
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
|
-
|
|
3848
|
-
/* Tab Trigger — clean underline style */
|
|
3849
|
-
.muka-tabs__trigger {
|
|
3850
|
-
display: inline-flex;
|
|
3851
|
-
align-items: center;
|
|
3852
|
-
justify-content: center;
|
|
3853
|
-
gap: var(--spacing-1);
|
|
3854
|
-
background: transparent;
|
|
3855
|
-
border: none;
|
|
3856
|
-
cursor: pointer;
|
|
3857
|
-
user-select: none;
|
|
3858
|
-
transition: background-color 0.2s ease, color 0.2s ease;
|
|
3859
|
-
outline: none;
|
|
3860
|
-
white-space: nowrap;
|
|
3861
|
-
position: relative;
|
|
3862
|
-
z-index: 2;
|
|
3863
|
-
color: var(--tabs-trigger-color-default-foreground);
|
|
3864
|
-
|
|
3865
|
-
/* Default MD size values */
|
|
3866
|
-
min-height: var(--tabs-trigger-min-height-md);
|
|
3867
|
-
padding: var(--spacing-3);
|
|
3868
|
-
font-family: var(--text-label-md-regular-fontFamily);
|
|
3869
|
-
font-weight: var(--text-label-md-regular-fontWeight);
|
|
3870
|
-
font-size: var(--text-label-md-regular-fontSize);
|
|
3871
|
-
line-height: var(--text-label-md-regular-lineHeight);
|
|
3872
|
-
}
|
|
3873
|
-
|
|
3874
|
-
/* Size Variants */
|
|
3875
|
-
.muka-tabs--size-sm .muka-tabs__trigger {
|
|
3876
|
-
min-height: var(--tabs-trigger-min-height-sm);
|
|
3877
|
-
padding: 0 var(--spacing-2);
|
|
3878
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
3879
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
3880
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
3881
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3882
|
-
}
|
|
3883
|
-
|
|
3884
|
-
.muka-tabs--size-lg .muka-tabs__trigger {
|
|
3885
|
-
min-height: var(--tabs-trigger-min-height-lg);
|
|
3886
|
-
padding: var(--spacing-4);
|
|
3887
|
-
font-family: var(--text-label-lg-regular-fontFamily);
|
|
3888
|
-
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
3889
|
-
font-size: var(--text-label-lg-regular-fontSize);
|
|
3890
|
-
line-height: var(--text-label-lg-regular-lineHeight);
|
|
3891
|
-
}
|
|
3892
|
-
|
|
3893
|
-
/* Hover state */
|
|
3894
|
-
.muka-tabs__trigger:hover:not(:disabled):not(.muka-tabs__trigger--current) {
|
|
3895
|
-
color: var(--tabs-trigger-color-hover-foreground);
|
|
3896
|
-
}
|
|
3897
|
-
|
|
3898
|
-
/* Current tab */
|
|
3899
|
-
.muka-tabs__trigger--current {
|
|
3900
|
-
color: var(--tabs-trigger-color-current-foreground);
|
|
3901
|
-
}
|
|
3902
|
-
|
|
3903
|
-
/* Active bottom border (underline) */
|
|
3904
|
-
.muka-tabs__trigger--current::after {
|
|
3905
|
-
content: '';
|
|
3906
|
-
position: absolute;
|
|
3907
|
-
bottom: -1px; /* Overlap the 1px border */
|
|
3908
|
-
left: 0;
|
|
3909
|
-
right: 0;
|
|
3910
|
-
height: var(--tabs-indicator-height-md);
|
|
3911
|
-
background-color: var(--tabs-indicator-color);
|
|
3912
|
-
border-bottom-left-radius: 1px;
|
|
3913
|
-
border-bottom-right-radius: 1px;
|
|
3914
|
-
border-top-left-radius: 3px;
|
|
3915
|
-
border-top-right-radius: 3px;
|
|
3916
|
-
z-index: 3;
|
|
3917
|
-
}
|
|
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
|
-
|
|
3926
|
-
.muka-tabs__trigger--disabled {
|
|
3927
|
-
color: var(--tabs-trigger-color-disabled-foreground);
|
|
3928
|
-
cursor: not-allowed;
|
|
3929
|
-
}
|
|
3930
|
-
|
|
3931
|
-
.muka-tabs__trigger:focus-visible {
|
|
3932
|
-
outline: 2px solid var(--color-border-focus);
|
|
3933
|
-
outline-offset: -2px;
|
|
3934
|
-
}
|
|
3935
|
-
|
|
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 {
|
|
3944
|
-
display: flex;
|
|
3945
|
-
align-items: center;
|
|
3946
|
-
justify-content: center;
|
|
3947
|
-
flex-shrink: 0;
|
|
3948
|
-
}
|
|
3949
|
-
.muka-tabs__trigger .muka-icon {
|
|
3950
|
-
color: inherit;
|
|
3951
|
-
}
|
|
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; }
|
|
3959
|
-
|
|
3960
|
-
/* Responsive Scroll behavior on small screens */
|
|
3961
|
-
@media (max-width: 768px) {
|
|
3962
|
-
.muka-tabs__list {
|
|
3963
|
-
/* Make scrollable */
|
|
3964
|
-
overflow-x: auto;
|
|
3965
|
-
overflow-y: hidden;
|
|
3966
|
-
/* Force left alignment on mobile to prevent clipping when scrolling */
|
|
3967
|
-
justify-content: flex-start !important;
|
|
3968
|
-
max-width: 100vw;
|
|
3969
|
-
-webkit-overflow-scrolling: touch;
|
|
3970
|
-
/* Hide scrollbar for cleaner look */
|
|
3971
|
-
scrollbar-width: none;
|
|
3972
|
-
}
|
|
3973
|
-
.muka-tabs__list::-webkit-scrollbar {
|
|
3974
|
-
display: none;
|
|
3975
|
-
}
|
|
3976
|
-
/* Remove flex: 1 behavior for Fill tabs on mobile so they map correctly */
|
|
3977
|
-
.muka-tabs--align-fill .muka-tabs__trigger {
|
|
3978
|
-
flex: 0 0 auto;
|
|
3979
|
-
}
|
|
3783
|
+
.muka-thumbnail__remove:hover {
|
|
3784
|
+
color: var(--button-color-tertiary-foreground-hover);
|
|
3785
|
+
background-color: var(--button-color-tertiary-background-hover);
|
|
3786
|
+
border-color: var(--button-color-tertiary-border-hover);
|
|
3980
3787
|
}
|
|
3981
3788
|
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
background-color: var(--
|
|
3985
|
-
|
|
3986
|
-
border-bottom: var(--border-width-regular) solid var(--tabs-panel-border);
|
|
3987
|
-
padding: var(--spacing-4);
|
|
3988
|
-
position: relative;
|
|
3989
|
-
z-index: 1;
|
|
3990
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
3991
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3992
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
3993
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
3789
|
+
.muka-thumbnail__remove:active {
|
|
3790
|
+
color: var(--button-color-tertiary-foreground-pressed);
|
|
3791
|
+
background-color: var(--button-color-tertiary-background-pressed);
|
|
3792
|
+
border-color: var(--button-color-tertiary-border-pressed);
|
|
3994
3793
|
}
|
|
3995
3794
|
|
|
3996
|
-
.muka-
|
|
3795
|
+
.muka-thumbnail__remove:focus-visible {
|
|
3997
3796
|
outline: 2px solid var(--color-border-focus);
|
|
3998
3797
|
outline-offset: 2px;
|
|
3999
3798
|
}
|
|
4000
3799
|
|
|
3800
|
+
/* ─── Reduced motion ──────────────────────────────────── */
|
|
3801
|
+
@media (prefers-reduced-motion: reduce) {
|
|
3802
|
+
.muka-thumbnail__image,
|
|
3803
|
+
.muka-thumbnail__remove {
|
|
3804
|
+
transition: none;
|
|
3805
|
+
}
|
|
3806
|
+
|
|
3807
|
+
.muka-thumbnail--interactive:hover .muka-thumbnail__image {
|
|
3808
|
+
transform: none;
|
|
3809
|
+
}
|
|
3810
|
+
}
|
|
3811
|
+
|
|
4001
3812
|
|
|
4002
3813
|
/* Textarea */
|
|
4003
3814
|
/* Textarea Component Styles - Using Muka Design Tokens */
|
|
@@ -4245,6 +4056,196 @@ body {
|
|
|
4245
4056
|
}
|
|
4246
4057
|
|
|
4247
4058
|
|
|
4059
|
+
/* Tabs */
|
|
4060
|
+
/* Tabs Component Styles - Clean underline style tabs matching Figma */
|
|
4061
|
+
|
|
4062
|
+
.muka-tabs {
|
|
4063
|
+
display: flex;
|
|
4064
|
+
flex-direction: column;
|
|
4065
|
+
}
|
|
4066
|
+
|
|
4067
|
+
/* Alignment Variants */
|
|
4068
|
+
.muka-tabs--align-left .muka-tabs__list {
|
|
4069
|
+
justify-content: flex-start;
|
|
4070
|
+
}
|
|
4071
|
+
.muka-tabs--align-center .muka-tabs__list {
|
|
4072
|
+
justify-content: center;
|
|
4073
|
+
}
|
|
4074
|
+
.muka-tabs--align-fill .muka-tabs__list {
|
|
4075
|
+
justify-content: space-between;
|
|
4076
|
+
}
|
|
4077
|
+
.muka-tabs--align-fill .muka-tabs__trigger {
|
|
4078
|
+
flex: 1;
|
|
4079
|
+
}
|
|
4080
|
+
|
|
4081
|
+
/* Tab List — strip container */
|
|
4082
|
+
.muka-tabs__list {
|
|
4083
|
+
display: flex;
|
|
4084
|
+
align-items: center;
|
|
4085
|
+
position: relative;
|
|
4086
|
+
z-index: 2;
|
|
4087
|
+
border-bottom: 1px solid var(--tabs-trigger-color-default-border);
|
|
4088
|
+
}
|
|
4089
|
+
|
|
4090
|
+
/* Padding: inset the tabs; the divider (border) still spans the full width */
|
|
4091
|
+
.muka-tabs--padding-default .muka-tabs__list {
|
|
4092
|
+
padding-inline: var(--tabs-list-padding-x);
|
|
4093
|
+
}
|
|
4094
|
+
|
|
4095
|
+
/* Tab Trigger — clean underline style */
|
|
4096
|
+
.muka-tabs__trigger {
|
|
4097
|
+
display: inline-flex;
|
|
4098
|
+
align-items: center;
|
|
4099
|
+
justify-content: center;
|
|
4100
|
+
gap: var(--spacing-1);
|
|
4101
|
+
background: transparent;
|
|
4102
|
+
border: none;
|
|
4103
|
+
cursor: pointer;
|
|
4104
|
+
user-select: none;
|
|
4105
|
+
transition: background-color 0.2s ease, color 0.2s ease;
|
|
4106
|
+
outline: none;
|
|
4107
|
+
white-space: nowrap;
|
|
4108
|
+
position: relative;
|
|
4109
|
+
z-index: 2;
|
|
4110
|
+
color: var(--tabs-trigger-color-default-foreground);
|
|
4111
|
+
|
|
4112
|
+
/* Default MD size values */
|
|
4113
|
+
min-height: var(--tabs-trigger-min-height-md);
|
|
4114
|
+
padding: var(--spacing-3);
|
|
4115
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
4116
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
4117
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
4118
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
4119
|
+
}
|
|
4120
|
+
|
|
4121
|
+
/* Size Variants */
|
|
4122
|
+
.muka-tabs--size-sm .muka-tabs__trigger {
|
|
4123
|
+
min-height: var(--tabs-trigger-min-height-sm);
|
|
4124
|
+
padding: 0 var(--spacing-2);
|
|
4125
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4126
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4127
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4128
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4129
|
+
}
|
|
4130
|
+
|
|
4131
|
+
.muka-tabs--size-lg .muka-tabs__trigger {
|
|
4132
|
+
min-height: var(--tabs-trigger-min-height-lg);
|
|
4133
|
+
padding: var(--spacing-4);
|
|
4134
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
4135
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
4136
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
4137
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
4138
|
+
}
|
|
4139
|
+
|
|
4140
|
+
/* Hover state */
|
|
4141
|
+
.muka-tabs__trigger:hover:not(:disabled):not(.muka-tabs__trigger--current) {
|
|
4142
|
+
color: var(--tabs-trigger-color-hover-foreground);
|
|
4143
|
+
}
|
|
4144
|
+
|
|
4145
|
+
/* Current tab */
|
|
4146
|
+
.muka-tabs__trigger--current {
|
|
4147
|
+
color: var(--tabs-trigger-color-current-foreground);
|
|
4148
|
+
}
|
|
4149
|
+
|
|
4150
|
+
/* Active bottom border (underline) */
|
|
4151
|
+
.muka-tabs__trigger--current::after {
|
|
4152
|
+
content: '';
|
|
4153
|
+
position: absolute;
|
|
4154
|
+
bottom: -1px; /* Overlap the 1px border */
|
|
4155
|
+
left: 0;
|
|
4156
|
+
right: 0;
|
|
4157
|
+
height: var(--tabs-indicator-height-md);
|
|
4158
|
+
background-color: var(--tabs-indicator-color);
|
|
4159
|
+
border-bottom-left-radius: 1px;
|
|
4160
|
+
border-bottom-right-radius: 1px;
|
|
4161
|
+
border-top-left-radius: 3px;
|
|
4162
|
+
border-top-right-radius: 3px;
|
|
4163
|
+
z-index: 3;
|
|
4164
|
+
}
|
|
4165
|
+
|
|
4166
|
+
.muka-tabs--size-sm .muka-tabs__trigger--current::after {
|
|
4167
|
+
height: var(--tabs-indicator-height-sm);
|
|
4168
|
+
}
|
|
4169
|
+
.muka-tabs--size-lg .muka-tabs__trigger--current::after {
|
|
4170
|
+
height: var(--tabs-indicator-height-lg);
|
|
4171
|
+
}
|
|
4172
|
+
|
|
4173
|
+
.muka-tabs__trigger--disabled {
|
|
4174
|
+
color: var(--tabs-trigger-color-disabled-foreground);
|
|
4175
|
+
cursor: not-allowed;
|
|
4176
|
+
}
|
|
4177
|
+
|
|
4178
|
+
.muka-tabs__trigger:focus-visible {
|
|
4179
|
+
outline: 2px solid var(--color-border-focus);
|
|
4180
|
+
outline-offset: -2px;
|
|
4181
|
+
}
|
|
4182
|
+
|
|
4183
|
+
/* Label: Figma pads the label 8px either side, so with the 4px gap a leading
|
|
4184
|
+
item sits 12px from the text */
|
|
4185
|
+
.muka-tabs__label {
|
|
4186
|
+
padding: 0 var(--spacing-2);
|
|
4187
|
+
}
|
|
4188
|
+
|
|
4189
|
+
/* Leading item: icon, avatar, avatar group or data pie chart */
|
|
4190
|
+
.muka-tabs__leading {
|
|
4191
|
+
display: flex;
|
|
4192
|
+
align-items: center;
|
|
4193
|
+
justify-content: center;
|
|
4194
|
+
flex-shrink: 0;
|
|
4195
|
+
}
|
|
4196
|
+
.muka-tabs__trigger .muka-icon {
|
|
4197
|
+
color: inherit;
|
|
4198
|
+
}
|
|
4199
|
+
/* Icon sizes only: avatars and pie charts are sized through their size prop */
|
|
4200
|
+
.muka-tabs--size-sm .muka-tabs__leading > svg,
|
|
4201
|
+
.muka-tabs--size-sm .muka-tabs__leading > .muka-icon svg { width: 16px; height: 16px; }
|
|
4202
|
+
.muka-tabs--size-md .muka-tabs__leading > svg,
|
|
4203
|
+
.muka-tabs--size-md .muka-tabs__leading > .muka-icon svg { width: 20px; height: 20px; }
|
|
4204
|
+
.muka-tabs--size-lg .muka-tabs__leading > svg,
|
|
4205
|
+
.muka-tabs--size-lg .muka-tabs__leading > .muka-icon svg { width: 24px; height: 24px; }
|
|
4206
|
+
|
|
4207
|
+
/* Responsive Scroll behavior on small screens */
|
|
4208
|
+
@media (max-width: 768px) {
|
|
4209
|
+
.muka-tabs__list {
|
|
4210
|
+
/* Make scrollable */
|
|
4211
|
+
overflow-x: auto;
|
|
4212
|
+
overflow-y: hidden;
|
|
4213
|
+
/* Force left alignment on mobile to prevent clipping when scrolling */
|
|
4214
|
+
justify-content: flex-start !important;
|
|
4215
|
+
max-width: 100vw;
|
|
4216
|
+
-webkit-overflow-scrolling: touch;
|
|
4217
|
+
/* Hide scrollbar for cleaner look */
|
|
4218
|
+
scrollbar-width: none;
|
|
4219
|
+
}
|
|
4220
|
+
.muka-tabs__list::-webkit-scrollbar {
|
|
4221
|
+
display: none;
|
|
4222
|
+
}
|
|
4223
|
+
/* Remove flex: 1 behavior for Fill tabs on mobile so they map correctly */
|
|
4224
|
+
.muka-tabs--align-fill .muka-tabs__trigger {
|
|
4225
|
+
flex: 0 0 auto;
|
|
4226
|
+
}
|
|
4227
|
+
}
|
|
4228
|
+
|
|
4229
|
+
/* Tab Panel — content area */
|
|
4230
|
+
.muka-tabs__panel {
|
|
4231
|
+
background-color: var(--tabs-panel-background);
|
|
4232
|
+
/* border-top: var(--border-width-regular) solid var(--tabs-panel-border); removed in favor of the new tablist border */
|
|
4233
|
+
border-bottom: var(--border-width-regular) solid var(--tabs-panel-border);
|
|
4234
|
+
padding: var(--spacing-4);
|
|
4235
|
+
position: relative;
|
|
4236
|
+
z-index: 1;
|
|
4237
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4238
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4239
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4240
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4241
|
+
}
|
|
4242
|
+
|
|
4243
|
+
.muka-tabs__panel:focus-visible {
|
|
4244
|
+
outline: 2px solid var(--color-border-focus);
|
|
4245
|
+
outline-offset: 2px;
|
|
4246
|
+
}
|
|
4247
|
+
|
|
4248
|
+
|
|
4248
4249
|
/* Table */
|
|
4249
4250
|
/* Table Component Styles - Using Muka Design Tokens */
|
|
4250
4251
|
|
|
@@ -14846,9 +14847,12 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14846
14847
|
|
|
14847
14848
|
/* Avatar Group (Figma "Avatar Stack") */
|
|
14848
14849
|
.muka-avatar-group {
|
|
14850
|
+
position: relative;
|
|
14849
14851
|
display: inline-flex;
|
|
14850
14852
|
align-items: center;
|
|
14851
14853
|
flex-direction: row;
|
|
14854
|
+
/* Never stretch to a grid cell or column, so the badge stays on the last avatar */
|
|
14855
|
+
width: fit-content;
|
|
14852
14856
|
}
|
|
14853
14857
|
|
|
14854
14858
|
/* Later avatars sit on top of earlier ones (DOM order); a hovered one comes to the front */
|
|
@@ -14868,7 +14872,7 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14868
14872
|
box-shadow: 0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
|
|
14869
14873
|
}
|
|
14870
14874
|
|
|
14871
|
-
/* Overlap. Figma specifies exact values for
|
|
14875
|
+
/* Overlap. Figma specifies exact values for 40 / 32 / 24px avatars (xs / 2xs / 3xs);
|
|
14872
14876
|
other sizes use the same proportions: tight 2/3, compact 1/2, spacious 1/3. */
|
|
14873
14877
|
.muka-avatar-group--4xs { --muka-avatar-group-size: var(--avatar-size-4xs); }
|
|
14874
14878
|
.muka-avatar-group--3xs { --muka-avatar-group-size: var(--avatar-size-3xs); }
|
|
@@ -14883,13 +14887,13 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14883
14887
|
.muka-avatar-group--compact { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 2); }
|
|
14884
14888
|
.muka-avatar-group--spacious { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 3); }
|
|
14885
14889
|
|
|
14886
|
-
.muka-avatar-group--tight.muka-avatar-group--
|
|
14890
|
+
.muka-avatar-group--tight.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-xs); }
|
|
14887
14891
|
.muka-avatar-group--tight.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-2xs); }
|
|
14888
14892
|
.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--
|
|
14893
|
+
.muka-avatar-group--compact.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-xs); }
|
|
14890
14894
|
.muka-avatar-group--compact.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-2xs); }
|
|
14891
14895
|
.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--
|
|
14896
|
+
.muka-avatar-group--spacious.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-xs); }
|
|
14893
14897
|
.muka-avatar-group--spacious.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-2xs); }
|
|
14894
14898
|
.muka-avatar-group--spacious.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-3xs); }
|
|
14895
14899
|
|
|
@@ -14897,6 +14901,14 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14897
14901
|
margin-left: calc(-1 * var(--muka-avatar-group-overlap));
|
|
14898
14902
|
}
|
|
14899
14903
|
|
|
14904
|
+
/* Badge: a BadgeNumber on the top-right corner of the stack, above every avatar */
|
|
14905
|
+
.muka-avatar-group__badge {
|
|
14906
|
+
position: absolute;
|
|
14907
|
+
top: calc(-1 * var(--avatar-group-badge-offset));
|
|
14908
|
+
right: calc(-1 * var(--avatar-group-badge-offset));
|
|
14909
|
+
z-index: 20;
|
|
14910
|
+
}
|
|
14911
|
+
|
|
14900
14912
|
/* Overflow avatar styling */
|
|
14901
14913
|
.muka-avatar--overflow {
|
|
14902
14914
|
background-color: var(--avatar-color-background-default);
|