Summary Files Commits Branches @commit @diff @stats
path: root / src / carousels.less
diff options
context:
space:
mode:
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);
+ }
+}