BROOKO icon
BROOKO UK NETWORK
Where code meets creativity & adventure
File viewer

bootstrap-dark-theme.css

Type
css
Size
15.99 KB
Modified
15 May
bootstrap-dark-theme.css 15.99 KB
/* ============================================
   BOOTSTRAP 5 DARK THEME OVERRIDES
   WorkersPanel Custom Dark Theme
   No Conflicts - Works Harmoniously
   ============================================ */

/* ============================================
   GLOBAL BOOTSTRAP OVERRIDES
   ============================================ */

/* Reset Bootstrap's light background */
.modal-content,
.dropdown-menu,
.card,
.list-group-item,
.accordion-item,
.offcanvas,
.toast {
  background-color: var(--bg-card);
  border-color: var(--border);
  color: var(--text-main);
}

/* ============================================
   MODAL STYLING
   ============================================ */

.modal-header {
  background-color: var(--bg-panel);
  border-bottom-color: var(--border);
  color: var(--text-main);
}

.modal-body {
  background-color: var(--bg-card);
  color: var(--text-main);
}

.modal-footer {
  background-color: var(--bg-panel);
  border-top-color: var(--border);
}

.modal-backdrop {
  background-color: rgba(0, 0, 0, 0.8);
}

.modal-backdrop.show {
  opacity: 0.8;
}

.btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
  opacity: 0.8;
}

.btn-close:hover {
  opacity: 1;
}

/* ============================================
   FORM CONTROLS
   ============================================ */

.form-control,
.form-select,
.form-control:disabled,
.form-select:disabled {
  background-color: var(--bg-panel);
  border-color: var(--border);
  color: var(--text-main);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--bg-panel);
  border-color: var(--accent);
  color: var(--text-main);
  box-shadow: 0 0 0 0.25rem rgba(255, 140, 26, 0.25);
}

.form-control::placeholder {
  color: var(--text-muted);
  opacity: 0.7;
}

.form-label {
  color: var(--text-main);
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.form-text {
  color: var(--text-muted);
}

/* Form Check (Checkboxes & Radios) */
.form-check-input {
  background-color: var(--bg-panel);
  border-color: var(--border);
}

.form-check-input:checked {
  background-color: var(--accent);
  border-color: var(--accent);
}

.form-check-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 0.25rem rgba(255, 140, 26, 0.25);
}

.form-check-label {
  color: var(--text-main);
}

/* Form Switch */
.form-switch .form-check-input {
  background-color: var(--bg-panel);
}

.form-switch .form-check-input:checked {
  background-color: var(--accent);
}

/* ============================================
   FLOATING LABELS
   ============================================ */

.form-floating > label {
  color: var(--text-muted);
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label,
.form-floating > .form-select ~ label {
  color: var(--accent);
  opacity: 1;
}

.form-floating > .form-control:-webkit-autofill ~ label {
  color: var(--accent);
  opacity: 1;
}

/* ============================================
   BUTTONS (Enhance, don't override)
   ============================================ */

/* Primary Button */
.btn-primary {
  background-color: var(--accent);
  border-color: var(--accent);
  color: #000;
  font-weight: 600;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--accent-hover);
  border-color: var(--accent-hover);
  color: #000;
}

.btn-primary:active,
.btn-primary.active {
  background-color: var(--accent-hover);
  border-color: var(--accent-hover);
}

/* Secondary Button */
.btn-secondary {
  background-color: rgba(255, 255, 255, 0.05);
  border-color: var(--border);
  color: var(--text-main);
}

.btn-secondary:hover,
.btn-secondary:focus {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: var(--accent);
  color: var(--text-main);
}

/* Danger Button */
.btn-danger {
  background-color: rgba(231, 76, 60, 0.2);
  border-color: var(--danger);
  color: var(--danger);
}

.btn-danger:hover,
.btn-danger:focus {
  background-color: var(--danger);
  border-color: var(--danger);
  color: #fff;
}

/* Success Button */
.btn-success {
  background-color: rgba(16, 185, 129, 0.2);
  border-color: var(--success);
  color: var(--success);
}

.btn-success:hover,
.btn-success:focus {
  background-color: var(--success);
  border-color: var(--success);
  color: #000;
}

/* Outline Buttons */
.btn-outline-primary {
  color: var(--accent);
  border-color: var(--accent);
}

.btn-outline-primary:hover {
  background-color: var(--accent);
  border-color: var(--accent);
  color: #000;
}

.btn-outline-secondary {
  color: var(--text-main);
  border-color: var(--border);
}

.btn-outline-secondary:hover {
  background-color: rgba(255, 255, 255, 0.1);
  border-color: var(--accent);
  color: var(--text-main);
}

/* ============================================
   INPUT GROUPS
   ============================================ */

.input-group-text {
  background-color: var(--bg-panel);
  border-color: var(--border);
  color: var(--text-main);
}

.input-group > .form-control:focus,
.input-group > .form-select:focus {
  z-index: 3;
}

/* ============================================
   BADGES
   ============================================ */

.badge {
  font-weight: 600;
  padding: 0.35em 0.65em;
}

