Skip to content

Commit

Permalink
Apply smooth-scroll when prefers-reduced-motion: no-preference (#31877
Browse files Browse the repository at this point in the history
)

* feat(reboot): apply smooth-scroll when not prefers-reduced-motion

* docs(migration): mention scroll-behavior in alpha3

* docs(accessibility): mention scroll-behavior in reduced motion section

* docs(accessibility): rewording smooth scroll sentence

* feat(variable): introduce enable-smooth-scroll variable

* docs(accessibility): reword smooth-scroll sentence

Co-authored-by: XhmikosR <xhmikosr@gmail.com>
  • Loading branch information
ffoodd and XhmikosR authored Oct 19, 2020
1 parent ece40bc commit ed2f43e
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 0 deletions.
6 changes: 6 additions & 0 deletions scss/_reboot.scss
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@

:root {
font-size: $font-size-root;

@if $enable-smooth-scroll {
@media (prefers-reduced-motion: no-preference) {
scroll-behavior: smooth;
}
}
}


Expand Down
1 change: 1 addition & 0 deletions scss/_variables.scss
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ $enable-shadows: false !default;
$enable-gradients: false !default;
$enable-transitions: true !default;
$enable-reduced-motion: true !default;
$enable-smooth-scroll: true !default;
$enable-grid-classes: true !default;
$enable-button-pointers: true !default;
$enable-rfs: true !default;
Expand Down
2 changes: 2 additions & 0 deletions site/content/docs/5.0/getting-started/accessibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@ For visually hidden interactive controls, such as traditional "skip" links, use

Bootstrap includes support for the [`prefers-reduced-motion` media feature](https://drafts.csswg.org/mediaqueries-5/#prefers-reduced-motion). In browsers/environments that allow the user to specify their preference for reduced motion, most CSS transition effects in Bootstrap (for instance, when a modal dialog is opened or closed, or the sliding animation in carousels) will be disabled, and meaningful animations (such as spinners) will be slowed down.

On browsers that support the `prefers-reduced-motion`, and where the user has *not* explicitly signaled that they'd prefer reduced motion (i.e. where `prefers-reduced-motion: no-preference`), Bootstrap enables smooth scrolling using the `scroll-behavior` property.

## Additional resources

- [Web Content Accessibility Guidelines (WCAG) 2.1](https://www.w3.org/TR/WCAG21/)
Expand Down
4 changes: 4 additions & 0 deletions site/content/docs/5.0/migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ toc: true
- The `scale-color()` will either tint or shade a color depending on whether its weight parameter is positive or negative.
- See [this PR](https://github.com/twbs/bootstrap/pull/30622) for more details.

### Reboot

- Introduce `$enable-smooth-scroll`, which applies `scroll-behavior: smooth` globally—except for users asking for reduced motion through `prefers-reduced-motion` media query. [See #31877](https://github.com/twbs/bootstrap/pull/31877)

## v5.0.0-alpha2

### Sass
Expand Down

0 comments on commit ed2f43e

Please sign in to comment.