{"id":13649101,"url":"https://github.com/matthewreagan/RangeSlider","last_synced_at":"2025-04-22T12:33:25.721Z","repository":{"id":114217891,"uuid":"72371504","full_name":"matthewreagan/RangeSlider","owner":"matthewreagan","description":"Simple, clean, and customizable range-based slider control for macOS","archived":false,"fork":false,"pushed_at":"2017-03-18T22:26:14.000Z","size":1473,"stargazers_count":97,"open_issues_count":5,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-03T01:39:31.339Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matthewreagan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-10-30T19:46:52.000Z","updated_at":"2024-04-13T07:21:40.000Z","dependencies_parsed_at":"2023-05-30T22:15:33.187Z","dependency_job_id":null,"html_url":"https://github.com/matthewreagan/RangeSlider","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewreagan%2FRangeSlider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewreagan%2FRangeSlider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewreagan%2FRangeSlider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matthewreagan%2FRangeSlider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matthewreagan","download_url":"https://codeload.github.com/matthewreagan/RangeSlider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223896472,"owners_count":17221441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:04:46.770Z","updated_at":"2024-11-09T23:30:55.720Z","avatar_url":"https://github.com/matthewreagan.png","language":"Swift","funding_links":[],"categories":["Swift"],"sub_categories":[],"readme":"# RangeSlider\n\n![Styles](/RangeSliderStyles.png?raw=true \"Styles\")\n\n**RangeSlider** is a clean, simple, and attractive range-based slider control for Mac, written in [Swift](https://developer.apple.com/swift/).\n\nIt is similar to [NSSlider](https://developer.apple.com/reference/appkit/nsslider) except that it affords two control points (start and end knobs), useful when users need to select a range of values.\n\n**Features**:\n\n- Simple, easy-to-use\n- Flexible resizing\n- Customizable\n- Snap-to-interval (optional)\n- Several built-in styles\n\n## Demo\n\n![RangeSlider Demo](/RangeSliderDemo.gif?raw=true \"RangeSlider Demo\")\n\n## How To Use\n\n1. Add to XIB or create programmatically. Example: `let slider = RangeSlider(frame:sliderFrame)`\n2. _(Optional)_ Set the min/max values (default: `0.0-1.0`)\n3. _(Optional)_ Set the `start`/`end` values (default: `0.0-1.0`)\n4. _(Optional)_ Enable snapping (`snapsToIntegers = true`)\n5. _(Optional)_ Adjust style options (`colorStyle`, `knobStyle`)\n\n## Responding to Changes\n\nOnce the slider is configured, you can respond to changes by observing the `start`/`end` (or `length`) values, or using the `onControlChanged` property.\n\nExample:\n```\nmySlider.onControlChanged = {\n    (slider: RangeSlider) -\u003e Void in\n    print(\"Slider changed! Start:\\(slider.start) End:\\(slider.end) Range:\\(slider.length)\")\n}\n```\n\n## ToDo's\n\nRangeSlider is still a work-in-progress. A few of the known issues / ToDo's remaining:\n\n- [ ] Fix clipping of knob shadows, especially for circular slider style\n- [ ] General cleanup, refactoring\n- [ ] Fix knobs being allowed to overlap\n- [ ] Improve border stroke of circular knob style\n- [ ] Accessibilty support + highlighting/focus and other control behaviors\n\n## System Requirements\n\nRangeSlider is currently macOS-only, however it could easily be updated to work with UIKit. Please file an Issue or feel free to submit a Pull Request if you'd like iOS support.\n\n## Author\n\n**Matt Reagan** - Website: [http://sound-of-silence.com/](http://sound-of-silence.com/) - Twitter: [@hmblebee](https://twitter.com/hmblebee)\n\n\n## License\n\nRangeSlider's source code and related resources are Copyright (C) Matthew Reagan 2016. The source code is released under the [MIT License](https://opensource.org/licenses/MIT). If you use RangeSlider in any publicly-distributed applications please include attribution. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewreagan%2FRangeSlider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatthewreagan%2FRangeSlider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatthewreagan%2FRangeSlider/lists"}