@sltsh/aion-tokens 1.2.0 → 1.3.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/README.md CHANGED
@@ -40,11 +40,30 @@ design rationale and availability by target.
40
40
  ## Two contrast functions, on purpose
41
41
 
42
42
  `contrast` reads the ideal OKLCH. `contrastEmitted` reads the rounded 8-bit hex that
43
- actually ships. They differ by up to 0.06, which matters at a 4.5:1 floor.
43
+ actually ships. `roundingShift(background)` measures their largest observed gap near
44
+ the floor on the documented grid; it is not a universal rounding bound.
44
45
 
45
46
  Use `contrastEmitted` for any gate or report; a user measures the hex. `solveLightness`
46
47
  uses the continuous form, because bisection needs one.
47
48
 
49
+ ## Rounding API
50
+
51
+ - `srgbChannels(colour)` returns `{ exact, bytes }`: clamped, gamma-encoded sRGB channels
52
+ multiplied by 255 before rounding, and the three integer bytes that `hex` emits.
53
+ - `roundingShift(background, floor = 4.5)` returns `{ shift, colour }`, the largest
54
+ absolute continuous/emitted contrast difference observed with `|contrast - floor| ≤ 0.1`.
55
+ The grid includes hue `3i` (`i = 0…119`), chroma `0.01j` (`j = 0…20`), and lightness
56
+ `0.00005k` (`k = 0…20000`). Only points whose un-clipped linear sRGB channels all lie
57
+ in `[0, 1]` qualify. Ties keep the first point in hue, chroma, lightness order.
58
+ Bisection brackets the bands before visiting their integer lightness indices.
59
+ It throws if the floor is invalid or no point qualifies.
60
+ - `roundingFlip(base, background, { window = 0.02, step = 0.00005, floor = 4.5 } = {})`
61
+ returns the first sampled lightness that passes continuous contrast and fails emitted
62
+ contrast, or `null`. Samples ascend from `L₀ - window` in integer multiples of `step`
63
+ through `L₀ + window`, restricted to `[0, 1]`; `L₀` is solved in the base colour's
64
+ contrast direction by `solveLightness`. Invalid options throw. Both helpers require
65
+ a finite floor of at least 1.
66
+
48
67
  ## Layers
49
68
 
50
69
  - **Literal** — `neutral`, `ACCENTS`, `accentScale`, `ansi`, `lightNeutral`. What the
package/dist/index.d.ts CHANGED
@@ -1,17 +1,17 @@
1
1
  export type { Oklch, LinearSrgb, SolveDirection } from './oklch.js';
2
- export { oklchToLinearSrgb, inGamut, hex, hexAlpha, luminance, contrast, contrastEmitted, compositeEmitted, hexToOklch, solveLightness, } from './oklch.js';
3
- export type { NeutralName, AccentName, AccentScale, SyntaxRole, StatusName, DiffName, Overlay, OverlayName, AnsiSlot, TerminalBackgroundName, DiffWashName, } from './palette.js';
4
- export { BASE_HUE, BASE_CHROMA, NEUTRAL_LIGHTNESS, neutral, ACCENTS, ACCENT_NAMES, accentScale, scaleOf, SYNTAX, ONE_DARK_PRO_HUE, comment, dimText, STATUS, diff, diffWash, overlay, findMatch, bracketPairs, cursor, ansi, ANSI_ORDER, ANSI_BLACK_TEXT, ANSI_BADGE, terminalBackground, terminalSelection, TERMINAL_BACKGROUNDS, CHROMA_CEILING, CHROMA_DEFAULT, HUE_DRIFT_LIMIT, CONTRAST_FLOOR, NON_TEXT_FLOOR, MEANING_PAIR_GAP, CONTRAST_EXEMPT, } from './palette.js';
2
+ export { oklchToLinearSrgb, inGamut, hex, hexAlpha, luminance, contrast, contrastEmitted, compositeEmitted, compositeCssAlpha, hexToOklch, solveLightness, } from './oklch.js';
3
+ export type { NeutralName, AccentName, AccentScale, SyntaxRole, StatusName, DiffName, Overlay, OverlayName, AnsiSlot, TerminalBackgroundName, DiffWashName, DecorationName, SecondaryDecorationName, } from './palette.js';
4
+ export { BASE_HUE, BASE_CHROMA, NEUTRAL_LIGHTNESS, neutral, ACCENTS, ACCENT_NAMES, accentScale, scaleOf, SYNTAX, ONE_DARK_PRO_HUE, comment, dimText, STATUS, diff, diffWash, decoration, secondaryDecoration, overlay, findMatch, bracketPairs, cursor, ansi, ANSI_ORDER, ANSI_BLACK_TEXT, ANSI_BADGE, terminalBackground, terminalSelection, TERMINAL_BACKGROUNDS, CHROMA_CEILING, CHROMA_DEFAULT, HUE_DRIFT_LIMIT, CONTRAST_FLOOR, NON_TEXT_FLOOR, MEANING_PAIR_GAP, CONTRAST_EXEMPT, } from './palette.js';
5
5
  export type { LightNeutralName, LightDecorationName } from './light.js';
