Slider
adn-ui/sliderFreeComponent
An easily stylable range input component.
Live preview
live · rendered by the registry
Rendered by adn-ui on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.awaiden.com/r/slider.jsonSource
1"use client";23import "./slider.css";4import { Slider as BaseSlider } from "@base-ui/react/slider";5import type React from "react";6import { cn } from "tailwind-variants";78import { SliderContext, useSliderContext } from "./slider.context";9import { sliderVariants, type SliderVariants } from "./slider.variants";1011export type SliderProps = SliderVariants & React.ComponentProps<typeof BaseSlider.Root>;1213export const SliderRoot = ({ children, className, size, ...props }: SliderProps) => {14 const slots = sliderVariants({ size });1516 return (17 <SliderContext.Provider value={{ slots }}>18 <BaseSlider.Root className={cn(slots.root(), className)} {...props}>19 {children}20 </BaseSlider.Root>21 </SliderContext.Provider>22 );23};2425export type SliderLabelProps = React.ComponentProps<typeof BaseSlider.Label>;2627export const SliderLabel = ({ className, ...props }: SliderLabelProps) => {28 const { slots } = useSliderContext();29 return <BaseSlider.Label className={cn(slots.label(), className)} {...props} />;30};3132export type SliderValueProps = React.ComponentProps<typeof BaseSlider.Value>;3334export const SliderValue = ({ className, ...props }: SliderValueProps) => {35 const { slots } = useSliderContext();36 return <BaseSlider.Value className={cn(slots.value(), className)} {...props} />;37};3839export type SliderControlProps = React.ComponentProps<typeof BaseSlider.Control>;4041export const SliderControl = ({ className, ...props }: SliderControlProps) => {42 const { slots } = useSliderContext();43 return <BaseSlider.Control className={cn(slots.control(), className)} {...props} />;44};4546export type SliderTrackProps = React.ComponentProps<typeof BaseSlider.Track>;4748export const SliderTrack = ({ className, ...props }: SliderTrackProps) => {49 const { slots } = useSliderContext();50 return <BaseSlider.Track className={cn(slots.track(), className)} {...props} />;51};5253export type SliderIndicatorProps = React.ComponentProps<typeof BaseSlider.Indicator>;5455export const SliderIndicator = ({ className, ...props }: SliderIndicatorProps) => {56 const { slots } = useSliderContext();57 return <BaseSlider.Indicator className={cn(slots.indicator(), className)} {...props} />;58};5960export type SliderThumbProps = React.ComponentProps<typeof BaseSlider.Thumb>;6162export const SliderThumb = ({ className, ...props }: SliderThumbProps) => {63 const { slots } = useSliderContext();64 return <BaseSlider.Thumb className={cn(slots.thumb(), className)} {...props} />;65};
What it pulls in
npm packages
Files it writes
More from adn-ui
All 46 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Accordionaccordion | adn-ui | Components | Free | 2 deps · 5 files | |
| Alert Dialogalert-dialog | adn-ui | Components | Free | 2 deps · 5 files | |
| Aspect Ratioaspect-ratio | adn-ui | Components | Free | 1 dep · 5 files | |
| Autocompleteautocomplete | adn-ui | Components | Free | 2 deps · 5 files | |
| Avataravatar | adn-ui | Components | Free | 2 deps · 5 files | |
| Badgebadge | adn-ui | Components | Free | 1 dep · 5 files | |
| Breadcrumbbreadcrumb | adn-ui | Components | Free | 1 dep · 5 files | |
| Buttonbutton | adn-ui | Components | Free | 1 dep · 4 files |
