Alternate take to #27683 that builds the modifier class based on min-width, such that list groups are stacked until the class's breakpoint is reached. This is less verbose, matches our primary responsive approach, and prevents an extra class. Unfortunately, I believe supporting flush list groups is too much code here, so I've skipped that and made a note in the docs.
Also added examples generate from our breakpoints data file with a protip for how to do equal width items.
},
{
"path": "./dist/css/bootstrap.css",
- "maxSize": "25 kB"
+ "maxSize": "25.5 kB"
},
{
"path": "./dist/css/bootstrap.min.css",
- "maxSize": "22.7 kB"
+ "maxSize": "23.5 kB"
},
{
"path": "./dist/js/bootstrap.bundle.js",
}
+// Horizontal
+//
+// Change the layout of list group items from vertical (default) to horizontal.
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ @each $value in $displays {
+ .list-group-horizontal#{$infix} {
+ flex-direction: row;
+
+ .list-group-item {
+ margin-right: -$list-group-border-width;
+ margin-bottom: 0;
+
+ &:first-child {
+ @include border-left-radius($list-group-border-radius);
+ @include border-top-right-radius(0);
+ }
+
+ &:last-child {
+ margin-right: 0;
+ @include border-right-radius($list-group-border-radius);
+ @include border-bottom-left-radius(0);
+ }
+ }
+ }
+ }
+ }
+}
+
+
// Flush list items
//
// Remove borders and border-radius to keep list group items edge-to-edge. Most
border-bottom-left-radius: $radius;
}
}
+
+@mixin border-top-right-radius($radius) {
+ @if $enable-rounded {
+ border-top-right-radius: $radius;
+ }
+}
+
+@mixin border-bottom-left-radius($radius) {
+ @if $enable-rounded {
+ border-bottom-left-radius: $radius;
+ }
+}
.bd-example > .list-group {
max-width: 400px;
}
+.bd-example > [class*="list-group-horizontal"] {
+ max-width: 100%;
+}
// Navbars
.bd-example {
{% endcapture %}
{% include example.html content=example %}
+## Horizontal
+
+Add `.list-group-horizontal` to change the layout of list group items from vertical to horizontal across all breakpoints. Alternatively, choose a responsive variant `.list-group-horizontal-{sm|md|lg|xl}` to make a list group horizontal starting at that breakpoint's `min-width`. Currently **horizontal list groups cannot be combined with flush list groups.**
+
+**ProTip:** Want equal-width list group items when horizontal? Add `.flex-fill` to each list group item.
+
+{% for bp in site.data.breakpoints %}
+{% capture example %}
+<ul class="list-group list-group-horizontal{{ bp.abbr }}">
+ <li class="list-group-item">Cras justo odio</li>
+ <li class="list-group-item">Dapibus ac facilisis in</li>
+ <li class="list-group-item">Morbi leo risus</li>
+</ul>
+{% endcapture %}
+{% include example.html content=example %}{% endfor %}
+
## Contextual classes
Use contextual classes to style list items with a stateful background and color.