Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use utility API for all utilities & intruduce link-* helpers #29267

Merged
merged 2 commits into from
Aug 26, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion scss/_helpers.scss
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
@import "helpers/background";
@import "helpers/clearfix";
@import "helpers/colored-links";
@import "helpers/embed";
@import "helpers/position";
@import "helpers/screenreaders";
@import "helpers/stretched-link";
@import "helpers/text";
@import "helpers/text-truncation";
1 change: 0 additions & 1 deletion scss/_mixins.scss
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
@import "mixins/resize";
@import "mixins/screen-reader";
@import "mixins/reset-text";
@import "mixins/text-emphasis";
@import "mixins/text-truncate";

// Utilities
Expand Down
55 changes: 48 additions & 7 deletions scss/_utilities.scss
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,21 @@ $utilities: map-merge(
auto: auto
)
),
"max-width": (
property: max-width,
class: mw,
values: (100: 100%)
),
"viewport-width": (
property: width,
class: vw,
values: (100: 100vw)
),
"min-viewport-width": (
property: min-width,
class: min-vw,
values: (100: 100vw)
),
"height": (
property: height,
class: h,
Expand All @@ -102,6 +117,21 @@ $utilities: map-merge(
auto: auto
)
),
"max-height": (
property: max-height,
class: mh,
values: (100: 100%)
),
"viewport-height": (
property: height,
class: vh,
values: (100: 100vh)
),
"min-viewport-height": (
property: min-height,
class: min-vh,
values: (100: 100vh)
),
// Flex utilities
"flex": (
responsive: true,
Expand Down Expand Up @@ -352,13 +382,16 @@ $utilities: map-merge(
"color": (
property: color,
class: text,
values: (
white: $white,
body: $body-color,
muted: $text-muted,
black-50: rgba($black, .5),
white-50: rgba($white, .5),
reset: inherit,
values: map-merge(
$theme-colors,
(
white: $white,
body: $body-color,
muted: $text-muted,
black-50: rgba($black, .5),
white-50: rgba($white, .5),
reset: inherit,
)
)
),
"background-color": (
Expand Down Expand Up @@ -431,6 +464,14 @@ $utilities: map-merge(
class: rounded-left,
values: (null: $border-radius)
),
"visibility": (
property: visibility,
class: null,
values: (
visible: visible,
invisible: hidden,
)
)
),
$utilities
);
3 changes: 0 additions & 3 deletions scss/bootstrap-utilities.scss
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,3 @@
// Utilities

@import "utilities/api";
@import "utilities/sizing";
@import "utilities/text";
@import "utilities/visibility";
3 changes: 0 additions & 3 deletions scss/bootstrap.scss
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,3 @@
// Utilities

@import "utilities/api";
@import "utilities/sizing";
@import "utilities/text";
@import "utilities/visibility";
12 changes: 12 additions & 0 deletions scss/helpers/_colored-links.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
@each $color, $value in $theme-colors {
.link-#{$color} {
color: $value;

@if $emphasized-link-hover-darken-percentage != 0 {
&:hover,
&:focus {
color: darken($value, $emphasized-link-hover-darken-percentage);
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
//
// Text
// Text truncation
//

.text-truncate {
Expand Down
17 changes: 0 additions & 17 deletions scss/mixins/_text-emphasis.scss

This file was deleted.

8 changes: 5 additions & 3 deletions scss/mixins/_utilities.scss
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@
}

// Use custom class if present
$property-class: map-get($utility, class);
$property-class: if($property-class, $property-class, nth($properties, 1));
$property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));
$property-class: if($property-class == null, "", $property-class);

$infix: if($property-class == "" and str-slice($infix, 1, 1) == "-", str-slice($infix, 2), $infix);

// Don't prefix if value key is null (eg. with shadow class)
$property-class-modifier: if($key, "-" + $key, "");
$property-class-modifier: if($key, if($property-class == "" and $infix == "", "", "-") + $key, "");

.#{$property-class + $infix + $property-class-modifier} {
@each $property in $properties {
Expand Down
12 changes: 0 additions & 12 deletions scss/utilities/_sizing.scss

This file was deleted.

7 changes: 0 additions & 7 deletions scss/utilities/_text.scss

This file was deleted.

13 changes: 0 additions & 13 deletions scss/utilities/_visibility.scss

This file was deleted.

17 changes: 17 additions & 0 deletions site/content/docs/4.3/helpers/colored-links.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
layout: docs
title: Colored links
description: Colored links with hover states
group: helpers
toc: false
---

You can use the `.link-*` classes to colorize links. Unlike the [`.text-*` classes]({{< docsref "/utilities/colors#colors" >}}), these classes have a `:hover` and `:focus` state.

{{< example >}}
{{< colored-links.inline >}}
{{- range (index $.Site.Data "theme-colors") }}
<a href="#" class="link-{{ .name }}">{{ .name | title }} link</a>
{{- end -}}
{{< /colored-links.inline >}}
{{< /example >}}
4 changes: 1 addition & 3 deletions site/content/docs/4.3/helpers/text-truncation.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@ layout: docs
title: Text truncation
description: Truncate long strings of text with an ellipsis.
group: helpers
toc: true
toc: false
---

## Text truncation

For longer content, you can add a `.text-truncate` class to truncate the text with an ellipsis. **Requires `display: inline-block` or `display: block`.**

{{< example >}}
Expand Down
1 change: 1 addition & 0 deletions site/content/docs/4.3/migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ Changes to Reboot, typography, tables, and more.
- Reset default horizontal `padding-left` on `<ul>` and `<ol>` elements from browser default `40px` to `2rem`.
- Simplified table styles (no more 2px border on `thead > th` elements) and tightened cell padding.
- Dropped `.pre-scrollable` class. [See #29135](https://github.com/twbs/bootstrap/pull/29135)
- `.text-*` utilities do not add hover and focus states to links anymore. `.link-*` helper classes can be used instead. [See #29267](https://github.com/twbs/bootstrap/pull/29267)

## Forms

Expand Down
14 changes: 2 additions & 12 deletions site/content/docs/4.3/utilities/colors.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ toc: true

## Color

Colorize text with color utilities. If you want to colorize links, you can use the [`.link-*` helper classes]({{< docsref "/helpers/colored-links" >}}) which have `:hover` and `:focus` states.

{{< example >}}
{{< colors.inline >}}
{{- range (index $.Site.Data "theme-colors") }}
Expand All @@ -21,18 +23,6 @@ toc: true
<p class="text-white-50 bg-dark">.text-white-50</p>
{{< /example >}}

Contextual text classes also work well on anchors with the provided hover and focus states. **Note that the `.text-white` and `.text-muted` class has no additional link styling beyond underline.**

{{< example >}}
{{< colors.inline >}}
{{- range (index $.Site.Data "theme-colors") }}
<p><a href="#" class="text-{{ .name }}{{ if eq .name "light" }} bg-dark{{ end }}">{{ .name | title }} link</a></p>
{{- end -}}
{{< /colors.inline >}}
<p><a href="#" class="text-muted">Muted link</a></p>
<p><a href="#" class="text-white bg-dark">White link</a></p>
{{< /example >}}

## Background color

Similar to the contextual text color classes, easily set the background of an element to any contextual class. Background utilities **do not set `color`**, so in some cases you'll want to use `.text-*` utilities.
Expand Down
3 changes: 2 additions & 1 deletion site/data/sidebar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,12 @@
- title: Helpers
pages:
- title: Clearfix
- title: Colored links
- title: Embed
- title: Position
- title: Screen readers
- title: Stretched link
# - title: Text
- title: Text truncation

- title: Utilities
pages:
Expand Down
11 changes: 0 additions & 11 deletions site/static/docs/4.3/assets/scss/_subnav.scss
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,3 @@
line-height: 1;
color: $gray-900;
}

.link-dark {
font-weight: 500;
color: $dark;

&:hover,
&:focus {
color: $blue;
text-decoration: none;
}
}