{"id":13780917,"url":"https://github.com/andreruffert/range-slider-element","last_synced_at":"2025-04-05T03:05:53.337Z","repository":{"id":35151486,"uuid":"211534811","full_name":"andreruffert/range-slider-element","owner":"andreruffert","description":"🎚 A cross browser customizable and accessible \u003crange-slider\u003e web component","archived":false,"fork":false,"pushed_at":"2025-03-25T14:01:31.000Z","size":557,"stargazers_count":64,"open_issues_count":4,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-29T02:03:51.310Z","etag":null,"topics":["custom-element","multi-thumb","range-slider","ui","web-component"],"latest_commit_sha":null,"homepage":"https://andreruffert.github.io/range-slider-element/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andreruffert.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["andreruffert"],"custom":["https://paypal.me/andreruffert","https://thx.to/:andre"]}},"created_at":"2019-09-28T17:09:38.000Z","updated_at":"2025-03-25T14:00:44.000Z","dependencies_parsed_at":"2024-06-19T02:46:11.959Z","dependency_job_id":"6c01aa58-dd46-4c24-a2bf-81266efb2ba5","html_url":"https://github.com/andreruffert/range-slider-element","commit_stats":{"total_commits":97,"total_committers":5,"mean_commits":19.4,"dds":0.5360824742268041,"last_synced_commit":"3f5512c93cf881519b3b4be748be6db38ef9fb31"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreruffert%2Frange-slider-element","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreruffert%2Frange-slider-element/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreruffert%2Frange-slider-element/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andreruffert%2Frange-slider-element/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andreruffert","download_url":"https://codeload.github.com/andreruffert/range-slider-element/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247280262,"owners_count":20912967,"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":["custom-element","multi-thumb","range-slider","ui","web-component"],"created_at":"2024-08-03T18:01:21.125Z","updated_at":"2025-04-05T03:05:53.318Z","avatar_url":"https://github.com/andreruffert.png","language":"JavaScript","readme":"# \u0026lt;range-slider\u0026gt; element\n\n\u003e A cross browser customizable and accessible \u0026lt;range-slider\u0026gt; web component.\n\n[![Test status](https://img.shields.io/github/actions/workflow/status/andreruffert/range-slider-element/test.yml?label=Test\u0026logo=github\u0026color=4a46e0\u0026labelColor=212121)](https://github.com/andreruffert/range-slider-element/actions/workflows/test.yml)\n[![npm version](https://img.shields.io/npm/v/range-slider-element?color=4a46e0\u0026labelColor=212121)](https://www.npmjs.com/package/range-slider-element)\n[![gzip size](https://img.shields.io/badge/gzip-2.5kB-4a46e0?labelColor=212121)](https://pkg-size.dev/range-slider-element)\n[![npm downloads](https://img.shields.io/npm/dm/range-slider-element?logo=npm\u0026color=4a46e0\u0026labelColor=212121)](https://www.npmjs.com/package/range-slider-element)\n\n## Features\n\n* Framework agnostic [web component](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) (no dependencies)\n* Cross browser customizable styling\n* Single and multi thumb\n* Horizontal and vertical orientations\n* Works like a built-in HTML form element (uses [ElementInternals](https://developer.mozilla.org/en-US/docs/Web/API/ElementInternals))\n* Keyboard accessible (use arrow keys)\n* Touch friendly\n* Follows the [ARIA best practices guide on sliders](https://www.w3.org/WAI/ARIA/apg/patterns/slider)\n\n## Install\n\nInstall via npm\n\n```shell\nnpm install range-slider-element\n```\n\n## Usage\n\n### JavaScript\n\nImport as ES module\n\n```js\nimport 'range-slider-element';\n```\n\nOr via CDN\n\n```html\n\u003cscript type=\"module\" src=\"https://cdn.jsdelivr.net/npm/range-slider-element/+esm\"\u003e\u003c/script\u003e\n```\n\n### HTML\n\n```html\n\u003crange-slider min=\"0\" max=\"100\" step=\"1\" value=\"50\"\u003e\u003c/range-slider\u003e\n```\n\n### CSS\n\nMake sure to load the base styles exported via `range-slider-element/style.css`.\n\nOr via CDN\n\n```html\n\u003clink rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/range-slider-element/dist/range-slider-element.css\"\u003e\n```\n\n## Attributes\n\n* `min` The minimum permitted value. The default is `0`.\n* `max` The maximum permitted value. The default is `100`.\n* `step` The stepping interval. The default is `1`.\n* `value` The value. The default is `min + (max - min) / 2`.\n* [`dir`][dir] Directionality. The default is ltr. Allowed options `rtl`.\n* `orientation` The default is horizontal. Allowed options `vertical`.\n\n[dir]: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir\n\n## Styling\n\n**CSS custom properties**\n\nExposed CSS custom properties scoped within the `range-slider` element.\n\n* `--track-size` - The track size. The default is `0.2rem`. Can be overwritten for customization.\n* `--thumb-size` - The thumb size. The default is `1.2rem`. Can be overwritten for customization.\n\n**DOM selectors**\n\n```css\nrange-slider {}\nrange-slider [data-track] {}\nrange-slider [data-track-fill] {}\nrange-slider [data-thumb] {}\n\n/* Advanced customization */\nrange-slider [data-runnable-track] {}\n```\n\nFor examples of how to customize the default styling, check out the [docs][docs].\n\n[docs]: https://andreruffert.github.io/range-slider-element\n\n## Events\n\n* `input` - Pointer move, value changed. Bubbles.\n* `change` - Pointer up, key up, value changed. Bubbles.\n\n## Browser support\n\nBrowsers without native [custom element support][support] require a [polyfill][].\n\n[support]: https://caniuse.com/#feat=custom-elementsv1\n[polyfill]: https://github.com/webcomponents/custom-elements\n\n## License\n\nDistributed under the MIT license. See LICENSE for details. \n\n© [André Ruffert](https://andreruffert.com)\n","funding_links":["https://github.com/sponsors/andreruffert","https://paypal.me/andreruffert","https://thx.to/:andre"],"categories":["Form Elements","Real World"],"sub_categories":["Components"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreruffert%2Frange-slider-element","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandreruffert%2Frange-slider-element","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandreruffert%2Frange-slider-element/lists"}