@lifarl/react-scroll-snap-slider
Version:
A performant React Slider / Carousel Component with CSS Scroll Snapping, Intersection Observer and Accessibility.
37 lines (36 loc) • 1.04 kB
TypeScript
export interface CarouselProps {
children: React.ReactNode;
renderCustomArrow?: ({ direction, ref, onClick, ariaControls }: CustomArrowProps) => JSX.Element;
slidesPerPageSettings?: SlidesPerPageSettings;
slideWidth?: number;
onScrollStart?: (index: number) => void;
onScrollEnd?: (index: number) => void;
onSlidesVisibilityChange?: (index: number) => void;
onSlideVisible?: (index: number) => void;
className?: string;
classes?: Partial<CarouselClasses>;
ariaLabel?: string;
}
export interface SlidesPerPageSettings {
mobileSmall: number;
mobileBig: number;
tablet: number;
desktop: number;
}
interface CustomArrowProps {
direction: 'prev' | 'next';
ref: React.RefObject<HTMLButtonElement>;
onClick: (direction: 'prev' | 'next') => void;
ariaControls: string;
}
export interface CarouselClasses {
root: string;
slider: string;
list: string;
slide: string;
nav: string;
navPrev: string;
navNext: string;
arrow: string;
}
export {};