Ein Scrollbalken, für jeden Scroller in der App

Featurekamo-internal
Verschifft
5. September 2026 um 18:45 UTC
Autor
Kamo
Ausschuss
b1bc689

Das Terminal-Tool-Fenster hatte eine Scrollleiste im Wert haltenswert 32px, mit einer Taste für jedes ENDE des Scrollbacks sowie die üblichen Schrittpfeile, weil in einem langes Dokument die beiden Enden sind nicht zwei weitere Positionen, sie sind die beiden Orte Sie wollen eigentlich. Der Rest der App hatte vierunddreißig handgeschriebene Kopien eines Kleiner Idee: 138 -::-webkit-scrollbar"-Deklarationen in sechs verschiedenen Breiten (4, 6, 8, 12, 14, 20px), plus drei globale Klassen an einem siebten. Ein Wachtest existierte bereits, weil vier Chatfenster auf drei Breiten gedriftet waren; es konnte Nur ein Zwölftel des Problems beheben. Die Leiste ist jetzt eine Komponente, gemalt über das Element, das sie scrollt, anstatt in ihm platziert. Das ist die Entscheidung, aus der alles andere folgt. Wrapping jeder Scroller, um eine Leiste neben dem Inhalt setzen würde eine Layout-Änderung in allen 228 von ihnen - Flex Kinder, Grid Kinder, "minHeight: 0" Spalten und würde immer noch nicht erreichen die Scrollports diese App nicht besitzen: ag-Grid's, die DataGrid's, Lexical's. Das Malen über sie ist eine Layout-Änderung in keiner. Der Preis wird in overlayGeometry.ts bezahlt: Clipping durch Überschneiden des Clippings Vorfahren, Stapeln aus dem nächsten Vorfahren z-Index plus eins (die eine setzt Seitenleiste unter einem offenen Dialog und der Dialogleiste darüber, von einer Regel aus), und Wenn MUI den Inhalt hinter einer modalen Arie markiert, steht sie. Adoption erfolgt nach Marker-Klasse, nicht durch Fegen des Dokuments für "Überlauf: auto". Beide erreichen jeden Scroller; nur einer ist debuggable, und nur einer hält die Bar aus jedem Select-Menü und 40px-Popper in der App. scripts/codemod-kamo-scroll.mjs es angebracht - Parsing mit TypeScripts eigenem Parser und Splieren bei sparsing bei sparsing, so Formatierung und CRLF überleben - und die Erklärungen abgestreift, die sie tot gemacht hat. Es erniedrigt sich, weil es jetzt hängt von einem 250px Emoji Popover sowie eine Seite: Buttons und Track bei 140px oder länger, Spur allein darunter, gar nichts wenn das Element nicht überläuft. Horizontal ist die gleiche Komponente mit der Symbole drehten eine Vierteldrehung statt eines zweiten Satzes, der driften würde. Ein Scroller, der NO bar will - die eingestürzte Nav-Schiene, die Konsole Mastheads, der Filmtrip, die Profilschiene auf einem Telefon - sagt das jetzt einmal, mit "data-kamo-scrollbar="off", statt in den sechs verschiedenen Arten, wie es früher war sagte. Nur TerminalTool benennt noch eine Scrollleiste in CSS, um die eigene xterm zu verstecken. TerminalScrollbar bleibt als Adapter: ein xterm-Puffer in das Modell, in LINES statt Pixel, und bewegt sich wieder als xterm Anrufe oder das Rad berichtet tmux binds. Es hält den unbestimmten Griff für einen Scrollback, der kann nicht sagen, wo es ist, und die beleuchtete Jump-to-End-Taste für die Ausgabe unter der Falten. Wachen: oneScrollbar.test.ts scheitert, wenn etwas außerhalb globals.css Stile ein scrollbar, wenn die Breite der Komponente und der Token des Stylesheets nicht einverstanden sind, oder wenn die Markierungsliste der Ebene und die Versteckliste des Stylesheets fallen aus dem Takt Element auf der einen und nicht die andere bekommt zwei Takte oder keine, und beide lesen sich als ein Rendering-Pitche statt einer fehlenden Zeile. scrollbarView.test.tsx treibt die bar von der Tastatur, das ist der Punkt der Tasten, die Tasten.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen