Contents

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:

  1. In Xcode, go to File → Add Package Dependencies.
  2. Paste the repository URL: https://github.com/kieranb662/Sliders-SwiftUI.
  3. 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