@cplieger/web-terminal-ui 6.1.1 → 6.1.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.
Files changed (2) hide show
  1. package/css/page.css +25 -6
  2. package/package.json +1 -1
package/css/page.css CHANGED
@@ -73,10 +73,15 @@ body {
73
73
  --wt-loading-bg: #000;
74
74
  --wt-loading-bar-inline-size: min(220px, 62vw);
75
75
  --wt-loading-bar-block-size: 5px;
76
- /* Symmetric ease-in-out-cubic, deliberately NOT one of the component easing
77
- tokens: those are all asymmetric (they settle at one end), which reads as a
78
- stutter on a looping indeterminate sweep. */
79
- --wt-loading-sweep-easing: cubic-bezier(0.65, 0, 0.35, 1);
76
+ /* Symmetric, deliberately NOT one of the component easing tokens: those are all
77
+ asymmetric (they settle at one end), which reads as a stutter on a looping
78
+ indeterminate sweep. It is also deliberately NOT an ease-in-out-cubic
79
+ (`cubic-bezier(0.65, 0, 0.35, 1)`, what this was): a curve with zero velocity
80
+ at both ends spends its two slow phases exactly where the sweep is clipped
81
+ off-screen, which measured as 315 ms of blank track at each end of every
82
+ 1.5 s lap. Non-zero end velocity keeps the symmetry and cuts that to 90 ms,
83
+ below the point where the loop reads as a stall. */
84
+ --wt-loading-sweep-easing: cubic-bezier(0.3, 0.25, 0.7, 0.75);
80
85
  --wt-loading-sweep-duration: 1.5s;
81
86
 
82
87
  position: fixed;
@@ -129,6 +134,15 @@ body {
129
134
  content: "";
130
135
  position: absolute;
131
136
  inset-block: 0;
137
+ /* Load-bearing, and the whole reason the sweep used to enter mid-track: with
138
+ both inline offsets `auto` an absolutely positioned box falls back to its
139
+ STATIC position, and .wt-loading sets `text-align: center`, which centres
140
+ that static position inside the 220px track. The keyframes below are written
141
+ against the track's left edge, so every offset was silently shifted right by
142
+ (220 - 92.4) / 2 = 64px: the sweep was already visible at t=0 near the left
143
+ of centre, and it left the track at ~73% of the cycle. Pinning the origin is
144
+ what makes translateX(-100%) mean "one full sweep-width off the left edge". */
145
+ inset-inline-start: 0;
132
146
  inline-size: 42%;
133
147
  border-radius: inherit;
134
148
  background: linear-gradient(
@@ -167,12 +181,17 @@ body {
167
181
  opacity: 0;
168
182
  }
169
183
 
184
+ /* Offsets are percentages of the SWEEP (42% of the track), not of the track, so
185
+ -100% is exactly one sweep-width left of the origin (fully clipped, flush with
186
+ the left edge) and 100% / 0.42 = 238% puts its left edge flush with the right
187
+ edge. Flush at both ends rather than over-travelled: every pixel of travel
188
+ outside the track is dead time on a screen whose only job is to look alive. */
170
189
  @keyframes wt-loading-slide {
171
190
  0% {
172
- transform: translateX(-110%);
191
+ transform: translateX(-100%);
173
192
  }
174
193
  100% {
175
- transform: translateX(250%);
194
+ transform: translateX(238%);
176
195
  }
177
196
  }
178
197
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cplieger/web-terminal-ui",
3
- "version": "6.1.1",
3
+ "version": "6.1.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",