mirror of
https://github.com/twbs/bootstrap.git
synced 2024-11-29 11:24:18 +01:00
Start to blow out and document more flexbox utilities
- Adds new flexbox.md file to utilities docs - Adds a `breakpoints.yml` data file for easier output of responsive classes in the docs. Will put this to use on other pages soon. - Adds hella flex utils. There are some dupes for now, but they'll get removed in time.
This commit is contained in:
parent
e4933c72da
commit
5464f4ab7e
29
docs/_data/breakpoints.yml
Normal file
29
docs/_data/breakpoints.yml
Normal file
@ -0,0 +1,29 @@
|
||||
- breakpoint: xs
|
||||
abbr: ""
|
||||
name: Extra small
|
||||
min-width: 0px
|
||||
container: ""
|
||||
|
||||
- breakpoint: sm
|
||||
abbr: -sm
|
||||
name: Small
|
||||
min-width: 576px
|
||||
container: 540px
|
||||
|
||||
- breakpoint: md
|
||||
abbr: -md
|
||||
name: Medium
|
||||
min-width: 768px
|
||||
container: 720px
|
||||
|
||||
- breakpoint: lg
|
||||
abbr: -lg
|
||||
name: Large
|
||||
min-width: 992px
|
||||
container: 960px
|
||||
|
||||
- breakpoint: xl
|
||||
abbr: -xl
|
||||
name: Extra large
|
||||
min-width: 1200px
|
||||
container: 1140px
|
@ -56,6 +56,7 @@
|
||||
- title: Clearfix
|
||||
- title: Close icon
|
||||
- title: Colors
|
||||
- title: Flexbox
|
||||
- title: Display property
|
||||
- title: Image replacement
|
||||
- title: Invisible content
|
||||
|
196
docs/utilities/flexbox.md
Normal file
196
docs/utilities/flexbox.md
Normal file
@ -0,0 +1,196 @@
|
||||
---
|
||||
layout: docs
|
||||
title: Flexbox
|
||||
group: utilities
|
||||
---
|
||||
|
||||
Quickly manage the layout, alignment, and sizing of grid columns, navigation, components, and more with a full suite of responsive flexbox utilities. For more complex implementations, custom CSS may be necessary.
|
||||
|
||||
## Contents
|
||||
|
||||
* Will be replaced with the ToC, excluding the "Contents" header
|
||||
{:toc}
|
||||
|
||||
## Enable flex behaviors
|
||||
|
||||
Apply `display` utilities to create a flexbox container and transform **direct children elements** into flex items. Flex containers and items are able to be modified further with additional flex properties. Choose from the following options.
|
||||
|
||||
| Class | property: value; | Description |
|
||||
| --- | --- | --- |
|
||||
| `.d-flex` | `display: flex;` | Creates a block-level element using the flexbox model. |
|
||||
| `.d-inline-flex` | `display: inline-flex;` | Creates an inline-level element using the flexbox model. |
|
||||
|
||||
{% example html %}
|
||||
<div class="d-flex p-2 bd-highlight">I'm a flexbox container!</div>
|
||||
{% endexample %}
|
||||
|
||||
{% example html %}
|
||||
<div class="d-inline-flex p-2 bd-highlight">I'm an inline flexbox container!</div>
|
||||
{% endexample %}
|
||||
|
||||
Responsive variations also exist for `.d-flex` and `.d-inline-flex`.
|
||||
|
||||
<table class="table-responsive">
|
||||
<thead>
|
||||
<tr class="bg-faded">
|
||||
<th>Class</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for bp in site.data.breakpoints %}
|
||||
<tr>
|
||||
<td>
|
||||
<code>.d{{ bp.abbr }}-flex</code>
|
||||
</td>
|
||||
<td>
|
||||
Sets <code>display: flex;</code> on viewports {{ bp.min-width }} wide and up
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% for bp in site.data.breakpoints %}
|
||||
<tr>
|
||||
<td>
|
||||
<code>.d{{ bp.abbr }}-inline-flex</code>
|
||||
</td>
|
||||
<td>
|
||||
Sets <code>display: inline-flex;</code> on viewports {{ bp.min-width }} wide and up
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Direction
|
||||
|
||||
Set the direction of flex items in a flex container with direction utilities. In most cases you can omit the horizontal class here as the browser default is `row`. However, you may encounter situations where you needed to explicitly set this value (like responsive layouts).
|
||||
|
||||
Use `.flex-row` to set a horizontal direction.
|
||||
|
||||
{% example html %}
|
||||
<div class="d-flex flex-row bd-highlight">
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
</div>
|
||||
{% endexample %}
|
||||
|
||||
Use `.flex-column` to set a vertical direction.
|
||||
|
||||
{% example html %}
|
||||
<div class="d-flex flex-column bd-highlight">
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
</div>
|
||||
{% endexample %}
|
||||
|
||||
Responsive variations also exist for `.flex-row` and `.flex-column`.
|
||||
|
||||
<table class="table-responsive">
|
||||
<thead>
|
||||
<tr class="bg-faded">
|
||||
<th>Class</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for bp in site.data.breakpoints %}
|
||||
<tr>
|
||||
<td>
|
||||
<code>.flex{{ bp.abbr }}-row</code>
|
||||
</td>
|
||||
<td>
|
||||
Sets <code>flex-direction: row;</code> on viewports {{ bp.min-width }} wide and up
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% for bp in site.data.breakpoints %}
|
||||
<tr>
|
||||
<td>
|
||||
<code>.flex{{ bp.abbr }}-column</code>
|
||||
</td>
|
||||
<td>
|
||||
Sets <code>flex-direction: column;</code> on viewports {{ bp.min-width }} wide and up
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Wrap
|
||||
|
||||
Change how flex items wrap in a flex container. Choose from no wrapping at all (the browser default) with `.flex-nowrap`, or enable wrapping with `.flex-wrap`.
|
||||
|
||||
{% example html %}
|
||||
<div class="d-flex flex-nowrap bd-highlight">
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
</div>
|
||||
{% endexample %}
|
||||
|
||||
{% example html %}
|
||||
<div class="d-flex flex-wrap bd-highlight">
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
<div class="p-2 bd-highlight">Flex item</div>
|
||||
</div>
|
||||
{% endexample %}
|
||||
|
||||
Responsive variations also exist for `.flex-nowrap` and `.flex-wrap`.
|
||||
|
||||
<table class="table-responsive">
|
||||
<thead>
|
||||
<tr class="bg-faded">
|
||||
<th>Class</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for bp in site.data.breakpoints %}
|
||||
<tr>
|
||||
<td>
|
||||
<code>.flex{{ bp.abbr }}-nowrap</code>
|
||||
</td>
|
||||
<td>
|
||||
Sets <code>flex-wrap: nowrap;</code> on viewports {{ bp.min-width }} wide and up
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% for bp in site.data.breakpoints %}
|
||||
<tr>
|
||||
<td>
|
||||
<code>.flex{{ bp.abbr }}-wrap</code>
|
||||
</td>
|
||||
<td>
|
||||
Sets <code>flex-wrap: wrap;</code> on viewports {{ bp.min-width }} wide and up
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
@ -27,5 +27,47 @@
|
||||
.flex-items#{$infix}-right { justify-content: flex-end; }
|
||||
.flex-items#{$infix}-around { justify-content: space-around; }
|
||||
.flex-items#{$infix}-between { justify-content: space-between; }
|
||||
|
||||
//
|
||||
// New flex utils to replace and extend the ones above
|
||||
//
|
||||
|
||||
.flex#{$infix}-fill { flex: 1 1 auto; }
|
||||
.flex#{$infix}-justify { flex: 1 1 100%; }
|
||||
|
||||
.flex#{$infix}-row { flex-direction: row !important; }
|
||||
.flex#{$infix}-column { flex-direction: column !important; }
|
||||
|
||||
.flex#{$infix}-wrap { flex-wrap: wrap !important; }
|
||||
.flex#{$infix}-nowrap { flex-wrap: nowrap !important; }
|
||||
|
||||
.justify-content#{$infix}-start { justify-content: flex-start !important; }
|
||||
.justify-content#{$infix}-end { justify-content: flex-end !important; }
|
||||
.justify-content#{$infix}-center { justify-content: center !important; }
|
||||
.justify-content#{$infix}-between { justify-content: space-between !important; }
|
||||
.justify-content#{$infix}-around { justify-content: space-around !important; }
|
||||
|
||||
.align-items#{$infix}-start { align-items: flex-start !important; }
|
||||
.align-items#{$infix}-end { align-items: flex-end !important; }
|
||||
.align-items#{$infix}-center { align-items: center !important; }
|
||||
.align-items#{$infix}-baseline { align-items: baseline !important; }
|
||||
.align-items#{$infix}-stretch { align-items: stretch !important; }
|
||||
|
||||
.align-content#{$infix}-start { align-content: flex-start !important; }
|
||||
.align-content#{$infix}-end { align-content: flex-end !important; }
|
||||
.align-content#{$infix}-center { align-content: center !important; }
|
||||
.align-content#{$infix}-between { align-content: space-between !important; }
|
||||
.align-content#{$infix}-around { align-content: space-around !important; }
|
||||
.align-content#{$infix}-stretch { align-content: stretch !important; }
|
||||
|
||||
// Item
|
||||
.flex#{$infix}-auto { flex: 1 1 auto !important; }
|
||||
|
||||
.align-self#{$infix}-auto { align-self: auto !important; }
|
||||
.align-self#{$infix}-start { align-self: flex-start !important; }
|
||||
.align-self#{$infix}-end { align-self: flex-end !important; }
|
||||
.align-self#{$infix}-center { align-self: center !important; }
|
||||
.align-self#{$infix}-baseline { align-self: baseline !important; }
|
||||
.align-self#{$infix}-stretch { align-self: stretch !important; }
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user