zilliz-design-system 1.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/DESIGN.md ADDED
@@ -0,0 +1,210 @@
1
+ ---
2
+ version: 0.1
3
+ name: Zilliz Foundations
4
+ description: The visual foundation shared by every product line. Any agent writing Zilliz UI reads this first for exact values. For the Zilliz site, also read website/zilliz/DESIGN.md.
5
+ omitted:
6
+ - section: components
7
+ reason: Component appearance diverges per product line — see each line's own DESIGN.md (website/zilliz/DESIGN.md and so on)
8
+ colors:
9
+ neutral-950: "#0e0e0e"
10
+ neutral-935: "#111111"
11
+ neutral-905: "#171717"
12
+ neutral-890: "#1a1a1a"
13
+ neutral-875: "#1d1d1d"
14
+ neutral-865: "#202123"
15
+ neutral-855: "#222222"
16
+ neutral-845: "#242422"
17
+ neutral-835: "#262626"
18
+ neutral-815: "#2a2a2a"
19
+ neutral-810: "#2b2b2b"
20
+ neutral-795: "#2e2e2e"
21
+ neutral-775: "#333333"
22
+ neutral-760: "#363637"
23
+ neutral-690: "#484848"
24
+ neutral-620: "#595959"
25
+ neutral-600: "#5d5d5d"
26
+ neutral-595: "#5e5e5e"
27
+ neutral-580: "#61626d"
28
+ neutral-540: "#6c6c6c"
29
+ neutral-410: "#8a8f98"
30
+ neutral-240: "#b9bbc1"
31
+ neutral-050: "#f1f1f1"
32
+ neutral-020: "#fafafa"
33
+ neutral-000: "#ffffff"
34
+ cyan-100: "#d6ffff"
35
+ cyan-300: "#97fdff"
36
+ cyan-500: "#5bdfe1"
37
+ warm-50: "#fdfcfa"
38
+ warm-100: "#faf9f6"
39
+ warm-200: "#f5f3ee"
40
+ warm-300: "#e8e4dc"
41
+ warm-400: "#ddd8ce"
42
+ warm-900: "#c0bbb5"
43
+ ink-400: "#a8a29e"
44
+ ink-500: "#78716c"
45
+ ink-600: "#57534e"
46
+ ink-700: "#44403c"
47
+ ink-900: "#1c1917"
48
+ blue-100: "#e1eeff"
49
+ blue-650: "#3f46ff"
50
+ blue-800: "#181eca"
51
+ teal-300: "#5eead4"
52
+ teal-700: "#0f7668"
53
+ danger: "#ec4e4e"
54
+ warning: "#ffc300"
55
+ success: "#4caf50"
56
+ info: "#00b3ff"
57
+ typography:
58
+ heading:
59
+ fontFamily: "Geist, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif"
60
+ fontWeight: 500
61
+ fontSize: "36px"
62
+ lineHeight: "44px"
63
+ body:
64
+ fontFamily: "Geist, -apple-system, BlinkMacSystemFont, Segoe UI, Arial, sans-serif"
65
+ fontWeight: 400
66
+ fontSize: "16px"
67
+ lineHeight: "22px"
68
+ mono:
69
+ fontFamily: "Geist Mono, ui-monospace, SFMono-Regular, monospace"
70
+ fontSize: "14px"
71
+ lineHeight: "20px"
72
+ spacing:
73
+ 1: "4px"
74
+ 2: "8px"
75
+ 3: "12px"
76
+ 4: "16px"
77
+ 5: "20px"
78
+ 6: "24px"
79
+ 8: "32px"
80
+ 10: "40px"
81
+ 12: "50px"
82
+ rounded:
83
+ xs: "2px"
84
+ sm: "6px"
85
+ md: "8px"
86
+ lg: "12px"
87
+ xl: "24px"
88
+ pill: "36px"
89
+ ---
90
+
91
+ ## Overview
92
+
93
+ This file is the **L1 foundation**: the scales and role names shared by every Zilliz
94
+ product line. It **does not define what any component looks like**, and it **does not
95
+ define where any colour is used** — that is each line's own business.
96
+
97
+ How the two layers divide:
98
+
99
+ | Layer | Directory | Covered here |
100
+ | --- | --- | --- |
101
+ | L1 scales + roles | `foundations/` | ✅ entirely |
102
+ | L2 per-line appearance | `website/{zilliz,milvus,doc}/` `cloud/` `collateral/` | ❌ see each line's own DESIGN.md |
103
+ | Interaction + a11y rules | `foundations/interaction.md` | ❌ the DESIGN.md format has no place for behaviour |
104
+
105
+ **One rule: components may only reference `--ds-*` role names. Never a raw ramp value,
106
+ never a hard-coded hex.**
107
+
108
+ ## Colors
109
+
110
+ The `colors` in the front matter above are **ramps**, not a palette — they carry values,
111
+ not usage. **Do not use them directly in a component.** Components use role names, which
112
+ each line's skin assigns:
113
+
114
+ | Group | Roles |
115
+ | --- | --- |
116
+ | Surfaces | `--ds-surface-page` `-raised` `-overlay` `-sunken` `-hover` `-active` `-tab-group` |
117
+ | Text | `--ds-text-primary` `-secondary` `-muted` `-faint` `-inverse` `-code` |
118
+ | Borders | `--ds-border-subtle` `-default` `-strong` `-hover` `-focus` |
119
+ | Accent | `--ds-accent` `-hover` `-subtle` `-on` `-glow` |
120
+ | Status | `--ds-danger` `--ds-warning` `--ds-success` `--ds-info` |
121
+
122
+ **Status colours are shared across lines with identical values** — they are the only four
123
+ entries in `colors` that may be used as final values. Every other role gets its value in
124
+ `website/zilliz/skin/dark.css`, `website/zilliz/skin/light.css`, `cloud/skin/light.css`
125
+ and so on.
126
+
127
+ `--ds-border-focus` is a **new role**. Only `FeatureCard` has a focus ring today; every new
128
+ component must implement one — see `foundations/interaction.md`.
129
+
130
+ ⚠️ The ramps contain near-duplicates (`neutral-600` / `-595`, `neutral-815` / `-810`).
131
+ They are an inventory of what the site actually uses, not an ideal scale. **Do not add new
132
+ greys** — pick the nearest existing step.
133
+
134
+ ### Never mix cold and warm greys
135
+
136
+ L1 carries **two neutral families**, one per skin. **They must never be crossed:**
137
+
138
+ | Ramp | Hue | Used by |
139
+ | --- | --- | --- |
140
+ | `--z-neutral-*` | Cold grey, near-black to white | Dark skins (the site today) |
141
+ | `--z-warm-*` + `--z-ink-*` | Warm grey, yellow-leaning white to warm ink | Light skins |
142
+
143
+ The same applies to accents: dark skins use `--z-cyan-*`, **light skins use `--z-blue-*`**
144
+ (`#97fdff` has too little contrast on warm white to serve as a CTA). Where you need the
145
+ same brand voice but legible on light — code, terminal, CLI — use `--z-teal-*`.
146
+
147
+ ## Typography
148
+
149
+ Geist for everything, Geist Mono for commands, terminal chrome and inline shell.
150
+ **There is no third typeface.**
151
+
152
+ Two scales coexist:
153
+ - **`new-h1…h6`** (60/70 -> 24/30) and **`new-body1…6`** (20/26 -> 12/16) — this is the
154
+ preferred set
155
+ - Each line's own one-off sizes — **these are not L1**; they live in that line's layout file
156
+
157
+ Weights: 500 by default, 400 for prose, 600 for card titles, and 700 only on the Zilliz
158
+ site hero. Tracking is near zero; `--z-tracking-tag` (0.1em) is the **only** tracking
159
+ allowed with all caps, and only on eyebrows and tags.
160
+
161
+ ## Layout
162
+
163
+ Spacing comes only from the `spacing` steps. `4` (16px) is the default gap between
164
+ elements.
165
+ **Container width, section rhythm and header height are not L1** — they vary by medium and
166
+ live in each line's layout file.
167
+
168
+ ## Elevation & Depth
169
+
170
+ **Depth comes from borders and value steps, not blur.** The shadow steps L1 offers, for
171
+ lines to use as needed:
172
+
173
+ | Token | Value | Where |
174
+ | --- | --- | --- |
175
+ | `--z-shadow-input` | `0 1px 2px rgba(33,37,44,.08)` | Inputs |
176
+ | `--z-shadow-terminal` | `0 24px 24px rgba(0,0,0,.15)` | Large raised surfaces |
177
+ | `--z-shadow-menu` | `12px 24px 24px rgba(0,0,0,.25)` | Flyout menus |
178
+ | `--z-shadow-dropdown` | `0 8px 20px rgba(0,0,0,.4)` | Dropdowns |
179
+
180
+ Motion durations are L1 too: `--z-dur-fast` .15s / `--z-dur` .2s / `--z-dur-slow` .3s,
181
+ easing `linear`. **No bounce, no spring.**
182
+
183
+ ## Shapes
184
+
185
+ `rounded.lg` (12px) is the default card radius, `rounded.md` (8px) the default control
186
+ radius. `pill` (36px) is for buttons only. Borders are **1px everywhere**.
187
+
188
+ ## Components
189
+
190
+ `omitted` — see the front matter. Component appearance diverges per product line; for the
191
+ Zilliz site read `website/zilliz/DESIGN.md`.
192
+
193
+ ## Do's and Don'ts
194
+
195
+ **Do**
196
+
197
+ - Always reference colours through `--ds-*` role names
198
+ - When you need a new gap, pick the nearest existing `spacing` step
199
+ - To de-emphasise text use `--ds-text-muted`; never dial down opacity yourself
200
+ - Every newly written interactive component must implement the `--ds-border-focus` ring
201
+ - Copy rules are in `foundations/voice.md`, icon rules in `foundations/icon.md` — both are
202
+ L1 and **equally binding**
203
+
204
+ **Don't**
205
+
206
+ - ❌ Never hard-code a hex value in a component
207
+ - ❌ Never reference the `--z-neutral-*` / `--z-cyan-*` ramps directly
208
+ - ❌ Never add a new type size, a new grey, or a new accent hue
209
+ - ❌ Never add a components section to this file — that belongs to L2
210
+ - ❌ A line's DESIGN.md **may not redefine** a token name that already exists here
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Zilliz
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.