diff --git a/docs/assets/scss/docs.scss b/docs/assets/scss/docs.scss
index 8d68e31879..bf16e82a5e 100644
--- a/docs/assets/scss/docs.scss
+++ b/docs/assets/scss/docs.scss
@@ -1244,10 +1244,7 @@ body {
.visible-on,
.hidden-on {
.col-xs-6 {
- .hidden-xs,
- .hidden-sm,
- .hidden-md,
- .hidden-lg {
+ > .not-visible {
color: #999;
border: 1px solid #ddd;
}
@@ -1256,10 +1253,7 @@ body {
.visible-on,
.hidden-on {
.col-xs-6 {
- .visible-xs-block,
- .visible-sm-block,
- .visible-md-block,
- .visible-lg-block {
+ .visible {
color: #468847;
background-color: #dff0d8;
border: 1px solid #d6e9c6;
@@ -1267,6 +1261,32 @@ body {
}
}
+@include media-breakpoint-only(xs) {
+ .hidden-xs-only {
+ display: none !important;
+ }
+}
+@include media-breakpoint-only(sm) {
+ .hidden-sm-only {
+ display: none !important;
+ }
+}
+@include media-breakpoint-only(md) {
+ .hidden-md-only {
+ display: none !important;
+ }
+}
+@include media-breakpoint-only(lg) {
+ .hidden-lg-only {
+ display: none !important;
+ }
+}
+@include media-breakpoint-only(xl) {
+ .hidden-xl-only {
+ display: none !important;
+ }
+}
+
//
// Brand guidelines
//
diff --git a/docs/layout/media-queries.md b/docs/layout/media-queries.md
index f5d66a4173..d628b4589f 100644
--- a/docs/layout/media-queries.md
+++ b/docs/layout/media-queries.md
@@ -7,48 +7,64 @@ Since Bootstrap is designed to be mobile-first, we employ media queries in our C
### Common queries
-Bootstrap uses the following media query ranges in our source Sass files for key breakpoints in our layout, grid system, and components.
+Bootstrap mainly uses the following media query ranges in our source Sass files for key breakpoints in our layout, grid system, and components.
{% highlight scss %}
-/* Extra small devices (phones, less than 768px) */
+/* Extra small devices (portrait phones, less than ???px) */
/* No media query since this is the default in Bootstrap */
-/* Small devices (tablets, 768px and up) */
-@media (min-width: @screen-sm-min) { ... }
+/* Small devices (landscape phones, 34em and up) */
+@media (min-width: 34em) { ... }
-/* Medium devices (desktops, 992px and up) */
-@media (min-width: @screen-md-min) { ... }
+/* Medium devices (tablets, 48em and up) */
+@media (min-width: 48em) { ... }
-/* Large devices (large desktops, 1200px and up) */
-@media (min-width: @screen-lg-min) { ... }
+/* Large devices (desktops, 62em and up) */
+@media (min-width: 62em) { ... }
+
+/* Extra large devices (large desktops, 75em and up) */
+@media (min-width: 75em) { ... }
{% endhighlight %}
-We occasionally expand on these media queries to include a max-width
to limit CSS to a narrower set of devices.
-
+These media queries are available via Sass mixins:
{% highlight scss %}
-@media (max-width: @screen-xs-max) { ... }
-@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) { ... }
-@media (min-width: @screen-md-min) and (max-width: @screen-md-max) { ... }
-@media (min-width: @screen-lg-min) { ... }
-{% endhighlight %}
+@include media-breakpoint-up(xs) { ... }
+@include media-breakpoint-up(sm) { ... }
+@include media-breakpoint-up(md) { ... }
+@include media-breakpoint-up(lg) { ... }
+@include media-breakpoint-up(lxl) { ... }
-### Sass mixins
-
-The above media queries are also available via Sass mixins:
-
-{% highlight scss %}
-// List of mixins
-@include media-xs { ... }
-@include media-sm { ... }
-@include media-sm-max { ... }
-@include media-md { ... }
-@include media-md-max { ... }
-@include media-lg { ... }
-
-// Usage
-@include media-xs {
- .element {
+// Example usage:
+@include media-breakpoint-up(sm) {
+ .some-class {
display: block;
}
}
{% endhighlight %}
+
+We occasionally use media queries that go in the other direction (the given screen size *or smaller*):
+{% highlight scss %}
+/* Extra small devices (portrait phones, less than 34em) */
+@media (max-width: 33.9em) { ... }
+
+/* Small devices (landscape phones, less than 48em) */
+@media (max-width: 47.9em) { ... }
+
+/* Medium devices (tablets, less than 62em) */
+@media (max-width: 61.9em) { ... }
+
+/* Large devices (desktops, less than 75em) */
+@media (max-width: 74.9em) { ... }
+
+/* Extra large devices (large desktops) */
+/* No media query since the extra-large breakpoint has no upper bound on its width */
+{% endhighlight %}
+
+These media queries are available via Sass mixins:
+{% highlight scss %}
+@include media-breakpoint-down(xs) { ... }
+@include media-breakpoint-down(sm) { ... }
+@include media-breakpoint-down(md) { ... }
+@include media-breakpoint-down(lg) { ... }
+@include media-breakpoint-down(lxl) { ... }
+{% endhighlight %}
diff --git a/docs/layout/responsive-utilities.md b/docs/layout/responsive-utilities.md
index 472682f6bf..a9dd4cdb0b 100644
--- a/docs/layout/responsive-utilities.md
+++ b/docs/layout/responsive-utilities.md
@@ -9,7 +9,11 @@ Try to use these on a limited basis and avoid creating entirely different versio
## Available classes
-Use a single or combination of the available classes for toggling content across viewport breakpoints.
+* The `.hidden-*-up` classes hide the element when the viewport is at the given breakpoint or wider. For example, `.hidden-md-up` hides an element on medium, large, and extra-large viewports.
+* The `.hidden-*-down` classes hide the element when the viewport is at the given breakpoint or smaller. For example, `.hidden-md-down` hides an element on extra-small, small, and medium viewports).
+* There are no explicit "visible"/"show" responsive utility classes; you make an element visible by simply not hiding it at that breakpoint size.
+* You can combine one `.hidden-*-up` class with one `.hidden-*-down` class to show an element only on a given interval of screen sizes. For example, `.hidden-sm-down.hidden-xl-up` shows the element only on medium and large viewports. Using multiple `.hidden-*-up` classes or multiple `.hidden-*-down` classes is redundant and pointless.
+* These classes don't attempt to accommodate less common cases where an element's visibility can't be expressed as a single contiguous range of viewport breakpoint sizes; you will instead need to use custom CSS in such cases.
Extra small devices - Phones (<768px) + Portrait phones (<34em) | Small devices - Tablets (≥768px) + Landscape phones (≥34em) | Medium devices - Desktops (≥992px) + Tablets (≥48em) | Large devices - Desktops (≥1200px) + Desktops (≥62em) + | ++ Extra large devices + Desktops (≥75em) | ||||
---|---|---|---|---|---|---|---|---|
.visible-xs-* |
- Visible | -Hidden | -Hidden | -Hidden | -||||
.visible-sm-* |
+ .hidden-xs-down |
Hidden | Visible | -Hidden | -Hidden | -|||
.visible-md-* |
- Hidden | -Hidden | Visible | -Hidden | -||||
.visible-lg-* |
- Hidden | -Hidden | -Hidden | +Visible | Visible | |||
.hidden-xs |
+ .hidden-sm-down |
+ Hidden | Hidden | Visible | Visible | Visible | ||
.hidden-sm |
- Visible | +.hidden-md-down |
+ Hidden | +Hidden | Hidden | Visible | Visible | |
.hidden-md |
- Visible | -Visible | +.hidden-lg-down |
+ Hidden | +Hidden | +Hidden | Hidden | Visible |
.hidden-lg |
+ .hidden-xl-down |
+ Hidden | +Hidden | +Hidden | +Hidden | +Hidden | +||
.hidden-xs-up |
+ Hidden | +Hidden | +Hidden | +Hidden | +Hidden | +|||
.hidden-sm-up |
+ Visible | +Hidden | +Hidden | +Hidden | +Hidden | +|||
.hidden-md-up |
+ Visible | +Visible | +Hidden | +Hidden | +Hidden | +|||
.hidden-lg-up |
+ Visible | +Visible | +Visible | +Hidden | +Hidden | +|||
.hidden-xl-up |
+ Visible | Visible | Visible | Visible | @@ -97,54 +127,32 @@ Use a single or combination of the available classes for toggling content across
Group of classes | -CSS display |
-
---|---|
.visible-*-block |
- display: block; |
-
.visible-*-inline |
- display: inline; |
-
.visible-*-inline-block |
- display: inline-block; |
-
So, for extra small (xs
) screens for example, the available .visible-*-*
classes are: .visible-xs-block
, .visible-xs-inline
, and .visible-xs-inline-block
.
Similar to the regular responsive classes, use these for toggling content for print.
Classes | +Class | Browser | ||
---|---|---|---|---|
- .visible-print-block - .visible-print-inline - .visible-print-inline-block
- |
+ .visible-print-block |
Hidden | -Visible | +Visible (as display: block ) |
+
.visible-print-inline |
+ Hidden | +Visible (as display: inline ) |
+ ||
.visible-print-inline-block |
+ Hidden | +Visible (as display: inline-block ) |
||
.hidden-print |
@@ -159,106 +167,63 @@ As of v3.2.0, the `.visible-*-*` classes for each breakpoint come in three varia
Resize your browser or load on different devices to test the responsive utility classes.
-### Visible on...
-
Green checkmarks indicate the element **is visible** in your current viewport.