kieranb662/sliders-swiftui
**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 mar
Controls at a Glance
| 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 |
Quick Start
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())Requirements
| Platform | Minimum Version | |---|---| | iOS | 26 | | macOS | 26 | | watchOS | 26 |
Installation
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")
]Documentation
| Resource | Link | |---|---| | API Reference | kieranb662.github.io/Sliders-SwiftUI/documentation/sliders | | Tutorials | kieranb662.github.io/Sliders-SwiftUI/tutorials/sliders | | Example Project | SlidersExamples |
License
Sliders is available under the MIT license. See the LICENSE file for more info.
Package Metadata
Repository: kieranb662/sliders-swiftui
Default branch: master
README: README.md