.badge.bg-primary {
  background-color: var(--accent) !important;
  color: #000;
}

.badge.bg-secondary {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: var(--text-main);
}

.badge.bg-success {
  background-color: var(--success) !important;
  color: #000;
}

.badge.bg-danger {
  background-color: var(--danger) !important;
  color: #fff;
}

/* ============================================
   ALERTS
   ============================================ */

.alert {
  background-color: var(--bg-panel);
  border-color: var(--border);
  color: var(--text-main);
}

.alert-primary {
  background-color: rgba(255, 140, 26, 0.1);
  border-color: var(--accent);
  color: var(--accent);
}

.alert-success {
  background-color: rgba(16, 185, 129, 0.1);
  border-color: var(--success);
  color: var(--success);
}

.alert-danger {
  background-color: rgba(231, 76, 60, 0.1);
  border-color: var(--danger);
  color: var(--danger);
}

.alert-warning {
  background-color: rgba(245, 158, 11, 0.1);
  border-color: #f59e0b;
  color: #f59e0b;
}

.alert-info {
  background-color: rgba(59, 130, 246, 0.1);
  border-color: #3b82f6;
  color: #3b82f6;
}

.alert-link {
  font-weight: 700;
}

/* ============================================
   DROPDOWNS
   ============================================ */

.dropdown-menu {
  background-color: var(--bg-card);
  border-color: var(--border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.dropdown-item {
  color: var(--text-main);
  transition: all 0.2s ease;
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: rgba(255, 140, 26, 0.1);
  color: var(--accent);
}

.dropdown-item:active {
  background-color: var(--accent);
  color: #000;
}

.dropdown-divider {
  border-top-color: var(--border);
}

.dropdown-header {
  color: var(--text-muted);
}

/* ============================================
   NAVBAR
   ============================================ */

.navbar {
  background-color: var(--bg-panel);
  border-bottom: 1px solid var(--border);
}

.navbar-dark .navbar-nav .nav-link {
  color: var(--text-main);
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
  color: var(--accent);
}

.navbar-dark .navbar-nav .nav-link.active {
  color: var(--accent);
}

/* ============================================
   CARDS
   ============================================ */

.card {
  background-color: var(--bg-card);
  border-color: var(--border);
}

.card-header {
  background-color: var(--bg-panel);
  border-bottom-color: var(--border);
  color: var(--text-main);
  font-weight: 600;
}

.card-footer {
  background-color: var(--bg-panel);
  border-top-color: var(--border);
  color: var(--text-muted);
}

.card-title {
  color: var(--text-main);
}

.card-text {
  color: var(--text-main);
}

/* ============================================
   ACCORDION
   ============================================ */

.accordion-item {
  background-color: var(--bg-card);
  border-color: var(--border);
}

.accordion-button {
  background-color: var(--bg-panel);
  color: var(--text-main);
  font-weight: 600;
}

.accordion-button:not(.collapsed) {
  background-color: var(--bg-card);
  color: var(--accent);
  box-shadow: none;
}

.accordion-button:focus {
  box-shadow: 0 0 0 0.25rem rgba(255, 140, 26, 0.25);
  border-color: var(--accent);
}

.accordion-button::after {
  filter: invert(1) grayscale(100%) brightness(200%);
}

.accordion-body {
  background-color: var(--bg-card);
  color: var(--text-main);
}

/* ============================================
   PAGINATION
   ============================================ */

.pagination {
  margin-bottom: 0;
}

.page-link {
  background-color: var(--bg-panel);
  border-color: var(--border);
  color: var(--text-main);
}

.page-link:hover {
  background-color: rgba(255, 140, 26, 0.1);
  border-color: var(--accent);
  color: var(--accent);
}

.page-link:focus {
  background-color: rgba(255, 140, 26, 0.1);
  box-shadow: 0 0 0 0.25rem rgba(255, 140, 26, 0.25);
}

.page-item.active .page-link {
  background-color: var(--accent);
  border-color: var(--accent);
  color: #000;
}

.page-item.disabled .page-link {
  background-color: var(--bg-panel);
  border-color: var(--border);
  color: var(--text-muted);
}

/* ============================================
   TABLES
   ============================================ */

.table {
  color: var(--text-main);
  border-color: var(--border);
}

.table > :not(caption) > * > * {
  background-color: transparent;
  border-bottom-color: var(--border);
  color: var(--text-main);
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: rgba(255, 255, 255, 0.02);
}

.table-hover > tbody > tr:hover > * {
  background-color: rgba(255, 140, 26, 0.1);
  color: var(--text-main);
}

.table-dark {
  background-color: var(--bg-panel);
  color: var(--text-main);
}

/* ============================================
   PROGRESS BARS
   ============================================ */

.progress {
  background-color: var(--bg-panel);
  border: 1px solid var(--border);
}

.progress-bar {
  background-color: var(--accent);
  color: #000;
}

.progress-bar-striped {
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
}

/* ============================================
   SPINNERS
   ============================================ */

.spinner-border,
.spinner-grow {
  color: var(--accent);
}

.spinner-border-sm,
.spinner-grow-sm {
  color: var(--accent);
}

/* ============================================
   LIST GROUPS
   ============================================ */

.list-group-item {
  background-color: var(--bg-card);
  border-color: var(--border);
  color: var(--text-main);
}

.list-group-item-action:hover,
.list-group-item-action:focus {
  background-color: rgba(255, 140, 26, 0.1);
  color: var(--accent);
}

.list-group-item-action:active {
  background-color: var(--accent);
  color: #000;
}

.list-group-item.active {
  background-color: var(--accent);
  border-color: var(--accent);
  color: #000;
}

/* ============================================
   TABS & PILLS
   ============================================ */

.nav-tabs {
  border-bottom-color: var(--border);
}

.nav-tabs .nav-link {
  color: var(--text-main);
  border-color: transparent;
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
  border-color: var(--border) var(--border) transparent;
  color: var(--accent);
}

.nav-tabs .nav-link.active {
  background-color: var(--bg-card);
  border-color: var(--border) var(--border) var(--bg-card);
  color: var(--accent);
}

.nav-pills .nav-link {
  color: var(--text-main);
}

.nav-pills .nav-link:hover {
  background-color: rgba(255, 140, 26, 0.1);
  color: var(--accent);
}

.nav-pills .nav-link.active {
  background-color: var(--accent);
  color: #000;
}

/* ============================================
   TOASTS
   ============================================ */

.toast {
  background-color: var(--bg-card);
  border-color: var(--border);
  color: var(--text-main);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.toast-header {
  background-color: var(--bg-panel);
  border-bottom-color: var(--border);
  color: var(--text-main);
}

.toast-body {
  color: var(--text-main);
}

/* ============================================
   POPOVERS & TOOLTIPS
   ============================================ */

.popover {
  background-color: var(--bg-card);
  border-color: var(--border);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.popover-header {
  background-color: var(--bg-panel);
  border-bottom-color: var(--border);
  color: var(--text-main);
}

.popover-body {
  color: var(--text-main);
}

.tooltip-inner {
  background-color: var(--bg-panel);
  color: var(--text-main);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5);
}

.bs-tooltip-top .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="top"] .tooltip-arrow::before {
  border-top-color: var(--bg-panel);
}

.bs-tooltip-end .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="right"] .tooltip-arrow::before {
  border-right-color: var(--bg-panel);
}

.bs-tooltip-bottom .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="bottom"] .tooltip-arrow::before {
  border-bottom-color: var(--bg-panel);
}

