@q1travel/design-system 0.17.2 → 0.18.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.
@@ -14,10 +14,10 @@ colors:
14
14
  secondary: "#a0a0a0"
15
15
  tertiary: "#006efe"
16
16
  neutral: "#1a1a1a"
17
- background-100: "#0a0a0a"
17
+ background-100: "#121212"
18
18
  background-200: "#000000"
19
19
  text-primary: "#ededed"
20
- text-secondary: "#a0a0a0"
20
+ text-secondary: "#b4b4b4"
21
21
  text-muted: "#8f8f8f"
22
22
  brand-preview-light-bg: "#ffffff"
23
23
  brand-preview-light-fg: "#171717"
@@ -25,15 +25,16 @@ colors:
25
25
  brand-preview-dark-fg: "#ededed"
26
26
  mask-visible: "#ffffff"
27
27
  mask-opaque: "#000000"
28
+ gray-50: "#161616"
28
29
  gray-100: "#1a1a1a"
29
- gray-200: "#1f1f1f"
30
- gray-300: "#292929"
31
- gray-400: "#2e2e2e"
32
- gray-500: "#454545"
33
- gray-600: "#878787"
34
- gray-700: "#8f8f8f"
35
- gray-800: "#7d7d7d"
36
- gray-900: "#a0a0a0"
30
+ gray-200: "#222222"
31
+ gray-300: "#2b2b2b"
32
+ gray-400: "#333333"
33
+ gray-500: "#585858"
34
+ gray-600: "#7d7d7d"
35
+ gray-700: "#878787"
36
+ gray-800: "#8f8f8f"
37
+ gray-900: "#b4b4b4"
37
38
  gray-1000: "#ededed"
38
39
  primary-100: "#15103a"
39
40
  primary-200: "#1a1547"
@@ -122,28 +123,47 @@ semantic-colors:
122
123
  action-on-primary: "#ffffff"
123
124
  action-text: "{colors.primary-900}"
124
125
  surface-canvas: "{colors.background-100}"
125
- surface-subtle: "{colors.gray-100}"
126
- surface-panel: "{colors.background-100}"
126
+ surface-subtle: "{colors.gray-50}"
127
+ surface-panel: "{colors.gray-100}"
128
+ surface-sunken: "{colors.gray-50}"
129
+ surface-raised: "{colors.gray-200}"
130
+ surface-overlay: "{colors.gray-300}"
131
+ surface-hover: "color-mix(in srgb, var(--q1-color-text-primary) 6%, transparent)"
132
+ surface-selected: "#1f1e38"
133
+ surface-inverse: "{colors.gray-1000}"
134
+ text-on-inverse: "#0a0a0a"
127
135
  surface-media: "#0a0a0a"
128
136
  text-on-media: "#ffffff"
129
- border: "{colors.gray-200}"
137
+ border: "{colors.gray-400}"
130
138
  border-strong: "{colors.gray-400}"
131
- border-subtle: "#1f1f1f"
139
+ border-active: "{colors.primary-900}"
140
+ border-subtle: "#2a2a2a"
132
141
  text-primary: "{colors.text-primary}"
133
142
  text-secondary: "{colors.text-secondary}"
134
143
  text-muted: "{colors.text-muted}"
135
144
  text-soft: "#9a9a9c"
145
+ text-disabled: "{colors.gray-500}"
136
146
  overlay-scrim: "rgba(2, 6, 23, 0.44)"
137
147
  selection-background: "{colors.text-primary}"
138
148
  selection-foreground: "{colors.background-100}"
139
- focus-ring: "{colors.primary}"
140
- focus: "{colors.primary-700}"
149
+ focus-ring: "{colors.primary-900}"
150
+ focus: "{colors.primary-900}"
141
151
  status-success: "{colors.green-900}"
152
+ status-success-text: "{colors.green-900}"
153
+ status-success-surface: "{colors.green-100}"
154
+ status-success-border: "#255a2f"
142
155
  status-warning: "{colors.amber-700}"
156
+ status-warning-text: "#fac053"
157
+ status-warning-surface: "{colors.amber-100}"
158
+ status-warning-border: "#754b10"
143
159
  status-danger: "{colors.red-900}"
144
- status-danger-text: "#ef5350"
160
+ status-danger-text: "#f97770"
145
161
  status-danger-surface: "{colors.red-100}"
146
- status-danger-border: "#ef5350"
162
+ status-danger-border: "#7e2f31"
163
+ status-info: "{colors.blue-900}"
164
+ status-info-text: "{colors.blue-900}"
165
+ status-info-surface: "{colors.blue-100}"
166
+ status-info-border: "#194f81"
147
167
  typography:
148
168
  heading-72:
149
169
  fontFamily: Noto Sans SC
@@ -25,9 +25,10 @@ colors:
25
25
  brand-preview-dark-fg: "#ededed"
26
26
  mask-visible: "#ffffff"
27
27
  mask-opaque: "#000000"
28
+ gray-50: "#fafafa"
28
29
  gray-100: "#f2f2f2"
