Sliders is a collection of fully stylable, drag-based SwiftUI controls — linear, radial, range, 2-D, and path sliders — designed to fill the gaps the standard toolkit leaves behind. Every control scales to its container, accepts custom styles, and optionally provides tick marks with haptic feedback. You can try them all out quickly by cloning the example project
📖 Full API reference & tutorials are available on the hosted documentation site.
| Control | Description | Docs |
|---|---|---|
| LSlider | A linear slider that works at any angle and scales its track to the available space. | Guide · Tutorial |
| DoubleLSlider | A linear range slider with two thumbs and a draggable active-track segment. | Guide · Tutorial |
| RSlider | A circular slider whose thumb travels around a configurable arc. | Guide · Tutorial |
| DoubleRSlider | A circular range slider with two thumbs and a draggable active-track arc. | Guide · Tutorial |
| TrackPad | A 2-D slider that maps horizontal and vertical drag to two independent values. | Guide · Tutorial |
| RadialPad | A joystick-style 2-D control that retains its position after the drag ends. | Guide · Tutorial |
| Joystick | An on-screen joystick that appears wherever the user drags within a hit-box. | Guide · Tutorial |
| PSlider | Turns any SwiftUI Shape into a slider whose thumb travels along the shape's path. |
Guide · Tutorial |
| OverflowSlider | A meter-style slider with two moving parts — thumb and track — and velocity gestures. | Guide · Tutorial |
import Sliders
struct ContentView: View {
@State private var value = 0.5
var body: some View {
LSlider($value, range: 0...1, keepThumbInTrack: true, trackThickness: 20)
.frame(height: 60)
.padding()
}
}Every control follows the same styling pattern — conform to a style protocol and apply it with a modifier:
VStack {
LSlider($red, range: 0...1)
LSlider($green, range: 0...1)
LSlider($blue, range: 0...1)
}
.linearSliderStyle(MyLSliderStyle())| Platform | Minimum Version |
|---|---|
| iOS | 26 |
| macOS | 26 |
| watchOS | 26 |
Add the package via Swift Package Manager:
- In Xcode, go to File → Add Package Dependencies.
- Paste the repository URL:
https://github.com/kieranb662/Sliders-SwiftUI. - Select a minimum version and add the package to your target.
Or add it directly to your Package.swift:
dependencies: [
.package(url: "https://github.com/kieranb662/Sliders-SwiftUI", from: "1.0.0")
]| Resource | Link |
|---|---|
| API Reference | kieranb662.github.io/Sliders-SwiftUI/documentation/sliders |
| Tutorials | kieranb662.github.io/Sliders-SwiftUI/tutorials/sliders |
| Example Project | SlidersExamples |
Sliders is available under the MIT license. See the LICENSE file for more info.
