SlideShare a Scribd company logo
INTRODUCTION TO
CSS GRID
KARA LUTON
@karaluton
ABOUT ME
Will stop to pet any dog I see
Nashville native
Retired ballerina
Former music publicist
Web Developer at Lewis Communications
Co-organizer for Tech Ladies
SO WHY GRID?
“More than a layout module, CSS Grid is an invitation
to reaffirm our original intent with web design and
development: to create accessible, extensible solutions
that bring content to those interested in the best way
possible.
At the core of any front-end web project is a simple
principle: First, make it accessible, then make it
fancy, and make sure the fancy doesn’t break
accessibility.”
Morten Rand-Hendriksen
Mobile + tablet
Desktop
TERMS YOU SHOULD
KNOW
GRID TERMINOLOGY
GRID CONTAINER
The element containing the grid,
defined by setting
display: grid;
GRID TERMINOLOGY
GRID ITEM
Any element that is a direct
descendant of the grid container.
GRID TERMINOLOGY
GRID LINE
Horizontal (row) or vertical
(column) line separating the grid
into sections.
GRID TERMINOLOGY
GRID CELL
The intersection between a
grid-row and a grid-column
GRID TERMINOLOGY
GRID AREA
Rectangular area between four
specified grid lines. Can cover
one or more cells.
GRID TERMINOLOGY
GRID TRACK
The space between two grid
lines, either horizontal or
vertical.
GRID TERMINOLOGY
GRID GAP
The empty space between grid
tracks. Commonly called
gutters.
GRID SUPPORT
SETTING UP CSS GRID
<div class="grid">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
}
<div class="grid">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: 20rem 20rem 20rem;
}
.grid {
display: grid;
grid-template-columns: repeat(3, 20rem);
}
<div class="grid">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: 20rem 20rem 20rem;
grid-gap: 1rem;
}
IMPLICIT VS
EXPLICIT GRID
<div class="grid">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: 20rem 20rem 20rem;
grid-gap: 1rem;
}
.grid {
display: grid;
grid-template-columns: 20rem 20rem 20rem;
grid-template-rows: 10rem 15rem;
grid-gap: 1rem;
}
PIXELS, PERCENTAGES +
FRACTIONAL UNITS
<div class="grid">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: 25% 25% 25% 25%;
grid-gap: 1rem;
}
<div class="grid">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: repeat(3, 10rem);
grid-gap: 1rem;
}
<div class="grid">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.grid {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-gap: 1rem;
}
<div class="grid">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.grid {
display: grid;
grid-template-columns: auto 2fr 1fr;
grid-gap: 1rem;
}
SIZING +PLACING
GRID ITEMS
<div class="grid">
<div class="item">1</div>
<div class="item pupper"> </div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 1rem;
}
.pupper {
width: 30rem;
}
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 1rem;
}
.pupper {
grid-column: span 2;
}
<div class="grid">
<div class="item">1</div>
<div class="item pupper"> </div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 1rem;
}
.pupper {
grid-column: span 3;
}
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 1rem;
grid-auto-flow: dense;
}
.pupper {
grid-column: span 3;
}
<div class="grid">
<div class="item">1</div>
<div class="item pupper"> </div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
</div>
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 1rem;
}
.pupper {
grid-column: span 2;
}
.grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 1rem;
}
.pupper {
grid-column: 1 / 3;
}
GRID TEMPLATE AREAS
<div class="grid">
<div class="item1">Sidebar #1</div>
<div class="item2">Doggo ipsum filler</div>
<div class="item3">Another sidebar</div>
<div class="footer">Footer</div>
</div>
.grid {
display: grid;
grid-template-columns: 1fr 3fr 1fr;
grid-template-rows: 10rem 10rem 5rem;
grid-gap: 1rem;
}
.grid {
display: grid;
grid-template-columns: 1fr 3fr 1fr;
grid-template-rows: 10rem 10rem 5rem;
grid-gap: 1rem;
grid-template-areas:
“sidebar-1 content sidebar-2”
“sidebar-1 content sidebar-2”
“footer footer footer”;
}
<div class="grid">
<div class="item1">Sidebar #1</div>
<div class="item2">Doggo ipsum filler</div>
<div class="item3">Another sidebar</div>
<div class="footer">Footer</div>
</div>
.grid {
display: grid;
grid-template-columns: 1fr 3fr 1fr;
grid-template-rows: 10rem 10rem 5rem;
grid-gap: 1rem;
}
.grid {
display: grid;
grid-template-columns: 1fr 3fr 1fr;
grid-template-rows: 10rem 10rem 5rem;
grid-gap: 1rem;
grid-template-areas:
“sidebar-1 content sidebar-2”
“sidebar-1 content sidebar-2”
“footer footer footer”;
}
.item1 {
grid-template-area: sidebar-1;
}
.item2 {
grid-template-area: content;
}
.item3 {
grid-template-area: sidebar-2;
}
.footer {
grid-template-area: footer;
}
DEMO TIME!
RESOURCES
● Wes Bos’ CSS Grid
● CSS Grid Garden
● My article on CSS Grid
GRID TUTORIALS
OTHER RESOURCES
● Info on fallbacks for IE: CSS Grid + Autoprefixer
● Grid by Example
WHAT’S NEXT FOR GRID?
● CSS Grid Level 2 Subgrids
Ad

