Summary Files Commits Branches @commit @diff @stats
path: root / src / comparison-sliders.less
diff options
context:
space:
mode:
1 files changed, 115 insertions, 0 deletions
-rw-r--r--src/comparison-sliders.less115
diff --git a/src/comparison-sliders.less b/src/comparison-sliders.less
new file mode 100644
index 0000000..5007f70
--- /dev/null
+++ b/src/comparison-sliders.less
@@ -0,0 +1,115 @@
+// Image comparison slider
+// Credit: http://jsfiddle.net/os8bj2xq/
+.comparison-slider {
+ height: 50vh;
+ overflow: hidden;
+ position: relative;
+ width: 100%;
+
+ .comparison-before,
+ .comparison-after {
+ height: 100%;
+ left: 0;
+ margin: 0;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+
+ img {
+ height: 100%;
+ object-fit: none;
+ object-position: left top;
+ position: absolute;
+ width: 100%;
+ z-index: -1;
+ }
+ }
+
+ .comparison-before {
+ width: 100%;
+
+ .comparison-label {
+ right: 1.6rem;
+ }
+ }
+
+ .comparison-after {
+ max-width: 100%;
+ min-width: 0;
+ z-index: @zindex-0;
+
+ &::before {
+ background: transparent;
+ content: "";
+ cursor: default;
+ height: 100%;
+ left: 0;
+ position: absolute;
+ right: 1.6rem;
+ top: 0;
+ z-index: @zindex-0;
+ }
+
+ &::after {
+ background: currentColor;
+ border-radius: 50%;
+ box-shadow: 0 -.5rem, 0 .5rem;
+ color: @light-color;
+ content: "";
+ height: .3rem;
+ position: absolute;
+ right: .8rem;
+ top: 50%;
+ transform: translate(50%, -50%);
+ width: .3rem;
+ z-index: -@zindex-0;
+ }
+
+ .comparison-label {
+ left: 1.6rem;
+ }
+ }
+
+ .comparison-resizer {
+ animation: first-run 1.5s 1 ease-in-out;
+ cursor: ew-resize;
+ height: 1.5rem;
+ left: 0;
+ max-width: 100%;
+ min-width: 1.6rem;
+ opacity: 0;
+ outline: none;
+ position: relative;
+ resize: horizontal;
+ top: 50%;
+ transform: translateY(-50%) scaleY(30);
+ width: 0;
+ }
+
+ .comparison-label {
+ background: fade(@dark-color, 50%);
+ bottom: 1.6rem;
+ color: @light-color;
+ padding: .3rem .8rem;
+ position: absolute;
+ user-select: none;
+ }
+}
+
+@keyframes first-run {
+ 0% {
+ width: 0;
+ }
+ 25% {
+ width: 4.8rem;
+ }
+ 50% {
+ width: 1.6rem;
+ }
+ 75% {
+ width: 2.4rem;
+ }
+ 100% {
+ width: 0;
+ }
+}