Skip to content

Commit 4b5287b

Browse files
committed
feat(Nav): add "underline border" variant
1 parent eb58a2d commit 4b5287b

File tree

3 files changed

+72
-0
lines changed

3 files changed

+72
-0
lines changed

docs/content/components/navs-tabs.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,27 @@ Take that same HTML, but use `.nav-underline` instead:
189189
</ul>
190190
{{< /example >}}
191191

192+
### Underline border
193+
194+
Take that same HTML, but use `.nav-underline-border` instead:
195+
196+
{{< example >}}
197+
<ul class="nav nav-underline-border">
198+
<li class="nav-item">
199+
<a class="nav-link active" aria-current="page" href="#">Active</a>
200+
</li>
201+
<li class="nav-item">
202+
<a class="nav-link" href="#">Link</a>
203+
</li>
204+
<li class="nav-item">
205+
<a class="nav-link" href="#">Link</a>
206+
</li>
207+
<li class="nav-item">
208+
<a class="nav-link disabled" aria-disabled="true">Disabled</a>
209+
</li>
210+
</ul>
211+
{{< /example >}}
212+
192213
### Fill and justify
193214

194215
Force your `.nav`'s contents to extend the full available width one of two modifier classes. To proportionately fill all available space with your `.nav-item`s, use `.nav-fill`. Notice that all horizontal space is occupied, but not every nav item has the same width.

scss/_nav.scss

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,48 @@
154154
}
155155

156156

157+
//
158+
// Underline border
159+
//
160+
161+
.nav-underline-border {
162+
// scss-docs-start nav-underline-css-vars
163+
--#{$prefix}nav-underline-border-gap: #{$nav-underline-border-gap};
164+
--#{$prefix}nav-underline-border-border-color: #{$nav-underline-border-border-color};
165+
--#{$prefix}nav-underline-border-border-width: #{$nav-underline-border-border-width};
166+
--#{$prefix}nav-underline-border-link-padding-x: #{$nav-underline-border-link-padding-x};
167+
--#{$prefix}nav-underline-border-link-padding-y: #{$nav-underline-border-link-padding-y};
168+
--#{$prefix}nav-underline-border-link-color: #{$nav-underline-border-link-color};
169+
--#{$prefix}nav-underline-border-link-active-color: #{$nav-underline-border-link-active-color};
170+
--#{$prefix}nav-underline-border-link-disabled-color: #{$nav-underline-border-link-disabled-color};
171+
// scss-docs-end nav-underline-css-vars
172+
173+
--#{$prefix}nav-link-color: var(--#{$prefix}nav-underline-border-link-color);
174+
--#{$prefix}nav-link-disabled-color: var(--#{$prefix}nav-underline-border-link-disabled-color);
175+
176+
gap: var(--#{$prefix}nav-underline-border-gap);
177+
border-bottom: var(--#{$prefix}nav-underline-border-border-width) solid var(--#{$prefix}nav-underline-border-border-color);
178+
179+
.nav-link {
180+
padding: var(--#{$prefix}nav-underline-border-link-padding-y) var(--#{$prefix}nav-underline-border-link-padding-x);
181+
margin-bottom: calc(-1 * var(--#{$prefix}nav-underline-border-border-width)); // stylelint-disable-line function-disallowed-list
182+
border-bottom: var(--#{$prefix}nav-underline-border-border-width) solid transparent;
183+
184+
&:hover,
185+
&:focus {
186+
border-bottom-color: currentcolor;
187+
}
188+
}
189+
190+
.nav-link.active,
191+
.show > .nav-link {
192+
font-weight: $font-weight-bold;
193+
color: var(--#{$prefix}nav-underline-border-link-active-color);
194+
border-bottom-color: currentcolor;
195+
}
196+
}
197+
198+
157199
//
158200
// Justified variants
159201
//

scss/_variables.scss

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1245,6 +1245,15 @@ $nav-pills-link-active-bg: $component-active-bg !default;
12451245
$nav-underline-gap: 1rem !default;
12461246
$nav-underline-border-width: .125rem !default;
12471247
$nav-underline-link-active-color: var(--#{$prefix}emphasis-color) !default;
1248+
1249+
$nav-underline-border-gap: .5rem !default;
1250+
$nav-underline-border-border-color: var(--#{$prefix}border-color) !default;
1251+
$nav-underline-border-border-width: .125rem !default;
1252+
$nav-underline-border-link-padding-y: .5rem !default;
1253+
$nav-underline-border-link-padding-x: .5rem !default;
1254+
$nav-underline-border-link-color: var(--#{$prefix}secondary-color) !default;
1255+
$nav-underline-border-link-active-color: var(--#{$prefix}primary) !default;
1256+
$nav-underline-border-link-disabled-color: var(--#{$prefix}tertiary-color) !default;
12481257
// scss-docs-end nav-variables
12491258

12501259

0 commit comments

Comments
 (0)