@sltsh/aion-tokens 1.1.7 → 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';
5
- export type { LightNeutralName } from './light.js';
6
- export { LIGHT_LIGHTNESS, lightNeutral, lightEditorNeutral, lightDimText, lightComment, lightSyntax, lightAnsiWhite, lightAnsiBrightBlack, LIGHT_CHROMA_FLOOR_EXCEPTION, lightAccent, lightAccents, lightAccentScale, lightOverlay, lightFindMatch, lightDiff, lightDiffWash, lightBrackets, lightCursor, lightAnsi, lightTerminalSelection, } from './light.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
+ export type { LightNeutralName, LightDecorationName } 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
- export type { Marker, Solution } from './solve.js';
12
- export { solveMarker, binding, distanceEmitted } from './solve.js';
13
- export type { ReadingState, StateSource, SurfaceName } from './states.js';
14
- export { readingStates, readingForegrounds, SHIPPED, LIGHT_SHIPPED } from './states.js';
11
+ export type { Marker, Solution, OverlaySearch, OverlaySolution } from './solve.js';
12
+ export { solveMarker, solveOverlay, binding, distanceEmitted } from './solve.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';
@@ -19,4 +19,7 @@ export type { Palette, PreviewOptions, LightPreviewOptions, ColourScheme } from
19
19
  export { buildPalette, PREVIEW_DEFAULTS, buildLightPalette, LIGHT_PREVIEW_DEFAULTS, lightPalette, buildSchemePalette, } from './preview.js';
20
20
  export type { Rival, RivalResult, SurfaceOrder } from './rivals.js';
21
21
  export { RIVALS, SYNTAX_ROLES_COMPARED, contrastHex, measure, surfaceOrder } from './rivals.js';
22
+ export type { StripScheme } from './strip.js';
23
+ export { paletteStrip } from './strip.js';
24
+ export { srgbChannels, roundingShift, roundingFlip } from './rounding.js';
22
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,13 +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, 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
- export { solveMarker, binding, distanceEmitted } from './solve.js';
8
- export { readingStates, readingForegrounds, SHIPPED, LIGHT_SHIPPED } from './states.js';
7
+ export { solveMarker, solveOverlay, binding, distanceEmitted } from './solve.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
+ export { paletteStrip } from './strip.js';
14
+ export { srgbChannels, roundingShift, roundingFlip } from './rounding.js';
13
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,cAAc,EAAE,SAAS,EACpF,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,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGnE,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"}
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, 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;
@@ -21,47 +21,53 @@ export declare const lightDimText: Oklch;
21
21
  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
+ 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>>;
24
27
  export declare const lightAccent: (name: AccentName) => Oklch;
25
28
  export declare const lightAccents: Record<AccentName, Oklch>;
26
29
  export declare const lightSyntax: Record<SyntaxRole, Oklch>;
27
30
  export declare const lightAccentScale: (name: AccentName) => AccentScale;
28
31
  export declare const lightOverlay: {
29
32
  readonly selection: {
30
- readonly color: Oklch;
31
- readonly alpha: 0.3;
33
+ readonly color: readonly [0.8, 0.1, 246];
34
+ readonly alpha: 0.5;
32
35
  };
33
36
  readonly findMatchOther: {
34
- readonly color: Oklch;
35
- readonly alpha: 0.55;
37
+ readonly color: readonly [0.88, 0.1, 84];
38
+ readonly alpha: 0.5;
36
39
  };
37
40
  readonly wordHighlight: {
38
- readonly color: Oklch;
41
+ readonly color: readonly [0.9, 0.12, 194];
39
42
  readonly alpha: 0.45;
40
43
  };
41
44
  readonly lineHighlight: {
42
- readonly color: Oklch;
45
+ readonly color: readonly [0.948, 0.01, 90];
43
46
  readonly alpha: 0.95;
44
47
  };
45
48
  };
49
+ export declare const lightDecoration: Record<DecorationName, Overlay>;
50
+ export declare const lightSecondaryDecoration: Record<SecondaryDecorationName, Overlay>;
51
+ export type LightDecorationName = DecorationName;
46
52
  export declare const lightFindMatch: {
47
53
  readonly current: Oklch;
48
54
  };
