Skip to content

Commit

Permalink
feat(core): ✨ use filter-invert CSS variable to flip color
Browse files Browse the repository at this point in the history
This decouple the filter style from the  class.
Instead, filter-invert can be redefined if needed (e.g. :root.skin-citizen-dark)
  • Loading branch information
alistair3149 committed Jul 10, 2023
1 parent 9c59d24 commit 2bf2039
Show file tree
Hide file tree
Showing 34 changed files with 128 additions and 245 deletions.
6 changes: 4 additions & 2 deletions resources/skins.citizen.styles/common/common.less
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,10 @@ td {
font-size: 0.875rem;
}

.mw-indicator {
filter: var( --filter-invert );
}

video {
max-width: 100%; // Prevent overflow
}
Expand All @@ -117,8 +121,6 @@ video {
color-scheme: dark;

.mw-indicator {
filter: invert( 1 ) hue-rotate( 180deg );

// Have to hardcode the color since the filter breaks the color
a {
color: @color-primary;
Expand Down
2 changes: 2 additions & 0 deletions resources/skins.citizen.styles/common/theme.less
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,8 @@ a {
--surface-shadow: var( --color-primary__h ), 50%, 3%;
--shadow-strength: 0.8;

--filter-invert: invert( 1 ) hue-rotate( 180deg );

// FIXME: Browsers seem to treat GRAD differently, disabling for now
// Dark theme usually have an illusion of thicker fonts
// So we have to tune it back
Expand Down
9 changes: 1 addition & 8 deletions resources/skins.citizen.styles/components/Header.less
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
width: var( --header-icon-size );
height: var( --header-icon-size );
contain: strict;
filter: var( --filter-invert );
}

&Icon,
Expand Down Expand Up @@ -127,14 +128,6 @@
}
}

.skin-citizen-dark {
.citizen-header__button {
&Icon {
filter: invert( 1 );
}
}
}

// Notifications
#p-notifications {
ul {
Expand Down
11 changes: 3 additions & 8 deletions resources/skins.citizen.styles/components/Menu.less
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
background-repeat: no-repeat;
background-size: contain;
content: '';
filter: var( --filter-invert );
opacity: var( --opacity-icon-base );
}
}
Expand Down Expand Up @@ -113,14 +114,8 @@
&-empty {
display: none !important;
}
}

.skin-citizen-dark {
.citizen-ui-icon::before {
filter: invert( 1 );
}

.mw-portlet a::after {
filter: invert( 1 );
a::after {
filter: var( --filter-invert );
}
}
6 changes: 0 additions & 6 deletions resources/skins.citizen.styles/components/Pagetools.less
Original file line number Diff line number Diff line change
Expand Up @@ -224,12 +224,6 @@
}
}

.skin-citizen-dark {
#ca-ve-edit > a::before {
filter: invert( 1 );
}
}

// Checkbox hack
#page-actions-more,
#citizen-languages {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
width: 0.875rem;
height: 0.875rem;
content: '';
filter: var( --filter-invert );
opacity: var( --opacity-icon-base );
}

Expand Down Expand Up @@ -125,12 +126,6 @@
}
}

.skin-citizen-dark {
.citizen-toc__top::before {
filter: invert( 1 );
}
}

// Move down when site header is hidden
@media ( max-width: ( @width-breakpoint-tablet ) ) {
.citizen-toc {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@
border-radius: var( --border-radius--small );
font-size: 0.875rem;

&::before {
filter: var( --filter-invert );
}

&:hover {
background-color: var( --background-color-quiet--hover );
}
Expand Down Expand Up @@ -75,10 +79,3 @@
/* @noflip */
margin-left: 0;
}

.skin-citizen-dark {
// Flip icon for dark mode
.mw-editsection > a::before {
filter: invert( 1 );
}
}
11 changes: 4 additions & 7 deletions skinStyles/extensions/Cargo/ext.cargo.main.less
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,10 @@ div.cargoReplacementTableInfo {
background-color: transparent;
}

/* Flip icons in dark mode */
.skin-citizen-dark {
.cargoQueryTooltipIcon,
.addButton,
.deleteButton {
filter: invert( 1 ) hue-rotate( 180deg );
}
.cargoQueryTooltipIcon,
.addButton,
.deleteButton {
filter: var( --filter-invert );
}

div.specialCargoQuery-extraPane {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,10 +68,7 @@
background-repeat: no-repeat;
background-size: 1.125rem;
content: '';

.skin-citizen-dark & {
filter: invert( 1 );
}
filter: var( --filter-invert );
}

&[ data-mw-subscribed='1' ]::before {
Expand Down
18 changes: 3 additions & 15 deletions skinStyles/extensions/Echo/ext.echo.styles.badge.less
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
background-position: center;
background-repeat: no-repeat;
background-size: var( --header-icon-size );
filter: var( --filter-invert );
opacity: var( --opacity-icon-base );

&:hover {
Expand All @@ -44,6 +45,8 @@
border-color: var( --color-destructive );
border-radius: var( --border-radius--pill );
background-color: var( --color-destructive );
// Re-invert indicator color
filter: var( --filter-invert );
font-size: 0.65rem;
}

Expand Down Expand Up @@ -90,18 +93,3 @@
background-color: var( --background-color-quiet--active );
}
}

// Dark mode icon
.skin-citizen-dark {
#pt-notifications-alert,
#pt-notifications-notice {
.mw-echo-notifications-badge {
filter: invert( 1 ) hue-rotate( 180deg );

// Re-invert indicator color
&::after {
filter: invert( 1 ) hue-rotate( 180deg );
}
}
}
}
7 changes: 2 additions & 5 deletions skinStyles/extensions/Graph/ext.graph.styles.less
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,9 @@
overflow: auto;
min-width: auto !important;
max-width: 100%;
}

