颜色系统
:root {
--bs-primary: #0d6efd;
--bs-primary-rgb: 13, 110, 253;
--bs-secondary: #6c757d;
--bs-success: #198754;
--bs-danger: #dc3545;
--bs-warning: #ffc107;
--bs-info: #0dcaf0;
--bs-light: #f8f9fa;
--bs-dark: #212529;
--bs-body-color: #212529;
--bs-body-color-rgb: 33, 37, 41;
--bs-body-bg: #fff;
--bs-body-bg-rgb: 255, 255, 255;
--bs-emphasis-color: #000;
--bs-secondary-color: rgba(33,37,41,.75);
--bs-tertiary-color: rgba(33,37,41,.5);
--bs-border-color: #dee2e6;
}
排版
:root {
--bs-body-font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
--bs-body-font-size: 1rem;
--bs-body-font-weight: 400;
--bs-body-line-height: 1.5;
--bs-heading-color: inherit;
--bs-heading-font-weight: 500;
--bs-heading-line-height: 1.2;
}
间距 & 圆角
:root {
--bs-border-radius: 0.375rem;
--bs-border-radius-sm: 0.25rem;
--bs-border-radius-lg: 0.5rem;
--bs-border-radius-xl: 1rem;
--bs-border-radius-xxl: 2rem;
--bs-border-radius-pill: 50rem;
--bs-border-width: 1px;
}
阴影
:root {
--bs-box-shadow: 0 0.5rem 1rem rgba(0,0,0,.15);
--bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0,0,0,.075);
--bs-box-shadow-lg: 0 1rem 3rem rgba(0,0,0,.175);
--bs-box-shadow-inset: inset 0 1px 2px rgba(0,0,0,.075);
}
链接
:root {
--bs-link-color: #0d6efd;
--bs-link-decoration: underline;
--bs-link-hover-color: #0a58ca;
--bs-link-hover-decoration: underline;
}
组件通用变量
:root {
--bs-transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
// 按钮
--bs-btn-padding-x: 0.75rem;
--bs-btn-padding-y: 0.375rem;
--bs-btn-font-size: 1rem;
--bs-btn-border-radius: 0.375rem;
// 表单
--bs-input-padding-x: 0.75rem;
--bs-input-padding-y: 0.375rem;
// 卡片
--bs-card-border-radius: 0.375rem;
--bs-card-box-shadow: none;
深色模式变量
[data-bs-theme="dark"] {
--bs-body-color: #dee2e6;
--bs-body-color-rgb: 222, 226, 230;
--bs-body-bg: #212529;
--bs-body-bg-rgb: 33, 37, 41;
--bs-emphasis-color: #fff;
--bs-secondary-color: rgba(222,226,230,.75);
--bs-tertiary-color: rgba(222,226,230,.5);
--bs-border-color: #495057;
}
覆盖任意变量只需在您的 CSS 中重新声明::root { --bs-primary: #6f42c1; } 即可实时生效,无需重新编译。