UIPackage
Menu

Framework

Change language

Boilerplate repo

Scroll Area

scroll-areaui

Custom scrollbar that always renders the same way across OSes (no flashing native scrollbars on Windows). Use for sidebars, dropdown content, and any overflow region you want to feel consistent.

Also available for React ->

Installation

$npx shadcn-vue@latest add https://uipkge.dev/r/vue/scroll-area.json
Named registry:npx shadcn-vue@latest add @uipkge/scroll-areaInstalls to:app/components/ui/scroll-area/

Examples

Loading interactive previews…

Props

NameType / ValuesDefaultRequired
classHTMLAttributes['class']optional

npm dependencies

Used by

Files installed (3)

  • app/components/ui/scroll-area/ScrollArea.vue0.9 kB
    <script setup lang="ts">
    import type { ScrollAreaRootProps } from 'reka-ui'
    import type { HTMLAttributes } from 'vue'
    import { reactiveOmit } from '@vueuse/core'
    import { ScrollAreaCorner, ScrollAreaRoot, ScrollAreaViewport } from 'reka-ui'
    import { cn } from '@/lib/utils'
    import ScrollBar from './ScrollBar.vue'
    
    const props = defineProps<ScrollAreaRootProps & { class?: HTMLAttributes['class'] }>()
    
    const delegatedProps = reactiveOmit(props, 'class')
    </script>
    
    <template>
      <ScrollAreaRoot data-uipkge data-slot="scroll-area" v-bind="delegatedProps" :class="cn('relative', props.class)">
        <ScrollAreaViewport
          data-uipkge
          data-slot="scroll-area-viewport"
          class="focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1"
        >
          <slot />
        </ScrollAreaViewport>
        <ScrollBar />
        <ScrollAreaCorner />
      </ScrollAreaRoot>
    </template>
    
  • app/components/ui/scroll-area/ScrollBar.vue1 kB
  • app/components/ui/scroll-area/index.ts0.1 kB

Raw manifest:https://uipkge.dev/r/vue/scroll-area.json