29
- gray-200: "#ebebeb"
30
- gray-300: "#e6e6e6"
30
+ gray-200: "#eeeeee"
31
+ gray-300: "#ebebeb"
31
32
  gray-400: "#eaeaea"
32
33
  gray-500: "#c9c9c9"
33
34
  gray-600: "#a8a8a8"
@@ -124,26 +125,45 @@ semantic-colors:
124
125
  surface-canvas: "{colors.background-100}"
125
126
  surface-subtle: "{colors.background-200}"
126
127
  surface-panel: "{colors.background-100}"
128
+ surface-sunken: "{colors.background-100}"
129
+ surface-raised: "{colors.background-100}"
130
+ surface-overlay: "{colors.background-100}"
131
+ surface-hover: "color-mix(in srgb, var(--q1-color-text-primary) 4%, transparent)"
132
+ surface-selected: "{colors.primary-100}"
133
+ surface-inverse: "{colors.gray-1000}"
134
+ text-on-inverse: "{colors.background-100}"
127
135
  surface-media: "#0a0a0a"
128
136
  text-on-media: "#ffffff"
129
137
  border: "{colors.gray-400}"
130
138
  border-strong: "{colors.gray-500}"
139
+ border-active: "{colors.primary-700}"
131
140
  border-subtle: "rgba(203, 213, 225, 0.82)"
132
141
  text-primary: "{colors.text-primary}"
133
142
  text-secondary: "{colors.text-secondary}"
134
143
  text-muted: "{colors.text-muted}"
135
144
  text-soft: "#6e6e73"
145
+ text-disabled: "#b7b7b7"
136
146
  overlay-scrim: "rgba(2, 6, 23, 0.44)"
137
147
  selection-background: "{colors.text-primary}"
138
148
  selection-foreground: "{colors.background-100}"
139
149
  focus-ring: "{colors.primary}"
140
150
  focus: "{colors.primary-700}"
141
151
  status-success: "{colors.green-700}"
152
+ status-success-text: "{colors.green-900}"
153
+ status-success-surface: "{colors.green-100}"
154
+ status-success-border: "#a8d9ad"
142
155
  status-warning: "{colors.amber-900}"
156
+ status-warning-text: "{colors.amber-900}"
157
+ status-warning-surface: "{colors.amber-100}"
158
+ status-warning-border: "#edc47d"
143
159
  status-danger: "{colors.red-700}"
144
- status-danger-text: "#d32f2f"
160
+ status-danger-text: "#c62828"
145
161
  status-danger-surface: "{colors.red-100}"
146
- status-danger-border: "#d32f2f"
162
+ status-danger-border: "#f5b9b8"
163
+ status-info: "{colors.blue-700}"
164
+ status-info-text: "#0064b8"
165
+ status-info-surface: "{colors.blue-100}"
166
+ status-info-border: "#abcff0"
147
167
  typography:
148
168
  heading-72:
149
169
  fontFamily: Noto Sans SC
@@ -96,7 +96,9 @@ Examples:
96
96
 
97
97
  `--q1-color-status-danger` is the bright red for fills and strokes only; use `--q1-color-status-danger-text` for text and weak notices without an underline. `--q1-color-status-danger-surface` and `--q1-color-status-danger-border` keep the background and stroke roles separate. `--q1-color-text-soft`, `--q1-color-border-subtle`, and `--q1-color-overlay-scrim` cover tertiary text, quiet separators, and overlay scrims.
98
98
 
99
- `--q1-color-focus` resolves to `--q1-color-primary-700`. `--q1-shadow-focus` draws a 1px canvas contrast ring and a 3px focus color ring, keeping keyboard focus visible against a purple control or dark surface. `--q1-shadow-focus-danger` remains the field family's invalid-control ring and does not change with this focus-ring migration.
99
+ `--q1-color-focus` resolves to `--q1-color-primary-700` in light mode and `--q1-color-primary-900` in dark mode. `--q1-shadow-focus` draws a 2px canvas gap and a 2px focus ring for controls that use a shadow. Button-family controls use a 2px outline with a 2px offset; inputs use `--q1-color-border-active` plus a 1px inset stroke and the gapless translucent `--q1-shadow-focus-input` glow for pointer and keyboard focus. Invalid inputs use `--q1-shadow-focus-input-danger` for a red inset stroke and glow. Text links keep a fine underline at rest, deepen it on hover, and use a 3px focus-color underline for keyboard focus. Forced colors use a system Highlight outline.
100
+
101
+ Migration: `--q1-color-bg-panel` remains `#ffffff` in light mode and changes from `#0a0a0a` to `#1a1a1a` in dark mode. The dark canvas, raised surface, and overlay now use `#121212`, `#222222`, and `#2b2b2b`. Downstream overrides that manually raised panel or overlay backgrounds should be reviewed. `--q1-shadow-focus` keeps a canvas gap and uses a 2px focus ring; input focus adds a 1px inset stroke while preserving the translucent glow. Consumers with custom focus visuals should update their screenshots and forced-colors fallback. The unused `--q1-shadow-card` name is removed before release.
100
102
 
101
103
  ### Component Tokens
102
104