/* dark mode */
&-dark {
.mw-graph canvas {
filter: invert( 1 ) hue-rotate( 180deg );
canvas {
filter: var( --filter-invert );
}
}
}
Expand Down
8 changes: 3 additions & 5 deletions skinStyles/extensions/Lingo/ext.Lingo.less
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,8 @@
}
}

.skin-citizen-dark {
.mw-lingo-definition-link {
& > a::before {
filter: invert( 1 );
}
.mw-lingo-definition-link {
& > a::before {
filter: var( --filter-invert );
}
}
16 changes: 6 additions & 10 deletions skinStyles/extensions/MsUpload/ext.MsUpload.less
Original file line number Diff line number Diff line change
Expand Up @@ -112,18 +112,14 @@
&-bottom #msupload-files {
background-image: url( data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3E upload %3C/title%3E%3Cpath d='M17 12v5H3v-5H1v5a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-5z'/%3E%3Cpath d='M10 1 5 7h4v8h2V7h4z'/%3E%3C/svg%3E%0A );
}

&-container.start-loading,
&-select,
&-bottom #msupload-files {
filter: var( --filter-invert );
}
}

.drop-over {
background-color: var( --background-color-success );
}

.skin-citizen-dark {
#msupload {
&-container.start-loading,
&-select,
&-bottom #msupload-files {
filter: invert( 1 ) hue-rotate( 180deg );
}
}
}
4 changes: 2 additions & 2 deletions skinStyles/extensions/Score/ext.score.popup.less
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
* Date: 2023-06-10
*/

.skin-citizen-dark .mw-ext-score img {
filter: hue-rotate( 180deg ) invert( 1 );
.mw-ext-score img {
filter: var( --filter-invert );
}
7 changes: 2 additions & 5 deletions skinStyles/extensions/SemanticMediaWiki/ext.smw.style.less
Original file line number Diff line number Diff line change
Expand Up @@ -645,10 +645,7 @@ input:checked + .smw-indicator-accordion-tab-label::after {
}
*/

// Dark theme icon
// It is not great but it works
.skin-citizen-dark {
*[ class^='smw-icon-' ] {
filter: invert( 1 ) hue-rotate( 180deg );
}
*[ class^='smw-icon-' ] {
filter: var( --filter-invert );
}
13 changes: 3 additions & 10 deletions skinStyles/extensions/TabberNeue/ext.tabberNeue.legacy.less
Original file line number Diff line number Diff line change
Expand Up @@ -79,17 +79,10 @@
opacity: var( --opacity-icon-base--active );
}
}
}
}
}
}

.skin-citizen-dark {
.tabber__header {
&__prev,
&__next {
&::after {
filter: invert( 1 );
&::after {
filter: var( --filter-invert );
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@

.uls-icon-back {
border-right: 0; // filter invert does not like it
filter: var( --filter-invert );
opacity: var( --opacity-icon-base );

&:hover {
Expand All @@ -45,10 +46,6 @@
}
}

.skin-citizen-dark .uls-icon-back {
filter: invert( 1 ) hue-rotate( 180deg );
}

.uls-menu .uls-no-results-view {
.uls-no-found-more {
background-color: var( --color-surface-1 );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,9 @@
background-color: var( --color-surface-4 );
}

.skin-citizen-dark {
#p-lang .mw-interlanguage-selector,
#p-lang .mw-interlanguage-selector:active {
filter: invert( 1 ) hue-rotate( 180deg );
}
#p-lang .mw-interlanguage-selector,
#p-lang .mw-interlanguage-selector:active {
filter: var( --filter-invert );
}

.interlanguage-uls-menu {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@
color: var( --color-base );
}

.skin-citizen-dark .uls-ime-disable-link {
filter: invert( 1 ) hue-rotate( 180deg );
}

.skin-citizen-dark .uls-ime-more-settings-link {
filter: invert( 1 ) hue-rotate( 180deg );
.uls-ime-disable-link,
.uls-ime-more-settings-link,
.ime-checked .ime-perime-help {
filter: var( --filter-invert );
}

.uls-ime-menu-settings-item > a:hover {
Expand All @@ -46,10 +44,6 @@
color: var( --color-primary );
}

.skin-citizen-dark .ime-checked .ime-perime-help {
filter: invert( 1 ) hue-rotate( 180deg );
}

/* ext.uls.displaysettings.less */
.ext-uls-sub-panel {
border-top-color: var( --border-color-base );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,10 @@
&:hover {
color: var( --color-base );
}
}
}

.skin-citizen-dark {
#uls-settings-block {
> button {
&.display-settings-block,
&.input-settings-block {
filter: invert( 1 ) hue-rotate( 180deg );
}
&.display-settings-block,
&.input-settings-block {
filter: var( --filter-invert );
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@
*/

#p-lang .uls-settings-trigger {
filter: var( --filter-invert );

&:focus {
outline-color: var( --color-primary );
}
}

.skin-citizen-dark #p-lang .uls-settings-trigger {
filter: invert( 1 ) hue-rotate( 180deg );
}

0 comments on commit 2bf2039

Please sign in to comment.