49
55
  export declare const lightDiffWash: {
50
56
  readonly addedLine: {
51
- readonly color: Oklch;
52
- readonly alpha: 0.06;
57
+ readonly color: readonly [0.8, 0.13, 144];
58
+ readonly alpha: 0.15;
53
59
  };
54
60
  readonly addedWord: {
55
- readonly color: Oklch;
56
- readonly alpha: 0.03;
61
+ readonly color: readonly [0.85, 0.19, 148];
62
+ readonly alpha: 0.29;
57
63
  };
58
64
  readonly removedLine: {
59
- readonly color: Oklch;
60
- readonly alpha: 0.06;
65
+ readonly color: readonly [0.87, 0.07, 30];
66
+ readonly alpha: 0.25;
61
67
  };
62
68
  readonly removedWord: {
63
- readonly color: Oklch;
64
- readonly alpha: 0.03;
69
+ readonly color: readonly [0.86, 0.07, 28];
70
+ readonly alpha: 0.35;
65
71
  };
66
72
  };
67
73
  export declare const lightDiff: {
@@ -70,6 +76,10 @@ export declare const lightDiff: {
70
76
  readonly addedGutter: Oklch;
71
77
  readonly removedGutter: Oklch;
72
78
  };
79
+ export declare const lightCoverageGutter: {
80
+ readonly covered: Oklch;
81
+ readonly uncovered: Oklch;
82
+ };
73
83
  export declare const lightBrackets: readonly Oklch[];
74
84
  export declare const lightCursor: Oklch;
75
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,EAAW,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;AAwBF,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;AAYF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAKmB,CAAC;AAE7C,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.500 buys that room and stays quieter than dim text.
39
- export const lightComment = lightNeutralRole(0.500);
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
  }
@@ -94,11 +100,23 @@ const solveOnLightSurface = (name, hue, startChroma, floor, minimumChroma = 0) =
94
100
  }
95
101
  throw new Error(`no in-gamut light colour for ${name} at ${floor}:1`);
96
102
  };
103
+ // Light syntax clears 4.8:1 on `input`, not 4.5:1. The selection sits under running code,
104
+ // and at 4.5:1 no blue fill could move the editor by more than 0.033 in OKLab; this margin
105
+ // is what lets the selection be seen.
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 };
97
114
  export const lightAccent = (name) => {
98
- const [, chroma, hue] = ACCENTS[name];
115
+ const [, chroma, darkHue] = ACCENTS[name];
116
+ const hue = darkHue + (LIGHT_HUE_DRIFT[name] ?? 0);
99
117
  const ceiling = CHROMA_CEILING[name] ?? CHROMA_DEFAULT[1];
100
118
  const minimum = LIGHT_CHROMA_FLOOR_EXCEPTION[name] ?? CHROMA_DEFAULT[0];
101
- return solveOnLightSurface(name, hue, Math.min(chroma * CHROMA_BOOST * LIGHT_ACCENT_CHROMA_SCALE, ceiling), CONTRAST_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);
102
120
  };
103
121
  export const lightAccents = mapValues(ACCENTS, (_value, name) => lightAccent(name));
104
122
  export const lightSyntax = mapValues(SYNTAX, (accent) => lightAccents[accent]);
@@ -123,48 +141,96 @@ export const lightAccentScale = (name) => {
123
141
  solid: lightAccent(name),
124
142
  };
125
143
  };
126
- // Native light decorations have their own budget. They used to be pale washes at 0.990,
127
- // lighter than the 0.980 editor, and sRGB holds almost no chroma there: the blue selection
128
- // clipped to near-white and every overlay moved the editor by 0.013 in OKLab or less,
129
- // which no reader could see. A light overlay cannot lighten the editor, and it cannot
130
- // darken it much either, because the diff wash is painted over the selection and the
131
- // current line and the syntax accents are already at the floor under that stack. So each
132
- // was searched for the most visible colour that keeps every light reading state above
133
- // the floor, one overlay at a time with chroma bounded at 0.09, so the result is a floor
134
- // on visibility and not a proven maximum: hue carries what luminance cannot. The selection is held back by the function
135
- // colour under a removed-word diff.
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.
136
148
  export const lightOverlay = {
137
- selection: { color: gamutSafe(0.882, 0.060, 250, 'selection'), alpha: 0.30 },
138
- findMatchOther: { color: gamutSafe(0.916, 0.078, 90, 'other find match'), alpha: 0.55 },
139
- wordHighlight: { color: gamutSafe(0.872, 0.087, 200, 'word highlight'), alpha: 0.45 },
140
- lineHighlight: { color: gamutSafe(0.948, 0.024, BASE_HUE, 'current line'), alpha: 0.95 },
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 },
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.
156
+ export const lightDecoration = {
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 },
141
185
  };
