// // Basic Bootstrap table //
.table {
width: 100%; max-width: 100%; margin-bottom: $spacer; background-color: $table-bg; // Reset for nesting within parents with `background-color`. th, td { padding: $table-cell-padding; vertical-align: top; border-top: $table-border-width solid $table-border-color; } thead th { vertical-align: bottom; border-bottom: (2 * $table-border-width) solid $table-border-color; } tbody + tbody { border-top: (2 * $table-border-width) solid $table-border-color; } .table { background-color: $body-bg; }
}
// // Condensed table w/ half padding //
.table-sm {
th, td { padding: $table-cell-padding-sm; }
}
// Bordered version // // Add borders all around the table and between all the columns.
.table-bordered {
border: $table-border-width solid $table-border-color; th, td { border: $table-border-width solid $table-border-color; } thead { th, td { border-bottom-width: (2 * $table-border-width); } }
}
// Zebra-striping // // Default zebra-stripe styles (alternating gray and transparent backgrounds)
.table-striped {
tbody tr:nth-of-type(odd) { background-color: $table-accent-bg; }
}
// Hover effect // // Placed here since it has to come after the potential zebra striping
.table-hover {
tbody tr { @include hover { background-color: $table-hover-bg; } }
}
// Table backgrounds // // Exact selectors below required to override `.table-striped` and prevent // inheritance to nested tables.
@each $color, $value in $theme-colors {
@include table-row-variant($color, theme-color-level($color, -9));
}
@include table-row-variant(active, $table-active-bg);
// Dark styles // // Same table markup, but inverted color scheme: dark background and light text.
// stylelint-disable-next-line no-duplicate-selectors .table {
.thead-dark { th { color: $table-dark-color; background-color: $table-dark-bg; border-color: $table-dark-border-color; } } .thead-light { th { color: $table-head-color; background-color: $table-head-bg; border-color: $table-border-color; } }
}
.table-dark {
color: $table-dark-color; background-color: $table-dark-bg; th, td, thead th { border-color: $table-dark-border-color; } &.table-bordered { border: 0; } &.table-striped { tbody tr:nth-of-type(odd) { background-color: $table-dark-accent-bg; } } &.table-hover { tbody tr { @include hover { background-color: $table-dark-hover-bg; } } }
}
// Responsive tables // // Generate series of `.table-responsive-*` classes for configuring the screen // size of where your table will overflow.
.table-responsive {
@each $breakpoint in map-keys($grid-breakpoints) { $next: breakpoint-next($breakpoint, $grid-breakpoints); $infix: breakpoint-infix($next, $grid-breakpoints); &#{$infix} { @include media-breakpoint-down($breakpoint) { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057 // Prevent double border on horizontal scroll due to use of `display: block;` > .table-bordered { border: 0; } } } }
}