@blueprint-chart/ui 1.4.0 → 1.5.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.
@@ -43,8 +43,11 @@ $success: #2D8659 !default;
43
43
  $info: $prussian-300 !default;
44
44
  $warning: #D4A63A !default;
45
45
  $danger: #C94044 !default;
46
- $accent: #E4512B !default;
47
- $accent-dark: #F2703F !default;
46
+
47
+ // Accent - the marker. One hex, two gestures (pen on dark, ground on light).
48
+ // No darkened-for-white variant: chartreuse on white is forbidden, not missing.
49
+ $chartreuse-400: #DDF247 !default;
50
+ $accent: $chartreuse-400 !default;
48
51
 
49
52
  // Borders
50
53
  $border-color: #dcdce0 !default;
@@ -52,11 +55,11 @@ $border-color-dark: #2e2e2e !default;
52
55
 
53
56
  // Surface hierarchy (void > tile > elevated)
54
57
  $body-bg: #f3f3f4 !default;
55
- $body-bg-dark: #0a0a0a !default;
58
+ $body-bg-dark: #000000 !default;
56
59
  $body-secondary-bg: #ffffff !default;
57
- $body-secondary-bg-dark: #141414 !default;
60
+ $body-secondary-bg-dark: #0e0e0e !default;
58
61
  $body-tertiary-bg: #f8f8fa !default;
59
- $body-tertiary-bg-dark: #1a1a1a !default;
62
+ $body-tertiary-bg-dark: #161616 !default;
60
63
 
61
64
  // Links
62
65
  $link-color: $primary !default;
@@ -142,11 +145,48 @@ $spacer-xs: 0.25rem !default;
142
145
  --bc-hairline: rgba(0, 0, 0, 0.08);
143
146
  --bc-hairline-strong: rgba(0, 0, 0, 0.14);
144
147
 
145
- // Editorial accent: the "red pencil on the blueprint". Non-interactive
146
- // only: display emphasis, # eyebrows, brand mark, empty-state art. Never
147
- // on buttons, links, focus, or selection (those stay Prussian). See DESIGN.md.
148
+ // The marker. Interactive emphasis (CTA/hover/selection/focus expression) and
149
+ // editorial emphasis. Always rides a non-color signal (fill/shape/pool). ~4%.
148
150
  --bc-accent: #{$accent};
149
- --bc-accent-quiet: rgba($accent, 0.12);
151
+ --bc-accent-ink: #{$prussian-600}; // only text color on accent fills
152
+
153
+ // Grid pool (see _effects.scss). Ink reads on any surface, not just canvas.
154
+ --bc-pool-r: 100px;
155
+ --bc-pool-ink: #{rgba($prussian-300, 0.33)}; // drafting-blue grid on light
156
+
157
+ // Light ink for forced-dark marketing islands (hero, closing band). These are
158
+ // island constants: the same value in both themes, so they are not overridden
159
+ // in the dark block.
160
+ --bc-marketing-ink: #EAF2FA;
161
+ --bc-marketing-ink-dim: #{$prussian-100};
162
+
163
+ // Island constant: the default Prussian focus ring is only ~1.4:1 on the
164
+ // #000000 marketing field, below the 3:1 focus-indicator floor. This
165
+ // brighter Prussian tint reads at roughly 3.5:1+ on black and is used only
166
+ // on the dark marketing islands (see .btn-bc-primary:focus-visible below).
167
+ --bc-focus-ring-marketing: 0 0 0 3px #{rgba($prussian-300, 0.9)};
168
+
169
+ // Editorial mark ink: chartreuse can't be a thin figure on white, so small
170
+ // marks (eyebrow #/dot) fall back to Prussian on light, chartreuse on dark.
171
+ --bc-mark: #{$prussian-500};
172
+ --bc-mark-quiet: #{rgba($prussian-500, 0.14)};
173
+
174
+ // Primary button fill/ink pair. Flips per theme so .btn-bc-primary always
175
+ // resolves at the nearest theme (see _effects.scss), instead of a
176
+ // theme-scoped selector outranking the base rule inside a forced-dark
177
+ // island. Light: navy fill on paper. Dark: chartreuse fill on the field.
178
+ --bc-btn-primary-bg: #{$prussian-600};
179
+ --bc-btn-primary-fg: #{$accent};
180
+
181
+ // Highlighter swipe (FIG.03). Defined once here so .bc-highlight and the
182
+ // landing emphasis rules share one gradient (DRY). Ground on light.
183
+ --bc-swipe: linear-gradient(
184
+ 180deg,
185
+ transparent 45%,
186
+ var(--bc-accent) 45%,
187
+ var(--bc-accent) 92%,
188
+ transparent 92%
189
+ );
150
190
 
151
191
  // Framed-canvas system (flat: hairline border, no shadow).
152
192
  --bc-frame-border: var(--bc-hairline);
@@ -203,19 +243,16 @@ $spacer-xs: 0.25rem !default;
203
243
  --bc-grid-color: #444;
204
244
  --bc-text-color: #aaa;
205
245
 
