:host { display: block; // Anchor absolutes to the outer part of the card. position: relative; } :host([dark]) { filter: brightness(50%); } .container { position: relative; overflow: auto; width: 100%; height: 100%; margin: auto; display: flex; justify-content: center; // Need to apply the border radius on the container level, as the ha-card has // overflow visible in order to allow a submenu to extend beyond the card // boundary. border-radius: var(--ha-card-border-radius, 4px); } .container.triggered { @keyframes warning-pulse { 0% { border: solid 1px rgba(0,0,0,0); } 50% { border: solid 1px var(--warning-color); } 100% { border: solid 1px rgba(0,0,0,0); } } animation: warning-pulse 5s infinite; } .frigate-card-contents { width: inherit; height: inherit; margin: auto; overflow: auto; display: flex; align-items: center; justify-content: center; // Include the borders in the sizing (to keep the triggered warning pulse // visible in fullscreen). box-sizing: border-box; // Hide scrollbar: Firefox scrollbar-width: none; // Hide scrollbar: IE and Edge -ms-overflow-style: none; } /* Hide scrollbar for Chrome, Safari and Opera */ .frigate-card-contents::-webkit-scrollbar { display: none; } /* When forcing aspect ratio absolute positioning is required */ .frigate-card-contents.absolute { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; } /* The 'hover' menu mode is styling applied outside of the menu itself */ frigate-card-menu[data-style='hover'] { z-index: 1; transition: opacity 0.5s ease; } .outer + frigate-card-menu[data-style='hover'] { opacity: 0; } frigate-card-menu[data-style='hover']:hover { opacity: 1; } ha-card { display: flex; flex-direction: column; margin: auto; // Some elements (such as submenus) may need to extend beyond the card boundary. overflow: visible; width: 100%; height: 100%; position: static; color: var(--secondary-text-color, white); background-color: var(--secondary-background-color, black); border-radius: var(--ha-card-border-radius, 4px); } frigate-card-live.hidden { // Live view will be rendered but hidden for live preloading. display: none; } // Browsers will reject invalid whole CSS selectors if one selector is bad, so // need to use mixin here instead of just comma-separated selectors. // - Related: https://stackoverflow.com/questions/16982449/why-isnt-it-possible-to-combine-vendor-specific-pseudo-elements-classes-into-on @mixin fullscreen-ha-card { // Make the background black, to give it the expected fullscreen feel. background-color: black; // Hide corners on Safari fullscreen. border-radius: 0px; } :host(:fullscreen) ha-card { @include fullscreen-ha-card; } :host(:-webkit-full-screen) ha-card { @include fullscreen-ha-card; } :host(:-moz-full-screen) ha-card { @include fullscreen-ha-card; } :host(:-ms-fullscreen) ha-card { @include fullscreen-ha-card; }