@motion-proto/live-tokens 0.54.0 → 0.54.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.54.1 — Palette editing opens on a curve
4
+
5
+ ### Changed
6
+
7
+ - **The base-color panel opens with the rest of the palette editor.** The panel
8
+ above the swatch grid appeared and vanished in one frame while the swatch
9
+ grid and the derived row animated, so opening a base color read as a jump. It
10
+ now reveals on the same height transition as its neighbours.
11
+
12
+ - **The floating token pills read as polished chrome.** The gradient was tuned
13
+ against a dark ground and sat too low in the scale for a light page, where it
14
+ looked tarnished. The bands keep their spacing and move up the scale, the
15
+ border becomes a dark hairline, and the strings drop to 0.3 opacity on light
16
+ pages, where a black stroke at 0.5 reads far heavier than the white stroke it
17
+ mirrors. The darkest stop stays at `#8f9090`, so the black label keeps AA.
18
+
19
+ - **The demo hero labels its theme picker.** The trigger showed the open
20
+ theme's name with nothing saying what it picked. A "Theme" label sits above
21
+ it, and the actions row bottom-aligns so the picker and the buttons sit on
22
+ one line.
23
+
3
24
  ## 0.54.0 — Shadow weight and text insets follow their context
4
25
 
5
26
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@motion-proto/live-tokens",
3
- "version": "0.54.0",
3
+ "version": "0.54.1",
4
4
  "type": "module",
5
5
  "description": "Design token editor with live CSS variable editing. Svelte 5 + Vite 8.",
6
6
  "keywords": [
@@ -545,7 +545,7 @@
545
545
  {/snippet}
546
546
  </PaletteBase>
547
547
 
548
- {#if paletteEditorOpen || (isEditingBase && panelOpen && editingColor)}
548
+ <UIReveal open={paletteEditorOpen || (isEditingBase && panelOpen && !!editingColor)}>
549
549
  <div class="swatch-grid" style="--swatch-cols: {paletteStepLightness.length + 2}">
550
550
  <div class="base-panel" style="grid-column: 2 / {paletteStepLightness.length + 2}">
551
551
  <ColorEditPanel
@@ -577,7 +577,7 @@
577
577
  </ColorEditPanel>
578
578
  </div>
579
579
  </div>
580
- {/if}
580
+ </UIReveal>
581
581
 
582
582
  <!-- Palette + Text row -->
583
583
  <div class="scales-row">
@@ -9,6 +9,7 @@
9
9
 
10
10
  .ftt-stage {
11
11
  --ftt-contrast-color: var(--color-white);
12
+ --ftt-string-opacity: 0.5;
12
13
  position: relative;
13
14
  width: 100%;
14
15
  height: 100%;
@@ -79,7 +80,7 @@
79
80
  stroke-width: 2;
80
81
  stroke-linecap: round;
81
82
  vector-effect: non-scaling-stroke;
82
- opacity: 0.5;
83
+ opacity: var(--ftt-string-opacity);
83
84
  transition: opacity 150ms ease, stroke 150ms ease;
84
85
  }
85
86
 
@@ -178,16 +179,18 @@
178
179
  align-items: center;
179
180
  gap: 0.25rem;
180
181
  padding: 0.375rem 0.75rem;
181
- /* Darkest stop stays #8f9090 so black text keeps ~6:1 AA contrast. */
182
+ /* Polished chrome, not brushed steel: the bands keep their spacing but sit
183
+ high in the scale, so the pill stays bright against a cream page. Keep
184
+ the darkest stop ≥ #8f9090 or the black label loses AA. */
182
185
  background: linear-gradient(
183
186
  135deg,
184
- #e4e5e5 0%,
185
- #a2a3a3 38%,
186
- #cdcece 62%,
187
- #8f9090 100%
187
+ #fbfbfb 0%,
188
+ #c9cbcb 38%,
189
+ #eff0f0 62%,
190
+ #b6b8b8 100%
188
191
  );
189
192
  color: #000;
190
- border: 1px solid rgba(255, 255, 255, 0.55);
193
+ border: 1px solid rgba(86, 96, 104, 0.45);
191
194
  border-radius: 9999px;
192
195
  box-shadow: var(--shadow-md);
193
196
  font-family: Manrope, system-ui, -apple-system, sans-serif;
@@ -200,6 +200,9 @@
200
200
  lastPageBackground = pageBackground;
201
201
  const token = contrastTokenForBackground(pageBackground);
202
202
  stageEl.style.setProperty('--ftt-contrast-color', `var(${token})`);
203
+ // Dark strokes on a light page read far heavier than white ones on a dark
204
+ // page at the same alpha, so the light theme gets a thinner string.
205
+ stageEl.style.setProperty('--ftt-string-opacity', token === '--color-black' ? '0.3' : '0.5');
203
206
  }
204
207
 
205
208
  function syncBoxLabelContrast() {