6
- export { LIGHT_LIGHTNESS, lightNeutral, lightEditorNeutral, lightDimText, lightComment, lightSyntax, lightAnsiWhite, lightAnsiBrightBlack, LIGHT_CHROMA_FLOOR_EXCEPTION, lightAccent, lightAccents, lightAccentScale, lightOverlay, lightDecoration, lightFindMatch, lightDiff, lightDiffWash, lightBrackets, lightCursor, lightAnsi, lightTerminalSelection, } from './light.js';
6
+ export { LIGHT_LIGHTNESS, lightNeutral, lightEditorNeutral, lightDimText, lightComment, lightSyntax, lightAnsiWhite, lightAnsiBrightBlack, LIGHT_CHROMA_FLOOR_EXCEPTION, LIGHT_ACCENT_MARGIN, LIGHT_HUE_DRIFT, lightAccent, lightAccents, lightAccentScale, lightOverlay, lightDecoration, lightSecondaryDecoration, lightFindMatch, lightDiff, lightDiffWash, lightCoverageGutter, lightBrackets, lightCursor, lightAnsi, lightTerminalSelection, } from './light.js';
7
7
  export type { StatusScale } from './status.js';
8
8
  export { status, statusLight } from './status.js';
9
9
  export { obsidianLightSelection, obsidianLightHighlight, obsidianLightActiveRow, obsidianLightLink, obsidianCodeBackground, obsidianPink, obsidianHoverEdge } from './obsidian.js';
10
10
  export { bg, fg, border, syntax, accent, brackets, semantic, BOUNDARY_PAIRS, bgLight, fgLight, borderLight, accentLight, semanticLight, BOUNDARY_PAIRS_LIGHT, } from './semantic.js';
11
11
  export type { Marker, Solution, OverlaySearch, OverlaySolution } from './solve.js';
12
12
  export { solveMarker, solveOverlay, binding, distanceEmitted } from './solve.js';
13
- export type { ReadingState, StateSource, SurfaceName } from './states.js';
14
- export { readingStates, readingForegrounds, SHIPPED, LIGHT_SHIPPED } from './states.js';
13
+ export type { ReadingState, StateSource, SurfaceName, StackLayer } from './states.js';
14
+ export { readingStates, readingForegrounds, SHIPPED, LIGHT_SHIPPED, RENDER_ORDER, LIGHT_TIER, LIGHT_TIER_RATIO, producible, covered, orderStack, stackName, stackBackground, paintedAlpha, } from './states.js';
15
15
  export { flatten } from './flatten.js';
16
16
  export type { Check, CheckState } from './report.js';
17
17
  export { checks, failures, designTables, NEUTRAL_ROLE } from './report.js';
@@ -21,4 +21,5 @@ export type { Rival, RivalResult, SurfaceOrder } from './rivals.js';
21
21
  export { RIVALS, SYNTAX_ROLES_COMPARED, contrastHex, measure, surfaceOrder } from './rivals.js';
22
22
  export type { StripScheme } from './strip.js';
23
23
  export { paletteStrip } from './strip.js';
24
+ export { srgbChannels, roundingShift, roundingFlip } from './rounding.js';
24
25
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,14 +1,15 @@
1
- export { oklchToLinearSrgb, inGamut, hex, hexAlpha, luminance, contrast, contrastEmitted, compositeEmitted, hexToOklch, solveLightness, } from './oklch.js';
2
- export { BASE_HUE, BASE_CHROMA, NEUTRAL_LIGHTNESS, neutral, ACCENTS, ACCENT_NAMES, accentScale, scaleOf, SYNTAX, ONE_DARK_PRO_HUE, comment, dimText, STATUS, diff, diffWash, overlay, findMatch, bracketPairs, cursor, ansi, ANSI_ORDER, ANSI_BLACK_TEXT, ANSI_BADGE, terminalBackground, terminalSelection, TERMINAL_BACKGROUNDS, CHROMA_CEILING, CHROMA_DEFAULT, HUE_DRIFT_LIMIT, CONTRAST_FLOOR, NON_TEXT_FLOOR, MEANING_PAIR_GAP, CONTRAST_EXEMPT, } from './palette.js';
3
- export { LIGHT_LIGHTNESS, lightNeutral, lightEditorNeutral, lightDimText, lightComment, lightSyntax, lightAnsiWhite, lightAnsiBrightBlack, LIGHT_CHROMA_FLOOR_EXCEPTION, lightAccent, lightAccents, lightAccentScale, lightOverlay, lightDecoration, lightFindMatch, lightDiff, lightDiffWash, lightBrackets, lightCursor, lightAnsi, lightTerminalSelection, } from './light.js';
1
+ export { oklchToLinearSrgb, inGamut, hex, hexAlpha, luminance, contrast, contrastEmitted, compositeEmitted, compositeCssAlpha, hexToOklch, solveLightness, } from './oklch.js';
2
+ export { BASE_HUE, BASE_CHROMA, NEUTRAL_LIGHTNESS, neutral, ACCENTS, ACCENT_NAMES, accentScale, scaleOf, SYNTAX, ONE_DARK_PRO_HUE, comment, dimText, STATUS, diff, diffWash, decoration, secondaryDecoration, overlay, findMatch, bracketPairs, cursor, ansi, ANSI_ORDER, ANSI_BLACK_TEXT, ANSI_BADGE, terminalBackground, terminalSelection, TERMINAL_BACKGROUNDS, CHROMA_CEILING, CHROMA_DEFAULT, HUE_DRIFT_LIMIT, CONTRAST_FLOOR, NON_TEXT_FLOOR, MEANING_PAIR_GAP, CONTRAST_EXEMPT, } from './palette.js';
3
+ export { LIGHT_LIGHTNESS, lightNeutral, lightEditorNeutral, lightDimText, lightComment, lightSyntax, lightAnsiWhite, lightAnsiBrightBlack, LIGHT_CHROMA_FLOOR_EXCEPTION, LIGHT_ACCENT_MARGIN, LIGHT_HUE_DRIFT, lightAccent, lightAccents, lightAccentScale, lightOverlay, lightDecoration, lightSecondaryDecoration, lightFindMatch, lightDiff, lightDiffWash, lightCoverageGutter, lightBrackets, lightCursor, lightAnsi, lightTerminalSelection, } from './light.js';
4
4
  export { status, statusLight } from './status.js';
