SF Card

A HUD style panel with a glow and corner brackets. Tinted by --sf-color.

Example

Orange HUD Card Cyan HUD Card

Implementation

import { LitElement, css, html } from 'lit'; import { customElement } from 'lit/decorators.js'; @customElement('zakuni-sf-card') export class ZakuniSFCard extends LitElement { static styles = css` :host { --_c: var(--sf-color, #f90); display: inline-block; } div { position: relative; padding: 1em 2em; color: var(--_c); font-weight: 300; background: color-mix(in srgb, var(--_c) 8%, transparent); border: 1px solid color-mix(in srgb, var(--_c) 60%, transparent); box-shadow: 0 0 8px var(--_c), inset 0 0 12px color-mix(in srgb, var(--_c) 25%, transparent); transition: box-shadow 0.2s; } div:hover { box-shadow: 0 0 14px var(--_c), inset 0 0 16px color-mix(in srgb, var(--_c) 35%, transparent); } /* corner brackets: a full 2px frame, masked down to four 10px corners */ div::before { content: ''; position: absolute; inset: -2px; border: 2px solid var(--_c); --_m: linear-gradient(#000, #000) no-repeat; mask: var(--_m) 0 0 / 10px 10px, var(--_m) 100% 0 / 10px 10px, var(--_m) 0 100% / 10px 10px, var(--_m) 100% 100% / 10px 10px; } `; render() { return html` <div><slot /></div> `; } } declare global { interface HTMLElementTagNameMap { "zakuni-sf-card": ZakuniSFCard; } }

Usage

<zakuni-sf-card style="--sf-color: #7df9ff">Shields at 80%</zakuni-sf-card>

Use it on a dark background; the glow is hard to see on white.