Files
fizzy/app/assets/stylesheets/events.css
T
Andy Smith b539cd1ed1 Fix tests
2025-05-13 16:39:11 -05:00

204 lines
4.3 KiB
CSS

@layer components {
/* Event column layout
/* ------------------------------------------------------------------------ */
.events {
--events-gap: 1ch;
--events-border: 1px solid var(--color-ink-lighter);
}
.events__day {
position: relative;
@media (max-width: 639px) {
margin-block-end: calc(var(--events-gap) * 2);
}
}
.events__day-header,
.events__column-header {
font-size: var(--text-small);
text-align: center;
text-transform: uppercase;
}
.events__day-header {
background-color: var(--color-ink-lighter);
border-radius: 0.2em;
display: block;
inline-size: fit-content;
line-height: 1.5;
margin-inline: auto;
padding: 0.5ch 1.3em;
position: absolute;
inset: 0 auto auto 50%;
translate: -50% -50%;
z-index: var(--z-events-day-header);
}
.events__columns {
border-block-start: var(--events-border);
position: relative;
@media (min-width: 640px) {
align-items: end;
border-inline: var(--events-border);
display: grid;
grid-template-columns: repeat(3, 1fr);
/* Pseudo column borders since .events__column is display: contents */
&:before,
&:after {
border-inline-start: var(--events-border);
content: "";
inset-block: 0;
position: absolute;
z-index: var(--z-events-day-header);
}
&:before { inset-inline-start: calc(100% / 3); }
&:after { inset-inline-end: calc(100% / 3); }
}
}
.events__column {
@media (max-width: 639px) {
&:not(:has(.event)) {
display: none;
}
}
@media (min-width: 640px) {
display: contents;
}
}
.events__column-header {
background-color: var(--color-canvas);
grid-row-start: 2;
inset-block-start: calc(var(--events-gap) * -2);
margin-block-end: var(--events-gap);
padding-block: calc(var(--events-gap) * 3) var(--events-gap);
position: sticky;
z-index: var(--z-events-column-header);
}
.events__time-block {
align-content: end;
display: grid;
gap: var(--events-gap);
justify-items: center;
margin: 0;
padding: 0;
@media (min-width: 640px) {
padding-block-end: calc(var(--events-gap) * 3);
padding-inline: calc(var(--events-gap) * 2);
}
.event {
grid-column-start: unset !important;
grid-row-start: unset !important;
}
}
.events__none {
background-color: var(--color-canvas);
border-block-start: var(--events-border);
grid-column: 1 / -1;
padding-block: 3em;
text-align: center;
}
.events__filter-btn {
font-weight: 500;
inline-size: auto;
margin: auto;
}
.events__popup {
margin-block-start: var(--block-space-double);
}
/* Event
/* ------------------------------------------------------------------------ */
.event {
--column-gap: 0.7ch;
--panel-border-color: transparent;
--panel-border-radius: 0.2em;
--panel-padding: 0.6em 1.2em 0.6em 0.6em;
--panel-size: auto;
margin: var(--inline-space);
position: relative;
/* z-index: 1; */
@media (max-width: 639px) {
--panel-size: 100%;
}
}
.event--related {
--hover-color: var(--card-color);
--hover-size: 0.15rem;
box-shadow: 0 0 0 var(--hover-size) var(--hover-color);
/* z-index: 2; */
}
.event__collection {
font-size: var(--text-x-small);
font-weight: 500;
opacity: 0.66;
}
.event__grid-item {
background-color: var(--color-canvas);
block-size: 100%;
border-radius: 0;
display: flex;
inline-size: 100%;
}
.event__grid-column-title {
--z: 3;
background-color: var(--color-canvas);
font-size: 0.9em;
padding: 1.5em 0 1em;
text-transform: uppercase;
}
.event__timestamp {
align-self: start;
display: grid;
font-weight: 600;
margin-block-end: var(--block-space-half);
}
.event__title {
--lines: 4;
font-size: 1.1em;
line-height: 1.2;
}
.event__icon {
aspect-ratio: 1;
background-color: var(--card-color);
block-size: 1.7em;
border-radius: 1.7em;
inline-size: 1.7em;
display: grid;
place-content: center;
margin-inline-end: -0.75em;
.icon {
block-size: 1.1em;
inline-size: 1.1em;
grid-area: 1 / 1;
}
}
}