142
186
  export const lightFindMatch = {
143
187
  current: lightAccentScale('gold').subtle,
144
188
  };
145
- const LIGHT_DIFF_WASH_COLOR = {
146
- added: lightAccents.green,
147
- removed: lightAccents.coral,
148
- };
149
- // Pale subtle fills moved the editor by less than 0.01 in OKLab and disappeared in a
150
- // rendered diff. Low-alpha solid accents make the line and changed word perceptible while
151
- // every syntax role stays above 4.5:1 and at least half the selection cue survives. The
152
- // wash shares its budget with the selection under it: at 0.07 it left the selection
153
- // 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.
154
192
  export const lightDiffWash = {
155
- addedLine: { color: LIGHT_DIFF_WASH_COLOR.added, alpha: 0.06 },
156
- addedWord: { color: LIGHT_DIFF_WASH_COLOR.added, alpha: 0.03 },
157
- removedLine: { color: LIGHT_DIFF_WASH_COLOR.removed, alpha: 0.06 },
158
- 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 },
197
+ };
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;
159
210
  };
160
- // The strips are the only opaque diff marker. Their restrained chroma keeps the gutter
161
- // quieter than the body washes while the 0.06 lightness separation distinguishes meaning.
211
+ const removedStrip = lightStrip('removed', ACCENTS.coral[2], [0.6, 0.98], 0.18);
162
212
  export const lightDiff = {
163
- addedStrip: gamutSafe(0.266, 0.076, ACCENTS.green[2], 'added strip'),
164
- 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,
165
215
  addedGutter: lightAccents.green,
166
216
  removedGutter: lightAccents.coral,
167
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
+ };
168
234
  export const lightBrackets = bracketPairs.map((name) => lightAccents[name]);
169
235
  export const lightCursor = lightAccents.gold;
170
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":"AAIA,MAAM,UAAU,iBAAiB,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;IAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5C,OAAO;QACL,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;QACtD,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;QACvD,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,KAAK,CAAC;AAC5B,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAQ,EAAW,EAAE,CAC3C,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;AAEtF,MAAM,KAAK,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACjE,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AACpG,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAE7F,MAAM,UAAU,GAAG,CAAC,CAAQ;IAC1B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,CAAQ,EAAE,KAAa;IAC9C,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAQ,EAAU,EAAE;IAC5C,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAA6B,CAAC;IACjF,OAAO,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,CAAQ,EAAE,CAAQ;IACzC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAqB,CAAC;IACxF,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,aAAa,GAAG,CAAC,QAA2B,EAAU,EAAE;IAC5D,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACjG,OAAO,MAAM,GAAG,CAAE,GAAG,MAAM,GAAG,CAAE,GAAG,MAAM,GAAG,CAAE,CAAC;AACjD,CAAC,CAAC;AAEF,0FAA0F;AAC1F,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,CAAQ,EAAE,CAAQ;IAChD,MAAM,QAAQ,GAAG,CAAC,CAAQ,EAAY,EAAE,CACtC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9F,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAqB,CAAC;IACpH,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,CAAQ,EAA4B,EAAE;IAC7D,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,CAAE,EAAE,CAAE,EAAE,CAAE,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF,yFAAyF;AACzF,sFAAsF;AACtF,MAAM,UAAU,gBAAgB,CAAC,IAAW,EAAE,KAAa,EAAE,KAAY;IACvE,OAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,kFAAkF;AAClF,yFAAyF;AACzF,MAAM,UAAU,iBAAiB,CAAC,IAAW,EAAE,KAAa,EAAE,KAAY;IACxE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAW,EAAE,CAAS,EAAE,KAAY;IAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,OAAO,UAAU,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;SACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAA6B,CAAC;IACrG,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC;IACjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7C,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,GAAW,EACX,UAAiB,EACjB,MAAc,EACd,SAAyB;IAEzB,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC;QAC9D,IAAI,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YAAE,EAAE,GAAG,GAAG,CAAC;;YACvC,EAAE,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC"}
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;
@@ -1 +1 @@
1
- {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../src/palette.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../src/palette.ts"],"names":[],"mappings":"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"}