Bootstrap Basic Notes
Custom Bootstrap Theme
Bootstrap Reboot Tips
@import '~bootstrap/scss/reboot;
Some useful best practices:
- body 
font-size: 1remfor scalable component spacing. - avoid 
margin-topas vertical margins collapse (only usemargin-bottomfor headingsh1/.../h6, listsul/ol/dl/dd,<pre></pre>) - block use 
remsformarginfor easier scaling across device sizes - using inherit whenever possible for 
font-property box-sizing: border-boxis globally set on every element including*::beforeand*::after- body sets a global 
font-family,line-heightandtext-align - body sets 
background-color: #ffffor safety legend/fieldsethave no borders/padding/marginlabelare set todisplay: inline-blockto allow margintextareaare modified to only be resizable verticallyresize: verticalas horizontal resizing often “breaks” page layoutsummaryare set tocursor: pointer
Useful Custom Functions
@import '~bootstrap/scss/functions';@import '~bootstrap/scss/mixins';
@function color($key: 'blue') {
  @return map-get($colors, $key);
}
@function theme-color($key: 'primary') {
  @return map-get($theme-colors, $key);
}
@function gray($key: '100') {
  @return map-get($grays, $key);
}
@function theme-color-level($color-name: 'primary', $level: 0) {
  /* stylelint-disable-next-line function-no-unknown */
  $color: theme-color($color-name);
  /* stylelint-disable-next-line function-no-unknown */
  $color-base: if($level > 0, #000, #fff);
  $level: abs($level);
  @return mix($color-base, $color, $level * $theme-color-interval);
}
/* color contrast: color-yiq(color) */
.custom-element {
  /* stylelint-disable-next-line function-no-unknown */
  color: color-yiq(theme-color('dark'));
  /* stylelint-disable-next-line function-no-unknown */
  background-color: color-yiq(#000);
}
Custom Colors
@import '~bootstrap/scss/variables';
$theme-colors: (
  'primary': #0074d9,
  'danger': #ff4136 'secondary': #495057,
  'success': #37b24d,
  'info': #1c7ed6,
  'warning': #f59f00,
  'danger': #f03e3e
);
$colors: (
  'blue': $blue,
  'indigo': $indigo,
  'purple': $purple,
  'pink': $pink,
  'red': $red,
  'orange': $orange,
  'yellow': $yellow,
  'green': $green,
  'teal': $teal,
  'cyan': $cyan,
  'white': $white,
  'gray': $gray-600,
  'gray-dark': $gray-800
);
Custom Spacing
key variable - $spacer:
- t - for classes that set margin-top or padding-top
 - b - for classes that set margin-bottom or padding-bottom
 - l - for classes that set margin-left or padding-left
 - r - for classes that set margin-right or padding-right
 - x - for classes that set both 
xxx-left andxxx-right - y - for classes that set both 
xxx-top andxxx-bottom - blank - for classes that set a margin or padding on all 4 sides of the element
 - 0 - for classes that eliminate the margin or padding by setting it to 0
 - 1 - (by default) for classes that set the margin or padding to 
$spacer * .25. - 2 - (by default) for classes that set the margin or padding to 
$spacer * .5. - 3 - (by default) for classes that set the margin or padding to 
$spacer - 4 - (by default) for classes that set the margin or padding to 
$spacer * 1.5. - 5 - (by default) for classes that set the margin or padding to 
$spacer * 3. - auto - for classes that set the margin to auto
 
.mt-0 {
  margin-top: 0 !important;
}
.ml-1 {
  margin-left: ($spacer * 0.25) !important;
}
.px-2 {
  padding-right: ($spacer * 0.5) !important;
  padding-left: ($spacer * 0.5) !important;
}
.p-3 {
  padding: $spacer !important;
}
.mt-n1 {
  margin-top: -0.25rem !important;
}
Custom Layout
$grid-columns: 12;
$grid-gutter-width: 30px;
Custom Borders
$border-width: 1px;
$border-color: $gray-300;
$border-radius: 0.25rem;
$border-radius-lg: 0.3rem;
$border-radius-sm: 0.2rem;
Custom Navbar and Navigation
/* $nav-link-padding-x: 1.5rem; */
$navbar-nav-link-padding-x: 1.5rem;
$nav-link-padding-y: 1rem;
$navbar-light-color: $violet-4;
$navbar-light-hover-color: $violet-6;
$navbar-light-active-color: $violet-9;
$navbar-light-toggler-border-color: $violet-2;
$navbar-dark-color: $violet-3;
$navbar-dark-hover-color: $violet-5;
$navbar-dark-active-color: $violet-1;
$navbar-dark-toggler-border-color: $violet-1;
$nav-tabs-border-color: $primary;
$nav-tabs-link-hover-border-color: $violet-5;
$nav-tabs-link-active-color: $violet-9;
$nav-tabs-link-active-bg: $violet-3;
$nav-tabs-link-active-border-color: $violet-1;
$nav-pills-link-active-color: $white;
$nav-pills-link-active-bg: $primary;
Custom Dropdown
custom $dropdown- variables
$dropdown-padding-y: 1rem;
$dropdown-spacer: 0.5rem;
$dropdown-bg: $white;
$dropdown-border-color: $primary;
$dropdown-border-width: $border-width * 3;
$dropdown-link-color: $primary;
$dropdown-item-padding-y: 0.5rem;
$dropdown-item-padding-x: 3rem;
Custom List Group
$list-group-border-color: $primary;
Custom Card
$card-border-color: $primary;
$card-color: $primary;
$card-bg: $violet-0;
Custom Breadcrumb
$breadcrumb-bg: $violet-0;
$breadcrumb-divider-color: $gray-600;
$breadcrumb-active-color: $violet-3;
/* stylelint-disable-next-line function-no-unknown */
$breadcrumb-divider: quote('>');
Custom Form
$input-btn-padding-y: 0.75rem;
$input-btn-padding-x: 1.5rem;
$input-btn-focus-width: 0; /* remove focus box-shadow */
$custom-control-indicator-checked-color: $primary;