UNPKG

@fluido/ui-containers

Version:

A framework for create front-end easy and fast

52 lines (48 loc) 1.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Frame_ = void 0; const ui_1 = require("@fluido/ui"); const box_1 = require("../box"); function getRatios(ratio) { if (typeof ratio === 'string') { const ratios = ratio.trim().split(/\/|:|x/); if (ratios.length === 1) ratios[1] = ratios[0]; return ` --aspect-w: ${ratios[0]}; --aspect-h: ${ratios[1]}; `; } return ` --aspect-w: ${ratio}; --aspect-h: ${1}; `; } exports.Frame_ = (0, ui_1.styled)(box_1.Box) ` ${({ ratio }) => getRatios(ratio || 1)} aspect-ratio: var(--aspect-w) / var(--aspect-h); display: grid; grid-template-areas: 'cell'; position: relative; overflow: #and(!$allowOverflow, hidden); min-height: #and($preserveRatio, 0); isolation: #and($context, isolate); & > img, & > video, & > [style] { width: 100%; height: 100%; object-fit: $objectFit; } @supports not (aspect-ratio: 1 / 1) { &::before { grid-area: cell; padding-bottom: calc(var(--aspect-h) / var(--aspect-w) * 100%); content: ''; } & > * { grid-area: cell; position: #select($preserveRatio || $allowOverflow, absolute); } } `;