From f7301620722832a0b46c2aa79501a1d2583f8000 Mon Sep 17 00:00:00 2001
From: Chris Rebert <code@chrisrebert.com>
Date: Fri, 23 Oct 2015 12:05:12 -0700
Subject: [PATCH] Stop hardcoding grid tiers in flexbox alignment & ordering
 classes; fixes #18026

[skip sauce]
[skip validator]
---
 scss/_grid.scss | 81 +++++++++++--------------------------------------
 1 file changed, 17 insertions(+), 64 deletions(-)

diff --git a/scss/_grid.scss b/scss/_grid.scss
index 2f58dc1ea8..02a2895579 100644
--- a/scss/_grid.scss
+++ b/scss/_grid.scss
@@ -47,78 +47,31 @@
 
   // Flex column reordering
 
-  .col-xs-first { order: -1; }
-  .col-xs-last { order: 1; }
-
-  @include media-breakpoint-up(sm) {
-    .col-sm-first { order: -1; }
-    .col-sm-last { order: 1; }
-  }
-  @include media-breakpoint-up(md) {
-    .col-md-first { order: -1; }
-    .col-md-last { order: 1; }
-  }
-  @include media-breakpoint-up(lg) {
-    .col-lg-first { order: -1; }
-    .col-lg-last { order: 1; }
-  }
-  @include media-breakpoint-up(xl) {
-    .col-xl-first { order: -1; }
-    .col-xl-last { order: 1; }
+  @each $breakpoint in map-keys($grid-breakpoints) {
+    @include media-breakpoint-up($breakpoint) {
+      .col-#{$breakpoint}-first { order: -1; }
+      .col-#{$breakpoint}-last  { order: 1; }
+    }
   }
 
   // Alignment for every column in row
 
-  .row-xs-top    { align-items: flex-start; }
-  .row-xs-center { align-items: center; }
-  .row-xs-bottom { align-items: flex-end; }
-
-  @include media-breakpoint-up(sm) {
-    .row-sm-top    { align-items: flex-start; }
-    .row-sm-center { align-items: center; }
-    .row-sm-bottom { align-items: flex-end; }
-  }
-  @include media-breakpoint-up(md) {
-    .row-md-top    { align-items: flex-start; }
-    .row-md-center { align-items: center; }
-    .row-md-bottom { align-items: flex-end; }
-  }
-  @include media-breakpoint-up(lg) {
-    .row-lg-top    { align-items: flex-start; }
-    .row-lg-center { align-items: center; }
-    .row-lg-bottom { align-items: flex-end; }
-  }
-  @include media-breakpoint-up(xl) {
-    .row-xl-top    { align-items: flex-start; }
-    .row-xl-center { align-items: center; }
-    .row-xl-bottom { align-items: flex-end; }
+  @each $breakpoint in map-keys($grid-breakpoints) {
+    @include media-breakpoint-up($breakpoint) {
+      .row-#{$breakpoint}-top    { align-items: flex-start; }
+      .row-#{$breakpoint}-center { align-items: center; }
+      .row-#{$breakpoint}-bottom { align-items: flex-end; }
+    }
   }
 
   // Alignment per column
 
-  .col-xs-top    { align-self: flex-start; }
-  .col-xs-center { align-self: center; }
-  .col-xs-bottom { align-self: flex-end; }
-
-  @include media-breakpoint-up(sm) {
-    .col-sm-top    { align-self: flex-start; }
-    .col-sm-center { align-self: center; }
-    .col-sm-bottom { align-self: flex-end; }
-  }
-  @include media-breakpoint-up(md) {
-    .col-md-top    { align-self: flex-start; }
-    .col-md-center { align-self: center; }
-    .col-md-bottom { align-self: flex-end; }
-  }
-  @include media-breakpoint-up(lg) {
-    .col-lg-top    { align-self: flex-start; }
-    .col-lg-center { align-self: center; }
-    .col-lg-bottom { align-self: flex-end; }
-  }
-  @include media-breakpoint-up(xl) {
-    .col-xl-top    { align-self: flex-start; }
-    .col-xl-center { align-self: center; }
-    .col-xl-bottom { align-self: flex-end; }
+  @each $breakpoint in map-keys($grid-breakpoints) {
+    @include media-breakpoint-up($breakpoint) {
+      .col-#{$breakpoint}-top    { align-self: flex-start; }
+      .col-#{$breakpoint}-center { align-self: center; }
+      .col-#{$breakpoint}-bottom { align-self: flex-end; }
+    }
   }
 
 }
-- 
GitLab