explico 0.13.0 → 0.13.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
@@ -14,6 +14,20 @@ under **Breaking** below; a PATCH never breaks.
14
14
 
15
15
  ## [Unreleased]
16
16
 
17
+ ## [0.13.1] - 2026-10-07
18
+
19
+ ### Fixed
20
+
21
+ - **A hovered symbol in an equation no longer hides the glyph to its left.**
22
+ The highlight (`[data-notation-key]:hover` / `.is-notation-active` inside
23
+ `.katex-html`, and the same symbol inside a card's formula) was an opaque
24
+ `accent-low` background with a 0.12em ring, and KaTeX paints its boxes in
25
+ source order, so hovering the `y` of `dy` covered the right half of the
26
+ `d`. The highlight now blends with what is behind it
27
+ (`mix-blend-mode: multiply` in the light theme, `screen` in the dark one),
28
+ which tints the page and leaves the ink as it was. Forced-colors mode
29
+ resets the blend to `normal`.
30
+
17
31
  ## [0.13.0] - 2026-10-07
18
32
 
19
33
  ### Breaking
@@ -3432,7 +3446,8 @@ under **Breaking** below; a PATCH never breaks.
3432
3446
  system with its completeness gate, the curriculum-graph validator, the
3433
3447
  Astro/Starlight UI, the LMS / session / analytics seams, and the `content` CLI.
3434
3448
 
3435
- [Unreleased]: https://github.com/danieltuzes/explico/compare/v0.13.0...HEAD
3449
+ [Unreleased]: https://github.com/danieltuzes/explico/compare/v0.13.1...HEAD
3450
+ [0.13.1]: https://github.com/danieltuzes/explico/compare/v0.13.0...v0.13.1
3436
3451
  [0.13.0]: https://github.com/danieltuzes/explico/compare/v0.12.0...v0.13.0
3437
3452
  [0.12.0]: https://github.com/danieltuzes/explico/compare/v0.11.1...v0.12.0
3438
3453
  [0.11.1]: https://github.com/danieltuzes/explico/compare/v0.11.0...v0.11.1
@@ -33,6 +33,50 @@ required config block throws with the section of this file to read.
33
33
 
34
34
  ---
35
35
 
36
+ ## 0.13.0 → 0.13.1
37
+
38
+ **No course changes required.** This release has one fix, in the engine's
39
+ stylesheet: hovering a symbol in an equation, or in a card's formula, no longer
40
+ paints its highlight over the glyph to its left. No authoring rule,
41
+ `CourseConfig` field, Astro wiring, course script or CLI command changes. The
42
+ manifest schema stays v29.
43
+
44
+ ### 1. Update the dependency
45
+
46
+ ```bash
47
+ pnpm add -D explico@0.13.1
48
+ ```
49
+
50
+ **Coming from 0.12.0 or earlier:** apply "0.12.0 → 0.13.0" below first, and
51
+ install 0.13.1 wherever it says to install 0.13.0.
52
+
53
+ ### 2. Only if your course CSS or browser tests reach into the symbol highlight
54
+
55
+ ```bash
56
+ rg -n 'data-notation-key|is-notation-active|mix-blend-mode' src content tests
57
+ ```
58
+
59
+ No hit means nothing to do. Otherwise:
60
+
61
+ - **The highlight** of a hovered or active `[data-notation-key]` inside
62
+ `.katex-html`, and of one inside `.notation-panel-body [data-slot-formula]`,
63
+ has `mix-blend-mode: screen` (`multiply` under `:root[data-theme='light']`).
64
+ The background colour is still `--sl-color-accent-low`. A course rule that
65
+ overrides that background keeps working; one that also relies on the
66
+ highlight covering the glyph beside it no longer does.
67
+ - **Screenshots** of a hovered symbol need re-recording.
68
+
69
+ ### 3. Verify
70
+
71
+ ```bash
72
+ pnpm validate:content # run twice: the first run regenerates build/resolution/*
73
+ pnpm content check --changed
74
+ astro check
75
+ astro build
76
+ ```
77
+
78
+ Then run the course's browser tests, if it has any.
79
+
36
80
  ## 0.12.0 → 0.13.0
37
81
 
38
82
  **Course changes are required.** A course still on 0.11.1 applies
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "explico",
3
- "version": "0.13.0",
3
+ "version": "0.13.1",
4
4
  "description": "Build-time engine for prerequisite-aware, notation-rigorous course content: one validated content model, a semantic notation/citation/equation system with a completeness gate, and a deterministic JSON manifest.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -1036,6 +1036,14 @@ for (const gloss of glossItems) {
1036
1036
  :global([data-notation-key]:hover) {
1037
1037
  background: var(--sl-color-accent-low);
1038
1038
  box-shadow: 0 0 0 0.12em var(--sl-color-accent-low);
1039
+ mix-blend-mode: screen;
1040
+ }
1041
+
1042
+ :global(:root[data-theme='light'])
1043
+ .notation-panel-body
1044
+ [data-slot-formula]
1045
+ :global([data-notation-key]:hover) {
1046
+ mix-blend-mode: multiply;
1039
1047
  }
1040
1048
 
1041
1049
  .notation-panel-heading {
@@ -1133,10 +1141,22 @@ for (const gloss of glossItems) {
1133
1141
  cursor: help;
1134
1142
  }
1135
1143
 
1144
+ /* The highlight blends with what is behind it instead of covering it.
1145
+ KaTeX lays a formula out as boxes that paint in source order, so an
1146
+ opaque background (and its ring) on one symbol is painted over the glyph
1147
+ to its left — hovering the y of `dy` hid part of the d. `multiply` (light
1148
+ theme) and `screen` (dark) tint the page and leave ink of either theme as
1149
+ it was. */
1136
1150
  :global(.katex-html [data-notation-key]:hover),
1137
1151
  :global([data-notation-key].is-notation-active) {
1138
1152
  background: var(--sl-color-accent-low);
1139
1153
  box-shadow: 0 0 0 0.12em var(--sl-color-accent-low);
1154
+ mix-blend-mode: screen;
1155
+ }
1156
+
1157
+ :global(:root[data-theme='light'] .katex-html [data-notation-key]:hover),
1158
+ :global(:root[data-theme='light'] [data-notation-key].is-notation-active) {
1159
+ mix-blend-mode: multiply;
1140
1160
  }
1141
1161
 
1142
1162
  @media (max-width: 40rem) {
@@ -1152,6 +1172,7 @@ for (const gloss of glossItems) {
1152
1172
  color: HighlightText;
1153
1173
  background: Highlight;
1154
1174
  box-shadow: none;
1175
+ mix-blend-mode: normal;
1155
1176
  }
1156
1177
  }
1157
1178
  </style>