Scroll Area
Aprimora a rolagem nativa com uma barra estilizada e consistente entre navegadores.
Instalação
O Shadwire segue o modelo open-code do shadcn/ui: o código-fonte do componente é copiado para a sua aplicação 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: 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 Rails, ou renderize a classe ViewComponent diretamente quando precisar da API de objeto.
Composição
A anatomia do shadcn é ScrollArea
com um ScrollBar opcional.
No Shadwire, ui_scroll_area
renderiza viewport, conteúdo, barras, thumb e canto para você.
Exemplos
Preview
A vertical Scroll Area keeps native scrolling while matching Shadwire styles.
Horizontal
Use ui_scroll_bar(orientation: :horizontal)
ou passe scrollbars: [ :horizontal ]
para rolagem horizontal.
Horizontal
Use a horizontal scrollbar for galleries and wide content.
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" when rendering right-to-left content.
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. |