.bs-tooltip-start .tooltip-arrow::before,
.bs-tooltip-auto[data-popper-placement^="left"] .tooltip-arrow::before {
  border-left-color: var(--bg-panel);
}

/* ============================================
   BREADCRUMBS
   ============================================ */

.breadcrumb {
  background-color: var(--bg-panel);
  padding: 0.75rem 1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
}

.breadcrumb-item {
  color: var(--text-main);
}

.breadcrumb-item.active {
  color: var(--text-muted);
}

.breadcrumb-item + .breadcrumb-item::before {
  color: var(--text-muted);
}

.breadcrumb-item a {
  color: var(--accent);
  text-decoration: none;
}

.breadcrumb-item a:hover {
  color: var(--accent-hover);
}

/* ============================================
   SCROLLBAR STYLING (Bootstrap components)
   ============================================ */

.modal-body::-webkit-scrollbar,
.offcanvas-body::-webkit-scrollbar,
.dropdown-menu::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.modal-body::-webkit-scrollbar-track,
.offcanvas-body::-webkit-scrollbar-track,
.dropdown-menu::-webkit-scrollbar-track {
  background: var(--bg-panel);
  border-radius: 4px;
}

.modal-body::-webkit-scrollbar-thumb,
.offcanvas-body::-webkit-scrollbar-thumb,
.dropdown-menu::-webkit-scrollbar-thumb {
  background: var(--border);
  border-radius: 4px;
}

.modal-body::-webkit-scrollbar-thumb:hover,
.offcanvas-body::-webkit-scrollbar-thumb:hover,
.dropdown-menu::-webkit-scrollbar-thumb:hover {
  background: var(--accent);
}

/* ============================================
   TEXT UTILITIES (Enhance)
   ============================================ */

.text-muted {
  color: var(--text-muted) !important;
}

.text-primary {
  color: var(--accent) !important;
}

.text-success {
  color: var(--success) !important;
}

.text-danger {
  color: var(--danger) !important;
}

/* ============================================
   BACKGROUND UTILITIES (Enhance)
   ============================================ */

.bg-primary {
  background-color: var(--accent) !important;
  color: #000 !important;
}

.bg-secondary {
  background-color: rgba(255, 255, 255, 0.1) !important;
  color: var(--text-main) !important;
}

.bg-success {
  background-color: var(--success) !important;
  color: #000 !important;
}

.bg-danger {
  background-color: var(--danger) !important;
  color: #fff !important;
}

/* ============================================
   BORDER UTILITIES (Enhance)
   ============================================ */

.border {
  border-color: var(--border) !important;
}

.border-primary {
  border-color: var(--accent) !important;
}

.border-success {
  border-color: var(--success) !important;
}

.border-danger {
  border-color: var(--danger) !important;
}