klun-ui 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/styles.css CHANGED
@@ -398,6 +398,8 @@
398
398
  --klun-static-static-white: var(--klun-0);
399
399
  --klun-stroke-soft-200-2: var(--klun-neutral-200);
400
400
  --klun-stroke-soft-200: var(--klun-200);
401
+ --klun-scrim: rgba(0, 0, 0, 0.45);
402
+ --klun-stroke-control: rgb(124,135,152);
401
403
  --klun-stroke-strong-950: var(--klun-950);
402
404
  --klun-stroke-sub-300: var(--klun-300);
403
405
  --klun-stroke-white-0: var(--klun-0);
@@ -414,6 +416,7 @@
414
416
  --klun-teal-950: rgb(11,70,62);
415
417
  --klun-teal-base: rgb(53,185,233);
416
418
  --klun-text-disabled-300: var(--klun-300);
419
+ --klun-text-helper: rgb(91,100,114);
417
420
  --klun-text-main-900: var(--klun-neutral-900);
418
421
  --klun-text-soft-400: var(--klun-400);
419
422
  --klun-text-strong-950: var(--klun-950);
@@ -463,7 +466,6 @@
463
466
  --klun-yellow-900: rgb(134,102,29);
464
467
  --klun-yellow-950: rgb(98,76,24);
465
468
  }
466
- :root[data-theme=dark],
467
469
  .dark,
468
470
  [data-theme=dark] {
469
471
  --klun-bg-soft-200: var(--klun-700);
@@ -566,10 +568,12 @@
566
568
  --klun-static-static-black: var(--klun-950);
567
569
  --klun-static-static-white: var(--klun-0);
568
570
  --klun-stroke-soft-200: var(--klun-600);
571
+ --klun-stroke-control: rgb(125,137,155);
569
572
  --klun-stroke-strong-950: var(--klun-0);
570
573
  --klun-stroke-sub-300: var(--klun-600);
571
574
  --klun-stroke-white-0: var(--klun-950);
572
575
  --klun-text-disabled-300: var(--klun-600);
576
+ --klun-text-helper: rgb(182,191,204);
573
577
  --klun-text-soft-400: var(--klun-500);
574
578
  --klun-text-strong-950: var(--klun-0);
575
579
  --klun-text-sub-600: var(--klun-400);
@@ -811,11 +815,13 @@
811
815
  --klun-bg-strong-950: var(--color-grey-grey-900);
812
816
  --klun-stroke-white-0: var(--color-light-light);
813
817
  --klun-stroke-soft-200: var(--color-grey-grey-200);
818
+ --klun-stroke-control: var(--color-grey-grey-700);
814
819
  --klun-stroke-sub-300: var(--color-grey-grey-300);
815
820
  --klun-stroke-strong-950: var(--color-grey-grey-900);
816
821
  --klun-text-strong-950: var(--color-grey-grey-900);
817
822
  --klun-text-main-900: var(--color-grey-grey-900);
818
- --klun-text-sub-600: var(--color-grey-grey-600);
823
+ --klun-text-sub-600: var(--color-grey-grey-700);
824
+ --klun-text-helper: var(--color-grey-grey-700);
819
825
  --klun-text-soft-400: var(--color-grey-grey-500);
820
826
  --klun-text-disabled-300: var(--color-grey-grey-400);
821
827
  --klun-text-white-0: var(--color-light-light);
@@ -927,12 +933,14 @@
927
933
  --klun-bg-weak-50: var(--kk-hover);
928
934
  --klun-bg-soft-200: var(--kk-line);
929
935
  --klun-stroke-soft-200: var(--kk-border);
936
+ --klun-stroke-control: var(--kk-text);
930
937
  --klun-stroke-sub-300: var(--kk-text-placeholder);
931
938
  --klun-stroke-strong-950: var(--kk-text-strong);
932
939
  --klun-text-strong-950: var(--kk-text-strong);
933
940
  --klun-text-main-900: var(--kk-text-strong);
934
941
  --klun-text-sub-600: var(--kk-text);
935
942
  --klun-text-soft-400: var(--kk-text-weak);
943
+ --klun-text-helper: var(--kk-text);
936
944
  --klun-text-disabled-300: var(--kk-text-placeholder);
937
945
  --klun-icon-strong-950: var(--kk-text-strong);
938
946
  --klun-icon-sub-600: var(--kk-text);
@@ -952,7 +960,18 @@
952
960
  --klun-radius-3xl: 0;
953
961
  --klun-radius-4xl: 0;
954
962
  --klun-radius-capsule: 0;
955
- --klun-control-h-md: 32px;
963
+ --klun-control-h-2xs: 18px;
964
+ --klun-control-h-xs: 20px;
965
+ --klun-control-h-sm: 24px;
966
+ --klun-control-h-md: 28px;
967
+ --klun-control-h-lg: 32px;
968
+ --klun-control-h-xl: 36px;
969
+ --klun-control-px-2xs: 6px;
970
+ --klun-control-px-xs: 8px;
971
+ --klun-control-px-sm: 10px;
972
+ --klun-control-px-md: 12px;
973
+ --klun-control-px-lg: 15px;
974
+ --klun-control-px-xl: 18px;
956
975
  }
957
976
  [data-mode=kk] .kk-page {
958
977
  display: flex;
@@ -2758,9 +2777,6 @@
2758
2777
  [data-mode=kk] .klun-cascader {
2759
2778
  min-width: 0;
2760
2779
  width: 100%;
2761
- --_h: var(--kk-control-h);
2762
- --_px: 11px;
2763
- --_radius: var(--kk-radius);
2764
2780
  }
2765
2781
  [data-mode=kk] .klun-cascader__column {
2766
2782
  min-width: 108px;
@@ -2769,14 +2785,8 @@
2769
2785
  padding: 0 8px;
2770
2786
  }
2771
2787
  [data-mode=kk] .klun-button {
2772
- height: var(--kk-control-h);
2773
- min-height: var(--kk-control-h);
2774
- padding: 0 15px;
2775
2788
  box-sizing: border-box;
2776
2789
  border: 1px solid transparent;
2777
- border-radius: var(--kk-radius);
2778
- font-size: var(--kk-font);
2779
- gap: 6px;
2780
2790
  }
2781
2791
  [data-mode=kk] .klun-button.klun-button--primary {
2782
2792
  background: var(--kk-primary);
@@ -2828,6 +2838,9 @@
2828
2838
  border-top: 0;
2829
2839
  gap: 10px;
2830
2840
  }
2841
+ [data-mode=kk] .klun-modal__footer--flush {
2842
+ padding-top: 20px;
2843
+ }
2831
2844
  [data-mode=kk] .kk-table--grid tbody tr:hover .kk-perm-no,
2832
2845
  [data-mode=kk] .kk-table--grid tbody tr:focus-within .kk-perm-no {
2833
2846
  opacity: 0;
@@ -3606,9 +3619,11 @@
3606
3619
  --klun-shadow-md: 0 16px 32px -12px rgba(14,18,27,0.10);
3607
3620
  --klun-shadow-lg: 0 16px 40px -8px rgba(14,18,27,0.16);
3608
3621
  --klun-shadow-xl: 0 24px 56px -4px rgba(14,18,27,0.20);
3609
- --klun-shadow-button-primary-focus: 0 0 0 2px var(--klun-bg-white-0), 0 0 0 4px var(--klun-alpha-primary-alpha-10);
3610
- --klun-shadow-button-important-focus: 0 0 0 2px var(--klun-bg-white-0), 0 0 0 4px var(--klun-alpha-gray-alpha-10);
3611
- --klun-shadow-button-error-focus: 0 0 0 2px var(--klun-bg-white-0), 0 0 0 4px var(--klun-alpha-red-alpha-10);
3622
+ --klun-focus-ring-color: var(--klun-primary-base);
3623
+ --klun-focus-ring-error-color: var(--klun-state-error-base);
3624
+ --klun-shadow-button-primary-focus: 0 0 0 2px var(--klun-focus-ring-color);
3625
+ --klun-shadow-button-important-focus: 0 0 0 2px var(--klun-focus-ring-color);
3626
+ --klun-shadow-button-error-focus: 0 0 0 2px var(--klun-focus-ring-error-color);
3612
3627
  --klun-shadow-toggle-switch: 0 6px 10px 0 rgba(14,18,27,0.06), 0 2px 4px 0 rgba(14,18,27,0.03);
3613
3628
  --klun-shadow-switch-thumb: 0 2px 4px 0 rgba(27,28,29,0.10);
3614
3629
  --klun-shadow-custom:
@@ -3639,6 +3654,15 @@
3639
3654
  --klun-space-40: 40px;
3640
3655
  --klun-space-48: 48px;
3641
3656
  }
3657
+ [data-mode=orange]:not([data-theme=dark]) {
3658
+ --klun-focus-ring-color: var(--klun-orange-600);
3659
+ }
3660
+ [data-mode=green]:not([data-theme=dark]) {
3661
+ --klun-focus-ring-color: var(--klun-green-700);
3662
+ }
3663
+ [data-mode=kk]:not([data-theme=dark]) {
3664
+ --klun-focus-ring-color: var(--kk-primary-dark);
3665
+ }
3642
3666
 
3643
3667
  /* src/styles/tokens/radius-modes.css */
3644
3668
  [data-radius=square] {
@@ -3720,6 +3744,39 @@
3720
3744
  --klun-field-pad-md: 8px 10px;
3721
3745
  --klun-field-pad-lg: 10px 12px;
3722
3746
  }
3747
+ [data-density=default] .klun-checkbox--small {
3748
+ --_box: 18px;
3749
+ }
3750
+ [data-density=default] .klun-checkbox--medium {
3751
+ --_box: 20px;
3752
+ }
3753
+ [data-density=default] .klun-checkbox--large {
3754
+ --_box: 24px;
3755
+ }
3756
+ [data-density=default] .klun-radio--small {
3757
+ --_box: 16px;
3758
+ }
3759
+ [data-density=default] .klun-radio--medium {
3760
+ --_box: 20px;
3761
+ }
3762
+ [data-density=default] .klun-radio--large {
3763
+ --_box: 24px;
3764
+ }
3765
+ [data-density=default] .klun-switch--small {
3766
+ --_track-w: 32px;
3767
+ --_track-h: 18px;
3768
+ --_thumb: 14px;
3769
+ }
3770
+ [data-density=default] .klun-switch--medium {
3771
+ --_track-w: 36px;
3772
+ --_track-h: 20px;
3773
+ --_thumb: 16px;
3774
+ }
3775
+ [data-density=default] .klun-switch--large {
3776
+ --_track-w: 44px;
3777
+ --_track-h: 24px;
3778
+ --_thumb: 20px;
3779
+ }
3723
3780
  [data-density=compact] .klun-checkbox--small {
3724
3781
  --_box: 16px;
3725
3782
  }
@@ -3753,38 +3810,76 @@
3753
3810
  --_track-h: 22px;
3754
3811
  --_thumb: 18px;
3755
3812
  }
