- Navios
- 5 de setembro de 2026 às 18:45 UTC
- Autor
- Kamo
- Enviar
- b1bc689
A janela da ferramenta de terminal tinha uma barra de rolagem que valia a pena manter — 32px, com um botão para cada FIM do rollback, bem como as setas de passo habituais, porque em um documento longo as duas extremidades não são mais duas posições, eles são os dois lugares Queres mesmo. O resto do aplicativo tinha trinta e quatro cópias escritas à mão de um ideia menor: 138 `::-webkit-scrollbar ` declarações em seis larguras diferentes (4, 6, 8, 12, 14, 20px), mais três classes globais em um sétimo. Um teste de guarda já existia porque quatro janelas de bate- papo tinham descido para três larguras; poderia Só resolvemos um duodécimo do problema. A barra é agora um componente, pintado sobre o elemento que rola em vez de Colocado dentro dela. Essa é a decisão que tudo o resto se segue. Embrulho cada roller para sentar uma barra ao lado do conteúdo seria uma mudança de layout em todos 228 deles — crianças flexíveis, crianças em grelha, «minHeight: 0» colunas — e ainda não alcançar as portas de rolagem este aplicativo não possui: ag-Grid's, o DataGrid, Lexical. Pintar sobre eles é uma mudança de layout em nenhum. O preço é pago em sobreposiçãoGeometry.ts: recorte por intersecção do recorte antepassados, empilhando a partir do índice z mais um do antepassado mais próximo (que coloca um barra de página sob uma janela aberta e uma barra de diálogo sobre ela, a partir de uma regra), e parado quando MUI marca o conteúdo por trás de uma ária modal escondida. A adoção é por classe de marcador, não varrendo o documento para `overflow: auto`. Ambos alcançam cada roller; apenas um é debuggable, e apenas um mantém a barra fora de cada menu Selecionar e 40px popper no aplicativo. scripts/codemod-kamo-scroll.mjs aplicou-o — análise com o analisador próprio TypeScript e splicing a bytes offsets, Assim, a formatação e CRLF sobrevivem — e despojaram as declarações que fizeram mortas. Degrada-se, porque agora pendura um popover emoji de 250px, bem como uma página: botões e faixa a 140px ou mais, faixa sozinho abaixo disso, nada em tudo quando o elemento não está transbordando. Horizontal é o mesmo componente com o ícones giraram um quarto de volta em vez de um segundo conjunto que iria derivar. Um roller que quer barra NO — o trilho de navegação colapsado, os mastheads console, o filme, o perfil trilho em um telefone — agora diz isso uma vez, com `data-kamo-scrollbar="off"`, em vez de nas seis formas diferentes que costumava ser Disse. Somente TerminalTool ainda nomeia uma barra de rolagem em CSS, para esconder o próprio xterm. TerminalScrollbar é deixado como um adaptador: um buffer xterm no modelo, em LINES em vez de pixels, e se move para trás como xterm chamadas ou a roda relata que tmux se liga. Mantém a aderência indeterminada para um rolback que não pode dizer onde está, e o botão de salto- para- fim iluminado para a saída abaixo da Passo. Guardas: oneScrollbar.test.ts falha se algo fora dos estilos globals.css a barra de rolagem, se a largura do componente e o token da folha de estilo discordarem, ou se a lista de marcadores da camada e a lista de hide da folha de estilo caem fora do passo — uma elemento em um e não o outro recebe duas barras ou nenhum, e ambos lidos como um renderizando falha em vez de uma linha em falta. barra de rolagemView.test.tsx dirige o barra do teclado, que é o ponto dos botões sendo botões.