:host { display: block; height: 100%; width: 100%; } img,video { width: 100%; height: 100%; display: block; } .embla { width: 100%; height: 100%; position: relative; margin-left: auto; margin-right: auto; } .embla__container { display: flex; width: 100%; height: 100%; user-select: none; -webkit-touch-callout: none; -khtml-user-select: none; -webkit-tap-highlight-color: transparent; } :host([direction=vertical]) .embla__container { flex-direction: column; } :host([direction=horizontal]) .embla__container { flex-direction: row; } .embla__viewport { width: 100%; height: 100%; overflow: hidden; // Center vertically in the viewport. display: flex; flex-direction: column; justify-content: center; } .embla__viewport.is-draggable { cursor: move; cursor: grab; } .embla__viewport.is-dragging { cursor: grabbing; } .embla__slide { position: relative; overflow: visible; } :host([direction=vertical]) .embla__slide { margin-bottom: 5px; } :host([direction=horizontal]) .embla__slide { margin-right: 5px; } .embla__slide img,video { // Letterbox media. has similar added directly in // its element. object-fit: contain; }