@layer components { .fizzy-dialog:is(.panel) { --panel-border-color: var(--color-selected-dark); --panel-border-radius: 1.4em; --panel-size: 45ch; box-shadow: 0 0 0 1px oklch(var(--lch-blue-medium) / 5%), 0 0.2em 0.2em oklch(var(--lch-blue-medium) / 5%), 0 0.4em 0.4em oklch(var(--lch-blue-medium) / 5%), 0 0.8em 0.8em oklch(var(--lch-blue-medium) / 5%); gap: 2px; } .input:is(.fizzy-menu) { --input-border-color: var(--color-selected-dark); --input-padding: 0.2em 2em 0.2em 0.9em; background-color: var(--color-canvas); margin-block-start: 0.1em; @media (any-hover: hover) { &:hover { filter: brightness(0.9); } } svg { block-size: auto; inline-size: 1.1em; margin-block-end: 0.2em; margin-inline-end: 0.8ch; } } .fizzy-menu__hotkeys { --gap: 8px; align-items: center; display: flex; flex-wrap: wrap; gap: var(--gap); inline-size: 100%; justify-content: center; margin: var(--block-space) auto calc(var(--block-space-half) / 2); max-inline-size: 100%; /* When all its children are hidden, hide this as well so it doesn't take up space */ &:has(.popup__group[hidden]):not(:has(.popup__group:not([hidden]))) { display: none; } .btn { --btn-border-radius: 0.4em; align-content: end; aspect-ratio: 5/3; background-color: var(--color-ink-lightest); border-radius: 0.5em; flex-basis: calc((100% - var(--gap) * 2) / 3); flex-direction: column; font-size: var(--text-small); line-height: 1; justify-content: center; overflow: hidden; position: relative; row-gap: 0.3lh; text-align: center; kbd { border: none; box-shadow: none; inset: 0.66em 0.33em auto auto; opacity: 0.5; position: absolute; @media (any-hover: none) { /* This is a reasonable way to assert touch devices. any-pointer would seem */ /* to be a better fit but it is incorrectly reported on many devices */ display: none; } } .icon { --icon-size: 2em !important; } span { display: flex; text-wrap: nowrap; } @media (max-width: 639px) { font-size: var(--text-x-small); font-weight: 500; } } } }