204 lines
4.3 KiB
CSS
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;
|
|
}
|
|
}
|
|
}
|