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