You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f620873
Browse filesBrowse the repository at this point in the historyBrowse files
{constro=newResizeObserver(()=>{if(infoOpen())placeInfo();});ro.observe(siteNav);ro.observe($("site-strip"));}// the bar grows a row on a phone once its tabs are in
2136
+
// The editor's foot floats over the code (style.css #editor-foot): the code is padded by the foot's height, as it
2137
+
// stands — a phone's row, focus mode's none — so its last line can always scroll clear of the buffers
#editor-column { grid-area: editor; min-width:0; min-height:0; display: flex; flex-direction: column; background:var(--Background); position: relative; --editor-foot-h:48px; } /* the foot floats over the code's last lines (below); its height is measured into --editor-foot-h (main.js) */
320
320
.shadow-pane { display: contents; } /* a part's insides, in its shadow root, laid out as its host's own children (shadow.js) */
321
321
#editor-mount { flex:1; min-height:0; overflow: visible; position: relative; } /* not hidden: the editor inside fills it and scrolls itself, and Safari's completion popup is positioned absolutely within it (CodeMirror's Safari fallback), so a clip here would cut the popup at the editor's foot */
322
322
:host(#editor-mount) .cm-scroller, .qs-card-body { overscroll-behavior: none; } /* code stops at its edges: no rubber band past them (iOS) — long lines still scroll, never wrap */
323
323
/* the editor's insides are in a shadow root on its mount (shadow.js): its rules name the mount as their :host */
/* Under the editor: where the caret is, and the ten buffers */
327
+
/* Over the foot of the editor: where the caret is, and the ten buffers. It floats on the code's last lines,
328
+
transparent, rather than taking a row of its own, and the code is padded by its height (--editor-foot-h) so the
329
+
last line can always scroll clear of it. */
328
330
#editor-foot {
329
331
display: grid;
330
332
grid-template-columns:1fr auto 1fr;
331
333
align-items: center;
332
334
gap:12px;
333
335
padding:6px14px8px;
334
336
flex-shrink:0;
335
-
}
336
-
#caret-pos { font:var(--t-small) var(--code-font); color:var(--mutedForeground); white-space: pre; overflow: hidden; text-overflow: ellipsis; min-width:0; } /* small and quiet: where the caret is, not what to read */
background: transparent; /* the code shows through whole: the chips carry their own pills and borders */
339
+
pointer-events: none; /* the gaps between the chips are the code's: a click there reaches it */
340
+
}
341
+
#editor-foot>* { pointer-events: auto; }
342
+
:host(#editor-mount) .cm-content { padding-bottom:var(--editor-foot-h,48px); } /* the room under the code for the foot */
343
+
#error-strip:not([hidden]) { margin-bottom:var(--editor-foot-h,48px); } /* the strip, when shown, sits above the foot, not under it */
344
+
#caret-pos { font:var(--t-small) var(--code-font); color:var(--mutedForeground); white-space: pre; overflow: hidden; text-overflow: ellipsis; min-width:0; justify-self: start; padding:2px8px; border-radius:var(--r-pill); background:color-mix(in srgb,var(--Background) 90%, transparent); } /* a solid pill, as the chips: readable over the code the foot floats on (a blur of code text smears) *//* small and quiet: where the caret is, not what to read */
337
345
body.no-caret-pos#caret-pos { visibility: hidden; } /* hidden until the preference shows it (main.js); its room is kept, so the buffer pads stay centred */
338
346
body.no-metro#link-section { display: none; } /* hidden until the preference shows it (main.js) */
339
347
/* The buffer tabs, in the theme's colours. Pads 0-9 between thin bars, each a small pill behind its digit, the
340
348
active one filled; one with code in it brighter than an empty one. The jam toggle at the row's end; with jam on
341
349
the pads grow to drum-pad size and the run / show / exec picker sits above them. */
/* the ten digits as one solid capsule, like the chips beside it: each digit's own pill is the pane's colour, which
353
+
over the code the foot floats on is no pill at all, and the code read between the numbers. Solid, not frosted:
354
+
a blur of the code's bright text behind came out as milky smears wherever there was text, and nothing elsewhere */
355
+
#buffer-tabs:not(.jam-on) .buffer-tabs-list { display: flex; align-items: center; flex:11 auto; min-width:0; border-radius:var(--r-pill); padding:06px; background:color-mix(in srgb,var(--Background) 90%, transparent); } /* a box of its own here (elsewhere display: contents, above): the capsule needs one; jam's square pads are frosted each */
356
+
#buffer-tabs:not(.jam-on) .buffer-tab:not(.active):not(:hover)::before { background: transparent; } /* one surface: a digit's own pill would be a box in the box; the active buffer alone keeps its accent */
344
357
/* sets have a colour of their own, everywhere they show (the chip, the list, the Share panel's set): the theme's
345
358
second colour, numbers' in the code and native's second swatch, where a buffer has the accent */
346
359
:root { --set-colour:var(--NumberForeground); }
@@ -423,23 +436,23 @@ body.no-metro #link-section { display: none; } /* hidden until the preference
423
436
/* the jam toggle: a quiet pill, filled and glowing when on */
424
437
/* SET and JAM, the row's two ends: one pill, the same size in every layout and state (a width that holds JAM's grid
425
438
mark too), the same words' weight; what they say apart is only their colour: SET's the sets', JAM's the accent */
#buffer-tabs.jam-on .buffer-tab::before { width:min(52px,calc(100%-6px)); height: auto; aspect-ratio:1; border:2px solid var(--HighlightedBackground); border-radius:var(--r-m); background:color-mix(in srgb,var(--Background) 90%,transparent); /* solid, as the chips: the pad floats on the code */box-sizing: border-box; }
0 commit comments