5
5
  export { obsidianLightSelection, obsidianLightHighlight, obsidianLightActiveRow, obsidianLightLink, obsidianCodeBackground, obsidianPink, obsidianHoverEdge } from './obsidian.js';
6
6
  export { bg, fg, border, syntax, accent, brackets, semantic, BOUNDARY_PAIRS, bgLight, fgLight, borderLight, accentLight, semanticLight, BOUNDARY_PAIRS_LIGHT, } from './semantic.js';
7
7
  export { solveMarker, solveOverlay, binding, distanceEmitted } from './solve.js';
8
- export { readingStates, readingForegrounds, SHIPPED, LIGHT_SHIPPED } from './states.js';
8
+ export { readingStates, readingForegrounds, SHIPPED, LIGHT_SHIPPED, RENDER_ORDER, LIGHT_TIER, LIGHT_TIER_RATIO, producible, covered, orderStack, stackName, stackBackground, paintedAlpha, } from './states.js';
9
9
  export { flatten } from './flatten.js';
10
10
  export { checks, failures, designTables, NEUTRAL_ROLE } from './report.js';
11
11
  export { buildPalette, PREVIEW_DEFAULTS, buildLightPalette, LIGHT_PREVIEW_DEFAULTS, lightPalette, buildSchemePalette, } from './preview.js';
12
12
  export { RIVALS, SYNTAX_ROLES_COMPARED, contrastHex, measure, surfaceOrder } from './rivals.js';
13
13
  export { paletteStrip } from './strip.js';
