Scroll Area
A rolagem nativa, com uma barra estilizada que fica igual em todos os navegadores.
Instalação
O Shadwire segue o modelo open code do shadcn/ui: o código-fonte do componente é copiado para o seu app e passa a ser seu. Instale com a CLI:
O item scroll-area do registry instala estes arquivos:
-
app/components/ui_component.rb -
app/components/ui/scroll_area_component.rb -
app/components/ui/scroll_area/viewport_component.rb -
app/components/ui/scroll_area/content_component.rb -
app/components/ui/scroll_area/scrollbar_component.rb -
app/components/ui/scroll_area/thumb_component.rb -
app/components/ui/scroll_area/corner_component.rb -
app/helpers/ui/scroll_area_helper.rb -
app/javascript/controllers/ui_scroll_area_controller.js -
vendor/shadwire/shadwire.css
Este componente usa Stimulus, então a aplicação precisa de importmap-rails e stimulus-rails com carregamento automático de controllers.
Ainda não instalou a CLI? gem install shadwire e depois shadwire init.
Uso
Use o helper nas views, ou renderize a classe ViewComponent diretamente quando precisar do próprio objeto do componente.
Composição
A anatomia do shadcn é ScrollArea
com um ScrollBar opcional.
No Shadwire, ui_scroll_area
renderiza para você o viewport, o conteúdo, as barras, o cursor da barra e o canto.
Exemplos
Prévia
Uma área de rolagem vertical: rolagem nativa, com uma barra que combina com o tema.
Horizontal
Use ui_scroll_bar(orientation: :horizontal)
ou passe scrollbars: [ :horizontal ]
para rolagem horizontal.
Horizontal
Use a barra horizontal para galerias e conteúdo largo.
RTL
Passe os atributos de direção HTML padrão pelo componente ao renderizar conteúdo da direita para a esquerda.
RTL
Use dir: "rtl" para conteúdo escrito da direita para a esquerda.
Referência da API
Este port para Rails espelha as partes no estilo Base UI com classes
ViewComponent e atributos de dados. Os helpers preservam atributos HTML
livres, incluindo data: e
aria:.
| Helper | Argumentos principais | Descrição |
|---|---|---|
ui_scroll_area |
scrollbars, class / class_name |
Componente raiz: renderiza viewport, conteúdo, barras, canto e o controller Stimulus. |
ui_scroll_bar |
orientation |
Subcomponente opcional para uma barra vertical ou horizontal. |
Ui::ScrollAreaComponent |
scrollbars, atributos HTML |
API ViewComponent para renderizar o port Rails diretamente. |