Skip to content

kieranb662/Sliders-SwiftUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

123 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwiftUI Swift 6.0 Swift Package Manager kieranb662 followers

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

Activity Rings Gif

📖 Full API reference & tutorials are available on the hosted documentation site.


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.

About

Collection of unique fully customizable SwiftUI sliders, joysticks, trackpads and more!

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages