@cplieger/web-terminal-ui 7.3.1 → 7.3.2
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/css/30-tabs.css +31 -13
- package/package.json +1 -1
package/css/30-tabs.css
CHANGED
|
@@ -1008,27 +1008,45 @@
|
|
|
1008
1008
|
what a reader sees is the hole morphing between a square and the circle inscribed
|
|
1009
1009
|
in it — the ring survives the peak.
|
|
1010
1010
|
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1011
|
+
EVERY NUMBER HERE IS A RELATION, and the port that copied vibekit's LITERALS is
|
|
1012
|
+
what left this rule running with nothing visible to show. Two of them were
|
|
1013
|
+
arithmetic for an 8px mark with a 2px band: `inset: -1px` put the overlay on that
|
|
1014
|
+
mark's own border box, and the core stop `70%` is where the core reaches the
|
|
1015
|
+
hole's CORNER there — sqrt(2) * (size / 2 - band) / (size / 2) = 70.71%. At 9px
|
|
1016
|
+
and 2px the same relation is 78.57%, so the copied 70% ended the solid core at
|
|
1017
|
+
2.45px while the mask opens only at 2.5px: core and visible mask did not
|
|
1018
|
+
intersect at all, the beat lit nothing the mask kept, and 4 pixels of a 9x9 mark
|
|
1019
|
+
moved between trough and peak against vibekit's 20 (measured at dpr 1, both
|
|
1020
|
+
marks, sRGB). Written as relations they survive any size: the inset IS the band,
|
|
1021
|
+
the core stop IS the hole's corner radius, the mask's hole IS its inradius. So
|
|
1022
|
+
port vibekit's `.tab-run-dot` (`12-tabs.css`, "THE GLOW BEAT") — the same mark
|
|
1023
|
+
solving the same problem, with the mask from the start — by its relations, never
|
|
1024
|
+
by its numbers. sqrt(2) is spelled to four decimals because the synced stylelint
|
|
1025
|
+
sets `number-max-precision: 4` outside colour functions.
|
|
1016
1026
|
|
|
1017
1027
|
NOTHING HERE EXTENDS PAST THE MARK. `box-sizing: border-box` (01-scope.css) puts
|
|
1018
1028
|
the padding box — an absolutely positioned child's containing block — INSIDE the
|
|
1019
|
-
band, so
|
|
1020
|
-
|
|
1021
|
-
it":
|
|
1022
|
-
|
|
1023
|
-
|
|
1029
|
+
band, so `inset: calc(-1 * var(--wt-mark-band))` grows the overlay back out to
|
|
1030
|
+
exactly the mark's own border box and no further. Read it as "fill the mark", not
|
|
1031
|
+
as "overhang it": a larger inset would reach outside, where a feathered edge's
|
|
1032
|
+
visible radius moves with the beat and renders differently at every pixel
|
|
1033
|
+
density. `border-radius: 50%` is the same discipline on the last literal, and it
|
|
1034
|
+
is inert BY CONSTRUCTION rather than by measurement, which is why no assertion
|
|
1035
|
+
pins it: for side S and radius r the clip's 45° boundary is (S/2 - r) * sqrt(2) + r,
|
|
1036
|
+
monotonically decreasing in r, so the inscribed circle is the WORST case for
|
|
1037
|
+
reaching the hole's corners — and it still clears them for any band at or above
|
|
1038
|
+
S/2 * (1 - 1/sqrt(2)), 1.32px here against 2px. Do not assert it, and do not drop
|
|
1039
|
+
it either: it is what keeps a literal radius out of a rule whose whole defect was
|
|
1040
|
+
literals. */
|
|
1024
1041
|
:where(.wt-root) .wt-activity-mark[data-activity="working"]::before {
|
|
1025
1042
|
content: "";
|
|
1026
1043
|
position: absolute;
|
|
1027
|
-
inset: -
|
|
1028
|
-
border-radius:
|
|
1044
|
+
inset: calc(-1 * var(--wt-mark-band));
|
|
1045
|
+
border-radius: 50%;
|
|
1029
1046
|
background: radial-gradient(
|
|
1030
1047
|
closest-side,
|
|
1031
|
-
color-mix(in oklch, var(--wt-mark-ink) 78%, #fff) 0
|
|
1048
|
+
color-mix(in oklch, var(--wt-mark-ink) 78%, #fff) 0
|
|
1049
|
+
calc(1.4142 * (var(--wt-mark-size) / 2 - var(--wt-mark-band))),
|
|
1032
1050
|
transparent 92%
|
|
1033
1051
|
);
|
|
1034
1052
|
opacity: 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cplieger/web-terminal-ui",
|
|
3
|
-
"version": "7.3.
|
|
3
|
+
"version": "7.3.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Reference touch-first browser UI for @cplieger/web-terminal-engine: a composable kernel + feature modules (tabs, activity monitor, mobile toolbar, context menu, IME, predictive echo, viewport handling) and CSS. One createTerminal() call.",
|
|
6
6
|
"license": "MPL-2.0",
|