@goodmanlabs/react-swipe-row 0.1.3 → 1.0.0
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 +9 -0
- package/dist/style.css +17 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,6 +19,15 @@ This was built to solve a common UI problem: you want a horizontally scrollable
|
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
+
## Live Demo
|
|
23
|
+
|
|
24
|
+
👉 **https://react-swipe-row.vercel.app/**
|
|
25
|
+
|
|
26
|
+
An interactive demo showing all supported props, behaviors, and styling hooks.
|
|
27
|
+
Used in production on [campvue.com](https://campvue.com).
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
22
31
|
## Install
|
|
23
32
|
|
|
24
33
|
```bash
|
package/dist/style.css
CHANGED
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
|
|
22
22
|
/* prevents parent page swipe-back stealing horizontal scroll */
|
|
23
23
|
overscroll-behavior-x: contain;
|
|
24
|
+
scrollbar-width: none; /* Firefox */
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/* Snap behavior */
|
|
@@ -36,37 +37,43 @@
|
|
|
36
37
|
scroll-snap-align: start;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
/*
|
|
40
|
-
.rsr-control
|
|
40
|
+
/* Always-on layout & behavior */
|
|
41
|
+
.rsr-control {
|
|
41
42
|
position: absolute;
|
|
42
43
|
top: 50%;
|
|
43
44
|
transform: translateY(-50%);
|
|
44
45
|
z-index: 10;
|
|
45
|
-
|
|
46
46
|
display: inline-flex;
|
|
47
47
|
align-items: center;
|
|
48
48
|
justify-content: center;
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
user-select: none;
|
|
51
|
+
-webkit-tap-highlight-color: transparent;
|
|
52
|
+
}
|
|
49
53
|
|
|
54
|
+
/* Default visual skin (opt-out) */
|
|
55
|
+
.rsr-control:not(.rsr-control--custom) {
|
|
50
56
|
width: 36px;
|
|
51
57
|
height: 36px;
|
|
52
58
|
border-radius: 9999px;
|
|
53
|
-
|
|
54
59
|
border: 1px solid rgba(0, 0, 0, 0.12);
|
|
55
60
|
background: rgba(255, 255, 255, 0.9);
|
|
56
61
|
color: rgba(0, 0, 0, 0.85);
|
|
57
|
-
|
|
58
|
-
cursor: pointer;
|
|
59
|
-
user-select: none;
|
|
60
|
-
-webkit-tap-highlight-color: transparent;
|
|
61
62
|
}
|
|
62
63
|
|
|
63
|
-
|
|
64
|
+
/* Default hover (opt-out) */
|
|
65
|
+
.rsr-control:not(.rsr-control--custom):hover:not(:disabled) {
|
|
64
66
|
background: rgba(255, 255, 255, 1);
|
|
65
67
|
}
|
|
66
68
|
|
|
69
|
+
/* Always-on disabled behavior */
|
|
70
|
+
.rsr-control:disabled {
|
|
71
|
+
cursor: default;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Default disabled visuals (opt-out) */
|
|
67
75
|
.rsr-control:not(.rsr-control--custom):disabled {
|
|
68
76
|
opacity: 0.45;
|
|
69
|
-
cursor: default;
|
|
70
77
|
}
|
|
71
78
|
|
|
72
79
|
.rsr-prev {
|
|
@@ -77,11 +84,6 @@
|
|
|
77
84
|
right: 8px;
|
|
78
85
|
}
|
|
79
86
|
|
|
80
|
-
/* Optional: hide scrollbar in browsers that support it */
|
|
81
|
-
.rsr-scroller {
|
|
82
|
-
scrollbar-width: none; /* Firefox */
|
|
83
|
-
}
|
|
84
|
-
|
|
85
87
|
.rsr-scroller::-webkit-scrollbar {
|
|
86
88
|
width: 0;
|
|
87
89
|
height: 0;
|