Recommended

PPTX
Introduction to CSS Grid
Kara Luton
 
PDF
Introduction to CSS Grid
Kara Luton
 
PDF
Google Developers Experts Summit 2017 - CSS Layout
Rachel Andrew
 
PDF
World of CSS Grid
Elad Shechter
 
PDF
The multicolumn challenge: accepted!
Lorena Ramonda
 
PDF
Start Using CSS Grid Layout Today - RuhrJS
Rachel Andrew
 
PDF
The Responsive Grid & You: Extending Your WordPress Site Across Multiple Dev...
Jeremy Fuksa
 
PDF
Web I - 07 - CSS Frameworks
Randy Connolly
 
PPTX
WEB DESIGNING AND DEVELOPMEENT.pptx
NamanGupta785817
 
PDF
CSS Grid Layout. Specification overview. Implementation status and roadmap (B...
Igalia
 
PDF
The Future State of Layout
Stephen Hay
 
PDF
CSS- Smacss Design Rule
皮馬 頑
 
PDF
Grid and Flexbox - Smashing Conf SF
Rachel Andrew
 
PDF
CSS Grid Changes Everything About Web Layouts: WordCamp Europe 2017
Morten Rand-Hendriksen
 
PDF
Evergreen websites for Evergreen browsers
Rachel Andrew
 
PDF
What I discovered about layout vis CSS Grid
Rachel Andrew
 
PDF
Render Conf: Start using CSS Grid Layout Today
Rachel Andrew
 
PDF
View Source London: Solving Layout Problems with CSS Grid & Friends
Rachel Andrew
 
PDF
Frontend United: Start using CSS Grid Layout today!
Rachel Andrew
 
PDF
Solving Layout Problems with CSS Grid & Friends - DevFest17
Rachel Andrew
 
PDF
CSS Day: CSS Grid Layout
Rachel Andrew
 
PDF
Making the most of New CSS Layout
Rachel Andrew
 
PDF
DevFest Nantes - Start Using CSS Grid Layout today
Rachel Andrew
 
PDF
Solving Layout Problems with CSS Grid & Friends - NordicJS
Rachel Andrew
 
PDF
Solving Layout Problems With CSS Grid and Friends
FITC
 
PDF
Solving Layout Problems with CSS Grid & Friends - WEBU17
Rachel Andrew
 
PDF
Into the Weeds of CSS Layout
Rachel Andrew
 
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 

More Related Content

Similar to Introduction to CSS Grid (20)

PPTX
WEB DESIGNING AND DEVELOPMEENT.pptx
NamanGupta785817
 
PDF
CSS Grid Layout. Specification overview. Implementation status and roadmap (B...
Igalia
 
PDF
The Future State of Layout
Stephen Hay
 
PDF
CSS- Smacss Design Rule
皮馬 頑
 
PDF
Grid and Flexbox - Smashing Conf SF
Rachel Andrew
 
PDF
CSS Grid Changes Everything About Web Layouts: WordCamp Europe 2017
Morten Rand-Hendriksen
 
PDF
Evergreen websites for Evergreen browsers
Rachel Andrew
 
PDF
What I discovered about layout vis CSS Grid
Rachel Andrew
 
PDF
Render Conf: Start using CSS Grid Layout Today
Rachel Andrew
 
PDF
View Source London: Solving Layout Problems with CSS Grid & Friends
Rachel Andrew
 
PDF
Frontend United: Start using CSS Grid Layout today!
Rachel Andrew
 
PDF
Solving Layout Problems with CSS Grid & Friends - DevFest17
Rachel Andrew
 
PDF
CSS Day: CSS Grid Layout
Rachel Andrew
 
PDF
Making the most of New CSS Layout
Rachel Andrew
 
PDF
DevFest Nantes - Start Using CSS Grid Layout today
Rachel Andrew
 
PDF
Solving Layout Problems with CSS Grid & Friends - NordicJS
Rachel Andrew
 
PDF
Solving Layout Problems With CSS Grid and Friends
FITC
 
PDF
Solving Layout Problems with CSS Grid & Friends - WEBU17
Rachel Andrew
 
PDF
Into the Weeds of CSS Layout
Rachel Andrew
 
WEB DESIGNING AND DEVELOPMEENT.pptx
NamanGupta785817
 
CSS Grid Layout. Specification overview. Implementation status and roadmap (B...
Igalia
 
The Future State of Layout
Stephen Hay
 
CSS- Smacss Design Rule
皮馬 頑
 
Grid and Flexbox - Smashing Conf SF
Rachel Andrew
 
CSS Grid Changes Everything About Web Layouts: WordCamp Europe 2017
Morten Rand-Hendriksen
 
Evergreen websites for Evergreen browsers
Rachel Andrew
 
What I discovered about layout vis CSS Grid
Rachel Andrew
 
Render Conf: Start using CSS Grid Layout Today
Rachel Andrew
 
View Source London: Solving Layout Problems with CSS Grid & Friends
Rachel Andrew
 
Frontend United: Start using CSS Grid Layout today!
Rachel Andrew
 
Solving Layout Problems with CSS Grid & Friends - DevFest17
Rachel Andrew
 
CSS Day: CSS Grid Layout
Rachel Andrew
 
Making the most of New CSS Layout
Rachel Andrew
 
DevFest Nantes - Start Using CSS Grid Layout today
Rachel Andrew
 
Solving Layout Problems with CSS Grid & Friends - NordicJS
Rachel Andrew
 
Solving Layout Problems With CSS Grid and Friends
FITC
 
Solving Layout Problems with CSS Grid & Friends - WEBU17
Rachel Andrew
 
Into the Weeds of CSS Layout
Rachel Andrew
 

Recently uploaded (20)

PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
PDF
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
PDF
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
PDF
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
PDF
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
PDF
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
PDF
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
PDF
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
PDF
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
PDF
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
PDF
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
PPTX
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
PDF
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
PDF
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
PPTX
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
PDF
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
PDF
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
PDF
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
PDF
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
Cracking the Code - Unveiling Synergies Between Open Source Security and AI.pdf
Priyanka Aash
 
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
 
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
AI vs Human Writing: Can You Tell the Difference?
Shashi Sathyanarayana, Ph.D
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
Ad

Introduction to CSS Grid

  • 1. INTRODUCTION TO CSS GRID KARA LUTON @karaluton
  • 2. ABOUT ME Will stop to pet any dog I see Nashville native Retired ballerina Former music publicist Web Developer at Lewis Communications Co-organizer for Tech Ladies
  • 4. “More than a layout module, CSS Grid is an invitation to reaffirm our original intent with web design and development: to create accessible, extensible solutions that bring content to those interested in the best way possible. At the core of any front-end web project is a simple principle: First, make it accessible, then make it fancy, and make sure the fancy doesn’t break accessibility.” Morten Rand-Hendriksen
  • 7. GRID TERMINOLOGY GRID CONTAINER The element containing the grid, defined by setting display: grid;
  • 8. GRID TERMINOLOGY GRID ITEM Any element that is a direct descendant of the grid container.
  • 9. GRID TERMINOLOGY GRID LINE Horizontal (row) or vertical (column) line separating the grid into sections.
  • 10. GRID TERMINOLOGY GRID CELL The intersection between a grid-row and a grid-column
  • 11. GRID TERMINOLOGY GRID AREA Rectangular area between four specified grid lines. Can cover one or more cells.
  • 12. GRID TERMINOLOGY GRID TRACK The space between two grid lines, either horizontal or vertical.
  • 13. GRID TERMINOLOGY GRID GAP The empty space between grid tracks. Commonly called gutters.
  • 16. <div class="grid"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; }
  • 17. <div class="grid"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: 20rem 20rem 20rem; } .grid { display: grid; grid-template-columns: repeat(3, 20rem); }
  • 18. <div class="grid"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: 20rem 20rem 20rem; grid-gap: 1rem; }
  • 20. <div class="grid"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: 20rem 20rem 20rem; grid-gap: 1rem; } .grid { display: grid; grid-template-columns: 20rem 20rem 20rem; grid-template-rows: 10rem 15rem; grid-gap: 1rem; }
  • 22. <div class="grid"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: 25% 25% 25% 25%; grid-gap: 1rem; }
  • 23. <div class="grid"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: repeat(3, 10rem); grid-gap: 1rem; }
  • 24. <div class="grid"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; } .grid { display: grid; grid-template-columns: 1fr 2fr 1fr; grid-gap: 1rem; }
  • 25. <div class="grid"> <div class="item">1</div> <div class="item">2</div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; } .grid { display: grid; grid-template-columns: auto 2fr 1fr; grid-gap: 1rem; }
  • 27. <div class="grid"> <div class="item">1</div> <div class="item pupper"> </div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 10px; } .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; } .pupper { width: 30rem; } .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; } .pupper { grid-column: span 2; }
  • 28. <div class="grid"> <div class="item">1</div> <div class="item pupper"> </div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; } .pupper { grid-column: span 3; } .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; grid-auto-flow: dense; } .pupper { grid-column: span 3; }
  • 29. <div class="grid"> <div class="item">1</div> <div class="item pupper"> </div> <div class="item">3</div> <div class="item">4</div> <div class="item">5</div> <div class="item">6</div> </div> .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; } .pupper { grid-column: span 2; } .grid { display: grid; grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; } .pupper { grid-column: 1 / 3; }
  • 31. <div class="grid"> <div class="item1">Sidebar #1</div> <div class="item2">Doggo ipsum filler</div> <div class="item3">Another sidebar</div> <div class="footer">Footer</div> </div> .grid { display: grid; grid-template-columns: 1fr 3fr 1fr; grid-template-rows: 10rem 10rem 5rem; grid-gap: 1rem; } .grid { display: grid; grid-template-columns: 1fr 3fr 1fr; grid-template-rows: 10rem 10rem 5rem; grid-gap: 1rem; grid-template-areas: “sidebar-1 content sidebar-2” “sidebar-1 content sidebar-2” “footer footer footer”; }
  • 32. <div class="grid"> <div class="item1">Sidebar #1</div> <div class="item2">Doggo ipsum filler</div> <div class="item3">Another sidebar</div> <div class="footer">Footer</div> </div> .grid { display: grid; grid-template-columns: 1fr 3fr 1fr; grid-template-rows: 10rem 10rem 5rem; grid-gap: 1rem; } .grid { display: grid; grid-template-columns: 1fr 3fr 1fr; grid-template-rows: 10rem 10rem 5rem; grid-gap: 1rem; grid-template-areas: “sidebar-1 content sidebar-2” “sidebar-1 content sidebar-2” “footer footer footer”; } .item1 { grid-template-area: sidebar-1; } .item2 { grid-template-area: content; } .item3 { grid-template-area: sidebar-2; } .footer { grid-template-area: footer; }
  • 34. RESOURCES ● Wes Bos’ CSS Grid ● CSS Grid Garden ● My article on CSS Grid GRID TUTORIALS OTHER RESOURCES ● Info on fallbacks for IE: CSS Grid + Autoprefixer ● Grid by Example WHAT’S NEXT FOR GRID? ● CSS Grid Level 2 Subgrids