UNPKG

bootstrap-less-port

Version:
191 lines (157 loc) 4.72 kB
// Base class // // Easily usable on <ul>, <ol>, or <div>. .list-group { display: flex; flex-direction: column; // No need to set list-style: none; since .list-group-item is block level padding-left: 0; // reset padding because ul and ol margin-bottom: 0; #border-radius(@list-group-border-radius); } // Interactive list items // // Use anchor or button elements instead of `li`s or `div`s to create interactive // list items. Includes an extra `.active` modifier class for selected items. .list-group-item-action { width: 100%; // For `<button>`s (anchors become 100% by default though) color: @list-group-action-color; text-align: inherit; // For `<button>`s (anchors inherit) // Hover state #hover-focus({ z-index: 1; // Place hover/focus items above their siblings for proper border styling color: @list-group-action-hover-color; text-decoration: none; background-color: @list-group-hover-bg; }); &:active { color: @list-group-action-active-color; background-color: @list-group-action-active-bg; } } // Individual list items // // Use on `li`s or `div`s within the `.list-group` parent. .list-group-item { position: relative; display: block; padding: @list-group-item-padding-y @list-group-item-padding-x; // LESS PORT: Less doesn’t strip “empty” property values so we have to check for a value first. & when not (@list-group-color = ~"") { color: @list-group-color; } & when not (@link-decoration = none) { text-decoration: none; } background-color: @list-group-bg; border: @list-group-border-width solid @list-group-border-color; &:first-child { #border-top-radius(inherit); } &:last-child { #border-bottom-radius(inherit); } &.disabled, &:disabled { color: @list-group-disabled-color; pointer-events: none; background-color: @list-group-disabled-bg; } // Include both here for `<a>`s and `<button>`s &.active { z-index: 2; // Place active items above their siblings for proper border styling color: @list-group-active-color; background-color: @list-group-active-bg; border-color: @list-group-active-border-color; } & + & { border-top-width: 0; &.active { margin-top: -@list-group-border-width; border-top-width: @list-group-border-width; } } } // 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); // // .list-group-horizontal#{$infix} { // flex-direction: row; // // .list-group-item { // &:first-child { // @include border-bottom-left-radius($list-group-border-radius); // @include border-top-right-radius(0); // } // // &:last-child { // @include border-top-right-radius($list-group-border-radius); // @include border-bottom-left-radius(0); // } // // &.active { // margin-top: 0; // } // // & + .list-group-item { // border-top-width: $list-group-border-width; // border-left-width: 0; // // &.active { // margin-left: -$list-group-border-width; // border-left-width: $list-group-border-width; // } // } // } // } // } //} each(map-keys(@grid-breakpoints), #(@breakpoint) { #media-breakpoint-up(@breakpoint, { @infix: breakpoint-infix(@breakpoint, @grid-breakpoints); .list-group-horizontal@{infix} { flex-direction: row; > .list-group-item { &:first-child { #border-bottom-left-radius(@list-group-border-radius); #border-top-right-radius(0); } &:last-child { #border-top-right-radius(@list-group-border-radius); #border-bottom-left-radius(0); } &.active { margin-top: 0; } + .list-group-item { border-top-width: @list-group-border-width; border-left-width: 0; &.active { margin-left: -@list-group-border-width; border-left-width: @list-group-border-width; } } } } }); }); // Flush list items // // Remove borders and border-radius to keep list group items edge-to-edge. Most // useful within other components (e.g., cards). .list-group-flush { #border-radius(0); > .list-group-item { border-width: 0 0 @list-group-border-width; &:last-child { border-bottom-width: 0; } } } // Contextual variants // // Add modifier classes to change text and background color on individual items. // Organizationally, this must come after the `:hover` states. each(@theme-colors, #(@value, @color) { #list-group-item-variant(@color, theme-color-level(@color, -9), theme-color-level(@color, 6)); });