main h1 { color: var(--gold); } #event-list { max-height: 60vh; overflow: auto; scrollbar-width: thin; scrollbar-color: black #ddd; } #event-list::-webkit-scrollbar { width: 0.25em; height: 0.25em; } #event-list::-webkit-scrollbar-track { background: #ddd; } #event-list::-webkit-scrollbar-thumb { background: black; } .events { display: grid; grid-auto-rows: var(--cell-height); grid-template-columns: repeat(auto-fit, minmax(var(--cell-width), 0.5fr)); grid-gap: 0.8em; } .eventcontainer { position: relative; } a.event { display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; text-decoration: none; } .event img { object-position: center; object-fit: cover; height: 100%; width: 100%; } .event .summary { position: absolute; font-weight: bold; color: white; text-align: center; } .credits::before { content: '© '; } .credits { position: absolute; top: 0; right: 0; color: white; background: #0008; border-bottom-left-radius: 0.5em; padding: 0 0.2em; font-size: small; } .event.canceled { opacity: 50%; transition: 0.5s; } .event.canceled .summary .canceled { display: block; color: red; } .event.canceled:hover, .eventcontainer.active .event.canceled { opacity: 1; } .details > .detail { display: grid; grid-template-columns: 2em 1fr; } .detail.date::before { content: "📅"; } .detail.time::before { content: "🕗"; } .detail.place::before { content: "📌"; } .detail.program::before { content: "🎼"; } .details > .detail::before { grid-column: 1; } .details > .detail > * { grid-column: 2; } .detail.program { padding-left: 0; list-style: none; } .details.canceled > .canceled { color: red; } .details.canceled .detail, .details.canceled .more { opacity: 50%; } @media (min-width: 40em) { main { /* Define thumbnail dimension here so that we can align stuff in * #event-details. */ --cell-width: 14em; --cell-height: 12em; display: grid; grid-template-columns: 60% 40%; } main > div { padding-left: 1em; padding-right: 1em; } .event .summary { opacity: 0; transition: 0.5s; } .event img { transition: 0.5s; } .eventcontainer:not(.active):hover img, .eventcontainer:not(.active):focus-within img, .eventcontainer.active img { filter: grayscale(0.8) brightness(0.4); } .eventcontainer:not(.active):hover .summary, .eventcontainer:not(.active):focus-within .summary, .eventcontainer.active .summary { opacity: 1; } .credits:not(:hover) > span:only-child { display: none; } /* Try to align with center of thumbnails. */ #event-details > p.hint { margin-top: calc( /* h1: 1.4em (commun.css) with 2*.67em margins (default) */ 1.4 * (1em + 2*.67em) /* Half of grid height */ + var(--cell-height) / 2 ); } } @media (max-width: 40em) { .events { --cell-width: 10em; --cell-height: 8em; } .event .summary { align-self: flex-end; display: flex; /* Make sure CANCELED block goes above summary. */ flex-direction: column; width: 100%; margin: 0; background: #0008; } .eventcontainer.active > a.event .summary { height: 100%; justify-content: center; } }