@neuravision/construct 2.2.0 → 2.2.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
@@ -5,6 +5,19 @@ All notable changes to `@neuravision/construct` will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [2.2.1] - 2026-07-28
9
+
10
+ ### Fixed
11
+
12
+ - Datum registration marks (`ct-frame--datum`, `ct-card--datum`, `ct-datum-frame`) no longer leave
13
+ the owner's border showing outside the orange corner. The mark and the border shared one outer
14
+ arc, so both edges antialiased at the same radius and the neutral contour blended through — barely
15
+ visible on `--color-border-subtle` surfaces, a grey double line on stronger borders such as
16
+ `--color-border-default`. The mark now absorbs the owner's hairline: it starts one border width
17
+ further out and grows its stroke and radius to match, so the corner paints as a single orange arc
18
+ at every device pixel ratio. Its inner edge, length, and the datum's own stroke weight are
19
+ unchanged.
20
+
8
21
  ## [2.2.0] - 2026-07-25
9
22
 
10
23
  ### Added
@@ -2,15 +2,24 @@
2
2
  Owning components provide the inset and radius through local properties so
3
3
  every standalone entry renders the same geometry without copying it. */
4
4
  :is(.ct-datum-frame, .ct-card--datum, .ct-frame--datum)::before {
5
+ /* The mark absorbs the owner's hairline instead of merely covering it. Both
6
+ arcs are antialiased at the same radius when they share one outer edge, so
7
+ the owner's border blends through outside the mark — invisible on a subtle
8
+ border, a grey double line on a strong one. Starting the mark one hairline
9
+ further out, and growing its stroke and radius by the same amount, makes
10
+ the corner read as a single orange mark. The inner edge, the mark's length,
11
+ and the datum's own stroke weight are unchanged. */
12
+ --ct-datum-mark-bleed: var(--border-thin);
13
+
5
14
  content: '';
6
15
  position: absolute;
7
- inset-block-start: var(--ct-datum-mark-inset);
8
- inset-inline-start: var(--ct-datum-mark-inset);
9
- width: var(--component-datum-mark-size);
10
- height: var(--component-datum-mark-size);
11
- border-block-start: var(--border-medium) solid var(--color-brand-accent);
12
- border-inline-start: var(--border-medium) solid var(--color-brand-accent);
13
- border-start-start-radius: var(--ct-datum-mark-radius);
16
+ inset-block-start: calc(var(--ct-datum-mark-inset) - var(--ct-datum-mark-bleed));
17
+ inset-inline-start: calc(var(--ct-datum-mark-inset) - var(--ct-datum-mark-bleed));
18
+ width: calc(var(--component-datum-mark-size) + var(--ct-datum-mark-bleed));
19
+ height: calc(var(--component-datum-mark-size) + var(--ct-datum-mark-bleed));
20
+ border-block-start: calc(var(--border-medium) + var(--ct-datum-mark-bleed)) solid var(--color-brand-accent);
21
+ border-inline-start: calc(var(--border-medium) + var(--ct-datum-mark-bleed)) solid var(--color-brand-accent);
22
+ border-start-start-radius: calc(var(--ct-datum-mark-radius) + var(--ct-datum-mark-bleed));
14
23
  z-index: 2;
15
24
  pointer-events: none;
16
25
  }
@@ -185,7 +185,9 @@ Rules that keep the signature strong and accessible:
185
185
  reference element. Never let two orange edges compete; if everything is highlighted, nothing is.
186
186
  - **The component that owns the border owns the datum.** Use `ct-frame ct-frame--datum` for framed
187
187
  exhibits and put clipping on `ct-frame__content`. Do not attach overflow clipping to the outer frame
188
- or rebuild the corner in product CSS.
188
+ or rebuild the corner in product CSS. The registration mark absorbs the owner's hairline — it is
189
+ painted one border width further out — so the corner reads as one orange arc on strong borders as
190
+ well as subtle ones.
189
191
  - **Orange is never text.** Labels and values stay on `--color-text-*` neutrals; orange is carried by
190
192
  non-text ticks, edges, rules, and lines.
191
193
  - **Edges are `--color-brand-accent`; meaning-bearing fills are `--color-brand-accent-strong`**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neuravision/construct",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "description": "Construct Design System - Accessible, token-based design system for modern web applications",
5
5
  "license": "MIT",
6
6
  "repository": {