theme-dark.scss 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. // Dark Mode Theme Variables and Overrides.
  2. @use 'sass:map';
  3. @import './theme-base.scss';
  4. $primary: $blue-300;
  5. $secondary: $gray-400;
  6. $success: $green-300;
  7. $info: $cyan-300;
  8. $warning: $yellow-300;
  9. $danger: $red-300;
  10. $light: $gray-300;
  11. $dark: $gray-400;
  12. $theme-colors: (
  13. 'primary': $primary,
  14. 'secondary': $secondary,
  15. 'success': $success,
  16. 'info': $info,
  17. 'warning': $warning,
  18. 'danger': $danger,
  19. 'light': $light,
  20. 'dark': $dark,
  21. );
  22. $theme-color-addons-dark: (
  23. 'alt': #13293d,
  24. 'darker': #010101,
  25. );
  26. $theme-colors: map-merge($theme-colors, $theme-color-addons);
  27. $theme-color-addons: map-merge($theme-color-addons, $theme-color-addons-dark);
  28. // On import, any variables marked `!default` will be overridden by the above.
  29. @import 'bootstrap/scss/variables';
  30. // Customize the light and dark text colors for use in our color contrast function.
  31. // Gradient
  32. $gradient: linear-gradient(180deg, rgba($white, 0.15), rgba($white, 0));
  33. // Body
  34. $body-bg: $gray-900;
  35. $body-color: $white;
  36. $body-text-align: null;
  37. $border-color: $gray-700;
  38. $box-shadow: 0 0.5rem 1rem rgba($black, 0.15);
  39. $box-shadow-sm: 0 0.125rem 0.25rem rgba($black, 0.075);
  40. $box-shadow-lg: 0 1rem 3rem rgba($black, 0.175);
  41. $box-shadow-inset: inset 0 1px 2px rgba($black, 0.075);
  42. $text-muted: $gray-400;
  43. $blockquote-footer-color: $gray-600;
  44. $mark-bg: #fcf8e3;
  45. $link-color: $primary;
  46. $link-hover-color: $blue-200;
  47. // Tables
  48. $table-color: $gray-100;
  49. $table-border-color: $border-color;
  50. $table-striped-color: $table-color;
  51. $table-striped-bg: rgba($white, $table-striped-bg-factor);
  52. $table-active-color: $table-color;
  53. $table-active-bg: rgba($white, $table-active-bg-factor);
  54. $table-hover-color: $table-color;
  55. $table-hover-bg: rgba($white, $table-hover-bg-factor);
  56. // Buttons
  57. $btn-box-shadow: inset 0 1px 0 rgba($black, 0.15), 0 1px 1px rgba($white, 0.075);
  58. $btn-active-box-shadow: inset 0 3px 5px rgba($white, 0.125);
  59. $btn-link-disabled-color: $gray-300;
  60. // Forms
  61. $form-text-color: $text-muted;
  62. $input-bg: $gray-800;
  63. $input-disabled-bg: $gray-700;
  64. $input-color: $gray-100;
  65. $input-border-color: $gray-700;
  66. $input-focus-bg: $input-bg;
  67. $input-focus-border-color: tint-color($component-active-bg, 10%);
  68. $input-focus-color: $input-color;
  69. $input-placeholder-color: $gray-300;
  70. $input-plaintext-color: $body-color;
  71. $form-check-input-active-filter: brightness(90%);
  72. $form-check-input-bg: $input-bg;
  73. $form-check-input-border: 1px solid rgba(255, 255, 255, 0.25);
  74. $form-check-input-checked-color: $component-active-color;
  75. $form-check-input-checked-bg-color: $component-active-bg;
  76. $form-check-input-checked-border-color: $form-check-input-checked-bg-color;
  77. $form-check-input-indeterminate-color: $component-active-color;
  78. $form-check-input-indeterminate-bg-color: $component-active-bg;
  79. $form-check-input-indeterminate-border-color: $form-check-input-indeterminate-bg-color;
  80. $form-switch-color: rgba(255, 255, 255, 0.25);
  81. $form-switch-focus-color: $input-focus-border-color;
  82. $form-switch-checked-color: $component-active-color;
  83. $input-group-addon-color: $input-color;
  84. $input-group-addon-bg: $gray-700;
  85. $input-group-addon-border-color: $input-border-color;
  86. $form-select-color: $input-color;
  87. $form-select-disabled-color: $gray-400;
  88. $form-select-bg: $input-bg;
  89. $form-select-disabled-bg: $input-disabled-bg;
  90. $form-select-indicator-color: $form-select-color;
  91. $form-select-indicator: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='none' stroke='#{$form-select-indicator-color}' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/></svg>");
  92. $form-select-border-color: $input-border-color;
  93. $form-range-track-bg: $gray-300;
  94. $form-range-thumb-bg: $component-active-bg;
  95. $form-range-thumb-box-shadow: 0 0.1rem 0.25rem rgba($black, 0.1);
  96. $form-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow;
  97. $form-range-thumb-active-bg: tint-color($component-active-bg, 70%);
  98. $form-range-thumb-disabled-bg: $gray-500;
  99. $form-file-button-color: $input-color;
  100. $form-file-button-bg: $input-group-addon-bg;
  101. $form-file-button-hover-bg: shade-color($form-file-button-bg, 5%);
  102. // Navs
  103. $nav-link-color: $body-color;
  104. $nav-link-hover-color: null;
  105. $nav-link-disabled-color: $gray-800;
  106. $nav-tabs-border-color: $border-color;
  107. $nav-tabs-link-hover-border-color: rgba($gray-800, 0.5) rgba($gray-800, 0.5) $nav-tabs-border-color;
  108. $nav-tabs-link-active-color: $gray-50;
  109. $nav-tabs-link-active-bg: $body-bg;
  110. $nav-tabs-link-active-border-color: $gray-800 $gray-800 $nav-tabs-link-active-bg;
  111. $nav-pills-link-active-color: $component-active-color;
  112. $nav-pills-link-active-bg: $component-active-bg;
  113. $navbar-light-color: $gray-500;
  114. $navbar-light-toggler-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='#{$navbar-light-color}' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>");
  115. $navbar-light-toggler-border-color: $gray-700;
  116. // Dropdowns
  117. $dropdown-color: $body-color;
  118. $dropdown-bg: $gray-900;
  119. $dropdown-border-color: rgba($white, 0.15);
  120. $dropdown-link-color: $gray-100;
  121. $dropdown-link-hover-color: shade-color($gray-50, 10%);
  122. $dropdown-link-hover-bg: $gray-500;
  123. $dropdown-link-disabled-color: $gray-800;
  124. $dropdown-header-color: $gray-300;
  125. // Pagination
  126. $pagination-color: $link-color;
  127. $pagination-bg: $gray-800;
  128. $pagination-border-color: $gray-600;
  129. $pagination-focus-color: $link-hover-color;
  130. $pagination-focus-bg: $gray-400;
  131. $pagination-hover-color: $link-hover-color;
  132. $pagination-hover-bg: $gray-400;
  133. $pagination-hover-border-color: $gray-500;
  134. $pagination-active-color: $component-active-color;
  135. $pagination-active-bg: $component-active-bg;
  136. $pagination-active-border-color: $pagination-active-bg;
  137. $pagination-disabled-color: $gray-600;
  138. $pagination-disabled-bg: $gray-800;
  139. $pagination-disabled-border-color: $gray-600;
  140. // Cards
  141. $card-border-color: rgba($white, 0.125);
  142. $card-inner-border-radius: subtract($card-border-radius, $card-border-width);
  143. $card-cap-color: null;
  144. $card-height: null;
  145. $card-color: null;
  146. $card-bg: $gray-800;
  147. // Accordion
  148. $accordion-color: $body-color;
  149. $accordion-bg: transparent;
  150. $accordion-border-color: $border-color;
  151. $accordion-button-color: $accordion-color;
  152. $accordion-button-bg: $accordion-bg;
  153. $accordion-body-active-bg: rgba($blue-300, 0.1);
  154. $accordion-button-active-bg: rgba($blue-300, 0.15);
  155. $accordion-button-active-color: $gray-300;
  156. $accordion-button-focus-border-color: $input-focus-border-color;
  157. $accordion-icon-color: $accordion-color;
  158. $accordion-icon-active-color: $accordion-button-active-color;
  159. $accordion-button-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>");
  160. $accordion-button-active-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>");
  161. // Tooltips
  162. $tooltip-color: $body-color;
  163. $tooltip-bg: $gray-700;
  164. $tooltip-arrow-color: $tooltip-bg;
  165. $form-feedback-tooltip-opacity: $tooltip-opacity;
  166. // Popovers
  167. $popover-bg: $gray-700;
  168. $popover-border-color: rgba($white, 0.2);
  169. $popover-header-bg: shade-color($popover-bg, 6%);
  170. $popover-header-color: $headings-color;
  171. $popover-body-color: $body-color;
  172. $popover-arrow-color: $popover-bg;
  173. $popover-arrow-outer-color: fade-in($popover-border-color, 0.05);
  174. // Toasts
  175. $toast-color: null;
  176. $toast-background-color: rgba($white, 0.85);
  177. $toast-border-color: rgba(0, 0, 0, 0.1);
  178. $toast-header-color: $gray-600;
  179. $toast-header-background-color: rgba($white, 0.85);
  180. $toast-header-border-color: rgba(0, 0, 0, 0.05);
  181. // Badges
  182. $badge-color: $white;
  183. // Modals
  184. $modal-content-color: null;
  185. $modal-content-bg: $gray-800;
  186. $modal-content-border-color: rgba($white, 0.2);
  187. $modal-backdrop-bg: $black;
  188. $modal-header-border-color: $border-color;
  189. $modal-footer-border-color: $modal-header-border-color;
  190. // Progress bars
  191. $progress-bg: $gray-600;
  192. $progress-bar-color: $white;
  193. $progress-bar-bg: $primary;
  194. // List group
  195. $list-group-color: null;
  196. $list-group-bg: $card-bg;
  197. $list-group-border-color: rgba($white, 0.125);
  198. $list-group-hover-bg: rgba($gray-50, 0.15);
  199. $list-group-active-color: $component-active-color;
  200. $list-group-active-bg: $component-active-bg;
  201. $list-group-active-border-color: $list-group-active-bg;
  202. $list-group-disabled-bg: $list-group-bg;
  203. $list-group-action-color: $gray-300;
  204. $list-group-action-hover-color: $body-color;
  205. $list-group-action-active-color: $body-color;
  206. $list-group-action-active-bg: rgba($gray-300, 0.125);
  207. // Image thumbnails
  208. $thumbnail-bg: $body-bg;
  209. $thumbnail-border-color: $gray-300;
  210. // Figures
  211. $figure-caption-color: $gray-600;
  212. // Breadcrumbs
  213. $breadcrumb-divider-color: $gray-100;
  214. $breadcrumb-active-color: $body-color;
  215. $breadcrumb-divider-flipped: $breadcrumb-divider;
  216. $breadcrumb-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M2.5 0L1 1.5 3.5 4 1 6.5 2.5 8l4-4-4-4z' fill='#{$breadcrumb-divider-color}'/%3E%3C/svg%3E");
  217. // Carousel
  218. $carousel-control-color: $white;
  219. $carousel-indicator-active-bg: $white;
  220. $carousel-caption-color: $white;
  221. $carousel-dark-indicator-active-bg: $black;
  222. $carousel-dark-caption-color: $black;
  223. $carousel-dark-control-icon-filter: invert(1) grayscale(100);
  224. // Close
  225. $btn-close-color: $white;
  226. $btn-close-white-filter: invert(1) grayscale(100%) brightness(200%);
  227. $btn-close-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$btn-close-color}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>");
  228. @each $color, $value in $theme-colors {
  229. .bg-#{$color} button.btn-close {
  230. background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{color-contrast($value)}'><path d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/></svg>");
  231. }
  232. }
  233. // Code
  234. $code-color: $gray-200;
  235. $kbd-color: $white;
  236. $kbd-bg: $gray-300;
  237. $pre-color: null;