@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
package/dist/styles/index.css
CHANGED
|
@@ -2080,15 +2080,16 @@ body {
|
|
|
2080
2080
|
--avatar-status-size-xl: 1.5rem;
|
|
2081
2081
|
--avatar-group-ring-width: 0.125rem;
|
|
2082
2082
|
--avatar-group-ring-color: #fdfcfd;
|
|
2083
|
-
--avatar-group-overlap-tight-
|
|
2084
|
-
--avatar-group-overlap-tight-2xs: 1.
|
|
2083
|
+
--avatar-group-overlap-tight-xs: 1.75rem;
|
|
2084
|
+
--avatar-group-overlap-tight-2xs: 1.5rem;
|
|
2085
2085
|
--avatar-group-overlap-tight-3xs: 1rem;
|
|
2086
|
-
--avatar-group-overlap-compact-
|
|
2087
|
-
--avatar-group-overlap-compact-2xs:
|
|
2088
|
-
--avatar-group-overlap-compact-3xs: 0.
|
|
2089
|
-
--avatar-group-overlap-spacious-
|
|
2086
|
+
--avatar-group-overlap-compact-xs: 1.5rem;
|
|
2087
|
+
--avatar-group-overlap-compact-2xs: 1.125rem;
|
|
2088
|
+
--avatar-group-overlap-compact-3xs: 0.875rem;
|
|
2089
|
+
--avatar-group-overlap-spacious-xs: 1rem;
|
|
2090
2090
|
--avatar-group-overlap-spacious-2xs: 0.75rem;
|
|
2091
2091
|
--avatar-group-overlap-spacious-3xs: 0.5rem;
|
|
2092
|
+
--avatar-group-badge-offset: 0.25rem;
|
|
2092
2093
|
--toast-color-info-background: #211f26;
|
|
2093
2094
|
--toast-color-info-foreground: #fdfcfd;
|
|
2094
2095
|
--toast-color-info-accent: #edf2fe;
|
|
@@ -2494,6 +2495,116 @@ body {
|
|
|
2494
2495
|
}
|
|
2495
2496
|
|
|
2496
2497
|
|
|
2498
|
+
/* View */
|
|
2499
|
+
/* View Component Styles */
|
|
2500
|
+
|
|
2501
|
+
/* ─── Base layout ─────────────────────────────────────── */
|
|
2502
|
+
|
|
2503
|
+
.muka-view {
|
|
2504
|
+
display: flex;
|
|
2505
|
+
flex-direction: column;
|
|
2506
|
+
height: 100dvh;
|
|
2507
|
+
background-color: var(--view-color-background);
|
|
2508
|
+
position: relative;
|
|
2509
|
+
isolation: isolate;
|
|
2510
|
+
box-sizing: border-box;
|
|
2511
|
+
|
|
2512
|
+
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2513
|
+
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2514
|
+
--view-sidebar-width: 240px;
|
|
2515
|
+
}
|
|
2516
|
+
|
|
2517
|
+
/* ─── Surface level variants ─────────────────────────── */
|
|
2518
|
+
|
|
2519
|
+
.muka-view--surface-3 {
|
|
2520
|
+
background-color: var(--color-surface-level3);
|
|
2521
|
+
}
|
|
2522
|
+
|
|
2523
|
+
/* ─── Large screens: make room for the left sidebar ──────────
|
|
2524
|
+
A footer nav with desktopAs="sidebar" becomes a fixed 240px left rail at
|
|
2525
|
+
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2526
|
+
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2527
|
+
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2528
|
+
for a sidebar that hasn't rendered yet. */
|
|
2529
|
+
@media (min-width: 1024px) {
|
|
2530
|
+
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2531
|
+
padding-left: var(--view-sidebar-width);
|
|
2532
|
+
}
|
|
2533
|
+
}
|
|
2534
|
+
|
|
2535
|
+
/* ─── TopBar elevation ────────────────────────────────── */
|
|
2536
|
+
|
|
2537
|
+
.muka-view .muka-topbar {
|
|
2538
|
+
flex-shrink: 0;
|
|
2539
|
+
z-index: 3;
|
|
2540
|
+
box-shadow: var(--shadow-level2);
|
|
2541
|
+
}
|
|
2542
|
+
|
|
2543
|
+
/* ─── Scrollable body ─────────────────────────────────── */
|
|
2544
|
+
|
|
2545
|
+
.muka-view__body {
|
|
2546
|
+
flex: 1 1 0%;
|
|
2547
|
+
min-height: 0;
|
|
2548
|
+
overflow-y: auto;
|
|
2549
|
+
overflow-x: clip;
|
|
2550
|
+
z-index: 1;
|
|
2551
|
+
|
|
2552
|
+
/* Column flow so the footer (now a scroll-area child) can pin to the bottom and
|
|
2553
|
+
content scrolls *behind* it — letting a floating BottomBar's frosted backdrop
|
|
2554
|
+
reveal the content underneath. */
|
|
2555
|
+
display: flex;
|
|
2556
|
+
flex-direction: column;
|
|
2557
|
+
}
|
|
2558
|
+
|
|
2559
|
+
/* Inner wrapper constrains content width at the large tier (enterprise desktop)
|
|
2560
|
+
using the alias-layer section/container tokens, while the body scrolls full
|
|
2561
|
+
width. Full-bleed below large. */
|
|
2562
|
+
.muka-view__body-inner {
|
|
2563
|
+
width: 100%;
|
|
2564
|
+
/* Grow on short content so the sticky footer is pushed to the bottom rather
|
|
2565
|
+
than floating mid-screen. */
|
|
2566
|
+
flex: 1 0 auto;
|
|
2567
|
+
}
|
|
2568
|
+
|
|
2569
|
+
@media (min-width: 1024px) {
|
|
2570
|
+
.muka-view:not([data-size]) .muka-view__body-inner {
|
|
2571
|
+
max-width: var(--container-max-width-xl);
|
|
2572
|
+
margin-inline: auto;
|
|
2573
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2574
|
+
}
|
|
2575
|
+
}
|
|
2576
|
+
|
|
2577
|
+
.muka-view[data-size='lg'] .muka-view__body-inner {
|
|
2578
|
+
max-width: var(--container-max-width-xl);
|
|
2579
|
+
margin-inline: auto;
|
|
2580
|
+
padding-inline: var(--section-padding-horizontal-default);
|
|
2581
|
+
}
|
|
2582
|
+
|
|
2583
|
+
/* ─── Footer (e.g. BottomBar) ─────────────────────────── */
|
|
2584
|
+
|
|
2585
|
+
.muka-view__footer {
|
|
2586
|
+
position: sticky;
|
|
2587
|
+
bottom: 0;
|
|
2588
|
+
flex-shrink: 0;
|
|
2589
|
+
z-index: 2;
|
|
2590
|
+
}
|
|
2591
|
+
|
|
2592
|
+
/* Inside an AppShell, the persistent left rail replaces the per-view bottom
|
|
2593
|
+
navigation at the large tier, so hide a footer that holds a navigation bar.
|
|
2594
|
+
Scoped to `.muka-app-shell` so bare Views (and the standalone
|
|
2595
|
+
desktopAs="sidebar" footer pattern above) are unaffected. Action-bar footers
|
|
2596
|
+
(`.muka-bottombar--actions`) don't match and remain at the bottom. */
|
|
2597
|
+
@media (min-width: 1024px) {
|
|
2598
|
+
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2599
|
+
display: none;
|
|
2600
|
+
}
|
|
2601
|
+
}
|
|
2602
|
+
|
|
2603
|
+
.muka-app-shell[data-size='lg'] .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2604
|
+
display: none;
|
|
2605
|
+
}
|
|
2606
|
+
|
|
2607
|
+
|
|
2497
2608
|
/* Typography */
|
|
2498
2609
|
.muka-typography-catalog {
|
|
2499
2610
|
display: flex;
|
|
@@ -2844,122 +2955,175 @@ body {
|
|
|
2844
2955
|
}
|
|
2845
2956
|
|
|
2846
2957
|
|
|
2847
|
-
/*
|
|
2848
|
-
/*
|
|
2849
|
-
|
|
2850
|
-
/* ─── Base layout ─────────────────────────────────────── */
|
|
2958
|
+
/* Toggle */
|
|
2959
|
+
/* Toggle Component Styles - Using Muka Design Tokens */
|
|
2851
2960
|
|
|
2852
|
-
|
|
2961
|
+
/* Wrapper container */
|
|
2962
|
+
.muka-toggle {
|
|
2853
2963
|
display: flex;
|
|
2854
|
-
|
|
2855
|
-
|
|
2856
|
-
background-color: var(--view-color-background);
|
|
2964
|
+
align-items: center;
|
|
2965
|
+
gap: var(--spacing-2);
|
|
2857
2966
|
position: relative;
|
|
2858
|
-
|
|
2859
|
-
box-sizing: border-box;
|
|
2860
|
-
|
|
2861
|
-
/* Width reserved for the footer nav once it becomes a left sidebar at the
|
|
2862
|
-
large tier (matches BottomBar's desktopAs="sidebar" rail width). */
|
|
2863
|
-
--view-sidebar-width: 240px;
|
|
2967
|
+
padding: var(--spacing-4) 0;
|
|
2864
2968
|
}
|
|
2865
2969
|
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
.muka-view--surface-3 {
|
|
2869
|
-
background-color: var(--color-surface-level3);
|
|
2970
|
+
.muka-toggle--with-caption {
|
|
2971
|
+
padding: var(--spacing-5) 0;
|
|
2870
2972
|
}
|
|
2871
2973
|
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
≥1024px. Offset the shell so the TopBar/body clear it — tied to the sidebar's
|
|
2875
|
-
actual presence (the `.muka-bottombar--desktop-sidebar` element) rather than
|
|
2876
|
-
the View's `size`, so a forced `size="lg"` below 1024px never reserves space
|
|
2877
|
-
for a sidebar that hasn't rendered yet. */
|
|
2878
|
-
@media (min-width: 1024px) {
|
|
2879
|
-
.muka-view:has(.muka-bottombar--desktop-sidebar) {
|
|
2880
|
-
padding-left: var(--view-sidebar-width);
|
|
2881
|
-
}
|
|
2974
|
+
.muka-toggle--disabled {
|
|
2975
|
+
opacity: 0.6;
|
|
2882
2976
|
}
|
|
2883
2977
|
|
|
2884
|
-
/*
|
|
2885
|
-
|
|
2886
|
-
|
|
2978
|
+
/* Icon */
|
|
2979
|
+
.muka-toggle__icon {
|
|
2980
|
+
display: flex;
|
|
2981
|
+
align-items: center;
|
|
2982
|
+
justify-content: center;
|
|
2887
2983
|
flex-shrink: 0;
|
|
2888
|
-
|
|
2889
|
-
|
|
2984
|
+
width: var(--icon-size-default);
|
|
2985
|
+
height: var(--icon-size-default);
|
|
2986
|
+
color: var(--color-text-default-default);
|
|
2890
2987
|
}
|
|
2891
2988
|
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
min-height: 0;
|
|
2897
|
-
overflow-y: auto;
|
|
2898
|
-
overflow-x: clip;
|
|
2899
|
-
z-index: 1;
|
|
2989
|
+
.muka-toggle__icon svg {
|
|
2990
|
+
width: 100%;
|
|
2991
|
+
height: 100%;
|
|
2992
|
+
}
|
|
2900
2993
|
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
reveal the content underneath. */
|
|
2994
|
+
/* Content area (label + caption) */
|
|
2995
|
+
.muka-toggle__content {
|
|
2904
2996
|
display: flex;
|
|
2905
2997
|
flex-direction: column;
|
|
2998
|
+
flex: 1;
|
|
2999
|
+
min-width: 0;
|
|
3000
|
+
gap: var(--spacing-1);
|
|
2906
3001
|
}
|
|
2907
3002
|
|
|
2908
|
-
/*
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
3003
|
+
/* Label */
|
|
3004
|
+
.muka-toggle__label {
|
|
3005
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
3006
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
3007
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
3008
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
3009
|
+
color: var(--color-text-default-default);
|
|
3010
|
+
cursor: pointer;
|
|
2916
3011
|
}
|
|
2917
3012
|
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
}
|
|
3013
|
+
.muka-toggle--with-caption .muka-toggle__label {
|
|
3014
|
+
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
3015
|
+
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
3016
|
+
font-size: var(--text-label-lg-semibold-fontSize);
|
|
3017
|
+
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
2924
3018
|
}
|
|
2925
3019
|
|
|
2926
|
-
.muka-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
padding-inline: var(--section-padding-horizontal-default);
|
|
3020
|
+
.muka-toggle--disabled .muka-toggle__label {
|
|
3021
|
+
color: var(--color-text-subtle-default);
|
|
3022
|
+
cursor: not-allowed;
|
|
2930
3023
|
}
|
|
2931
3024
|
|
|
2932
|
-
/*
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
3025
|
+
/* Caption */
|
|
3026
|
+
.muka-toggle__caption {
|
|
3027
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
3028
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3029
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
3030
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
3031
|
+
color: var(--color-text-subtle-default);
|
|
2939
3032
|
}
|
|
2940
3033
|
|
|
2941
|
-
/*
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
.muka-app-shell .muka-view__footer:has(.muka-bottombar--navigation) {
|
|
2948
|
-
display: none;
|
|
2949
|
-
}
|
|
3034
|
+
/* Switch container */
|
|
3035
|
+
.muka-toggle__switch {
|
|
3036
|
+
position: relative;
|
|
3037
|
+
display: inline-flex;
|
|
3038
|
+
flex-shrink: 0;
|
|
3039
|
+
cursor: pointer;
|
|
2950
3040
|
}
|
|
2951
3041
|
|
|
2952
|
-
.muka-
|
|
2953
|
-
|
|
3042
|
+
.muka-toggle--disabled .muka-toggle__switch {
|
|
3043
|
+
cursor: not-allowed;
|
|
2954
3044
|
}
|
|
2955
3045
|
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
3046
|
+
/* Hidden native input */
|
|
3047
|
+
.muka-toggle__input {
|
|
3048
|
+
position: absolute;
|
|
3049
|
+
width: 1px;
|
|
3050
|
+
height: 1px;
|
|
3051
|
+
padding: 0;
|
|
3052
|
+
margin: -1px;
|
|
3053
|
+
overflow: hidden;
|
|
3054
|
+
clip: rect(0, 0, 0, 0);
|
|
3055
|
+
white-space: nowrap;
|
|
3056
|
+
border: 0;
|
|
3057
|
+
}
|
|
3058
|
+
|
|
3059
|
+
/* Track (background pill) */
|
|
3060
|
+
.muka-toggle__track {
|
|
3061
|
+
display: flex;
|
|
3062
|
+
align-items: center;
|
|
3063
|
+
width: var(--toggle-track-width);
|
|
3064
|
+
height: var(--toggle-track-height);
|
|
3065
|
+
border-radius: var(--toggle-track-radius);
|
|
3066
|
+
background-color: var(--toggle-track-color-off);
|
|
3067
|
+
transition: background-color 0.2s ease;
|
|
3068
|
+
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3069
|
+
position: relative;
|
|
3070
|
+
}
|
|
3071
|
+
|
|
3072
|
+
/* Knob (sliding circle) */
|
|
3073
|
+
.muka-toggle__knob {
|
|
3074
|
+
position: absolute;
|
|
3075
|
+
width: var(--toggle-knob-size);
|
|
3076
|
+
height: var(--toggle-knob-size);
|
|
3077
|
+
border-radius: var(--border-radius-full);
|
|
3078
|
+
background-color: var(--toggle-knob-color-default);
|
|
3079
|
+
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3080
|
+
left: var(--toggle-knob-offset);
|
|
3081
|
+
transition: left 0.2s ease, transform 0.2s ease;
|
|
3082
|
+
}
|
|
3083
|
+
|
|
3084
|
+
/* Focus state */
|
|
3085
|
+
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3086
|
+
outline: 2px solid var(--color-border-focus);
|
|
3087
|
+
outline-offset: 2px;
|
|
3088
|
+
}
|
|
3089
|
+
|
|
3090
|
+
/* Checked (on) state */
|
|
3091
|
+
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3092
|
+
background-color: var(--toggle-track-color-on);
|
|
3093
|
+
}
|
|
3094
|
+
|
|
3095
|
+
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3096
|
+
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3097
|
+
}
|
|
3098
|
+
|
|
3099
|
+
/* Disabled state */
|
|
3100
|
+
.muka-toggle--disabled .muka-toggle__track {
|
|
3101
|
+
background-color: var(--toggle-track-color-disabled);
|
|
3102
|
+
box-shadow: none;
|
|
3103
|
+
}
|
|
3104
|
+
|
|
3105
|
+
.muka-toggle--disabled .muka-toggle__knob {
|
|
3106
|
+
background-color: var(--toggle-knob-color-disabled);
|
|
3107
|
+
box-shadow: none;
|
|
3108
|
+
}
|
|
3109
|
+
|
|
3110
|
+
/* Divider */
|
|
3111
|
+
.muka-toggle__divider {
|
|
3112
|
+
position: absolute;
|
|
3113
|
+
bottom: 0;
|
|
3114
|
+
left: 0;
|
|
3115
|
+
right: 0;
|
|
3116
|
+
height: 1px;
|
|
3117
|
+
background-color: var(--color-border-muted);
|
|
3118
|
+
}
|
|
3119
|
+
|
|
3120
|
+
|
|
3121
|
+
/* Toast */
|
|
3122
|
+
/* Toast Component Styles - Using Muka Design Tokens */
|
|
3123
|
+
|
|
3124
|
+
.muka-toast {
|
|
3125
|
+
display: flex;
|
|
3126
|
+
align-items: flex-start;
|
|
2963
3127
|
gap: var(--toast-gap);
|
|
2964
3128
|
padding: var(--toast-padding-y) var(--toast-padding-x);
|
|
2965
3129
|
border-radius: var(--toast-radius);
|
|
@@ -3649,388 +3813,35 @@ body {
|
|
|
3649
3813
|
border-color var(--motion-duration-micro) var(--motion-easing-enter);
|
|
3650
3814
|
}
|
|
3651
3815
|
|
|
3652
|
-
.muka-thumbnail__remove:hover {
|
|
3653
|
-
color: var(--button-color-tertiary-foreground-hover);
|
|
3654
|
-
background-color: var(--button-color-tertiary-background-hover);
|
|
3655
|
-
border-color: var(--button-color-tertiary-border-hover);
|
|
3656
|
-
}
|
|
3657
|
-
|
|
3658
|
-
.muka-thumbnail__remove:active {
|
|
3659
|
-
color: var(--button-color-tertiary-foreground-pressed);
|
|
3660
|
-
background-color: var(--button-color-tertiary-background-pressed);
|
|
3661
|
-
border-color: var(--button-color-tertiary-border-pressed);
|
|
3662
|
-
}
|
|
3663
|
-
|
|
3664
|
-
.muka-thumbnail__remove:focus-visible {
|
|
3665
|
-
outline: 2px solid var(--color-border-focus);
|
|
3666
|
-
outline-offset: 2px;
|
|
3667
|
-
}
|
|
3668
|
-
|
|
3669
|
-
/* ─── Reduced motion ──────────────────────────────────── */
|
|
3670
|
-
@media (prefers-reduced-motion: reduce) {
|
|
3671
|
-
.muka-thumbnail__image,
|
|
3672
|
-
.muka-thumbnail__remove {
|
|
3673
|
-
transition: none;
|
|
3674
|
-
}
|
|
3675
|
-
|
|
3676
|
-
.muka-thumbnail--interactive:hover .muka-thumbnail__image {
|
|
3677
|
-
transform: none;
|
|
3678
|
-
}
|
|
3679
|
-
}
|
|
3680
|
-
|
|
3681
|
-
|
|
3682
|
-
/* Toggle */
|
|
3683
|
-
/* Toggle Component Styles - Using Muka Design Tokens */
|
|
3684
|
-
|
|
3685
|
-
/* Wrapper container */
|
|
3686
|
-
.muka-toggle {
|
|
3687
|
-
display: flex;
|
|
3688
|
-
align-items: center;
|
|
3689
|
-
gap: var(--spacing-2);
|
|
3690
|
-
position: relative;
|
|
3691
|
-
padding: var(--spacing-4) 0;
|
|
3692
|
-
}
|
|
3693
|
-
|
|
3694
|
-
.muka-toggle--with-caption {
|
|
3695
|
-
padding: var(--spacing-5) 0;
|
|
3696
|
-
}
|
|
3697
|
-
|
|
3698
|
-
.muka-toggle--disabled {
|
|
3699
|
-
opacity: 0.6;
|
|
3700
|
-
}
|
|
3701
|
-
|
|
3702
|
-
/* Icon */
|
|
3703
|
-
.muka-toggle__icon {
|
|
3704
|
-
display: flex;
|
|
3705
|
-
align-items: center;
|
|
3706
|
-
justify-content: center;
|
|
3707
|
-
flex-shrink: 0;
|
|
3708
|
-
width: var(--icon-size-default);
|
|
3709
|
-
height: var(--icon-size-default);
|
|
3710
|
-
color: var(--color-text-default-default);
|
|
3711
|
-
}
|
|
3712
|
-
|
|
3713
|
-
.muka-toggle__icon svg {
|
|
3714
|
-
width: 100%;
|
|
3715
|
-
height: 100%;
|
|
3716
|
-
}
|
|
3717
|
-
|
|
3718
|
-
/* Content area (label + caption) */
|
|
3719
|
-
.muka-toggle__content {
|
|
3720
|
-
display: flex;
|
|
3721
|
-
flex-direction: column;
|
|
3722
|
-
flex: 1;
|
|
3723
|
-
min-width: 0;
|
|
3724
|
-
gap: var(--spacing-1);
|
|
3725
|
-
}
|
|
3726
|
-
|
|
3727
|
-
/* Label */
|
|
3728
|
-
.muka-toggle__label {
|
|
3729
|
-
font-family: var(--text-label-lg-regular-fontFamily);
|
|
3730
|
-
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
3731
|
-
font-size: var(--text-label-lg-regular-fontSize);
|
|
3732
|
-
line-height: var(--text-label-lg-regular-lineHeight);
|
|
3733
|
-
color: var(--color-text-default-default);
|
|
3734
|
-
cursor: pointer;
|
|
3735
|
-
}
|
|
3736
|
-
|
|
3737
|
-
.muka-toggle--with-caption .muka-toggle__label {
|
|
3738
|
-
font-family: var(--text-label-lg-semibold-fontFamily);
|
|
3739
|
-
font-weight: var(--text-label-lg-semibold-fontWeight);
|
|
3740
|
-
font-size: var(--text-label-lg-semibold-fontSize);
|
|
3741
|
-
line-height: var(--text-label-lg-semibold-lineHeight);
|
|
3742
|
-
}
|
|
3743
|
-
|
|
3744
|
-
.muka-toggle--disabled .muka-toggle__label {
|
|
3745
|
-
color: var(--color-text-subtle-default);
|
|
3746
|
-
cursor: not-allowed;
|
|
3747
|
-
}
|
|
3748
|
-
|
|
3749
|
-
/* Caption */
|
|
3750
|
-
.muka-toggle__caption {
|
|
3751
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
3752
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
3753
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
3754
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
3755
|
-
color: var(--color-text-subtle-default);
|
|
3756
|
-
}
|
|
3757
|
-
|
|
3758
|
-
/* Switch container */
|
|
3759
|
-
.muka-toggle__switch {
|
|
3760
|
-
position: relative;
|
|
3761
|
-
display: inline-flex;
|
|
3762
|
-
flex-shrink: 0;
|
|
3763
|
-
cursor: pointer;
|
|
3764
|
-
}
|
|
3765
|
-
|
|
3766
|
-
.muka-toggle--disabled .muka-toggle__switch {
|
|
3767
|
-
cursor: not-allowed;
|
|
3768
|
-
}
|
|
3769
|
-
|
|
3770
|
-
/* Hidden native input */
|
|
3771
|
-
.muka-toggle__input {
|
|
3772
|
-
position: absolute;
|
|
3773
|
-
width: 1px;
|
|
3774
|
-
height: 1px;
|
|
3775
|
-
padding: 0;
|
|
3776
|
-
margin: -1px;
|
|
3777
|
-
overflow: hidden;
|
|
3778
|
-
clip: rect(0, 0, 0, 0);
|
|
3779
|
-
white-space: nowrap;
|
|
3780
|
-
border: 0;
|
|
3781
|
-
}
|
|
3782
|
-
|
|
3783
|
-
/* Track (background pill) */
|
|
3784
|
-
.muka-toggle__track {
|
|
3785
|
-
display: flex;
|
|
3786
|
-
align-items: center;
|
|
3787
|
-
width: var(--toggle-track-width);
|
|
3788
|
-
height: var(--toggle-track-height);
|
|
3789
|
-
border-radius: var(--toggle-track-radius);
|
|
3790
|
-
background-color: var(--toggle-track-color-off);
|
|
3791
|
-
transition: background-color 0.2s ease;
|
|
3792
|
-
box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.16);
|
|
3793
|
-
position: relative;
|
|
3794
|
-
}
|
|
3795
|
-
|
|
3796
|
-
/* Knob (sliding circle) */
|
|
3797
|
-
.muka-toggle__knob {
|
|
3798
|
-
position: absolute;
|
|
3799
|
-
width: var(--toggle-knob-size);
|
|
3800
|
-
height: var(--toggle-knob-size);
|
|
3801
|
-
border-radius: var(--border-radius-full);
|
|
3802
|
-
background-color: var(--toggle-knob-color-default);
|
|
3803
|
-
box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3804
|
-
left: var(--toggle-knob-offset);
|
|
3805
|
-
transition: left 0.2s ease, transform 0.2s ease;
|
|
3806
|
-
}
|
|
3807
|
-
|
|
3808
|
-
/* Focus state */
|
|
3809
|
-
.muka-toggle__input:focus-visible + .muka-toggle__track {
|
|
3810
|
-
outline: 2px solid var(--color-border-focus);
|
|
3811
|
-
outline-offset: 2px;
|
|
3812
|
-
}
|
|
3813
|
-
|
|
3814
|
-
/* Checked (on) state */
|
|
3815
|
-
.muka-toggle__input:checked + .muka-toggle__track {
|
|
3816
|
-
background-color: var(--toggle-track-color-on);
|
|
3817
|
-
}
|
|
3818
|
-
|
|
3819
|
-
.muka-toggle__input:checked + .muka-toggle__track .muka-toggle__knob {
|
|
3820
|
-
left: calc(var(--toggle-track-width) - var(--toggle-knob-size) - var(--toggle-knob-offset));
|
|
3821
|
-
}
|
|
3822
|
-
|
|
3823
|
-
/* Disabled state */
|
|
3824
|
-
.muka-toggle--disabled .muka-toggle__track {
|
|
3825
|
-
background-color: var(--toggle-track-color-disabled);
|
|
3826
|
-
box-shadow: none;
|
|
3827
|
-
}
|
|
3828
|
-
|
|
3829
|
-
.muka-toggle--disabled .muka-toggle__knob {
|
|
3830
|
-
background-color: var(--toggle-knob-color-disabled);
|
|
3831
|
-
box-shadow: none;
|
|
3832
|
-
}
|
|
3833
|
-
|
|
3834
|
-
/* Divider */
|
|
3835
|
-
.muka-toggle__divider {
|
|
3836
|
-
position: absolute;
|
|
3837
|
-
bottom: 0;
|
|
3838
|
-
left: 0;
|
|
3839
|
-
right: 0;
|
|
3840
|
-
height: 1px;
|
|
3841
|
-
background-color: var(--color-border-muted);
|
|
3842
|
-
}
|
|
3843
|
-
|
|
3844
|
-
|
|
3845
|
-
/* Tabs */
|
|
3846
|
-
/* Tabs Component Styles - Clean underline style tabs matching Figma */
|
|
3847
|
-
|
|
3848
|
-
.muka-tabs {
|
|
3849
|
-
display: flex;
|
|
3850
|
-
flex-direction: column;
|
|
3851
|
-
}
|
|
3852
|
-
|
|
3853
|
-
/* Alignment Variants */
|
|
3854
|
-
.muka-tabs--align-left .muka-tabs__list {
|
|
3855
|
-
justify-content: flex-start;
|
|
3856
|
-
}
|
|
3857
|
-
.muka-tabs--align-center .muka-tabs__list {
|
|
3858
|
-
justify-content: center;
|
|
3859
|
-
}
|
|
3860
|
-
.muka-tabs--align-fill .muka-tabs__list {
|
|
3861
|
-
justify-content: space-between;
|
|
3862
|
-
}
|
|
3863
|
-
.muka-tabs--align-fill .muka-tabs__trigger {
|
|
3864
|
-
flex: 1;
|
|
3865
|
-
}
|
|
3866
|
-
|
|
3867
|
-
/* Tab List — strip container */
|
|
3868
|
-
.muka-tabs__list {
|
|
3869
|
-
display: flex;
|
|
3870
|
-
align-items: center;
|
|
3871
|
-
position: relative;
|
|
3872
|
-
z-index: 2;
|
|
3873
|
-
border-bottom: 1px solid var(--tabs-trigger-color-default-border);
|
|
3874
|
-
}
|
|
3875
|
-
|
|
3876
|
-
/* Padding: inset the tabs; the divider (border) still spans the full width */
|
|
3877
|
-
.muka-tabs--padding-default .muka-tabs__list {
|
|
3878
|
-
padding-inline: var(--tabs-list-padding-x);
|
|
3879
|
-
}
|
|
3880
|
-
|
|
3881
|
-
/* Tab Trigger — clean underline style */
|
|
3882
|
-
.muka-tabs__trigger {
|
|
3883
|
-
display: inline-flex;
|
|
3884
|
-
align-items: center;
|
|
3885
|
-
justify-content: center;
|
|
3886
|
-
gap: var(--spacing-1);
|
|
3887
|
-
background: transparent;
|
|
3888
|
-
border: none;
|
|
3889
|
-
cursor: pointer;
|
|
3890
|
-
user-select: none;
|
|
3891
|
-
transition: background-color 0.2s ease, color 0.2s ease;
|
|
3892
|
-
outline: none;
|
|
3893
|
-
white-space: nowrap;
|
|
3894
|
-
position: relative;
|
|
3895
|
-
z-index: 2;
|
|
3896
|
-
color: var(--tabs-trigger-color-default-foreground);
|
|
3897
|
-
|
|
3898
|
-
/* Default MD size values */
|
|
3899
|
-
min-height: var(--tabs-trigger-min-height-md);
|
|
3900
|
-
padding: var(--spacing-3);
|
|
3901
|
-
font-family: var(--text-label-md-regular-fontFamily);
|
|
3902
|
-
font-weight: var(--text-label-md-regular-fontWeight);
|
|
3903
|
-
font-size: var(--text-label-md-regular-fontSize);
|
|
3904
|
-
line-height: var(--text-label-md-regular-lineHeight);
|
|
3905
|
-
}
|
|
3906
|
-
|
|
3907
|
-
/* Size Variants */
|
|
3908
|
-
.muka-tabs--size-sm .muka-tabs__trigger {
|
|
3909
|
-
min-height: var(--tabs-trigger-min-height-sm);
|
|
3910
|
-
padding: 0 var(--spacing-2);
|
|
3911
|
-
font-family: var(--text-label-sm-regular-fontFamily);
|
|
3912
|
-
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
3913
|
-
font-size: var(--text-label-sm-regular-fontSize);
|
|
3914
|
-
line-height: var(--text-label-sm-regular-lineHeight);
|
|
3915
|
-
}
|
|
3916
|
-
|
|
3917
|
-
.muka-tabs--size-lg .muka-tabs__trigger {
|
|
3918
|
-
min-height: var(--tabs-trigger-min-height-lg);
|
|
3919
|
-
padding: var(--spacing-4);
|
|
3920
|
-
font-family: var(--text-label-lg-regular-fontFamily);
|
|
3921
|
-
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
3922
|
-
font-size: var(--text-label-lg-regular-fontSize);
|
|
3923
|
-
line-height: var(--text-label-lg-regular-lineHeight);
|
|
3924
|
-
}
|
|
3925
|
-
|
|
3926
|
-
/* Hover state */
|
|
3927
|
-
.muka-tabs__trigger:hover:not(:disabled):not(.muka-tabs__trigger--current) {
|
|
3928
|
-
color: var(--tabs-trigger-color-hover-foreground);
|
|
3929
|
-
}
|
|
3930
|
-
|
|
3931
|
-
/* Current tab */
|
|
3932
|
-
.muka-tabs__trigger--current {
|
|
3933
|
-
color: var(--tabs-trigger-color-current-foreground);
|
|
3934
|
-
}
|
|
3935
|
-
|
|
3936
|
-
/* Active bottom border (underline) */
|
|
3937
|
-
.muka-tabs__trigger--current::after {
|
|
3938
|
-
content: '';
|
|
3939
|
-
position: absolute;
|
|
3940
|
-
bottom: -1px; /* Overlap the 1px border */
|
|
3941
|
-
left: 0;
|
|
3942
|
-
right: 0;
|
|
3943
|
-
height: var(--tabs-indicator-height-md);
|
|
3944
|
-
background-color: var(--tabs-indicator-color);
|
|
3945
|
-
border-bottom-left-radius: 1px;
|
|
3946
|
-
border-bottom-right-radius: 1px;
|
|
3947
|
-
border-top-left-radius: 3px;
|
|
3948
|
-
border-top-right-radius: 3px;
|
|
3949
|
-
z-index: 3;
|
|
3950
|
-
}
|
|
3951
|
-
|
|
3952
|
-
.muka-tabs--size-sm .muka-tabs__trigger--current::after {
|
|
3953
|
-
height: var(--tabs-indicator-height-sm);
|
|
3954
|
-
}
|
|
3955
|
-
.muka-tabs--size-lg .muka-tabs__trigger--current::after {
|
|
3956
|
-
height: var(--tabs-indicator-height-lg);
|
|
3957
|
-
}
|
|
3958
|
-
|
|
3959
|
-
.muka-tabs__trigger--disabled {
|
|
3960
|
-
color: var(--tabs-trigger-color-disabled-foreground);
|
|
3961
|
-
cursor: not-allowed;
|
|
3962
|
-
}
|
|
3963
|
-
|
|
3964
|
-
.muka-tabs__trigger:focus-visible {
|
|
3965
|
-
outline: 2px solid var(--color-border-focus);
|
|
3966
|
-
outline-offset: -2px;
|
|
3967
|
-
}
|
|
3968
|
-
|
|
3969
|
-
/* Label: Figma pads the label 8px either side, so with the 4px gap a leading
|
|
3970
|
-
item sits 12px from the text */
|
|
3971
|
-
.muka-tabs__label {
|
|
3972
|
-
padding: 0 var(--spacing-2);
|
|
3973
|
-
}
|
|
3974
|
-
|
|
3975
|
-
/* Leading item: icon, avatar, avatar group or data pie chart */
|
|
3976
|
-
.muka-tabs__leading {
|
|
3977
|
-
display: flex;
|
|
3978
|
-
align-items: center;
|
|
3979
|
-
justify-content: center;
|
|
3980
|
-
flex-shrink: 0;
|
|
3981
|
-
}
|
|
3982
|
-
.muka-tabs__trigger .muka-icon {
|
|
3983
|
-
color: inherit;
|
|
3984
|
-
}
|
|
3985
|
-
/* Icon sizes only: avatars and pie charts are sized through their size prop */
|
|
3986
|
-
.muka-tabs--size-sm .muka-tabs__leading > svg,
|
|
3987
|
-
.muka-tabs--size-sm .muka-tabs__leading > .muka-icon svg { width: 16px; height: 16px; }
|
|
3988
|
-
.muka-tabs--size-md .muka-tabs__leading > svg,
|
|
3989
|
-
.muka-tabs--size-md .muka-tabs__leading > .muka-icon svg { width: 20px; height: 20px; }
|
|
3990
|
-
.muka-tabs--size-lg .muka-tabs__leading > svg,
|
|
3991
|
-
.muka-tabs--size-lg .muka-tabs__leading > .muka-icon svg { width: 24px; height: 24px; }
|
|
3992
|
-
|
|
3993
|
-
/* Responsive Scroll behavior on small screens */
|
|
3994
|
-
@media (max-width: 768px) {
|
|
3995
|
-
.muka-tabs__list {
|
|
3996
|
-
/* Make scrollable */
|
|
3997
|
-
overflow-x: auto;
|
|
3998
|
-
overflow-y: hidden;
|
|
3999
|
-
/* Force left alignment on mobile to prevent clipping when scrolling */
|
|
4000
|
-
justify-content: flex-start !important;
|
|
4001
|
-
max-width: 100vw;
|
|
4002
|
-
-webkit-overflow-scrolling: touch;
|
|
4003
|
-
/* Hide scrollbar for cleaner look */
|
|
4004
|
-
scrollbar-width: none;
|
|
4005
|
-
}
|
|
4006
|
-
.muka-tabs__list::-webkit-scrollbar {
|
|
4007
|
-
display: none;
|
|
4008
|
-
}
|
|
4009
|
-
/* Remove flex: 1 behavior for Fill tabs on mobile so they map correctly */
|
|
4010
|
-
.muka-tabs--align-fill .muka-tabs__trigger {
|
|
4011
|
-
flex: 0 0 auto;
|
|
4012
|
-
}
|
|
3816
|
+
.muka-thumbnail__remove:hover {
|
|
3817
|
+
color: var(--button-color-tertiary-foreground-hover);
|
|
3818
|
+
background-color: var(--button-color-tertiary-background-hover);
|
|
3819
|
+
border-color: var(--button-color-tertiary-border-hover);
|
|
4013
3820
|
}
|
|
4014
3821
|
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
background-color: var(--
|
|
4018
|
-
|
|
4019
|
-
border-bottom: var(--border-width-regular) solid var(--tabs-panel-border);
|
|
4020
|
-
padding: var(--spacing-4);
|
|
4021
|
-
position: relative;
|
|
4022
|
-
z-index: 1;
|
|
4023
|
-
font-family: var(--text-body-base-regular-fontFamily);
|
|
4024
|
-
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4025
|
-
font-size: var(--text-body-base-regular-fontSize);
|
|
4026
|
-
line-height: var(--text-body-base-regular-lineHeight);
|
|
3822
|
+
.muka-thumbnail__remove:active {
|
|
3823
|
+
color: var(--button-color-tertiary-foreground-pressed);
|
|
3824
|
+
background-color: var(--button-color-tertiary-background-pressed);
|
|
3825
|
+
border-color: var(--button-color-tertiary-border-pressed);
|
|
4027
3826
|
}
|
|
4028
3827
|
|
|
4029
|
-
.muka-
|
|
3828
|
+
.muka-thumbnail__remove:focus-visible {
|
|
4030
3829
|
outline: 2px solid var(--color-border-focus);
|
|
4031
3830
|
outline-offset: 2px;
|
|
4032
3831
|
}
|
|
4033
3832
|
|
|
3833
|
+
/* ─── Reduced motion ──────────────────────────────────── */
|
|
3834
|
+
@media (prefers-reduced-motion: reduce) {
|
|
3835
|
+
.muka-thumbnail__image,
|
|
3836
|
+
.muka-thumbnail__remove {
|
|
3837
|
+
transition: none;
|
|
3838
|
+
}
|
|
3839
|
+
|
|
3840
|
+
.muka-thumbnail--interactive:hover .muka-thumbnail__image {
|
|
3841
|
+
transform: none;
|
|
3842
|
+
}
|
|
3843
|
+
}
|
|
3844
|
+
|
|
4034
3845
|
|
|
4035
3846
|
/* Textarea */
|
|
4036
3847
|
/* Textarea Component Styles - Using Muka Design Tokens */
|
|
@@ -4278,6 +4089,196 @@ body {
|
|
|
4278
4089
|
}
|
|
4279
4090
|
|
|
4280
4091
|
|
|
4092
|
+
/* Tabs */
|
|
4093
|
+
/* Tabs Component Styles - Clean underline style tabs matching Figma */
|
|
4094
|
+
|
|
4095
|
+
.muka-tabs {
|
|
4096
|
+
display: flex;
|
|
4097
|
+
flex-direction: column;
|
|
4098
|
+
}
|
|
4099
|
+
|
|
4100
|
+
/* Alignment Variants */
|
|
4101
|
+
.muka-tabs--align-left .muka-tabs__list {
|
|
4102
|
+
justify-content: flex-start;
|
|
4103
|
+
}
|
|
4104
|
+
.muka-tabs--align-center .muka-tabs__list {
|
|
4105
|
+
justify-content: center;
|
|
4106
|
+
}
|
|
4107
|
+
.muka-tabs--align-fill .muka-tabs__list {
|
|
4108
|
+
justify-content: space-between;
|
|
4109
|
+
}
|
|
4110
|
+
.muka-tabs--align-fill .muka-tabs__trigger {
|
|
4111
|
+
flex: 1;
|
|
4112
|
+
}
|
|
4113
|
+
|
|
4114
|
+
/* Tab List — strip container */
|
|
4115
|
+
.muka-tabs__list {
|
|
4116
|
+
display: flex;
|
|
4117
|
+
align-items: center;
|
|
4118
|
+
position: relative;
|
|
4119
|
+
z-index: 2;
|
|
4120
|
+
border-bottom: 1px solid var(--tabs-trigger-color-default-border);
|
|
4121
|
+
}
|
|
4122
|
+
|
|
4123
|
+
/* Padding: inset the tabs; the divider (border) still spans the full width */
|
|
4124
|
+
.muka-tabs--padding-default .muka-tabs__list {
|
|
4125
|
+
padding-inline: var(--tabs-list-padding-x);
|
|
4126
|
+
}
|
|
4127
|
+
|
|
4128
|
+
/* Tab Trigger — clean underline style */
|
|
4129
|
+
.muka-tabs__trigger {
|
|
4130
|
+
display: inline-flex;
|
|
4131
|
+
align-items: center;
|
|
4132
|
+
justify-content: center;
|
|
4133
|
+
gap: var(--spacing-1);
|
|
4134
|
+
background: transparent;
|
|
4135
|
+
border: none;
|
|
4136
|
+
cursor: pointer;
|
|
4137
|
+
user-select: none;
|
|
4138
|
+
transition: background-color 0.2s ease, color 0.2s ease;
|
|
4139
|
+
outline: none;
|
|
4140
|
+
white-space: nowrap;
|
|
4141
|
+
position: relative;
|
|
4142
|
+
z-index: 2;
|
|
4143
|
+
color: var(--tabs-trigger-color-default-foreground);
|
|
4144
|
+
|
|
4145
|
+
/* Default MD size values */
|
|
4146
|
+
min-height: var(--tabs-trigger-min-height-md);
|
|
4147
|
+
padding: var(--spacing-3);
|
|
4148
|
+
font-family: var(--text-label-md-regular-fontFamily);
|
|
4149
|
+
font-weight: var(--text-label-md-regular-fontWeight);
|
|
4150
|
+
font-size: var(--text-label-md-regular-fontSize);
|
|
4151
|
+
line-height: var(--text-label-md-regular-lineHeight);
|
|
4152
|
+
}
|
|
4153
|
+
|
|
4154
|
+
/* Size Variants */
|
|
4155
|
+
.muka-tabs--size-sm .muka-tabs__trigger {
|
|
4156
|
+
min-height: var(--tabs-trigger-min-height-sm);
|
|
4157
|
+
padding: 0 var(--spacing-2);
|
|
4158
|
+
font-family: var(--text-label-sm-regular-fontFamily);
|
|
4159
|
+
font-weight: var(--text-label-sm-regular-fontWeight);
|
|
4160
|
+
font-size: var(--text-label-sm-regular-fontSize);
|
|
4161
|
+
line-height: var(--text-label-sm-regular-lineHeight);
|
|
4162
|
+
}
|
|
4163
|
+
|
|
4164
|
+
.muka-tabs--size-lg .muka-tabs__trigger {
|
|
4165
|
+
min-height: var(--tabs-trigger-min-height-lg);
|
|
4166
|
+
padding: var(--spacing-4);
|
|
4167
|
+
font-family: var(--text-label-lg-regular-fontFamily);
|
|
4168
|
+
font-weight: var(--text-label-lg-regular-fontWeight);
|
|
4169
|
+
font-size: var(--text-label-lg-regular-fontSize);
|
|
4170
|
+
line-height: var(--text-label-lg-regular-lineHeight);
|
|
4171
|
+
}
|
|
4172
|
+
|
|
4173
|
+
/* Hover state */
|
|
4174
|
+
.muka-tabs__trigger:hover:not(:disabled):not(.muka-tabs__trigger--current) {
|
|
4175
|
+
color: var(--tabs-trigger-color-hover-foreground);
|
|
4176
|
+
}
|
|
4177
|
+
|
|
4178
|
+
/* Current tab */
|
|
4179
|
+
.muka-tabs__trigger--current {
|
|
4180
|
+
color: var(--tabs-trigger-color-current-foreground);
|
|
4181
|
+
}
|
|
4182
|
+
|
|
4183
|
+
/* Active bottom border (underline) */
|
|
4184
|
+
.muka-tabs__trigger--current::after {
|
|
4185
|
+
content: '';
|
|
4186
|
+
position: absolute;
|
|
4187
|
+
bottom: -1px; /* Overlap the 1px border */
|
|
4188
|
+
left: 0;
|
|
4189
|
+
right: 0;
|
|
4190
|
+
height: var(--tabs-indicator-height-md);
|
|
4191
|
+
background-color: var(--tabs-indicator-color);
|
|
4192
|
+
border-bottom-left-radius: 1px;
|
|
4193
|
+
border-bottom-right-radius: 1px;
|
|
4194
|
+
border-top-left-radius: 3px;
|
|
4195
|
+
border-top-right-radius: 3px;
|
|
4196
|
+
z-index: 3;
|
|
4197
|
+
}
|
|
4198
|
+
|
|
4199
|
+
.muka-tabs--size-sm .muka-tabs__trigger--current::after {
|
|
4200
|
+
height: var(--tabs-indicator-height-sm);
|
|
4201
|
+
}
|
|
4202
|
+
.muka-tabs--size-lg .muka-tabs__trigger--current::after {
|
|
4203
|
+
height: var(--tabs-indicator-height-lg);
|
|
4204
|
+
}
|
|
4205
|
+
|
|
4206
|
+
.muka-tabs__trigger--disabled {
|
|
4207
|
+
color: var(--tabs-trigger-color-disabled-foreground);
|
|
4208
|
+
cursor: not-allowed;
|
|
4209
|
+
}
|
|
4210
|
+
|
|
4211
|
+
.muka-tabs__trigger:focus-visible {
|
|
4212
|
+
outline: 2px solid var(--color-border-focus);
|
|
4213
|
+
outline-offset: -2px;
|
|
4214
|
+
}
|
|
4215
|
+
|
|
4216
|
+
/* Label: Figma pads the label 8px either side, so with the 4px gap a leading
|
|
4217
|
+
item sits 12px from the text */
|
|
4218
|
+
.muka-tabs__label {
|
|
4219
|
+
padding: 0 var(--spacing-2);
|
|
4220
|
+
}
|
|
4221
|
+
|
|
4222
|
+
/* Leading item: icon, avatar, avatar group or data pie chart */
|
|
4223
|
+
.muka-tabs__leading {
|
|
4224
|
+
display: flex;
|
|
4225
|
+
align-items: center;
|
|
4226
|
+
justify-content: center;
|
|
4227
|
+
flex-shrink: 0;
|
|
4228
|
+
}
|
|
4229
|
+
.muka-tabs__trigger .muka-icon {
|
|
4230
|
+
color: inherit;
|
|
4231
|
+
}
|
|
4232
|
+
/* Icon sizes only: avatars and pie charts are sized through their size prop */
|
|
4233
|
+
.muka-tabs--size-sm .muka-tabs__leading > svg,
|
|
4234
|
+
.muka-tabs--size-sm .muka-tabs__leading > .muka-icon svg { width: 16px; height: 16px; }
|
|
4235
|
+
.muka-tabs--size-md .muka-tabs__leading > svg,
|
|
4236
|
+
.muka-tabs--size-md .muka-tabs__leading > .muka-icon svg { width: 20px; height: 20px; }
|
|
4237
|
+
.muka-tabs--size-lg .muka-tabs__leading > svg,
|
|
4238
|
+
.muka-tabs--size-lg .muka-tabs__leading > .muka-icon svg { width: 24px; height: 24px; }
|
|
4239
|
+
|
|
4240
|
+
/* Responsive Scroll behavior on small screens */
|
|
4241
|
+
@media (max-width: 768px) {
|
|
4242
|
+
.muka-tabs__list {
|
|
4243
|
+
/* Make scrollable */
|
|
4244
|
+
overflow-x: auto;
|
|
4245
|
+
overflow-y: hidden;
|
|
4246
|
+
/* Force left alignment on mobile to prevent clipping when scrolling */
|
|
4247
|
+
justify-content: flex-start !important;
|
|
4248
|
+
max-width: 100vw;
|
|
4249
|
+
-webkit-overflow-scrolling: touch;
|
|
4250
|
+
/* Hide scrollbar for cleaner look */
|
|
4251
|
+
scrollbar-width: none;
|
|
4252
|
+
}
|
|
4253
|
+
.muka-tabs__list::-webkit-scrollbar {
|
|
4254
|
+
display: none;
|
|
4255
|
+
}
|
|
4256
|
+
/* Remove flex: 1 behavior for Fill tabs on mobile so they map correctly */
|
|
4257
|
+
.muka-tabs--align-fill .muka-tabs__trigger {
|
|
4258
|
+
flex: 0 0 auto;
|
|
4259
|
+
}
|
|
4260
|
+
}
|
|
4261
|
+
|
|
4262
|
+
/* Tab Panel — content area */
|
|
4263
|
+
.muka-tabs__panel {
|
|
4264
|
+
background-color: var(--tabs-panel-background);
|
|
4265
|
+
/* border-top: var(--border-width-regular) solid var(--tabs-panel-border); removed in favor of the new tablist border */
|
|
4266
|
+
border-bottom: var(--border-width-regular) solid var(--tabs-panel-border);
|
|
4267
|
+
padding: var(--spacing-4);
|
|
4268
|
+
position: relative;
|
|
4269
|
+
z-index: 1;
|
|
4270
|
+
font-family: var(--text-body-base-regular-fontFamily);
|
|
4271
|
+
font-weight: var(--text-body-base-regular-fontWeight);
|
|
4272
|
+
font-size: var(--text-body-base-regular-fontSize);
|
|
4273
|
+
line-height: var(--text-body-base-regular-lineHeight);
|
|
4274
|
+
}
|
|
4275
|
+
|
|
4276
|
+
.muka-tabs__panel:focus-visible {
|
|
4277
|
+
outline: 2px solid var(--color-border-focus);
|
|
4278
|
+
outline-offset: 2px;
|
|
4279
|
+
}
|
|
4280
|
+
|
|
4281
|
+
|
|
4281
4282
|
/* Table */
|
|
4282
4283
|
/* Table Component Styles - Using Muka Design Tokens */
|
|
4283
4284
|
|
|
@@ -14879,9 +14880,12 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14879
14880
|
|
|
14880
14881
|
/* Avatar Group (Figma "Avatar Stack") */
|
|
14881
14882
|
.muka-avatar-group {
|
|
14883
|
+
position: relative;
|
|
14882
14884
|
display: inline-flex;
|
|
14883
14885
|
align-items: center;
|
|
14884
14886
|
flex-direction: row;
|
|
14887
|
+
/* Never stretch to a grid cell or column, so the badge stays on the last avatar */
|
|
14888
|
+
width: fit-content;
|
|
14885
14889
|
}
|
|
14886
14890
|
|
|
14887
14891
|
/* Later avatars sit on top of earlier ones (DOM order); a hovered one comes to the front */
|
|
@@ -14901,7 +14905,7 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14901
14905
|
box-shadow: 0 0 0 var(--avatar-group-ring-width) var(--avatar-group-ring-color);
|
|
14902
14906
|
}
|
|
14903
14907
|
|
|
14904
|
-
/* Overlap. Figma specifies exact values for
|
|
14908
|
+
/* Overlap. Figma specifies exact values for 40 / 32 / 24px avatars (xs / 2xs / 3xs);
|
|
14905
14909
|
other sizes use the same proportions: tight 2/3, compact 1/2, spacious 1/3. */
|
|
14906
14910
|
.muka-avatar-group--4xs { --muka-avatar-group-size: var(--avatar-size-4xs); }
|
|
14907
14911
|
.muka-avatar-group--3xs { --muka-avatar-group-size: var(--avatar-size-3xs); }
|
|
@@ -14916,13 +14920,13 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14916
14920
|
.muka-avatar-group--compact { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 2); }
|
|
14917
14921
|
.muka-avatar-group--spacious { --muka-avatar-group-overlap: calc(var(--muka-avatar-group-size) / 3); }
|
|
14918
14922
|
|
|
14919
|
-
.muka-avatar-group--tight.muka-avatar-group--
|
|
14923
|
+
.muka-avatar-group--tight.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-xs); }
|
|
14920
14924
|
.muka-avatar-group--tight.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-2xs); }
|
|
14921
14925
|
.muka-avatar-group--tight.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-tight-3xs); }
|
|
14922
|
-
.muka-avatar-group--compact.muka-avatar-group--
|
|
14926
|
+
.muka-avatar-group--compact.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-xs); }
|
|
14923
14927
|
.muka-avatar-group--compact.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-2xs); }
|
|
14924
14928
|
.muka-avatar-group--compact.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-compact-3xs); }
|
|
14925
|
-
.muka-avatar-group--spacious.muka-avatar-group--
|
|
14929
|
+
.muka-avatar-group--spacious.muka-avatar-group--xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-xs); }
|
|
14926
14930
|
.muka-avatar-group--spacious.muka-avatar-group--2xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-2xs); }
|
|
14927
14931
|
.muka-avatar-group--spacious.muka-avatar-group--3xs { --muka-avatar-group-overlap: var(--avatar-group-overlap-spacious-3xs); }
|
|
14928
14932
|
|
|
@@ -14930,6 +14934,14 @@ button.muka-chat-photo-grid__tile:focus-visible {
|
|
|
14930
14934
|
margin-left: calc(-1 * var(--muka-avatar-group-overlap));
|
|
14931
14935
|
}
|
|
14932
14936
|
|
|
14937
|
+
/* Badge: a BadgeNumber on the top-right corner of the stack, above every avatar */
|
|
14938
|
+
.muka-avatar-group__badge {
|
|
14939
|
+
position: absolute;
|
|
14940
|
+
top: calc(-1 * var(--avatar-group-badge-offset));
|
|
14941
|
+
right: calc(-1 * var(--avatar-group-badge-offset));
|
|
14942
|
+
z-index: 20;
|
|
14943
|
+
}
|
|
14944
|
+
|
|
14933
14945
|
/* Overflow avatar styling */
|
|
14934
14946
|
.muka-avatar--overflow {
|
|
14935
14947
|
background-color: var(--avatar-color-background-default);
|