diff --git a/snippets/grid-layout.md b/snippets/grid-layout.md
new file mode 100644
index 000000000..54c7e441d
--- /dev/null
+++ b/snippets/grid-layout.md
@@ -0,0 +1,105 @@
+### Grid layout
+
+Basic website layout using `grid`.
+
+#### HTML
+
+```html
+
+
+
+
Content
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Deleniti modi sed accusamus vero laborum? Ut ducimus doloremque perspiciatis labore velit, nostrum, molestias animi, nulla odit illum voluptas est explicabo non!
+
+
+
+```
+
+#### CSS
+
+```css
+.grid-layout {
+ display: grid;
+ grid-gap: 10px;
+ grid-template-columns: repeat(3, 1fr);
+ grid-template-areas:
+ "sidebar header header"
+ "sidebar content content"
+ "sidebar footer footer";
+}
+.sidebar {
+ grid-area: sidebar;
+}
+.content {
+ grid-area: content;
+}
+.header {
+ grid-area: header;
+}
+.footer {
+ grid-area: footer;
+}
+```
+
+#### Demo
+
+
+
+
+
+
Content
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
+
+
+
+
+
+
+
+#### Explanation
+
+1. `display: grid` enables grid.
+2. `grid-gap: 10px` defines spacing between the elements.
+3. `grid-template-columns: repeat(3, 1fr)` defines 3 columns of the same size.
+4. `grid-template-areas` defines the names of grid areas.
+5. `grid-area: sidebar` makes the element use the area with the name `sidebar`.
+
+#### Browser support
+
+✅ No caveats.
+
+* https://caniuse.com/#feat=css-grid
+
+
\ No newline at end of file