saturation/uisaturation/ui
DocsComponentsBlocksPagesEmails
GitHub

Sections

IntroductionComponentsInstallationMCPThemingDesignComposing a Detail Panel

Components

Components

General

AvatarBadgeButtonKbdProgressSeparatorSkeletonSpin ResolveSpinnerSplit ButtonSync ButtonTypography

Forms & Inputs

Address LookupCalendar PickerCheckboxColor PickerComboboxDate PickerEmoji PickerFavicon SearchFieldInputInput GroupInput OTPRadio GroupSelectSliderSwitchTextareaToggleToggle Group

Data Display

AccordionAlertCardChartComparison SliderCredit CardData TableEmptyItemMarkdownSaturation Credit CardStatus BadgeTableTree

Detail Panels

Detail FieldDetail HeroDetail Toolbar

Navigation

BreadcrumbCommandMenubarNavigation MenuPaginationTabs

Overlays

CollapsibleContext MenuDialogDropdown MenuHover CardSheet

Layout

Button GroupFont ProviderWizard Split Layout

Feedback

Sonner

Animation & Effects

Animated GroupAnimated ListAnimated NumberBeamBlur FadeBorder TrailGlow EffectLiquid MetalLoading StateParallaxPixelProgressive BlurRippleSpotlightText EffectText Shimmer

Productivity

Agent ChatAI Chat InputCoding AgentFiltersFull CalendarKanbanNovel Editor
Docs/Components/Comparison Slider

Comparison Slider

An interactive before/after image comparison slider with draggable divider, labels, and responsive design.

Loading...

Installation

pnpm dlx shadcn@latest add @saturation-ui/comparison-slider

Tailwind v4 — Source Scanning

The public shadcn registry installs component source into your project. If Tailwind v4 isn't scanning your components directory, add this to your CSS entry file:

@source "../components";

This ensures all utility classes in CVA variants and data attribute selectors are included in your build.

Usage

import { ComparisonSlider } from "@/components/ui/comparison-slider"
<ComparisonSlider
  beforeImage={{ src: "/before.jpg", alt: "Before" }}
  afterImage={{ src: "/after.jpg", alt: "After" }}
  beforeLabel="Before"
  afterLabel="After"
/>

API Reference

PropTypeDefaultDescription
beforeImage*{ src: string; alt: string }—Left/before image.
afterImage*{ src: string; alt: string }—Right/after image.
beforeLabelstring"Before"Label for the left side.
afterLabelstring"After"Label for the right side.
defaultPositionnumber50Initial slider position (0-100).
aspectRatiostring"aspect-video"Tailwind aspect ratio class.
classNamestring—Additional CSS classes.
PreviousCommandNextContext Menu

On This Page

  • Installation
  • Usage
  • API Reference
Color graded footage
Original footage
Original
Color Graded

Drag to compare