/* CSS inspired by https://css-tricks.com/adaptive-photo-layout-with-flexbox/ */ /* Common */ body { font-family: sans-serif; } a { color: inherit; /* blue colors for links too */ text-decoration: inherit; /* no underline */ } html { height: 100%; width: 100%; } li img, li video { height: 100%; /* Safari prefers min-width rather than width. Firefox don't care. */ min-width: 100%; object-fit: cover; vertical-align: bottom; } ul { padding: 0; margin: 0; } /* Album */ body.album { margin: 3vh; } body.album ul { display: flex; flex-wrap: wrap; align-items: flex-start; } body.album li { /* * Line height is expressed as a factor of the viewport width since * we want to fit roughly the same amount of photos per line, * independently of the user's device */ height: 13vw; flex-grow: 0.5; list-style-type: none; padding: 1px; } body.album li:last-child { flex-grow: 10; } /* Media */ body.media { height: 100%; width: 100%; margin: 0; display: flex; flex-direction: column-reverse; justify-content: space-between; } body.media h1 { background-color: #888888AA; padding: 1vh; margin-left: 3vh; margin-right: 3vh; } body.media img, body.media video { object-fit: contain; max-height: 80%; min-width: 100%; margin-top: 3vh; margin-left: 3vh; margin-right: 3vh; } /* Index */ body.index { margin: 3vw; } body.index h2 { margin-top: 2em; } body.index h1 { text-align: center; } body.index ul { display: grid; grid-gap: 3vw; grid-auto-flow: row; grid-template-columns: 20vw 20vw 20vw 20vw; /* * Line height is expressed as a factor of the viewport width since * we want to fit roughly the same amount of photos per line, * independently of the user's device */ grid-auto-rows: 20vw; } body.index ul li { list-style-type: none; } body.index ul.album li { background-color: #CCC; } body.index ul li a { display: flex; text-align: center; flex-direction: column; justify-content: space-between; height: 100%; width: 100%; } /* Album Name */ body.index ul.album div:last-child { /*font-size: re;*/ height: 2vw; line-height: 2vw; flex-grow: 0; flex-shrink: 0; background-color: #999; /* Sigh! https://codepen.io/CrocoDillon/pen/jgmwt */ font-size: calc(0.6vw + 0.6vh + 0.2vmin); } body.index ul.album img { height: 18vw; object-fit: cover; } body.index ul.media img { object-fit: contain; } body.index div.no-cover { font-size: 4em; } /* hide album titles on small screens */ @media (max-width: 640px) { body.index ul.album div { display: none; } body.index ul.album img { height: 20vw; } }