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 +210 -0
- package/LICENSE +21 -0
- package/README.md +474 -0
- package/foundations/assets/fonts/geist-mono-latin-ext-v5.woff2 +0 -0
- package/foundations/assets/fonts/geist-mono-latin-v5.woff2 +0 -0
- package/foundations/assets/fonts/geist-sans-latin-ext-v5.woff2 +0 -0
- package/foundations/assets/fonts/geist-sans-latin-v5.woff2 +0 -0
- package/foundations/tokens/fonts.css +5 -0
- package/foundations/tokens/primitives.css +187 -0
- package/foundations/tokens/print.css +20 -0
- package/foundations/tokens/semantic.css +51 -0
- package/foundations/tokens-studio/$metadata.json +9 -0
- package/foundations/tokens-studio/$themes.json +14 -0
- package/foundations/tokens-studio/README.md +58 -0
- package/foundations/tokens-studio/primitives/color.json +109 -0
- package/foundations/tokens-studio/primitives/typography.json +56 -0
- package/foundations/tokens-studio/semantic/color.json +42 -0
- package/foundations/tokens-studio/semantic/typography.json +25 -0
- package/foundations/tokens-studio/themes/dark.json +42 -0
- package/package.json +50 -0
- package/website/README.md +41 -0
- package/website/zilliz/DESIGN.md +191 -0
- package/website/zilliz/layout.css +71 -0
- package/website/zilliz/skin/dark.css +140 -0
- package/website/zilliz/skin/light.css +65 -0
- package/website/zilliz/styles-light.css +13 -0
- package/website/zilliz/styles.css +10 -0
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.
|