@yoursurprise/slider 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # React slider
2
+
3
+ This package contains a basic modern slider. The purpose of this slider is to provide a simple React component
4
+ which can be controlled in a userfriendly way on mobile, tablet and desktop.
5
+
6
+ This slider has the following features:
7
+
8
+ - Free scroll on mobile with native CSS scroll snapping
9
+ - Drag to scroll on devices with a mouse
10
+ - Buttons to navigate on devices with a mouse
11
+ - Support for multiple variable width slides
12
+
13
+ Before using this slider, please consider the following:
14
+ - The slider only contains styling to make it functional
15
+ - There is no configuration of aforementioned features (yet)
16
+
17
+ All browsers with [IntersectionObserver](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) are supported.
18
+
19
+ ## Installation
20
+
21
+ ### npm
22
+
23
+ `npm install @yoursurprisecom/slider --save`
24
+
25
+ ### yarn
26
+
27
+ `yarn add @yoursurprisecom/slider`
28
+
29
+ ### Import the CSS files
30
+
31
+ `import "@yoursurprisecom/slider/dist/index.css";`
32
+
33
+ ### Implement the Slider
34
+
35
+ ```
36
+ import Slider from '@yoursurprisecom/slider';
37
+ import '@yoursurprisecom/slider/dist/index.css';
38
+
39
+ export default function YourComponent() {
40
+ return (
41
+ <Slider>
42
+ <div>1</div>
43
+ <div>2</div>
44
+ <div>3</div>
45
+ <div>4</div>
46
+ </Slider>
47
+ );
48
+ }
49
+ ```
50
+
51
+
52
+
53
+
File without changes
File without changes
@@ -1,2 +1,80 @@
1
- .slider{position:relative}.slider__button{bottom:0;display:none;height:48px;margin:auto 0;position:absolute;top:0;width:48px}@media (hover:hover){.slider__button{display:flex}}.slider__button--next{right:-8px}@media screen and (min-width:768px){.slider__button--next{right:0}}.slider__button--prev{left:-8px}@media screen and (min-width:768px){.slider__button--prev{left:0}}.slider__wrapper{-ms-overflow-style:none;display:flex;flex-direction:row;margin:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none}.slider__wrapper::-webkit-scrollbar{display:none}@media screen and (min-width:768px){.slider__wrapper{margin:8px}}@media (hover:hover){.slider__wrapper{scroll-snap-type:none}}.slider__wrapper.is-scrollable{cursor:move}.slider__wrapper.is-dragging{cursor:grabbing;user-select:none}.slider__wrapper:not(.is-dragging){scroll-behavior:smooth}.slider__wrapper__slide{margin-right:8px;scroll-snap-align:start}@media screen and (min-width:768px){.slider__wrapper__slide{margin-left:0;margin-right:16px}}.slider__wrapper__slide:last-child{margin-right:0}
1
+ .slider {
2
+ position: relative;
3
+ }
4
+ .slider__button {
5
+ top: 0;
6
+ bottom: 0;
7
+ margin: auto 0;
8
+ height: 48px;
9
+ width: 48px;
10
+ position: absolute;
11
+ display: none;
12
+ }
13
+ @media (hover: hover) {
14
+ .slider__button {
15
+ display: flex;
16
+ }
17
+ }
18
+ .slider__button--next {
19
+ right: -8px;
20
+ }
21
+ @media screen and (min-width: 768px) {
22
+ .slider__button--next {
23
+ right: 0;
24
+ }
25
+ }
26
+ .slider__button--prev {
27
+ left: -8px;
28
+ }
29
+ @media screen and (min-width: 768px) {
30
+ .slider__button--prev {
31
+ left: 0;
32
+ }
33
+ }
34
+ .slider__wrapper {
35
+ overscroll-behavior-x: contain;
36
+ -ms-overflow-style: none;
37
+ scrollbar-width: none;
38
+ display: flex;
39
+ flex-direction: row;
40
+ overflow-x: auto;
41
+ margin: 16px;
42
+ scroll-snap-type: x proximity;
43
+ }
44
+ .slider__wrapper::-webkit-scrollbar {
45
+ display: none;
46
+ }
47
+ @media screen and (min-width: 768px) {
48
+ .slider__wrapper {
49
+ margin: 8px;
50
+ }
51
+ }
52
+ @media (hover: hover) {
53
+ .slider__wrapper {
54
+ scroll-snap-type: initial;
55
+ }
56
+ }
57
+ .slider__wrapper.is-scrollable {
58
+ cursor: move;
59
+ }
60
+ .slider__wrapper.is-dragging {
61
+ cursor: grabbing;
62
+ user-select: none;
63
+ }
64
+ .slider__wrapper:not(.is-dragging) {
65
+ scroll-behavior: smooth;
66
+ }
67
+ .slider__wrapper__slide {
68
+ scroll-snap-align: start;
69
+ margin-right: 8px;
70
+ }
71
+ @media screen and (min-width: 768px) {
72
+ .slider__wrapper__slide {
73
+ margin-left: 0;
74
+ margin-right: 16px;
75
+ }
76
+ }
77
+ .slider__wrapper__slide:last-child {
78
+ margin-right: 0;
79
+ }
2
80
  /*# sourceMappingURL=index.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["Slider.scss"],"names":[],"mappings":"AAAA,QACE,iBACF,CACA,gBAEE,QAAS,CAKT,YAAa,CAHb,WAAY,CADZ,aAAc,CAGd,iBAAkB,CALlB,KAAM,CAIN,UAGF,CACA,qBACE,gBACE,YACF,CACF,CACA,sBACE,UACF,CACA,oCACE,sBACE,OACF,CACF,CACA,sBACE,SACF,CACA,oCACE,sBACE,MACF,CACF,CACA,iBAEE,uBAAwB,CAExB,YAAa,CACb,kBAAmB,CAEnB,WAAY,CADZ,eAAgB,CALhB,6BAA8B,CAO9B,4BAA6B,CAL7B,oBAMF,CACA,oCACE,YACF,CACA,oCACE,iBACE,UACF,CACF,CACA,qBACE,iBACE,qBACF,CACF,CACA,+BACE,WACF,CACA,6BACE,eAAgB,CAChB,gBACF,CACA,mCACE,sBACF,CACA,wBAEE,gBAAiB,CADjB,uBAEF,CACA,oCACE,wBACE,aAAc,CACd,iBACF,CACF,CACA,mCACE,cACF","file":"index.css","sourcesContent":[".slider {\n position: relative;\n}\n.slider__button {\n top: 0;\n bottom: 0;\n margin: auto 0;\n height: 48px;\n width: 48px;\n position: absolute;\n display: none;\n}\n@media (hover: hover) {\n .slider__button {\n display: flex;\n }\n}\n.slider__button--next {\n right: -8px;\n}\n@media screen and (min-width: 768px) {\n .slider__button--next {\n right: 0;\n }\n}\n.slider__button--prev {\n left: -8px;\n}\n@media screen and (min-width: 768px) {\n .slider__button--prev {\n left: 0;\n }\n}\n.slider__wrapper {\n overscroll-behavior-x: contain;\n -ms-overflow-style: none;\n scrollbar-width: none;\n display: flex;\n flex-direction: row;\n overflow-x: auto;\n margin: 16px;\n scroll-snap-type: x proximity;\n}\n.slider__wrapper::-webkit-scrollbar {\n display: none;\n}\n@media screen and (min-width: 768px) {\n .slider__wrapper {\n margin: 8px;\n }\n}\n@media (hover: hover) {\n .slider__wrapper {\n scroll-snap-type: initial;\n }\n}\n.slider__wrapper.is-scrollable {\n cursor: move;\n}\n.slider__wrapper.is-dragging {\n cursor: grabbing;\n user-select: none;\n}\n.slider__wrapper:not(.is-dragging) {\n scroll-behavior: smooth;\n}\n.slider__wrapper__slide {\n scroll-snap-align: start;\n margin-right: 8px;\n}\n@media screen and (min-width: 768px) {\n .slider__wrapper__slide {\n margin-left: 0;\n margin-right: 16px;\n }\n}\n.slider__wrapper__slide:last-child {\n margin-right: 0;\n}"]}
1
+ {"version":3,"sources":["Slider.scss"],"names":[],"mappings":"AAAA;EACE,kBAAkB;AACpB;AACA;EACE,MAAM;EACN,SAAS;EACT,cAAc;EACd,YAAY;EACZ,WAAW;EACX,kBAAkB;EAClB,aAAa;AACf;AACA;EACE;IACE,aAAa;EACf;AACF;AACA;EACE,WAAW;AACb;AACA;EACE;IACE,QAAQ;EACV;AACF;AACA;EACE,UAAU;AACZ;AACA;EACE;IACE,OAAO;EACT;AACF;AACA;EACE,8BAA8B;EAC9B,wBAAwB;EACxB,qBAAqB;EACrB,aAAa;EACb,mBAAmB;EACnB,gBAAgB;EAChB,YAAY;EACZ,6BAA6B;AAC/B;AACA;EACE,aAAa;AACf;AACA;EACE;IACE,WAAW;EACb;AACF;AACA;EACE;IACE,yBAAyB;EAC3B;AACF;AACA;EACE,YAAY;AACd;AACA;EACE,gBAAgB;EAChB,iBAAiB;AACnB;AACA;EACE,uBAAuB;AACzB;AACA;EACE,wBAAwB;EACxB,iBAAiB;AACnB;AACA;EACE;IACE,cAAc;IACd,kBAAkB;EACpB;AACF;AACA;EACE,eAAe;AACjB","file":"index.css","sourcesContent":[".slider {\n position: relative;\n}\n.slider__button {\n top: 0;\n bottom: 0;\n margin: auto 0;\n height: 48px;\n width: 48px;\n position: absolute;\n display: none;\n}\n@media (hover: hover) {\n .slider__button {\n display: flex;\n }\n}\n.slider__button--next {\n right: -8px;\n}\n@media screen and (min-width: 768px) {\n .slider__button--next {\n right: 0;\n }\n}\n.slider__button--prev {\n left: -8px;\n}\n@media screen and (min-width: 768px) {\n .slider__button--prev {\n left: 0;\n }\n}\n.slider__wrapper {\n overscroll-behavior-x: contain;\n -ms-overflow-style: none;\n scrollbar-width: none;\n display: flex;\n flex-direction: row;\n overflow-x: auto;\n margin: 16px;\n scroll-snap-type: x proximity;\n}\n.slider__wrapper::-webkit-scrollbar {\n display: none;\n}\n@media screen and (min-width: 768px) {\n .slider__wrapper {\n margin: 8px;\n }\n}\n@media (hover: hover) {\n .slider__wrapper {\n scroll-snap-type: initial;\n }\n}\n.slider__wrapper.is-scrollable {\n cursor: move;\n}\n.slider__wrapper.is-dragging {\n cursor: grabbing;\n user-select: none;\n}\n.slider__wrapper:not(.is-dragging) {\n scroll-behavior: smooth;\n}\n.slider__wrapper__slide {\n scroll-snap-align: start;\n margin-right: 8px;\n}\n@media screen and (min-width: 768px) {\n .slider__wrapper__slide {\n margin-left: 0;\n margin-right: 16px;\n }\n}\n.slider__wrapper__slide:last-child {\n margin-right: 0;\n}"]}
@@ -1,2 +1,2 @@
1
1
  import { Slider } from './Slider';
2
- export default Slider;
2
+ export { Slider };