14
+ export { srgbChannels, roundingShift, roundingFlip } from './rounding.js';
14
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAC/E,gBAAgB,EAAE,UAAU,EAAE,cAAc,GAC7C,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAC9F,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EACtF,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EACvF,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EACxF,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,GAClE,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAC1F,cAAc,EAAE,oBAAoB,EAAE,4BAA4B,EAClE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EACrG,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,GAC7E,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEnL,OAAO,EACL,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAClE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,GAChF,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGjF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAExF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EACL,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EACvF,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAC/E,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,GAChE,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAC9F,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAC9E,mBAAmB,EAAE,OAAO,EAAE,SAAS,EACvC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,kBAAkB,EACvF,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EACxF,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,GAClE,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAC1F,cAAc,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,eAAe,EACxG,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAC1E,wBAAwB,EAAE,cAAc,EAAE,SAAS,EACnD,aAAa,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,GAClG,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEnL,OAAO,EACL,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAClE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,GAChF,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGjF,OAAO,EACL,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EACrG,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,GAC1E,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAGvC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3E,OAAO,EACL,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,YAAY,EACvF,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
package/dist/light.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { Oklch } from './oklch.js';
2
- import type { AccentName, AccentScale, AnsiSlot, NeutralName, Overlay, SyntaxRole } from './palette.js';
2
+ import type { AccentName, AccentScale, AnsiSlot, DecorationName, NeutralName, Overlay, SecondaryDecorationName, SyntaxRole } from './palette.js';
3
3
  export declare const LIGHT_LIGHTNESS: {
4
4
  readonly page: 0.98;
5
5
  readonly surface: 0.96;
@@ -22,61 +22,52 @@ export declare const lightAnsiWhite: Oklch;
22
22
  export declare const lightAnsiBrightBlack: Oklch;
23
23
  export declare const LIGHT_CHROMA_FLOOR_EXCEPTION: Partial<Record<AccentName, number>>;
24
24
  export declare const LIGHT_SYNTAX_FLOOR = 4.8;
25
+ export declare const LIGHT_ACCENT_MARGIN = 1.06;
26
+ export declare const LIGHT_HUE_DRIFT: Partial<Record<AccentName, number>>;
25
27
  export declare const lightAccent: (name: AccentName) => Oklch;
26
28
  export declare const lightAccents: Record<AccentName, Oklch>;
27
29
  export declare const lightSyntax: Record<SyntaxRole, Oklch>;
28
30
  export declare const lightAccentScale: (name: AccentName) => AccentScale;
29
31
  export declare const lightOverlay: {
30
32
  readonly selection: {
31
- readonly color: Oklch;
32
- readonly alpha: 0.35;
33
+ readonly color: readonly [0.8, 0.1, 246];
34
+ readonly alpha: 0.5;
33
35
  };
34
36
  readonly findMatchOther: {
35
- readonly color: Oklch;
36
- readonly alpha: 0.4;
37
+ readonly color: readonly [0.88, 0.1, 84];
38
+ readonly alpha: 0.5;
37
39
  };
38
40
  readonly wordHighlight: {
39
- readonly color: Oklch;
40
- readonly alpha: 0.29;
41
+ readonly color: readonly [0.9, 0.12, 194];
42
+ readonly alpha: 0.45;
41
43
  };
42
44
  readonly lineHighlight: {
43
- readonly color: Oklch;
45
+ readonly color: readonly [0.948, 0.01, 90];
44
46
  readonly alpha: 0.95;
45
47
  };
46
48
  };
47
- export declare const lightDecoration: {
48
- readonly selectionHighlight: {
49
- readonly color: Oklch;
50
- readonly alpha: 0.25;
51
- };
52
- readonly inactiveSelection: {
53
- readonly color: Oklch;
54
- readonly alpha: 0.25;
55
- };
56
- readonly findRange: Overlay;
57
- readonly rangeHighlight: Overlay;
58
- readonly fold: Overlay;
59
- };
60
- export type LightDecorationName = keyof typeof lightDecoration;
49
+ export declare const lightDecoration: Record<DecorationName, Overlay>;
50
+ export declare const lightSecondaryDecoration: Record<SecondaryDecorationName, Overlay>;
51
+ export type LightDecorationName = DecorationName;
61
52
  export declare const lightFindMatch: {
62
53
  readonly current: Oklch;
63
54
  };
64
55
  export declare const lightDiffWash: {
65
56
  readonly addedLine: {
66
- readonly color: Oklch;
67
- readonly alpha: 0.06;
57
+ readonly color: readonly [0.8, 0.13, 144];
58
+ readonly alpha: 0.15;
68
59
  };
69
60
  readonly addedWord: {
70
- readonly color: Oklch;
71
- readonly alpha: 0.03;
61
+ readonly color: readonly [0.85, 0.19, 148];
62
+ readonly alpha: 0.29;
72
63
  };
73
64
  readonly removedLine: {
74
- readonly color: Oklch;
75
- readonly alpha: 0.06;
65
+ readonly color: readonly [0.87, 0.07, 30];
66
+ readonly alpha: 0.25;
76
67
  };
77
68
  readonly removedWord: {
78
- readonly color: Oklch;
79
- readonly alpha: 0.03;
69
+ readonly color: readonly [0.86, 0.07, 28];
70
+ readonly alpha: 0.35;
80
71
  };
81
72
  };
82
73
  export declare const lightDiff: {
@@ -85,6 +76,10 @@ export declare const lightDiff: {
85
76
  readonly addedGutter: Oklch;
86
77
  readonly removedGutter: Oklch;
87
78
  };
79
+ export declare const lightCoverageGutter: {
80
+ readonly covered: Oklch;
81
+ readonly uncovered: Oklch;
82
+ };
88
83
  export declare const lightBrackets: readonly Oklch[];
89
84
  export declare const lightCursor: Oklch;
90
85
  export declare const lightAnsi: Record<AnsiSlot, Oklch>;
@@ -1 +1 @@
1
- {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EACV,UAAU,EAAE,WAAW,EAAqB,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EACvF,MAAM,cAAc,CAAC;AAUtB,eAAO,MAAM,eAAe;;;;;;;;;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,eAAe,CAAC;AAK5D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAGxD,CAAC;AAOF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAazD,CAAC;AAQF,eAAO,MAAM,YAAY,EAAE,KAA+B,CAAC;AAC3D,eAAO,MAAM,YAAY,EAAE,KAA+B,CAAC;AAC3D,eAAO,MAAM,cAAc,EAAE,KAA+B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,EAAE,KAA+B,CAAC;AAkCnE,eAAO,MAAM,4BAA4B,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAE5E,CAAC;AA2BF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,eAAO,MAAM,WAAW,GAAI,MAAM,UAAU,KAAG,KAW9C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAElD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAGjD,CAAC;AAmBF,eAAO,MAAM,gBAAgB,GAAI,MAAM,UAAU,KAAG,WAYnD,CAAC;AAcF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAKmB,CAAC;AAU7C,eAAO,MAAM,eAAe;;;;;;;;;;;;CAMgB,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE/D,eAAO,MAAM,cAAc;;CAEjB,CAAC;AAYX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAKkB,CAAC;AAI7C,eAAO,MAAM,SAAS;;;;;CAKoB,CAAC;AAE3C,eAAO,MAAM,aAAa,EAAE,SAAS,KAAK,EAAmD,CAAC;AAC9F,eAAO,MAAM,WAAW,EAAE,KAAyB,CAAC;AAIpD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAY1C,CAAC;AAIL,eAAO,MAAM,sBAAsB,EAAE,KAA2B,CAAC"}
1
+ {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,KAAK,EACV,UAAU,EAAE,WAAW,EAAqB,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAC1F,uBAAuB,EAAE,UAAU,EACpC,MAAM,cAAc,CAAC;AAWtB,eAAO,MAAM,eAAe;;;;;;;;;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,eAAe,CAAC;AAK5D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,gBAAgB,EAAE,KAAK,CAGxD,CAAC;AAOF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,CAazD,CAAC;AASF,eAAO,MAAM,YAAY,EAAE,KAAgC,CAAC;AAC5D,eAAO,MAAM,YAAY,EAAE,KAA+B,CAAC;AAC3D,eAAO,MAAM,cAAc,EAAE,KAA+B,CAAC;AAC7D,eAAO,MAAM,oBAAoB,EAAE,KAA+B,CAAC;AAkCnE,eAAO,MAAM,4BAA4B,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAE5E,CAAC;AAgCF,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAItC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAKxC,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAgB,CAAC;AAEjF,eAAO,MAAM,WAAW,GAAI,MAAM,UAAU,KAAG,KAa9C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAElD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAGjD,CAAC;AAmBF,eAAO,MAAM,gBAAgB,GAAI,MAAM,UAAU,KAAG,WAYnD,CAAC;AAMF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAKmB,CAAC;AAI7C,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,cAAc,EAAE,OAAO,CAO3D,CAAC;AAKF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAkB7E,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAEjD,eAAO,MAAM,cAAc;;CAEjB,CAAC;AAKX,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;CAKkB,CAAC;AAe7C,eAAO,MAAM,SAAS;;;;;CAKoB,CAAC;AAa3C,eAAO,MAAM,mBAAmB;;;CAGU,CAAC;AAE3C,eAAO,MAAM,aAAa,EAAE,SAAS,KAAK,EAAmD,CAAC;AAC9F,eAAO,MAAM,WAAW,EAAE,KAAyB,CAAC;AAIpD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAY1C,CAAC;AAIL,eAAO,MAAM,sBAAsB,EAAE,KAA2B,CAAC"}
package/dist/light.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { solveLightness, inGamut, contrastEmitted } from './oklch.js';
2
2
  import { ACCENTS, ANSI_HUE, BASE_CHROMA, BASE_HUE, BRIGHT_TO_NORMAL, CHROMA_CEILING, CHROMA_DEFAULT, CONTRAST_FLOOR, NON_TEXT_FLOOR, SYNTAX, bracketPairs, capitalise, } from './palette.js';
3
+ import { solveMarker } from './solve.js';
3
4
  import { mapValues } from './util.js';
4
5
  // `border` is solved against `input`, the darkest surface a control edge encloses, not
5
6
  // against `page`. A light border is darker than every surface it touches, so the darkest
@@ -35,8 +36,9 @@ export const lightEditorNeutral = {
35
36
  // dim chrome is a little quieter again, and ANSI white/bright-black retain their terminal
36
37
  // roles instead of inheriting whichever neutral happened to be emitted first.
37
38
  // The comment is the budget every light overlay is solved against. At 0.516 no tinted
38
- // selection fitted under a diff wash; 0.490 buys that room and stays quieter than dim text.
39
- export const lightComment = lightNeutralRole(0.490);
39
+ // selection fitted under a diff wash; 0.4725 reads 6.33:1 on the editor, which lets every
40
+ // syntax accent sit a margin above it, and stays 0.03 apart from secondary text.
41
+ export const lightComment = lightNeutralRole(0.4725);
40
42
  export const lightDimText = lightNeutralRole(0.510);
41
43
  export const lightAnsiWhite = lightNeutralRole(0.340);
42
44
  export const lightAnsiBrightBlack = lightNeutralRole(0.505);
@@ -62,7 +64,7 @@ const gamutSafe = (lightness, chroma, hue, label) => {
62
64
  // Dark accents lose contrast on a light page, so lightness drops and chroma rises.
63
65
  // The two constraints fight: more chroma leaves the sRGB gamut at the lightness the
64
66
  // floor demands. Walk chroma down until a colour satisfies both, then verify against
65
- // the emitted hex, because rounding to 8 bits can cost up to 0.06 of the ratio.
67
+ // the emitted hex; roundingShift measures the gap near the floor on its grid.
66
68
  //
67
69
  // The reference surface is `input`, not `page`: an accent that only clears the floor on
68
70
  // a light surface fails the moment it lands on a native control. `hover` is darker, but
@@ -73,15 +75,19 @@ const gamutSafe = (lightness, chroma, hue, label) => {
73
75
  export const LIGHT_CHROMA_FLOOR_EXCEPTION = {
74
76
  teal: 0.08,
75
77
  };
76
- const solveOnLightSurface = (name, hue, startChroma, floor, minimumChroma = 0) => {
78
+ const solveOnLightSurface = (name, hue, startChroma, floor, minimumChroma = 0, editorFloor = 0) => {
77
79
  let chroma = startChroma;
78
80
  for (let i = 0; i < 60; i += 1) {
79
81
  const rounded = Math.round(chroma * 10000) / 10000;
80
82
  // Lower lightness means more contrast here, so rounding down never breaks the floor.
81
83
  let L = floorTo(solveLightness(rounded, hue, lightNeutral.input, floor, 'down'), 3);
84
+ if (editorFloor > 0) {
85
+ L = Math.min(L, floorTo(solveLightness(rounded, hue, lightNeutral.page, editorFloor, 'down'), 3));
86
+ }
82
87
  for (let step = 0; step <= LIGHTNESS_SEARCH_STEPS; step += 1) {
83
88
  const colour = [L, rounded, hue];
84
- if (inGamut(colour) && contrastEmitted(colour, lightNeutral.input) >= floor)
89
+ if (inGamut(colour) && contrastEmitted(colour, lightNeutral.input) >= floor
90
+ && (editorFloor === 0 || contrastEmitted(colour, lightNeutral.page) >= editorFloor))
85
91
  return colour;
86
92
  L -= LIGHTNESS_STEP;
87
93
  }
@@ -98,11 +104,19 @@ const solveOnLightSurface = (name, hue, startChroma, floor, minimumChroma = 0) =
98
104
  // and at 4.5:1 no blue fill could move the editor by more than 0.033 in OKLab; this margin
99
105
  // is what lets the selection be seen.
100
106
  export const LIGHT_SYNTAX_FLOOR = 4.8;
107
+ // Every accent reads this much louder than the comment on the editor, so the comment
108
+ // stays the quietest thing a reader reads while the accents keep their own tier.
109
+ export const LIGHT_ACCENT_MARGIN = 1.06;
110
+ // Degrees of hue an accent may move from its Dark hue where the gamut blocks the margin.
111
+ // Teal drifts toward blue because the gamut at this lightness cannot carry its chroma
112
+ // floor at hue 192; -5 is the smallest step that can.
113
+ export const LIGHT_HUE_DRIFT = { teal: -5 };
101
114
  export const lightAccent = (name) => {
102
- const [, chroma, hue] = ACCENTS[name];
115
+ const [, chroma, darkHue] = ACCENTS[name];
116
+ const hue = darkHue + (LIGHT_HUE_DRIFT[name] ?? 0);
103
117
  const ceiling = CHROMA_CEILING[name] ?? CHROMA_DEFAULT[1];
104
118
  const minimum = LIGHT_CHROMA_FLOOR_EXCEPTION[name] ?? CHROMA_DEFAULT[0];
105
- return solveOnLightSurface(name, hue, Math.min(chroma * CHROMA_BOOST * LIGHT_ACCENT_CHROMA_SCALE, ceiling), LIGHT_SYNTAX_FLOOR, minimum);
119
+ return solveOnLightSurface(name, hue, Math.min(chroma * CHROMA_BOOST * LIGHT_ACCENT_CHROMA_SCALE, ceiling), LIGHT_SYNTAX_FLOOR, minimum, contrastEmitted(lightComment, lightNeutral.page) * LIGHT_ACCENT_MARGIN);
106
120
  };
107
121
  export const lightAccents = mapValues(ACCENTS, (_value, name) => lightAccent(name));
108
122
  export const lightSyntax = mapValues(SYNTAX, (accent) => lightAccents[accent]);
@@ -127,64 +141,96 @@ export const lightAccentScale = (name) => {
127
141
  solid: lightAccent(name),
128
142
  };
129
143
  };
130
- // Native light decorations have their own budget. They used to be pale washes at 0.990,
131
- // lighter than the 0.980 editor, and sRGB holds almost no chroma there: the blue selection
132
- // clipped to near-white and every overlay moved the editor by 0.013 in OKLab or less,
133
- // which no reader could see. A light overlay cannot lighten the editor, and it cannot
134
- // darken it much either, because the diff wash is painted over the selection and the
135
- // current line and the syntax accents are already at the floor under that stack. So each
136
- // was searched for the most visible colour that keeps every light reading state above
137
- // the floor, one overlay at a time with chroma bounded at 0.09, so the result is a floor
138
- // on visibility and not a proven maximum: hue carries what luminance cannot. The selection is
139
- // held back by the syntax floor, which is why that floor sits at 4.8:1 rather than 4.5:1.
140
- // The selection is the loudest of them, as on Dark; the word highlight and the other find
141
- // matches could each pass it and are held at three quarters of it instead.
144
+ // Near the light editor, sRGB leaves little room for visible pale fills. The hue supplies
145
+ // separation while the comment and syntax accents bound lightness on every covered
146
+ // stack. The selection remains the strongest reading cue, including through a word or
147
+ // another find match.
142
148
  export const lightOverlay = {
143
- selection: { color: gamutSafe(0.835, 0.085, 250, 'selection'), alpha: 0.35 },
144
- findMatchOther: { color: gamutSafe(0.916, 0.078, 90, 'other find match'), alpha: 0.40 },
145
- wordHighlight: { color: gamutSafe(0.872, 0.087, 200, 'word highlight'), alpha: 0.29 },
146
- lineHighlight: { color: gamutSafe(0.948, 0.024, BASE_HUE, 'current line'), alpha: 0.95 },
147
- };
148
- // Dark draws these five from a translucent neutral, which on Light became the current-line
149
- // wash and moved the editor by 0.018 in OKLab or less. None is bound by the text on it:
150
- // each could reach the selection, so each is held at three quarters of it, seen and never
151
- // mistaken for it. The two that follow a selection take its colour.
152
- const LIGHT_RANGE_WASH = {
153
- color: gamutSafe(0.860, 0.040, BASE_HUE, 'range wash'), alpha: 0.35,
149
+ selection: { color: [0.800, 0.100, 246], alpha: 0.500 },
150
+ findMatchOther: { color: [0.880, 0.100, 84], alpha: 0.500 },
151
+ wordHighlight: { color: [0.900, 0.120, 194], alpha: 0.450 },
152
+ lineHighlight: { color: [0.948, 0.010, 90], alpha: 0.950 },
154
153
  };
154
+ // Find and folded ranges need a cyan hue to stay visible without hiding a selection on
155
+ // a diff word. Selection highlight is halved by VS Code's CSS after its key is emitted.
155
156
  export const lightDecoration = {
156
- selectionHighlight: { color: lightOverlay.selection.color, alpha: 0.25 },
157
- inactiveSelection: { color: lightOverlay.selection.color, alpha: 0.25 },
158
- findRange: LIGHT_RANGE_WASH,
159
- rangeHighlight: LIGHT_RANGE_WASH,
160
- fold: LIGHT_RANGE_WASH,
157
+ selectionHighlight: { color: [0.870, 0.060, 252], alpha: 0.850 },
158
+ // Re-solved with the tiers on 2026-09-29; it no longer keeps its earlier emitted colour.
159
+ inactiveSelection: { color: [0.940, 0.030, 246], alpha: 0.750 },
160
+ findRange: { color: [0.950, 0.070, 196], alpha: 0.450 },
161
+ rangeHighlight: { color: [0.890, 0.050, 260], alpha: 0.350 },
162
+ fold: { color: [0.950, 0.070, 196], alpha: 0.450 },
163
+ };
164
+ // Tier 3 (LIGHT_TIER) is painted 0.03-0.035 from the editor; strongWord and searchMatch
165
+ // are tier 2. Each is solved with solveOverlay against the comment over every covered stack,
166
+ // at least 0.03 from each diff fill unless the distinctness test names the pair exempt.
167
+ export const lightSecondaryDecoration = {
168
+ hover: { color: [0.910, 0.040, 259], alpha: 0.450 },
169
+ symbol: { color: [0.960, 0.050, 90], alpha: 0.500 },
170
+ strongWord: { color: [0.900, 0.120, 194], alpha: 0.450 },
171
+ stackFrame: { color: [0.960, 0.050, 90], alpha: 0.500 },
172
+ focusedStackFrame: { color: [0.960, 0.120, 107], alpha: 0.250 },
173
+ bracketMatch: { color: [0.960, 0.050, 90], alpha: 0.500 },
174
+ commentRange: { color: [0.960, 0.050, 90], alpha: 0.500 },
175
+ activeCommentRange: { color: [0.960, 0.050, 90], alpha: 0.500 },
176
+ unchangedCode: { color: [0.920, 0.000, 264], alpha: 0.500 },
177
+ mergeCurrentHeader: { color: [0.960, 0.120, 107], alpha: 0.250 },
178
+ mergeIncomingHeader: { color: [0.910, 0.040, 259], alpha: 0.450 },
179
+ mergeCommonHeader: { color: [0.920, 0.000, 264], alpha: 0.500 },
180
+ mergeChange: { color: [0.960, 0.120, 107], alpha: 0.250 },
181
+ mergeChangeWord: { color: [0.960, 0.120, 107], alpha: 0.250 },
182
+ searchMatch: { color: [0.880, 0.100, 84], alpha: 0.500 },
183
+ covered: { color: [0.960, 0.060, 148], alpha: 0.450 },
184
+ uncovered: { color: [0.920, 0.020, 22], alpha: 0.500 },
161
185
  };
162
186
  export const lightFindMatch = {
163
187
  current: lightAccentScale('gold').subtle,
164
188
  };
165
- const LIGHT_DIFF_WASH_COLOR = {
166
- added: lightAccents.green,
167
- removed: lightAccents.coral,
168
- };
169
- // Pale subtle fills moved the editor by less than 0.01 in OKLab and disappeared in a
170
- // rendered diff. Low-alpha solid accents make the line and changed word perceptible while
171
- // every syntax role stays above 4.5:1 and at least half the selection cue survives. The
172
- // wash shares its budget with the selection under it: at 0.07 it left the selection
173
- // 0.024 of visibility, and 0.06 splits the room so both land near 0.03.
189
+ // Solved with the Light secondaries: each line and word clears the 0.03 visibility floor
190
+ // (the word against its own line), keeps the selection cue through the wash above half,
191
+ // and leaves the comment above 4.5:1 on every reading stack they land in.
174
192
  export const lightDiffWash = {
175
- addedLine: { color: LIGHT_DIFF_WASH_COLOR.added, alpha: 0.06 },
176
- addedWord: { color: LIGHT_DIFF_WASH_COLOR.added, alpha: 0.03 },
177
- removedLine: { color: LIGHT_DIFF_WASH_COLOR.removed, alpha: 0.06 },
178
- removedWord: { color: LIGHT_DIFF_WASH_COLOR.removed, alpha: 0.03 },
193
+ addedLine: { color: [0.800, 0.130, 144], alpha: 0.150 },
194
+ addedWord: { color: [0.850, 0.190, 148], alpha: 0.290 },
195
+ removedLine: { color: [0.870, 0.070, 30], alpha: 0.250 },
196
+ removedWord: { color: [0.860, 0.070, 28], alpha: 0.350 },
179
197
  };
180
- // The strips are the only opaque diff marker. Their restrained chroma keeps the gutter
181
- // quieter than the body washes while the 0.06 lightness separation distinguishes meaning.
198
+ // The strips carry the line number, the current line's included, so both answer to 3:1.
199
+ // Green starts 0.06 above the coral for colour vision, and its chroma cap keeps the pair
200
+ // equally loud.
201
+ const lightStrip = (name, hue, lightness, maxChroma) => {
202
+ const best = solveMarker({
203
+ hues: [hue], against: lightNeutral.page,
204
+ foregrounds: { lineNumber: lightEditorNeutral.muted, activeLineNumber: lightEditorNeutral.textPrimary },
205
+ stacks: [[]], floor: NON_TEXT_FLOOR, minChroma: 0.04, lightness, chroma: [0.04, maxChroma],
206
+ });
207
+ if (best === null)
208
+ throw new Error(`no light ${name} strip`);
209
+ return best.colour;
210
+ };
211
+ const removedStrip = lightStrip('removed', ACCENTS.coral[2], [0.6, 0.98], 0.18);
182
212
  export const lightDiff = {
183
- addedStrip: gamutSafe(0.266, 0.076, ACCENTS.green[2], 'added strip'),
184
- removedStrip: gamutSafe(0.206, 0.076, ACCENTS.coral[2], 'removed strip'),
213
+ addedStrip: lightStrip('added', ACCENTS.green[2], [removedStrip[0] + 0.061, 0.98], 0.10),
214
+ removedStrip,
185
215
  addedGutter: lightAccents.green,
186
216
  removedGutter: lightAccents.coral,
187
217
  };
218
+ // The coverage gutter fills the line-number cell, so it answers to 3:1 against the number
219
+ // alone. VS Code derives it from the diff keys unless it is set, which would put the diff's
220
+ // pale wash under a number it cannot carry.
221
+ const lightGutter = (name, hue) => {
222
+ const best = solveMarker({
223
+ hues: [hue], against: lightNeutral.page, foregrounds: { lineNumber: lightEditorNeutral.muted },
224
+ stacks: [[]], floor: NON_TEXT_FLOOR, minChroma: 0.04, lightness: [0.6, 0.98], chroma: [0.04, 0.18],
225
+ });
226
+ if (best === null)
227
+ throw new Error(`no light coverage gutter for ${name}`);
228
+ return best.colour;
229
+ };
230
+ export const lightCoverageGutter = {
231
+ covered: lightGutter('covered', ACCENTS.green[2]),
232
+ uncovered: lightGutter('uncovered', ACCENTS.coral[2]),
233
+ };
188
234
  export const lightBrackets = bracketPairs.map((name) => lightAccents[name]);
189
235
  export const lightCursor = lightAccents.gold;
190
236
  // Integrated-terminal colours are measured on the light panel (`surface`). The standalone
package/dist/light.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"light.js","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"light.js","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":"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"}
package/dist/oklch.d.ts CHANGED
@@ -9,6 +9,7 @@ export declare const luminance: (c: Oklch) => number;
9
9
  export declare function contrast(a: Oklch, b: Oklch): number;
10
10
  export declare function contrastEmitted(a: Oklch, b: Oklch): number;
11
11
  export declare function compositeEmitted(over: Oklch, alpha: number, under: Oklch): Oklch;
12
+ export declare function compositeCssAlpha(over: Oklch, alpha: number, under: Oklch): Oklch;
12
13
  export declare function hexToOklch(value: string): Oklch;
13
14
  export declare function solveLightness(chroma: number, hue: number, background: Oklch, target: number, direction: SolveDirection): number;
14
15
  //# sourceMappingURL=oklch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oklch.d.ts","sourceRoot":"","sources":["../src/oklch.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAa7E;AAGD,eAAO,MAAM,OAAO,GAAI,GAAG,KAAK,KAAG,OACkD,CAAC;AAMtF,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAGpC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,KAAK,KAAG,MAGpC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAGnD;AASD,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAK1D;AAUD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAMhF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAa/C;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,KAAK,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,GACxB,MAAM,CASR"}
1
+ {"version":3,"file":"oklch.d.ts","sourceRoot":"","sources":["../src/oklch.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9E,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7E,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,MAAM,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAa7E;AAGD,eAAO,MAAM,OAAO,GAAI,GAAG,KAAK,KAAG,OACkD,CAAC;AAMtF,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAGpC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,eAAO,MAAM,SAAS,GAAI,GAAG,KAAK,KAAG,MAGpC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAGnD;AASD,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,MAAM,CAK1D;AAUD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAEhF;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAOjF;AASD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAa/C;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,KAAK,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,cAAc,GACxB,MAAM,CASR"}
package/dist/oklch.js CHANGED
@@ -37,7 +37,7 @@ const srgbLuminance = (channels) => {
37
37
  return 0.2126 * r + 0.7152 * g + 0.0722 * b;
38
38
  };
39
39
  // A user measures the 8-bit hex that ships, not the ideal OKLCH. Rounding moves the ratio
40
- // by up to 0.06, so the build gate uses this and the solvers use the continuous form.
40
+ // near a floor; roundingShift measures the largest gap on its documented grid.
41
41
  export function contrastEmitted(a, b) {
42
42
  const quantise = (c) => oklchToLinearSrgb(...c).map(clamp).map(encode).map((v) => Math.round(clamp(v) * 255) / 255);
43
43
  const [hi, lo] = [srgbLuminance(quantise(a)), srgbLuminance(quantise(b))].sort((x, y) => y - x);
@@ -51,7 +51,18 @@ const emittedChannels = (c) => {
51
51
  // A decoration ships as an 8-bit colour and an 8-bit alpha byte, and the renderer blends
52
52
  // those bytes. Compositing in OKLCH instead would miss the rounding on both operands.
53
53
  export function compositeEmitted(over, alpha, under) {
54
- const a = Math.round(clamp(alpha) * 255) / 255;
54
+ return compositeChannels(over, Math.round(clamp(alpha) * 255) / 255, under);
55
+ }
56
+ // CSS colours are premultiplied to bytes by Skia before source-over blending. The
57
+ // destination uses a 256-step scale, so repeated layers differ from exact interpolation.
58
+ export function compositeCssAlpha(over, alpha, under) {
59
+ const a = Math.round(clamp(alpha) * 255);
60
+ const front = emittedChannels(over);
61
+ const back = emittedChannels(under);
62
+ const blend = front.map((v, i) => Math.min(255, Math.round(v * a / 255) + Math.floor(back[i] * (256 - a) / 256)));
63
+ return hexToOklch('#' + blend.map((v) => v.toString(16).padStart(2, '0')).join(''));
64
+ }
65
+ function compositeChannels(over, a, under) {
55
66
  const front = emittedChannels(over);
56
67
  const back = emittedChannels(under);
57
68
  const blend = front.map((v, i) => Math.round(v * a + back[i] * (1 - a)));
package/dist/oklch.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oklch.js","sourceRoot":"","sources":["../src/oklch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oklch.js","sourceRoot":"","sources":["../src/oklch.ts"],"names":[],"mappings":"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"}
package/dist/palette.d.ts CHANGED
@@ -99,18 +99,22 @@ export interface Overlay {
99
99
  readonly color: Oklch;
100
100
  readonly alpha: number;
101
101
  }
102
+ export type DecorationName = 'selectionHighlight' | 'inactiveSelection' | 'findRange' | 'rangeHighlight' | 'fold';
103
+ export type SecondaryDecorationName = 'hover' | 'symbol' | 'strongWord' | 'stackFrame' | 'focusedStackFrame' | 'bracketMatch' | 'commentRange' | 'activeCommentRange' | 'unchangedCode' | 'mergeCurrentHeader' | 'mergeIncomingHeader' | 'mergeCommonHeader' | 'mergeChange' | 'mergeChangeWord' | 'searchMatch' | 'covered' | 'uncovered';
104
+ export declare const decoration: Record<DecorationName, Overlay>;
105
+ export declare const secondaryDecoration: Record<SecondaryDecorationName, Overlay>;
102
106
  export declare const overlay: {
103
107
  readonly selection: {
104
108
  readonly color: readonly [0.48, 0.195, 260];
105
109
  readonly alpha: 0.39;
106
110
  };
107
111
  readonly findMatchOther: {
108
- readonly color: readonly [0.4, 0.075, 90];
112
+ readonly color: readonly [0.36, 0.07, 90];
109
113
  readonly alpha: 0.4;
110
114
  };
111
115
  readonly wordHighlight: {
112
- readonly color: Oklch;
113
- readonly alpha: 0.28;
116
+ readonly color: readonly [0.38, 0.2, 264];
117
+ readonly alpha: 0.45;
114
118
  };
115
119
  readonly lineHighlight: {
116
120
  readonly color: Oklch;