vue-dockable-desktop 1.3.0 → 1.4.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
@@ -11,6 +11,59 @@ correspondence lives, alongside the feature-by-feature map in [docs/PARITY.md](d
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [1.4.0] — 2026-09-30
15
+
16
+ **Parity: react-dockable-desktop 6.3.1, plus react-dockable-desktop 7.2.0 and 7.3.0's skin
17
+ branding.** Branding, part two: your own surfaces and corner shape on any built-in skin. See
18
+ [Your surfaces](docs/manual/10-theming.md#your-surfaces) and [Corners](docs/manual/10-theming.md#corners).
19
+
20
+ ### Added
21
+
22
+ - **`--vdd-brand-surface`** and **`--vdd-brand-text`**: set per scheme on `:root`, they replace
23
+ every built-in skin's backgrounds and text — the workspace, panels, tab bar, sidebar, floating
24
+ windows, modals, drawers, the taskbar, toasts, borders and muted text are all derived from the
25
+ two. Set both or neither: with only one set, every skin keeps its own surfaces. A skin keeps
26
+ its shape and effects (macOS's glass, Chrome's tabs, the VS Code accent bar) and each
27
+ translucent surface keeps the skin's own transparency; the accent, status colours and shadows
28
+ are not affected.
29
+ - **`--vdd-radius-scale`**: multiplies every corner the library draws — `0` square, `1` each
30
+ skin's own (the default), `1.5` rounder. Circles and pills stay round. It also scales the
31
+ radius tokens you set yourself (`--vdd-panel-float-radius`, `--vdd-panel-toolbar-btn-radius`,
32
+ `--vdd-tab-btn-active-radius`).
33
+ - Manual: **Your surfaces** and **Corners** under Brand your app, the corner habit for custom
34
+ skins, and the three variables in the token reference.
35
+
36
+ ### Fixed
37
+
38
+ - **The workspace-edge drop preview was Bootstrap blue** (`#007bff`) in every skin, instead of
39
+ the skin's accent. It follows `--vdd-accent-color` and `--vdd-brand-accent` now. It shows only
40
+ while you drag a panel to a workspace edge.
41
+ - **Colours no token reached**: the dock-target chips, the light-mode outline button (the
42
+ confirm dialog's Cancel) and the frosted panel toolbar painted literal colours in their own
43
+ rules. They read the surface tokens now, and follow a brand surface; unbranded they are
44
+ unchanged.
45
+
46
+ ### Tests
47
+
48
+ - **M16 browser gate** (`scripts/gates/browser/m16.mjs`, real Chrome): the corner radii of every
49
+ library element and pseudo-element, in all 7 skins × dark/light, match a 1.3.0 baseline with
50
+ the scale unset, are `0px` at scale `0` and 1.5× at `1.5`, with circles and pills unchanged;
51
+ with a brand surface set, no colour of any skin's own palette remains — rendered, hovered or as
52
+ a token — the workspace, panel and tab bar stay distinct, and text on panels meets 4.5:1
53
+ (muted 3:1); with only one of the two set, a scene matches M15's baseline. M15's gate still
54
+ holds with no brand set.
55
+ - `test/core/stylesheet.test.ts`, ported from rdd 7.3.0: every corner length is scaled and the
56
+ library never declares the scale; every coloured surface reads a derived value first, declared
57
+ only on `:root` and built on the guarded base; no element rule paints a colour of its own.
58
+ - M16 rules (`scripts/gates/m16.mjs`) and two selftest cases. The M15 browser gate's scene
59
+ helpers moved to `scripts/gates/lib/branding-scenes.mjs`, shared with M16. The playground
60
+ takes `?bs=`, `?bt=` and `?rs=`.
61
+
62
+ ### Documentation
63
+
64
+ - Theming chapter: Your surfaces, Corners, the fourth brandable-skin habit, token rows; README
65
+ snippet; ADR 0018; PARITY.md; the plan's M16.
66
+
14
67
  ## [1.3.0] — 2026-09-29
15
68
 
16
69
  **Parity: react-dockable-desktop 6.3.1, plus react-dockable-desktop 7.2.0's skin branding**
package/README.md CHANGED
@@ -24,7 +24,7 @@ so a layout saved by either library loads in the other.
24
24
  > matching the two numbers would be a promise that breaks the first time either library needs
25
25
  > a breaking change the other does not. Which rdd release a given version corresponds to is
26
26
  > stated per release in [CHANGELOG.md](CHANGELOG.md) — this one tracks **rdd 6.3.1**, plus
27
- > rdd 7.2.0's skin branding — and feature by feature in [docs/PARITY.md](docs/PARITY.md).
27
+ > rdd 7.2.0 and 7.3.0's skin branding — and feature by feature in [docs/PARITY.md](docs/PARITY.md).
28
28
 
29
29
  ## Install
30
30
 
@@ -35,7 +35,7 @@ npm install vue-dockable-desktop
35
35
  Requires Vue 3.4+, and a browser with CSS `color-mix()` (Chrome / Edge 111, Safari 16.2,
36
36
  Firefox 113 or later). No other runtime dependencies. The published package is
37
37
  [`vue-dockable-desktop`](https://www.npmjs.com/package/vue-dockable-desktop); the public API
38
- is pinned by `api-surface.json` and covered by 846 tests.
38
+ is pinned by `api-surface.json` and covered by 851 tests.
39
39
 
40
40
  ## Quick start
41
41
 
@@ -117,8 +117,17 @@ localStorage.setItem('layout', ws.saveLayout())
117
117
  ```
118
118
 
119
119
  Point them at your UI framework's theme to follow it — `var(--p-primary-color)` (PrimeVue),
120
- `var(--bs-primary)` (Bootstrap). See
121
- [Brand your app](docs/manual/10-theming.md#brand-your-app)
120
+ `var(--bs-primary)` (Bootstrap). Your own surfaces and corner shape, too:
121
+
122
+ ```css
123
+ :root:not([data-color-scheme="light"]) { /* dark: the attribute's absence */
124
+ --vdd-brand-surface: #0b1f3a; /* app background — panels, bars and borders derive from it */
125
+ --vdd-brand-text: #e8eef7; /* main text — set both, or neither */
126
+ }
127
+ :root { --vdd-radius-scale: 0; } /* 0 square · 1 each skin's own · 1.5 rounder */
128
+ ```
129
+
130
+ See [Brand your app](docs/manual/10-theming.md#brand-your-app)
122
131
  - **i18n and RTL** — every string is a message key; `dir="rtl"` flips the whole workspace
123
132
  - **TypeScript-first** — complete types, no separate `@types` package
124
133