You've already forked wc-bootstrap
Fix dark mode selects, notice borders, and double notice icons
- Override WooCommerce's hardcoded #fff on native <select> and Select2 widgets for Bootstrap 5 dark mode (background, color, border) - Suppress WooCommerce icon font ::before on notices — templates already render Bootstrap Icons (bi-check-circle, etc.) - Bump notice selector specificity to .woocommerce .woocommerce-message (0,2,0) to beat woocommerce.css border-top: 3px solid override - Explicitly reset border-top shorthand to prevent WooCommerce's colored top-border from bleeding through Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -42,29 +42,35 @@
|
||||
when notices are rendered outside our Twig templates.
|
||||
========================================================================== */
|
||||
|
||||
.woocommerce-info,
|
||||
.woocommerce-message,
|
||||
.woocommerce-error {
|
||||
/* Use .woocommerce ancestor to beat woocommerce.css specificity (0,2,0 > 0,1,0).
|
||||
WooCommerce sets border-top: 3px solid, background-color: #f6f5f8, and a
|
||||
WooCommerce icon font ::before on these classes. Override all of it. */
|
||||
.woocommerce .woocommerce-info,
|
||||
.woocommerce .woocommerce-message,
|
||||
.woocommerce .woocommerce-error {
|
||||
position: relative;
|
||||
padding: 1rem 3rem 1rem 1rem;
|
||||
margin-bottom: 1rem;
|
||||
border: 1px solid transparent;
|
||||
margin: 0 0 1rem;
|
||||
border: var(--bs-border-width) solid transparent;
|
||||
border-top: var(--bs-border-width) solid transparent;
|
||||
border-radius: var(--bs-border-radius);
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
.woocommerce-info {
|
||||
.woocommerce .woocommerce-info {
|
||||
color: var(--bs-info-text-emphasis);
|
||||
background-color: var(--bs-info-bg-subtle);
|
||||
border-color: var(--bs-info-border-subtle);
|
||||
}
|
||||
|
||||
.woocommerce-message {
|
||||
.woocommerce .woocommerce-message {
|
||||
color: var(--bs-success-text-emphasis);
|
||||
background-color: var(--bs-success-bg-subtle);
|
||||
border-color: var(--bs-success-border-subtle);
|
||||
}
|
||||
|
||||
.woocommerce-error {
|
||||
.woocommerce .woocommerce-error {
|
||||
color: var(--bs-danger-text-emphasis);
|
||||
background-color: var(--bs-danger-bg-subtle);
|
||||
border-color: var(--bs-danger-border-subtle);
|
||||
@@ -72,6 +78,13 @@
|
||||
padding-left: 1rem;
|
||||
}
|
||||
|
||||
/* Suppress WooCommerce icon font ::before — our templates use Bootstrap Icons */
|
||||
.woocommerce .woocommerce-info::before,
|
||||
.woocommerce .woocommerce-message::before,
|
||||
.woocommerce .woocommerce-error::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Quantity Input
|
||||
Sizing for the Bootstrap input-group quantity widget.
|
||||
@@ -381,10 +394,58 @@
|
||||
========================================================================== */
|
||||
|
||||
/* Bootstrap 5 dark mode uses data-bs-theme="dark" attribute on <html> */
|
||||
[data-bs-theme="dark"] {
|
||||
/* Checkout form focus color for dark mode */
|
||||
|
||||
/* Native <select> elements — woocommerce.css sets:
|
||||
select { background-color: var(--wc-form-color-background, #fff) }
|
||||
The custom property is never defined for dark mode, so it falls back to #fff. */
|
||||
[data-bs-theme="dark"] .woocommerce select,
|
||||
[data-bs-theme="dark"] .wc-block-checkout select {
|
||||
background-color: var(--bs-body-bg);
|
||||
color: var(--bs-body-color);
|
||||
border-color: var(--bs-border-color);
|
||||
}
|
||||
|
||||
/* SelectWoo / Select2 — select2.css hardcodes #fff backgrounds on selection
|
||||
containers and dropdowns. Override to use Bootstrap's dark mode variables. */
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-selection--single,
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple {
|
||||
background-color: var(--bs-body-bg);
|
||||
color: var(--bs-body-color);
|
||||
border-color: var(--bs-border-color);
|
||||
}
|
||||
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
|
||||
color: var(--bs-body-color);
|
||||
}
|
||||
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__arrow b {
|
||||
border-color: var(--bs-secondary-color) transparent transparent transparent;
|
||||
}
|
||||
|
||||
[data-bs-theme="dark"] .select2-dropdown {
|
||||
background-color: var(--bs-body-bg);
|
||||
color: var(--bs-body-color);
|
||||
border-color: var(--bs-border-color);
|
||||
}
|
||||
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-search--dropdown .select2-search__field {
|
||||
background-color: var(--bs-tertiary-bg);
|
||||
color: var(--bs-body-color);
|
||||
border-color: var(--bs-border-color);
|
||||
}
|
||||
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-results__option[aria-selected=true],
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-results__option[data-selected=true] {
|
||||
background-color: var(--bs-tertiary-bg);
|
||||
}
|
||||
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected],
|
||||
[data-bs-theme="dark"] .select2-container--default .select2-results__option--highlighted[data-selected] {
|
||||
background-color: var(--bs-primary);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* Checkout form focus color for dark mode */
|
||||
[data-bs-theme="dark"] .woocommerce-checkout .form-row input.input-text:focus,
|
||||
[data-bs-theme="dark"] .woocommerce-checkout .form-row textarea:focus,
|
||||
[data-bs-theme="dark"] .woocommerce-checkout .form-row select:focus {
|
||||
|
||||
Reference in New Issue
Block a user