@q1travel/design-system 0.30.8 → 0.30.9

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.
@@ -175,6 +175,7 @@ semantic-colors:
175
175
  auth-text-secondary: "#d1d5db"
176
176
  auth-text-muted: "#9ca3af"
177
177
  auth-border-strong: "#343943"
178
+ auth-border-control: "#616b7b"
178
179
  auth-surface-card: "#17191d"
179
180
  auth-surface-subtle: "#101216"
180
181
  auth-surface-input: "#101216"
@@ -175,6 +175,7 @@ semantic-colors:
175
175
  auth-text-secondary: "#273951"
176
176
  auth-text-muted: "#64748d"
177
177
  auth-border-strong: "#d6dde6"
178
+ auth-border-control: "#8290a3"
178
179
  auth-surface-card: "#ffffff"
179
180
  auth-surface-subtle: "#f8fafc"
180
181
  auth-surface-input: "#ffffff"
@@ -135,7 +135,8 @@ Shipped domain palette (owner-approved 2026-10-13): `auth`, the cool blue-gray p
135
135
  | `--q1-color-auth-text-primary` | `#061b31` | `#f3f4f6` | Headings |
136
136
  | `--q1-color-auth-text-secondary` | `#273951` | `#d1d5db` | Body copy |
137
137
  | `--q1-color-auth-text-muted` | `#64748d` | `#9ca3af` | Supporting notes |
138
- | `--q1-color-auth-border-strong` | `#d6dde6` | `#343943` | Card and input borders |
138
+ | `--q1-color-auth-border-strong` | `#d6dde6` | `#343943` | Card borders and dividers |
139
+ | `--q1-color-auth-border-control` | `#8290a3` | `#616b7b` | Enabled input and selection control boundaries; at least 3:1 against auth input, card and subtle surfaces |
139
140
  | `--q1-color-auth-surface-card` | `#ffffff` | `#17191d` | Card |
140
141
  | `--q1-color-auth-surface-subtle` | `#f8fafc` | `#101216` | Preview area |
141
142
  | `--q1-color-auth-surface-input` | `#ffffff` | `#101216` | Input background |
@@ -185,6 +185,7 @@
185
185
  --q1-color-auth-text-secondary: #273951;
186
186
  --q1-color-auth-text-muted: #64748d;
187
187
  --q1-color-auth-border-strong: #d6dde6;
188
+ --q1-color-auth-border-control: #8290a3;
188
189
  --q1-color-auth-surface-card: #ffffff;
189
190
  --q1-color-auth-surface-subtle: #f8fafc;
190
191
  --q1-color-auth-surface-input: #ffffff;
@@ -526,6 +527,7 @@
526
527
  --q1-color-auth-text-secondary: #d1d5db;
527
528
  --q1-color-auth-text-muted: #9ca3af;
528
529
  --q1-color-auth-border-strong: #343943;
530
+ --q1-color-auth-border-control: #616b7b;
529
531
  --q1-color-auth-surface-card: #17191d;
530
532
  --q1-color-auth-surface-subtle: #101216;
531
533
  --q1-color-auth-surface-input: #101216;
@@ -610,6 +612,11 @@
610
612
  text-decoration: none;
611
613
  }
612
614
 
615
+ /* 暗色控件边界独立于表面分隔线;变体与选中/忙态仍由各自配方覆盖。 */
616
+ :where(:root[data-theme='dark'], [data-q1-theme='dark']) .button:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)) {
617
+ border-color: var(--q1-color-border-control);
618
+ }
619
+
613
620
  /* 文字槽包住内容与粗指针命中区:自身沿用按钮的行内排布与间距,图标与文字之间的 gap 不因包裹而丢失。 */
614
621
  .button__text {
615
622
  display: inline-flex;
@@ -778,6 +785,10 @@
778
785
  background: var(--q1-color-bg-hover);
779
786
  }
780
787
 