3756
- [data-density=default] .klun-checkbox--small {
3757
- --_box: 18px;
3813
+ [data-density=compact] .klun-result {
3814
+ padding: 28px 16px;
3758
3815
  }
3759
- [data-density=default] .klun-checkbox--medium {
3760
- --_box: 20px;
3816
+ [data-density=compact] .klun-result__icon {
3817
+ font-size: 40px;
3818
+ margin-bottom: 12px;
3761
3819
  }
3762
- [data-density=default] .klun-checkbox--large {
3763
- --_box: 24px;
3820
+ [data-density=compact] .klun-result--big .klun-result__icon {
3821
+ font-size: 48px;
3764
3822
  }
3765
- [data-density=default] .klun-radio--small {
3766
- --_box: 16px;
3823
+ [data-density=compact] .klun-result__title {
3824
+ font: var(--klun-text-title-h5);
3767
3825
  }
3768
- [data-density=default] .klun-radio--medium {
3769
- --_box: 20px;
3826
+ [data-density=compact] .klun-result__subtitle {
3827
+ font: var(--klun-text-paragraph-sm);
3828
+ max-width: 380px;
3770
3829
  }
3771
- [data-density=default] .klun-radio--large {
3772
- --_box: 24px;
3830
+ [data-density=compact] .klun-empty-state {
3831
+ padding: 24px 16px;
3773
3832
  }
3774
- [data-density=default] .klun-switch--small {
3775
- --_track-w: 32px;
3776
- --_track-h: 18px;
3777
- --_thumb: 14px;
3833
+ [data-density=compact] .klun-empty-state__icon {
3834
+ width: 40px;
3835
+ height: 40px;
3836
+ font-size: 20px;
3837
+ margin-bottom: 8px;
3778
3838
  }
3779
- [data-density=default] .klun-switch--medium {
3780
- --_track-w: 36px;
3781
- --_track-h: 20px;
3782
- --_thumb: 16px;
3839
+ [data-density=compact] .klun-empty-state__title {
3840
+ font: var(--klun-text-label-md);
3783
3841
  }
3784
- [data-density=default] .klun-switch--large {
3785
- --_track-w: 44px;
3786
- --_track-h: 24px;
3787
- --_thumb: 20px;
3842
+ [data-density=compact] .klun-collapse__trigger {
3843
+ padding: 8px 10px;
3844
+ }
3845
+ [data-density=compact] .klun-accordion__trigger {
3846
+ padding: 10px 12px;
3847
+ }
3848
+ [data-density=compact] .klun-message {
3849
+ padding: 6px 10px;
3850
+ }
3851
+ [data-density=compact] .klun-banner {
3852
+ padding: 8px 12px;
3853
+ }
3854
+ [data-density=compact] .klun-notification {
3855
+ padding: 12px;
3856
+ }
3857
+ [data-density=compact] .klun-timeline__content:not(.klun-timeline__content--last) {
3858
+ padding-bottom: 16px;
3859
+ }
3860
+ [data-density=compact] .klun-code-viewer__pre {
3861
+ padding: 8px 10px;
3862
+ }
3863
+ [data-density=compact] .klun-diff__header {
3864
+ padding: 6px 10px;
3865
+ }
3866
+ [data-density=compact] .klun-kanban__column {
3867
+ padding: 8px;
3868
+ }
3869
+ [data-density=compact] .klun-rich-editor__area {
3870
+ padding: 8px 10px;
3871
+ }
3872
+ [data-density=compact] .klun-rich-editor-toolbar {
3873
+ padding: 2px;
3874
+ gap: 2px;
3875
+ }
3876
+ [data-density=compact] .klun-rich-editor-toolbar__button {
3877
+ width: 24px;
3878
+ height: 24px;
3879
+ font-size: 15px;
3880
+ }
3881
+ [data-density=compact] .klun-rich-editor-toolbar__divider {
3882
+ height: 16px;
3788
3883
  }
3789
3884
 
3790
3885
  /* src/styles/tokens/motion.css */
@@ -3819,7 +3914,7 @@ html {
3819
3914
  }
3820
3915
  body {
3821
3916
  margin: 0;
3822
- font: var(--klun-text-paragraph-md);
3917
+ font: var(--klun-text-paragraph-sm);
3823
3918
  font-feature-settings: "cv11", "ss01";
3824
3919
  font-variation-settings: "opsz" 32;
3825
3920
  color: var(--klun-text-strong-950);
@@ -3870,29 +3965,29 @@ body {
3870
3965
  .klun-button--tiny {
3871
3966
  height: var(--klun-control-h-xs, 28px);
3872
3967
  padding: 0 var(--klun-control-px-xs, 10px);
3873
- border-radius: var(--klun-radius-md);
3968
+ border-radius: var(--klun-radius-sm);
3874
3969
  gap: 4px;
3875
3970
  }
3876
3971
  .klun-button--xsmall {
3877
3972
  height: var(--klun-control-h-sm, 32px);
3878
3973
  padding: 0 var(--klun-control-px-sm, 12px);
3879
- border-radius: var(--klun-radius-md);
3974
+ border-radius: var(--klun-radius-sm);
3880
3975
  gap: 4px;
3881
3976
  }
3882
3977
  .klun-button--small {
3883
3978
  height: var(--klun-control-h-md, 36px);
3884
3979
  padding: 0 var(--klun-control-px-md, 14px);
3885
- border-radius: var(--klun-radius-md);
3980
+ border-radius: var(--klun-radius-sm);
3886
3981
  }
3887
3982
  .klun-button--medium {
3888
3983
  height: var(--klun-control-h-lg, 40px);
3889
3984
  padding: 0 var(--klun-control-px-lg, 16px);
3890
- border-radius: var(--klun-radius-lg);
3985
+ border-radius: var(--klun-radius-md);
3891
3986
  }
3892
3987
  .klun-button--large {
3893
3988
  height: var(--klun-control-h-xl, 48px);
3894
3989
  padding: 0 var(--klun-control-px-xl, 20px);
3895
- border-radius: var(--klun-radius-xl);
3990
+ border-radius: var(--klun-radius-lg);
3896
3991
  gap: 8px;
3897
3992
  font: var(--klun-text-label-md);
3898
3993
  }
@@ -3906,7 +4001,7 @@ body {
3906
4001
  .klun-button--stroke {
3907
4002
  background: var(--klun-bg-white-0);
3908
4003
  color: var(--_accent-text);
3909
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
4004
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
3910
4005
  }
3911
4006
  .klun-button--stroke:hover {
3912
4007
  background: var(--klun-bg-weak-50);
@@ -3925,6 +4020,12 @@ body {
3925
4020
  .klun-button--ghost:hover {
3926
4021
  background: var(--_accent-light);
3927
4022
  }
4023
+ focus-visible\2026 \9010\9879\5b58\5728\ff09\3002 \6b64\524d\5168\5e93\53ea\6709 7 \6761 `:active`\ff0c\4e14\552f\4e00\4e0e\6309\94ae\76f8\5173\7684\662f `.klun-fancy-button:active`\2014\2014 **\5e38\89c4 `.klun-button` \6ca1\6709\6309\4e0b\6001**\ff0c\800c\5b83\662f\5e93\91cc\6700\5e38\7528\7684\4ea4\4e92\7ec4\4ef6\3002 \8fd9\91cc\6cbf\7528\540c\6587\4ef6\91cc\82b1\5f0f\53d8\4f53**\65e2\6709**\7684\5199\6cd5\ff08`translateY(1px)`\ff09\ff1a \6bd4 hover \66f4\76f4\63a5\4f46\514b\5236\ff0c`transform` \4e0d\89e6\53d1\91cd\6392\3001\4e0d\6539\53d8\5e03\5c40\ff0c\4e14\5bf9\6240\6709 appearance \4e00\81f4\3002 */ .klun-button:active:not(:disabled) {
4024
+ transform: translateY(1px);
4025
+ }
4026
+ .klun-icon-button:active:not(:disabled) {
4027
+ transform: translateY(1px);
4028
+ }
3928
4029
  .klun-button:focus-visible {
3929
4030
  outline: none;
3930
4031
  box-shadow: var(--_focus);
@@ -3988,32 +4089,32 @@ body {
3988
4089
  --_focus: var(--klun-shadow-button-error-focus);
3989
4090
  }
3990
4091
  .klun-icon-button--tiny {
3991
- width: var(--klun-control-h-2xs, 24px);
3992
- height: var(--klun-control-h-2xs, 24px);
3993
- border-radius: var(--klun-radius-md);
3994
- font-size: 16px;
3995
- }
3996
- .klun-icon-button--xsmall {
3997
4092
  width: var(--klun-control-h-xs, 28px);
3998
4093
  height: var(--klun-control-h-xs, 28px);
3999
- border-radius: var(--klun-radius-md);
4000
- font-size: 18px;
4094
+ border-radius: var(--klun-radius-sm);
4095
+ font-size: 16px;
4001
4096
  }
4002
- .klun-icon-button--small {
4097
+ .klun-icon-button--xsmall {
4003
4098
  width: var(--klun-control-h-sm, 32px);
4004
4099
  height: var(--klun-control-h-sm, 32px);
4005
- border-radius: var(--klun-radius-md);
4006
- font-size: 20px;
4100
+ border-radius: var(--klun-radius-sm);
4101
+ font-size: 16px;
4007
4102
  }
4008
- .klun-icon-button--medium {
4103
+ .klun-icon-button--small {
4009
4104
  width: var(--klun-control-h-md, 36px);
4010
4105
  height: var(--klun-control-h-md, 36px);
4011
- border-radius: var(--klun-radius-lg);
4012
- font-size: 20px;
4106
+ border-radius: var(--klun-radius-sm);
4107
+ font-size: 16px;
4013
4108
  }
4014
- .klun-icon-button--large {
4109
+ .klun-icon-button--medium {
4015
4110
  width: var(--klun-control-h-lg, 40px);
4016
4111
  height: var(--klun-control-h-lg, 40px);
4112
+ border-radius: var(--klun-radius-md);
4113
+ font-size: 18px;
4114
+ }
4115
+ .klun-icon-button--large {
4116
+ width: var(--klun-control-h-xl, 48px);
4117
+ height: var(--klun-control-h-xl, 48px);
4017
4118
  border-radius: var(--klun-radius-lg);
4018
4119
  font-size: 20px;
4019
4120
  }
@@ -4028,7 +4129,7 @@ body {
4028
4129
  .klun-icon-button--stroke {
4029
4130
  background: var(--klun-bg-white-0);
4030
4131
  color: var(--_accent-text);
4031
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
4132
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
4032
4133
  }
4033
4134
  .klun-icon-button--stroke:hover {
4034
4135
  background: var(--klun-bg-weak-50);
@@ -4142,7 +4243,7 @@ body {
4142
4243
  180deg,
4143
4244
  var(--klun-bg-weak-50),
4144
4245
  transparent 60%);
4145
- --_inset: inset 0 0 0 1px var(--klun-stroke-soft-200);
4246
+ --_inset: inset 0 0 0 1px var(--klun-stroke-control);
4146
4247
  }
4147
4248
  .klun-fancy-button--small {
4148
4249
  height: 36px;
@@ -4241,7 +4342,7 @@ body {
4241
4342
  .klun-compact-button--stroke {
4242
4343
  background: var(--klun-bg-white-0);
4243
4344
  color: var(--klun-icon-sub-600);
4244
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
4345
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
4245
4346
  }
4246
4347
  .klun-compact-button--stroke:hover {
4247
4348
  background: var(--klun-bg-weak-50);
@@ -4249,7 +4350,7 @@ body {
4249
4350
  .klun-compact-button--white {
4250
4351
  background: var(--klun-bg-white-0);
4251
4352
  color: var(--klun-icon-sub-600);
4252
- box-shadow: var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200);
4353
+ box-shadow: var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-control);
4253
4354
  }
4254
4355
  .klun-compact-button--white:hover {
4255
4356
  background: var(--klun-bg-weak-50);
@@ -4286,6 +4387,18 @@ body {
4286
4387
  .klun-compact-button--loading:disabled {
4287
4388
  opacity: 0.7;
4288
4389
  }
4390
+ .klun-compact-button__label-sr {
4391
+ position: absolute;
4392
+ width: 1px;
4393
+ height: 1px;
4394
+ padding: 0;
4395
+ margin: -1px;
4396
+ border: 0;
4397
+ overflow: hidden;
4398
+ clip: rect(0 0 0 0);
4399
+ clip-path: inset(50%);
4400
+ white-space: nowrap;
4401
+ }
4289
4402
  .klun-compact-button__icon {
4290
4403
  display: inline-flex;
4291
4404
  align-items: center;
@@ -4362,12 +4475,21 @@ body {
4362
4475
  transform: rotate(360deg);
4363
4476
  }
4364
4477
  }
4478
+ @media (prefers-reduced-motion: reduce) {
4479
+ .klun-button--loading .klun-button__spinner,
4480
+ .klun-icon-button--loading .klun-icon-button__spinner,
4481
+ .klun-fancy-button--loading .klun-fancy-button__spinner,
4482
+ .klun-compact-button--loading .klun-compact-button__spinner,
4483
+ .klun-link-button--loading .klun-link-button__spinner {
4484
+ animation: none;
4485
+ }
4486
+ }
4365
4487
 
4366
4488
  /* src/components/buttons/ButtonGroup.css */
4367
4489
  .klun-button-group {
4368
4490
  display: inline-flex;
4369
4491
  background: var(--klun-bg-white-0);
4370
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
4492
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
4371
4493
  overflow: hidden;
4372
4494
  }
4373
4495
  .klun-button-group--small {
@@ -4493,7 +4615,7 @@ body {
4493
4615
  }
4494
4616
  .klun-copy-button--stroke {
4495
4617
  background: var(--klun-bg-white-0);
4496
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
4618
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
4497
4619
  }
4498
4620
  .klun-copy-button--stroke:hover {
4499
4621
  background: var(--klun-bg-weak-50);
@@ -4525,6 +4647,9 @@ body {
4525
4647
  .klun-copy-button--lg > i {
4526
4648
  font-size: 20px;
4527
4649
  }
4650
+ .klun-copy-button:active:not(:disabled) {
4651
+ transform: translateY(1px);
4652
+ }
4528
4653
 
4529
4654
  /* src/components/buttons/Toggle.css */
4530
4655
  .klun-toggle {
@@ -4564,7 +4689,7 @@ body {
4564
4689
  border-radius: var(--klun-radius-lg);
4565
4690
  }
4566
4691
  .klun-toggle--outline {
4567
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
4692
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
4568
4693
  }
4569
4694
  .klun-toggle:hover:not(:disabled) {
4570
4695
  background: var(--klun-bg-weak-50);
@@ -5007,7 +5132,7 @@ body {
5007
5132
  .klun-bulk-action-bar__divider {
5008
5133
  width: 1px;
5009
5134
  height: 22px;
5010
- background: rgba(255, 255, 255, 0.16);
5135
+ background: var(--klun-alpha-white-alpha-16);
5011
5136
  }
5012
5137
  .klun-bulk-action-bar__actions {
5013
5138
  display: flex;
@@ -5024,7 +5149,7 @@ body {
5024
5149
  border: none;
5025
5150
  cursor: pointer;
5026
5151
  border-radius: var(--klun-radius-pill);
5027
- background: rgba(255, 255, 255, 0.1);
5152
+ background: var(--klun-alpha-white-alpha-10);
5028
5153
  color: inherit;
5029
5154
  transition: background var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
5030
5155
  }
@@ -5049,7 +5174,7 @@ body {
5049
5174
  transition: background var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
5050
5175
  }
5051
5176
  .klun-bulk-action--default {
5052
- background: rgba(255, 255, 255, 0.1);
5177
+ background: var(--klun-alpha-white-alpha-10);
5053
5178
  }
5054
5179
  .klun-bulk-action--default:hover {
5055
5180
  background: rgba(255, 255, 255, 0.18);
@@ -5126,6 +5251,14 @@ body {
5126
5251
  width: 20px;
5127
5252
  background: var(--klun-static-static-white);
5128
5253
  }
5254
+ @media (prefers-reduced-motion: reduce) {
5255
+ .klun-carousel__track {
5256
+ transition: none;
5257
+ }
5258
+ .klun-carousel__dot {
5259
+ transition: none;
5260
+ }
5261
+ }
5129
5262
 
5130
5263
  /* src/components/data-display/ChartLegend.css */
5131
5264
  .klun-chart-legend {
@@ -5191,6 +5324,18 @@ body {
5191
5324
  color: var(--klun-text-strong-950);
5192
5325
  font-variant-numeric: tabular-nums;
5193
5326
  }
5327
+ .klun-chart-legend__item {
5328
+ min-width: 0;
5329
+ }
5330
+ .klun-chart-legend__label,
5331
+ .klun-chart-legend__value,
5332
+ .klun-chart-legend__text {
5333
+ overflow-wrap: anywhere;
5334
+ min-width: 0;
5335
+ }
5336
+ .klun-chart-legend__text {
5337
+ white-space: normal;
5338
+ }
5194
5339
 
5195
5340
  /* src/components/data-display/ChartTooltip.css */
5196
5341
  .klun-chart-tooltip {
@@ -5206,7 +5351,7 @@ body {
5206
5351
  }
5207
5352
  .klun-chart-tooltip__title {
5208
5353
  font: var(--klun-text-label-xs);
5209
- color: var(--klun-text-soft-400);
5354
+ color: var(--klun-text-helper);
5210
5355
  }
5211
5356
  .klun-chart-tooltip__rows {
5212
5357
  display: flex;
@@ -5264,7 +5409,7 @@ body {
5264
5409
  display: inline-flex;
5265
5410
  align-items: center;
5266
5411
  gap: 6px;
5267
- height: 28px;
5412
+ height: var(--klun-control-h-xs);
5268
5413
  padding: 0 10px;
5269
5414
  border-radius: var(--klun-radius-capsule);
5270
5415
  font: var(--klun-text-label-xs);
@@ -5360,7 +5505,8 @@ body {
5360
5505
  cursor: pointer;
5361
5506
  }
5362
5507
  .klun-chip--dismissible {
5363
- padding: 0 6px 0 10px;
5508
+ padding-block: 0;
5509
+ padding-inline: 10px 6px;
5364
5510
  }
5365
5511
  .klun-chip--disabled {
5366
5512
  opacity: 0.5;
@@ -5400,7 +5546,7 @@ body {
5400
5546
  box-shadow: var(--_ring);
5401
5547
  }
5402
5548
  .klun-code-viewer--dark {
5403
- --_bg: var(--klun-bg-strong-950);
5549
+ --_bg: var(--klun-static-static-black);
5404
5550
  --_fg: rgba(255, 255, 255, 0.86);
5405
5551
  --_sub: rgba(255, 255, 255, 0.4);
5406
5552
  --_ring: none;
@@ -5429,7 +5575,7 @@ body {
5429
5575
  .klun-code-viewer__copy-float {
5430
5576
  position: absolute;
5431
5577
  top: 6px;
5432
- right: 6px;
5578
+ inset-inline-end: 6px;
5433
5579
  z-index: 1;
5434
5580
  }
5435
5581
  .klun-code-viewer__copy {
@@ -5485,7 +5631,7 @@ body {
5485
5631
  box-shadow: var(--_ring);
5486
5632
  }
5487
5633
  .klun-log-viewer--dark {
5488
- --_bg: var(--klun-bg-strong-950);
5634
+ --_bg: var(--klun-static-static-black);
5489
5635
  --_fg: rgba(255, 255, 255, 0.86);
5490
5636
  --_sub: rgba(255, 255, 255, 0.4);
5491
5637
  --_ring: none;
@@ -5540,7 +5686,7 @@ body {
5540
5686
  --_level-color: var(--klun-state-information-base);
5541
5687
  }
5542
5688
  .klun-log-viewer__level--debug {
5543
- --_level-color: var(--klun-text-soft-400);
5689
+ --_level-color: var(--klun-text-helper);
5544
5690
  }
5545
5691
  .klun-log-viewer__level--success {
5546
5692
  --_level-color: var(--klun-state-success-base);
@@ -5667,7 +5813,7 @@ body {
5667
5813
  }
5668
5814
  .klun-xref__time {
5669
5815
  font: var(--klun-text-paragraph-xs);
5670
- color: var(--klun-text-soft-400);
5816
+ color: var(--klun-text-helper);
5671
5817
  }
5672
5818
  .klun-xref__card-extra {
5673
5819
  font: var(--klun-text-paragraph-xs);
@@ -5746,7 +5892,7 @@ body {
5746
5892
  white-space: nowrap;
5747
5893
  font: var(--klun-text-label-sm);
5748
5894
  font-weight: 400;
5749
- color: var(--klun-text-soft-400);
5895
+ color: var(--klun-text-helper);
5750
5896
  }
5751
5897
  .klun-descriptions__value-cell {
5752
5898
  font: var(--_value-font);
@@ -5758,7 +5904,7 @@ body {
5758
5904
  }
5759
5905
  .klun-descriptions__label {
5760
5906
  font: var(--klun-text-label-sm);
5761
- color: var(--klun-text-soft-400);
5907
+ color: var(--klun-text-helper);
5762
5908
  margin-bottom: 4px;
5763
5909
  }
5764
5910
  .klun-descriptions__value {
@@ -5802,6 +5948,10 @@ body {
5802
5948
  font-size: 12px;
5803
5949
  font-weight: 500;
5804
5950
  color: var(--klun-text-strong-950);
5951
+ min-width: 0;
5952
+ overflow: hidden;
5953
+ text-overflow: ellipsis;
5954
+ white-space: nowrap;
5805
5955
  }
5806
5956
  .klun-diff__stat {
5807
5957
  font-family: var(--_mono);
@@ -5827,7 +5977,7 @@ body {
5827
5977
  height: 20px;
5828
5978
  border: none;
5829
5979
  background: transparent;
5830
- color: var(--klun-text-soft-400);
5980
+ color: var(--klun-text-helper);
5831
5981
  cursor: pointer;
5832
5982
  padding: 0;
5833
5983
  }
@@ -5866,7 +6016,7 @@ body {
5866
6016
  justify-content: flex-end;
5867
6017
  min-width: 40px;
5868
6018
  padding: 0 8px;
5869
- color: var(--klun-text-soft-400);
6019
+ color: var(--klun-text-helper);
5870
6020
  }
5871
6021
  .klun-diff__num--addable {
5872
6022
  cursor: pointer;
@@ -5881,7 +6031,7 @@ body {
5881
6031
  height: 15px;
5882
6032
  border-radius: var(--klun-radius-sm);
5883
6033
  background: var(--klun-primary-base);
5884
- color: #fff;
6034
+ color: var(--klun-static-static-white);
5885
6035
  font-size: 13px;
5886
6036
  line-height: 1;
5887
6037
  opacity: 0;
@@ -5903,7 +6053,7 @@ body {
5903
6053
  .klun-diff__sign {
5904
6054
  display: inline-block;
5905
6055
  width: 1ch;
5906
- color: var(--klun-text-soft-400);
6056
+ color: var(--klun-text-helper);
5907
6057
  }
5908
6058
  .klun-diff__row--add .klun-diff__code,
5909
6059
  .klun-diff__code--add {
@@ -6167,7 +6317,7 @@ body {
6167
6317
  align-items: center;
6168
6318
  gap: 8px;
6169
6319
  font: var(--klun-text-label-xs);
6170
- color: var(--klun-text-soft-400);
6320
+ color: var(--klun-text-helper);
6171
6321
  }
6172
6322
  .klun-kanban__empty {
6173
6323
  padding: 16px 8px;
@@ -6175,7 +6325,7 @@ body {
6175
6325
  border: 1px dashed var(--klun-stroke-soft-200);
6176
6326
  border-radius: var(--klun-radius-lg);
6177
6327
  font: var(--klun-text-label-xs);
6178
- color: var(--klun-text-soft-400);
6328
+ color: var(--klun-text-helper);
6179
6329
  }
6180
6330
  .klun-kanban__footer {
6181
6331
  padding: 2px;
@@ -6354,13 +6504,13 @@ body {
6354
6504
  justify-content: center;
6355
6505
  gap: 8px;
6356
6506
  padding: 32px 16px;
6357
- color: var(--klun-text-soft-400);
6507
+ color: var(--klun-text-helper);
6358
6508
  font: var(--klun-text-paragraph-sm);
6359
6509
  }
6360
6510
  .klun-list__empty {
6361
6511
  padding: 40px 16px;
6362
6512
  text-align: center;
6363
- color: var(--klun-text-soft-400);
6513
+ color: var(--klun-text-helper);
6364
6514
  font: var(--klun-text-paragraph-sm);
6365
6515
  }
6366
6516
  .klun-list__empty-default {
@@ -6568,7 +6718,7 @@ body {
6568
6718
  margin: 0 0 8px;
6569
6719
  padding: 2px 0 2px 10px;
6570
6720
  border-left: 3px solid var(--klun-stroke-soft-200);
6571
- color: var(--klun-text-soft-400);
6721
+ color: var(--klun-text-helper);
6572
6722
  }
6573
6723
  .klun-md-pre {
6574
6724
  margin: 0 0 8px;
@@ -6669,7 +6819,7 @@ body {
6669
6819
  border-bottom-color: var(--klun-primary-base);
6670
6820
  }
6671
6821
  .klun-md-wikilink--broken {
6672
- color: var(--klun-text-soft-400);
6822
+ color: var(--klun-text-helper);
6673
6823
  border-bottom: 1px dashed var(--klun-stroke-soft-200);
6674
6824
  cursor: help;
6675
6825
  }
@@ -6722,7 +6872,7 @@ body {
6722
6872
  .klun-money__period {
6723
6873
  font: var(--klun-text-paragraph-sm);
6724
6874
  font-weight: 400;
6725
- color: var(--klun-text-soft-400);
6875
+ color: var(--klun-text-helper);
6726
6876
  }
6727
6877
 
6728
6878
  /* src/components/data-display/NumberFlow.css */
@@ -7035,16 +7185,16 @@ body {
7035
7185
  }
7036
7186
  .klun-statistic__prefix {
7037
7187
  font: var(--klun-text-label-lg);
7038
- color: var(--klun-text-soft-400);
7188
+ color: var(--klun-text-helper);
7039
7189
  margin-right: 2px;
7040
7190
  }
7041
7191
  .klun-statistic__suffix {
7042
7192
  font: var(--klun-text-label-lg);
7043
- color: var(--klun-text-soft-400);
7193
+ color: var(--klun-text-helper);
7044
7194
  margin-left: 2px;
7045
7195
  }
7046
7196
  .klun-statistic__trend {
7047
- --_trend-color: var(--klun-text-soft-400);
7197
+ --_trend-color: var(--klun-text-helper);
7048
7198
  display: inline-flex;
7049
7199
  align-items: center;
7050
7200
  gap: 2px;
@@ -7058,7 +7208,7 @@ body {
7058
7208
  --_trend-color: var(--klun-state-error-base);
7059
7209
  }
7060
7210
  .klun-statistic__trend--flat {
7061
- --_trend-color: var(--klun-text-soft-400);
7211
+ --_trend-color: var(--klun-text-helper);
7062
7212
  }
7063
7213
  .klun-statistic__trend i {
7064
7214
  font-size: 16px;
@@ -7093,6 +7243,11 @@ body {
7093
7243
  opacity: 0;
7094
7244
  }
7095
7245
  }
7246
+ @media (prefers-reduced-motion: reduce) {
7247
+ .klun-status-badge__ping {
7248
+ animation: none;
7249
+ }
7250
+ }
7096
7251
 
7097
7252
  /* src/components/data-display/StatusDot.css */
7098
7253
  .klun-status-dot {
@@ -7149,6 +7304,11 @@ body {
7149
7304
  opacity: 0;
7150
7305
  }
7151
7306
  }
7307
+ @media (prefers-reduced-motion: reduce) {
7308
+ .klun-status-dot__ping {
7309
+ animation: none;
7310
+ }
7311
+ }
7152
7312
 
7153
7313
  /* src/components/data-display/Table.css */
7154
7314
  .klun-table {
@@ -7164,7 +7324,7 @@ body {
7164
7324
  }
7165
7325
  .klun-table--compact {
7166
7326
  --klun-table-pad: 8px 12px;
7167
- --klun-table-font: var(--klun-text-paragraph-xs);
7327
+ --klun-table-font: var(--klun-text-paragraph-sm);
7168
7328
  }
7169
7329
  .klun-table--comfortable {
7170
7330
  --klun-table-pad: 12px 16px;
@@ -7235,6 +7395,25 @@ body {
7235
7395
  gap: 2px;
7236
7396
  max-width: 100%;
7237
7397
  }
7398
+ .klun-table__sort {
7399
+ display: inline-flex;
7400
+ align-items: center;
7401
+ gap: 2px;
7402
+ max-width: 100%;
7403
+ padding: 0;
7404
+ border: 0;
7405
+ margin: 0;
7406
+ background: none;
7407
+ font: inherit;
7408
+ color: inherit;
7409
+ cursor: pointer;
7410
+ text-align: inherit;
7411
+ }
7412
+ .klun-table__sort:focus-visible {
7413
+ outline: none;
7414
+ border-radius: var(--klun-radius-xs, 4px);
7415
+ box-shadow: 0 0 0 2px var(--klun-focus-ring-color, var(--klun-primary-base));
7416
+ }
7238
7417
  .klun-table__sort-icon {
7239
7418
  margin-left: 2px;
7240
7419
  font-size: 20px;
@@ -7298,6 +7477,19 @@ body {
7298
7477
  .klun-table__td--editable {
7299
7478
  cursor: text;
7300
7479
  }
7480
+ .klun-table__td--editable:focus-visible {
7481
+ outline: none;
7482
+ box-shadow: inset 0 0 0 2px var(--klun-focus-ring-color, var(--klun-primary-base));
7483
+ }
7484
+ .klun-table__rowlink {
7485
+ color: inherit;
7486
+ text-decoration: none;
7487
+ }
7488
+ .klun-table__rowlink:focus-visible {
7489
+ outline: none;
7490
+ border-radius: var(--klun-radius-xs, 4px);
7491
+ box-shadow: 0 0 0 2px var(--klun-focus-ring-color, var(--klun-primary-base));
7492
+ }
7301
7493
  .klun-table__td--editing {
7302
7494
  padding: 4px 8px;
7303
7495
  }
@@ -7539,7 +7731,7 @@ body {
7539
7731
  .klun-table__empty-cell {
7540
7732
  padding: 48px 16px;
7541
7733
  text-align: center;
7542
- color: var(--klun-text-soft-400);
7734
+ color: var(--klun-text-helper);
7543
7735
  font: var(--klun-text-paragraph-sm);
7544
7736
  }
7545
7737
  .klun-table__empty {
@@ -7767,7 +7959,7 @@ body {
7767
7959
  }
7768
7960
  .klun-table__pager-range {
7769
7961
  font: var(--klun-text-paragraph-sm);
7770
- color: var(--klun-text-soft-400);
7962
+ color: var(--klun-text-helper);
7771
7963
  font-variant-numeric: tabular-nums;
7772
7964
  }
7773
7965
  .klun-table__pager-controls {
@@ -7864,7 +8056,7 @@ body {
7864
8056
  .klun-table__pager-ellipsis {
7865
8057
  min-width: 24px;
7866
8058
  text-align: center;
7867
- color: var(--klun-text-soft-400);
8059
+ color: var(--klun-text-helper);
7868
8060
  }
7869
8061
  .klun-table__ctx {
7870
8062
  position: fixed;
@@ -7924,7 +8116,16 @@ body {
7924
8116
  }
7925
8117
  .klun-table__ctx-shortcut {
7926
8118
  font: var(--klun-text-paragraph-xs);
7927
- color: var(--klun-text-soft-400);
8119
+ color: var(--klun-text-helper);
8120
+ }
8121
+ @media (prefers-reduced-motion: reduce) {
8122
+ .klun-table__skel {
8123
+ animation: none;
8124
+ }
8125
+ }
8126
+ .klun-table__resizer:focus-visible {
8127
+ outline: none;
8128
+ box-shadow: inset 0 0 0 2px var(--klun-focus-ring-color);
7928
8129
  }
7929
8130
 
7930
8131
  /* src/components/data-display/Tag.css */
@@ -8035,7 +8236,7 @@ body {
8035
8236
  }
8036
8237
  .klun-timeline__time {
8037
8238
  font: var(--klun-text-paragraph-xs);
8038
- color: var(--klun-text-soft-400);
8239
+ color: var(--klun-text-helper);
8039
8240
  margin-bottom: 2px;
8040
8241
  }
8041
8242
  .klun-timeline__label {
@@ -8048,6 +8249,14 @@ body {
8048
8249
  color: var(--klun-text-sub-600);
8049
8250
  text-wrap: pretty;
8050
8251
  }
8252
+ .klun-timeline__content,
8253
+ .klun-timeline__label,
8254
+ .klun-timeline__time {
8255
+ overflow-wrap: anywhere;
8256
+ }
8257
+ .klun-timeline__content {
8258
+ min-width: 0;
8259
+ }
8051
8260
 
8052
8261
  /* src/components/data-display/Tooltip.css */
8053
8262
  .klun-tooltip {
@@ -8076,8 +8285,8 @@ body {
8076
8285
  align-items: center;
8077
8286
  gap: 6px;
8078
8287
  height: var(--klun-control-h-sm, 32px);
8079
- padding-left: var(--klun-tree-indent, 6px);
8080
- padding-right: 8px;
8288
+ padding-inline-start: var(--klun-tree-indent, 6px);
8289
+ padding-inline-end: 8px;
8081
8290
  border-radius: var(--klun-radius-md);
8082
8291
  cursor: pointer;
8083
8292
  color: var(--klun-text-sub-600);
@@ -8099,6 +8308,10 @@ body {
8099
8308
  .klun-tree__item--disabled:hover {
8100
8309
  background: transparent;
8101
8310
  }
8311
+ .klun-tree__item:focus-visible {
8312
+ outline: none;
8313
+ box-shadow: inset 0 0 0 2px var(--klun-focus-ring-color, var(--klun-primary-base));
8314
+ }
8102
8315
  .klun-tree__item--selected:hover {
8103
8316
  background: var(--klun-bg-weak-50);
8104
8317
  }
@@ -8180,7 +8393,7 @@ body {
8180
8393
  font: var(--klun-text-label-xs);
8181
8394
  text-transform: uppercase;
8182
8395
  letter-spacing: 0.04em;
8183
- color: var(--klun-text-soft-400);
8396
+ color: var(--klun-text-helper);
8184
8397
  overflow: hidden;
8185
8398
  text-overflow: ellipsis;
8186
8399
  white-space: nowrap;
@@ -8225,7 +8438,7 @@ body {
8225
8438
  padding: 40px 12px;
8226
8439
  text-align: center;
8227
8440
  font: var(--klun-text-paragraph-sm);
8228
- color: var(--klun-text-soft-400);
8441
+ color: var(--klun-text-helper);
8229
8442
  }
8230
8443
  .klun-vtable__foot {
8231
8444
  flex: none;
@@ -8236,7 +8449,7 @@ body {
8236
8449
  border-top: 1px solid var(--klun-stroke-soft-200);
8237
8450
  background: var(--klun-bg-weak-50);
8238
8451
  font: var(--klun-text-label-xs);
8239
- color: var(--klun-text-soft-400);
8452
+ color: var(--klun-text-helper);
8240
8453
  }
8241
8454
 
8242
8455
  /* src/components/disclosure/Accordion.css */
@@ -8247,7 +8460,7 @@ body {
8247
8460
  }
8248
8461
  .klun-accordion__item {
8249
8462
  border-radius: var(--klun-radius-xl);
8250
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
8463
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
8251
8464
  background: var(--klun-bg-white-0);
8252
8465
  overflow: hidden;
8253
8466
  }
@@ -8305,6 +8518,9 @@ body {
8305
8518
  transition: none;
8306
8519
  }
8307
8520
  }
8521
+ .klun-accordion__title {
8522
+ overflow-wrap: anywhere;
8523
+ }
8308
8524
 
8309
8525
  /* src/components/disclosure/Collapse.css */
8310
8526
  .klun-collapse {
@@ -8381,6 +8597,9 @@ body {
8381
8597
  transition: none;
8382
8598
  }
8383
8599
  }
8600
+ .klun-collapse__title {
8601
+ overflow-wrap: anywhere;
8602
+ }
8384
8603
 
8385
8604
  /* src/components/feedback/Alert.css */
8386
8605
  .klun-alert {
@@ -8471,6 +8690,10 @@ body {
8471
8690
  .klun-alert--filled .klun-alert__close {
8472
8691
  color: var(--klun-static-static-white);
8473
8692
  }
8693
+ .klun-alert__title,
8694
+ .klun-alert__message {
8695
+ overflow-wrap: anywhere;
8696
+ }
8474
8697
 
8475
8698
  /* src/components/feedback/Banner.css */
8476
8699
  .klun-banner {
@@ -8531,6 +8754,10 @@ body {
8531
8754
  display: inline-flex;
8532
8755
  padding: 2px;
8533
8756
  }
8757
+ .klun-banner__content {
8758
+ overflow-wrap: anywhere;
8759
+ min-width: 0;
8760
+ }
8534
8761
 
8535
8762
  /* src/components/feedback/BorderBeam.css */
8536
8763
  @keyframes klun-border-beam-rotate {
@@ -8956,7 +9183,7 @@ body {
8956
9183
  .klun-notification__close {
8957
9184
  position: absolute;
8958
9185
  top: 12px;
8959
- right: 12px;
9186
+ inset-inline-end: 12px;
8960
9187
  display: inline-flex;
8961
9188
  align-items: center;
8962
9189
  justify-content: center;
@@ -9049,6 +9276,14 @@ body {
9049
9276
  animation: none;
9050
9277
  }
9051
9278
  }
9279
+ .klun-notification__body,
9280
+ .klun-notification__title,
9281
+ .klun-notification__description {
9282
+ overflow-wrap: anywhere;
9283
+ }
9284
+ .klun-notification__body {
9285
+ min-width: 0;
9286
+ }
9052
9287
 
9053
9288
  /* src/components/feedback/ProgressBar.css */
9054
9289
  .klun-progress-bar {
@@ -9430,7 +9665,7 @@ body {
9430
9665
  padding: 0 12px;
9431
9666
  border-radius: var(--_r);
9432
9667
  background: var(--klun-bg-white-0);
9433
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
9668
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
9434
9669
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
9435
9670
  }
9436
9671
  .klun-autocomplete__field[data-open] {
@@ -9440,19 +9675,25 @@ body {
9440
9675
  background: var(--klun-bg-weak-50);
9441
9676
  opacity: 0.5;
9442
9677
  }
9678
+ .klun-autocomplete__field--error {
9679
+ box-shadow: inset 0 0 0 1px var(--klun-state-error-base);
9680
+ }
9681
+ .klun-autocomplete__field--error[data-open] {
9682
+ box-shadow: inset 0 0 0 2px var(--klun-state-error-base);
9683
+ }
9443
9684
  .klun-autocomplete--small {
9444
9685
  --_h: 36px;
9445
- --_r: var(--klun-radius-lg);
9686
+ --_r: var(--klun-radius-sm);
9446
9687
  --_font: var(--klun-text-paragraph-sm);
9447
9688
  }
9448
9689
  .klun-autocomplete--medium {
9449
9690
  --_h: 40px;
9450
- --_r: var(--klun-radius-lg);
9691
+ --_r: var(--klun-radius-md);
9451
9692
  --_font: var(--klun-text-paragraph-sm);
9452
9693
  }
9453
9694
  .klun-autocomplete--large {
9454
9695
  --_h: 48px;
9455
- --_r: var(--klun-radius-xl);
9696
+ --_r: var(--klun-radius-lg);
9456
9697
  --_font: var(--klun-text-paragraph-md);
9457
9698
  }
9458
9699
  .klun-autocomplete__input {
@@ -9482,14 +9723,14 @@ body {
9482
9723
  padding: 6px;
9483
9724
  background: var(--klun-bg-white-0);
9484
9725
  border-radius: var(--klun-radius-xl);
9485
- box-shadow: var(--klun-shadow-md, 0 16px 32px -12px rgba(14, 18, 27, 0.12)), inset 0 0 0 1px var(--klun-stroke-soft-200);
9726
+ box-shadow: var(--klun-shadow-md, 0 16px 32px -12px rgba(14, 18, 27, 0.12)), inset 0 0 0 1px var(--klun-stroke-control);
9486
9727
  max-height: 280px;
9487
9728
  overflow-y: auto;
9488
9729
  }
9489
9730
  .klun-autocomplete__empty {
9490
9731
  padding: 10px 10px;
9491
9732
  font: var(--klun-text-paragraph-sm);
9492
- color: var(--klun-text-soft-400);
9733
+ color: var(--klun-text-helper);
9493
9734
  }
9494
9735
  .klun-autocomplete__option {
9495
9736
  display: flex;
@@ -9531,7 +9772,7 @@ body {
9531
9772
  }
9532
9773
  .klun-autocomplete__option-desc {
9533
9774
  font: var(--klun-text-paragraph-xs);
9534
- color: var(--klun-text-soft-400);
9775
+ color: var(--klun-text-helper);
9535
9776
  }
9536
9777
 
9537
9778
  /* src/components/forms/Cascader.css */
@@ -9574,13 +9815,13 @@ body {
9574
9815
  text-align: left;
9575
9816
  cursor: pointer;
9576
9817
  background: var(--klun-bg-white-0);
9577
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
9818
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
9578
9819
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
9579
9820
  font: var(--_font);
9580
9821
  color: var(--klun-text-strong-950);
9581
9822
  }
9582
9823
  .klun-cascader__trigger[data-empty] {
9583
- color: var(--klun-text-soft-400);
9824
+ color: var(--klun-text-helper);
9584
9825
  }
9585
9826
  .klun-cascader[data-open] .klun-cascader__trigger {
9586
9827
  box-shadow: inset 0 0 0 2px var(--klun-primary-base);
@@ -9658,6 +9899,10 @@ body {
9658
9899
  color: var(--klun-text-sub-600);
9659
9900
  transition: background var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
9660
9901
  }
9902
+ .klun-cascader__option:focus-visible {
9903
+ outline: none;
9904
+ box-shadow: inset 0 0 0 2px var(--klun-focus-ring-color);
9905
+ }
9661
9906
  .klun-cascader__option:hover {
9662
9907
  background: var(--klun-bg-weak-50);
9663
9908
  }
@@ -9689,7 +9934,7 @@ body {
9689
9934
  /* src/components/forms/CharacterCounter.css */
9690
9935
  .klun-character-counter {
9691
9936
  font: var(--klun-text-paragraph-xs);
9692
- color: var(--klun-text-soft-400);
9937
+ color: var(--klun-text-helper);
9693
9938
  font-variant-numeric: tabular-nums;
9694
9939
  white-space: nowrap;
9695
9940
  }
@@ -9697,7 +9942,9 @@ body {
9697
9942
  color: var(--klun-state-error-base);
9698
9943
  }
9699
9944
  .klun-character-counter__max {
9700
- opacity: 0.6;
9945
+ color: inherit;
9946
+ opacity: 1;
9947
+ font-weight: 400;
9701
9948
  }
9702
9949
 
9703
9950
  /* src/components/forms/Checkbox.css */
@@ -9798,7 +10045,7 @@ body {
9798
10045
  padding: 16px;
9799
10046
  border-radius: var(--klun-radius-2xl);
9800
10047
  background: var(--klun-bg-white-0);
9801
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
10048
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
9802
10049
  cursor: pointer;
9803
10050
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
9804
10051
  }
@@ -9864,7 +10111,7 @@ body {
9864
10111
  justify-content: center;
9865
10112
  border-radius: var(--klun-radius-sm);
9866
10113
  background: var(--klun-bg-white-0);
9867
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
10114
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
9868
10115
  transition: background var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
9869
10116
  }
9870
10117
  .klun-checkbox-card__input:checked + .klun-checkbox-card__box {
@@ -9942,7 +10189,7 @@ body {
9942
10189
  padding: 16px;
9943
10190
  background: var(--klun-bg-white-0);
9944
10191
  border-radius: var(--klun-radius-2xl);
9945
- box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200);
10192
+ box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-control);
9946
10193
  }
9947
10194
  .klun-color-picker__swatches {
9948
10195
  display: grid;
@@ -9968,7 +10215,7 @@ body {
9968
10215
  height: 40px;
9969
10216
  padding: 0 10px;
9970
10217
  border-radius: var(--klun-radius-lg);
9971
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
10218
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
9972
10219
  }
9973
10220
  .klun-color-picker__preview {
9974
10221
  width: 22px;
@@ -10063,7 +10310,7 @@ body {
10063
10310
  }
10064
10311
  .klun-compact-select--stroke .klun-compact-select__trigger {
10065
10312
  background: var(--klun-bg-white-0);
10066
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
10313
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
10067
10314
  }
10068
10315
  .klun-compact-select--ghost .klun-compact-select__trigger {
10069
10316
  background: transparent;
@@ -10182,6 +10429,9 @@ body {
10182
10429
  .klun-compact-select-for-input--disabled .klun-compact-select-for-input__trigger {
10183
10430
  cursor: not-allowed;
10184
10431
  }
10432
+ .klun-compact-select-for-input__trigger:focus-visible {
10433
+ box-shadow: var(--klun-shadow-button-primary-focus);
10434
+ }
10185
10435
  .klun-compact-select-for-input__icon {
10186
10436
  display: inline-flex;
10187
10437
  align-items: center;
@@ -10240,7 +10490,7 @@ body {
10240
10490
  align-items: center;
10241
10491
  overflow: hidden;
10242
10492
  background: var(--klun-bg-white-0);
10243
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
10493
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
10244
10494
  }
10245
10495
  .klun-counter-input--small {
10246
10496
  height: var(--klun-control-h-sm, 32px);
@@ -10304,7 +10554,7 @@ body {
10304
10554
  box-shadow: inset 1px 0 0 var(--klun-stroke-soft-200), inset -1px 0 0 var(--klun-stroke-soft-200);
10305
10555
  }
10306
10556
  .klun-counter-input__suffix {
10307
- color: var(--klun-text-soft-400);
10557
+ color: var(--klun-text-helper);
10308
10558
  }
10309
10559
 
10310
10560
  /* src/components/forms/CronEditor.css */
@@ -10362,7 +10612,7 @@ body {
10362
10612
  }
10363
10613
  .klun-cron__field-label {
10364
10614
  font: var(--klun-text-label-xs);
10365
- color: var(--klun-text-soft-400);
10615
+ color: var(--klun-text-helper);
10366
10616
  }
10367
10617
  .klun-cron__select,
10368
10618
  .klun-cron__input {
@@ -10372,7 +10622,7 @@ body {
10372
10622
  border: none;
10373
10623
  border-radius: var(--_radius);
10374
10624
  background: var(--klun-bg-white-0);
10375
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
10625
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
10376
10626
  color: var(--klun-text-strong-950);
10377
10627
  font: var(--_font);
10378
10628
  box-sizing: border-box;
@@ -10423,7 +10673,7 @@ body {
10423
10673
  padding: 16px;
10424
10674
  background: var(--klun-bg-white-0);
10425
10675
  border-radius: var(--klun-radius-2xl);
10426
- box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200);
10676
+ box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-control);
10427
10677
  }
10428
10678
  .klun-date-picker--bare {
10429
10679
  width: 100%;
@@ -10462,7 +10712,7 @@ body {
10462
10712
  .klun-date-picker__weekday {
10463
10713
  text-align: center;
10464
10714
  font: var(--klun-text-subheading-2xs);
10465
- color: var(--klun-text-soft-400);
10715
+ color: var(--klun-text-helper);
10466
10716
  padding: 4px 0;
10467
10717
  }
10468
10718
  .klun-date-picker__day {
@@ -10476,7 +10726,7 @@ body {
10476
10726
  }
10477
10727
  .klun-date-picker__day[data-today] {
10478
10728
  color: var(--klun-primary-base);
10479
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
10729
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
10480
10730
  }
10481
10731
  .klun-date-picker__day[data-selected] {
10482
10732
  background: var(--klun-primary-base);
@@ -10495,7 +10745,7 @@ body {
10495
10745
  padding: 16px;
10496
10746
  background: var(--klun-bg-white-0);
10497
10747
  border-radius: var(--klun-radius-2xl);
10498
- box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200);
10748
+ box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-control);
10499
10749
  }
10500
10750
  .klun-date-range-picker--bare {
10501
10751
  width: 100%;
@@ -10534,7 +10784,7 @@ body {
10534
10784
  .klun-date-range-picker__weekday {
10535
10785
  text-align: center;
10536
10786
  font: var(--klun-text-subheading-2xs);
10537
- color: var(--klun-text-soft-400);
10787
+ color: var(--klun-text-helper);
10538
10788
  padding: 4px 0;
10539
10789
  }
10540
10790
  .klun-date-range-picker__cell[data-in-range],
@@ -10574,7 +10824,7 @@ body {
10574
10824
  padding: 16px;
10575
10825
  background: var(--klun-bg-white-0);
10576
10826
  border-radius: var(--klun-radius-2xl);
10577
- box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200);
10827
+ box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-control);
10578
10828
  }
10579
10829
  .klun-date-time-picker__panel {
10580
10830
  display: flex;
@@ -10618,7 +10868,7 @@ body {
10618
10868
  background: var(--klun-bg-white-0);
10619
10869
  font: var(--_font, var(--klun-text-title-h6));
10620
10870
  color: var(--klun-text-strong-950);
10621
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
10871
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
10622
10872
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
10623
10873
  }
10624
10874
  .klun-digit-input__cell[data-filled] {
@@ -10630,6 +10880,15 @@ body {
10630
10880
  .klun-digit-input--disabled .klun-digit-input__cell {
10631
10881
  background: var(--klun-bg-weak-50);
10632
10882
  }
10883
+ .klun-digit-input__cell:focus-visible {
10884
+ box-shadow: var(--klun-shadow-button-primary-focus);
10885
+ }
10886
+ .klun-digit-input__cell[data-filled]:focus-visible {
10887
+ box-shadow: inset 0 0 0 1px var(--klun-primary-base), var(--klun-shadow-button-primary-focus);
10888
+ }
10889
+ .klun-digit-input--error .klun-digit-input__cell:focus-visible {
10890
+ box-shadow: inset 0 0 0 1px var(--klun-state-error-base), var(--klun-shadow-button-error-focus);
10891
+ }
10633
10892
 
10634
10893
  /* src/components/forms/EmojiPicker.css */
10635
10894
  .klun-emoji-picker {
@@ -10647,7 +10906,7 @@ body {
10647
10906
  padding: 0 8px;
10648
10907
  border-radius: var(--klun-radius-md);
10649
10908
  background: var(--klun-bg-weak-50);
10650
- color: var(--klun-text-soft-400);
10909
+ color: var(--klun-text-helper);
10651
10910
  }
10652
10911
  .klun-emoji-picker__search i {
10653
10912
  flex: none;
@@ -10685,7 +10944,7 @@ body {
10685
10944
  .klun-emoji-picker__group-title {
10686
10945
  padding: 0 2px;
10687
10946
  font: var(--klun-text-label-xs);
10688
- color: var(--klun-text-soft-400);
10947
+ color: var(--klun-text-helper);
10689
10948
  }
10690
10949
  .klun-emoji-picker__grid {
10691
10950
  display: grid;
@@ -10717,7 +10976,7 @@ body {
10717
10976
  padding: 24px 0;
10718
10977
  text-align: center;
10719
10978
  font: var(--klun-text-paragraph-sm);
10720
- color: var(--klun-text-soft-400);
10979
+ color: var(--klun-text-helper);
10721
10980
  }
10722
10981
 
10723
10982
  /* src/components/forms/Field.css */
@@ -10793,13 +11052,16 @@ body {
10793
11052
  cursor: pointer;
10794
11053
  outline: none;
10795
11054
  background: var(--klun-bg-white-0);
10796
- box-shadow: inset 0 0 0 1.5px var(--klun-stroke-soft-200);
11055
+ box-shadow: inset 0 0 0 1.5px var(--klun-stroke-control);
10797
11056
  transition: background var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease), box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
10798
11057
  }
10799
11058
  .klun-file-upload[data-dragover] {
10800
11059
  background: var(--klun-primary-lighter);
10801
11060
  box-shadow: inset 0 0 0 1.5px var(--klun-primary-base);
10802
11061
  }
11062
+ .klun-file-upload:focus-visible {
11063
+ box-shadow: inset 0 0 0 1.5px var(--klun-stroke-control), var(--klun-shadow-button-primary-focus);
11064
+ }
10803
11065
  .klun-file-upload__icon {
10804
11066
  display: flex;
10805
11067
  align-items: center;
@@ -10820,7 +11082,7 @@ body {
10820
11082
  }
10821
11083
  .klun-file-upload__hint {
10822
11084
  font: var(--klun-text-paragraph-xs);
10823
- color: var(--klun-text-soft-400);
11085
+ color: var(--klun-text-helper);
10824
11086
  }
10825
11087
 
10826
11088
  /* src/components/forms/Form.css */
@@ -10869,7 +11131,7 @@ body {
10869
11131
  }
10870
11132
  .klun-form-item__help {
10871
11133
  font: var(--klun-text-paragraph-xs);
10872
- color: var(--klun-text-soft-400);
11134
+ color: var(--klun-text-helper);
10873
11135
  }
10874
11136
 
10875
11137
  /* src/components/forms/Hint.css */
@@ -10878,7 +11140,7 @@ body {
10878
11140
  align-items: center;
10879
11141
  gap: 4px;
10880
11142
  font: var(--klun-text-paragraph-xs);
10881
- color: var(--klun-text-soft-400);
11143
+ color: var(--klun-text-helper);
10882
11144
  }
10883
11145
  .klun-hint--error {
10884
11146
  color: var(--klun-state-error-base);
@@ -10904,7 +11166,7 @@ body {
10904
11166
  background: var(--klun-bg-white-0);
10905
11167
  border: none;
10906
11168
  border-radius: var(--klun-radius-md);
10907
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
11169
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
10908
11170
  cursor: pointer;
10909
11171
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
10910
11172
  }
@@ -10945,7 +11207,7 @@ body {
10945
11207
  background: var(--klun-bg-weak-50);
10946
11208
  border: none;
10947
11209
  border-radius: var(--klun-radius-lg, 8px);
10948
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
11210
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
10949
11211
  outline: none;
10950
11212
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
10951
11213
  }
@@ -11085,8 +11347,8 @@ body {
11085
11347
  background: var(--klun-bg-white-0);
11086
11348
  background-size: cover;
11087
11349
  background-position: center;
11088
- box-shadow: inset 0 0 0 1.5px var(--klun-stroke-sub-300, var(--klun-stroke-soft-200));
11089
- outline: 1.5px dashed var(--klun-stroke-soft-200);
11350
+ box-shadow: inset 0 0 0 1.5px var(--klun-stroke-sub-300, var(--klun-stroke-control));
11351
+ outline: 1.5px dashed var(--klun-stroke-control);
11090
11352
  outline-offset: -1.5px;
11091
11353
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
11092
11354
  }
@@ -11098,7 +11360,7 @@ body {
11098
11360
  }
11099
11361
  .klun-image-upload__dropzone--filled {
11100
11362
  background-color: var(--klun-bg-weak-50);
11101
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
11363
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
11102
11364
  outline: none;
11103
11365
  }
11104
11366
  .klun-image-upload__dropzone[data-dragover] {
@@ -11149,7 +11411,7 @@ body {
11149
11411
  }
11150
11412
  .klun-image-upload__hint {
11151
11413
  font: var(--klun-text-paragraph-xs);
11152
- color: var(--klun-text-soft-400);
11414
+ color: var(--klun-text-helper);
11153
11415
  }
11154
11416
  .klun-image-upload__remove {
11155
11417
  margin-top: 2px;
@@ -11289,31 +11551,31 @@ body {
11289
11551
  align-items: center;
11290
11552
  gap: 8px;
11291
11553
  background: var(--klun-bg-white-0);
11292
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
11554
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
11293
11555
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
11294
11556
  }
11295
11557
  .klun-input--xsmall {
11296
11558
  height: var(--klun-control-h-sm, 32px);
11297
11559
  padding: 0 var(--klun-field-px-xs, 8px);
11298
- border-radius: var(--klun-radius-md);
11560
+ border-radius: var(--klun-radius-sm);
11299
11561
  font: var(--klun-text-paragraph-sm);
11300
11562
  }
11301
11563
  .klun-input--small {
11302
11564
  height: var(--klun-control-h-md, 36px);
11303
11565
  padding: 0 var(--klun-field-px-sm, 10px);
11304
- border-radius: var(--klun-radius-lg);
11566
+ border-radius: var(--klun-radius-sm);
11305
11567
  font: var(--klun-text-paragraph-sm);
11306
11568
  }
11307
11569
  .klun-input--medium {
11308
11570
  height: var(--klun-control-h-lg, 40px);
11309
11571
  padding: 0 var(--klun-field-px-md, 12px);
11310
- border-radius: var(--klun-radius-lg);
11572
+ border-radius: var(--klun-radius-md);
11311
11573
  font: var(--klun-text-paragraph-sm);
11312
11574
  }
11313
11575
  .klun-input--large {
11314
11576
  height: var(--klun-control-h-xl, 48px);
11315
11577
  padding: 0 var(--klun-field-px-lg, 14px);
11316
- border-radius: var(--klun-radius-xl);
11578
+ border-radius: var(--klun-radius-lg);
11317
11579
  font: var(--klun-text-paragraph-md);
11318
11580
  }
11319
11581
  .klun-input:focus-within {
@@ -11403,7 +11665,7 @@ body {
11403
11665
  padding: 0 10px;
11404
11666
  border-radius: var(--klun-radius-lg);
11405
11667
  background: var(--klun-bg-white-0);
11406
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
11668
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
11407
11669
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
11408
11670
  }
11409
11671
  .klun-input-group:focus-within {
@@ -11547,7 +11809,7 @@ body {
11547
11809
  }
11548
11810
  .klun-label__sublabel {
11549
11811
  font: var(--klun-text-paragraph-sm);
11550
- color: var(--klun-text-soft-400);
11812
+ color: var(--klun-text-helper);
11551
11813
  }
11552
11814
 
11553
11815
  /* src/components/forms/PasswordStrength.css */
@@ -11740,7 +12002,7 @@ body {
11740
12002
  padding: 16px;
11741
12003
  border-radius: var(--klun-radius-2xl);
11742
12004
  background: var(--klun-bg-white-0);
11743
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
12005
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
11744
12006
  cursor: pointer;
11745
12007
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
11746
12008
  }
@@ -11795,7 +12057,7 @@ body {
11795
12057
  }
11796
12058
  .klun-radio-card__unit {
11797
12059
  font: var(--klun-text-paragraph-xs);
11798
- color: var(--klun-text-soft-400);
12060
+ color: var(--klun-text-helper);
11799
12061
  }
11800
12062
  .klun-radio-card__control {
11801
12063
  position: relative;
@@ -11819,7 +12081,7 @@ body {
11819
12081
  inset: 0;
11820
12082
  border-radius: var(--klun-radius-pill);
11821
12083
  background: var(--klun-bg-white-0);
11822
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
12084
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
11823
12085
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
11824
12086
  }
11825
12087
  .klun-radio-card__input:checked + .klun-radio-card__box {
@@ -11852,15 +12114,14 @@ body {
11852
12114
  }
11853
12115
  .klun-range-slider__rail {
11854
12116
  position: absolute;
11855
- left: 0;
11856
- right: 0;
12117
+ inset-inline: 0;
11857
12118
  height: var(--_track);
11858
12119
  border-radius: var(--klun-radius-pill);
11859
12120
  background: var(--klun-stroke-soft-200);
11860
12121
  }
11861
12122
  .klun-range-slider__fill {
11862
12123
  position: absolute;
11863
- left: var(--klun-range-slider-lo);
12124
+ inset-inline-start: var(--klun-range-slider-lo);
11864
12125
  width: calc(var(--klun-range-slider-hi) - var(--klun-range-slider-lo));
11865
12126
  height: var(--_track);
11866
12127
  border-radius: var(--klun-radius-pill);
@@ -11878,15 +12139,14 @@ body {
11878
12139
  pointer-events: none;
11879
12140
  }
11880
12141
  .klun-range-slider__thumb--lo {
11881
- left: calc(var(--klun-range-slider-lo) - var(--_thumb) / 2);
12142
+ inset-inline-start: calc(var(--klun-range-slider-lo) - var(--_thumb) / 2);
11882
12143
  }
11883
12144
  .klun-range-slider__thumb--hi {
11884
- left: calc(var(--klun-range-slider-hi) - var(--_thumb) / 2);
12145
+ inset-inline-start: calc(var(--klun-range-slider-hi) - var(--_thumb) / 2);
11885
12146
  }
11886
12147
  .klun-range-slider__input {
11887
12148
  position: absolute;
11888
- left: 0;
11889
- right: 0;
12149
+ inset-inline: 0;
11890
12150
  width: 100%;
11891
12151
  height: var(--_thumb);
11892
12152
  margin: 0;
@@ -11930,7 +12190,7 @@ body {
11930
12190
  flex-direction: column;
11931
12191
  border-radius: var(--klun-radius-lg);
11932
12192
  background: var(--klun-bg-white-0);
11933
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
12193
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
11934
12194
  overflow: hidden;
11935
12195
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
11936
12196
  }
@@ -11973,7 +12233,7 @@ body {
11973
12233
  .klun-rich-editor__source[data-active] {
11974
12234
  background: var(--klun-bg-white-0);
11975
12235
  color: var(--klun-text-strong-950);
11976
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
12236
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
11977
12237
  }
11978
12238
  .klun-rich-editor__sourcearea {
11979
12239
  border-bottom: 1px solid var(--klun-stroke-soft-200);
@@ -11990,7 +12250,7 @@ body {
11990
12250
  }
11991
12251
  .klun-rich-editor__area:empty::before {
11992
12252
  content: attr(data-placeholder);
11993
- color: var(--klun-text-soft-400);
12253
+ color: var(--klun-text-helper);
11994
12254
  pointer-events: none;
11995
12255
  }
11996
12256
  .klun-rich-editor__area h1 {
@@ -12036,6 +12296,7 @@ body {
12036
12296
  }
12037
12297
  .klun-rich-editor__area:focus-visible {
12038
12298
  outline: none;
12299
+ box-shadow: inset 0 0 0 2px var(--klun-focus-ring-color);
12039
12300
  }
12040
12301
 
12041
12302
  /* src/components/forms/RichEditorToolbar.css */
@@ -12046,7 +12307,7 @@ body {
12046
12307
  padding: 4px;
12047
12308
  border-radius: var(--klun-radius-xl);
12048
12309
  background: var(--klun-bg-white-0);
12049
- box-shadow: var(--klun-shadow-sm), inset 0 0 0 1px var(--klun-stroke-soft-200);
12310
+ box-shadow: var(--klun-shadow-sm), inset 0 0 0 1px var(--klun-stroke-control);
12050
12311
  }
12051
12312
  .klun-rich-editor-toolbar__divider {
12052
12313
  width: 1px;
@@ -12090,32 +12351,32 @@ body {
12090
12351
  text-align: left;
12091
12352
  background: var(--klun-bg-white-0);
12092
12353
  color: var(--klun-text-strong-950);
12093
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
12354
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
12094
12355
  cursor: pointer;
12095
12356
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
12096
12357
  }
12097
12358
  .klun-select--xsmall .klun-select__trigger {
12098
12359
  height: var(--klun-control-h-sm, 32px);
12099
12360
  padding: 0 var(--klun-field-px-xs, 8px);
12100
- border-radius: var(--klun-radius-md);
12361
+ border-radius: var(--klun-radius-sm);
12101
12362
  font: var(--klun-text-paragraph-sm);
12102
12363
  }
12103
12364
  .klun-select--small .klun-select__trigger {
12104
12365
  height: var(--klun-control-h-md, 36px);
12105
12366
  padding: 0 var(--klun-field-px-sm, 10px);
12106
- border-radius: var(--klun-radius-lg);
12367
+ border-radius: var(--klun-radius-sm);
12107
12368
  font: var(--klun-text-paragraph-sm);
12108
12369
  }
12109
12370
  .klun-select--medium .klun-select__trigger {
12110
12371
  height: var(--klun-control-h-lg, 40px);
12111
12372
  padding: 0 var(--klun-field-px-md, 12px);
12112
- border-radius: var(--klun-radius-lg);
12373
+ border-radius: var(--klun-radius-md);
12113
12374
  font: var(--klun-text-paragraph-sm);
12114
12375
  }
12115
12376
  .klun-select--large .klun-select__trigger {
12116
12377
  height: var(--klun-control-h-xl, 48px);
12117
12378
  padding: 0 var(--klun-field-px-lg, 14px);
12118
- border-radius: var(--klun-radius-xl);
12379
+ border-radius: var(--klun-radius-lg);
12119
12380
  font: var(--klun-text-paragraph-md);
12120
12381
  }
12121
12382
  .klun-select__trigger:focus-visible,
@@ -12183,6 +12444,11 @@ body {
12183
12444
  transform: rotate(360deg);
12184
12445
  }
12185
12446
  }
12447
+ @media (prefers-reduced-motion: reduce) {
12448
+ .klun-select__spinner {
12449
+ animation: none;
12450
+ }
12451
+ }
12186
12452
 
12187
12453
  /* src/components/forms/SelectMenu.css */
12188
12454
  .klun-select-menu {
@@ -12199,7 +12465,7 @@ body {
12199
12465
  cursor: pointer;
12200
12466
  background: var(--klun-bg-white-0);
12201
12467
  color: var(--klun-text-strong-950);
12202
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
12468
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
12203
12469
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
12204
12470
  }
12205
12471
  .klun-select-menu__trigger--small {
@@ -12286,6 +12552,12 @@ body {
12286
12552
  border-radius: var(--klun-radius-xl);
12287
12553
  box-shadow: var(--klun-shadow-md, 0 16px 32px -12px rgba(14, 18, 27, 0.1)), inset 0 0 0 1px var(--klun-stroke-soft-200);
12288
12554
  }
12555
+ .klun-select-menu__panel--start {
12556
+ inset-inline-start: 0;
12557
+ }
12558
+ .klun-select-menu__panel--end {
12559
+ inset-inline-end: 0;
12560
+ }
12289
12561
  .klun-select-menu__panel--left {
12290
12562
  left: 0;
12291
12563
  }
@@ -12339,7 +12611,7 @@ body {
12339
12611
  }
12340
12612
  .klun-select-menu__option-desc {
12341
12613
  font: var(--klun-text-paragraph-xs);
12342
- color: var(--klun-text-soft-400);
12614
+ color: var(--klun-text-helper);
12343
12615
  }
12344
12616
  .klun-select-menu__check {
12345
12617
  color: var(--klun-primary-base);
@@ -12364,6 +12636,9 @@ body {
12364
12636
  var(--klun-bg-soft-200) var(--klun-slider-value),
12365
12637
  var(--klun-bg-soft-200) 100%);
12366
12638
  }
12639
+ .klun-slider:focus-visible {
12640
+ box-shadow: var(--klun-shadow-button-primary-focus);
12641
+ }
12367
12642
  .klun-slider--small {
12368
12643
  --_h: 4px;
12369
12644
  }
@@ -12450,7 +12725,7 @@ body {
12450
12725
  width: 100%;
12451
12726
  border-radius: var(--_radius, var(--klun-radius-xl));
12452
12727
  background: var(--klun-bg-white-0);
12453
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
12728
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
12454
12729
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
12455
12730
  }
12456
12731
  .klun-textarea--xsmall {
@@ -12512,7 +12787,7 @@ body {
12512
12787
  padding: 0 var(--klun-control-px-sm, 12px);
12513
12788
  border-radius: var(--klun-radius-lg);
12514
12789
  background: var(--klun-bg-white-0);
12515
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
12790
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
12516
12791
  }
12517
12792
  .klun-time-picker__icon {
12518
12793
  font-size: 18px;
@@ -12551,7 +12826,7 @@ body {
12551
12826
  box-shadow: inset 0 0 0 1px var(--klun-primary-base);
12552
12827
  }
12553
12828
  .klun-time-picker__sep {
12554
- color: var(--klun-text-soft-400);
12829
+ color: var(--klun-text-helper);
12555
12830
  }
12556
12831
  .klun-time-picker__listbox {
12557
12832
  min-width: 60px;
@@ -13001,7 +13276,7 @@ body {
13001
13276
  line-height: 1;
13002
13277
  color: var(--klun-icon-sub-600);
13003
13278
  background: var(--klun-bg-white-0);
13004
- border: 1px solid var(--klun-stroke-soft-200);
13279
+ border: 1px solid var(--klun-stroke-control);
13005
13280
  border-radius: var(--klun-radius-sm);
13006
13281
  cursor: pointer;
13007
13282
  opacity: 0;
@@ -13141,7 +13416,7 @@ body {
13141
13416
  cursor: pointer;
13142
13417
  background: var(--klun-bg-white-0);
13143
13418
  color: var(--klun-text-sub-600);
13144
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
13419
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
13145
13420
  transition: background var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease), color var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
13146
13421
  }
13147
13422
  .klun-horizontal-filter__item:hover {
@@ -13172,7 +13447,7 @@ body {
13172
13447
  font: var(--klun-text-label-xs);
13173
13448
  font-size: 11px;
13174
13449
  background: var(--klun-bg-weak-50);
13175
- color: var(--klun-text-soft-400);
13450
+ color: var(--klun-text-helper);
13176
13451
  }
13177
13452
  .klun-horizontal-filter__item[data-active] .klun-horizontal-filter__count,
13178
13453
  .klun-horizontal-filter__item[aria-selected=true] .klun-horizontal-filter__count {
@@ -13289,7 +13564,7 @@ body {
13289
13564
  font: var(--klun-text-subheading-2xs, var(--klun-text-label-xs));
13290
13565
  letter-spacing: 0.06em;
13291
13566
  text-transform: uppercase;
13292
- color: var(--klun-text-soft-400);
13567
+ color: var(--klun-text-helper);
13293
13568
  }
13294
13569
  .klun-menu__divider {
13295
13570
  height: 1px;
@@ -13407,7 +13682,7 @@ body {
13407
13682
  }
13408
13683
  .klun-pagination__cell[data-active=true] {
13409
13684
  background: var(--klun-bg-white-0);
13410
- box-shadow: var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-soft-200);
13685
+ box-shadow: var(--klun-shadow-xs), inset 0 0 0 1px var(--klun-stroke-control);
13411
13686
  color: var(--klun-text-strong-950);
13412
13687
  }
13413
13688
  .klun-pagination__cell:disabled {
@@ -13417,7 +13692,7 @@ body {
13417
13692
  .klun-pagination__ellipsis {
13418
13693
  min-width: 24px;
13419
13694
  text-align: center;
13420
- color: var(--klun-text-soft-400);
13695
+ color: var(--klun-text-helper);
13421
13696
  }
13422
13697
 
13423
13698
  /* src/components/navigation/SegmentedControl.css */
@@ -13470,7 +13745,7 @@ body {
13470
13745
  --_stroke: var(--klun-stroke-soft-200);
13471
13746
  --_fg: var(--klun-text-strong-950);
13472
13747
  --_sub-fg: var(--klun-text-sub-600);
13473
- --_soft-fg: var(--klun-text-soft-400);
13748
+ --_soft-fg: var(--klun-text-helper);
13474
13749
  display: flex;
13475
13750
  height: 100%;
13476
13751
  color: var(--_fg);
@@ -13513,8 +13788,8 @@ body {
13513
13788
  display: flex;
13514
13789
  align-items: center;
13515
13790
  justify-content: center;
13516
- width: 40px;
13517
- height: 40px;
13791
+ width: var(--klun-control-h-lg);
13792
+ height: var(--klun-control-h-lg);
13518
13793
  padding: 0;
13519
13794
  border: 0;
13520
13795
  border-radius: var(--klun-radius-md);
@@ -13707,7 +13982,7 @@ body {
13707
13982
  display: flex;
13708
13983
  align-items: center;
13709
13984
  width: 100%;
13710
- height: 40px;
13985
+ height: var(--klun-control-h-lg);
13711
13986
  margin: 2px 0;
13712
13987
  padding: 8px 16px;
13713
13988
  border: 0;
@@ -13902,6 +14177,10 @@ body {
13902
14177
  .klun-step-indicator__connector[data-state=complete] {
13903
14178
  background: var(--klun-primary-base);
13904
14179
  }
14180
+ .klun-step-indicator__label,
14181
+ .klun-step-indicator__description {
14182
+ overflow-wrap: anywhere;
14183
+ }
13905
14184
 
13906
14185
  /* src/components/navigation/Stepper.css */
13907
14186
  .klun-stepper {
@@ -14078,7 +14357,14 @@ body {
14078
14357
  }
14079
14358
  .klun-tabs--pill .klun-tabs__badge {
14080
14359
  font: var(--klun-text-label-xs);
14081
- color: var(--klun-text-soft-400);
14360
+ color: var(--klun-text-helper);
14361
+ }
14362
+ .klun-tabs {
14363
+ overflow-x: auto;
14364
+ scrollbar-width: thin;
14365
+ }
14366
+ .klun-tabs__tab {
14367
+ white-space: nowrap;
14082
14368
  }
14083
14369
 
14084
14370
  /* src/components/navigation/Wizard.css */
@@ -14256,7 +14542,7 @@ body {
14256
14542
  padding: 2px 6px;
14257
14543
  border-radius: var(--klun-radius-sm);
14258
14544
  background: var(--klun-bg-weak-50);
14259
- color: var(--klun-text-soft-400);
14545
+ color: var(--klun-text-helper);
14260
14546
  }
14261
14547
  .klun-command-menu__list {
14262
14548
  max-height: 360px;
@@ -14267,7 +14553,7 @@ body {
14267
14553
  padding: 32px 0;
14268
14554
  text-align: center;
14269
14555
  font: var(--klun-text-paragraph-sm);
14270
- color: var(--klun-text-soft-400);
14556
+ color: var(--klun-text-helper);
14271
14557
  }
14272
14558
  .klun-command-menu__group {
14273
14559
  margin-bottom: 6px;
@@ -14277,7 +14563,7 @@ body {
14277
14563
  font: var(--klun-text-subheading-2xs);
14278
14564
  letter-spacing: var(--klun-subheading-2xs-tracking);
14279
14565
  text-transform: uppercase;
14280
- color: var(--klun-text-soft-400);
14566
+ color: var(--klun-text-helper);
14281
14567
  }
14282
14568
  .klun-command-menu__item {
14283
14569
  display: flex;
@@ -14308,7 +14594,7 @@ body {
14308
14594
  }
14309
14595
  .klun-command-menu__shortcut {
14310
14596
  font: var(--klun-text-paragraph-xs);
14311
- color: var(--klun-text-soft-400);
14597
+ color: var(--klun-text-helper);
14312
14598
  }
14313
14599
 
14314
14600
  /* src/components/overlays/Confirm.css */
@@ -14406,7 +14692,7 @@ body {
14406
14692
  background: var(--klun-bg-white-0);
14407
14693
  border: none;
14408
14694
  border-radius: var(--klun-radius-lg);
14409
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
14695
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
14410
14696
  outline: none;
14411
14697
  transition: box-shadow var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
14412
14698
  }
@@ -14427,7 +14713,7 @@ body {
14427
14713
  font: var(--klun-text-label-sm);
14428
14714
  color: var(--klun-text-sub-600);
14429
14715
  background: var(--klun-bg-white-0);
14430
- box-shadow: inset 0 0 0 1px var(--klun-stroke-soft-200);
14716
+ box-shadow: inset 0 0 0 1px var(--klun-stroke-control);
14431
14717
  cursor: pointer;
14432
14718
  transition: background var(--klun-duration-fast, 0.15s) var(--klun-ease-out, ease);
14433
14719
  }
@@ -14466,6 +14752,11 @@ body {
14466
14752
  transform: rotate(360deg);
14467
14753
  }
14468
14754
  }
14755
+ @media (prefers-reduced-motion: reduce) {
14756
+ .klun-confirm__spinner {
14757
+ animation: none;
14758
+ }
14759
+ }
14469
14760
 
14470
14761
  /* src/components/overlays/ContextMenu.css */
14471
14762
  .klun-context-menu__layer {
@@ -14534,7 +14825,7 @@ body {
14534
14825
  .klun-context-menu__shortcut {
14535
14826
  flex: none;
14536
14827
  font-size: 12px;
14537
- color: var(--klun-text-soft-400);
14828
+ color: var(--klun-text-helper);
14538
14829
  }
14539
14830
  .klun-context-menu__arrow {
14540
14831
  flex: none;
@@ -14555,7 +14846,7 @@ body {
14555
14846
  position: fixed;
14556
14847
  inset: 0;
14557
14848
  z-index: 100;
14558
- background: rgba(0, 0, 0, 0.45);
14849
+ background: var(--klun-scrim);
14559
14850
  backdrop-filter: blur(3px);
14560
14851
  display: flex;
14561
14852
  }
@@ -14672,6 +14963,14 @@ body {
14672
14963
  padding: 16px 20px;
14673
14964
  border-top: 1px solid var(--klun-stroke-soft-200);
14674
14965
  }
14966
+ @media (prefers-reduced-motion: reduce) {
14967
+ .klun-drawer--right .klun-drawer__panel,
14968
+ .klun-drawer--left .klun-drawer__panel,
14969
+ .klun-drawer--top .klun-drawer__panel,
14970
+ .klun-drawer--bottom .klun-drawer__panel {
14971
+ animation: none;
14972
+ }
14973
+ }
14675
14974
 
14676
14975
  /* src/components/overlays/Dropdown.css */
14677
14976
  .klun-dropdown {
@@ -14690,6 +14989,12 @@ body {
14690
14989
  border-radius: var(--klun-radius-xl);
14691
14990
  box-shadow: var(--klun-shadow-md), inset 0 0 0 1px var(--klun-stroke-soft-200);
14692
14991
  }
14992
+ .klun-dropdown__menu--start {
14993
+ inset-inline-start: 0;
14994
+ }
14995
+ .klun-dropdown__menu--end {
14996
+ inset-inline-end: 0;
14997
+ }
14693
14998
  .klun-dropdown__menu--left {
14694
14999
  left: 0;
14695
15000
  }
@@ -14736,7 +15041,7 @@ body {
14736
15041
  }
14737
15042
  .klun-dropdown__shortcut {
14738
15043
  font: var(--klun-text-paragraph-xs);
14739
- color: var(--klun-text-soft-400);
15044
+ color: var(--klun-text-helper);
14740
15045
  }
14741
15046
 
14742
15047
  /* src/components/overlays/HoverCard.css */
@@ -14793,7 +15098,7 @@ body {
14793
15098
  to bottom,
14794
15099
  rgba(0, 0, 0, 0.55),
14795
15100
  transparent);
14796
- color: #fff;
15101
+ color: var(--klun-static-static-white);
14797
15102
  }
14798
15103
  .klun-image-viewer__title {
14799
15104
  display: flex;
@@ -14801,7 +15106,7 @@ body {
14801
15106
  gap: 10px;
14802
15107
  min-width: 0;
14803
15108
  font: var(--klun-text-label-sm, 600 14px/1.4 sans-serif);
14804
- color: #fff;
15109
+ color: var(--klun-static-static-white);
14805
15110
  overflow: hidden;
14806
15111
  text-overflow: ellipsis;
14807
15112
  white-space: nowrap;
@@ -14810,7 +15115,7 @@ body {
14810
15115
  flex: none;
14811
15116
  padding: 1px 8px;
14812
15117
  border-radius: 999px;
14813
- background: rgba(255, 255, 255, 0.16);
15118
+ background: var(--klun-alpha-white-alpha-16);
14814
15119
  font-size: 12px;
14815
15120
  font-weight: 500;
14816
15121
  }
@@ -14829,13 +15134,13 @@ body {
14829
15134
  border: none;
14830
15135
  border-radius: 8px;
14831
15136
  background: transparent;
14832
- color: #fff;
15137
+ color: var(--klun-static-static-white);
14833
15138
  font-size: 18px;
14834
15139
  cursor: pointer;
14835
15140
  transition: background 0.12s ease;
14836
15141
  }
14837
15142
  .klun-image-viewer__btn:hover {
14838
- background: rgba(255, 255, 255, 0.16);
15143
+ background: var(--klun-alpha-white-alpha-16);
14839
15144
  }
14840
15145
  .klun-image-viewer__zoom {
14841
15146
  min-width: 46px;
@@ -14879,7 +15184,7 @@ body {
14879
15184
  border: none;
14880
15185
  border-radius: 50%;
14881
15186
  background: rgba(255, 255, 255, 0.12);
14882
- color: #fff;
15187
+ color: var(--klun-static-static-white);
14883
15188
  font-size: 26px;
14884
15189
  cursor: pointer;
14885
15190
  transition: background 0.12s ease;
@@ -14904,7 +15209,7 @@ body {
14904
15209
  justify-content: center;
14905
15210
  padding: 24px;
14906
15211
  overflow-y: auto;
14907
- background: rgba(0, 0, 0, 0.45);
15212
+ background: var(--klun-scrim);
14908
15213
  backdrop-filter: blur(3px);
14909
15214
  }
14910
15215
  .klun-modal--centered {
@@ -15134,6 +15439,14 @@ body {
15134
15439
  transform: rotate(360deg);
15135
15440
  }
15136
15441
  }
15442
+ @media (prefers-reduced-motion: reduce) {
15443
+ .klun-popconfirm__panel {
15444
+ animation: none;
15445
+ }
15446
+ .klun-popconfirm__spinner {
15447
+ animation: none;
15448
+ }
15449
+ }
15137
15450
 
15138
15451
  /* src/components/overlays/Popover.css */
15139
15452
  .klun-popover {