Styling
Apply css classes to the carousel container. This is the property you would use if you want to constrain the width or height of the carousel.
| Prop Name | Type | Default Value | 
|---|---|---|
className | string | undefined | 
Example
Code
<Carousel
  scrollDistance="screen"
  showDots
  className="border-8 border-pink-500 border-solid mx-auto w-[600px]"
>
  <img src="pexels-01.jpg" />
  <img src="pexels-02.jpg" />
  <img src="pexels-03.jpg" />
</Carousel>
Navigation Dots
You can supply a custom React component to render the navigation dots by using the Carousel hooks.
| Prop Name | Type | Default Value | 
|---|---|---|
dots | ReactNode | undefined | 
Example
Code
import { useCarousel } from 'nuka-carousel';
export const CustomDots = () => {
  const { totalPages, currentPage, goToPage } = useCarousel();
  const className = (index: number) => {
    let value =
      'w-3 h-3 p-0 rounded-full bg-gray-200 border-none cursor-pointer hover:bg-green-200';
    if (currentPage === index) {
      value += ' bg-green-500 hover:bg-green-500';
    }
    return value;
  };
  return (
    <div className="flex items-center py-4 gap-1">
      {[...Array(totalPages)].map((_, index) => (
        <button
          key={index}
          onClick={() => goToPage(index)}
          className={className(index)}
        />
      ))}
    </div>
  );
};
<Carousel showDots dots={<CustomDots />}>
  <img src="pexels-01.jpg" />
  <img src="pexels-02.jpg" />
  <img src="pexels-03.jpg" />
</Carousel>
Navigation Arrows
You can supply a custom React component to render the navigation arrows by using the Carousel hooks.
| Prop Name | Type | Default Value | 
|---|---|---|
arrows | ReactNode | undefined | 
Example
Code
import { useCarousel } from 'nuka-carousel';
function cls(...classes) {
  return classes.filter(Boolean).join(' ');
}
export function CustomArrows() {
  const { currentPage, totalPages, wrapMode, goBack, goForward } =
    useCarousel();
  const allowWrap = wrapMode === 'wrap';
  const enablePrevNavButton = allowWrap || currentPage > 0;
  const enableNextNavButton = allowWrap || currentPage < totalPages - 1;
  const prevNavClassName = cls(
    'inline-block px-4 py-2 bg-pink-800 cursor-pointer invisible',
    enablePrevNavButton && '!visible',
  );
  const nextNavClassName = cls(
    'inline-block px-4 py-2 bg-pink-800 cursor-pointer invisible',
    enableNextNavButton && '!visible',
  );
  return (
    <div className="flex justify-between mt-4">
      <div className={prevNavClassName} onClick={goBack}>
        PREV
      </div>
      <div className={nextNavClassName} onClick={goForward}>
        NEXT
      </div>
    </div>
  );
}
<Carousel showArrows arrows={<CustomArrows />}>
  <img src="pexels-01.jpg" />
  <img src="pexels-02.jpg" />
  <img src="pexels-03.jpg" />
</Carousel>