788
+ :where(:root[data-theme='dark'], [data-q1-theme='dark']) .button:not(:where([data-q1-theme='light'], [data-q1-theme='light'] *)):not(.button--primary):not(.button--ghost):not(.button--danger):not(.button--warning):not(.button--selected):not(:disabled):not([aria-disabled='true']):hover {
789
+ border-color: var(--q1-color-gray-800);
790
+ }
791
+
781
792
  .button--primary:not(.button--icon):not(.button--selected):not(:disabled):not([aria-disabled='true']):hover {
782
793
  border-color: transparent;
783
794
  background: var(--q1-color-action-primary-hover);
@@ -169,6 +169,7 @@
169
169
  --q1-color-auth-text-secondary: #273951;
170
170
  --q1-color-auth-text-muted: #64748d;
171
171
  --q1-color-auth-border-strong: #d6dde6;
172
+ --q1-color-auth-border-control: #8290a3;
172
173
  --q1-color-auth-surface-card: #ffffff;
173
174
  --q1-color-auth-surface-subtle: #f8fafc;
174
175
  --q1-color-auth-surface-input: #ffffff;
@@ -494,6 +495,7 @@
494
495
  --q1-color-auth-text-secondary: #d1d5db;
495
496
  --q1-color-auth-text-muted: #9ca3af;
496
497
  --q1-color-auth-border-strong: #343943;
498
+ --q1-color-auth-border-control: #616b7b;
497
499
  --q1-color-auth-surface-card: #17191d;
498
500
  --q1-color-auth-surface-subtle: #101216;
499
501
  --q1-color-auth-surface-input: #101216;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@q1travel/design-system",
3
- "version": "0.30.8",
3
+ "version": "0.30.9",
4
4
  "description": "React components, design tokens, and interface contracts for q1travel products.",
5
5
  "keywords": [
6
6
  "react",
@@ -53,7 +53,7 @@
53
53
  "preview": "vite preview --host 127.0.0.1",
54
54
  "check:shell": "npm run sync:contracts && node scripts/check-shell.mjs && node scripts/check-token-package.mjs && npm run check:release-provenance",
55
55
  "check:browser:strictmode": "node scripts/check-browser.mjs --strictmode-ref",
56
- "check:browser": "node --test scripts/devtools-connection.test.mjs scripts/browser-exit-deadline.test.mjs scripts/chromium-teardown.test.mjs scripts/vite-server-lifecycle.test.mjs scripts/chromium-launch.test.mjs scripts/chromium-recovery.test.mjs scripts/chromium-ownership.test.mjs scripts/cdp-recovery.test.mjs && npm run check:browser:strictmode && node scripts/check-browser.mjs --note && node scripts/check-browser.mjs && node scripts/check-clearable-input-browser.mjs && node scripts/check-calendar-browser.mjs && node scripts/check-banner-browser.mjs && node scripts/check-button-link-browser.mjs && node scripts/check-button-browser.mjs && node scripts/check-trailing-icon-padding-browser.mjs && node scripts/check-overlay-theme-browser.mjs && node scripts/check-browser-component-browser.mjs",
56
+ "check:browser": "node --test scripts/devtools-connection.test.mjs scripts/browser-exit-deadline.test.mjs scripts/chromium-teardown.test.mjs scripts/vite-server-lifecycle.test.mjs scripts/chromium-launch.test.mjs scripts/chromium-recovery.test.mjs scripts/chromium-ownership.test.mjs scripts/cdp-recovery.test.mjs && npm run check:browser:strictmode && node scripts/check-browser.mjs --note && node scripts/check-browser.mjs --combobox-panel && node scripts/check-browser.mjs && node scripts/check-clearable-input-browser.mjs && node scripts/check-calendar-browser.mjs && node scripts/check-banner-browser.mjs && node scripts/check-button-link-browser.mjs && node scripts/check-button-browser.mjs && node scripts/check-trailing-icon-padding-browser.mjs && node scripts/check-overlay-theme-browser.mjs && node scripts/check-browser-component-browser.mjs",
57
57
  "check:package-api": "node scripts/check-package-api.mjs && node --test scripts/check-combobox-required.test.mjs scripts/check-multi-combobox-contract.test.mjs && node --test scripts/check-q1-design-lint.test.mjs scripts/check-q1-design-bin-entry.test.mjs && node --test scripts/check-json-view-contract.test.mjs && node --test scripts/check-verification-code-input.test.mjs && node --test scripts/check-bare-field-error.test.mjs scripts/check-label-hidden-contract.test.mjs scripts/check-required-indicator-contract.test.mjs scripts/check-spinner-inherit-contract.test.mjs && node --test scripts/check-controls-contract.test.mjs && node --test scripts/check-pagination-contract.test.mjs && node --test scripts/check-table-core.test.mjs scripts/check-table-interaction.test.mjs scripts/check-table-layout.test.mjs && node --test scripts/check-contrast-contract.test.mjs && node --test scripts/check-optical-alignment-contract.test.mjs && node --test scripts/check-overlay-coordination.test.mjs scripts/check-sheet-contract.test.mjs && node --test scripts/check-choicebox-contract.test.mjs && node --test scripts/check-radio-group-contract.test.mjs && node --test scripts/check-clearable-input-contract.test.mjs && node --test scripts/check-card-contract.test.mjs && node --test scripts/check-book-contract.test.mjs && node --test scripts/check-breadcrumbs-contract.test.mjs && node --test scripts/check-description-contract.test.mjs && node --test scripts/check-error-message-contract.test.mjs && node --test scripts/check-show-more-contract.test.mjs && node --test scripts/check-load-more-button-contract.test.mjs && node --test scripts/check-banner-contract.test.mjs && node --test scripts/check-project-banner-contract.test.mjs && node --test scripts/check-note-contract.test.mjs && node --test scripts/check-feedback-contract.test.mjs && node --test scripts/check-page-feedback-contract.test.mjs && node --test scripts/check-drawer-gesture.test.mjs && node --test scripts/check-checkbox-circle-contract.test.mjs && node --test scripts/check-chat-contract.test.mjs && node --test scripts/check-calendar-single-contract.test.mjs && node --test scripts/check-hover-card-contract.test.mjs && node --test scripts/check-bare-field-error.test.mjs && node --test scripts/check-controls-contract.test.mjs scripts/check-control-size-contract.test.mjs && node --test scripts/check-composer-dots-menu-contract.test.mjs && node --test scripts/check-filter-option-panel-contract.test.mjs && npm run check:release-diff",
58
58
  "check:release-diff": "node --test scripts/check-release-artifact-diff.test.mjs && node scripts/check-release-artifact-diff.mjs",
59
59
  "check:release-provenance": "node --test scripts/check-release-provenance.test.mjs && node scripts/check-release-provenance.mjs",