@taprootio/espalier 3.0.1 → 3.2.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/CHANGELOG.md CHANGED
@@ -1,3 +1,30 @@
1
+ # 3.2.0
2
+
3
+ Website-tier layout: the pieces a real marketing page proved were
4
+ missing (measured: a 297-line style block, 48% layout, none of it
5
+ novel).
6
+
7
+ - `esp-page kind="site"`: sections run edge to edge and the header,
8
+ footer, and every section well share one centered column via
9
+ `--esp-page-well-max-width` (default 72rem).
10
+ - `esp-section`: the full-bleed band with a centered well — and the
11
+ natural `context` zone host, with no card identity to neutralize.
12
+ Rhythm defaults to the new fluid `--esp-size-section` step.
13
+ - `esp-stack` and `esp-row`: column and wrapping-row flow with
14
+ space-scale gaps. Stacks stretch like block flow while slotted
15
+ buttons keep their natural width — the pairing a plain flex column
16
+ cannot express.
17
+ - Layout tokens: `--esp-measure` / `--esp-measure-wide`,
18
+ `--esp-size-section`, `--esp-shadow-1..3` (elevation; level 1 is
19
+ exactly the shadow `esp-box` always painted, now overridable via
20
+ `--esp-box-shadow`), and `--esp-card-min` for the auto-fit card-grid
21
+ recipe.
22
+ - `esp-root` accepts theme objects directly: `root.lightTheme = {...}`
23
+ / `root.darkTheme = {...}` encode through the same pipeline as the
24
+ `light-theme` / `dark-theme` attributes.
25
+ - New export subpaths: `./section`, `./stack`, `./row`, and dedicated
26
+ entries for `./flyout`, `./progress`, `./toaster`, `./tooltip`.
27
+
1
28
  # Changelog
2
29
 
3
30
  All notable changes to the public `@taprootio/espalier` package are documented
@@ -5,6 +32,38 @@ here. This file ships in the published npm package. It is a curated public
5
32
  record and intentionally does not mirror the private `taproot-controls`
6
33
  development history.
7
34
 
35
+ ## 3.1.0 — Info becomes a real blue family, and intent colors become yours
36
+
37
+ - Give `intent="info"` its own fixed status family: blue (hue 244), derived
38
+ and emitted like danger/success/warning as `--esp-color-info`. It no
39
+ longer borrows the complementary family, which could render informational
40
+ styling green on complementary-adjacent brand seeds and made `info` mean
41
+ different colors on buttons versus badges.
42
+ - Add the `intents` theme field: retune any status family with an absolute
43
+ color — an `anchor:` reference or a supported color form (hex,
44
+ `rgb()`, `hsl()`, `oklch()`; CSS keywords are not parsed)
45
+ (`"intents": { "danger": "#700007", "info": "anchor:sky" }`). One
46
+ override drives the emitted family token, `intent=` pins on controls,
47
+ class-styled chrome, and derived tokens such as `dangerText`; the legacy
48
+ `semanticHues`/`variantChroma` knobs are ignored for an overridden
49
+ family. Overrides retune a family, never reassign one: `validateTheme`
50
+ rejects family names as values and warns when two status colors — or a
51
+ status color and the action color — become hard to distinguish, with
52
+ per-pair remediation advice counterfactual-tested as rendered at
53
+ emitted-token precision: a remedy is offered alone only when it
54
+ separates the pair by itself, as an explicit "widen/move, then
55
+ retune" sequence only when a concrete retune is found under it, and
56
+ never when it cannot work or is not proven to — a retune is
57
+ promised only when a concrete emitted candidate clears the
58
+ threshold, and a pair whose best candidate lands within the audit's
59
+ search margin is flagged as unreliable to retune rather than
60
+ impossible.
61
+ - Add the `accent.hover` role slot, so a hover can change family rather
62
+ than only lightness; when absent, `linkHover` follows `accent.text`
63
+ unchanged.
64
+ - Warn when an explicit `chroma` band targets an anchor-sourced token and
65
+ would move a declared swatch off its color.
66
+
8
67
  ## 3.0.0 — Intent and context replace the variant attribute
9
68
 
10
69
  - Remove the `variant` attribute. Its two jobs are now separate attributes: