@cplieger/web-terminal-ui 5.2.2 → 5.2.3
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/02-terminal.css +38 -7
- package/package.json +2 -2
package/css/02-terminal.css
CHANGED
|
@@ -191,13 +191,14 @@
|
|
|
191
191
|
display: block;
|
|
192
192
|
}
|
|
193
193
|
|
|
194
|
-
/* Clickable URLs. OSC 8 hyperlinks (base .term-link) underline on HOVER
|
|
195
|
-
an application can attach one OSC 8 link to a whole
|
|
196
|
-
e.g. a markdown link whose URL wraps inside a table
|
|
197
|
-
keeps the link open across the cell padding, the
|
|
198
|
-
adjacent column — so a persistent underline
|
|
199
|
-
and, on wrap, the full row. Hover-only matches
|
|
200
|
-
own text colour (which the engine renders)
|
|
194
|
+
/* Clickable URLs. OSC 8 hyperlinks (base .term-link) underline on HOVER where a
|
|
195
|
+
pointer can hover: an application can attach one OSC 8 link to a whole
|
|
196
|
+
padded/bordered region — e.g. a markdown link whose URL wraps inside a table
|
|
197
|
+
cell, where the terminal keeps the link open across the cell padding, the
|
|
198
|
+
borders and the empty adjacent column — so a persistent underline risks
|
|
199
|
+
bleeding across the whole cell and, on wrap, the full row. Hover-only matches
|
|
200
|
+
iTerm2 / VTE / kitty. The app's own text colour (which the engine renders)
|
|
201
|
+
keeps the link discoverable at rest.
|
|
201
202
|
Auto-detected bare URLs (.term-autolink) are tightly scoped to the URL text and
|
|
202
203
|
never bleed, so they keep a subtle persistent underline. (The engine also only
|
|
203
204
|
anchors runs with real link text, so the underline hugs the text either way.) */
|
|
@@ -215,6 +216,36 @@
|
|
|
215
216
|
text-decoration: underline solid;
|
|
216
217
|
}
|
|
217
218
|
|
|
219
|
+
/* Where nothing can hover, hover-only is no affordance at all: a touch user sees
|
|
220
|
+
an app-declared link as plain text and has to guess. Measured on kiro-cli at 41
|
|
221
|
+
columns: it emits OSC 8 for every markdown link (its hyperlink capability
|
|
222
|
+
unlocks on the TERM_PROGRAM=iTerm.app identity the engine advertises), so a
|
|
223
|
+
phone session is full of tappable, invisible links. Give them the same subtle
|
|
224
|
+
dotted underline the auto-detected ones carry.
|
|
225
|
+
|
|
226
|
+
The bleed risk above is what kept this off, and it is narrower than it reads:
|
|
227
|
+
the engine refuses to anchor a run with no real link text, so the padding, the
|
|
228
|
+
box-drawing borders and the indent cells a wrapped link leaks onto the next row
|
|
229
|
+
stay unanchored and unmarked (verified against a captured OSC 8 link that wraps
|
|
230
|
+
mid-URL: the three leaked indent cells carry the href on the wire and get no
|
|
231
|
+
anchor). What remains is an app leaving one link open across genuine text in an
|
|
232
|
+
adjacent column, which would be underlined too. On a device that cannot hover,
|
|
233
|
+
an occasional over-underline beats a link with no affordance.
|
|
234
|
+
|
|
235
|
+
`hover: none` is the pointing device's capability, not a viewport width, so a
|
|
236
|
+
narrow window on a desktop keeps hover styling and a tablet with a trackpad is
|
|
237
|
+
treated as hoverable. */
|
|
238
|
+
@media (hover: none) {
|
|
239
|
+
:where(.wt-root) .term-link {
|
|
240
|
+
text-decoration: underline dotted;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/* Keep the pressed/solid distinction reachable without hover. */
|
|
244
|
+
:where(.wt-root) .term-link:active {
|
|
245
|
+
text-decoration: underline solid;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
218
249
|
/* Inline cursor cell (xterm.js convention): the character at the cursor
|
|
219
250
|
position gets the .term-cursor class. CSS gives it inverted colors;
|
|
220
251
|
the blink is driven by a JS interval that toggles .cursor-blink-off on
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cplieger/web-terminal-ui",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.3",
|
|
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": "GPL-3.0-or-later",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"eslint": "10.8.0",
|
|
57
57
|
"fast-check": "4.9.0",
|
|
58
58
|
"happy-dom": "20.11.1",
|
|
59
|
-
"html-validate": "11.6.
|
|
59
|
+
"html-validate": "11.6.2",
|
|
60
60
|
"knip": "6.31.0",
|
|
61
61
|
"prettier": "3.9.6",
|
|
62
62
|
"stylelint": "17.14.1",
|