@xihan-ui/styles 3.2.0 → 4.0.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/CHANGELOG.md +441 -0
- package/component-tokens.d.ts +229 -60
- package/components.tokens.json +5124 -1555
- package/css/accordion.css +47 -20
- package/css/alert.css +14 -15
- package/css/anchor.css +2 -2
- package/css/approval.css +37 -13
- package/css/avatar-group.css +9 -12
- package/css/avatar.css +20 -18
- package/css/back-top.css +21 -7
- package/css/badge.css +5 -5
- package/css/breadcrumb.css +18 -16
- package/css/button-group.css +4 -6
- package/css/button.css +4 -7
- package/css/calendar-picker.css +177 -94
- package/css/calendar-range-picker.css +206 -121
- package/css/card.css +34 -6
- package/css/carousel.css +65 -49
- package/css/cascader.css +41 -29
- package/css/checkbox-group.css +9 -6
- package/css/checkbox.css +5 -4
- package/css/citation.css +7 -2
- package/css/clipboard.css +20 -4
- package/css/collapsible.css +29 -14
- package/css/color-field.css +4 -4
- package/css/color-picker.css +77 -23
- package/css/color-slider.css +10 -8
- package/css/color-swatch-picker.css +5 -5
- package/css/combobox.css +14 -10
- package/css/command.css +13 -8
- package/css/context-menu.css +10 -5
- package/css/date-field.css +4 -4
- package/css/date-picker.css +165 -102
- package/css/date-range-picker.css +186 -123
- package/css/description.css +10 -6
- package/css/descriptions.css +47 -19
- package/css/dialog.css +50 -35
- package/css/drawer.css +75 -21
- package/css/editable.css +15 -41
- package/css/empty-state.css +21 -3
- package/css/field-array.css +4 -1
- package/css/field.css +17 -18
- package/css/fieldset.css +33 -13
- package/css/file-upload.css +65 -32
- package/css/float-button.css +25 -15
- package/css/floating-panel.css +1 -1
- package/css/form.css +24 -10
- package/css/grid-list.css +1 -1
- package/css/highlight.css +4 -4
- package/css/hover-card.css +19 -12
- package/css/image-viewer.css +77 -27
- package/css/image.css +12 -4
- package/css/infinite-scroll.css +8 -4
- package/css/input-group.css +74 -26
- package/css/kbd.css +1 -1
- package/css/label.css +27 -11
- package/css/layout.css +17 -10
- package/css/list.css +13 -9
- package/css/listbox.css +12 -7
- package/css/loading-bar.css +3 -0
- package/css/mention.css +10 -8
- package/css/menu.css +10 -5
- package/css/menubar.css +13 -8
- package/css/navigation-menu.css +2 -2
- package/css/notification.css +114 -31
- package/css/number-animation.css +2 -2
- package/css/number-field.css +60 -37
- package/css/page-header.css +63 -26
- package/css/pagination.css +35 -38
- package/css/password-input.css +10 -66
- package/css/pin-input.css +18 -26
- package/css/popconfirm.css +20 -11
- package/css/popover.css +18 -12
- package/css/progress.css +14 -13
- package/css/prompt-input.css +3 -3
- package/css/question-flow.css +33 -7
- package/css/radio-group.css +120 -55
- package/css/rating.css +31 -14
- package/css/select.css +14 -10
- package/css/separator.css +22 -4
- package/css/side-nav.css +16 -11
- package/css/signature-pad.css +23 -9
- package/css/skeleton.css +7 -7
- package/css/slider.css +71 -42
- package/css/sparkline.css +8 -2
- package/css/spinner.css +40 -20
- package/css/statistic.css +14 -14
- package/css/steps.css +115 -84
- package/css/switch.css +9 -7
- package/css/table.css +27 -10
- package/css/tabs.css +35 -12
- package/css/tag-group.css +17 -6
- package/css/tag.css +54 -29
- package/css/tags-input.css +38 -19
- package/css/text-field.css +5 -5
- package/css/time-field.css +4 -4
- package/css/time-picker.css +150 -64
- package/css/time-range-picker.css +91 -62
- package/css/timeline.css +37 -20
- package/css/timer.css +3 -3
- package/css/toggle-group.css +4 -4
- package/css/tool-call.css +6 -4
- package/css/toolbar.css +6 -5
- package/css/tooltip.css +15 -16
- package/css/tour.css +14 -7
- package/css/transfer.css +22 -16
- package/css/tree-select.css +10 -10
- package/css/tree.css +26 -25
- package/css/typography.css +28 -25
- package/dist/css/accordion.css +47 -20
- package/dist/css/alert.css +14 -15
- package/dist/css/anchor.css +2 -2
- package/dist/css/approval.css +37 -13
- package/dist/css/avatar-group.css +9 -12
- package/dist/css/avatar.css +20 -18
- package/dist/css/back-top.css +21 -7
- package/dist/css/badge.css +5 -5
- package/dist/css/breadcrumb.css +18 -16
- package/dist/css/button-group.css +4 -6
- package/dist/css/button.css +4 -7
- package/dist/css/calendar-picker.css +177 -94
- package/dist/css/calendar-range-picker.css +206 -121
- package/dist/css/card.css +34 -6
- package/dist/css/carousel.css +65 -49
- package/dist/css/cascader.css +41 -29
- package/dist/css/checkbox-group.css +9 -6
- package/dist/css/checkbox.css +5 -4
- package/dist/css/citation.css +7 -2
- package/dist/css/clipboard.css +20 -4
- package/dist/css/collapsible.css +29 -14
- package/dist/css/color-field.css +4 -4
- package/dist/css/color-picker.css +77 -23
- package/dist/css/color-slider.css +10 -8
- package/dist/css/color-swatch-picker.css +5 -5
- package/dist/css/combobox.css +14 -10
- package/dist/css/command.css +13 -8
- package/dist/css/context-menu.css +10 -5
- package/dist/css/date-field.css +4 -4
- package/dist/css/date-picker.css +165 -102
- package/dist/css/date-range-picker.css +186 -123
- package/dist/css/description.css +10 -6
- package/dist/css/descriptions.css +47 -19
- package/dist/css/dialog.css +50 -35
- package/dist/css/drawer.css +75 -21
- package/dist/css/editable.css +15 -41
- package/dist/css/empty-state.css +21 -3
- package/dist/css/field-array.css +4 -1
- package/dist/css/field.css +17 -18
- package/dist/css/fieldset.css +33 -13
- package/dist/css/file-upload.css +65 -32
- package/dist/css/float-button.css +25 -15
- package/dist/css/floating-panel.css +1 -1
- package/dist/css/form.css +24 -10
- package/dist/css/grid-list.css +1 -1
- package/dist/css/highlight.css +4 -4
- package/dist/css/hover-card.css +19 -12
- package/dist/css/image-viewer.css +77 -27
- package/dist/css/image.css +12 -4
- package/dist/css/infinite-scroll.css +8 -4
- package/dist/css/input-group.css +74 -26
- package/dist/css/kbd.css +1 -1
- package/dist/css/label.css +27 -11
- package/dist/css/layout.css +17 -10
- package/dist/css/list.css +13 -9
- package/dist/css/listbox.css +12 -7
- package/dist/css/loading-bar.css +3 -0
- package/dist/css/mention.css +10 -8
- package/dist/css/menu.css +10 -5
- package/dist/css/menubar.css +13 -8
- package/dist/css/navigation-menu.css +2 -2
- package/dist/css/notification.css +114 -31
- package/dist/css/number-animation.css +2 -2
- package/dist/css/number-field.css +60 -37
- package/dist/css/page-header.css +63 -26
- package/dist/css/pagination.css +35 -38
- package/dist/css/password-input.css +10 -66
- package/dist/css/pin-input.css +18 -26
- package/dist/css/popconfirm.css +20 -11
- package/dist/css/popover.css +18 -12
- package/dist/css/progress.css +14 -13
- package/dist/css/prompt-input.css +3 -3
- package/dist/css/question-flow.css +33 -7
- package/dist/css/radio-group.css +120 -55
- package/dist/css/rating.css +31 -14
- package/dist/css/select.css +14 -10
- package/dist/css/separator.css +22 -4
- package/dist/css/side-nav.css +16 -11
- package/dist/css/signature-pad.css +23 -9
- package/dist/css/skeleton.css +7 -7
- package/dist/css/slider.css +71 -42
- package/dist/css/sparkline.css +8 -2
- package/dist/css/spinner.css +40 -20
- package/dist/css/statistic.css +14 -14
- package/dist/css/steps.css +115 -84
- package/dist/css/switch.css +9 -7
- package/dist/css/table.css +27 -10
- package/dist/css/tabs.css +35 -12
- package/dist/css/tag-group.css +17 -6
- package/dist/css/tag.css +54 -29
- package/dist/css/tags-input.css +38 -19
- package/dist/css/text-field.css +5 -5
- package/dist/css/time-field.css +4 -4
- package/dist/css/time-picker.css +150 -64
- package/dist/css/time-range-picker.css +91 -62
- package/dist/css/timeline.css +37 -20
- package/dist/css/timer.css +3 -3
- package/dist/css/toggle-group.css +4 -4
- package/dist/css/tool-call.css +6 -4
- package/dist/css/toolbar.css +6 -5
- package/dist/css/tooltip.css +15 -16
- package/dist/css/tour.css +14 -7
- package/dist/css/transfer.css +22 -16
- package/dist/css/tree-select.css +10 -10
- package/dist/css/tree.css +26 -25
- package/dist/css/typography.css +28 -25
- package/dist/family/action-control.css +30 -24
- package/dist/family/chart.css +57 -0
- package/dist/family/collection-item.css +12 -8
- package/dist/family/field-chrome.css +28 -19
- package/dist/family/loading-ring.css +20 -13
- package/dist/family/swatch.css +4 -4
- package/dist/family/tag-list.css +6 -0
- package/family/action-control.css +30 -24
- package/family/chart.css +57 -0
- package/family/collection-item.css +12 -8
- package/family/field-chrome.css +28 -19
- package/family/loading-ring.css +20 -13
- package/family/swatch.css +4 -4
- package/family/tag-list.css +6 -0
- package/index.css +3580 -2060
- package/index.unlayered.css +3579 -2060
- package/package.json +2 -2
package/css/tabs.css
CHANGED
|
@@ -17,9 +17,11 @@
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
[data-scope='tabs'][data-part='root'] {
|
|
20
|
-
/* 尺寸档只换这三个私有槽,标签从 root
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
/* 尺寸档只换这三个私有槽,标签从 root 继承它们,换档不必给每个部件各写一条选择器。
|
|
21
|
+
缺省的 line 档是导航:标签带取导航行高(md 40px),标签之间不留缝、横内衬 16px,
|
|
22
|
+
相邻两段文字隔 32px、首个标签的文字离起始边 16px;card / segment 是控件,在各自的形态块里换回控件尺 */
|
|
23
|
+
--xh-_tabs-trigger-h: var(--xh-nav-row-h-md);
|
|
24
|
+
--xh-_tabs-trigger-px: var(--xh-space-4);
|
|
23
25
|
--xh-_tabs-trigger-font-size: var(--xh-control-font-md);
|
|
24
26
|
|
|
25
27
|
/* 缺省是 line 变体:透明标签带,选中项由文字与底部指示条表达。Web Components 升级前还没有
|
|
@@ -32,7 +34,7 @@
|
|
|
32
34
|
--xh-_tabs-list-bg: transparent;
|
|
33
35
|
--xh-_tabs-list-p: var(--xh-space-0);
|
|
34
36
|
--xh-_tabs-list-radius: 0;
|
|
35
|
-
--xh-_tabs-list-border-width:
|
|
37
|
+
--xh-_tabs-list-border-width: var(--xh-stroke-thin);
|
|
36
38
|
--xh-_tabs-trigger-border-width: 0;
|
|
37
39
|
--xh-_tabs-trigger-border: transparent;
|
|
38
40
|
--xh-_tabs-trigger-radius: var(--xh-shape-control);
|
|
@@ -40,7 +42,7 @@
|
|
|
40
42
|
/* 语气落在选中态:指示条与选中标签的文字。
|
|
41
43
|
没写 data-tone 时 --xh-_tone 一族没被声明,两个槽都退回原来的取色 */
|
|
42
44
|
--xh-_tabs-accent: var(--xh-_tone, var(--xh-bg-brand));
|
|
43
|
-
--xh-_tabs-accent-text: var(--xh-_tone-fg, var(--xh-fg-brand
|
|
45
|
+
--xh-_tabs-accent-text: var(--xh-_tone-fg, var(--xh-fg-brand));
|
|
44
46
|
|
|
45
47
|
/* 翻页钮的盖底:标签带放不下时它浮在两端,挪到它底下的那截标签要被盖住。line / card 档的标签带是透明的,
|
|
46
48
|
盖底取 surface;坐在别的面上(画布、淡底面板)时由使用者槽换成所在的面。segment 档取轨道的淡底。
|
|
@@ -65,25 +67,41 @@
|
|
|
65
67
|
/* —— 尺寸 —— */
|
|
66
68
|
/* 缺省档写在上面的基础规则里 */
|
|
67
69
|
[data-scope='tabs'][data-part='root'][data-size='sm'] {
|
|
68
|
-
--xh-_tabs-trigger-h: var(--xh-
|
|
69
|
-
--xh-_tabs-trigger-px: var(--xh-
|
|
70
|
+
--xh-_tabs-trigger-h: var(--xh-nav-row-h-sm);
|
|
71
|
+
--xh-_tabs-trigger-px: var(--xh-space-3);
|
|
70
72
|
--xh-_tabs-trigger-font-size: var(--xh-control-font-sm);
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
[data-scope='tabs'][data-part='root'][data-size='lg'] {
|
|
76
|
+
--xh-_tabs-trigger-h: var(--xh-nav-row-h-lg);
|
|
77
|
+
--xh-_tabs-trigger-px: var(--xh-space-5);
|
|
78
|
+
--xh-_tabs-trigger-font-size: var(--xh-control-font-lg);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* card / segment 的标签是控件:高度与横内衬回到控件尺,三档逐档对齐 */
|
|
82
|
+
[data-scope='tabs'][data-part='root']:is([data-variant='card'], [data-variant='segment']) {
|
|
83
|
+
--xh-_tabs-trigger-h: var(--xh-control-h-md);
|
|
84
|
+
--xh-_tabs-trigger-px: var(--xh-control-px-md);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
[data-scope='tabs'][data-part='root']:is([data-variant='card'], [data-variant='segment'])[data-size='sm'] {
|
|
88
|
+
--xh-_tabs-trigger-h: var(--xh-control-h-sm);
|
|
89
|
+
--xh-_tabs-trigger-px: var(--xh-control-px-sm);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
[data-scope='tabs'][data-part='root']:is([data-variant='card'], [data-variant='segment'])[data-size='lg'] {
|
|
74
93
|
--xh-_tabs-trigger-h: var(--xh-control-h-lg);
|
|
75
94
|
--xh-_tabs-trigger-px: var(--xh-control-px-lg);
|
|
76
|
-
--xh-_tabs-trigger-font-size: var(--xh-control-font-lg);
|
|
77
95
|
}
|
|
78
96
|
|
|
79
97
|
/* —— 变体 —— */
|
|
80
|
-
/*
|
|
98
|
+
/* 主变体的显式写法,与缺省视觉一致:透明标签带与 1px 底部基线,选中项由文字和滑动指示条强调。 */
|
|
81
99
|
[data-scope='tabs'][data-part='root'][data-variant='line'] {
|
|
82
100
|
--xh-_tabs-list-gap: var(--xh-space-0);
|
|
83
101
|
--xh-_tabs-list-bg: transparent;
|
|
84
102
|
--xh-_tabs-list-p: var(--xh-space-0);
|
|
85
103
|
--xh-_tabs-list-radius: 0;
|
|
86
|
-
--xh-_tabs-list-border-width:
|
|
104
|
+
--xh-_tabs-list-border-width: var(--xh-stroke-thin);
|
|
87
105
|
--xh-_tabs-trigger-border-width: 0;
|
|
88
106
|
--xh-_tabs-trigger-border: transparent;
|
|
89
107
|
--xh-_tabs-trigger-radius: var(--xh-shape-control);
|
|
@@ -115,7 +133,8 @@
|
|
|
115
133
|
[data-scope='tabs'][data-part='root'][data-variant='segment'] {
|
|
116
134
|
--xh-_tabs-list-gap: var(--xh-space-0_5);
|
|
117
135
|
--xh-_tabs-list-bg: var(--xh-bg-subtle);
|
|
118
|
-
|
|
136
|
+
/* 轨道内衬 2px:滑块的 control 圆角不得大于轨道 surface 圆角减去内衬 */
|
|
137
|
+
--xh-_tabs-list-p: var(--xh-space-0_5);
|
|
119
138
|
--xh-_tabs-list-radius: var(--xh-shape-surface);
|
|
120
139
|
--xh-_tabs-list-border-width: 0;
|
|
121
140
|
--xh-_tabs-trigger-border-width: var(--xh-stroke-thin);
|
|
@@ -476,7 +495,8 @@
|
|
|
476
495
|
/* 摆在行首,落点交给 transform(只走合成),长度跟着标签宽走。标签带挪动时整条孩子
|
|
477
496
|
共用的 translate 叠在它之上,两者互不覆盖,过渡也只挂在 transform 上 */
|
|
478
497
|
position: absolute;
|
|
479
|
-
|
|
498
|
+
/* line 档标签带底边有一道 1px 基线,指示条压在它上面而不是悬在它上方 */
|
|
499
|
+
inset-block-end: calc(-1 * var(--xh-_tabs-list-border-width));
|
|
480
500
|
inset-inline-start: 0;
|
|
481
501
|
inline-size: var(--xh-_tabs-indicator-w);
|
|
482
502
|
block-size: var(--xh-tabs-indicator-thickness, var(--xh-stroke-thick));
|
|
@@ -736,6 +756,8 @@
|
|
|
736
756
|
grid-column: 2;
|
|
737
757
|
align-self: center;
|
|
738
758
|
margin-inline-start: var(--xh-space-1);
|
|
759
|
+
/* line 档标签带底边多一道基线,这一行比标签高出它的厚度:钮让出同样一截,居中才落在标签的中线上 */
|
|
760
|
+
margin-block-end: var(--xh-_tabs-list-border-width);
|
|
739
761
|
}
|
|
740
762
|
|
|
741
763
|
/* 竖排:标签带与钮上下叠成左侧一列(钮在列尾),面板占右侧那一轨、跨两行 */
|
|
@@ -764,6 +786,7 @@
|
|
|
764
786
|
align-self: auto;
|
|
765
787
|
margin-inline-start: 0;
|
|
766
788
|
margin-block-start: var(--xh-space-1);
|
|
789
|
+
margin-block-end: 0;
|
|
767
790
|
}
|
|
768
791
|
|
|
769
792
|
/* 钮本身:接 Action Control icon 档 ghost 面(连接层投影 profile / variant / size),盒取标签同高的正方形,
|
package/css/tag-group.css
CHANGED
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
display: flex;
|
|
41
41
|
flex-wrap: wrap;
|
|
42
42
|
align-items: center;
|
|
43
|
-
gap: var(--xh-tag-group-list-gap, var(--xh-space-
|
|
43
|
+
gap: var(--xh-tag-group-list-gap, var(--xh-space-2));
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
[data-scope='tag-group'][data-part='list'][hidden] {
|
|
@@ -88,13 +88,13 @@
|
|
|
88
88
|
cursor: pointer;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
/*
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
/* 按下去要有回应:可选的芯片是一颗定尺的离散控件,按下换底并取按压缩放,松手即弹回。
|
|
92
|
+
标签静息就是淡底,按淡底阶梯走 hover 200 → pressed 300;无壳档静息透明,走白底阶梯(见下)。
|
|
93
|
+
置灰的不压;指针 :active 与 Headless 投影的 data-pressed 看见同一副按压面 */
|
|
94
94
|
[data-scope='tag-group'][data-part='list']
|
|
95
95
|
> [data-scope='tag'][data-part='root'][data-selectable]:not([data-disabled]):not([data-variant='solid']):is(:active, [data-pressed]) {
|
|
96
96
|
scale: var(--xh-motion-scale-press);
|
|
97
|
-
background: var(--xh-tag-group-item-bg-pressed, var(--xh-bg-subtle-
|
|
97
|
+
background: var(--xh-tag-group-item-bg-pressed, var(--xh-bg-subtle-active));
|
|
98
98
|
transition-duration: var(--xh-motion-duration-press);
|
|
99
99
|
transition-timing-function: var(--xh-motion-ease-press);
|
|
100
100
|
}
|
|
@@ -122,15 +122,26 @@
|
|
|
122
122
|
background: var(--xh-tag-group-item-bg-pressed-solid, var(--xh-_tone-active, var(--xh-bg-brand-active)));
|
|
123
123
|
}
|
|
124
124
|
|
|
125
|
-
/*
|
|
125
|
+
/* 悬停与键盘锚点共用一档:标签静息淡底,hover 升到 200(与静息同为 100 就看不出悬停)。
|
|
126
126
|
data-highlighted 跟的是连接层记的焦点标签,与选中互相独立。
|
|
127
127
|
实心标签不进这里:它的字是实心底上配对的那支前景色,换成灰底就读不出来了;
|
|
128
128
|
实心档在这两档里面不换,回执落在按压缩放与聚焦环上 */
|
|
129
129
|
[data-scope='tag-group'][data-part='list']
|
|
130
130
|
> [data-scope='tag'][data-part='root']:not([data-disabled]):not([data-variant='solid']):is(:hover, [data-highlighted]) {
|
|
131
|
+
background: var(--xh-tag-group-item-bg-hover, var(--xh-bg-subtle-hover));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* 无壳档静息透明,坐在白底上:hover 100 → pressed 200 */
|
|
135
|
+
[data-scope='tag-group'][data-part='list']
|
|
136
|
+
> [data-scope='tag'][data-part='root'][data-variant='ghost']:not([data-tone]):not([data-disabled]):is(:hover, [data-highlighted]) {
|
|
131
137
|
background: var(--xh-tag-group-item-bg-hover, var(--xh-bg-subtle));
|
|
132
138
|
}
|
|
133
139
|
|
|
140
|
+
[data-scope='tag-group'][data-part='list']
|
|
141
|
+
> [data-scope='tag'][data-part='root'][data-variant='ghost'][data-selectable]:not([data-tone]):not([data-disabled]):is(:active, [data-pressed]) {
|
|
142
|
+
background: var(--xh-tag-group-item-bg-pressed, var(--xh-bg-subtle-hover));
|
|
143
|
+
}
|
|
144
|
+
|
|
134
145
|
[data-scope='tag-group'][data-part='list']
|
|
135
146
|
> [data-scope='tag'][data-part='root'][data-tone]:not([data-disabled]):not([data-variant='solid']):is(:hover, [data-highlighted]) {
|
|
136
147
|
background: var(--xh-tag-group-item-bg-hover, var(--xh-_tone-subtle-hover, var(--xh-bg-subtle)));
|
package/css/tag.css
CHANGED
|
@@ -19,11 +19,13 @@
|
|
|
19
19
|
/* 作者塞进指示符槽的图标跟着字号走,与皮肤画的兜底字形同一把尺 */
|
|
20
20
|
--xh-icon-size: var(--xh-tag-icon-size, var(--xh-glyph-size-text));
|
|
21
21
|
|
|
22
|
-
/*
|
|
22
|
+
/* 尺寸档只换这几个私有槽,下面的声明从它们取值。块尺寸按状态 chip 的档取(sm / md / lg = 20 / 24 / 28),
|
|
23
|
+
竖向内衬为 0、字在盒里居中;行框是标签里那一行的高,取指示符档,关闭钮按它对齐 */
|
|
23
24
|
--xh-_tag-gap: var(--xh-space-1);
|
|
24
25
|
--xh-_tag-px: var(--xh-space-2);
|
|
25
|
-
--xh-_tag-py:
|
|
26
|
-
--xh-_tag-
|
|
26
|
+
--xh-_tag-py: 0;
|
|
27
|
+
--xh-_tag-h: var(--xh-chip-h-md);
|
|
28
|
+
--xh-_tag-font-size: var(--xh-text-caption-size);
|
|
27
29
|
--xh-_tag-line-h: var(--xh-control-indicator-md);
|
|
28
30
|
|
|
29
31
|
display: inline-flex;
|
|
@@ -33,12 +35,14 @@
|
|
|
33
35
|
gap: var(--xh-tag-gap, var(--xh-_tag-gap));
|
|
34
36
|
padding-inline: var(--xh-tag-px, var(--xh-_tag-px));
|
|
35
37
|
padding-block: var(--xh-tag-py, var(--xh-_tag-py));
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
min-block-size: var(--xh-tag-h, var(--xh-_tag-h));
|
|
39
|
+
box-sizing: border-box;
|
|
40
|
+
/* 缺省是一块淡底的小方签:无边、无影,圆角与控件同档 */
|
|
41
|
+
border: var(--xh-stroke-thin) solid var(--xh-tag-border, transparent);
|
|
42
|
+
border-radius: var(--xh-tag-radius, var(--xh-shape-control));
|
|
43
|
+
background: var(--xh-tag-bg, var(--xh-bg-subtle));
|
|
44
|
+
box-shadow: var(--xh-tag-shadow, none);
|
|
45
|
+
color: var(--xh-tag-fg, var(--xh-fg-default));
|
|
42
46
|
font-size: var(--xh-tag-font-size, var(--xh-_tag-font-size));
|
|
43
47
|
font-weight: var(--xh-tag-font-weight, var(--xh-font-weight-medium));
|
|
44
48
|
/* 行框不低于关闭钮,有没有关闭钮同档标签一样高;
|
|
@@ -138,15 +142,12 @@
|
|
|
138
142
|
再是写了语气时的覆盖。语气槽会沿继承流下来,覆盖那条必须带 [data-tone] 限定,
|
|
139
143
|
否则一枚没写语气的标签只要落在带 data-tone 的容器里(警告提示、吐司、按钮内)
|
|
140
144
|
就会跟着染色。
|
|
141
|
-
|
|
142
|
-
换语气时高光跟着换 */
|
|
145
|
+
实心档是平的一块底,不画高光与投影 */
|
|
143
146
|
[data-scope='tag'][data-part='root'][data-variant='solid'] {
|
|
144
|
-
--xh-_tag-highlight: var(--xh-_highlight-brand);
|
|
145
|
-
|
|
146
147
|
border-color: transparent;
|
|
147
148
|
background: var(--xh-tag-bg, var(--xh-bg-brand));
|
|
148
149
|
color: var(--xh-tag-fg, var(--xh-fg-on-brand));
|
|
149
|
-
box-shadow: var(--xh-tag-shadow,
|
|
150
|
+
box-shadow: var(--xh-tag-shadow, none);
|
|
150
151
|
}
|
|
151
152
|
|
|
152
153
|
/* 面是实心的,环色与面同族,画在面里就看不出来;环改取面自己的前景色——
|
|
@@ -164,41 +165,42 @@
|
|
|
164
165
|
}
|
|
165
166
|
|
|
166
167
|
[data-scope='tag'][data-part='root'][data-variant='solid'][data-tone] {
|
|
167
|
-
--xh-_tag-highlight: var(--xh-_highlight-tone);
|
|
168
|
-
|
|
169
168
|
background: var(--xh-tag-bg, var(--xh-_tone, var(--xh-bg-brand)));
|
|
170
169
|
color: var(--xh-tag-fg, var(--xh-_tone-on, var(--xh-fg-on-brand)));
|
|
171
170
|
}
|
|
172
171
|
|
|
173
172
|
/* 实心档是一块彩色面(连接层打 data-xh-ink-surface):面内的图标与作者内容按这块底取墨色。
|
|
174
|
-
|
|
175
|
-
|
|
173
|
+
底色随语气与禁用换,这里跟着换。连接层只在实心档投影这个标记,选择器与形态写在一起,
|
|
174
|
+
别的形态(淡底、描边)的面不会被当成这块底去选墨 */
|
|
175
|
+
[data-scope='tag'][data-part='root'][data-variant='solid'][data-xh-ink-surface] {
|
|
176
176
|
--xh-ink-surface: var(--xh-tag-bg, var(--xh-bg-brand));
|
|
177
177
|
}
|
|
178
178
|
|
|
179
|
-
[data-scope='tag'][data-part='root'][data-xh-ink-surface][data-tone] {
|
|
179
|
+
[data-scope='tag'][data-part='root'][data-variant='solid'][data-xh-ink-surface][data-tone] {
|
|
180
180
|
--xh-ink-surface: var(--xh-tag-bg, var(--xh-_tone, var(--xh-bg-brand)));
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
[data-scope='tag'][data-part='root'][data-xh-ink-surface][data-disabled] {
|
|
183
|
+
[data-scope='tag'][data-part='root'][data-variant='solid'][data-xh-ink-surface][data-disabled] {
|
|
184
184
|
/* 置灰面是墨色淡底:选墨只看分量、不看透明度,取它的不透明档 */
|
|
185
185
|
--xh-ink-surface: var(--xh-tag-bg-disabled, var(--xh-bg-muted-opaque));
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
[data-scope='tag'][data-part='root'][data-variant='subtle'] {
|
|
189
|
-
border-color: var(--xh-tag-border,
|
|
190
|
-
background: var(--xh-tag-bg, var(--xh-
|
|
191
|
-
color: var(--xh-tag-fg, var(--xh-
|
|
189
|
+
border-color: var(--xh-tag-border, transparent);
|
|
190
|
+
background: var(--xh-tag-bg, var(--xh-bg-subtle));
|
|
191
|
+
color: var(--xh-tag-fg, var(--xh-fg-default));
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
/* 没写形态与 subtle 同一副:写了语气就换语气淡底与语气字 */
|
|
195
|
+
[data-scope='tag'][data-part='root']:is(:not([data-variant]), [data-variant='subtle'])[data-tone] {
|
|
195
196
|
background: var(--xh-tag-bg, var(--xh-_tone-subtle, var(--xh-bg-subtle)));
|
|
196
197
|
color: var(--xh-tag-fg, var(--xh-_tone-fg, var(--xh-fg-default)));
|
|
197
198
|
}
|
|
198
199
|
|
|
200
|
+
/* 描边档在淡底上再加一道边:边是这一档唯一多出来的东西 */
|
|
199
201
|
[data-scope='tag'][data-part='root'][data-variant='outline'] {
|
|
200
202
|
border-color: var(--xh-tag-border, var(--xh-border-default));
|
|
201
|
-
background:
|
|
203
|
+
background: var(--xh-tag-bg, var(--xh-bg-subtle));
|
|
202
204
|
box-shadow: none;
|
|
203
205
|
color: var(--xh-tag-fg, var(--xh-fg-default));
|
|
204
206
|
}
|
|
@@ -207,6 +209,7 @@
|
|
|
207
209
|
兑了底色的 --xh-_tone-border 六族都在 1.44-2.18,当轮廓看不清 */
|
|
208
210
|
[data-scope='tag'][data-part='root'][data-variant='outline'][data-tone] {
|
|
209
211
|
border-color: var(--xh-tag-border, var(--xh-_tone-border-control, var(--xh-border-default)));
|
|
212
|
+
background: var(--xh-tag-bg, var(--xh-_tone-subtle, var(--xh-bg-subtle)));
|
|
210
213
|
color: var(--xh-tag-fg, var(--xh-_tone-fg, var(--xh-fg-default)));
|
|
211
214
|
}
|
|
212
215
|
|
|
@@ -226,18 +229,40 @@
|
|
|
226
229
|
[data-scope='tag'][data-part='root'][data-size='sm'] {
|
|
227
230
|
--xh-_tag-gap: var(--xh-space-0_5);
|
|
228
231
|
--xh-_tag-px: var(--xh-space-1_5);
|
|
229
|
-
--xh-_tag-
|
|
230
|
-
--xh-_tag-font-size: var(--xh-text-caption-size);
|
|
232
|
+
--xh-_tag-h: var(--xh-chip-h-sm);
|
|
231
233
|
}
|
|
232
234
|
|
|
233
|
-
/*
|
|
235
|
+
/* 大档换正文字号、行框上到指示符的大档;关闭钮不换档 */
|
|
234
236
|
[data-scope='tag'][data-part='root'][data-size='lg'] {
|
|
235
237
|
--xh-_tag-gap: var(--xh-space-1_5);
|
|
236
|
-
--xh-_tag-
|
|
238
|
+
--xh-_tag-h: var(--xh-chip-h-lg);
|
|
237
239
|
--xh-_tag-font-size: var(--xh-text-body-size);
|
|
238
240
|
--xh-_tag-line-h: var(--xh-control-indicator-lg);
|
|
239
241
|
}
|
|
240
242
|
|
|
243
|
+
/* —— 字段里的已选标签 —— */
|
|
244
|
+
/* 坐在字段盒里的标签(Select / Combobox / Cascader / TreeSelect / 各类 Picker 的标签行与 TagsInput)是已选值的摘要:
|
|
245
|
+
大档字段里字号也钉在说明档,换成正文字号会与输入的文字抢层级。排在尺寸档之后,同特指度下压得住 */
|
|
246
|
+
:where([data-xh-field-chrome]) [data-scope='tag'][data-part='root'][data-size='lg'] {
|
|
247
|
+
--xh-_tag-font-size: var(--xh-text-caption-size);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/* 盒没聚焦时铺着字段淡底,淡底标签几乎化进底里:换成白底 + 缺省描边一枚枚立出来,叉的悬停 / 按下随之
|
|
251
|
+
走白底阶梯 100 → 200;聚焦后盒换成白色承载面,标签回到自己的淡底。禁用的盒不换(标签照禁用档置灰),
|
|
252
|
+
写了语气的、实心与无壳的标签保留自己的面;--xh-tag-* 覆盖槽照旧优先 */
|
|
253
|
+
:where([data-xh-field-chrome]:not(:focus-within):not([data-disabled])) [data-scope='tag'][data-part='root']:is(:not([data-variant]), [data-variant='subtle'], [data-variant='outline']):not([data-tone], [data-disabled]) {
|
|
254
|
+
border-color: var(--xh-tag-border, var(--xh-border-default));
|
|
255
|
+
background: var(--xh-tag-bg, var(--xh-bg-surface));
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
:where([data-xh-field-chrome]:not(:focus-within):not([data-disabled])) [data-scope='tag'][data-part='root']:is(:not([data-variant]), [data-variant='subtle'], [data-variant='outline']):not([data-tone], [data-disabled]) [data-scope='tag'][data-part='close-trigger']:hover:not(:disabled) {
|
|
259
|
+
background: var(--xh-tag-close-bg-hover, var(--xh-bg-subtle));
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
:where([data-xh-field-chrome]:not(:focus-within):not([data-disabled])) [data-scope='tag'][data-part='root']:is(:not([data-variant]), [data-variant='subtle'], [data-variant='outline']):not([data-tone], [data-disabled]) [data-scope='tag'][data-part='close-trigger']:not(:disabled):is(:active, [data-pressed]) {
|
|
263
|
+
background: var(--xh-tag-close-bg-active, var(--xh-bg-subtle-hover));
|
|
264
|
+
}
|
|
265
|
+
|
|
241
266
|
/* —— 禁用 —— */
|
|
242
267
|
/* 排在形态之后,靠源序压过形态给的配色。第二条选择器专为写了语气的标签而设:
|
|
243
268
|
语气覆盖那几条比第一条多一个属性,不把 [data-tone] 一起写上,
|
package/css/tags-input.css
CHANGED
|
@@ -22,15 +22,17 @@
|
|
|
22
22
|
/* 作者塞进来的图标跟着控件的尺寸档走;它自己写了 size 时仍以作者的为准 */
|
|
23
23
|
--xh-icon-size: var(--xh-tags-input-icon-size, var(--xh-glyph-size-md));
|
|
24
24
|
|
|
25
|
-
/*
|
|
25
|
+
/* 尺寸档只换这几个私有槽,标题、框、输入框与就地编辑框都从 root 继承它们,
|
|
26
26
|
换档不必给每个部件各写一条选择器。标签本身是 tag,档位由 data-size 传下去,不走这些槽;
|
|
27
|
-
|
|
27
|
+
就地编辑框的块尺寸、行框、内衬与字号照 tag 那一档写(块尺寸取状态 chip 档、竖向内衬为 0),
|
|
28
|
+
换进换出时与标签一样高 */
|
|
28
29
|
--xh-_tags-input-control-h: var(--xh-control-h-md);
|
|
29
30
|
--xh-_tags-input-control-px: var(--xh-control-px-md);
|
|
30
|
-
--xh-_tags-input-control-gap: var(--xh-
|
|
31
|
+
--xh-_tags-input-control-gap: var(--xh-space-1);
|
|
31
32
|
--xh-_tags-input-input-font-size: var(--xh-control-font-md);
|
|
32
33
|
--xh-_tags-input-item-font-size: var(--xh-control-caption-md);
|
|
33
|
-
--xh-_tags-input-item-
|
|
34
|
+
--xh-_tags-input-item-h: var(--xh-chip-h-md);
|
|
35
|
+
--xh-_tags-input-item-py: 0;
|
|
34
36
|
--xh-_tags-input-item-px: var(--xh-space-2);
|
|
35
37
|
--xh-_tags-input-item-line-h: var(--xh-control-indicator-md);
|
|
36
38
|
/* 光标走到的那颗标签是「当前项」,不是选中:淡底 + 淡底前景,随语气走。
|
|
@@ -58,10 +60,9 @@
|
|
|
58
60
|
--xh-icon-size: var(--xh-tags-input-icon-size, var(--xh-glyph-size-sm));
|
|
59
61
|
--xh-_tags-input-control-h: var(--xh-control-h-sm);
|
|
60
62
|
--xh-_tags-input-control-px: var(--xh-control-px-sm);
|
|
61
|
-
--xh-_tags-input-control-gap: var(--xh-control-gap-sm);
|
|
62
63
|
--xh-_tags-input-input-font-size: var(--xh-control-font-sm);
|
|
63
64
|
--xh-_tags-input-item-font-size: var(--xh-control-caption-sm);
|
|
64
|
-
--xh-_tags-input-item-
|
|
65
|
+
--xh-_tags-input-item-h: var(--xh-chip-h-sm);
|
|
65
66
|
--xh-_tags-input-item-px: var(--xh-space-1_5);
|
|
66
67
|
}
|
|
67
68
|
|
|
@@ -69,21 +70,23 @@
|
|
|
69
70
|
--xh-icon-size: var(--xh-tags-input-icon-size, var(--xh-glyph-size-lg));
|
|
70
71
|
--xh-_tags-input-control-h: var(--xh-control-h-lg);
|
|
71
72
|
--xh-_tags-input-control-px: var(--xh-control-px-lg);
|
|
72
|
-
--xh-_tags-input-control-gap: var(--xh-control-gap-lg);
|
|
73
73
|
--xh-_tags-input-input-font-size: var(--xh-control-font-lg);
|
|
74
74
|
--xh-_tags-input-item-font-size: var(--xh-control-caption-lg);
|
|
75
|
+
--xh-_tags-input-item-h: var(--xh-chip-h-lg);
|
|
75
76
|
--xh-_tags-input-item-px: var(--xh-space-3);
|
|
76
77
|
--xh-_tags-input-item-line-h: var(--xh-control-indicator-lg);
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
[data-scope='tags-input'][data-part='label'] {
|
|
80
|
-
|
|
81
|
+
/* 竖排时标签与控件之间的距离:根的 gap 之上补一段差值,--xh-tags-input-label-gap 给多少最终就是多少 */
|
|
82
|
+
margin-block-end: calc(var(--xh-tags-input-label-gap, var(--xh-space-2)) - var(--xh-tags-input-gap, var(--xh-space-1)));
|
|
83
|
+
color: var(--xh-tags-input-label-fg, var(--xh-fg-muted));
|
|
81
84
|
font-size: var(--xh-tags-input-label-font-size, var(--xh-text-label-size));
|
|
82
85
|
font-weight: var(--xh-tags-input-label-font-weight, var(--xh-text-label-weight));
|
|
83
86
|
}
|
|
84
87
|
|
|
85
88
|
[data-scope='tags-input'][data-part='label'][data-disabled] {
|
|
86
|
-
color: var(--xh-tags-input-label-fg-disabled, var(--xh-fg-
|
|
89
|
+
color: var(--xh-tags-input-label-fg-disabled, var(--xh-fg-muted));
|
|
87
90
|
}
|
|
88
91
|
|
|
89
92
|
/* 标签换行排,输入框跟在最后一个标签后面:描边、底色、圆角、聚焦环、五态与悬停由 Field Chrome
|
|
@@ -104,8 +107,6 @@
|
|
|
104
107
|
--xh-field-border-hover: var(--xh-tags-input-control-border-hover, var(--xh-_field-variant-border-hover));
|
|
105
108
|
--xh-field-border-focus: var(--xh-tags-input-control-border-focus, var(--xh-_field-variant-border-focus));
|
|
106
109
|
--xh-field-border-invalid: var(--xh-tags-input-control-border-invalid, var(--xh-_field-variant-border-invalid));
|
|
107
|
-
--xh-field-ring-focus: var(--xh-ring-focus);
|
|
108
|
-
--xh-field-ring-invalid: var(--xh-ring-invalid);
|
|
109
110
|
--xh-field-shadow-rest: var(--xh-tags-input-control-shadow, none);
|
|
110
111
|
--xh-field-cursor-read-only: default;
|
|
111
112
|
/* 家族 chrome 会重写 --xh-icon-size,使用者图标槽必须经桥接槽下发才能在盒内生效 */
|
|
@@ -123,6 +124,12 @@
|
|
|
123
124
|
display: none;
|
|
124
125
|
}
|
|
125
126
|
|
|
127
|
+
/* 盒里有标签时起始内衬收到 --xh-space-1,标签之间、标签与输入框之间隔 --xh-space-1(盒的 gap 缺省就是它):
|
|
128
|
+
标签自带内距,行首再留一整段控件内衬就显得空。标签自己的面(没聚焦时白底 + 描边)写在 tag.css 的字段宿主档 */
|
|
129
|
+
[data-scope='tags-input'][data-part='control']:has(> [data-scope='tags-input'][data-part='item']) {
|
|
130
|
+
padding-inline-start: var(--xh-tags-input-control-ps, var(--xh-space-1));
|
|
131
|
+
}
|
|
132
|
+
|
|
126
133
|
/* 顶到上限是 TagsInput 独有状态:再加进不去,边框先给个提示;invalid 同时出现时由 Field Chrome 的
|
|
127
134
|
错误态优先——真出错比"装满了"要紧 */
|
|
128
135
|
[data-scope='tags-input'][data-part='control'][data-at-max]:not([data-invalid]) {
|
|
@@ -207,11 +214,13 @@
|
|
|
207
214
|
inline-size: auto;
|
|
208
215
|
min-inline-size: 3ch;
|
|
209
216
|
max-inline-size: 100%;
|
|
217
|
+
box-sizing: border-box;
|
|
218
|
+
min-block-size: var(--xh-tags-input-item-h, var(--xh-_tags-input-item-h));
|
|
210
219
|
padding-block: var(--xh-tags-input-item-py, var(--xh-_tags-input-item-py));
|
|
211
220
|
padding-inline: var(--xh-tags-input-item-px, var(--xh-_tags-input-item-px));
|
|
212
221
|
border: var(--xh-stroke-thin) solid var(--xh-tags-input-item-input-border, var(--xh-border-control));
|
|
213
222
|
border-radius: var(--xh-tags-input-item-radius, var(--xh-shape-control));
|
|
214
|
-
background: var(--xh-tags-input-item-input-bg, var(--xh-bg-
|
|
223
|
+
background: var(--xh-tags-input-item-input-bg, var(--xh-bg-field));
|
|
215
224
|
color: var(--xh-tags-input-item-input-fg, var(--xh-fg-default));
|
|
216
225
|
font-family: inherit;
|
|
217
226
|
font-size: var(--xh-tags-input-item-font-size, var(--xh-_tags-input-item-font-size));
|
|
@@ -219,16 +228,20 @@
|
|
|
219
228
|
line-height: max(calc(var(--xh-leading-none) * 1em), var(--xh-_tags-input-item-line-h));
|
|
220
229
|
}
|
|
221
230
|
|
|
222
|
-
/*
|
|
223
|
-
外层 control
|
|
231
|
+
/* 它是真正持有焦点的那个节点,照字段外壳标出焦点:换承载面底 + 品牌描边,不画环;
|
|
232
|
+
外层 control 同时按 :focus-within 换成聚焦面,两层一起说明焦点在框内 */
|
|
233
|
+
[data-scope='tags-input'][data-part='item-input']:focus-within {
|
|
234
|
+
border-color: var(--xh-tags-input-item-input-border-focus, var(--xh-border-control-focus));
|
|
235
|
+
background: var(--xh-tags-input-item-input-bg-focus, var(--xh-bg-surface));
|
|
236
|
+
}
|
|
237
|
+
|
|
224
238
|
[data-scope='tags-input'][data-part='item-input']:focus-visible {
|
|
225
|
-
outline:
|
|
226
|
-
outline-offset: var(--xh-ring-offset);
|
|
239
|
+
outline: none;
|
|
227
240
|
}
|
|
228
241
|
|
|
229
|
-
/*
|
|
230
|
-
[data-scope='tags-input'][data-part='control'][data-invalid] [data-scope='tags-input'][data-part='item-input']
|
|
231
|
-
|
|
242
|
+
/* 校验失败时描边跟着外框换无效色,两层相邻不至于一红一蓝 */
|
|
243
|
+
[data-scope='tags-input'][data-part='control'][data-invalid] [data-scope='tags-input'][data-part='item-input'] {
|
|
244
|
+
border-color: var(--xh-tags-input-item-input-border-invalid, var(--xh-border-invalid));
|
|
232
245
|
}
|
|
233
246
|
|
|
234
247
|
[data-scope='tags-input'][data-part='item-input']:disabled {
|
|
@@ -318,5 +331,11 @@
|
|
|
318
331
|
[data-scope='tags-input'][data-part='clear-trigger'][data-disabled]:empty::before {
|
|
319
332
|
background-color: GrayText;
|
|
320
333
|
}
|
|
334
|
+
|
|
335
|
+
/* 就地编辑框聚焦不画环、描边又被换成系统色,补一圈 Highlight 环 */
|
|
336
|
+
[data-scope='tags-input'][data-part='item-input']:focus {
|
|
337
|
+
outline: var(--xh-ring-width) solid Highlight;
|
|
338
|
+
outline-offset: var(--xh-ring-offset);
|
|
339
|
+
}
|
|
321
340
|
}
|
|
322
341
|
}
|
package/css/text-field.css
CHANGED
|
@@ -56,13 +56,15 @@
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
[data-scope='text-field'][data-part='label'] {
|
|
59
|
-
|
|
59
|
+
/* 竖排时标签与控件之间的距离:根的 gap 之上补一段差值,--xh-text-field-label-gap 给多少最终就是多少 */
|
|
60
|
+
margin-block-end: calc(var(--xh-text-field-label-gap, var(--xh-space-2)) - var(--xh-text-field-gap, var(--xh-space-1)));
|
|
61
|
+
color: var(--xh-text-field-label-fg, var(--xh-fg-muted));
|
|
60
62
|
font-size: var(--xh-text-field-label-font-size, var(--xh-text-label-size));
|
|
61
63
|
font-weight: var(--xh-text-field-label-font-weight, var(--xh-text-label-weight));
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
[data-scope='text-field'][data-part='label'][data-disabled] {
|
|
65
|
-
color: var(--xh-text-field-label-fg-disabled, var(--xh-fg-
|
|
67
|
+
color: var(--xh-text-field-label-fg-disabled, var(--xh-fg-muted));
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
[data-scope='text-field'][data-part='control'] {
|
|
@@ -80,8 +82,6 @@
|
|
|
80
82
|
--xh-field-border-hover: var(--xh-text-field-control-border-hover, var(--xh-_field-variant-border-hover));
|
|
81
83
|
--xh-field-border-focus: var(--xh-text-field-control-border-focus, var(--xh-_field-variant-border-focus));
|
|
82
84
|
--xh-field-border-invalid: var(--xh-text-field-control-border-invalid, var(--xh-_field-variant-border-invalid));
|
|
83
|
-
--xh-field-ring-focus: var(--xh-ring-focus);
|
|
84
|
-
--xh-field-ring-invalid: var(--xh-ring-invalid);
|
|
85
85
|
--xh-field-shadow-rest: var(--xh-text-field-control-shadow, none);
|
|
86
86
|
/* 家族 chrome 会重写 --xh-icon-size,使用者图标槽必须经桥接槽下发才能在盒内生效 */
|
|
87
87
|
--xh-field-glyph-size: var(--xh-text-field-icon-size, var(--xh-_field-size-glyph-size));
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
--xh-field-placeholder-fg: var(--xh-text-field-placeholder-fg, var(--xh-fg-subtle));
|
|
101
101
|
--xh-field-autofill-bg: var(--xh-text-field-input-autofill-bg, var(--xh-bg-canvas));
|
|
102
102
|
--xh-field-autofill-fg: var(--xh-text-field-input-autofill-fg, var(--xh-fg-default));
|
|
103
|
-
--xh-field-textarea-padding-block: var(--xh-text-field-textarea-py, var(--xh-space-
|
|
103
|
+
--xh-field-textarea-padding-block: var(--xh-text-field-textarea-py, var(--xh-space-1));
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
[data-scope='text-field'][data-part='control'][hidden] {
|
package/css/time-field.css
CHANGED
|
@@ -63,13 +63,15 @@
|
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
[data-scope='time-field'][data-part='label'] {
|
|
66
|
-
|
|
66
|
+
/* 竖排时标签与控件之间的距离:根的 gap 之上补一段差值,--xh-time-field-label-gap 给多少最终就是多少 */
|
|
67
|
+
margin-block-end: calc(var(--xh-time-field-label-gap, var(--xh-space-2)) - var(--xh-time-field-gap, var(--xh-space-1)));
|
|
68
|
+
color: var(--xh-time-field-label-fg, var(--xh-fg-muted));
|
|
67
69
|
font-size: var(--xh-time-field-label-font-size, var(--xh-text-label-size));
|
|
68
70
|
font-weight: var(--xh-time-field-label-font-weight, var(--xh-text-label-weight));
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
[data-scope='time-field'][data-part='label'][data-disabled] {
|
|
72
|
-
color: var(--xh-time-field-label-fg-disabled, var(--xh-fg-
|
|
74
|
+
color: var(--xh-time-field-label-fg-disabled, var(--xh-fg-muted));
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
/* 几段合起来看着像一个输入框:描边、底色、圆角、聚焦环、五态与悬停由 Field Chrome 家族画在
|
|
@@ -89,8 +91,6 @@
|
|
|
89
91
|
--xh-field-border-hover: var(--xh-time-field-control-border-hover, var(--xh-_field-variant-border-hover));
|
|
90
92
|
--xh-field-border-focus: var(--xh-time-field-control-border-focus, var(--xh-_field-variant-border-focus));
|
|
91
93
|
--xh-field-border-invalid: var(--xh-time-field-control-border-invalid, var(--xh-_field-variant-border-invalid));
|
|
92
|
-
--xh-field-ring-focus: var(--xh-ring-focus);
|
|
93
|
-
--xh-field-ring-invalid: var(--xh-ring-invalid);
|
|
94
94
|
--xh-field-shadow-rest: var(--xh-time-field-control-shadow, none);
|
|
95
95
|
--xh-field-cursor-rest: default;
|
|
96
96
|
/* 家族 chrome 会重写 --xh-icon-size,使用者图标槽必须经桥接槽下发才能在盒内生效 */
|