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.
|
when notices are rendered outside our Twig templates.
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
|
||||||
.woocommerce-info,
|
/* Use .woocommerce ancestor to beat woocommerce.css specificity (0,2,0 > 0,1,0).
|
||||||
.woocommerce-message,
|
WooCommerce sets border-top: 3px solid, background-color: #f6f5f8, and a
|
||||||
.woocommerce-error {
|
WooCommerce icon font ::before on these classes. Override all of it. */
|
||||||
|
.woocommerce .woocommerce-info,
|
||||||
|
.woocommerce .woocommerce-message,
|
||||||
|
.woocommerce .woocommerce-error {
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: 1rem 3rem 1rem 1rem;
|
padding: 1rem 3rem 1rem 1rem;
|
||||||
margin-bottom: 1rem;
|
margin: 0 0 1rem;
|
||||||
border: 1px solid transparent;
|
border: var(--bs-border-width) solid transparent;
|
||||||
|
border-top: var(--bs-border-width) solid transparent;
|
||||||
border-radius: var(--bs-border-radius);
|
border-radius: var(--bs-border-radius);
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.woocommerce-info {
|
.woocommerce .woocommerce-info {
|
||||||
color: var(--bs-info-text-emphasis);
|
color: var(--bs-info-text-emphasis);
|
||||||
background-color: var(--bs-info-bg-subtle);
|
background-color: var(--bs-info-bg-subtle);
|
||||||
border-color: var(--bs-info-border-subtle);
|
border-color: var(--bs-info-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.woocommerce-message {
|
.woocommerce .woocommerce-message {
|
||||||
color: var(--bs-success-text-emphasis);
|
color: var(--bs-success-text-emphasis);
|
||||||
background-color: var(--bs-success-bg-subtle);
|
background-color: var(--bs-success-bg-subtle);
|
||||||
border-color: var(--bs-success-border-subtle);
|
border-color: var(--bs-success-border-subtle);
|
||||||
}
|
}
|
||||||
|
|
||||||
.woocommerce-error {
|
.woocommerce .woocommerce-error {
|
||||||
color: var(--bs-danger-text-emphasis);
|
color: var(--bs-danger-text-emphasis);
|
||||||
background-color: var(--bs-danger-bg-subtle);
|
background-color: var(--bs-danger-bg-subtle);
|
||||||
border-color: var(--bs-danger-border-subtle);
|
border-color: var(--bs-danger-border-subtle);
|
||||||
@@ -72,6 +78,13 @@
|
|||||||
padding-left: 1rem;
|
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
|
Quantity Input
|
||||||
Sizing for the Bootstrap input-group quantity widget.
|
Sizing for the Bootstrap input-group quantity widget.
|
||||||
@@ -381,10 +394,58 @@
|
|||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
|
||||||
/* Bootstrap 5 dark mode uses data-bs-theme="dark" attribute on <html> */
|
/* 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 input.input-text:focus,
|
||||||
[data-bs-theme="dark"] .woocommerce-checkout .form-row textarea:focus,
|
[data-bs-theme="dark"] .woocommerce-checkout .form-row textarea:focus,
|
||||||
[data-bs-theme="dark"] .woocommerce-checkout .form-row select:focus {
|
[data-bs-theme="dark"] .woocommerce-checkout .form-row select:focus {
|
||||||
|
|||||||
Reference in New Issue
Block a user