206
- // Blueprint canvas goes dark in dark theme: the blue surface becomes a deep
207
- // neutral well one rung below the void, harmonized with the graphite surface
208
- // ramp. The white grid lines below already read on a dark surface, so only
209
- // the background color changes — the blueprint grid stays the grid.
210
- --bc-canvas-bg: #070707;
211
- --bc-canvas-grid-color: rgba(255, 255, 255, 0.04);
212
- --bc-canvas-grid-color-major: rgba(255, 255, 255, 0.10);
213
- --bc-canvas-dimension-color: rgba(255, 255, 255, 0.4);
214
-
215
- --bc-chrome-bg: #0f0f0f;
216
- --bc-content-bg: #0f0f0f;
217
- --bc-tile-bg: #1a1a1a;
218
- --bc-tile-bg-elevated: #232323;
246
+ // Dark canvas is true black; the white grid lines carry the blueprint.
247
+ --bc-canvas-bg: #000000;
248
+ --bc-canvas-grid-color: rgba(255, 255, 255, 0.05);
249
+ --bc-canvas-grid-color-major: rgba(255, 255, 255, 0.12);
250
+ --bc-canvas-dimension-color: rgba(255, 255, 255, 0.45);
251
+
252
+ --bc-chrome-bg: #000000;
253
+ --bc-content-bg: #000000;
254
+ --bc-tile-bg: #0e0e0e;
255
+ --bc-tile-bg-elevated: #161616;
219
256
  --bc-canvas-glow: none;
220
257
 
221
258
  --bc-wash-soft: rgba(255, 255, 255, 0.03);
@@ -223,15 +260,39 @@ $spacer-xs: 0.25rem !default;
223
260
  --bc-wash-input: rgba(255, 255, 255, 0.03);
224
261
  --bc-wash-input-hover: rgba(255, 255, 255, 0.05);
225
262
 
226
- --bc-hairline: rgba(255, 255, 255, 0.06);
227
- --bc-hairline-strong: rgba(255, 255, 255, 0.12);
228
-
229
- --bc-accent: #{$accent-dark};
230
- --bc-accent-quiet: rgba($accent-dark, 0.16);
263
+ --bc-hairline: rgba(255, 255, 255, 0.09);
264
+ --bc-hairline-strong: rgba(255, 255, 255, 0.15);
265
+
266
+ --bc-accent: #{$accent}; // same hex; gesture differs, not value
267
+ --bc-accent-ink: #{$prussian-600}; // navy on chartreuse in both themes
268
+ --bc-pool-ink: #{rgba($prussian-100, 0.32)}; // paper-blue grid on true black
269
+ --bc-mark: #{$accent}; // chartreuse is ink on dark
270
+ --bc-mark-quiet: #{rgba($accent, 0.18)};
271
+
272
+ // On dark, chartreuse is ink (text) so the swipe stays a translucent ground
273
+ // behind normal text rather than a bold block. Alpha 0.4 makes the band
274
+ // clearly read on true black while keeping white/near-white text over it
275
+ // above the 4.5:1 floor (~5.9:1 on #EAF2FA, ~5.1:1 on --bs-body-color).
276
+ --bc-swipe: linear-gradient(
277
+ 180deg,
278
+ transparent 45%,
279
+ #{rgba($chartreuse-400, 0.4)} 45%,
280
+ #{rgba($chartreuse-400, 0.4)} 92%,
281
+ transparent 92%
282
+ );
283
+
284
+ // Primary button fill/ink pair, flipped: chartreuse fill on the field,
285
+ // navy ink. See the light block above for the pairing rationale.
286
+ --bc-btn-primary-bg: #{$accent};
287
+ --bc-btn-primary-fg: #{$prussian-600};
288
+
289
+ // Brighter Prussian so the focus ring clears the 3:1 floor on the #000 field
290
+ // (mirrors what --bc-focus-ring-marketing already does for primary buttons).
291
+ --bc-focus-ring: 0 0 0 2px #{rgba($prussian-300, 0.6)};
231
292
 
232
293
  --bc-shadow-overlay:
233
- 0 8px 24px rgba(0, 0, 0, 0.4),
234
- 0 1px 2px rgba(0, 0, 0, 0.3);
294
+ 0 8px 24px rgba(0, 0, 0, 0.6),
295
+ 0 1px 2px rgba(0, 0, 0, 0.4);
235
296
  }
236
297
 
237
298
  @media (prefers-reduced-motion: reduce) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blueprint-chart/ui",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Vue 3 component library for Blueprint Chart editors and apps.",
5
5
  "keywords": [
6
6
  "vue",
@@ -35,6 +35,8 @@
35
35
  "./styles/tokens.scss": "./dist/styles/tokens.scss",
36
36
  "./styles/eyebrow.css": "./dist/styles/eyebrow.css",
37
37
  "./styles/eyebrow.scss": "./dist/styles/eyebrow.scss",
38
+ "./styles/effects.css": "./dist/styles/effects.css",
39
+ "./styles/effects.scss": "./dist/styles/effects.scss",
38
40
  "./style.css": "./dist/style.css"
39
41
  },
40
42
  "files": [
@@ -80,7 +82,7 @@
80
82
  "vitest": "^3",
81
83
  "vue": "^3.5",
82
84
  "vue-router": "^4.6.4",
83
- "@blueprint-chart/lib": "1.4.0"
85
+ "@blueprint-chart/lib": "1.5.0"
84
86
  },
85
87
  "scripts": {
86
88
  "build": "vite build",