fix(design): split selector lists that mix vendor pseudo-classes and forbid them

A browser drops a whole selector list when one selector in it uses a
pseudo-class or pseudo-element it does not know. Role stylesheets grouped
vendor variants such as ::-moz-placeholder, :-ms-input-placeholder and
::-webkit-input-placeholder into one rule, so Chromium never applied the
rule and Firefox dropped the ones that carried -webkit- selectors.

113 such rules in 20 stylesheets of 15 roles are split into one rule per
vendor group, with the same declarations at the same place in the cascade.
For Jellyfin, OpenBao and Taiga this commit carries only the split of the
committed stylesheet; their pending design passes keep their own changes.

tests/lint/repository/test_css_vendor_pseudo_lists.py scans every
roles/**/*.css and *.css.j2, masks Jinja and comments, and rejects a
selector list whose selectors carry different vendor pseudo groups. A
self-test covers a mixed list and its split form.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kevinveenbirkenbachandClaude Opus 5.5 committed 2026-10-12 18:03:16 +02:00
1 parent 63f3631567
commit 6c2de017f8
21 files changed
+649 -173

No files matched your search

+121 -38
View File
@@ -32,7 +32,6 @@
*,
:after,
:before,
::-webkit-backdrop,
::backdrop {
--tw-ring-offset-color: var(--design-surface-2);
--tw-ring-color: rgba(var(--design-link-rgb), 0.5);
@@ -41,19 +40,35 @@
--tw-shadow: 0 0 transparent;
--tw-shadow-colored: 0 0 transparent;
}
::-webkit-backdrop {
--tw-ring-offset-color: var(--design-surface-2);
--tw-ring-color: rgba(var(--design-link-rgb), 0.5);
--tw-ring-offset-shadow: 0 0 transparent;
--tw-ring-shadow: 0 0 transparent;
--tw-shadow: 0 0 transparent;
--tw-shadow-colored: 0 0 transparent;
}
*,
:after,
:before {
border-color: var(--design-border);
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
color: var(--design-text-muted);
}
input::-moz-placeholder,
textarea::-moz-placeholder,
textarea::-moz-placeholder {
color: var(--design-text-muted);
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder,
textarea:-ms-input-placeholder {
color: var(--design-text-muted);
}
input::-ms-input-placeholder,
textarea::-ms-input-placeholder,
textarea::-ms-input-placeholder {
color: var(--design-text-muted);
}
input::placeholder,
textarea::placeholder {
color: var(--design-text-muted);
@@ -159,13 +174,21 @@ textarea:focus {
border-color: var(--design-link);
}
input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
color: var(--design-text-muted);
}
input::-moz-placeholder,
textarea::-moz-placeholder,
textarea::-moz-placeholder {
color: var(--design-text-muted);
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder,
textarea:-ms-input-placeholder {
color: var(--design-text-muted);
}
input::-ms-input-placeholder,
textarea::-ms-input-placeholder,
textarea::-ms-input-placeholder {
color: var(--design-text-muted);
}
input::placeholder,
textarea::placeholder {
color: var(--design-text-muted);
@@ -182,12 +205,17 @@ textarea::placeholder {
--tw-ring-offset-color: var(--design-surface-2);
--tw-ring-color: var(--design-link);
}
input[type=file]::-webkit-file-upload-button,
input[type=file]::-webkit-file-upload-button {
background-color: var(--design-text);
color: var(--design-surface-1);
}
input[type=file]::file-selector-button {
background-color: var(--design-text);
color: var(--design-surface-1);
}
input[type=file]::-webkit-file-upload-button:hover,
input[type=file]::-webkit-file-upload-button:hover {
background-color: var(--design-text-muted);
}
input[type=file]::file-selector-button:hover {
background-color: var(--design-text-muted);
}
@@ -206,10 +234,18 @@ input[type=file]::file-selector-button:hover {
border-color: var(--design-border-strong);
color: var(--design-text);
}
.input-money::-webkit-input-placeholder,
.input-money::-moz-placeholder,
.input-money:-ms-input-placeholder,
.input-money::-ms-input-placeholder,
.input-money::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.input-money::-moz-placeholder {
color: var(--design-text-muted);
}
.input-money:-ms-input-placeholder {
color: var(--design-text-muted);
}
.input-money::-ms-input-placeholder {
color: var(--design-text-muted);
}
.input-money::placeholder {
color: var(--design-text-muted);
}
@@ -445,10 +481,18 @@ input[type=file]::file-selector-button:hover {
.text-yellow-800 {
color: var(--design-warning);
}
.placeholder-light-gray::-webkit-input-placeholder,
.placeholder-light-gray::-moz-placeholder,
.placeholder-light-gray:-ms-input-placeholder,
.placeholder-light-gray::-ms-input-placeholder,
.placeholder-light-gray::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.placeholder-light-gray::-moz-placeholder {
color: var(--design-text-muted);
}
.placeholder-light-gray:-ms-input-placeholder {
color: var(--design-text-muted);
}
.placeholder-light-gray::-ms-input-placeholder {
color: var(--design-text-muted);
}
.placeholder-light-gray::placeholder {
color: var(--design-text-muted);
}
@@ -500,10 +544,18 @@ table thead a:hover {
border-color: var(--design-border-strong);
color: var(--design-text);
}
.el-select .el-input .el-input__inner::-webkit-input-placeholder,
.el-select .el-input .el-input__inner::-moz-placeholder,
.el-select .el-input .el-input__inner:-ms-input-placeholder,
.el-select .el-input .el-input__inner::-ms-input-placeholder,
.el-select .el-input .el-input__inner::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.el-select .el-input .el-input__inner::-moz-placeholder {
color: var(--design-text-muted);
}
.el-select .el-input .el-input__inner:-ms-input-placeholder {
color: var(--design-text-muted);
}
.el-select .el-input .el-input__inner::-ms-input-placeholder {
color: var(--design-text-muted);
}
.el-select .el-input .el-input__inner::placeholder {
color: var(--design-text-muted);
}
@@ -535,10 +587,18 @@ table thead a:hover {
border-color: var(--design-border-strong);
color: var(--design-text);
}
.el-date-editor input::-webkit-input-placeholder,
.el-date-editor input::-moz-placeholder,
.el-date-editor input:-ms-input-placeholder,
.el-date-editor input::-ms-input-placeholder,
.el-date-editor input::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.el-date-editor input::-moz-placeholder {
color: var(--design-text-muted);
}
.el-date-editor input:-ms-input-placeholder {
color: var(--design-text-muted);
}
.el-date-editor input::-ms-input-placeholder {
color: var(--design-text-muted);
}
.el-date-editor input::placeholder {
color: var(--design-text-muted);
}
@@ -562,10 +622,18 @@ table thead a:hover {
background-color: var(--design-primary) !important;
border-color: var(--design-primary) !important;
}
.el-date-editor .el-range-input::-webkit-input-placeholder,
.el-date-editor .el-range-input::-moz-placeholder,
.el-date-editor .el-range-input:-ms-input-placeholder,
.el-date-editor .el-range-input::-ms-input-placeholder,
.el-date-editor .el-range-input::-webkit-input-placeholder {
color: var(--design-text);
}
.el-date-editor .el-range-input::-moz-placeholder {
color: var(--design-text);
}
.el-date-editor .el-range-input:-ms-input-placeholder {
color: var(--design-text);
}
.el-date-editor .el-range-input::-ms-input-placeholder {
color: var(--design-text);
}
.el-date-editor .el-range-input,
.el-date-editor .el-range-input::placeholder {
color: var(--design-text);
@@ -581,7 +649,10 @@ table thead a:hover {
.swiper-pagination-bullet-active {
background-color: var(--design-text-muted) !important;
}
::-moz-selection,
::-moz-selection {
background-color: var(--design-primary-active);
color: var(--design-on-primary);
}
::selection {
background-color: var(--design-primary-active);
color: var(--design-on-primary);
@@ -692,11 +763,15 @@ body,
}
.el-date-editor .el-range__icon,
.el-date-editor .el-range-input,
.el-date-editor .el-range-input::-webkit-input-placeholder,
.el-date-editor .el-range-input::-ms-input-placeholder,
.el-date-editor .el-range-input::placeholder {
color: var(--design-text-muted);
}
.el-date-editor .el-range-input::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.el-date-editor .el-range-input::-ms-input-placeholder {
color: var(--design-text-muted);
}
.el-date-editor .el-range-separator {
color: var(--design-text);
}
@@ -757,8 +832,12 @@ body,
.el-input::-webkit-scrollbar-thumb {
background-color: var(--design-border-strong);
}
.el-input::-webkit-scrollbar-corner,
.el-input::-webkit-scrollbar-track,
.el-input::-webkit-scrollbar-corner {
background-color: var(--design-surface-2);
}
.el-input::-webkit-scrollbar-track {
background-color: var(--design-surface-2);
}
.el-input::-webkit-scrollbar-track-piece {
background-color: var(--design-surface-2);
}
@@ -769,11 +848,15 @@ body,
}
.el-input__prefix,
.el-input__suffix,
.el-input__inner::-webkit-input-placeholder,
.el-input__inner::-ms-input-placeholder,
.el-input__inner::placeholder {
color: var(--design-text-muted);
}
.el-input__inner::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.el-input__inner::-ms-input-placeholder {
color: var(--design-text-muted);
}
.el-input__inner:hover {
border-color: var(--design-border-strong);
}
+18 -6
View File
@@ -2394,10 +2394,12 @@ table.tacticaloverview td a:hover,
table.tacticaloverview td span,
#snapin_container_wiki div.content,
#mk_side_search input,
#mk_side_search input::-moz-placeholder,
#mk_side_search input::placeholder {
color: var(--design-text);
}
#mk_side_search input::-moz-placeholder {
color: var(--design-text);
}
div.tacticalalert,
div.tacticalinfo {
box-shadow: none;
@@ -3047,23 +3049,33 @@ div.graph_with_timeranges div.graph table.legend td {
#info_underline {
background-color: var(--design-success);
}
meter.password_meter,
meter.password_meter {
background-color: var(--design-surface-active);
}
meter.password_meter::-webkit-meter-bar {
background-color: var(--design-surface-active);
}
meter.password_meter[value="2"]::-webkit-meter-optimum-value,
meter.password_meter[value="2"]::-webkit-meter-optimum-value {
background-color: var(--design-danger);
}
meter.password_meter[value="2"]::-moz-meter-bar {
background-color: var(--design-danger);
}
meter.password_meter[value="3"]::-webkit-meter-optimum-value,
meter.password_meter[value="3"]::-webkit-meter-optimum-value {
background-color: var(--design-warning);
}
meter.password_meter[value="3"]::-moz-meter-bar {
background-color: var(--design-warning);
}
meter.password_meter[value="4"]::-webkit-meter-optimum-value,
meter.password_meter[value="4"]::-webkit-meter-optimum-value {
background-color: var(--design-success-border);
}
meter.password_meter[value="4"]::-moz-meter-bar {
background-color: var(--design-success-border);
}
meter.password_meter[value="5"]::-webkit-meter-optimum-value,
meter.password_meter[value="5"]::-webkit-meter-optimum-value {
background-color: var(--design-success);
}
meter.password_meter[value="5"]::-moz-meter-bar {
background-color: var(--design-success);
}
+22 -7
View File
@@ -11,7 +11,9 @@
--tw-shadow-colored: 0 0 transparent;
}
input::-moz-placeholder,
textarea::-moz-placeholder,
textarea::-moz-placeholder {
color: var(--design-text-muted);
}
input::placeholder,
textarea::placeholder {
color: var(--design-text-muted);
@@ -246,7 +248,9 @@ footer .main-footer__top .editor-content strong {
.form-defaults input[type=url]:not(.reset-defaults)::-moz-placeholder,
.form-defaults input[type=week]:not(.reset-defaults)::-moz-placeholder,
.form-defaults select:not(.reset-defaults)::-moz-placeholder,
.form-defaults textarea:not(.reset-defaults)::-moz-placeholder,
.form-defaults textarea:not(.reset-defaults)::-moz-placeholder {
color: var(--design-text-muted);
}
.form-defaults input[type=date]:not(.reset-defaults)::placeholder,
.form-defaults input[type=datetime-local]:not(.reset-defaults)::placeholder,
.form-defaults input[type=email]:not(.reset-defaults)::placeholder,
@@ -309,7 +313,10 @@ footer .main-footer__top .editor-content strong {
.form-defaults input[type=url]:not(select):-moz-read-only,
.form-defaults input[type=week]:not(select):-moz-read-only,
.form-defaults select:not(select):-moz-read-only,
.form-defaults textarea:not(select):-moz-read-only,
.form-defaults textarea:not(select):-moz-read-only {
background-color: var(--design-surface-3);
color: var(--design-text);
}
.form-defaults input[type=date]:not(select):read-only,
.form-defaults input[type=datetime-local]:not(select):read-only,
.form-defaults input[type=email]:not(select):read-only,
@@ -356,7 +363,9 @@ footer .main-footer__top .editor-content strong {
background-color: var(--design-surface-2);
color: var(--design-text);
}
.input-group::-moz-placeholder,
.input-group::-moz-placeholder {
color: var(--design-text-muted);
}
.input-group::placeholder {
color: var(--design-text-muted);
}
@@ -772,7 +781,9 @@ footer .main-footer__top .editor-content strong {
.upload-modal__dropzone [data-filename] progress::-moz-progress-bar {
background-color: var(--design-success);
}
.upload-modal__dropzone [data-filename] [data-template=error]+progress::-webkit-progress-value,
.upload-modal__dropzone [data-filename] [data-template=error]+progress::-webkit-progress-value {
background-color: var(--design-danger);
}
.upload-modal__dropzone [data-filename] [data-template=error]+progress::-moz-progress-bar {
background-color: var(--design-danger);
}
@@ -2235,7 +2246,9 @@ footer .main-footer__top .participatory-space__container>[id^=html-block] strong
color: var(--design-text-muted);
border-color: rgba(var(--design-border-strong-rgb), 0.2);
}
:where(body:not(.form-defaults)) .autoComplete_wrapper>input::-moz-placeholder,
:where(body:not(.form-defaults)) .autoComplete_wrapper>input::-moz-placeholder {
color: rgba(var(--design-text-muted-rgb), 0.5);
}
:where(body:not(.form-defaults)) .autoComplete_wrapper>input::placeholder {
color: rgba(var(--design-text-muted-rgb), 0.5);
}
@@ -3002,7 +3015,9 @@ footer .main-footer__top .participatory-space__container>[id^=html-block] strong
background-color: var(--design-surface-2);
color: var(--design-text);
}
:where(body:not(.form-defaults)) .data-picker::-moz-placeholder,
:where(body:not(.form-defaults)) .data-picker::-moz-placeholder {
color: var(--design-text-muted);
}
:where(body:not(.form-defaults)) .data-picker::placeholder {
color: var(--design-text-muted);
}
@@ -379,18 +379,28 @@ html[data-design-palette] #dialogToc .toc li a:hover {
html[data-design-palette] * {
scrollbar-color: var(--design-border-strong) var(--design-surface-2);
}
html[data-design-palette] progress,
html[data-design-palette] progress {
background-color: var(--design-surface-3);
}
html[data-design-palette] progress::-webkit-progress-bar {
background-color: var(--design-surface-3);
}
html[data-design-palette] progress::-moz-progress-bar,
html[data-design-palette] progress::-webkit-progress-value,
html[data-design-palette] progress::-moz-progress-bar {
background-color: var(--design-primary);
}
html[data-design-palette] progress::-webkit-progress-value {
background-color: var(--design-primary);
}
html[data-design-palette] progress[aria-valuenow]:before,
html[data-design-palette] .playbackProgress > div {
background-color: var(--design-primary);
}
html[data-design-palette] .recordingProgressBar::-moz-progress-bar,
html[data-design-palette] .recordingProgressBar::-webkit-progress-value,
html[data-design-palette] .recordingProgressBar::-moz-progress-bar {
background-color: var(--design-danger);
}
html[data-design-palette] .recordingProgressBar::-webkit-progress-value {
background-color: var(--design-danger);
}
html[data-design-palette] .recordingProgressBar[aria-valuenow]:before {
background-color: var(--design-danger);
}
+22 -6
View File
@@ -90,8 +90,12 @@ button {
#remotePresenceMessage .presence-label {
text-shadow: none;
}
.popupmenu__contents .popupmenu__volume-slider::-webkit-slider-runnable-track,
.popupmenu__contents .popupmenu__volume-slider::-moz-range-track,
.popupmenu__contents .popupmenu__volume-slider::-webkit-slider-runnable-track {
background-color: var(--design-border-strong);
}
.popupmenu__contents .popupmenu__volume-slider::-moz-range-track {
background-color: var(--design-border-strong);
}
.popupmenu__contents .popupmenu__volume-slider::-ms-fill-lower {
background-color: var(--design-border-strong);
}
@@ -198,13 +202,25 @@ div.hangup-menu-button svg {
input[type=range]:focus {
outline-color: var(--design-link) !important;
}
input[type=range]::-webkit-slider-runnable-track,
input[type=range]::-moz-range-track,
input[type=range]::-webkit-slider-runnable-track {
background-color: var(--design-border-strong);
}
input[type=range]::-moz-range-track {
background-color: var(--design-border-strong);
}
input[type=range]::-ms-track {
background-color: var(--design-border-strong);
}
input[type=range]::-webkit-slider-thumb,
input[type=range]::-moz-range-thumb,
input[type=range]::-webkit-slider-thumb {
background-color: var(--design-text);
border-color: var(--design-primary);
box-shadow: 0 0 1px var(--design-link);
}
input[type=range]::-moz-range-thumb {
background-color: var(--design-text);
border-color: var(--design-primary);
box-shadow: 0 0 1px var(--design-link);
}
input[type=range]::-ms-thumb {
background-color: var(--design-text);
border-color: var(--design-primary);
+30 -10
View File
@@ -95,6 +95,9 @@
& input[type="number"]::-moz-placeholder,
& input[type*="date"]::-moz-placeholder,
& input[type="email"]::-moz-placeholder,
& textarea::-moz-placeholder {
color: var(--design-text-muted);
}
& input[type="text"]::-webkit-input-placeholder,
& input[type="password"]::-webkit-input-placeholder,
& input[type="url"]::-webkit-input-placeholder,
@@ -103,6 +106,9 @@
& input[type="number"]::-webkit-input-placeholder,
& input[type*="date"]::-webkit-input-placeholder,
& input[type="email"]::-webkit-input-placeholder,
& textarea::-webkit-input-placeholder {
color: var(--design-text-muted);
}
& input[type="text"]:-ms-input-placeholder,
& input[type="password"]:-ms-input-placeholder,
& input[type="url"]:-ms-input-placeholder,
@@ -111,8 +117,6 @@
& input[type="number"]:-ms-input-placeholder,
& input[type*="date"]:-ms-input-placeholder,
& input[type="email"]:-ms-input-placeholder,
& textarea::-moz-placeholder,
& textarea::-webkit-input-placeholder,
& textarea:-ms-input-placeholder {
color: var(--design-text-muted);
}
@@ -967,11 +971,15 @@
& .fieldset>.field .addon .addbefore::-moz-placeholder,
& .fieldset>.fields>.field .addon .addbefore::-moz-placeholder,
& .fieldset>.field .addon .addafter::-moz-placeholder,
& .fieldset>.fields>.field .addon .addafter::-moz-placeholder,
& .fieldset>.fields>.field .addon .addafter::-moz-placeholder {
color: var(--design-text-muted);
}
& .fieldset>.field .addon .addbefore::-webkit-input-placeholder,
& .fieldset>.fields>.field .addon .addbefore::-webkit-input-placeholder,
& .fieldset>.field .addon .addafter::-webkit-input-placeholder,
& .fieldset>.fields>.field .addon .addafter::-webkit-input-placeholder,
& .fieldset>.fields>.field .addon .addafter::-webkit-input-placeholder {
color: var(--design-text-muted);
}
& .fieldset>.field .addon .addbefore:-ms-input-placeholder,
& .fieldset>.fields>.field .addon .addbefore:-ms-input-placeholder,
& .fieldset>.field .addon .addafter:-ms-input-placeholder,
@@ -2891,13 +2899,21 @@
color: var(--design-text);
}
& .compare.wrapper .counter.qty,
& .block-search input::-webkit-input-placeholder,
& .block-search input:-moz-placeholder,
& .block-search input::-moz-placeholder,
& .block-search input:-ms-input-placeholder,
& .block-search .action.search:before {
color: var(--design-text-muted);
}
& .block-search input::-webkit-input-placeholder {
color: var(--design-text-muted);
}
& .block-search input:-moz-placeholder {
color: var(--design-text-muted);
}
& .block-search input::-moz-placeholder {
color: var(--design-text-muted);
}
& .block-search input:-ms-input-placeholder {
color: var(--design-text-muted);
}
& .block-search .action.search:hover:before {
color: var(--design-text);
}
@@ -2926,9 +2942,13 @@
border-color: var(--design-border-strong);
}
& .page-product-giftcard .product-add-form .field:not(.text) .addon .addbefore::-moz-placeholder,
& .page-product-giftcard .product-add-form .field:not(.text) .addon .addafter::-moz-placeholder,
& .page-product-giftcard .product-add-form .field:not(.text) .addon .addafter::-moz-placeholder {
color: var(--design-text-muted);
}
& .page-product-giftcard .product-add-form .field:not(.text) .addon .addbefore::-webkit-input-placeholder,
& .page-product-giftcard .product-add-form .field:not(.text) .addon .addafter::-webkit-input-placeholder,
& .page-product-giftcard .product-add-form .field:not(.text) .addon .addafter::-webkit-input-placeholder {
color: var(--design-text-muted);
}
& .page-product-giftcard .product-add-form .field:not(.text) .addon .addbefore:-ms-input-placeholder,
& .page-product-giftcard .product-add-form .field:not(.text) .addon .addafter:-ms-input-placeholder {
color: var(--design-text-muted);
@@ -550,8 +550,12 @@
-webkit-box-shadow: inset 0 1px 1px rgba(var(--design-text-rgb), 0.07), 0 0 8px rgba(var(--design-link-rgb), 0.6);
box-shadow: inset 0 1px 1px rgba(var(--design-text-rgb), 0.07), 0 0 8px rgba(var(--design-link-rgb), 0.6);
}
:where(html:not([data-design-app-theme="custom"])) .form-control::-moz-placeholder,
:where(html:not([data-design-app-theme="custom"])) .form-control:-ms-input-placeholder,
:where(html:not([data-design-app-theme="custom"])) .form-control::-moz-placeholder {
color: var(--design-text-muted);
}
:where(html:not([data-design-app-theme="custom"])) .form-control:-ms-input-placeholder {
color: var(--design-text-muted);
}
:where(html:not([data-design-app-theme="custom"])) .form-control::-webkit-input-placeholder {
color: var(--design-text-muted);
}
+25 -8
View File
@@ -267,7 +267,9 @@ caption {
background-color: var(--design-primary);
border-color: var(--design-primary);
}
.form-range:focus::-webkit-slider-thumb,
.form-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-primary);
}
.form-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-primary);
}
@@ -289,7 +291,9 @@ caption {
.form-range::-moz-range-track {
background-color: var(--secondary-bg);
}
.form-range:disabled::-webkit-slider-thumb,
.form-range:disabled::-webkit-slider-thumb {
background-color: var(--secondary-color);
}
.form-range:disabled::-moz-range-thumb {
background-color: var(--secondary-color);
}
@@ -3337,8 +3341,12 @@ select:-moz-focusring {
select:-moz-focusring > option {
color: var(--design-text);
}
::-webkit-input-placeholder,
::-moz-placeholder,
::-webkit-input-placeholder {
color: var(--design-text-muted);
}
::-moz-placeholder {
color: var(--design-text-muted);
}
:-ms-input-placeholder {
color: var(--design-text-muted);
}
@@ -3490,13 +3498,20 @@ select:-moz-focusring > option {
background-color: transparent;
background-image: none;
}
.custom-gradient-configurator input::-webkit-slider-thumb,
.custom-gradient-configurator input::-webkit-slider-thumb {
background-color: var(--design-text);
border-color: var(--design-text);
}
.custom-gradient-configurator input::-moz-range-thumb {
background-color: var(--design-text);
border-color: var(--design-text);
}
.custom-gradient-configurator input[type=range]:focus-visible::-webkit-slider-thumb,
.custom-gradient-configurator input[type=range]:focus-visible::-moz-range-thumb,
.custom-gradient-configurator input[type=range]:focus-visible::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--o-color-picker-bg, ) var(--design-surface-2), 0 0 0 3px var(--o-color-picker-active-color, ) var(--design-info);
}
.custom-gradient-configurator input[type=range]:focus-visible::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--o-color-picker-bg, ) var(--design-surface-2), 0 0 0 3px var(--o-color-picker-active-color, ) var(--design-info);
}
.custom-gradient-configurator input[type=range]:focus-visible::-ms-thumb {
box-shadow: 0 0 0 1px var(--o-color-picker-bg, ) var(--design-surface-2), 0 0 0 3px var(--o-color-picker-active-color, ) var(--design-info);
}
@@ -5216,7 +5231,9 @@ a.o-discuss-mention:disabled {
background-color: var(--design-primary-active);
color: var(--design-on-primary);
}
.o-Discuss-CallSettings-thresholdInput::-moz-range-track,
.o-Discuss-CallSettings-thresholdInput::-moz-range-track {
background: linear-gradient(to right, var(--design-success) 0%, var(--design-success) var(--volume), var(--secondary-bg) var(--volume), var(--secondary-bg) 100%);
}
.o-Discuss-CallSettings-thresholdInput::-webkit-slider-runnable-track {
background: linear-gradient(to right, var(--design-success) 0%, var(--design-success) var(--volume), var(--secondary-bg) var(--volume), var(--secondary-bg) 100%);
}
+9 -3
View File
@@ -311,7 +311,9 @@ body {
.form-range {
background-color: transparent;
}
.form-range:focus::-webkit-slider-thumb,
.form-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 0.25rem var(--design-link);
}
.form-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 0.25rem var(--design-link);
}
@@ -338,7 +340,9 @@ body {
border-color: transparent;
}
.form-range:disabled::-webkit-slider-thumb,
.form-range.o_wysiwyg_loader::-webkit-slider-thumb,
.form-range.o_wysiwyg_loader::-webkit-slider-thumb {
background-color: var(--design-surface-3);
}
.form-range:disabled::-moz-range-thumb,
.form-range.o_wysiwyg_loader::-moz-range-thumb {
background-color: var(--design-surface-3);
@@ -3161,7 +3165,9 @@ code.o_inline_code {
.list-group-item:not([class*="list-group-item-"]):not(.active) {
color: var(--design-text);
}
::-moz-selection,
::-moz-selection {
background-color: rgba(var(--design-info-border-rgb), 0.3);
}
::selection {
background-color: rgba(var(--design-info-border-rgb), 0.3);
}
+39 -15
View File
@@ -129,14 +129,16 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
}
.CodeMirror-selected,
.CodeMirror-focused .CodeMirror-selected,
.CodeMirror-line::-moz-selection,
.CodeMirror-line>span::-moz-selection,
.CodeMirror-line>span>span::-moz-selection,
.CodeMirror-line::selection,
.CodeMirror-line>span::selection,
.CodeMirror-line>span>span::selection {
background-color: var(--design-surface-active);
}
.CodeMirror-line::-moz-selection,
.CodeMirror-line>span::-moz-selection,
.CodeMirror-line>span>span::-moz-selection {
background-color: var(--design-surface-active);
}
.cm-searching {
background-color: var(--design-warning-border);
background-color: rgba(var(--design-warning-rgb), 0.4);
@@ -203,12 +205,18 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {
border-left-color: var(--design-border-strong);
}
.ember-power-select-placeholder,
.ember-power-select-trigger-multiple-input::-webkit-input-placeholder,
.ember-power-select-trigger-multiple-input::-moz-placeholder,
.ember-power-select-trigger-multiple-input::-ms-input-placeholder,
.ember-power-select-trigger-multiple-input::placeholder {
color: var(--design-text-muted);
}
.ember-power-select-trigger-multiple-input::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.ember-power-select-trigger-multiple-input::-moz-placeholder {
color: var(--design-text-muted);
}
.ember-power-select-trigger-multiple-input::-ms-input-placeholder {
color: var(--design-text-muted);
}
.ember-power-select-status-icon {
border-color: var(--design-border-strong) transparent transparent transparent;
}
@@ -998,18 +1006,28 @@ p.chart-subtext {
.message.is-success .message-title {
color: var(--design-success);
}
.progress,
.progress {
background-color: var(--design-surface-3);
-webkit-box-shadow: inset 0 0 0 1px var(--design-border);
box-shadow: inset 0 0 0 1px var(--design-border);
}
.progress[value]::-webkit-progress-bar {
background-color: var(--design-surface-3);
-webkit-box-shadow: inset 0 0 0 1px var(--design-border);
box-shadow: inset 0 0 0 1px var(--design-border);
}
.progress[value]::-webkit-progress-value,
.progress[value]::-webkit-progress-value {
background-color: var(--design-text);
}
.progress::-ms-fill {
background-color: var(--design-text);
}
.progress.is-info::-webkit-progress-value,
.progress.is-info::-moz-progress-bar,
.progress.is-info::-webkit-progress-value {
background-color: var(--design-primary);
}
.progress.is-info::-moz-progress-bar {
background-color: var(--design-primary);
}
.progress.is-info::-ms-fill {
background-color: var(--design-primary);
}
@@ -1017,8 +1035,12 @@ p.chart-subtext {
background-image: -webkit-gradient(linear,left top, right top,color-stop(30%, var(--design-primary)),color-stop(30%, var(--design-surface-3)));
background-image: linear-gradient(to right,var(--design-primary) 30%,var(--design-surface-3) 30%);
}
.progress.is-success::-webkit-progress-value,
.progress.is-success::-moz-progress-bar,
.progress.is-success::-webkit-progress-value {
background-color: var(--design-success);
}
.progress.is-success::-moz-progress-bar {
background-color: var(--design-success);
}
.progress.is-success::-ms-fill {
background-color: var(--design-success);
}
@@ -1317,14 +1339,16 @@ select.has-error-border,
}
.cm-s-hashi div.CodeMirror-selected,
.cm-s-hashi.CodeMirror-focused div.CodeMirror-selected,
.cm-s-hashi .CodeMirror-line::-moz-selection,
.cm-s-hashi .CodeMirror-line>span::-moz-selection,
.cm-s-hashi .CodeMirror-line>span>span::-moz-selection,
.cm-s-hashi .CodeMirror-line::selection,
.cm-s-hashi .CodeMirror-line>span::selection,
.cm-s-hashi .CodeMirror-line>span>span::selection {
background-color: var(--design-surface-active);
}
.cm-s-hashi .CodeMirror-line::-moz-selection,
.cm-s-hashi .CodeMirror-line>span::-moz-selection,
.cm-s-hashi .CodeMirror-line>span>span::-moz-selection {
background-color: var(--design-surface-active);
}
.cm-s-hashi span.cm-string,
.cm-s-hashi span.cm-string-2 {
color: var(--design-success);
+99 -33
View File
@@ -65,9 +65,13 @@
box-shadow: 0 0 0 .2rem rgba(var(--design-success-rgb), 0.25);
}
& .custom-range.is-valid:focus::-webkit-slider-thumb,
& .was-validated .custom-range:valid:focus::-webkit-slider-thumb,
& .was-validated .custom-range:valid:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem var(--design-success);
}
& .custom-range.is-valid:focus::-moz-range-thumb,
& .was-validated .custom-range:valid:focus::-moz-range-thumb,
& .was-validated .custom-range:valid:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem var(--design-success);
}
& .custom-range.is-valid:focus::-ms-thumb,
& .was-validated .custom-range:valid:focus::-ms-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem var(--design-success);
@@ -105,7 +109,9 @@
background-color: var(--design-success-border);
}
& .custom-range.is-valid::-ms-track-lower,
& .was-validated .custom-range:valid::-ms-track-lower,
& .was-validated .custom-range:valid::-ms-track-lower {
background-color: rgba(var(--design-success-rgb), 0.35);
}
& .custom-range.is-valid::-ms-track-upper,
& .was-validated .custom-range:valid::-ms-track-upper {
background-color: rgba(var(--design-success-rgb), 0.35);
@@ -120,9 +126,13 @@
box-shadow: 0 0 0 .2rem rgba(var(--design-danger-rgb), 0.25);
}
& .custom-range.is-invalid:focus::-webkit-slider-thumb,
& .was-validated .custom-range:invalid:focus::-webkit-slider-thumb,
& .was-validated .custom-range:invalid:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem var(--design-danger);
}
& .custom-range.is-invalid:focus::-moz-range-thumb,
& .was-validated .custom-range:invalid:focus::-moz-range-thumb,
& .was-validated .custom-range:invalid:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem var(--design-danger);
}
& .custom-range.is-invalid:focus::-ms-thumb,
& .was-validated .custom-range:invalid:focus::-ms-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem var(--design-danger);
@@ -160,7 +170,9 @@
background-color: var(--design-danger-border);
}
& .custom-range.is-invalid::-ms-track-lower,
& .was-validated .custom-range:invalid::-ms-track-lower,
& .was-validated .custom-range:invalid::-ms-track-lower {
background-color: rgba(var(--design-danger-rgb), 0.35);
}
& .custom-range.is-invalid::-ms-track-upper,
& .was-validated .custom-range:invalid::-ms-track-upper {
background-color: rgba(var(--design-danger-rgb), 0.35);
@@ -1099,7 +1111,9 @@
box-shadow: 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
color: var(--design-text-muted);
}
& .form-control::-moz-placeholder,
& .form-control::-moz-placeholder {
color: var(--design-text-muted);
}
& .form-control::placeholder {
color: var(--design-text-muted);
}
@@ -1946,8 +1960,12 @@
& .custom-range {
background-color: transparent;
}
& .custom-range:focus::-webkit-slider-thumb,
& .custom-range:focus::-moz-range-thumb,
& .custom-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
& .custom-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
& .custom-range:focus::-ms-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
@@ -1978,12 +1996,18 @@
& .custom-range::-ms-track {
background-color: transparent;
}
& .custom-range::-ms-fill-lower,
& .custom-range::-ms-fill-lower {
background-color: var(--design-surface-active);
}
& .custom-range::-ms-fill-upper {
background-color: var(--design-surface-active);
}
& .custom-range:disabled::-webkit-slider-thumb,
& .custom-range:disabled::-moz-range-thumb,
& .custom-range:disabled::-webkit-slider-thumb {
background-color: var(--design-border-strong);
}
& .custom-range:disabled::-moz-range-thumb {
background-color: var(--design-border-strong);
}
& .custom-range:disabled::-ms-thumb {
background-color: var(--design-border-strong);
}
@@ -2968,7 +2992,9 @@
background-color: var(--design-surface-2);
box-shadow: var(--design-shadow-2);
}
& .input-elevated::-moz-placeholder,
& .input-elevated::-moz-placeholder {
color: var(--design-text-muted);
}
& .input-elevated::placeholder,
& .timeline-sidenav.nav-pills .nav-link {
color: var(--design-text-muted);
@@ -3583,7 +3609,9 @@
box-shadow: 0 3px 9px transparent, 3px 4px 8px rgba(var(--design-link-rgb), 0.1);
color: var(--design-text-muted);
}
& .form-control::-moz-placeholder,
& .form-control::-moz-placeholder {
color: var(--design-text-muted);
}
& .form-control::placeholder {
color: var(--design-text-muted);
}
@@ -4618,8 +4646,12 @@
& .custom-range {
background-color: transparent;
}
& .custom-range:focus::-webkit-slider-thumb,
& .custom-range:focus::-moz-range-thumb,
& .custom-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 3px 9px transparent, 3px 4px 8px rgba(var(--design-link-rgb), 0.1);
}
& .custom-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 3px 9px transparent, 3px 4px 8px rgba(var(--design-link-rgb), 0.1);
}
& .custom-range:focus::-ms-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 3px 9px transparent, 3px 4px 8px rgba(var(--design-link-rgb), 0.1);
}
@@ -4656,12 +4688,18 @@
background-color: transparent;
box-shadow: inset 0 .25rem .25rem rgba(var(--design-text-rgb), 0.1);
}
& .custom-range::-ms-fill-lower,
& .custom-range::-ms-fill-lower {
background-color: var(--design-surface-active);
}
& .custom-range::-ms-fill-upper {
background-color: var(--design-surface-active);
}
& .custom-range:disabled::-webkit-slider-thumb,
& .custom-range:disabled::-moz-range-thumb,
& .custom-range:disabled::-webkit-slider-thumb {
background-color: var(--design-border-strong);
}
& .custom-range:disabled::-moz-range-thumb {
background-color: var(--design-border-strong);
}
& .custom-range:disabled::-ms-thumb {
background-color: var(--design-border-strong);
}
@@ -6409,10 +6447,12 @@
color: var(--design-on-primary);
}
& .form-control-label,
& .form-control:focus::-moz-placeholder,
& .form-control:focus::placeholder {
color: var(--design-text-muted);
}
& .form-control:focus::-moz-placeholder {
color: var(--design-text-muted);
}
& .form-control-flush {
background-color: transparent;
box-shadow: none;
@@ -6477,7 +6517,9 @@
& .has-success .form-control {
background-color: var(--design-surface-2);
}
& .has-success .form-control::-moz-placeholder,
& .has-success .form-control::-moz-placeholder {
color: var(--design-success);
}
& .has-success .form-control::placeholder {
color: var(--design-success);
}
@@ -6488,7 +6530,9 @@
& .has-danger .form-control {
background-color: var(--design-surface-2);
}
& .has-danger .form-control::-moz-placeholder,
& .has-danger .form-control::-moz-placeholder {
color: var(--design-danger);
}
& .has-danger .form-control::placeholder {
color: var(--design-danger);
}
@@ -6865,7 +6909,9 @@
& .navbar-search-dark .form-control {
color: rgba(var(--design-on-primary-rgb), 0.9);
}
& .navbar-search-dark .form-control::-moz-placeholder,
& .navbar-search-dark .form-control::-moz-placeholder {
color: rgba(var(--design-on-primary-rgb), 0.6);
}
& .navbar-search-dark .form-control::placeholder {
color: rgba(var(--design-on-primary-rgb), 0.6);
}
@@ -6883,7 +6929,9 @@
& .navbar-search-light .form-control {
color: rgba(var(--design-text-rgb), 0.9);
}
& .navbar-search-light .form-control::-moz-placeholder,
& .navbar-search-light .form-control::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.6);
}
& .navbar-search-light .form-control::placeholder {
color: rgba(var(--design-text-rgb), 0.6);
}
@@ -8023,7 +8071,9 @@
background-color: var(--design-surface-2);
color: var(--design-text-muted);
}
& .bootstrap-tagsinput input::-moz-placeholder,
& .bootstrap-tagsinput input::-moz-placeholder {
color: var(--design-text-muted);
}
& .bootstrap-tagsinput input::placeholder {
color: var(--design-text-muted);
}
@@ -8404,7 +8454,9 @@
& .select2-container .select2-selection--single::-moz-placeholder,
& .select2-container--default .select2-search--dropdown .select2-search__field::-moz-placeholder,
& .select2-container--default .select2-selection--multiple::-moz-placeholder,
& .select2-container--default.select2-container--focus .select2-selection--multiple::-moz-placeholder,
& .select2-container--default.select2-container--focus .select2-selection--multiple::-moz-placeholder {
color: var(--design-text-muted);
}
& .select2-container .select2-selection--single::placeholder,
& .select2-container--default .select2-search--dropdown .select2-search__field::placeholder,
& .select2-container--default .select2-selection--multiple::placeholder,
@@ -8909,7 +8961,9 @@
box-shadow: 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
color: var(--design-text-muted);
}
& .form-control::-moz-placeholder,
& .form-control::-moz-placeholder {
color: var(--design-text-muted);
}
& .form-control::placeholder {
color: var(--design-text-muted);
}
@@ -9742,8 +9796,12 @@
& .custom-range {
background-color: transparent;
}
& .custom-range:focus::-webkit-slider-thumb,
& .custom-range:focus::-moz-range-thumb,
& .custom-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
& .custom-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
& .custom-range:focus::-ms-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
@@ -9774,12 +9832,18 @@
& .custom-range::-ms-track {
background-color: transparent;
}
& .custom-range::-ms-fill-lower,
& .custom-range::-ms-fill-lower {
background-color: var(--design-surface-active);
}
& .custom-range::-ms-fill-upper {
background-color: var(--design-surface-active);
}
& .custom-range:disabled::-webkit-slider-thumb,
& .custom-range:disabled::-moz-range-thumb,
& .custom-range:disabled::-webkit-slider-thumb {
background-color: var(--design-border-strong);
}
& .custom-range:disabled::-moz-range-thumb {
background-color: var(--design-border-strong);
}
& .custom-range:disabled::-ms-thumb {
background-color: var(--design-border-strong);
}
@@ -10764,7 +10828,9 @@
background-color: var(--design-surface-2);
box-shadow: var(--design-shadow-2);
}
& .input-elevated::-moz-placeholder,
& .input-elevated::-moz-placeholder {
color: var(--design-text-muted);
}
& .input-elevated::placeholder,
& .timeline-sidenav.nav-pills .nav-link {
color: var(--design-text-muted);
@@ -261,7 +261,9 @@ body {
background-color: var(--design-primary);
border-color: var(--design-primary);
}
.form-range:focus::-webkit-slider-thumb,
.form-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 0.125rem var(--design-surface-2), 0 0 0 0.25rem var(--design-link);
}
.form-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 0.125rem var(--design-surface-2), 0 0 0 0.25rem var(--design-link);
}
@@ -283,7 +285,9 @@ body {
.form-range::-moz-range-track {
background-color: var(--bs-secondary-bg);
}
.form-range:disabled::-webkit-slider-thumb,
.form-range:disabled::-webkit-slider-thumb {
background-color: var(--bs-secondary-color);
}
.form-range:disabled::-moz-range-thumb {
background-color: var(--bs-secondary-color);
}
@@ -1083,7 +1083,9 @@ body[class*="task-"] .form-control.is-invalid:focus {
body[class*="task-"] .form-control::placeholder {
color: var(--design-text-muted);
}
body[class*="task-"] .form-control::-ms-input-placeholder,
body[class*="task-"] .form-control::-ms-input-placeholder {
color: var(--design-text-muted);
}
body[class*="task-"] .form-control::-webkit-input-placeholder {
color: var(--design-text-muted);
}
@@ -1954,10 +1956,12 @@ html.dark-mode body[class*="task-"] .file-upload .hint,
html.dark-mode body[class*="task-"] .formcontent .hint,
html.dark-mode body[class*="task-"] .listing span.secondary,
html.dark-mode body[class*="task-"] .listing-info,
html.dark-mode body[class*="task-"] ::-webkit-input-placeholder,
html.dark-mode body[class*="task-"] ::placeholder {
color: var(--design-text-muted);
}
html.dark-mode body[class*="task-"] ::-webkit-input-placeholder {
color: var(--design-text-muted);
}
html.dark-mode body[class*="task-"] .popover {
background-color: var(--design-surface-2);
border-color: var(--design-border-strong);
+30 -10
View File
@@ -1046,8 +1046,12 @@
:root:has(app-root) .custom-range {
background-color: transparent;
}
:root:has(app-root) .custom-range:focus::-webkit-slider-thumb,
:root:has(app-root) .custom-range:focus::-moz-range-thumb,
:root:has(app-root) .custom-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
:root:has(app-root) .custom-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
:root:has(app-root) .custom-range:focus::-ms-thumb {
box-shadow: 0 0 0 1px var(--design-surface-2), 0 0 0 .2rem rgba(var(--design-link-rgb), 0.25);
}
@@ -1078,12 +1082,18 @@
:root:has(app-root) .custom-range::-ms-track {
background-color: transparent;
}
:root:has(app-root) .custom-range::-ms-fill-lower,
:root:has(app-root) .custom-range::-ms-fill-lower {
background-color: var(--design-surface-active);
}
:root:has(app-root) .custom-range::-ms-fill-upper {
background-color: var(--design-surface-active);
}
:root:has(app-root) .custom-range:disabled::-webkit-slider-thumb,
:root:has(app-root) .custom-range:disabled::-moz-range-thumb,
:root:has(app-root) .custom-range:disabled::-webkit-slider-thumb {
background-color: var(--design-border-strong);
}
:root:has(app-root) .custom-range:disabled::-moz-range-thumb {
background-color: var(--design-border-strong);
}
:root:has(app-root) .custom-range:disabled::-ms-thumb {
background-color: var(--design-border-strong);
}
@@ -4007,7 +4017,9 @@
background-color: var(--design-surface-3);
color: var(--design-text);
}
:root:has(app-root) .modal-backdrop,
:root:has(app-root) .modal-backdrop {
background-color: var(--design-surface-3);
}
:root:has(app-root) .modal-body::-webkit-scrollbar-track {
background-color: var(--design-surface-3);
}
@@ -5114,10 +5126,18 @@
:root:has(app-root) .p-input-icon-left>.p-icon-wrapper.p-icon,
:root:has(app-root) .p-input-icon-left>i:first-of-type,
:root:has(app-root) .p-input-icon-right>.p-icon-wrapper,
:root:has(app-root) .p-input-icon-right>i:last-of-type,
:root:has(app-root) ::-webkit-input-placeholder,
:root:has(app-root) :-moz-placeholder,
:root:has(app-root) ::-moz-placeholder,
:root:has(app-root) .p-input-icon-right>i:last-of-type {
color: var(--design-text-muted);
}
:root:has(app-root) ::-webkit-input-placeholder {
color: var(--design-text-muted);
}
:root:has(app-root) :-moz-placeholder {
color: var(--design-text-muted);
}
:root:has(app-root) ::-moz-placeholder {
color: var(--design-text-muted);
}
:root:has(app-root) :-ms-input-placeholder {
color: var(--design-text-muted);
}
+18 -5
View File
@@ -2,7 +2,10 @@ mark {
background-color: var(--design-warning);
color: var(--design-on-warning);
}
::selection,
::selection {
background-color: var(--design-surface-active);
color: var(--design-text);
}
::-moz-selection {
background-color: var(--design-surface-active);
color: var(--design-text);
@@ -648,8 +651,12 @@ output {
-webkit-box-shadow: inset 0 1px 1px rgba(var(--design-text-rgb), 0.07), 0 0 8px rgba(var(--design-link-rgb), 0.6);
box-shadow: inset 0 1px 1px rgba(var(--design-text-rgb), 0.07), 0 0 8px rgba(var(--design-link-rgb), 0.6);
}
.form-control::-moz-placeholder,
.form-control:-ms-input-placeholder,
.form-control::-moz-placeholder {
color: var(--design-text-muted);
}
.form-control:-ms-input-placeholder {
color: var(--design-text-muted);
}
.form-control::-webkit-input-placeholder {
color: var(--design-text-muted);
}
@@ -2185,7 +2192,10 @@ hr {
.bootstrap-container .dropdown-menu em a {
color: var(--design-link);
}
::selection,
::selection {
background-color: var(--design-surface-active);
color: var(--design-text);
}
::-moz-selection {
background-color: var(--design-surface-active);
color: var(--design-text);
@@ -2331,7 +2341,10 @@ a.buttontoggle:hover,
footer {
background-color: var(--design-surface-active);
}
.navbar .query_string::selection,
.navbar .query_string::selection {
background-color: var(--design-surface-active) !important;
color: var(--design-text) !important;
}
.navbar .query_string::-moz-selection {
background-color: var(--design-surface-active) !important;
color: var(--design-text) !important;
+3 -1
View File
@@ -337,7 +337,9 @@ div.master input[type="search"]::-webkit-input-placeholder,
div.master input[type="text"]::-webkit-input-placeholder,
div.master input[type="url"]::-webkit-input-placeholder,
div.master select::-webkit-input-placeholder,
div.master textarea::-webkit-input-placeholder,
div.master textarea::-webkit-input-placeholder {
color: rgba(var(--design-primary-800-rgb), 0.62);
}
input.ng-empty::placeholder,
.ng-empty::placeholder {
color: rgba(var(--design-primary-800-rgb), 0.62);
+3 -1
View File
@@ -1099,7 +1099,9 @@ textarea.readonly,
textarea[readonly] {
background-color: var(--design-surface-3);
}
::-webkit-input-placeholder,
::-webkit-input-placeholder {
color: var(--design-text-muted);
}
::-moz-placeholder {
color: var(--design-text-muted);
}
+48 -16
View File
@@ -227,7 +227,9 @@
.components-checkbox-control__input[type=checkbox] {
border-color: var(--design-border-strong);
}
.components-checkbox-control__input[type=checkbox]::-moz-placeholder,
.components-checkbox-control__input[type=checkbox]::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.components-checkbox-control__input[type=checkbox]::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -297,7 +299,9 @@ input.components-combobox-control__input[type=text] {
border-color: var(--wp-components-color-accent,var(--wp-admin-theme-color,var(--design-link)));
box-shadow: 0 0 0 .5px var(--wp-components-color-accent, var(--wp-admin-theme-color, var(--design-link)) );
}
.components-combobox-control__suggestions-container::-moz-placeholder,
.components-combobox-control__suggestions-container::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.components-combobox-control__suggestions-container::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -441,7 +445,9 @@ input.components-combobox-control__input[type=text] {
border-color: var(--wp-components-color-accent,var(--wp-admin-theme-color,var(--design-link)));
box-shadow: 0 0 0 .5px var(--wp-components-color-accent, var(--wp-admin-theme-color, var(--design-link)) );
}
.components-form-token-field__input-container::-moz-placeholder,
.components-form-token-field__input-container::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.components-form-token-field__input-container::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -650,7 +656,9 @@ input.components-combobox-control__input[type=text] {
.components-radio-control__input[type=radio] {
border-color: var(--design-border-strong);
}
.components-placeholder__input[type=url]::-moz-placeholder,
.components-placeholder__input[type=url]::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.components-placeholder__input[type=url]::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -818,7 +826,9 @@ input.components-combobox-control__input[type=text] {
.components-text-control__input[type=text]::-moz-placeholder,
.components-text-control__input[type=time]::-moz-placeholder,
.components-text-control__input[type=url]::-moz-placeholder,
.components-text-control__input[type=week]::-moz-placeholder,
.components-text-control__input[type=week]::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.components-text-control__input::placeholder,
.components-text-control__input[type=color]::placeholder,
.components-text-control__input[type=date]::placeholder,
@@ -864,7 +874,9 @@ input.components-combobox-control__input[type=text] {
.components-text-control__input[type=text]::-moz-placeholder,
.components-text-control__input[type=time]::-moz-placeholder,
.components-text-control__input[type=url]::-moz-placeholder,
.components-text-control__input[type=week]::-moz-placeholder,
.components-text-control__input[type=week]::-moz-placeholder {
color: color-mix(in srgb,var(--wp-components-color-foreground,var(--wpds-color-foreground-content-neutral,var(--design-text))),transparent 38%);
}
.components-text-control__input::placeholder,
.components-text-control__input[type=color]::placeholder,
.components-text-control__input[type=date]::placeholder,
@@ -1436,14 +1448,18 @@ div.components-toolbar>div+div.has-left-divider:before {
border-color: var(--wp-admin-theme-color,var(--design-link));
box-shadow: 0 0 0 .5px var(--wp-admin-theme-color, var(--design-link));
}
.block-editor-content-only-controls__rich-text::-moz-placeholder,
.block-editor-content-only-controls__rich-text::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.block-editor-content-only-controls__rich-text::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.block-editor-content-only-controls__rich-text {
border-color: var(--design-border);
}
.block-editor-content-only-controls__rich-text::-moz-placeholder,
.block-editor-content-only-controls__rich-text::-moz-placeholder {
color: color-mix(in srgb,var(--design-text),transparent 38%);
}
.block-editor-content-only-controls__rich-text::placeholder {
color: color-mix(in srgb,var(--design-text),transparent 38%);
}
@@ -1948,7 +1964,9 @@ button.font-library__upload-area {
border-color: var(--wp-admin-theme-color);
box-shadow: 0 0 0 .5px var(--wp-admin-theme-color);
}
.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-multi-selection::-moz-placeholder,
.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-multi-selection::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-multi-selection::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -1983,7 +2001,9 @@ button.font-library__upload-area {
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input {
border-color: var(--design-border-strong);
}
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder,
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -1991,7 +2011,9 @@ button.font-library__upload-area {
background-color: var(--design-surface-2);
box-shadow: inset 0 0 0 var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) var(--wpds-color-stroke-focus, var(--wp-admin-theme-color, var(--design-link)) );
}
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder,
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder {
color: var(--wpds-color-foreground-content-neutral-weak,var(--design-text-muted));
}
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::placeholder {
color: var(--wpds-color-foreground-content-neutral-weak,var(--design-text-muted));
}
@@ -2782,7 +2804,9 @@ fieldset.fields__media-edit .fields__media-edit-expanded .fields__media-edit-exp
textarea.editor-post-text-editor {
border-color: var(--design-border-strong);
}
textarea.editor-post-text-editor::-moz-placeholder,
textarea.editor-post-text-editor::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
textarea.editor-post-text-editor::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -3163,7 +3187,9 @@ body.js.block-editor-page ul#adminmenu>li.current>a.current:after {
.commands-command-menu__container [cmdk-input] {
color: var(--design-text);
}
.commands-command-menu__container [cmdk-input]::-moz-placeholder,
.commands-command-menu__container [cmdk-input]::-moz-placeholder {
color: var(--design-text-muted);
}
.commands-command-menu__container [cmdk-input]::placeholder {
color: var(--design-text-muted);
}
@@ -3464,7 +3490,9 @@ body.js.block-editor-page ul#adminmenu>li.current>a.current:after {
border-color: var(--wp-admin-theme-color);
box-shadow: 0 0 0 .5px var(--wp-admin-theme-color);
}
.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-multi-selection::-moz-placeholder,
.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-multi-selection::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.dataviews-filters__search-widget-listitem .dataviews-filters__search-widget-listitem-multi-selection::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -3502,7 +3530,9 @@ body.js.block-editor-page ul#adminmenu>li.current>a.current:after {
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input:focus {
box-shadow: 0 0 0 .5px var(--wp-admin-theme-color);
}
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder,
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::placeholder {
color: rgba(var(--design-text-rgb), 0.62);
}
@@ -3510,7 +3540,9 @@ body.js.block-editor-page ul#adminmenu>li.current>a.current:after {
background-color: var(--design-surface-2);
box-shadow: inset 0 0 0 var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) var(--wpds-color-stroke-focus, var(--wp-admin-theme-color, var(--design-link)) );
}
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder,
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::-moz-placeholder {
color: var(--wpds-color-foreground-content-neutral-weak,var(--design-text-muted));
}
.dataviews-filters__search-widget-filter-combobox__wrapper .dataviews-filters__search-widget-filter-combobox__input::placeholder {
color: var(--wpds-color-foreground-content-neutral-weak,var(--design-text-muted));
}
+6 -2
View File
@@ -76,7 +76,9 @@
border-color: var(--design-border-strong);
color: var(--design-text-muted);
}
.media-frame ::-webkit-input-placeholder,
.media-frame ::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.media-frame ::-moz-placeholder {
color: var(--design-text-muted);
}
@@ -988,7 +990,9 @@ div.wp-link-preview a.wplink-url-error {
.wp-picker-container .iris-picker {
border-color: var(--design-border);
}
.wp-color-picker::-webkit-input-placeholder,
.wp-color-picker::-webkit-input-placeholder {
color: var(--design-text-muted);
}
.wp-color-picker::-moz-placeholder {
color: var(--design-text-muted);
}
+3 -1
View File
@@ -165,7 +165,9 @@ textarea.readonly,
textarea[readonly] {
background-color: var(--design-surface-3);
}
::-webkit-input-placeholder,
::-webkit-input-placeholder {
color: var(--design-text-muted);
}
::-moz-placeholder {
color: var(--design-text-muted);
}
@@ -0,0 +1,120 @@
"""Forbid selector lists that mix a vendor-prefixed pseudo with other selectors.
A browser drops a whole rule when one selector of its list is invalid, and
every engine treats the other engines' prefixed pseudos (``::-moz-selection``,
``:-ms-input-placeholder``, ``::-webkit-input-placeholder``) as invalid. A list
such as ``.CodeMirror-selected, ::-moz-selection { ... }`` therefore never
applies in Chromium. Each vendor-prefixed pseudo needs its own rule, which is
what ``gen_css.py`` emits since it keys merged rules by that pseudo.
Scans role stylesheets: ``*.css`` and ``*.css.j2`` under ``roles/``.
"""
from __future__ import annotations
import re
import unittest
from pathlib import Path
from utils.cache.files import iter_project_files, read_text
from . import PROJECT_ROOT
_VENDOR_PSEUDO = re.compile(r"::?-(?:webkit|moz|ms|o)-[\w-]+")
_JINJA = re.compile(r"\{\{.*?\}\}|\{%.*?%\}|\{#.*?#\}", re.DOTALL)
_COMMENT = re.compile(r"/\*.*?\*/", re.DOTALL)
_PRELUDE = re.compile(r"([^{};]+)\{")
def _mask(text: str) -> str:
"""Replace Jinja tags and CSS comments with spaces of the same length.
Args:
text: Stylesheet source.
Returns:
The text with every Jinja tag and comment blanked, offsets unchanged.
"""
for pattern in (_JINJA, _COMMENT):
text = pattern.sub(lambda m: " " * len(m.group(0)), text)
return text
def _split_selectors(prelude: str) -> list[str]:
"""Split a selector list at top-level commas.
Args:
prelude: The text before a rule's ``{``.
Returns:
The stripped selectors, commas inside parentheses kept.
"""
parts, depth, start = [], 0, 0
for index, char in enumerate(prelude):
if char == "(":
depth += 1
elif char == ")":
depth -= 1
elif char == "," and depth == 0:
parts.append(prelude[start:index])
start = index + 1
parts.append(prelude[start:])
return [part.strip() for part in parts if part.strip()]
def mixed_vendor_lists(text: str) -> list[tuple[int, str]]:
"""Find selector lists that mix vendor pseudo keys.
Args:
text: Stylesheet source, Jinja allowed.
Returns:
``(offset, prelude)`` for every rule whose selectors carry more than
one distinct vendor-pseudo key, where no vendor pseudo is its own key.
"""
found = []
for match in _PRELUDE.finditer(_mask(text)):
prelude = match.group(1)
if prelude.strip().startswith("@"):
continue
keys = {
tuple(sorted(set(_VENDOR_PSEUDO.findall(selector))))
for selector in _split_selectors(prelude)
}
if len(keys) > 1:
offset = match.start(1) + len(prelude) - len(prelude.lstrip())
found.append((offset, prelude.strip()))
return found
class TestCssVendorPseudoLists(unittest.TestCase):
def test_no_mixed_vendor_pseudo_selector_lists(self) -> None:
offenders: list[str] = []
for path_str in iter_project_files(extensions=(".css", ".css.j2")):
rel = Path(path_str).relative_to(PROJECT_ROOT).as_posix()
if not rel.startswith("roles/"):
continue
text = read_text(path_str)
for offset, prelude in mixed_vendor_lists(text):
lineno = text.count("\n", 0, offset) + 1
offenders.append(f"{rel}:{lineno}: {prelude[:120]}")
if offenders:
self.fail(
f"{len(offenders)} selector list(s) mix a vendor-prefixed pseudo "
"with other selectors, so browsers drop the whole rule. Give "
"each vendor-prefixed pseudo its own rule.\n" + "\n".join(offenders)
)
def test_detects_a_mixed_list_and_accepts_split_rules(self) -> None:
mixed = ".a, ::-moz-selection { color: red; }"
split = ".a { color: red; }\n::-moz-selection { color: red; }"
same_vendor = "a::-moz-selection, b::-moz-selection { color: {{ c }}; }"
self.assertEqual(len(mixed_vendor_lists(mixed)), 1)
self.assertEqual(mixed_vendor_lists(split), [])
self.assertEqual(mixed_vendor_lists(same_vendor), [])
self.assertEqual(mixed_vendor_lists(":is(.a, ::-moz-x) { x: y; }"), [])
if __name__ == "__main__":
unittest.main()