@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
|
@@ -14,14 +14,11 @@
|
|
|
14
14
|
--xh-calendar-range-picker-skin: 1;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/* 标题栏与网格各自带内衬、彼此不留空当:标题栏下沿那道分隔线就是两块的界 */
|
|
17
18
|
[data-scope='calendar-range-picker'][data-part='root'] {
|
|
18
|
-
/* 翻页钮是 sm 档的图标钮(--xh-control-h-sm 见方),钮里的图标按 sm 档取 --xh-glyph-size-sm;
|
|
19
|
-
作者塞进去的图标与皮肤画的兜底字形同一把尺 */
|
|
20
|
-
--xh-icon-size: var(--xh-calendar-range-picker-icon-size, var(--xh-glyph-size-sm));
|
|
21
|
-
|
|
22
19
|
display: flex;
|
|
23
20
|
flex-direction: column;
|
|
24
|
-
gap: var(--xh-calendar-range-picker-gap, var(--xh-space-
|
|
21
|
+
gap: var(--xh-calendar-range-picker-gap, var(--xh-space-0));
|
|
25
22
|
/* 数字等宽:1 与 7 的字形宽度在比例字体里并不相同,不定住会让整张网格随月份抖动 */
|
|
26
23
|
font-variant-numeric: tabular-nums;
|
|
27
24
|
}
|
|
@@ -30,12 +27,20 @@
|
|
|
30
27
|
display: none;
|
|
31
28
|
}
|
|
32
29
|
|
|
30
|
+
/* 标题栏:上下 8、左右 16 的内衬里放一排 24 高的钮与标题,下沿一道通栏分隔线。
|
|
31
|
+
翻页钮里的字形取 xs 图标钮的字形档(--xh-glyph-size-sm),作者塞进钮里的图标与皮肤画的兜底字形同一把尺;
|
|
32
|
+
这一档写在标题栏上而不是日历根上:日期范围选择器里的日历没有根节点,标题栏两边都有 */
|
|
33
33
|
[data-scope='calendar-range-picker'][data-part='header'] {
|
|
34
|
+
--xh-icon-size: var(--xh-calendar-range-picker-icon-size, var(--xh-glyph-size-sm));
|
|
35
|
+
|
|
34
36
|
display: flex;
|
|
35
37
|
align-items: center;
|
|
36
38
|
justify-content: space-between;
|
|
37
|
-
gap: var(--xh-calendar-range-picker-header-gap, var(--xh-space-
|
|
38
|
-
min-block-size: var(--xh-control-
|
|
39
|
+
gap: var(--xh-calendar-range-picker-header-gap, var(--xh-space-1));
|
|
40
|
+
min-block-size: calc(var(--xh-control-action-size) + 2 * var(--xh-calendar-range-picker-header-py, var(--xh-space-2)) + var(--xh-stroke-thin));
|
|
41
|
+
padding-block: var(--xh-calendar-range-picker-header-py, var(--xh-space-2));
|
|
42
|
+
padding-inline: var(--xh-calendar-range-picker-header-px, var(--xh-space-4));
|
|
43
|
+
border-block-end: var(--xh-stroke-thin) solid var(--xh-calendar-range-picker-header-border, var(--xh-material-solid-border));
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
[data-scope='calendar-range-picker'][data-part='header'][hidden] {
|
|
@@ -47,32 +52,30 @@
|
|
|
47
52
|
text-align: center;
|
|
48
53
|
color: var(--xh-calendar-range-picker-heading-fg, var(--xh-fg-default));
|
|
49
54
|
font-size: var(--xh-calendar-range-picker-heading-font-size, var(--xh-text-label-size));
|
|
50
|
-
font-weight: var(--xh-calendar-range-picker-heading-font-weight, var(--xh-font-weight-
|
|
55
|
+
font-weight: var(--xh-calendar-range-picker-heading-font-weight, var(--xh-font-weight-medium));
|
|
51
56
|
line-height: var(--xh-leading-none);
|
|
52
57
|
user-select: none;
|
|
53
58
|
}
|
|
54
59
|
|
|
55
60
|
/* 标题里的年与月:点它们逐级钻上去(年 → 十年格、月 → 月格)。
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
悬停只换字色不换底(标题不是一枚按钮面),按下换到 200 档中性面(白底承载);到顶那一层只作标题显示,
|
|
60
|
-
光标别装成能点,也不再换面 */
|
|
61
|
+
接 Action Control text 档(日期翻页按钮同族)、xs 档 24 高:盒、悬停 / 按下 / 禁用面、焦点环与过渡由家族配方给,
|
|
62
|
+
这里只把使用者槽映射到桥接槽。长得像标题而不像按钮——它本来就是标题,只是可点:静息透明(ghost)、
|
|
63
|
+
字色始终是标题色,悬停 100 → 按下 200 只换底(白底承载);到顶那一层只作标题显示,光标别装成能点 */
|
|
61
64
|
[data-scope='calendar-range-picker'][data-part='heading-year-trigger']:not([hidden]),
|
|
62
65
|
[data-scope='calendar-range-picker'][data-part='heading-month-trigger']:not([hidden]) {
|
|
63
|
-
--xh-action-padding-inline: var(--xh-calendar-range-picker-heading-trigger-px, var(--xh-space-
|
|
66
|
+
--xh-action-padding-inline: var(--xh-calendar-range-picker-heading-trigger-px, var(--xh-space-0_5));
|
|
64
67
|
--xh-action-radius: var(--xh-calendar-range-picker-heading-trigger-radius, var(--xh-shape-control));
|
|
65
|
-
--xh-action-bg-hover:
|
|
68
|
+
--xh-action-bg-hover: var(--xh-calendar-range-picker-heading-trigger-bg-hover, var(--xh-_action-variant-bg-hover));
|
|
66
69
|
--xh-action-bg-pressed: var(--xh-calendar-range-picker-heading-trigger-bg-pressed, var(--xh-_action-variant-bg-pressed));
|
|
67
70
|
--xh-action-fg-rest: var(--xh-calendar-range-picker-heading-fg, var(--xh-fg-default));
|
|
68
|
-
--xh-action-fg-hover: var(--xh-calendar-range-picker-heading-
|
|
69
|
-
--xh-action-fg-pressed: var(--xh-calendar-range-picker-heading-
|
|
71
|
+
--xh-action-fg-hover: var(--xh-calendar-range-picker-heading-fg, var(--xh-fg-default));
|
|
72
|
+
--xh-action-fg-pressed: var(--xh-calendar-range-picker-heading-fg, var(--xh-fg-default));
|
|
70
73
|
--xh-action-fg-focus-visible: var(--xh-calendar-range-picker-heading-fg, var(--xh-fg-default));
|
|
71
74
|
--xh-action-fg-disabled: var(--xh-calendar-range-picker-heading-fg, var(--xh-fg-default));
|
|
72
75
|
--xh-action-font-size: var(--xh-calendar-range-picker-heading-font-size, var(--xh-text-label-size));
|
|
73
76
|
--xh-action-cursor-disabled: default;
|
|
74
77
|
|
|
75
|
-
font-weight: var(--xh-calendar-range-picker-heading-font-weight, var(--xh-font-weight-
|
|
78
|
+
font-weight: var(--xh-calendar-range-picker-heading-font-weight, var(--xh-font-weight-medium));
|
|
76
79
|
}
|
|
77
80
|
|
|
78
81
|
[data-scope='calendar-range-picker'][data-part='heading-year-trigger'][hidden],
|
|
@@ -80,15 +83,15 @@
|
|
|
80
83
|
display: none;
|
|
81
84
|
}
|
|
82
85
|
|
|
83
|
-
/* 四颗方向钮接 Action Control icon
|
|
84
|
-
|
|
86
|
+
/* 四颗方向钮接 Action Control icon 档 xs(24 见方)、ghost 形态:悬停 / 按下 / 禁用面、粗指针热区、焦点环与过渡
|
|
87
|
+
由家族配方给,这里只把使用者槽映射到桥接槽。钮是正方的单图标动作,取圆;坐在日历的白底上,悬停 100 → 按下 200 */
|
|
85
88
|
[data-scope='calendar-range-picker'][data-part='prev-year-trigger'],
|
|
86
89
|
[data-scope='calendar-range-picker'][data-part='prev-trigger'],
|
|
87
90
|
[data-scope='calendar-range-picker'][data-part='next-year-trigger'],
|
|
88
91
|
[data-scope='calendar-range-picker'][data-part='next-trigger'] {
|
|
89
92
|
--xh-action-visual-size: var(--xh-calendar-range-picker-nav-size, var(--xh-_action-profile-visual-size));
|
|
90
93
|
--xh-action-min-inline-size: var(--xh-calendar-range-picker-nav-size, var(--xh-_action-profile-visual-size));
|
|
91
|
-
--xh-action-radius: var(--xh-calendar-range-picker-nav-radius, var(--xh-shape-
|
|
94
|
+
--xh-action-radius: var(--xh-calendar-range-picker-nav-radius, var(--xh-shape-circle));
|
|
92
95
|
--xh-action-bg-rest: var(--xh-calendar-range-picker-nav-bg, var(--xh-_action-variant-bg-rest));
|
|
93
96
|
--xh-action-bg-hover: var(--xh-calendar-range-picker-nav-bg-hover, var(--xh-_action-variant-bg-hover));
|
|
94
97
|
--xh-action-bg-pressed: var(--xh-calendar-range-picker-nav-bg-pressed, var(--xh-_action-variant-bg-pressed));
|
|
@@ -106,18 +109,25 @@
|
|
|
106
109
|
display: none;
|
|
107
110
|
}
|
|
108
111
|
|
|
109
|
-
|
|
112
|
+
/* 网格:上下 12、左右 16 的内衬;星期行与第一行日期之间不留空当 */
|
|
110
113
|
[data-scope='calendar-range-picker'][data-part='grid'] {
|
|
111
114
|
display: flex;
|
|
112
115
|
flex-direction: column;
|
|
113
|
-
gap: var(--xh-calendar-range-picker-grid-gap, var(--xh-space-
|
|
116
|
+
gap: var(--xh-calendar-range-picker-grid-gap, var(--xh-space-0));
|
|
117
|
+
padding-block: var(--xh-calendar-range-picker-grid-py, var(--xh-space-3));
|
|
118
|
+
padding-inline: var(--xh-calendar-range-picker-grid-px, var(--xh-space-4));
|
|
114
119
|
}
|
|
115
120
|
|
|
116
|
-
/*
|
|
121
|
+
/* 周期视图与日视图同宽:钻上一层看月、年时面板不变窄,宽度按七列日期格加两侧内衬算 */
|
|
122
|
+
[data-scope='calendar-range-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) {
|
|
123
|
+
min-inline-size: calc(7 * var(--xh-calendar-range-picker-cell-min-w, var(--xh-control-h-md)) + 2 * var(--xh-calendar-range-picker-grid-px, var(--xh-space-4)));
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* 周期视图:格子直接铺进网格,不再有周行那一层;格与格之间不留缝,区间的底色在一行里连成一条 */
|
|
117
127
|
[data-scope='calendar-range-picker'][data-part='grid'][data-view='week'] {
|
|
118
128
|
display: grid;
|
|
119
129
|
grid-template-columns: minmax(0, 1fr);
|
|
120
|
-
gap: var(--xh-calendar-range-picker-period-gap, var(--xh-space-
|
|
130
|
+
gap: var(--xh-calendar-range-picker-period-gap, var(--xh-space-0));
|
|
121
131
|
}
|
|
122
132
|
|
|
123
133
|
/* 月 3 列 × 4 行、季度 4 列一行、年 3 列。 */
|
|
@@ -125,40 +135,23 @@
|
|
|
125
135
|
[data-scope='calendar-range-picker'][data-part='grid'][data-view='year'] {
|
|
126
136
|
display: grid;
|
|
127
137
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
128
|
-
gap: var(--xh-calendar-range-picker-period-gap, var(--xh-space-
|
|
138
|
+
gap: var(--xh-calendar-range-picker-period-gap, var(--xh-space-0));
|
|
129
139
|
}
|
|
130
140
|
|
|
131
141
|
[data-scope='calendar-range-picker'][data-part='grid'][data-view='quarter'] {
|
|
132
142
|
display: grid;
|
|
133
143
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
134
|
-
gap: var(--xh-calendar-range-picker-period-gap, var(--xh-space-
|
|
144
|
+
gap: var(--xh-calendar-range-picker-period-gap, var(--xh-space-0));
|
|
135
145
|
}
|
|
136
146
|
|
|
147
|
+
/* 年网格限高自滚:原生细条落在内衬之外的边缘,内衬两侧仍对称 */
|
|
137
148
|
[data-scope='calendar-range-picker'][data-part='grid'][data-view='year'] {
|
|
138
149
|
align-content: start;
|
|
139
150
|
max-block-size: var(--xh-calendar-range-picker-year-grid-max-h, var(--xh-viewport-h-sm));
|
|
140
|
-
|
|
141
|
-
/* 页内结构容器走原生细条(reset 层统一给)、滚动链保持 auto;嵌进 date-picker 浮层时由那份皮肤补 contain */
|
|
151
|
+
/* 页内结构容器走原生细条(reset 层统一给)、滚动链保持 auto;嵌进 date-range-picker 浮层时由那份皮肤补 contain */
|
|
142
152
|
overflow-y: auto;
|
|
143
153
|
}
|
|
144
154
|
|
|
145
|
-
/* 周期格沿横轴铺开,但始终保持控制件高度;选中面只换颜色,不改变几何尺寸。 */
|
|
146
|
-
[data-scope='calendar-range-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) [data-part='cell-trigger']:where([data-scope='calendar-range-picker']) {
|
|
147
|
-
flex: 0 0 auto;
|
|
148
|
-
aspect-ratio: auto;
|
|
149
|
-
min-inline-size: 0;
|
|
150
|
-
inline-size: min(3.5rem, 100%);
|
|
151
|
-
padding-block: var(--xh-calendar-range-picker-period-py, var(--xh-space-2));
|
|
152
|
-
border-radius: var(--xh-calendar-range-picker-period-radius, var(--xh-shape-control));
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
[data-scope='calendar-range-picker'][data-part='grid'][data-view='week'] [data-part='cell-trigger']:where([data-scope='calendar-range-picker']) {
|
|
156
|
-
flex: 1 1 auto;
|
|
157
|
-
justify-content: flex-start;
|
|
158
|
-
inline-size: 100%;
|
|
159
|
-
padding-inline: var(--xh-calendar-range-picker-week-cell-px, var(--xh-space-3));
|
|
160
|
-
}
|
|
161
|
-
|
|
162
155
|
[data-scope='calendar-range-picker'][data-part='grid'][hidden] {
|
|
163
156
|
display: none;
|
|
164
157
|
}
|
|
@@ -185,17 +178,20 @@
|
|
|
185
178
|
display: none;
|
|
186
179
|
}
|
|
187
180
|
|
|
188
|
-
/*
|
|
181
|
+
/* 七等分:表头行与日期行共用同一条轨道定义,列才对得齐。每列不窄于中号控件高,
|
|
182
|
+
浮层里的日历按内容收时由这条下限撑出面板宽(七列加两侧内衬) */
|
|
189
183
|
[data-scope='calendar-range-picker'][data-part='week-row'] {
|
|
190
184
|
display: grid;
|
|
191
|
-
grid-template-columns: repeat(7, minmax(
|
|
185
|
+
grid-template-columns: repeat(7, minmax(var(--xh-calendar-range-picker-cell-min-w, var(--xh-control-h-md)), 1fr));
|
|
192
186
|
}
|
|
193
187
|
|
|
194
188
|
/* 摆了周序号格的行多让出行首一列。写 :not([hidden]) 而不是靠顺序压过下面那条兜底——
|
|
195
189
|
同特指度的规则谁在后面谁赢,收起态会被这条 display 掀开 */
|
|
196
190
|
[data-scope='calendar-range-picker'][data-part='week-row']:not([hidden]):has(> [data-part='week-number']) {
|
|
197
191
|
display: grid;
|
|
198
|
-
grid-template-columns:
|
|
192
|
+
grid-template-columns:
|
|
193
|
+
var(--xh-calendar-range-picker-week-number-w, var(--xh-control-h-md))
|
|
194
|
+
repeat(7, minmax(var(--xh-calendar-range-picker-cell-min-w, var(--xh-control-h-md)), 1fr));
|
|
199
195
|
}
|
|
200
196
|
|
|
201
197
|
/* 周序号只是行的标号:比日子小一号、颜色压下去,不跟着选中态走 */
|
|
@@ -215,14 +211,15 @@
|
|
|
215
211
|
display: none;
|
|
216
212
|
}
|
|
217
213
|
|
|
214
|
+
/* 星期行:与中号控件同高,正文字号、常规字重,颜色压一档 */
|
|
218
215
|
[data-scope='calendar-range-picker'][data-part='week-day'] {
|
|
219
216
|
display: flex;
|
|
220
217
|
align-items: center;
|
|
221
218
|
justify-content: center;
|
|
222
|
-
block-size: var(--xh-calendar-range-picker-week-day-h, var(--xh-control-h-
|
|
219
|
+
block-size: var(--xh-calendar-range-picker-week-day-h, var(--xh-control-h-md));
|
|
223
220
|
color: var(--xh-calendar-range-picker-week-day-fg, var(--xh-fg-subtle));
|
|
224
|
-
font-size: var(--xh-calendar-range-picker-week-day-font-size, var(--xh-text-
|
|
225
|
-
font-weight: var(--xh-calendar-range-picker-week-day-font-weight, var(--xh-font-weight-
|
|
221
|
+
font-size: var(--xh-calendar-range-picker-week-day-font-size, var(--xh-text-body-size));
|
|
222
|
+
font-weight: var(--xh-calendar-range-picker-week-day-font-weight, var(--xh-font-weight-regular));
|
|
226
223
|
line-height: var(--xh-leading-none);
|
|
227
224
|
user-select: none;
|
|
228
225
|
}
|
|
@@ -231,131 +228,214 @@
|
|
|
231
228
|
display: none;
|
|
232
229
|
}
|
|
233
230
|
|
|
234
|
-
/*
|
|
235
|
-
|
|
231
|
+
/* 格子是等分轨道里的一格,也是格内几样东西的定位盒:区间轨道或禁用横条画在 ::before、今天的圆点画在 ::after,
|
|
232
|
+
日期钮的命中区(钮的 ::after)同样以它为包含块。上下各 6 的内衬把 24 高的钮撑成 36 的行距。
|
|
233
|
+
格子自成一层:轨道与横条压在钮的下面,不盖住钮(钮不当定位盒) */
|
|
236
234
|
[data-scope='calendar-range-picker'][data-part='cell'] {
|
|
235
|
+
/* 这副行距的半高:格内横条以格子中线为轴、按它收边,行距被拉高(粗指针)时横条不跟着变粗 */
|
|
236
|
+
--xh-_calendar-range-picker-row-half: calc(
|
|
237
|
+
var(--xh-calendar-range-picker-cell-size, var(--xh-control-action-size)) / 2
|
|
238
|
+
+ var(--xh-calendar-range-picker-cell-py, var(--xh-space-1_5))
|
|
239
|
+
);
|
|
240
|
+
/* 区间轨道的半高:行距半高减去轨道上下各收的那截。帽以它为半径 */
|
|
241
|
+
--xh-_calendar-range-picker-range-r: calc(
|
|
242
|
+
var(--xh-_calendar-range-picker-row-half) - var(--xh-calendar-range-picker-range-inset, var(--xh-space-0_5))
|
|
243
|
+
);
|
|
244
|
+
|
|
237
245
|
position: relative;
|
|
238
246
|
display: flex;
|
|
239
247
|
align-items: center;
|
|
240
248
|
justify-content: center;
|
|
241
|
-
|
|
249
|
+
isolation: isolate;
|
|
250
|
+
padding-block: var(--xh-calendar-range-picker-cell-py, var(--xh-space-1_5));
|
|
251
|
+
padding-inline: var(--xh-calendar-range-picker-cell-px, var(--xh-space-0));
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/* 周期格左右各留 4:钮在格里缩进一截,相邻两格的钮不贴在一起,区间轨道仍铺满整格 */
|
|
255
|
+
[data-scope='calendar-range-picker'][data-part='cell']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) {
|
|
256
|
+
padding-inline: var(--xh-calendar-range-picker-period-px, var(--xh-space-1));
|
|
242
257
|
}
|
|
243
258
|
|
|
244
259
|
[data-scope='calendar-range-picker'][data-part='cell'][hidden] {
|
|
245
260
|
display: none;
|
|
246
261
|
}
|
|
247
262
|
|
|
248
|
-
/*
|
|
263
|
+
/* 不可用的日子:整格一条淡底横条,上下各收 2,相邻几天的横条连成一条带;落在区间里时让位给区间轨道 */
|
|
264
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-disabled]:not([data-in-range])::before {
|
|
265
|
+
content: '';
|
|
266
|
+
position: absolute;
|
|
267
|
+
z-index: -1;
|
|
268
|
+
inset-block: calc(50% - var(--xh-_calendar-range-picker-row-half) + var(--xh-calendar-range-picker-disabled-inset, var(--xh-space-0_5)));
|
|
269
|
+
inset-inline: 0;
|
|
270
|
+
background-color: var(--xh-calendar-range-picker-cell-bg-disabled, var(--xh-bg-subtle));
|
|
271
|
+
pointer-events: none;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/* 区间轨道:横向铺满格子,相邻两格接成一条;纵向以格子中线为轴、比行距上下各收 2(36 的行距里 32 高),行与行之间留出空当。
|
|
249
275
|
轨道随 data-in-range 生灭,出现与消失都是当场的;过渡只在同一段轨道换底时走——
|
|
250
276
|
挑到一半的预览落定成区间,中性淡底淡变到品牌淡底 */
|
|
251
277
|
[data-scope='calendar-range-picker'][data-part='cell'][data-in-range]:not([data-outside-month])::before {
|
|
252
278
|
content: '';
|
|
253
279
|
position: absolute;
|
|
254
|
-
|
|
280
|
+
z-index: -1;
|
|
281
|
+
inset-block: calc(50% - var(--xh-_calendar-range-picker-range-r));
|
|
255
282
|
inset-inline: 0;
|
|
256
|
-
background: var(--xh-calendar-range-picker-range-bg, var(--xh-bg-brand-subtle));
|
|
283
|
+
background-color: var(--xh-calendar-range-picker-range-bg, var(--xh-bg-brand-subtle));
|
|
284
|
+
pointer-events: none;
|
|
257
285
|
transition: background-color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
|
|
258
286
|
}
|
|
259
287
|
|
|
260
288
|
/* 挑到一半的预览还不是选中:品牌淡底专属选中 / 当前,预览铺中性淡底,与已落定的区间分开 */
|
|
261
289
|
[data-scope='calendar-range-picker'][data-part='cell'][data-in-range][data-range-preview]:not([data-outside-month])::before {
|
|
262
|
-
background: var(--xh-calendar-range-picker-range-preview-bg, var(--xh-bg-subtle));
|
|
290
|
+
background-color: var(--xh-calendar-range-picker-range-preview-bg, var(--xh-bg-subtle));
|
|
263
291
|
}
|
|
264
292
|
|
|
265
|
-
/*
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
border-start-start-radius: var(--xh-calendar-range-picker-range-row-radius, var(--xh-shape-inset));
|
|
270
|
-
border-end-start-radius: var(--xh-calendar-range-picker-range-row-radius, var(--xh-shape-inset));
|
|
293
|
+
/* 轨道两端收成半圆帽:端点那一格的实心圆坐在帽里。跨周折行处不收圆,一行的首尾是直边 */
|
|
294
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-in-range][data-range-start]::before {
|
|
295
|
+
border-start-start-radius: var(--xh-calendar-range-picker-range-cap-radius, var(--xh-shape-pill));
|
|
296
|
+
border-end-start-radius: var(--xh-calendar-range-picker-range-cap-radius, var(--xh-shape-pill));
|
|
271
297
|
}
|
|
272
298
|
|
|
273
|
-
[data-scope='calendar-range-picker'][data-part='
|
|
274
|
-
border-start-end-radius: var(--xh-calendar-range-picker-range-
|
|
275
|
-
border-end-end-radius: var(--xh-calendar-range-picker-range-
|
|
299
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-in-range][data-range-end]::before {
|
|
300
|
+
border-start-end-radius: var(--xh-calendar-range-picker-range-cap-radius, var(--xh-shape-pill));
|
|
301
|
+
border-end-end-radius: var(--xh-calendar-range-picker-range-cap-radius, var(--xh-shape-pill));
|
|
276
302
|
}
|
|
277
303
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
304
|
+
/* 日视图的端点是格子正中的圆:帽从「格中线减半高」起算,圆心落在格子中线上,与端点圆同心。
|
|
305
|
+
从格边起算只在格宽恰为轨道高时重合,页内日历随容器铺宽、格子变宽后帽会偏到圆的外侧 */
|
|
306
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-view='day'][data-in-range][data-range-start]::before {
|
|
307
|
+
inset-inline-start: calc(50% - var(--xh-_calendar-range-picker-range-r));
|
|
281
308
|
}
|
|
282
309
|
|
|
283
|
-
[data-scope='calendar-range-picker'][data-part='cell'][data-in-range][data-range-end]::before {
|
|
284
|
-
|
|
285
|
-
|
|
310
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-view='day'][data-in-range][data-range-end]::before {
|
|
311
|
+
inset-inline-end: calc(50% - var(--xh-_calendar-range-picker-range-r));
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
/* 今天:数字下方一颗 4px 品牌圆点,数字保持正文色(brand-subtle 只留给选中);
|
|
315
|
+
端点换实心面后圆点仍落在面的外面,落在区间里时压在轨道的下沿 */
|
|
316
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-today]::after {
|
|
317
|
+
content: '';
|
|
318
|
+
position: absolute;
|
|
319
|
+
inset-block-start: calc(50% + var(--xh-calendar-range-picker-cell-size, var(--xh-control-action-size)) / 2 + var(--xh-space-0_5));
|
|
320
|
+
inset-inline-start: 50%;
|
|
321
|
+
inline-size: var(--xh-calendar-range-picker-today-mark-size, var(--xh-space-1));
|
|
322
|
+
block-size: var(--xh-calendar-range-picker-today-mark-size, var(--xh-space-1));
|
|
323
|
+
border-radius: var(--xh-shape-circle);
|
|
324
|
+
background-color: var(--xh-calendar-range-picker-today-mark-bg, var(--xh-fg-brand));
|
|
325
|
+
translate: -50% 0;
|
|
326
|
+
pointer-events: none;
|
|
286
327
|
}
|
|
287
328
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
border-radius: var(--xh-calendar-range-picker-cell-radius, var(--xh-shape-inset));
|
|
329
|
+
[dir='rtl'] [data-scope='calendar-range-picker'][data-part='cell'][data-today]::after {
|
|
330
|
+
translate: 50% 0;
|
|
291
331
|
}
|
|
292
332
|
|
|
293
|
-
/* 日期格接 Action Control text
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
格子坐在日历的白底上:悬停 100 → 按下 200
|
|
333
|
+
/* 日期格接 Action Control text 档 xs(日历格是定尺控件,属格状当前)、ghost 形态:悬停 / 按下 / 禁用面、
|
|
334
|
+
焦点环与过渡由家族配方给,这里只把使用者槽映射到桥接槽。日视图是 24 见方的圆(下一条),
|
|
335
|
+
周期视图是铺满格宽的 24 高钮、控件圆角。钮不当定位盒:命中区挂在格子上。
|
|
336
|
+
格子坐在日历的白底上:悬停 100 → 按下 200;选中 / 邻月 / 不可用只换下面的私有槽 */
|
|
297
337
|
[data-scope='calendar-range-picker'][data-part='cell-trigger'] {
|
|
298
338
|
--xh-_calendar-range-picker-cell-bg: transparent;
|
|
299
339
|
--xh-_calendar-range-picker-cell-bg-hover: var(--xh-calendar-range-picker-cell-bg-hover, var(--xh-_action-variant-bg-hover));
|
|
300
340
|
--xh-_calendar-range-picker-cell-bg-pressed: var(--xh-calendar-range-picker-cell-bg-pressed, var(--xh-_action-variant-bg-pressed));
|
|
301
|
-
--xh-_calendar-range-picker-cell-border: transparent;
|
|
302
341
|
--xh-_calendar-range-picker-cell-fg: var(--xh-calendar-range-picker-cell-fg, var(--xh-fg-default));
|
|
303
342
|
|
|
304
|
-
--xh-action-visual-size:
|
|
305
|
-
--xh-action-min-inline-size: var(--xh-calendar-range-picker-cell-size, var(--xh-
|
|
343
|
+
--xh-action-visual-size: var(--xh-calendar-range-picker-cell-size, var(--xh-_action-profile-visual-size));
|
|
344
|
+
--xh-action-min-inline-size: var(--xh-calendar-range-picker-cell-size, var(--xh-_action-profile-visual-size));
|
|
306
345
|
--xh-action-padding-inline: 0;
|
|
307
|
-
--xh-action-radius: var(--xh-calendar-range-picker-
|
|
346
|
+
--xh-action-radius: var(--xh-calendar-range-picker-period-radius, var(--xh-shape-control));
|
|
308
347
|
--xh-action-bg-rest: var(--xh-_calendar-range-picker-cell-bg);
|
|
309
348
|
--xh-action-bg-hover: var(--xh-_calendar-range-picker-cell-bg-hover);
|
|
310
349
|
--xh-action-bg-pressed: var(--xh-_calendar-range-picker-cell-bg-pressed);
|
|
311
350
|
--xh-action-bg-focus-visible: var(--xh-_calendar-range-picker-cell-bg);
|
|
312
351
|
--xh-action-bg-disabled: var(--xh-_calendar-range-picker-cell-bg);
|
|
313
|
-
--xh-action-border-rest:
|
|
314
|
-
--xh-action-border-hover:
|
|
315
|
-
--xh-action-border-pressed:
|
|
316
|
-
--xh-action-border-focus-visible:
|
|
317
|
-
--xh-action-border-disabled:
|
|
352
|
+
--xh-action-border-rest: transparent;
|
|
353
|
+
--xh-action-border-hover: transparent;
|
|
354
|
+
--xh-action-border-pressed: transparent;
|
|
355
|
+
--xh-action-border-focus-visible: transparent;
|
|
356
|
+
--xh-action-border-disabled: transparent;
|
|
318
357
|
--xh-action-fg-rest: var(--xh-_calendar-range-picker-cell-fg);
|
|
319
358
|
--xh-action-fg-hover: var(--xh-_calendar-range-picker-cell-fg);
|
|
320
359
|
--xh-action-fg-pressed: var(--xh-_calendar-range-picker-cell-fg);
|
|
321
360
|
--xh-action-fg-focus-visible: var(--xh-_calendar-range-picker-cell-fg);
|
|
322
361
|
--xh-action-font-size: var(--xh-calendar-range-picker-cell-font-size, var(--xh-text-body-size));
|
|
362
|
+
/* 按下只换面不缩放:缩放会让钮成为包含块,挂在格子上的命中区当场缩回钮里,抬起落空 */
|
|
363
|
+
--xh-action-scale-pressed: none;
|
|
323
364
|
|
|
324
|
-
|
|
325
|
-
flex:
|
|
326
|
-
/* 正方格:宽度由 week-row 的等分轨道给,高度跟着走 */
|
|
327
|
-
aspect-ratio: 1;
|
|
365
|
+
position: static;
|
|
366
|
+
flex: none;
|
|
328
367
|
font-weight: var(--xh-calendar-range-picker-cell-font-weight, var(--xh-font-weight-medium));
|
|
329
368
|
}
|
|
330
369
|
|
|
331
|
-
/*
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
370
|
+
/* 日视图:24 见方的日期钮取圆 */
|
|
371
|
+
[data-scope='calendar-range-picker'][data-part='cell-trigger'][data-view='day'] {
|
|
372
|
+
--xh-action-radius: var(--xh-calendar-range-picker-cell-radius, var(--xh-shape-circle));
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/* 周期格(周、月、季、年):钮铺满格子的内容宽,仍是 24 高、控件圆角;选中面只换颜色,不改变几何尺寸 */
|
|
376
|
+
[data-scope='calendar-range-picker'][data-part='cell-trigger']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) {
|
|
377
|
+
--xh-action-min-inline-size: 0;
|
|
378
|
+
|
|
379
|
+
inline-size: 100%;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/* 一行一个整周:文字从行首排起 */
|
|
383
|
+
[data-scope='calendar-range-picker'][data-part='cell-trigger'][data-view='week'] {
|
|
384
|
+
--xh-action-padding-inline: var(--xh-calendar-range-picker-week-cell-px, var(--xh-space-3));
|
|
385
|
+
|
|
386
|
+
justify-content: flex-start;
|
|
340
387
|
}
|
|
341
388
|
|
|
342
389
|
[data-scope='calendar-range-picker'][data-part='cell-trigger'][hidden] {
|
|
343
390
|
display: none;
|
|
344
391
|
}
|
|
345
392
|
|
|
346
|
-
/*
|
|
393
|
+
/* 命中区铺满整格:格子上下那截内衬也归它,指尖落在两行之间的空隙不会落空 */
|
|
347
394
|
[data-scope='calendar-range-picker'][data-part='cell-trigger']::after {
|
|
348
395
|
content: '';
|
|
349
396
|
position: absolute;
|
|
350
|
-
inset:
|
|
397
|
+
inset: 0;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/* 粗指针:格子首尾相接,家族 text 档那套 ::after 外扩会压到上下相邻的格。改由格子自己长到 44 见方——
|
|
401
|
+
行距加到 44、列宽下限抬到 44,铺满整格的命中区随之到 44×44、彼此不重叠;钮仍是 24 的圆,
|
|
402
|
+
横条与区间轨道仍以格子中线为轴、按细指针那副行距收边,帽仍与端点圆同心。::after 钉回整格那副几何。
|
|
403
|
+
列宽下限再按视口收(同 calendar-picker):手机窄屏里取扣掉页边与内衬后视口宽的七分之一,不撑出视口 */
|
|
404
|
+
@media (pointer: coarse) {
|
|
405
|
+
[data-scope='calendar-range-picker'][data-part='grid']:is([data-view='week'], [data-view='month'], [data-view='quarter'], [data-view='year']) {
|
|
406
|
+
min-inline-size: calc(7 * max(var(--xh-calendar-range-picker-cell-min-w, var(--xh-control-h-md)), min(var(--xh-control-hit-coarse), calc((100vw - 2 * var(--xh-space-4) - 2 * var(--xh-calendar-range-picker-grid-px, var(--xh-space-4))) / 7))) + 2 * var(--xh-calendar-range-picker-grid-px, var(--xh-space-4)));
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
[data-scope='calendar-range-picker'][data-part='week-row'] {
|
|
410
|
+
grid-template-columns: repeat(7, minmax(max(var(--xh-calendar-range-picker-cell-min-w, var(--xh-control-h-md)), min(var(--xh-control-hit-coarse), calc((100vw - 2 * var(--xh-space-4) - 2 * var(--xh-calendar-range-picker-grid-px, var(--xh-space-4))) / 7))), 1fr));
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
[data-scope='calendar-range-picker'][data-part='week-row']:not([hidden]):has(> [data-part='week-number']) {
|
|
414
|
+
grid-template-columns:
|
|
415
|
+
var(--xh-calendar-range-picker-week-number-w, var(--xh-control-h-md))
|
|
416
|
+
repeat(7, minmax(max(var(--xh-calendar-range-picker-cell-min-w, var(--xh-control-h-md)), min(var(--xh-control-hit-coarse), calc((100vw - 2 * var(--xh-space-4) - 2 * var(--xh-calendar-range-picker-grid-px, var(--xh-space-4)) - var(--xh-calendar-range-picker-week-number-w, var(--xh-control-h-md))) / 7))), 1fr));
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
[data-scope='calendar-range-picker'][data-part='cell'] {
|
|
420
|
+
min-block-size: var(--xh-control-hit-coarse);
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
[data-scope='calendar-range-picker'][data-part='cell-trigger']::after {
|
|
424
|
+
inline-size: auto;
|
|
425
|
+
block-size: auto;
|
|
426
|
+
min-block-size: 0;
|
|
427
|
+
translate: none;
|
|
428
|
+
}
|
|
351
429
|
}
|
|
352
430
|
|
|
353
|
-
/*
|
|
431
|
+
/* 邻月的日子照样可点,只是压暗、字重回到常规——它们不是占位符 */
|
|
354
432
|
[data-scope='calendar-range-picker'][data-part='cell-trigger'][data-outside-month] {
|
|
355
433
|
--xh-_calendar-range-picker-cell-fg: var(--xh-calendar-range-picker-cell-fg-outside, var(--xh-fg-subtle));
|
|
434
|
+
|
|
435
|
+
font-weight: var(--xh-calendar-range-picker-cell-font-weight-outside, var(--xh-font-weight-regular));
|
|
356
436
|
}
|
|
357
437
|
|
|
358
|
-
/* 区间中段的格坐在品牌淡底的轨道上(页内选中 12%):悬停 20%、按下 28
|
|
438
|
+
/* 区间中段的格坐在品牌淡底的轨道上(页内选中 12%):悬停 20%、按下 28%,铺在格子自己的圆上 */
|
|
359
439
|
[data-scope='calendar-range-picker'][data-part='cell-trigger'][data-in-range]:not([data-outside-month], [data-disabled], [data-range-start], [data-range-end]) {
|
|
360
440
|
--xh-_calendar-range-picker-cell-bg-hover: var(--xh-calendar-range-picker-range-cell-bg-hover, var(--xh-bg-brand-subtle-hover));
|
|
361
441
|
--xh-_calendar-range-picker-cell-bg-pressed: var(--xh-calendar-range-picker-range-cell-bg-pressed, var(--xh-bg-brand-subtle-active));
|
|
@@ -367,16 +447,8 @@
|
|
|
367
447
|
--xh-_calendar-range-picker-cell-bg-pressed: var(--xh-calendar-range-picker-range-preview-cell-bg-pressed, var(--xh-bg-subtle-active));
|
|
368
448
|
}
|
|
369
449
|
|
|
370
|
-
/*
|
|
371
|
-
|
|
372
|
-
[data-scope='calendar-range-picker'][data-part='cell-trigger'][data-today] {
|
|
373
|
-
--xh-_calendar-range-picker-cell-bg: var(--xh-calendar-range-picker-today-bg, transparent);
|
|
374
|
-
--xh-_calendar-range-picker-cell-border: var(--xh-calendar-range-picker-today-border, var(--xh-fg-brand));
|
|
375
|
-
--xh-_calendar-range-picker-cell-fg: var(--xh-calendar-range-picker-today-fg, var(--xh-fg-brand));
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
/* 实心强调面只给单选 / 多选的选中格与区间的两端(格状当前):悬停不换面,按下压到 active 档(光缩放在深色底上
|
|
379
|
-
看不出回执);区间中段的格子由格子上的轨道铺底,自己不换面——不然一整段都是实心圆,就分不出哪两格是端点。
|
|
450
|
+
/* 实心强调面只给单选 / 多选的选中格与区间的两端(格状当前):悬停不换面,按下压到 active 档;
|
|
451
|
+
区间中段的格子由格子上的轨道铺底,自己不换面——不然一整段都是实心圆,就分不出哪两格是端点。
|
|
380
452
|
面是实心的,环色与面同族,画在面里就看不出来;环改取面自己的前景色——
|
|
381
453
|
那一族色本来就要在这块面上把字读清楚,与面的对比是按可读性定的 */
|
|
382
454
|
[data-scope='calendar-range-picker'][data-part='cell-trigger'][data-selected]:not([data-in-range]),
|
|
@@ -397,8 +469,10 @@
|
|
|
397
469
|
}
|
|
398
470
|
|
|
399
471
|
@media (forced-colors: active) {
|
|
400
|
-
|
|
401
|
-
|
|
472
|
+
/* 今天的圆点是一块底色,这一档会被系统抹掉:退出强制换色,直接取系统前景 */
|
|
473
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-today]::after {
|
|
474
|
+
forced-color-adjust: none;
|
|
475
|
+
background-color: CanvasText;
|
|
402
476
|
}
|
|
403
477
|
|
|
404
478
|
/* 强制色下底色被抹平,区间两端只剩描边能说明身份 */
|
|
@@ -406,6 +480,11 @@
|
|
|
406
480
|
border-color: Highlight;
|
|
407
481
|
}
|
|
408
482
|
|
|
483
|
+
/* 落定的区间中段在这一档没有底色:轨道上下沿画实线 */
|
|
484
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-in-range]:not([data-range-preview], [data-outside-month])::before {
|
|
485
|
+
border-block: var(--xh-stroke-thin) solid Highlight;
|
|
486
|
+
}
|
|
487
|
+
|
|
409
488
|
/* 预览与落定的区间在这一档没有底色可分:还没确认的那一段在轨道上下沿画虚线 */
|
|
410
489
|
[data-scope='calendar-range-picker'][data-part='cell'][data-in-range][data-range-preview]:not([data-outside-month])::before {
|
|
411
490
|
border-block: var(--xh-stroke-thin) dashed Highlight;
|
|
@@ -422,9 +501,10 @@
|
|
|
422
501
|
--xh-action-ring-color-focus-visible: var(--xh-ring-focus);
|
|
423
502
|
}
|
|
424
503
|
|
|
425
|
-
/*
|
|
504
|
+
/* 不可用又选中的格:压在淡底横条上,钮退到再深一档的中性面 + 置灰字(禁用面),
|
|
505
|
+
选中身份仍由这块底与未选中的透明格分开 */
|
|
426
506
|
[data-scope='calendar-range-picker'][data-part='cell-trigger'][data-disabled][data-selected] {
|
|
427
|
-
--xh-action-bg-disabled: var(--xh-calendar-range-picker-cell-bg-selected-disabled, var(--xh-bg-subtle));
|
|
507
|
+
--xh-action-bg-disabled: var(--xh-calendar-range-picker-cell-bg-selected-disabled, var(--xh-bg-subtle-hover));
|
|
428
508
|
}
|
|
429
509
|
|
|
430
510
|
/* 每张面板只画自己的月份:邻月格仍保留区间语义与可点能力,但不铺轨道或端点面。 */
|
|
@@ -531,6 +611,11 @@
|
|
|
531
611
|
inset-block-start: auto;
|
|
532
612
|
border-block-end: var(--xh-stroke-thick) solid currentColor;
|
|
533
613
|
}
|
|
614
|
+
|
|
615
|
+
/* 今天的圆点同样是底色:改由描边把这颗点画满 */
|
|
616
|
+
[data-scope='calendar-range-picker'][data-part='cell'][data-today]::after {
|
|
617
|
+
border: calc(var(--xh-calendar-range-picker-today-mark-size, var(--xh-space-1)) / 2) solid var(--xh-fg-default);
|
|
618
|
+
}
|
|
534
619
|
}
|
|
535
620
|
|
|
536
621
|
@media (forced-colors: active) {
|