Files
fizzy/app/assets/stylesheets/fizzy-menu.css
T
2025-09-12 11:27:47 -05:00

117 lines
2.7 KiB
CSS

@layer components {
.input:is(.fizzy-menu-trigger) {
--input-background: var(--color-canvas);
--input-border-color: transparent;
--input-padding: 0.2em 2em 0.2em 0.9em;
inline-size: auto;
margin-block-start: 0.1em;
::-webkit-search-cancel-button {
-webkit-appearance: none;
}
@media (any-hover: hover) {
&:hover {
filter: brightness(0.9);
@media (prefers-color-scheme: dark) {
--input-background: var(--color-ink-lighter);
}
}
}
svg {
block-size: auto;
inline-size: 1.1em;
margin-block-end: 0.2em;
margin-inline-end: 0.8ch;
}
}
.fizzy-menu:is(.panel) {
--panel-border-color: var(--color-selected-dark);
--panel-border-radius: 1.4em;
--panel-size: 45ch;
align-items: stretch;
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%);
flex-direction: column;
gap: 2px;
}
.fizzy-menu__close {
@media (any-hover: hover) {
display: none;
}
}
.fizzy-menu__hotkeys {
--gap: 8px;
align-items: center;
display: flex;
flex-wrap: wrap;
gap: var(--gap);
inline-size: 100%;
list-style: none;
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__item[hidden]):not(:has(.popup__item: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;
}
}
}
}