@kashi-ui/css 0.3.0 → 0.5.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/base.css +6 -0
- package/dist/components/alert.css +1 -1
- package/dist/components/badge.css +1 -1
- package/dist/components/button.css +6 -6
- package/dist/components/calendar.css +23 -1
- package/dist/components/card.css +3 -3
- package/dist/components/checkbox.css +3 -2
- package/dist/components/dialog.css +74 -0
- package/dist/components/input.css +21 -1
- package/dist/components/radio.css +81 -0
- package/dist/components/select.css +56 -0
- package/dist/components/switch.css +2 -1
- package/dist/components/tabs.css +77 -0
- package/dist/components/toast.css +76 -0
- package/dist/components/tooltip.css +48 -0
- package/dist/kashi.css +513 -26
- package/dist/tokens.css +29 -10
- package/package.json +2 -2
package/dist/kashi.css
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
--k-firoozeh-300: #4fd8cb;
|
|
22
22
|
--k-firoozeh-400: #22c2b4;
|
|
23
23
|
--k-firoozeh-500: #0fa89b;
|
|
24
|
-
--k-firoozeh-600: #
|
|
24
|
+
--k-firoozeh-600: #0b8077;
|
|
25
25
|
--k-firoozeh-700: #0a6b65;
|
|
26
26
|
--k-firoozeh-800: #0d5551;
|
|
27
27
|
--k-firoozeh-900: #0f4644;
|
|
@@ -76,12 +76,15 @@
|
|
|
76
76
|
--k-shab-200: #d5d9e2;
|
|
77
77
|
--k-shab-300: #b1b9c9;
|
|
78
78
|
--k-shab-400: #8792ab;
|
|
79
|
+
--k-shab-450: #848fa7;
|
|
79
80
|
--k-shab-500: #687491;
|
|
81
|
+
--k-shab-550: #5a637a;
|
|
80
82
|
--k-shab-600: #535d78;
|
|
81
83
|
--k-shab-700: #444c62;
|
|
82
84
|
--k-shab-800: #2a2f3d;
|
|
83
85
|
--k-shab-850: #1e222c;
|
|
84
86
|
--k-shab-900: #161921;
|
|
87
|
+
--k-shab-925: #111319;
|
|
85
88
|
--k-shab-950: #0d0f14;
|
|
86
89
|
--k-shab-1000: #08090c;
|
|
87
90
|
--k-brand-50: var(--k-firoozeh-50);
|
|
@@ -162,11 +165,11 @@
|
|
|
162
165
|
--k-bg-primary: var(--k-shab-1000);
|
|
163
166
|
--k-bg-secondary: var(--k-shab-950);
|
|
164
167
|
--k-bg-tertiary: var(--k-shab-900);
|
|
165
|
-
--k-bg-elevated: var(--k-shab-
|
|
168
|
+
--k-bg-elevated: var(--k-shab-925);
|
|
166
169
|
--k-bg-hover: rgb(255 255 255 / 0.05);
|
|
167
170
|
--k-bg-active: rgb(255 255 255 / 0.08);
|
|
168
|
-
--k-bg-brand: var(--k-brand-
|
|
169
|
-
--k-bg-brand-hover: var(--k-brand-
|
|
171
|
+
--k-bg-brand: var(--k-brand-400);
|
|
172
|
+
--k-bg-brand-hover: var(--k-brand-300);
|
|
170
173
|
--k-bg-brand-subtle: color-mix(in srgb, var(--k-brand-500) 14%, transparent);
|
|
171
174
|
--k-bg-error: var(--k-anar-600);
|
|
172
175
|
--k-bg-error-hover: var(--k-anar-700);
|
|
@@ -178,7 +181,8 @@
|
|
|
178
181
|
--k-text-secondary: var(--k-shab-200);
|
|
179
182
|
--k-text-tertiary: var(--k-shab-400);
|
|
180
183
|
--k-text-quaternary: var(--k-shab-500);
|
|
181
|
-
--k-text-on-brand: var(--k-shab-
|
|
184
|
+
--k-text-on-brand: var(--k-shab-1000);
|
|
185
|
+
--k-text-on-error: var(--k-shab-0);
|
|
182
186
|
--k-text-brand: var(--k-brand-300);
|
|
183
187
|
--k-text-error: var(--k-anar-400);
|
|
184
188
|
--k-text-warning: var(--k-zafaran-400);
|
|
@@ -187,11 +191,18 @@
|
|
|
187
191
|
--k-border-primary: var(--k-shab-700);
|
|
188
192
|
--k-border-secondary: var(--k-shab-800);
|
|
189
193
|
--k-border-brand: var(--k-brand-400);
|
|
190
|
-
--k-border-input: var(--k-shab-
|
|
194
|
+
--k-border-input: var(--k-shab-550);
|
|
191
195
|
--k-border-error: var(--k-anar-400);
|
|
192
196
|
--k-ring-brand: 0 0 0 4px color-mix(in srgb, var(--k-brand-400) 28%, transparent);
|
|
193
197
|
--k-ring-error: 0 0 0 4px rgb(248 59 71 / 0.28);
|
|
194
|
-
--k-shadow-skeuomorphic: inset 0 0 0 1px rgb(
|
|
198
|
+
--k-shadow-skeuomorphic: inset 0 0 0 1px rgb(0 0 0 / 0.2), inset 0 -2px 0 rgb(0 0 0 / 0.12);
|
|
199
|
+
--k-highlight: inset 0 1px 0 rgb(255 255 255 / 0.05);
|
|
200
|
+
--k-shadow-xs: 0 1px 2px rgb(0 0 0 / 0.4);
|
|
201
|
+
--k-shadow-sm: 0 1px 3px rgb(0 0 0 / 0.45), 0 1px 2px -1px rgb(0 0 0 / 0.4);
|
|
202
|
+
--k-shadow-md: 0 4px 8px -2px rgb(0 0 0 / 0.5), 0 2px 4px -2px rgb(0 0 0 / 0.35);
|
|
203
|
+
--k-shadow-lg: 0 12px 24px -4px rgb(0 0 0 / 0.55), 0 4px 8px -4px rgb(0 0 0 / 0.35);
|
|
204
|
+
--k-shadow-xl: 0 20px 32px -6px rgb(0 0 0 / 0.6), 0 8px 12px -6px rgb(0 0 0 / 0.4);
|
|
205
|
+
--k-shadow-2xl: 0 28px 56px -12px rgb(0 0 0 / 0.7);
|
|
195
206
|
}
|
|
196
207
|
|
|
197
208
|
[data-theme="light"] {
|
|
@@ -202,8 +213,8 @@
|
|
|
202
213
|
--k-bg-elevated: var(--k-shab-0);
|
|
203
214
|
--k-bg-hover: var(--k-shab-50);
|
|
204
215
|
--k-bg-active: var(--k-shab-100);
|
|
205
|
-
--k-bg-brand: var(--k-brand-
|
|
206
|
-
--k-bg-brand-hover: var(--k-brand-
|
|
216
|
+
--k-bg-brand: var(--k-brand-600);
|
|
217
|
+
--k-bg-brand-hover: var(--k-brand-700);
|
|
207
218
|
--k-bg-brand-subtle: var(--k-brand-50);
|
|
208
219
|
--k-bg-error: var(--k-anar-600);
|
|
209
220
|
--k-bg-error-hover: var(--k-anar-700);
|
|
@@ -216,6 +227,7 @@
|
|
|
216
227
|
--k-text-tertiary: var(--k-shab-600);
|
|
217
228
|
--k-text-quaternary: var(--k-shab-500);
|
|
218
229
|
--k-text-on-brand: var(--k-shab-0);
|
|
230
|
+
--k-text-on-error: var(--k-shab-0);
|
|
219
231
|
--k-text-brand: var(--k-brand-700);
|
|
220
232
|
--k-text-error: var(--k-anar-700);
|
|
221
233
|
--k-text-warning: var(--k-zafaran-700);
|
|
@@ -224,11 +236,18 @@
|
|
|
224
236
|
--k-border-primary: var(--k-shab-300);
|
|
225
237
|
--k-border-secondary: var(--k-shab-200);
|
|
226
238
|
--k-border-brand: var(--k-brand-600);
|
|
227
|
-
--k-border-input: var(--k-shab-
|
|
239
|
+
--k-border-input: var(--k-shab-450);
|
|
228
240
|
--k-border-error: var(--k-anar-500);
|
|
229
241
|
--k-ring-brand: 0 0 0 4px color-mix(in srgb, var(--k-brand-500) 20%, transparent);
|
|
230
242
|
--k-ring-error: 0 0 0 4px rgb(229 29 42 / 0.2);
|
|
231
243
|
--k-shadow-skeuomorphic: inset 0 0 0 1px rgb(10 13 18 / 0.18), inset 0 -2px 0 rgb(10 13 18 / 0.05);
|
|
244
|
+
--k-highlight: 0 0 #0000;
|
|
245
|
+
--k-shadow-xs: 0 1px 2px rgb(10 13 18 / 0.05);
|
|
246
|
+
--k-shadow-sm: 0 1px 3px rgb(10 13 18 / 0.1), 0 1px 2px -1px rgb(10 13 18 / 0.1);
|
|
247
|
+
--k-shadow-md: 0 4px 6px -1px rgb(10 13 18 / 0.1), 0 2px 4px -2px rgb(10 13 18 / 0.06);
|
|
248
|
+
--k-shadow-lg: 0 12px 16px -4px rgb(10 13 18 / 0.08), 0 4px 6px -2px rgb(10 13 18 / 0.03);
|
|
249
|
+
--k-shadow-xl: 0 20px 24px -4px rgb(10 13 18 / 0.08), 0 8px 8px -4px rgb(10 13 18 / 0.03);
|
|
250
|
+
--k-shadow-2xl: 0 24px 48px -12px rgb(10 13 18 / 0.18);
|
|
232
251
|
}
|
|
233
252
|
|
|
234
253
|
}
|
|
@@ -250,6 +269,9 @@
|
|
|
250
269
|
font-size: var(--k-text-md);
|
|
251
270
|
line-height: var(--k-leading-normal);
|
|
252
271
|
-webkit-font-smoothing: antialiased;
|
|
272
|
+
text-rendering: optimizeLegibility;
|
|
273
|
+
/* نوار اسکرول همرنگ تم */
|
|
274
|
+
scrollbar-color: var(--k-border-primary) transparent;
|
|
253
275
|
-moz-osx-font-smoothing: grayscale;
|
|
254
276
|
/* کشیدهنویسی و اتصال درست حروف فارسی */
|
|
255
277
|
font-feature-settings: "kern", "liga", "calt";
|
|
@@ -307,6 +329,9 @@
|
|
|
307
329
|
}
|
|
308
330
|
}
|
|
309
331
|
|
|
332
|
+
/* متن پاراگرافها بدون تککلمهٔ تنها در خط آخر */
|
|
333
|
+
:where(p, li, figcaption) { text-wrap: pretty; }
|
|
334
|
+
|
|
310
335
|
/* ارقام لاتین در کنار متن فارسی: tabular برای جدولها و اعداد */
|
|
311
336
|
.k-tabular { font-variant-numeric: tabular-nums; }
|
|
312
337
|
|
|
@@ -348,7 +373,7 @@
|
|
|
348
373
|
background: var(--_bg);
|
|
349
374
|
color: var(--k-text-tertiary);
|
|
350
375
|
font-size: var(--k-text-sm);
|
|
351
|
-
box-shadow: var(--k-shadow-xs);
|
|
376
|
+
box-shadow: var(--k-shadow-xs), var(--k-highlight);
|
|
352
377
|
}
|
|
353
378
|
|
|
354
379
|
.k-alert--brand { --_accent: var(--k-text-brand); }
|
|
@@ -508,7 +533,7 @@
|
|
|
508
533
|
gap: var(--k-space-1);
|
|
509
534
|
padding-block: 0.125rem;
|
|
510
535
|
padding-inline: var(--_px);
|
|
511
|
-
border: 1px solid color-mix(in srgb, var(--_fg)
|
|
536
|
+
border: 1px solid color-mix(in srgb, var(--_fg) 20%, transparent);
|
|
512
537
|
border-radius: var(--k-badge-radius, var(--k-radius-full));
|
|
513
538
|
background: var(--_bg);
|
|
514
539
|
color: var(--_fg);
|
|
@@ -553,8 +578,8 @@
|
|
|
553
578
|
--_h: var(--k-btn-height-md, calc(2.5rem * var(--k-density)));
|
|
554
579
|
--_px: var(--k-btn-padding-md, calc(0.875rem * var(--k-density)));
|
|
555
580
|
--_fs: var(--k-text-sm);
|
|
556
|
-
--_bg: var(--k-bg-
|
|
557
|
-
--_bg-hover: var(--k-
|
|
581
|
+
--_bg: var(--k-btn-secondary-bg, var(--k-bg-elevated));
|
|
582
|
+
--_bg-hover: color-mix(in srgb, var(--_bg), var(--k-text-primary) 5%);
|
|
558
583
|
--_fg: var(--k-text-secondary);
|
|
559
584
|
--_fg-hover: var(--k-text-primary);
|
|
560
585
|
--_border: var(--k-border-primary);
|
|
@@ -623,7 +648,7 @@
|
|
|
623
648
|
content: "";
|
|
624
649
|
position: absolute;
|
|
625
650
|
inset: 1px;
|
|
626
|
-
border: 1px solid rgb(255 255 255 / 0.
|
|
651
|
+
border: 1px solid rgb(255 255 255 / var(--k-btn-highlight, 0.14));
|
|
627
652
|
border-radius: inherit;
|
|
628
653
|
mask: linear-gradient(to bottom, #000, transparent);
|
|
629
654
|
pointer-events: none;
|
|
@@ -631,6 +656,7 @@
|
|
|
631
656
|
.k-btn:is(.k-btn--primary, .k-btn--danger):is(:disabled, [aria-disabled="true"]:not([aria-busy="true"]))::before { display: none; }
|
|
632
657
|
.k-btn--tertiary {
|
|
633
658
|
--_bg: transparent;
|
|
659
|
+
--_bg-hover: var(--k-bg-hover);
|
|
634
660
|
--_border: transparent;
|
|
635
661
|
--_shadow: none;
|
|
636
662
|
}
|
|
@@ -648,8 +674,8 @@
|
|
|
648
674
|
.k-btn--danger {
|
|
649
675
|
--_bg: var(--k-bg-error);
|
|
650
676
|
--_bg-hover: var(--k-bg-error-hover);
|
|
651
|
-
--_fg: var(--k-text-on-
|
|
652
|
-
--_fg-hover: var(--k-text-on-
|
|
677
|
+
--_fg: var(--k-text-on-error);
|
|
678
|
+
--_fg-hover: var(--k-text-on-error);
|
|
653
679
|
--_border: transparent;
|
|
654
680
|
--_shadow: var(--k-shadow-xs), var(--k-shadow-skeuomorphic);
|
|
655
681
|
--_ring: var(--k-ring-error);
|
|
@@ -657,7 +683,6 @@
|
|
|
657
683
|
.k-btn--danger-secondary {
|
|
658
684
|
--_fg: var(--k-text-error);
|
|
659
685
|
--_fg-hover: var(--k-text-error);
|
|
660
|
-
--_bg-hover: var(--k-bg-error-subtle);
|
|
661
686
|
--_ring: var(--k-ring-error);
|
|
662
687
|
}
|
|
663
688
|
|
|
@@ -836,7 +861,7 @@
|
|
|
836
861
|
border: 1px solid var(--k-border-secondary);
|
|
837
862
|
border-radius: var(--k-radius-xl);
|
|
838
863
|
background: var(--k-calendar-bg, var(--k-bg-elevated));
|
|
839
|
-
box-shadow: var(--k-shadow-xl);
|
|
864
|
+
box-shadow: var(--k-shadow-xl), var(--k-highlight);
|
|
840
865
|
animation: k-pop-in var(--k-duration-fast) var(--k-ease-standard);
|
|
841
866
|
}
|
|
842
867
|
@keyframes k-pop-in { from { opacity: 0; translate: 0 -4px; } }
|
|
@@ -854,6 +879,28 @@
|
|
|
854
879
|
.k-datepicker__popover { border-color: CanvasText; }
|
|
855
880
|
}
|
|
856
881
|
|
|
882
|
+
/* نشان بانک داخل فیلد (کارت، شبا): لوگو + نام */
|
|
883
|
+
.k-bank {
|
|
884
|
+
display: inline-flex;
|
|
885
|
+
align-items: center;
|
|
886
|
+
gap: var(--k-space-1_5);
|
|
887
|
+
color: var(--k-text-tertiary);
|
|
888
|
+
font-size: var(--k-text-sm);
|
|
889
|
+
white-space: nowrap;
|
|
890
|
+
}
|
|
891
|
+
.k-bank__logo {
|
|
892
|
+
inline-size: 1.5rem;
|
|
893
|
+
block-size: 1.5rem;
|
|
894
|
+
flex-shrink: 0;
|
|
895
|
+
border-radius: var(--k-radius-sm);
|
|
896
|
+
animation: k-pop-in var(--k-duration-normal) var(--k-ease-standard);
|
|
897
|
+
}
|
|
898
|
+
/* لوگوهای تیره روی پسزمینهٔ تیره دیده شوند */
|
|
899
|
+
[data-theme="dark"] .k-bank__logo, :root:not([data-theme]) .k-bank__logo {
|
|
900
|
+
padding: 1px;
|
|
901
|
+
background: #fff;
|
|
902
|
+
}
|
|
903
|
+
|
|
857
904
|
/* کارت
|
|
858
905
|
* <article class="k-card">
|
|
859
906
|
* <header class="k-card__header">
|
|
@@ -876,7 +923,7 @@
|
|
|
876
923
|
border-radius: var(--k-card-radius, var(--k-radius-xl));
|
|
877
924
|
background: var(--k-card-bg, var(--k-bg-elevated));
|
|
878
925
|
color: var(--k-text-primary);
|
|
879
|
-
box-shadow: var(--k-card-shadow, var(--k-shadow-xs));
|
|
926
|
+
box-shadow: var(--k-card-shadow, var(--k-shadow-xs)), var(--k-highlight);
|
|
880
927
|
overflow: clip;
|
|
881
928
|
}
|
|
882
929
|
|
|
@@ -913,7 +960,7 @@
|
|
|
913
960
|
|
|
914
961
|
.k-card__media { display: block; inline-size: 100%; object-fit: cover; }
|
|
915
962
|
|
|
916
|
-
.k-card--flat { box-shadow:
|
|
963
|
+
.k-card--flat { box-shadow: var(--k-highlight); }
|
|
917
964
|
|
|
918
965
|
.k-card--interactive {
|
|
919
966
|
position: relative;
|
|
@@ -921,7 +968,7 @@
|
|
|
921
968
|
border-color var(--k-duration-fast) var(--k-ease-standard),
|
|
922
969
|
box-shadow var(--k-duration-normal) var(--k-ease-standard);
|
|
923
970
|
}
|
|
924
|
-
.k-card--interactive:hover { border-color: var(--k-border-primary); box-shadow: var(--k-shadow-md); }
|
|
971
|
+
.k-card--interactive:hover { border-color: var(--k-border-primary); box-shadow: var(--k-shadow-md), var(--k-highlight); }
|
|
925
972
|
.k-card--interactive:has(:focus-visible) { box-shadow: var(--k-shadow-md), var(--k-ring-brand); }
|
|
926
973
|
/* لینک اصلی کل کارت را قابلکلیک میکند ولی فقط یک توقف Tab دارد */
|
|
927
974
|
.k-card--interactive :is(a, button).k-card__link::after { content: ""; position: absolute; inset: 0; }
|
|
@@ -957,8 +1004,9 @@
|
|
|
957
1004
|
margin: 0;
|
|
958
1005
|
border: 1px solid var(--_border);
|
|
959
1006
|
border-radius: var(--k-checkbox-radius, calc(0.3125rem * var(--k-radius-factor)));
|
|
960
|
-
background: var(--k-bg-
|
|
1007
|
+
background: var(--k-bg-elevated);
|
|
961
1008
|
color: var(--k-text-on-brand);
|
|
1009
|
+
box-shadow: var(--k-shadow-xs);
|
|
962
1010
|
cursor: pointer;
|
|
963
1011
|
transition:
|
|
964
1012
|
background-color var(--k-duration-fast) var(--k-ease-standard),
|
|
@@ -979,7 +1027,7 @@
|
|
|
979
1027
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 7h8'/%3E%3C/svg%3E");
|
|
980
1028
|
}
|
|
981
1029
|
|
|
982
|
-
.k-checkbox:hover { --_border: var(--k-border-brand); }
|
|
1030
|
+
.k-checkbox:hover:not(:disabled) { --_border: var(--k-border-brand); box-shadow: 0 0 0 4px var(--k-bg-hover); }
|
|
983
1031
|
|
|
984
1032
|
.k-checkbox:is(:checked, :indeterminate) {
|
|
985
1033
|
--_border: var(--k-bg-brand);
|
|
@@ -1026,6 +1074,81 @@
|
|
|
1026
1074
|
.k-checkbox::before { display: none; }
|
|
1027
1075
|
}
|
|
1028
1076
|
|
|
1077
|
+
/* پنجرهٔ گفتگو — روی <dialog> بومی: تلهٔ فوکوس، Esc و غیرفعال شدن پسزمینه رایگان
|
|
1078
|
+
* اندازهها: k-dialog--sm | k-dialog--md (پیشفرض) | k-dialog--lg
|
|
1079
|
+
*
|
|
1080
|
+
* متغیرها: --k-dialog-width --k-dialog-radius --k-dialog-padding
|
|
1081
|
+
*/
|
|
1082
|
+
.k-dialog {
|
|
1083
|
+
--_p: var(--k-dialog-padding, var(--k-space-6));
|
|
1084
|
+
|
|
1085
|
+
inline-size: min(var(--k-dialog-width, 30rem), calc(100vw - 2rem));
|
|
1086
|
+
max-block-size: calc(100dvh - 2rem);
|
|
1087
|
+
margin: auto;
|
|
1088
|
+
padding: 0;
|
|
1089
|
+
border: 1px solid var(--k-border-secondary);
|
|
1090
|
+
border-radius: var(--k-dialog-radius, var(--k-radius-2xl));
|
|
1091
|
+
background: var(--k-bg-elevated);
|
|
1092
|
+
color: var(--k-text-primary);
|
|
1093
|
+
box-shadow: var(--k-shadow-2xl), var(--k-highlight);
|
|
1094
|
+
overflow: auto;
|
|
1095
|
+
}
|
|
1096
|
+
.k-dialog--sm { --k-dialog-width: 24rem; }
|
|
1097
|
+
.k-dialog--lg { --k-dialog-width: 42rem; }
|
|
1098
|
+
|
|
1099
|
+
.k-dialog::backdrop {
|
|
1100
|
+
background: rgb(8 9 12 / 0.6);
|
|
1101
|
+
backdrop-filter: blur(4px);
|
|
1102
|
+
}
|
|
1103
|
+
.k-dialog[open] { animation: k-dialog-in var(--k-duration-normal) var(--k-ease-emphasized); }
|
|
1104
|
+
.k-dialog[open]::backdrop { animation: k-fade-in var(--k-duration-normal) var(--k-ease-standard); }
|
|
1105
|
+
@keyframes k-dialog-in { from { opacity: 0; scale: 0.96; translate: 0 8px; } }
|
|
1106
|
+
@keyframes k-fade-in { from { opacity: 0; } }
|
|
1107
|
+
|
|
1108
|
+
.k-dialog__header {
|
|
1109
|
+
display: flex;
|
|
1110
|
+
align-items: flex-start;
|
|
1111
|
+
gap: var(--k-space-4);
|
|
1112
|
+
padding: var(--_p) var(--_p) 0;
|
|
1113
|
+
}
|
|
1114
|
+
.k-dialog__icon {
|
|
1115
|
+
display: grid;
|
|
1116
|
+
place-items: center;
|
|
1117
|
+
flex-shrink: 0;
|
|
1118
|
+
inline-size: 3rem;
|
|
1119
|
+
block-size: 3rem;
|
|
1120
|
+
border-radius: 50%;
|
|
1121
|
+
background: var(--k-bg-brand-subtle);
|
|
1122
|
+
color: var(--k-text-brand);
|
|
1123
|
+
box-shadow: 0 0 0 8px color-mix(in srgb, var(--k-bg-brand-subtle) 50%, transparent);
|
|
1124
|
+
}
|
|
1125
|
+
.k-dialog__icon svg { inline-size: 1.5rem; block-size: 1.5rem; }
|
|
1126
|
+
.k-dialog--danger .k-dialog__icon { background: var(--k-bg-error-subtle); color: var(--k-text-error); box-shadow: 0 0 0 8px color-mix(in srgb, var(--k-bg-error-subtle) 50%, transparent); }
|
|
1127
|
+
.k-dialog__heading { flex: 1; display: grid; gap: var(--k-space-1); padding-block-start: var(--k-space-1); }
|
|
1128
|
+
.k-dialog__title { margin: 0; font-size: var(--k-text-lg); font-weight: var(--k-weight-semibold); line-height: var(--k-leading-tight); }
|
|
1129
|
+
.k-dialog__description { margin: 0; color: var(--k-text-tertiary); font-size: var(--k-text-sm); line-height: var(--k-leading-normal); }
|
|
1130
|
+
.k-dialog__close { margin-block: -0.25rem; margin-inline-end: -0.5rem; }
|
|
1131
|
+
.k-dialog__body { padding: var(--k-space-5) var(--_p) 0; }
|
|
1132
|
+
.k-dialog__footer {
|
|
1133
|
+
display: flex;
|
|
1134
|
+
flex-wrap: wrap;
|
|
1135
|
+
justify-content: flex-end;
|
|
1136
|
+
gap: var(--k-space-3);
|
|
1137
|
+
padding: var(--k-space-6) var(--_p) var(--_p);
|
|
1138
|
+
}
|
|
1139
|
+
.k-dialog__footer--block > * { flex: 1; }
|
|
1140
|
+
|
|
1141
|
+
/* قفل اسکرول صفحه هنگام باز بودن */
|
|
1142
|
+
html:has(.k-dialog[open]) { overflow: hidden; }
|
|
1143
|
+
|
|
1144
|
+
@media (max-width: 30rem) {
|
|
1145
|
+
.k-dialog__footer { flex-direction: column-reverse; }
|
|
1146
|
+
.k-dialog__footer > * { inline-size: 100%; }
|
|
1147
|
+
}
|
|
1148
|
+
@media (forced-colors: active) {
|
|
1149
|
+
.k-dialog { border-color: CanvasText; }
|
|
1150
|
+
}
|
|
1151
|
+
|
|
1029
1152
|
/* فیلد: برچسب + کنترل + راهنما/خطا — مشترک بین Input، Checkbox و Switch
|
|
1030
1153
|
* <div class="k-field">
|
|
1031
1154
|
* <label class="k-label" for="email">ایمیل <span class="k-label__required" aria-hidden="true">*</span></label>
|
|
@@ -1081,11 +1204,16 @@
|
|
|
1081
1204
|
color: var(--k-text-primary);
|
|
1082
1205
|
box-shadow: var(--k-shadow-xs);
|
|
1083
1206
|
cursor: text;
|
|
1207
|
+
font-size: var(--k-text-md);
|
|
1084
1208
|
transition:
|
|
1085
1209
|
border-color var(--k-duration-fast) var(--k-ease-standard),
|
|
1086
1210
|
box-shadow var(--k-duration-fast) var(--k-ease-standard);
|
|
1087
1211
|
}
|
|
1088
1212
|
|
|
1213
|
+
.k-input:hover:not(:focus-within, :has(:disabled, [aria-invalid="true"])) {
|
|
1214
|
+
--_border: var(--k-input-border-hover, var(--k-text-quaternary));
|
|
1215
|
+
}
|
|
1216
|
+
|
|
1089
1217
|
.k-input:focus-within {
|
|
1090
1218
|
--_border: var(--k-border-brand);
|
|
1091
1219
|
box-shadow: var(--k-shadow-xs), var(--_ring);
|
|
@@ -1117,6 +1245,17 @@
|
|
|
1117
1245
|
font: inherit;
|
|
1118
1246
|
font-size: var(--k-text-md);
|
|
1119
1247
|
}
|
|
1248
|
+
/* ارقام همعرض تا عدد هنگام تایپ جابهجا نشود */
|
|
1249
|
+
.k-input__control:is([inputmode="numeric"], [inputmode="tel"], [inputmode="decimal"]) {
|
|
1250
|
+
font-variant-numeric: tabular-nums;
|
|
1251
|
+
letter-spacing: 0.02em;
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
/* iOS هنگام فوکوس روی فیلدی با متن کوچکتر از ۱۶ پیکسل کل صفحه را بزرگ میکند */
|
|
1255
|
+
@supports (-webkit-touch-callout: none) {
|
|
1256
|
+
.k-input__control { font-size: max(16px, 1em); }
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1120
1259
|
.k-input__control::placeholder { color: var(--k-text-tertiary); opacity: 1; }
|
|
1121
1260
|
.k-input__control:disabled { color: var(--k-text-quaternary); cursor: not-allowed; }
|
|
1122
1261
|
|
|
@@ -1151,7 +1290,150 @@
|
|
|
1151
1290
|
|
|
1152
1291
|
@media (forced-colors: active) {
|
|
1153
1292
|
.k-input { border-color: FieldText; }
|
|
1154
|
-
.k-input:focus-within
|
|
1293
|
+
.k-input:hover:not(:focus-within, :has(:disabled, [aria-invalid="true"])) {
|
|
1294
|
+
--_border: var(--k-input-border-hover, var(--k-text-quaternary));
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
.k-input:focus-within { outline-color: Highlight; }
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1300
|
+
/* رادیو — روی <input type="radio"> بومی؛ برای گروه از <fieldset class="k-radio-group"> استفاده کنید
|
|
1301
|
+
* <fieldset class="k-radio-group">
|
|
1302
|
+
* <legend class="k-label">روش ارسال</legend>
|
|
1303
|
+
* <label class="k-check"><input type="radio" name="ship" class="k-radio"><span class="k-check__text">…</span></label>
|
|
1304
|
+
* </fieldset>
|
|
1305
|
+
* کارتهای قابلانتخاب: k-radio-group--cards
|
|
1306
|
+
*
|
|
1307
|
+
* متغیرها: --k-radio-size
|
|
1308
|
+
*/
|
|
1309
|
+
.k-radio {
|
|
1310
|
+
--_s: var(--k-radio-size, 1.125rem);
|
|
1311
|
+
--_border: var(--k-border-input);
|
|
1312
|
+
|
|
1313
|
+
appearance: none;
|
|
1314
|
+
display: inline-grid;
|
|
1315
|
+
place-content: center;
|
|
1316
|
+
flex-shrink: 0;
|
|
1317
|
+
inline-size: var(--_s);
|
|
1318
|
+
block-size: var(--_s);
|
|
1319
|
+
margin: 0;
|
|
1320
|
+
border: 1px solid var(--_border);
|
|
1321
|
+
border-radius: 50%;
|
|
1322
|
+
background: var(--k-bg-elevated);
|
|
1323
|
+
box-shadow: var(--k-shadow-xs);
|
|
1324
|
+
cursor: pointer;
|
|
1325
|
+
transition: border-color var(--k-duration-fast), background-color var(--k-duration-fast), box-shadow var(--k-duration-fast);
|
|
1326
|
+
}
|
|
1327
|
+
.k-radio::before {
|
|
1328
|
+
content: "";
|
|
1329
|
+
inline-size: calc(var(--_s) * 0.4);
|
|
1330
|
+
block-size: calc(var(--_s) * 0.4);
|
|
1331
|
+
border-radius: 50%;
|
|
1332
|
+
background: var(--k-text-on-brand);
|
|
1333
|
+
scale: 0;
|
|
1334
|
+
transition: scale var(--k-duration-fast) var(--k-ease-emphasized);
|
|
1335
|
+
}
|
|
1336
|
+
.k-radio:hover:not(:disabled) { --_border: var(--k-border-brand); box-shadow: 0 0 0 4px var(--k-bg-hover); }
|
|
1337
|
+
.k-radio:checked { --_border: var(--k-bg-brand); background: var(--k-bg-brand); }
|
|
1338
|
+
.k-radio:checked::before { scale: 1; }
|
|
1339
|
+
.k-radio:focus-visible { outline: 2px solid transparent; box-shadow: var(--k-ring-brand); }
|
|
1340
|
+
.k-radio[aria-invalid="true"] { --_border: var(--k-border-error); }
|
|
1341
|
+
.k-radio:disabled { --_border: var(--k-border-secondary); background: var(--k-bg-tertiary); cursor: not-allowed; }
|
|
1342
|
+
.k-radio:disabled::before { background: var(--k-text-quaternary); }
|
|
1343
|
+
|
|
1344
|
+
.k-check > .k-radio { margin-block-start: calc((1.25rem - var(--_s)) / 2); }
|
|
1345
|
+
|
|
1346
|
+
.k-radio-group {
|
|
1347
|
+
display: grid;
|
|
1348
|
+
gap: var(--k-space-3);
|
|
1349
|
+
min-inline-size: 0;
|
|
1350
|
+
margin: 0;
|
|
1351
|
+
padding: 0;
|
|
1352
|
+
border: 0;
|
|
1353
|
+
}
|
|
1354
|
+
.k-radio-group > legend { padding: 0; margin-block-end: var(--k-space-3); }
|
|
1355
|
+
.k-radio-group--inline { display: flex; flex-wrap: wrap; gap: var(--k-space-3) var(--k-space-6); }
|
|
1356
|
+
|
|
1357
|
+
/* کارتهای قابلانتخاب (مثل انتخاب پلن یا روش ارسال) */
|
|
1358
|
+
.k-radio-group--cards .k-check {
|
|
1359
|
+
display: flex;
|
|
1360
|
+
padding: var(--k-space-4);
|
|
1361
|
+
border: 1px solid var(--k-border-secondary);
|
|
1362
|
+
border-radius: var(--k-radius-lg);
|
|
1363
|
+
background: var(--k-bg-elevated);
|
|
1364
|
+
box-shadow: var(--k-shadow-xs), var(--k-highlight);
|
|
1365
|
+
transition: border-color var(--k-duration-fast), box-shadow var(--k-duration-fast);
|
|
1366
|
+
}
|
|
1367
|
+
.k-radio-group--cards .k-check:hover { border-color: var(--k-border-primary); }
|
|
1368
|
+
.k-radio-group--cards .k-check:has(:checked) {
|
|
1369
|
+
border-color: var(--k-border-brand);
|
|
1370
|
+
box-shadow: 0 0 0 1px var(--k-border-brand), var(--k-shadow-xs);
|
|
1371
|
+
}
|
|
1372
|
+
.k-radio-group--cards .k-check:has(:focus-visible) { box-shadow: var(--k-ring-brand); }
|
|
1373
|
+
.k-radio-group--cards .k-check:has(:focus-visible) .k-radio { box-shadow: none; }
|
|
1374
|
+
.k-radio-group--cards .k-check__text { flex: 1; }
|
|
1375
|
+
|
|
1376
|
+
@media (forced-colors: active) {
|
|
1377
|
+
.k-radio { appearance: auto; }
|
|
1378
|
+
.k-radio::before { display: none; }
|
|
1379
|
+
.k-radio-group--cards .k-check:has(:checked) { outline: 2px solid Highlight; }
|
|
1380
|
+
}
|
|
1381
|
+
|
|
1382
|
+
/* انتخاب از فهرست — <select> بومی با ظاهر کاشی (دسترسپذیر و سازگار با گوشی)
|
|
1383
|
+
* <div class="k-select"><select class="k-select__control">…</select></div>
|
|
1384
|
+
* اندازهها: k-select--sm | k-select--lg — خطا: aria-invalid="true"
|
|
1385
|
+
*/
|
|
1386
|
+
.k-select {
|
|
1387
|
+
--_h: var(--k-input-height-md, calc(2.75rem * var(--k-density)));
|
|
1388
|
+
position: relative;
|
|
1389
|
+
display: flex;
|
|
1390
|
+
}
|
|
1391
|
+
.k-select--sm { --_h: var(--k-input-height-sm, calc(2.5rem * var(--k-density))); }
|
|
1392
|
+
.k-select--lg { --_h: var(--k-input-height-lg, calc(3rem * var(--k-density))); }
|
|
1393
|
+
|
|
1394
|
+
.k-select__control {
|
|
1395
|
+
appearance: none;
|
|
1396
|
+
flex: 1;
|
|
1397
|
+
min-inline-size: 0;
|
|
1398
|
+
block-size: var(--_h);
|
|
1399
|
+
padding-inline: calc(0.875rem * var(--k-density)) 2.5rem;
|
|
1400
|
+
border: 1px solid var(--k-input-border, var(--k-border-input));
|
|
1401
|
+
border-radius: var(--k-input-radius, var(--k-radius-md));
|
|
1402
|
+
background: var(--k-input-bg, var(--k-bg-primary));
|
|
1403
|
+
color: var(--k-text-primary);
|
|
1404
|
+
box-shadow: var(--k-shadow-xs);
|
|
1405
|
+
font: inherit;
|
|
1406
|
+
font-size: var(--k-text-md);
|
|
1407
|
+
cursor: pointer;
|
|
1408
|
+
transition: border-color var(--k-duration-fast), box-shadow var(--k-duration-fast);
|
|
1409
|
+
}
|
|
1410
|
+
.k-select__control:hover:not(:disabled, :focus) { border-color: var(--k-text-quaternary); }
|
|
1411
|
+
.k-select__control:focus-visible { outline: 2px solid transparent; border-color: var(--k-border-brand); box-shadow: var(--k-shadow-xs), var(--k-ring-brand); }
|
|
1412
|
+
.k-select__control[aria-invalid="true"] { border-color: var(--k-border-error); }
|
|
1413
|
+
.k-select__control[aria-invalid="true"]:focus-visible { box-shadow: var(--k-ring-error); }
|
|
1414
|
+
.k-select__control:disabled { background: var(--k-bg-secondary); border-color: var(--k-border-secondary); color: var(--k-text-quaternary); box-shadow: none; cursor: not-allowed; }
|
|
1415
|
+
.k-select__control:has(option[value=""]:checked) { color: var(--k-text-tertiary); }
|
|
1416
|
+
.k-select__control option { background: var(--k-bg-elevated); color: var(--k-text-primary); }
|
|
1417
|
+
|
|
1418
|
+
/* فلش در انتهای فیلد */
|
|
1419
|
+
.k-select::after {
|
|
1420
|
+
content: "";
|
|
1421
|
+
position: absolute;
|
|
1422
|
+
inset-block: 0;
|
|
1423
|
+
inset-inline-end: 0.875rem;
|
|
1424
|
+
inline-size: 1.125rem;
|
|
1425
|
+
margin-block: auto;
|
|
1426
|
+
block-size: 1.125rem;
|
|
1427
|
+
background: var(--k-text-tertiary);
|
|
1428
|
+
mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 8 4 4 4-4'/%3E%3C/svg%3E") center / contain no-repeat;
|
|
1429
|
+
pointer-events: none;
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
@supports (-webkit-touch-callout: none) {
|
|
1433
|
+
.k-select__control { font-size: max(16px, 1em); }
|
|
1434
|
+
}
|
|
1435
|
+
@media (forced-colors: active) {
|
|
1436
|
+
.k-select::after { background: CanvasText; }
|
|
1155
1437
|
}
|
|
1156
1438
|
|
|
1157
1439
|
/* سوییچ — روی <input type="checkbox" role="switch"> بومی
|
|
@@ -1182,6 +1464,7 @@
|
|
|
1182
1464
|
border-radius: var(--k-radius-full);
|
|
1183
1465
|
background: var(--_track);
|
|
1184
1466
|
cursor: pointer;
|
|
1467
|
+
box-shadow: inset 0 1px 2px rgb(0 0 0 / 0.12);
|
|
1185
1468
|
transition:
|
|
1186
1469
|
background-color var(--k-duration-normal) var(--k-ease-standard),
|
|
1187
1470
|
box-shadow var(--k-duration-fast) var(--k-ease-standard);
|
|
@@ -1193,7 +1476,7 @@
|
|
|
1193
1476
|
block-size: calc(var(--_h) - var(--_pad) * 2);
|
|
1194
1477
|
border-radius: var(--k-radius-full);
|
|
1195
1478
|
background: var(--k-switch-thumb, #fff);
|
|
1196
|
-
box-shadow:
|
|
1479
|
+
box-shadow: 0 1px 3px rgb(10 13 18 / 0.2), 0 1px 2px rgb(10 13 18 / 0.12);
|
|
1197
1480
|
transition: margin-inline-start var(--k-duration-normal) var(--k-ease-emphasized);
|
|
1198
1481
|
}
|
|
1199
1482
|
|
|
@@ -1224,4 +1507,208 @@
|
|
|
1224
1507
|
.k-switch:checked::before { background: HighlightText; }
|
|
1225
1508
|
}
|
|
1226
1509
|
|
|
1510
|
+
/* زبانهها (Tabs) — ساختار ARIA را کامپوننت React میسازد
|
|
1511
|
+
* گونهها: k-tabs--line (پیشفرض) | k-tabs--pill | k-tabs--segmented — تمامعرض: k-tabs--block
|
|
1512
|
+
*/
|
|
1513
|
+
.k-tabs { display: grid; gap: var(--k-space-4); }
|
|
1514
|
+
|
|
1515
|
+
.k-tabs__list {
|
|
1516
|
+
position: relative;
|
|
1517
|
+
display: flex;
|
|
1518
|
+
gap: var(--k-space-1);
|
|
1519
|
+
overflow-x: auto;
|
|
1520
|
+
scrollbar-width: none;
|
|
1521
|
+
}
|
|
1522
|
+
|
|
1523
|
+
.k-tabs__tab {
|
|
1524
|
+
position: relative;
|
|
1525
|
+
display: inline-flex;
|
|
1526
|
+
align-items: center;
|
|
1527
|
+
justify-content: center;
|
|
1528
|
+
gap: var(--k-space-2);
|
|
1529
|
+
min-block-size: calc(2.5rem * var(--k-density));
|
|
1530
|
+
padding-inline: var(--k-space-3);
|
|
1531
|
+
border: 0;
|
|
1532
|
+
border-radius: var(--k-radius-md);
|
|
1533
|
+
background: transparent;
|
|
1534
|
+
color: var(--k-text-tertiary);
|
|
1535
|
+
font: inherit;
|
|
1536
|
+
font-size: var(--k-text-sm);
|
|
1537
|
+
font-weight: var(--k-weight-semibold);
|
|
1538
|
+
white-space: nowrap;
|
|
1539
|
+
cursor: pointer;
|
|
1540
|
+
transition: color var(--k-duration-fast), background-color var(--k-duration-fast);
|
|
1541
|
+
}
|
|
1542
|
+
.k-tabs__tab:hover { color: var(--k-text-primary); }
|
|
1543
|
+
.k-tabs__tab[aria-selected="true"] { color: var(--k-text-primary); }
|
|
1544
|
+
.k-tabs__tab:focus-visible { outline: 2px solid transparent; box-shadow: var(--k-ring-brand); }
|
|
1545
|
+
.k-tabs__tab:disabled { color: var(--k-text-quaternary); cursor: not-allowed; }
|
|
1546
|
+
.k-tabs__tab .k-badge { font-size: var(--k-text-xs); padding-block: 0; }
|
|
1547
|
+
|
|
1548
|
+
.k-tabs__panel:focus-visible { outline: 2px solid var(--k-border-brand); outline-offset: 4px; border-radius: var(--k-radius-sm); }
|
|
1549
|
+
|
|
1550
|
+
/* خطی: خط زیر زبانهٔ فعال */
|
|
1551
|
+
.k-tabs--line .k-tabs__list { border-block-end: 1px solid var(--k-border-secondary); gap: var(--k-space-4); }
|
|
1552
|
+
.k-tabs--line .k-tabs__tab { padding-inline: var(--k-space-1); border-radius: 0; }
|
|
1553
|
+
.k-tabs--line .k-tabs__tab:focus-visible { border-radius: var(--k-radius-sm); }
|
|
1554
|
+
.k-tabs--line .k-tabs__tab[aria-selected="true"]::after {
|
|
1555
|
+
content: "";
|
|
1556
|
+
position: absolute;
|
|
1557
|
+
inset-inline: 0;
|
|
1558
|
+
inset-block-end: -1px;
|
|
1559
|
+
block-size: 2px;
|
|
1560
|
+
border-radius: 2px;
|
|
1561
|
+
background: var(--k-border-brand);
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
/* قرصی */
|
|
1565
|
+
.k-tabs--pill .k-tabs__tab:hover { background: var(--k-bg-hover); }
|
|
1566
|
+
.k-tabs--pill .k-tabs__tab[aria-selected="true"] { background: var(--k-bg-brand-subtle); color: var(--k-text-brand); }
|
|
1567
|
+
|
|
1568
|
+
/* چندبخشی: مثل کنترل iOS */
|
|
1569
|
+
.k-tabs--segmented .k-tabs__list {
|
|
1570
|
+
inline-size: fit-content;
|
|
1571
|
+
padding: 3px;
|
|
1572
|
+
border: 1px solid var(--k-border-secondary);
|
|
1573
|
+
border-radius: calc(var(--k-radius-md) + 3px);
|
|
1574
|
+
background: var(--k-bg-secondary);
|
|
1575
|
+
}
|
|
1576
|
+
.k-tabs--segmented .k-tabs__tab { min-block-size: calc(2.25rem * var(--k-density)); }
|
|
1577
|
+
.k-tabs--segmented .k-tabs__tab[aria-selected="true"] {
|
|
1578
|
+
background: var(--k-bg-elevated);
|
|
1579
|
+
box-shadow: var(--k-shadow-sm), var(--k-highlight);
|
|
1580
|
+
}
|
|
1581
|
+
.k-tabs--block .k-tabs__list { inline-size: auto; }
|
|
1582
|
+
.k-tabs--block .k-tabs__tab { flex: 1; }
|
|
1583
|
+
|
|
1584
|
+
@media (forced-colors: active) {
|
|
1585
|
+
.k-tabs__tab[aria-selected="true"] { outline: 2px solid Highlight; }
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
/* اعلان کوتاه (Toast) — محل نمایش را کامپوننت <Toaster> میسازد
|
|
1589
|
+
* رنگها: neutral | success | error | warning | info
|
|
1590
|
+
*/
|
|
1591
|
+
.k-toaster {
|
|
1592
|
+
position: fixed;
|
|
1593
|
+
inset-block-end: var(--k-space-6);
|
|
1594
|
+
inset-inline-end: var(--k-space-6);
|
|
1595
|
+
z-index: var(--k-z-toast);
|
|
1596
|
+
display: grid;
|
|
1597
|
+
gap: var(--k-space-3);
|
|
1598
|
+
inline-size: min(24rem, calc(100vw - 2rem));
|
|
1599
|
+
margin: 0;
|
|
1600
|
+
padding: 0;
|
|
1601
|
+
list-style: none;
|
|
1602
|
+
pointer-events: none;
|
|
1603
|
+
}
|
|
1604
|
+
.k-toaster--top { inset-block: var(--k-space-6) auto; }
|
|
1605
|
+
@media (max-width: 30rem) {
|
|
1606
|
+
.k-toaster { inset-inline: var(--k-space-4); inset-block-end: var(--k-space-4); inline-size: auto; }
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
.k-toast {
|
|
1610
|
+
--_accent: var(--k-text-tertiary);
|
|
1611
|
+
|
|
1612
|
+
position: relative;
|
|
1613
|
+
display: flex;
|
|
1614
|
+
align-items: flex-start;
|
|
1615
|
+
gap: var(--k-space-3);
|
|
1616
|
+
padding: var(--k-space-4);
|
|
1617
|
+
border: 1px solid var(--k-border-secondary);
|
|
1618
|
+
border-radius: var(--k-radius-xl);
|
|
1619
|
+
background: var(--k-bg-elevated);
|
|
1620
|
+
color: var(--k-text-primary);
|
|
1621
|
+
box-shadow: var(--k-shadow-lg), var(--k-highlight);
|
|
1622
|
+
pointer-events: auto;
|
|
1623
|
+
animation: k-toast-in var(--k-duration-slow) var(--k-ease-emphasized);
|
|
1624
|
+
overflow: hidden;
|
|
1625
|
+
}
|
|
1626
|
+
.k-toast[data-state="closing"] { animation: k-toast-out var(--k-duration-normal) var(--k-ease-standard) forwards; }
|
|
1627
|
+
@keyframes k-toast-in { from { opacity: 0; translate: 0 12px; scale: 0.97; } }
|
|
1628
|
+
@keyframes k-toast-out { to { opacity: 0; translate: 0 8px; scale: 0.97; } }
|
|
1629
|
+
|
|
1630
|
+
.k-toast--success { --_accent: var(--k-text-success); }
|
|
1631
|
+
.k-toast--error { --_accent: var(--k-text-error); }
|
|
1632
|
+
.k-toast--warning { --_accent: var(--k-text-warning); }
|
|
1633
|
+
.k-toast--info { --_accent: var(--k-text-info); }
|
|
1634
|
+
|
|
1635
|
+
.k-toast__icon { flex-shrink: 0; inline-size: 1.25rem; block-size: 1.25rem; margin-block-start: 0.125rem; color: var(--_accent); }
|
|
1636
|
+
.k-toast__icon svg { inline-size: 100%; block-size: 100%; }
|
|
1637
|
+
.k-toast__content { flex: 1; display: grid; gap: 0.125rem; min-inline-size: 0; font-size: var(--k-text-sm); }
|
|
1638
|
+
.k-toast__title { margin: 0; font-weight: var(--k-weight-semibold); }
|
|
1639
|
+
.k-toast__description { margin: 0; color: var(--k-text-tertiary); }
|
|
1640
|
+
.k-toast__action { margin-block-start: var(--k-space-2); justify-self: start; }
|
|
1641
|
+
.k-toast__close { margin-block: -0.375rem; margin-inline-end: -0.375rem; }
|
|
1642
|
+
|
|
1643
|
+
/* نوار زمان باقیمانده */
|
|
1644
|
+
.k-toast__progress {
|
|
1645
|
+
position: absolute;
|
|
1646
|
+
inset-inline: 0;
|
|
1647
|
+
inset-block-end: 0;
|
|
1648
|
+
block-size: 2px;
|
|
1649
|
+
background: var(--_accent);
|
|
1650
|
+
opacity: 0.6;
|
|
1651
|
+
transform-origin: var(--_origin, right);
|
|
1652
|
+
animation: k-toast-progress linear forwards;
|
|
1653
|
+
}
|
|
1654
|
+
[dir="ltr"] .k-toast__progress { --_origin: left; }
|
|
1655
|
+
.k-toast:is(:hover, :focus-within) .k-toast__progress { animation-play-state: paused; }
|
|
1656
|
+
@keyframes k-toast-progress { to { scale: 0 1; } }
|
|
1657
|
+
|
|
1658
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1659
|
+
.k-toast__progress { display: none; }
|
|
1660
|
+
}
|
|
1661
|
+
@media (forced-colors: active) {
|
|
1662
|
+
.k-toast { border-color: CanvasText; }
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1665
|
+
/* راهنمای کوتاه (Tooltip) — با hover و فوکوس، بسته شدن با Esc (WCAG 1.4.13)
|
|
1666
|
+
* فقط برای توضیح تکمیلی؛ اطلاعات ضروری را در tooltip پنهان نکنید.
|
|
1667
|
+
*/
|
|
1668
|
+
.k-tooltip-anchor { position: relative; display: inline-flex; }
|
|
1669
|
+
|
|
1670
|
+
.k-tooltip {
|
|
1671
|
+
position: absolute;
|
|
1672
|
+
inset-block-end: calc(100% + 8px);
|
|
1673
|
+
inset-inline-start: 50%;
|
|
1674
|
+
z-index: var(--k-z-dropdown);
|
|
1675
|
+
inline-size: max-content;
|
|
1676
|
+
max-inline-size: 16rem;
|
|
1677
|
+
padding: var(--k-space-1_5) var(--k-space-3);
|
|
1678
|
+
border-radius: var(--k-radius-md);
|
|
1679
|
+
background: var(--k-tooltip-bg, var(--k-text-primary));
|
|
1680
|
+
color: var(--k-tooltip-fg, var(--k-bg-primary));
|
|
1681
|
+
box-shadow: var(--k-shadow-lg);
|
|
1682
|
+
font-size: var(--k-text-xs);
|
|
1683
|
+
font-weight: var(--k-weight-medium);
|
|
1684
|
+
line-height: 1.6;
|
|
1685
|
+
text-align: center;
|
|
1686
|
+
translate: 50% 0;
|
|
1687
|
+
pointer-events: auto;
|
|
1688
|
+
animation: k-tip-in var(--k-duration-fast) var(--k-ease-standard);
|
|
1689
|
+
}
|
|
1690
|
+
[dir="ltr"] .k-tooltip { translate: -50% 0; }
|
|
1691
|
+
.k-tooltip[hidden] { display: none; }
|
|
1692
|
+
.k-tooltip--bottom { inset-block: calc(100% + 8px) auto; }
|
|
1693
|
+
|
|
1694
|
+
/* پیکان */
|
|
1695
|
+
.k-tooltip::after {
|
|
1696
|
+
content: "";
|
|
1697
|
+
position: absolute;
|
|
1698
|
+
inset-block-start: 100%;
|
|
1699
|
+
inset-inline-start: 50%;
|
|
1700
|
+
translate: 50% 0;
|
|
1701
|
+
border: 5px solid transparent;
|
|
1702
|
+
border-block-start-color: var(--k-tooltip-bg, var(--k-text-primary));
|
|
1703
|
+
}
|
|
1704
|
+
[dir="ltr"] .k-tooltip::after { translate: -50% 0; }
|
|
1705
|
+
.k-tooltip--bottom::after { inset-block: auto 100%; border-block-start-color: transparent; border-block-end-color: var(--k-tooltip-bg, var(--k-text-primary)); }
|
|
1706
|
+
@keyframes k-tip-in { from { opacity: 0; translate: 50% 3px; } }
|
|
1707
|
+
[dir="ltr"] .k-tooltip { animation-name: k-tip-in-ltr; }
|
|
1708
|
+
@keyframes k-tip-in-ltr { from { opacity: 0; translate: -50% 3px; } }
|
|
1709
|
+
|
|
1710
|
+
@media (forced-colors: active) {
|
|
1711
|
+
.k-tooltip { border: 1px solid CanvasText; }
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1227
1714
|
}
|