From 0c1df9912f99780fcab410b231c00a5e56972b5e Mon Sep 17 00:00:00 2001
From: Chris Rebert <code@chrisrebert.com>
Date: Thu, 29 Oct 2015 22:24:25 -0700
Subject: [PATCH] Refactor pagination code to remove unnecessary ancestor
 requirements in selectors

---
 scss/_pagination.scss        | 71 +++++++++++++++++-------------------
 scss/mixins/_pagination.scss | 11 +++---
 2 files changed, 40 insertions(+), 42 deletions(-)

diff --git a/scss/_pagination.scss b/scss/_pagination.scss
index c7eafa1854..26a7102c17 100644
--- a/scss/_pagination.scss
+++ b/scss/_pagination.scss
@@ -4,43 +4,24 @@
   margin-top: $spacer-y;
   margin-bottom: $spacer-y;
   @include border-radius();
+}
 
-  .page {
-    display: inline; // Remove list-style and block-level defaults
+.page {
+  display: inline; // Remove list-style and block-level defaults
 
+  &:first-child {
     .page-link {
-      position: relative;
-      float: left; // Collapse white-space
-      padding: $pagination-padding-y $pagination-padding-x;
-      margin-left: -1px;
-      line-height: $line-height;
-      color: $pagination-color;
-      text-decoration: none;
-      background-color: $pagination-bg;
-      border: $pagination-border-width solid $pagination-border-color;
-    }
-    &:first-child {
-      .page-link {
-        margin-left: 0;
-        @include border-left-radius($border-radius);
-      }
-    }
-    &:last-child {
-      .page-link {
-        @include border-right-radius($border-radius);
-      }
+      margin-left: 0;
+      @include border-left-radius($border-radius);
     }
   }
-
-  .page .page-link {
-    @include hover-focus {
-      color: $pagination-hover-color;
-      background-color: $pagination-hover-bg;
-      border-color: $pagination-hover-border;
+  &:last-child {
+    .page-link {
+      @include border-right-radius($border-radius);
     }
   }
 
-  .page.active .page-link {
+  &.active .page-link {
     @include plain-hover-focus {
       z-index: 2;
       color: $pagination-active-color;
@@ -50,18 +31,34 @@
     }
   }
 
-  .page.disabled {
-    .page-link {
-      @include plain-hover-focus {
-        color: $pagination-disabled-color;
-        cursor: $cursor-disabled;
-        background-color: $pagination-disabled-bg;
-        border-color: $pagination-disabled-border;
-      }
+  &.disabled .page-link {
+    @include plain-hover-focus {
+      color: $pagination-disabled-color;
+      cursor: $cursor-disabled;
+      background-color: $pagination-disabled-bg;
+      border-color: $pagination-disabled-border;
     }
   }
 }
 
+.page-link {
+  position: relative;
+  float: left; // Collapse white-space
+  padding: $pagination-padding-y $pagination-padding-x;
+  margin-left: -1px;
+  line-height: $line-height;
+  color: $pagination-color;
+  text-decoration: none;
+  background-color: $pagination-bg;
+  border: 1px solid $pagination-border;
+
+  @include hover-focus {
+    color: $pagination-hover-color;
+    background-color: $pagination-hover-bg;
+    border-color: $pagination-hover-border;
+  }
+}
+
 
 //
 // Sizing
diff --git a/scss/mixins/_pagination.scss b/scss/mixins/_pagination.scss
index 32c8de0b70..8d722004ec 100644
--- a/scss/mixins/_pagination.scss
+++ b/scss/mixins/_pagination.scss
@@ -1,12 +1,13 @@
 // Pagination
 
 @mixin pagination-size($padding-vertical, $padding-horizontal, $font-size, $line-height, $border-radius) {
+  .page-link {
+    padding: $padding-vertical $padding-horizontal;
+    font-size: $font-size;
+    line-height: $line-height;
+  }
+
   .page {
-    .page-link {
-      padding: $padding-vertical $padding-horizontal;
-      font-size: $font-size;
-      line-height: $line-height;
-    }
     &:first-child {
       .page-link {
         @include border-left-radius($border-radius);
-- 
GitLab