Files
fizzy/app/assets/stylesheets/pins.css
T
Jason Zimdars 28a569c49b Tickets
2025-03-17 21:24:08 -05:00

158 lines
3.3 KiB
CSS

.pin-tray {
--size: 38ch;
--height: calc(5ch + 1lh + var(--block-space));
block-size: var(--height);
inline-size: var(--size);
inset: auto auto var(--block-space-half) var(--inline-space);
padding: var(--block-space-half) var(--inline-space);
position: fixed;
z-index: 1;
.pin {
--offset: calc((var(--position) - 1) * (var(--block-space) * -1));
--position: 1;
--scale: calc(1 - var(--position) / 30);
--z: calc(6 - var(--position));
inset: auto auto 0;
inline-size: var(--size);
outline: 0;
pointer-events: none;
position: absolute;
scale: var(--scale);
transform: translateY(var(--offset));
transform-origin: center;
transition: scale 0.2s ease-out, transform 0.2s ease-out;
z-index: var(--z);
&:nth-child(1) { --position: 1; }
&:nth-child(2) { --position: 2; }
&:nth-child(3) { --position: 3; }
&:nth-child(4) { --position: 4; }
&:nth-child(5) { --position: 5; }
&:nth-child(6) { --position: 6; }
&:nth-child(1n + 7) { display: none; }
.pin-tray[open] & {
--scale: 1;
--offset: calc((100% + var(--block-space-half)) * (var(--position) * -1));
margin-block-end: calc(var(--block-space) * -1);
pointer-events: unset;
}
.pin-tray:has(.pin:only-child) & {
pointer-events: unset;
}
}
}
.pin-tray__actions {
opacity: 0;
scale: calc(1 - 1 / 30);
transform: translateY(100%);
transition: opacity 0.2s ease-out, scale 0.2s ease-out, transform 0.2s ease-out;
.pin-tray[open] & {
opacity: 1;
scale: 1;
transform: translateY(0);
}
.pin-tray:has(.pin) & {
.btn img {
display: none;
}
}
.pin-tray:not(:has(.pin)) & {
opacity: 1;
scale: 1;
transform: none;
transition: none;
.pin-tray__all_action {
--btn-border-radius: 50%;
--btn-padding: 0;
aspect-ratio: 1;
block-size: var(--btn-size);
display: grid;
inline-size: var(--btn-size);
place-items: center;
> * {
grid-area: 1/1;
}
span {
display: none;
}
}
.pin-tray__read_action {
display: none;
}
}
}
.pin__content {
color: var(--color-ink);
border: 1px solid;
.notificiations-list--read & {
border: 1px solid var(--color-subtle);
box-shadow: none;
}
}
.pin__title {
padding-inline-end: calc(var(--inline-space-half) + 1.2em);
}
.pin-tray__expander {
--hover-size: 0;
--outline-size: 0;
cursor: pointer;
inset: 0;
position: absolute;
z-index: 6;
.pin-tray[open] &,
.pin-tray:not(:has(.pin)) &,
.pin-tray:has(.pin:only-child) & {
display: none;
}
}
.pin-tray__overflow {
--offset: calc((var(--position) - 1) * (var(--block-space) * -1));
--position: 7;
--scale: calc(1 - var(--position) / 30);
--z: calc(6 - var(--position));
block-size: var(--height);
display: none;
inset: auto auto 0;
inline-size: var(--size);
pointer-events: none;
position: absolute;
scale: var(--scale);
transform: translateY(var(--offset));
transition: scale 0.2s ease-out, transform 0.2s ease-out;
z-index: var(--z);
.pin-tray:has(.pin:nth-child(7)) & {
display: flex;
}
.pin-tray[open] & {
--offset: calc((100% + var(--block-space-half)) * (var(--position) * -1));
--scale: 1;
pointer-events: unset;
}
}