@endfield-ui/react 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/NOTICE.md +27 -0
- package/README.md +818 -2
- package/dist/index.d.ts +3445 -0
- package/dist/index.js +8706 -0
- package/dist/styles.css +2 -0
- package/package.json +83 -3
- package/src/components/README.md +179 -0
- package/src/components/accordion/Accordion.tsx +168 -0
- package/src/components/accordion/index.ts +8 -0
- package/src/components/alert/Alert.tsx +106 -0
- package/src/components/alert/index.ts +1 -0
- package/src/components/avatar/Avatar.tsx +92 -0
- package/src/components/avatar/AvatarSwitcher.tsx +261 -0
- package/src/components/avatar/index.ts +8 -0
- package/src/components/back-to-top/BackToTop.tsx +124 -0
- package/src/components/back-to-top/index.ts +5 -0
- package/src/components/badge/Badge.tsx +75 -0
- package/src/components/badge/index.ts +1 -0
- package/src/components/bracket-title/BracketTitle.tsx +40 -0
- package/src/components/bracket-title/index.ts +1 -0
- package/src/components/breadcrumb/Breadcrumb.tsx +161 -0
- package/src/components/breadcrumb/index.ts +6 -0
- package/src/components/button/Button.tsx +357 -0
- package/src/components/button/ButtonGroup.tsx +55 -0
- package/src/components/button/index.ts +13 -0
- package/src/components/calendar/Calendar.tsx +443 -0
- package/src/components/calendar/index.ts +7 -0
- package/src/components/carousel/Carousel.tsx +252 -0
- package/src/components/carousel/index.ts +7 -0
- package/src/components/carousel/snap-track.ts +74 -0
- package/src/components/checkbox/Checkbox.tsx +94 -0
- package/src/components/checkbox/choice-style.ts +30 -0
- package/src/components/checkbox/index.ts +1 -0
- package/src/components/chip/FilterChip.tsx +68 -0
- package/src/components/chip/ResourceChip.tsx +63 -0
- package/src/components/chip/capsule-style.ts +22 -0
- package/src/components/chip/index.ts +6 -0
- package/src/components/combobox/Combobox.tsx +450 -0
- package/src/components/combobox/index.ts +10 -0
- package/src/components/completion-banner/CompletionBanner.tsx +72 -0
- package/src/components/completion-banner/index.ts +4 -0
- package/src/components/context-menu/ContextMenu.tsx +70 -0
- package/src/components/context-menu/index.ts +5 -0
- package/src/components/corner-brackets/CornerBrackets.tsx +43 -0
- package/src/components/corner-brackets/index.ts +5 -0
- package/src/components/countdown/Countdown.tsx +145 -0
- package/src/components/countdown/index.ts +6 -0
- package/src/components/dash-indicator/DashIndicator.tsx +44 -0
- package/src/components/dash-indicator/index.ts +1 -0
- package/src/components/data-row/DataRow.tsx +282 -0
- package/src/components/data-row/index.ts +8 -0
- package/src/components/date-picker/DateField.tsx +159 -0
- package/src/components/date-picker/DatePicker.tsx +182 -0
- package/src/components/date-picker/DateRangePicker.tsx +203 -0
- package/src/components/date-picker/index.ts +7 -0
- package/src/components/dialog/Dialog.tsx +203 -0
- package/src/components/dialog/index.ts +7 -0
- package/src/components/dialog/initial-focus.ts +19 -0
- package/src/components/dialog/overlay-style.ts +28 -0
- package/src/components/drawer/Drawer.tsx +213 -0
- package/src/components/drawer/index.ts +6 -0
- package/src/components/dropdown-menu/DropdownMenu.tsx +427 -0
- package/src/components/dropdown-menu/MenuCheck.tsx +44 -0
- package/src/components/dropdown-menu/index.ts +22 -0
- package/src/components/dropdown-menu/menu-style.ts +47 -0
- package/src/components/empty-state/EmptyState.tsx +79 -0
- package/src/components/empty-state/index.ts +1 -0
- package/src/components/field/Field.tsx +203 -0
- package/src/components/field/index.ts +6 -0
- package/src/components/file-upload/FileItem.tsx +201 -0
- package/src/components/file-upload/FileUpload.tsx +425 -0
- package/src/components/file-upload/index.ts +9 -0
- package/src/components/flyout-bar/FlyoutBar.tsx +158 -0
- package/src/components/flyout-bar/index.ts +7 -0
- package/src/components/ghost-text/GhostText.tsx +47 -0
- package/src/components/ghost-text/index.ts +5 -0
- package/src/components/hatch/Hatch.tsx +35 -0
- package/src/components/hatch/index.ts +1 -0
- package/src/components/hazard-stripe/HazardStripe.tsx +35 -0
- package/src/components/hazard-stripe/index.ts +5 -0
- package/src/components/hover-card/HoverCard.tsx +101 -0
- package/src/components/hover-card/index.ts +6 -0
- package/src/components/icon-button/IconButton.tsx +95 -0
- package/src/components/icon-button/index.ts +6 -0
- package/src/components/image-viewer/ImageViewer.tsx +427 -0
- package/src/components/image-viewer/index.ts +7 -0
- package/src/components/input/Input.tsx +109 -0
- package/src/components/input/control-box.ts +71 -0
- package/src/components/input/index.ts +6 -0
- package/src/components/input/value-chip.ts +34 -0
- package/src/components/item-slot/ItemGrid.tsx +207 -0
- package/src/components/item-slot/ItemSlot.tsx +284 -0
- package/src/components/item-slot/index.ts +7 -0
- package/src/components/kbd/Kbd.tsx +33 -0
- package/src/components/kbd/index.ts +1 -0
- package/src/components/link-element/LinkElement.tsx +25 -0
- package/src/components/list/List.tsx +229 -0
- package/src/components/list/band-style.ts +18 -0
- package/src/components/list/index.ts +8 -0
- package/src/components/loader/Loader.tsx +154 -0
- package/src/components/loader/index.ts +1 -0
- package/src/components/marquee/Marquee.tsx +96 -0
- package/src/components/marquee/index.ts +1 -0
- package/src/components/media-card/MediaCard.tsx +139 -0
- package/src/components/media-card/index.ts +5 -0
- package/src/components/nav-action/NavAction.tsx +142 -0
- package/src/components/nav-action/index.ts +5 -0
- package/src/components/nav-menu/NavMenu.tsx +288 -0
- package/src/components/nav-menu/index.ts +6 -0
- package/src/components/navigator/Navigator.tsx +136 -0
- package/src/components/navigator/index.ts +5 -0
- package/src/components/otp-input/OtpInput.tsx +211 -0
- package/src/components/otp-input/index.ts +7 -0
- package/src/components/page-header/PageHeader.tsx +182 -0
- package/src/components/page-header/index.ts +6 -0
- package/src/components/pagination/Pagination.tsx +181 -0
- package/src/components/pagination/index.ts +5 -0
- package/src/components/panel/Panel.tsx +114 -0
- package/src/components/panel/index.ts +13 -0
- package/src/components/play-button/PlayButton.tsx +92 -0
- package/src/components/play-button/index.ts +7 -0
- package/src/components/popover/Popover.tsx +97 -0
- package/src/components/popover/index.ts +8 -0
- package/src/components/popover/panel-style.ts +15 -0
- package/src/components/progress/Progress.tsx +133 -0
- package/src/components/progress/ProgressRing.tsx +123 -0
- package/src/components/progress/index.ts +2 -0
- package/src/components/radio/Radio.tsx +182 -0
- package/src/components/radio/index.ts +7 -0
- package/src/components/rec-indicator/RecIndicator.tsx +47 -0
- package/src/components/rec-indicator/index.ts +1 -0
- package/src/components/registration-strip/RegistrationStrip.tsx +51 -0
- package/src/components/registration-strip/index.ts +5 -0
- package/src/components/schedule/Schedule.tsx +457 -0
- package/src/components/schedule/index.ts +9 -0
- package/src/components/scroll-area/ScrollArea.tsx +137 -0
- package/src/components/scroll-area/index.ts +5 -0
- package/src/components/scroll-hint/ScrollHint.tsx +78 -0
- package/src/components/scroll-hint/index.ts +5 -0
- package/src/components/section-title/SectionTitle.tsx +202 -0
- package/src/components/section-title/index.ts +5 -0
- package/src/components/segmented-control/SegmentedControl.tsx +220 -0
- package/src/components/segmented-control/index.ts +8 -0
- package/src/components/select/Select.tsx +390 -0
- package/src/components/select/index.ts +15 -0
- package/src/components/side-rail/SideRail.tsx +317 -0
- package/src/components/side-rail/SideRailSub.tsx +298 -0
- package/src/components/side-rail/index.ts +14 -0
- package/src/components/skeleton/Skeleton.tsx +70 -0
- package/src/components/skeleton/index.ts +1 -0
- package/src/components/slider/Slider.tsx +219 -0
- package/src/components/slider/index.ts +8 -0
- package/src/components/sparkline/Sparkline.tsx +122 -0
- package/src/components/sparkline/index.ts +6 -0
- package/src/components/spinner/Spinner.tsx +64 -0
- package/src/components/spinner/index.ts +1 -0
- package/src/components/stat/Stat.tsx +79 -0
- package/src/components/stat/index.ts +1 -0
- package/src/components/stepper/Stepper.tsx +316 -0
- package/src/components/stepper/index.ts +1 -0
- package/src/components/steps/Steps.tsx +302 -0
- package/src/components/steps/index.ts +10 -0
- package/src/components/switch/Switch.tsx +120 -0
- package/src/components/switch/index.ts +1 -0
- package/src/components/table/Table.tsx +560 -0
- package/src/components/table/index.ts +20 -0
- package/src/components/tabs/Tabs.tsx +313 -0
- package/src/components/tabs/index.ts +12 -0
- package/src/components/tag/Tag.tsx +66 -0
- package/src/components/tag/TagPair.tsx +34 -0
- package/src/components/tag/index.ts +2 -0
- package/src/components/tag-input/TagInput.tsx +502 -0
- package/src/components/tag-input/index.ts +8 -0
- package/src/components/term/Term.tsx +53 -0
- package/src/components/term/index.ts +1 -0
- package/src/components/textarea/Textarea.tsx +99 -0
- package/src/components/textarea/index.ts +1 -0
- package/src/components/texture/Texture.tsx +45 -0
- package/src/components/texture/index.ts +1 -0
- package/src/components/tick-ring/TickRing.tsx +77 -0
- package/src/components/tick-ring/index.ts +1 -0
- package/src/components/timeline/Timeline.tsx +84 -0
- package/src/components/timeline/index.ts +7 -0
- package/src/components/toast/Toast.tsx +257 -0
- package/src/components/toast/index.ts +10 -0
- package/src/components/toc/Toc.tsx +263 -0
- package/src/components/toc/index.ts +7 -0
- package/src/components/toolbar/Toolbar.tsx +389 -0
- package/src/components/toolbar/index.ts +17 -0
- package/src/components/tooltip/Tooltip.tsx +175 -0
- package/src/components/tooltip/index.ts +8 -0
- package/src/components/top-bar/TopBar.tsx +47 -0
- package/src/components/top-bar/index.ts +1 -0
- package/src/components/viewfinder/Viewfinder.tsx +97 -0
- package/src/components/viewfinder/index.ts +6 -0
- package/src/hooks/README.md +14 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useControllableState.ts +30 -0
- package/src/hooks/useInView.ts +44 -0
- package/src/hooks/useOverflowing.ts +28 -0
- package/src/hooks/usePortalScope.ts +68 -0
- package/src/hooks/useScrollPosition.ts +57 -0
- package/src/hooks/useTheme.ts +102 -0
- package/src/icons/ArrowCorner.tsx +7 -0
- package/src/icons/ArrowLeft.tsx +6 -0
- package/src/icons/ArrowRight.tsx +6 -0
- package/src/icons/CalendarIcon.tsx +10 -0
- package/src/icons/Check.tsx +4 -0
- package/src/icons/ChevronDown.tsx +3 -0
- package/src/icons/ChevronLeft.tsx +6 -0
- package/src/icons/ChevronRight.tsx +6 -0
- package/src/icons/Close.tsx +3 -0
- package/src/icons/Crosshair.tsx +7 -0
- package/src/icons/Lock.tsx +6 -0
- package/src/icons/Menu.tsx +4 -0
- package/src/icons/Minus.tsx +4 -0
- package/src/icons/Plus.tsx +3 -0
- package/src/icons/README.md +31 -0
- package/src/icons/StatusDanger.tsx +7 -0
- package/src/icons/StatusInfo.tsx +7 -0
- package/src/icons/StatusSuccess.tsx +10 -0
- package/src/icons/StatusWarning.tsx +7 -0
- package/src/icons/TriangleRight.tsx +7 -0
- package/src/icons/Upload.tsx +7 -0
- package/src/icons/createIcon.tsx +34 -0
- package/src/icons/index.ts +21 -0
- package/src/index.ts +87 -0
- package/src/lib/README.md +17 -0
- package/src/lib/cn.ts +34 -0
- package/src/lib/date.ts +125 -0
- package/src/lib/decor.ts +6 -0
- package/src/lib/defined.ts +9 -0
- package/src/lib/file.ts +61 -0
- package/src/lib/focus-ring.ts +11 -0
- package/src/lib/merge-refs.ts +11 -0
- package/src/styles/README.md +70 -0
- package/src/styles/index.css +25 -0
- package/src/styles/theme.css +568 -0
- package/src/styles/utilities.css +241 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* endfield-ui 母题工具类
|
|
3
|
+
*
|
|
4
|
+
* 画法与取值的依据写在 docs/design/elements/ 下的对应文档里。
|
|
5
|
+
* 这些类只画形状,不带语义:谁能切角、哪里能放斜纹,见各篇文档的"什么时候用"。
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/* ------------------------------------------------------------------ */
|
|
9
|
+
/* 斜纹:6px 方格、-45°。默认是"粗"档,用在跟随主题的条带上: */
|
|
10
|
+
/* 斜带取墨色的 5%,亮色下约等于实测的黑 5%,暗色下是比底色亮一档的浅带 */
|
|
11
|
+
/* ------------------------------------------------------------------ */
|
|
12
|
+
|
|
13
|
+
@utility hatch {
|
|
14
|
+
background-image: repeating-linear-gradient(
|
|
15
|
+
-45deg,
|
|
16
|
+
var(--hatch-color, color-mix(in srgb, var(--ef-ink) 5%, transparent)) 0
|
|
17
|
+
var(--hatch-width, 1.9px),
|
|
18
|
+
transparent 0 calc(var(--hatch-size) * 0.7071)
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* "中"档:比底色亮一档的斜带,压在深色控件上(返回按钮) */
|
|
23
|
+
@utility hatch-mid {
|
|
24
|
+
--hatch-color: var(--color-neutral-700);
|
|
25
|
+
--hatch-width: 1.5px;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* "细"档:很细的墨色斜带,填未探索的区域、最高一档的稀有度 */
|
|
29
|
+
@utility hatch-fine {
|
|
30
|
+
--hatch-color: color-mix(in srgb, var(--ef-ink) 60%, transparent);
|
|
31
|
+
--hatch-width: 0.75px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ------------------------------------------------------------------ */
|
|
35
|
+
/* 警示条纹:黄黑相间的 45° 宽条。两个主题下相同,只做 6 – 12px 高的窄条 */
|
|
36
|
+
/* ------------------------------------------------------------------ */
|
|
37
|
+
|
|
38
|
+
@utility hazard {
|
|
39
|
+
background-image: repeating-linear-gradient(
|
|
40
|
+
-45deg,
|
|
41
|
+
var(--color-signal) 0 var(--hazard-size, 12px),
|
|
42
|
+
var(--color-neutral-900) var(--hazard-size, 12px)
|
|
43
|
+
calc(var(--hazard-size, 12px) * 2)
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* ------------------------------------------------------------------ */
|
|
48
|
+
/* 切角:把矩形的一个角沿 45° 切掉。cut-sm / cut-md / cut-lg 定切口大小 */
|
|
49
|
+
/* */
|
|
50
|
+
/* clip-path 会把焦点环和阴影一起裁掉。可聚焦的元素不要直接切, */
|
|
51
|
+
/* 把切角画在伪元素的底上: */
|
|
52
|
+
/* relative isolate before:absolute before:inset-0 before:-z-10 */
|
|
53
|
+
/* before:cut-tr before:bg-action */
|
|
54
|
+
/* ------------------------------------------------------------------ */
|
|
55
|
+
|
|
56
|
+
@utility cut-* {
|
|
57
|
+
--cut: --value(--cut-*, [length]);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@utility cut-tr {
|
|
61
|
+
clip-path: polygon(
|
|
62
|
+
0 0,
|
|
63
|
+
calc(100% - var(--cut, var(--cut-md))) 0,
|
|
64
|
+
100% var(--cut, var(--cut-md)),
|
|
65
|
+
100% 100%,
|
|
66
|
+
0 100%
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
@utility cut-br {
|
|
71
|
+
clip-path: polygon(
|
|
72
|
+
0 0,
|
|
73
|
+
100% 0,
|
|
74
|
+
100% calc(100% - var(--cut, var(--cut-md))),
|
|
75
|
+
calc(100% - var(--cut, var(--cut-md))) 100%,
|
|
76
|
+
0 100%
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
@utility cut-diagonal {
|
|
81
|
+
clip-path: polygon(
|
|
82
|
+
var(--cut, var(--cut-md)) 0,
|
|
83
|
+
100% 0,
|
|
84
|
+
100% calc(100% - var(--cut, var(--cut-md))),
|
|
85
|
+
calc(100% - var(--cut, var(--cut-md))) 100%,
|
|
86
|
+
0 100%,
|
|
87
|
+
0 var(--cut, var(--cut-md))
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/* ------------------------------------------------------------------ */
|
|
92
|
+
/* 斜楔:把左右两条边斜切,文字保持正立。--wedge 是斜边的水平宽度, */
|
|
93
|
+
/* 所以倾角跟着元素的高度变(40px 高、10px 宽约 14°)。 */
|
|
94
|
+
/* 和切角一样,可聚焦的元素把它画在伪元素的底上 */
|
|
95
|
+
/* ------------------------------------------------------------------ */
|
|
96
|
+
|
|
97
|
+
@utility wedge {
|
|
98
|
+
clip-path: polygon(
|
|
99
|
+
var(--wedge, var(--cut-md)) 0,
|
|
100
|
+
100% 0,
|
|
101
|
+
calc(100% - var(--wedge, var(--cut-md))) 100%,
|
|
102
|
+
0 100%
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* 只斜切左边,右边贴边 */
|
|
107
|
+
@utility wedge-l {
|
|
108
|
+
clip-path: polygon(var(--wedge, var(--cut-md)) 0, 100% 0, 100% 100%, 0 100%);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* 只斜切右边,左边贴边 */
|
|
112
|
+
@utility wedge-r {
|
|
113
|
+
clip-path: polygon(
|
|
114
|
+
0 0,
|
|
115
|
+
100% 0,
|
|
116
|
+
calc(100% - var(--wedge, var(--cut-md))) 100%,
|
|
117
|
+
0 100%
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* ------------------------------------------------------------------ */
|
|
122
|
+
/* 角括号:四角各一个 L 形短线,用 ::after 的背景画,不占用 outline。 */
|
|
123
|
+
/* 宿主要自己定位(relative 或 absolute);括号画在宿主之外, */
|
|
124
|
+
/* 所以宿主和它的裁切祖先之间要留出 --bracket-offset 的空隙 */
|
|
125
|
+
/* ------------------------------------------------------------------ */
|
|
126
|
+
|
|
127
|
+
@utility corner-brackets {
|
|
128
|
+
&::after {
|
|
129
|
+
--_c: var(--bracket-color, var(--ef-ink));
|
|
130
|
+
--_w: var(--bracket-width, 2px);
|
|
131
|
+
--_l: var(--bracket-arm, 12px);
|
|
132
|
+
content: "";
|
|
133
|
+
position: absolute;
|
|
134
|
+
inset: calc(var(--bracket-offset, 4px) * -1);
|
|
135
|
+
pointer-events: none;
|
|
136
|
+
background:
|
|
137
|
+
linear-gradient(var(--_c) 0 0) 0 0 / var(--_l) var(--_w),
|
|
138
|
+
linear-gradient(var(--_c) 0 0) 0 0 / var(--_w) var(--_l),
|
|
139
|
+
linear-gradient(var(--_c) 0 0) 100% 0 / var(--_l) var(--_w),
|
|
140
|
+
linear-gradient(var(--_c) 0 0) 100% 0 / var(--_w) var(--_l),
|
|
141
|
+
linear-gradient(var(--_c) 0 0) 0 100% / var(--_l) var(--_w),
|
|
142
|
+
linear-gradient(var(--_c) 0 0) 0 100% / var(--_w) var(--_l),
|
|
143
|
+
linear-gradient(var(--_c) 0 0) 100% 100% / var(--_l) var(--_w),
|
|
144
|
+
linear-gradient(var(--_c) 0 0) 100% 100% / var(--_w) var(--_l);
|
|
145
|
+
background-repeat: no-repeat;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* ------------------------------------------------------------------ */
|
|
150
|
+
/* 镂空字:字形透明,只留斜纹或描边。 */
|
|
151
|
+
/* 文字颜色已经是透明的,斜纹与描边不能写 currentColor, */
|
|
152
|
+
/* 要换颜色就在容器上给 --ghost-ink */
|
|
153
|
+
/* ------------------------------------------------------------------ */
|
|
154
|
+
|
|
155
|
+
@utility ghost-hatch {
|
|
156
|
+
color: transparent;
|
|
157
|
+
background-image: repeating-linear-gradient(
|
|
158
|
+
-45deg,
|
|
159
|
+
var(--ghost-ink, var(--ef-ink)) 0 0.75px,
|
|
160
|
+
transparent 0 calc(var(--hatch-size) * 0.7071)
|
|
161
|
+
);
|
|
162
|
+
-webkit-background-clip: text;
|
|
163
|
+
background-clip: text;
|
|
164
|
+
opacity: 0.6;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
@utility ghost-outline {
|
|
168
|
+
color: transparent;
|
|
169
|
+
-webkit-text-stroke: 1.5px
|
|
170
|
+
var(--ghost-ink, color-mix(in srgb, var(--ef-ink) 22%, transparent));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* ------------------------------------------------------------------ */
|
|
174
|
+
/* 底纹:点阵、工程网格、等高线。一个视口选一种,画在独立的装饰层上, */
|
|
175
|
+
/* 不要让它穿过正文。颜色都取墨色的一个比例,跟着主题走 */
|
|
176
|
+
/* ------------------------------------------------------------------ */
|
|
177
|
+
|
|
178
|
+
/* 点阵:印刷网点。用在面上(弹窗内容区、空状态的背景),窄条用斜纹 */
|
|
179
|
+
@utility dot-grid {
|
|
180
|
+
background-image: radial-gradient(
|
|
181
|
+
circle,
|
|
182
|
+
var(--dot-color, color-mix(in srgb, var(--ef-ink) 10%, transparent))
|
|
183
|
+
var(--dot-size, 1px),
|
|
184
|
+
transparent calc(var(--dot-size, 1px) + 0.5px)
|
|
185
|
+
);
|
|
186
|
+
background-size: var(--dot-gap, 16px) var(--dot-gap, 16px);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/* 工程网格:大间距的细线,必须弱于界面里任何一条真实的线 */
|
|
190
|
+
@utility blueprint-grid {
|
|
191
|
+
--_g: var(--grid-color, color-mix(in srgb, var(--ef-ink) 6%, transparent));
|
|
192
|
+
background-image:
|
|
193
|
+
linear-gradient(var(--_g) 1px, transparent 1px),
|
|
194
|
+
linear-gradient(90deg, var(--_g) 1px, transparent 1px);
|
|
195
|
+
background-size: var(--grid-gap, 72px) var(--grid-gap, 72px);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/*
|
|
199
|
+
* 等高线:八圈原创的闭合曲线,圈距不均匀、一侧贴近。贴在右下角被容器截断,
|
|
200
|
+
* 朝左上方淡出;要放到别的角,把这一层翻转(-scale-x-100、-scale-y-100)。
|
|
201
|
+
* 曲线是遮罩,颜色由底色给——所以它会把元素自己的内容一起遮掉,
|
|
202
|
+
* 只能用在空的装饰层上(<Texture variant="contour" /> 就是)
|
|
203
|
+
*/
|
|
204
|
+
@utility contour {
|
|
205
|
+
background-color: var(
|
|
206
|
+
--contour-color,
|
|
207
|
+
color-mix(in srgb, var(--ef-ink) 18%, transparent)
|
|
208
|
+
);
|
|
209
|
+
-webkit-mask: var(--contour-image) var(--contour-position, 100% 100%) /
|
|
210
|
+
var(--contour-size, 30rem) no-repeat;
|
|
211
|
+
mask: var(--contour-image) var(--contour-position, 100% 100%) /
|
|
212
|
+
var(--contour-size, 30rem) no-repeat;
|
|
213
|
+
/* 曲线本体。一行很长,所以放在最后;想换成自己的图就覆盖这个变量 */
|
|
214
|
+
--contour-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 480' fill='none'%3E%3Cdefs%3E%3CradialGradient id='f' gradientUnits='userSpaceOnUse' cx='480' cy='480' r='480'%3E%3Cstop offset='.5' stop-color='%23000'/%3E%3Cstop offset='1' stop-color='%23000' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath stroke='url(%23f)' vector-effect='non-scaling-stroke' d='M358 338C359 343 356 350 353 355C350 359 344 363 340 365C335 368 330 369 325 370C320 371 315 370 311 369C307 368 302 365 299 362C296 359 293 355 291 351C288 347 285 343 283 338C282 333 280 326 281 320C283 315 288 308 292 306C297 303 305 304 311 305C316 306 320 311 324 313C328 314 331 315 335 317C339 319 345 320 349 323C353 327 357 333 358 338ZM398 333C399 343 394 355 389 364C383 372 373 378 364 383C356 387 347 390 338 391C330 393 320 392 312 389C304 387 297 382 291 376C284 371 280 364 275 357C270 350 265 342 262 333C259 324 255 311 258 301C261 291 269 279 278 274C287 270 302 272 311 274C321 276 328 283 336 286C343 290 348 291 356 295C363 298 374 300 381 306C388 312 397 323 398 333ZM455 328C457 344 448 366 439 380C429 393 412 403 398 411C384 419 369 425 355 427C340 429 324 427 310 422C297 418 285 409 274 400C264 391 256 381 248 369C240 357 232 344 227 328C222 312 215 290 220 274C224 258 238 237 253 229C268 222 293 226 309 229C326 232 338 244 350 249C362 255 371 258 384 263C396 269 414 272 426 283C438 294 453 312 455 328ZM491 323C494 343 482 369 471 386C459 403 437 415 420 424C403 434 385 443 367 445C349 447 329 444 313 439C296 433 281 423 268 412C255 401 244 388 235 373C225 358 216 342 211 323C205 304 196 277 201 256C206 236 223 210 242 201C260 192 291 198 311 202C331 206 346 219 361 226C376 233 387 236 403 243C418 250 439 254 454 268C469 281 488 303 491 323ZM565 318C570 346 552 385 535 409C518 433 487 449 462 463C437 477 412 491 386 495C361 498 332 492 308 484C285 476 263 461 245 445C226 430 209 412 195 391C181 369 170 346 162 318C154 290 140 252 147 222C155 193 179 155 206 142C232 129 278 139 307 145C335 151 356 168 378 178C400 188 416 193 438 203C460 213 489 220 510 239C531 258 561 290 565 318ZM655 313C661 352 636 405 612 438C588 471 545 491 511 511C477 531 443 551 409 556C374 561 334 551 301 539C269 528 240 508 214 487C188 466 164 442 145 413C126 384 113 352 102 313C92 274 71 222 81 182C90 142 124 89 160 72C197 54 260 69 299 77C339 86 367 108 397 120C427 133 449 141 479 155C509 169 547 179 577 205C606 232 649 274 655 313ZM757 308C765 359 730 428 699 471C667 514 610 540 566 566C522 593 479 622 433 628C388 634 335 619 293 604C250 588 213 562 179 535C144 508 110 478 86 440C62 402 47 359 33 308C20 257 -9 189 3 136C15 83 59 13 107 -9C155 -32 238 -9 290 1C342 12 379 38 418 55C457 71 486 82 525 101C564 120 613 133 651 168C690 202 749 257 757 308ZM886 303C897 369 850 460 808 515C766 571 692 604 634 638C577 673 522 715 463 723C404 731 335 708 279 687C224 666 177 634 131 598C86 563 39 525 8 476C-23 427 -39 369 -56 303C-74 237 -114 148 -98 79C-83 10 -26 -83 36 -112C99 -141 209 -108 276 -94C344 -80 391 -49 443 -28C494 -7 533 7 583 32C633 57 694 76 744 121C795 166 876 237 886 303Z'/%3E%3C/svg%3E");
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/* ------------------------------------------------------------------ */
|
|
218
|
+
/* 竖条变箭头:同一个元素的 clip-path 在两个四点多边形之间过渡 */
|
|
219
|
+
/* 顶点数必须相同才能插值,所以三角形写成四个点(最后两个重合) */
|
|
220
|
+
/* ------------------------------------------------------------------ */
|
|
221
|
+
|
|
222
|
+
@utility marker-bar {
|
|
223
|
+
clip-path: polygon(
|
|
224
|
+
0 0,
|
|
225
|
+
var(--marker-bar, 3px) 0,
|
|
226
|
+
var(--marker-bar, 3px) 100%,
|
|
227
|
+
0 100%
|
|
228
|
+
);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
@utility marker-arrow {
|
|
232
|
+
clip-path: polygon(0 20%, 100% 50%, 0 80%, 0 80%);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/* ------------------------------------------------------------------ */
|
|
236
|
+
/* 菱形表单符号(方案 B)的开关:和主题一样写在 <html> 或局部容器上, */
|
|
237
|
+
/* <html data-choice="diamond"> */
|
|
238
|
+
/* 复选与单选一起换成菱形。全库选一套,不要和方形混用 */
|
|
239
|
+
/* ------------------------------------------------------------------ */
|
|
240
|
+
|
|
241
|
+
@custom-variant choice-diamond (&:where([data-choice="diamond"], [data-choice="diamond"] *));
|