// Globe .globe { position: relative; z-index: 2; width: 1315px; height: clamp(700px, 100vw, 1315px); overflow: hidden; margin-left: auto; margin-right: auto; cursor: grab; user-select: none; @include bp (sm) { // height: 130vw; } @include bp (md) { // height: 112vw; } @include bp (xl) { // height: 100vw; } // DEBUG // // background: rgba(red, 0.2); // &:after { // content: ""; // display: block; // position: absolute; // top: 50%; // left: 0; // background: blue; // width: 100%; // height: 2px; // margin-top: -1px; // } // END DEBUG // /* ** States and Variants */ // When dragging &.is-grabbing { cursor: grabbing; } // Cropped globe &--cropped { overflow: hidden; height: clamp(300px, 30vw, 500px); } /* ** Markers */ &__markers { z-index: 2; // Marker .marker { position: absolute; z-index: 2; cursor: pointer; display: block; top: -4px; left: -4px; padding: 4px; opacity: 1; will-change: transform; // Dot &:before { content: ""; display: block; position: absolute; top: 0; left: 0; width: 8px; height: 8px; background: $color-secondary; border-radius: 100%; } span { transition: color 0.4s var(--ease-quart), opacity 0.3s var(--ease-inout); } // Hover glow effect &.hover { &:before { animation: globeMarkerPulse 1s; } } // Label &__label { position: absolute; bottom: 16px; left: 0px; color: transparent; pointer-events: none; } // Location city &__city { font-family: $font-serif; font-size: rem(18px); line-height: 1; @include bp (sm) { font-size: rem(24px); } } // Location country &__country { display: block; opacity: 0.8; font-family: $font-sans; font-size: rem(8px); line-height: 1; text-transform: uppercase; letter-spacing: 1px; @include bp (sm) { font-size: rem(10px); } } // Active &.is-active { &, span { opacity: 1; } .marker { &__city { color: $color-secondary; } &__country { color: $color-text; } } } // Is light &.is-light { &.is-active { .marker { &__city { color: #fff; } &__country { color: #d2b7e4; } } } } // Left positioned &.is-left { .marker { &__label { left: auto; right: 32px; } &__country { text-align: right; } } } // Marker is close to another one // Show the marker infos only on hover &.is-close { // Dot &:before { width: 7px; height: 7px; } // Label .marker__label { opacity: 0; } // Show labels on hover &:hover { .marker__label { opacity: 1; } } } } } }