diff --git a/snippets/image-mosaic.md b/snippets/image-mosaic.md new file mode 100644 index 000000000..2d8204d1e --- /dev/null +++ b/snippets/image-mosaic.md @@ -0,0 +1,65 @@ +--- +title: Responsive image mosaic. +tags: layout,intermediate +--- + +Creates a responsive image mosaic. + +- Use `display: grid` to create an appropriate responsive layout. +- Use `grid-row: span 2 / auto` and `grid-column: span 2 / auto` to create items that span two rows or two columns respectively. +- Wrap the previous styles into a media query to avoid applying on small screen sizes. + +```html +
+
+
+
+
+
+
+
+
+
+
+
+
+
+``` + +```css +.image-mosaic { + display: grid; + gap: 1rem; + grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); + grid-auto-rows: 240px; +} + +.card { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + background: #353535; + font-size: 3rem; + color: #fff; + box-shadow: rgba(3, 8, 20, 0.1) 0px 0.15rem 0.5rem, rgba(2, 8, 20, 0.1) 0px 0.075rem 0.175rem; + height: 100%; + width: 100%; + border-radius: 4px; + transition: all 500ms; + overflow: hidden; + background-size: cover; + background-position: center; + background-repeat: no-repeat; + } + +@media screen and (min-width: 600px) { + .card-tall { + grid-row: span 2 / auto; + } + + .card-wide { + grid-column: span 2 / auto; + } +} +```