Summary Files Commits Branches @commit @diff @stats
path: root / src
diff options
context:
space:
mode:
Commit2a8cbf690cfc117dd76a07fb74742a8691e28a89 (patch)
Author
 Yan Zhu <picturepan2@hotmail.com>
2017-03-04 15:28:42 +0800
Committer
 Yan Zhu <picturepan2@hotmail.com>
2017-03-04 15:28:42 +0800
Files70354f66c1606b1af26be630dcbf1135d001056b /src
Spectre-Dark-Gruvbox-2a8cbf690cfc117dd76a07fb74742a8691e28a89.tar
Spectre-Dark-Gruvbox-2a8cbf690cfc117dd76a07fb74742a8691e28a89.tar.gz
Spectre-Dark-Gruvbox-2a8cbf690cfc117dd76a07fb74742a8691e28a89.zip
Parentc2d4a7e9e50144efc0e080e74ddf0ed4a11ee8a9 (diff)
Add Carousels exp component
1 files changed, 123 insertions, 0 deletions
-rw-r--r--src/carousels.less123
diff --git a/src/carousels.less b/src/carousels.less
new file mode 100644
index 0000000..e826840
--- /dev/null
+++ b/src/carousels.less
@@ -0,0 +1,123 @@
+// Carousels
+.carousel {
+ background: @bg-color;
+ display: block;
+ height: 50vh;
+ overflow: hidden;
+ position: relative;
+ width: 100%;
+
+ .carousel-container {
+ height: 100%;
+ left: 0;
+ position: relative;
+ //animation: carousel-autoplay 15s infinite;
+
+ .carousel-item {
+ animation: carousel-slideout 1s 1;
+ height: 100%;
+ left: 0;
+ margin: 0;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ width: 100%;
+ }
+ }
+
+ .carousel-locator {
+ display: none;
+
+ &:nth-of-type(1):checked ~ .carousel-container .carousel-item:nth-of-type(1),
+ &:nth-of-type(2):checked ~ .carousel-container .carousel-item:nth-of-type(2),
+ &:nth-of-type(3):checked ~ .carousel-container .carousel-item:nth-of-type(3),
+ &:nth-of-type(4):checked ~ .carousel-container .carousel-item:nth-of-type(4) {
+ animation: carousel-slidein .75s 1;
+ opacity: 1;
+ z-index: 99;
+ }
+ &:nth-of-type(1):checked ~ .carousel-nav .nav-item:nth-of-type(1),
+ &:nth-of-type(2):checked ~ .carousel-nav .nav-item:nth-of-type(2),
+ &:nth-of-type(3):checked ~ .carousel-nav .nav-item:nth-of-type(3),
+ &:nth-of-type(4):checked ~ .carousel-nav .nav-item:nth-of-type(4) {
+ color: @light-gray-color;
+ }
+ }
+
+ .carousel-nav {
+ bottom: 1rem;
+ display: flex;
+ justify-content: center;
+ left: 50%;
+ position: absolute;
+ transform: translateX(-50%);
+ width: 20rem;
+ z-index: 999;
+
+ .nav-item {
+ color: fade(@light-gray-color, 50%);
+ display: block;
+ flex: 1 0 auto;
+ height: 4rem;
+ margin: .4rem;
+ max-width: 5rem;
+ position: relative;
+
+ &::before {
+ background: currentColor;
+ content: "";
+ display: block;
+ height: .3rem;
+ position: absolute;
+ top: 2rem;
+ width: 100%;
+ }
+ }
+ }
+}
+
+@supports (object-fit: cover) {
+ .carousel-item {
+ img {
+ height: 100%;
+ object-fit: cover;
+ width: 100%;
+ }
+ }
+}
+
+@keyframes carousel-autoplay {
+ 0% {
+ transform: translateX(0);
+ }
+ 25% {
+ transform: translateX(-25%);
+ }
+ 50% {
+ transform: translateX(-50%);
+ }
+ 75% {
+ transform: translateX(-75%);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+@keyframes carousel-slidein {
+ 0% {
+ transform: translateX(100%);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+@keyframes carousel-slideout {
+ 0% {
+ opacity: 1;
+ transform: translateX(0) scale(1);
+ }
+ 100% {
+ opacity: 0;
+ transform: translateX(-50%) scale(.95);
+ }
+}