Bootstrap 5 Cheat Sheet
https://getbootstrap.com/docs/5.0
Responsive
Mobile first! If you want something apply to mobile only do something like this:
-
<div class="m-5 m-lg-0"> <!-- default = mobile margin 5, for breakpoint lg and higher: margin 0 -->
Hide an element for lg oder higher:
-
<div class="d-lg-none">
Grid
Columns
if you want responsive columns and full control:
-
<ul class="row"> <li class="col-12 col-md-6 col-lg-3 mb-3"> <li class="col-12 col-md-6 col-lg-3 mb-3"> <li class="col-12 col-md-6 col-lg-3 mb-3"> <li class="col-12 col-md-6 col-lg-3 mb-3"> </ul>
"col-auto" makes a column as small as possible
Align the content to the end and bottom:
<div class="d-flex align-items-end justify-content-end lh-1">
Fooo
</div>
Gutters
If you wand a column with background color and gutter, you need to use a child DIV with background color. Reason: Gutters work with padding, otherwise there is no visible gutter.
Two Column List (Responsive )
<ul class="container-fluid row gx-3 list-unstyled">
{% for tocId, tocEntry in toc %}
{# mobile first: col-12 = full width, from "md" and bigger -> 2 columns #}
<li class="col-12 col-md-6 p0 fs-5">
<div class="border-bottom border-grey py-3">
{{ font_awesome('fa-arrow-circle-o-right', 'text-primary me-1') }}
<a href="#{{ tocId }}" class="text-black fw-bold">
{{ tocEntry['title'] }}
</a>
</div>
</li>
{% endfor %}
</ul>
List-Group
{# https://getbootstrap.com/docs/5.0/components/list-group/ #}
<ul class="list-group list-group-flush"> {# flush = less styled form #}
{% for tocId, tocEntry in toc %}
<li class="list-group-item">
{{ font_awesome('fa-arrow-circle-o-right') }}
<a href="#{{ tocId }}">
{{ tocEntry['title'] }}
</a>
</li>
{% endfor %}
</ul>
Custom Bullet List / flex-fill
<li class="row flex-nowrap align-items-center">
<div class="col">
O)
</div>
<div class="col flex-fill">
My list item
</div>
</li>
Enlarge click target
"stretched-link" expands the click area up to the next block level element.
If you want to go up to higher blocks, use "position-relative" an the parent block.
Customize bootstrap variables/maps
With npm/yarn sources are in
- node_modules/bootstrap/scss/
- e.g node_modules/bootstrap/scss/_utilities.scss
Add Semibold font-weight
https://getbootstrap.com/docs/5.0/utilities/api/#modify-utilities
With Webpack, eg. in app.scss
$font-weight-lighter: 200;
$font-weight-light: 300;
$font-weight-normal: 400;
$font-weight-semibold: 500;
$font-weight-bold: 600;
$font-weight-bolder: 700;
@import "~bootstrap/scss/utilities";
// Add semibold (500) to font-weight map
$utilities: map-merge(
$utilities,
(
"font-weight": (
property: font-weight,
class: fw,
values: (
light: $font-weight-light,
lighter: $font-weight-lighter,
normal: $font-weight-normal,
semibold: $font-weight-semibold,
bold: $font-weight-bold,
bolder: $font-weight-bolder
)
)
)
);
Button -> Responsive Collapse Element
Show an element, but if smaller than breakpoint "lg" show a button for de-collapse:
-
<div class="d-lg-none"> <button class="btn btn-primary" type="button" data-bs-toggle="collapse" data-bs-target="#search-bar" aria-expanded="false" aria-controls="search-bar"> Search </button> </div> <div id="search-bar" class="row collapse uncollapse-flex"> ... </div>
app.scss:
-
// Do not hide when breakpoint lg or larger @include media-breakpoint-up(lg) { .collapse.uncollapse-flex { display: flex; } }

