Skip to content

@hua-labs/ui
v1.1.0
Pro

bash
npm install @hua-labs/hua
tsx
import { Carousel } from "@hua-labs/ui/advanced";

: 1

indicators="dots"

3
1
2
3
1

indicators="bars"

3
1
2
3
1

indicators="numbers"

3
1
2
3
1

transition="slide"

slide
slide
slide
slide
slide

transition="fade"

fade
fade
fade

transition="scale"

scale
scale
scale

children*ReactNode[]-docs:components.carousel.props.children
autoPlaybooleanfalsedocs:components.carousel.props.autoPlay
intervalnumber5000docs:components.carousel.props.interval
loopbooleantruedocs:components.carousel.props.loop
pauseOnHoverbooleantruedocs:components.carousel.props.pauseOnHover
indicators"dots" | "bars" | "numbers" | "none""dots"docs:components.carousel.props.indicators
indicatorPosition"bottom" | "top" | "inside-bottom" | "inside-top""bottom"docs:components.carousel.props.indicatorPosition
showArrowsbooleantruedocs:components.carousel.props.showArrows
arrowPosition"inside" | "outside" | "hidden""inside"docs:components.carousel.props.arrowPosition
transition"slide" | "fade" | "scale""slide"docs:components.carousel.props.transition
transitionDurationnumber500docs:components.carousel.props.transitionDuration
onSlideChange(index: number) => void-docs:components.carousel.props.onSlideChange
showPlayPausebooleanfalseWhether to show play/pause button for autoplay control
playPausePosition"left" | "right" | "center""right"Position of the play/pause button

docs:common.basicUsagetsx
import { Carousel } from '@hua-labs/ui/advanced';

// 높이는 부모 컨테이너에서 설정 (aspect-ratio 또는 고정 높이)
<div style={{ aspectRatio: '16/9' }}>
  <Carousel indicators="dots" indicatorPosition="inside-bottom">
    {slides.map(slide => <SlideContent {...slide} />)}
  </Carousel>
</div>

// 또는 고정 높이
<div className="h-[400px]">
  <Carousel>...</Carousel>
</div>
Auto Playtsx
<Carousel autoPlay interval={3000} pauseOnHover>
  {slides.map(slide => <SlideContent {...slide} />)}
</Carousel>
Transition Effectstsx
// fade, scale 효과도 loop 지원
<Carousel transition="fade" loop transitionDuration={500}>
  {slides.map(slide => <SlideContent {...slide} />)}
</Carousel>

  • docs:components.carousel.accessibility.keyboardNavigation: docs:components.carousel.accessibility.keyboardNavigationDesc
  • docs:components.carousel.accessibility.ariaRoles: docs:components.carousel.accessibility.ariaRolesDesc
  • docs:components.carousel.accessibility.indicatorTabs: docs:components.carousel.accessibility.indicatorTabsDesc
  • docs:components.carousel.accessibility.touchSupport: docs:components.carousel.accessibility.touchSupportDesc