From 155c5ce71baefa35e32101722704db0a3b6b81d6 Mon Sep 17 00:00:00 2001 From: Steven Spriggs Date: Wed, 22 Jan 2025 15:19:32 -0500 Subject: [PATCH 01/33] docs: add color-scheme stylesheet --- docs/styles/color-scheme.css | 170 ++++++++++++++++++++++++++++++++ docs/styles/demo/dev-server.css | 2 + docs/styles/demo/styles.css | 2 + docs/styles/styles.css | 2 + 4 files changed, 176 insertions(+) create mode 100644 docs/styles/color-scheme.css diff --git a/docs/styles/color-scheme.css b/docs/styles/color-scheme.css new file mode 100644 index 0000000000..2cf4f6ab50 --- /dev/null +++ b/docs/styles/color-scheme.css @@ -0,0 +1,170 @@ +:root { + --rh-color-surface: + light-dark(var(--rh-color-surface-lightest), + var(--rh-color-surface-darkest)); + --rh-color-accent-base: + light-dark(var(--rh-color-accent-base-on-light), + var(--rh-color-accent-base-on-dark)); + --rh-color-accent-brand: + light-dark(var(--rh-color-accent-brand-on-light), + var(--rh-color-accent-brand-on-dark)); + --rh-color-border-strong: + light-dark(var(--rh-color-border-strong-on-light), + var(--rh-color-border-strong-on-dark)); + --rh-color-border-subtle: + light-dark(var(--rh-color-border-subtle-on-light), + var(--rh-color-border-subtle-on-dark)); + --rh-color-border-interactive: + light-dark(var(--rh-color-border-interactive-on-light), + var(--rh-color-border-interactive-on-dark)); + --rh-color-border-destructive: + light-dark(var(--rh-color-border-destructive-on-light), + var(--rh-color-border-destructive-on-dark)); + --rh-color-border-status-danger: + light-dark(var(--rh-color-border-status-danger-on-light), + var(--rh-color-border-status-danger-on-dark)); + --rh-color-border-status-caution: + light-dark(var(--rh-color-border-status-caution-on-light), + var(--rh-color-border-status-caution-on-dark)); + --rh-color-border-status-warning: + light-dark(var(--rh-color-border-status-warning-on-light), + var(--rh-color-border-status-warning-on-dark)); + --rh-color-border-status-neutral: + light-dark(var(--rh-color-border-status-neutral-on-light), + var(--rh-color-border-status-neutral-on-dark)); + --rh-color-border-status-info: + light-dark(var(--rh-color-border-status-info-on-light), + var(--rh-color-border-status-info-on-dark)); + --rh-color-border-status-success: + light-dark(var(--rh-color-border-status-success-on-light), + var(--rh-color-border-status-success-on-dark)); + --rh-color-brand-red: + light-dark(var(--rh-color-brand-red-on-light), + var(--rh-color-brand-red-on-dark)); + --rh-color-icon-primary: + light-dark(var(--rh-color-icon-primary-on-light), + var(--rh-color-icon-primary-on-dark)); + --rh-color-icon-secondary: + light-dark(var(--rh-color-icon-secondary-on-light), + var(--rh-color-icon-secondary-on-dark)); + --rh-color-icon-status-danger: + light-dark(var(--rh-color-icon-status-danger-on-light), + var(--rh-color-icon-status-danger-on-dark)); + --rh-color-icon-status-caution: + light-dark(var(--rh-color-icon-status-caution-on-light), + var(--rh-color-icon-status-caution-on-dark)); + --rh-color-icon-status-warning: + light-dark(var(--rh-color-icon-status-warning-on-light), + var(--rh-color-icon-status-warning-on-dark)); + --rh-color-icon-status-default: + light-dark(var(--rh-color-icon-status-default-on-light), + var(--rh-color-icon-status-default-on-dark)); + --rh-color-icon-status-neutral: + light-dark(var(--rh-color-icon-status-neutral-on-light), + var(--rh-color-icon-status-neutral-on-dark)); + --rh-color-icon-status-info: + light-dark(var(--rh-color-icon-status-info-on-light), + var(--rh-color-icon-status-info-on-dark)); + --rh-color-icon-status-success: + light-dark(var(--rh-color-icon-status-success-on-light), + var(--rh-color-icon-status-success-on-dark)); + --rh-color-interactive-primary-default: + light-dark(var(--rh-color-interactive-primary-default-on-light), + var(--rh-color-interactive-primary-default-on-dark)); + --rh-color-interactive-primary-hover: + light-dark(var(--rh-color-interactive-primary-hover-on-light), + var(--rh-color-interactive-primary-hover-on-dark)); + --rh-color-interactive-primary-active: + light-dark(var(--rh-color-interactive-primary-active-on-light), + var(--rh-color-interactive-primary-active-on-dark)); + --rh-color-interactive-primary-focus: + light-dark(var(--rh-color-interactive-primary-focus-on-light), + var(--rh-color-interactive-primary-focus-on-dark)); + --rh-color-interactive-primary-visited-default: + light-dark(var(--rh-color-interactive-primary-visited-default-on-light), + var(--rh-color-interactive-primary-visited-default-on-dark)); + --rh-color-interactive-primary-visited-hover: + light-dark(var(--rh-color-interactive-primary-visited-hover-on-light), + var(--rh-color-interactive-primary-visited-hover-on-dark)); + --rh-color-interactive-primary-visited-active: + light-dark(var(--rh-color-interactive-primary-visited-active-on-light), + var(--rh-color-interactive-primary-visited-active-on-dark)); + --rh-color-interactive-primary-visited-focus: + light-dark(var(--rh-color-interactive-primary-visited-focus-on-light), + var(--rh-color-interactive-primary-visited-focus-on-dark)); + --rh-color-interactive-secondary-default: + light-dark(var(--rh-color-interactive-secondary-default-on-light), + var(--rh-color-interactive-secondary-default-on-dark)); + --rh-color-interactive-secondary-hover: + light-dark(var(--rh-color-interactive-secondary-hover-on-light), + var(--rh-color-interactive-secondary-hover-on-dark)); + --rh-color-interactive-secondary-active: + light-dark(var(--rh-color-interactive-secondary-active-on-light), + var(--rh-color-interactive-secondary-active-on-dark)); + --rh-color-interactive-secondary-focus: + light-dark(var(--rh-color-interactive-secondary-focus-on-light), + var(--rh-color-interactive-secondary-focus-on-dark)); + --rh-color-interactive-secondary-visited-default: + light-dark(var(--rh-color-interactive-secondary-visited-default-on-light), + var(--rh-color-interactive-secondary-visited-default-on-dark)); + --rh-color-interactive-secondary-visited-hover: + light-dark(var(--rh-color-interactive-secondary-visited-hover-on-light), + var(--rh-color-interactive-secondary-visited-hover-on-dark)); + --rh-color-interactive-secondary-visited-active: + light-dark(var(--rh-color-interactive-secondary-visited-active-on-light), + var(--rh-color-interactive-secondary-visited-active-on-dark)); + --rh-color-interactive-secondary-visited-focus: + light-dark(var(--rh-color-interactive-secondary-visited-focus-on-light), + var(--rh-color-interactive-secondary-visited-focus-on-dark)); + --rh-color-status-danger: + light-dark(var(--rh-color-status-danger-on-light), + var(--rh-color-status-danger-on-dark)); + --rh-color-status-caution: + light-dark(var(--rh-color-status-caution-on-light), + var(--rh-color-status-caution-on-dark)); + --rh-color-status-warning: + light-dark(var(--rh-color-status-warning-on-light), + var(--rh-color-status-warning-on-dark)); + --rh-color-status-neutral: + light-dark(var(--rh-color-status-neutral-on-light), + var(--rh-color-status-neutral-on-dark)); + --rh-color-status-note: + light-dark(var(--rh-color-status-note-on-light), + var(--rh-color-status-note-on-dark)); + --rh-color-status-info: + light-dark(var(--rh-color-status-info-on-light), + var(--rh-color-status-info-on-dark)); + --rh-color-status-success: + light-dark(var(--rh-color-status-success-on-light), + var(--rh-color-status-success-on-dark)); + --rh-color-surface-status-danger: + light-dark(var(--rh-color-surface-status-danger-on-light), + var(--rh-color-surface-status-danger-on-dark)); + --rh-color-surface-status-caution: + light-dark(var(--rh-color-surface-status-caution-on-light), + var(--rh-color-surface-status-caution-on-dark)); + --rh-color-surface-status-warning: + light-dark(var(--rh-color-surface-status-warning-on-light), + var(--rh-color-surface-status-warning-on-dark)); + --rh-color-surface-status-default: + light-dark(var(--rh-color-surface-status-default-on-light), + var(--rh-color-surface-status-default-on-dark)); + --rh-color-surface-status-neutral: + light-dark(var(--rh-color-surface-status-neutral-on-light), + var(--rh-color-surface-status-neutral-on-dark)); + --rh-color-surface-status-info: + light-dark(var(--rh-color-surface-status-info-on-light), + var(--rh-color-surface-status-info-on-dark)); + --rh-color-surface-status-success: + light-dark(var(--rh-color-surface-status-success-on-light), + var(--rh-color-surface-status-success-on-dark)); + --rh-color-text-primary: + light-dark(var(--rh-color-text-primary-on-light), + var(--rh-color-text-primary-on-dark)); + --rh-color-text-secondary: + light-dark(var(--rh-color-text-secondary-on-light), + var(--rh-color-text-secondary-on-dark)); + --rh-color-text-brand: + light-dark(var(--rh-color-text-brand-on-light), + var(--rh-color-text-brand-on-dark)); +} diff --git a/docs/styles/demo/dev-server.css b/docs/styles/demo/dev-server.css index 38664427e7..5c41a730b2 100644 --- a/docs/styles/demo/dev-server.css +++ b/docs/styles/demo/dev-server.css @@ -2,6 +2,7 @@ reset, fonts, tokens, + color-scheme, typography, base, layout; @@ -9,6 +10,7 @@ @import url('../reset.css') layer(reset); @import url('../fonts.css') layer(fonts); @import url('/node_modules/@rhds/tokens/css/global.css') layer(tokens); +@import url('../color-scheme.css') layer(color-scheme); @import url('../typography.css') layer(typography); @layer base { diff --git a/docs/styles/demo/styles.css b/docs/styles/demo/styles.css index 7f5606a6b2..aee8462507 100644 --- a/docs/styles/demo/styles.css +++ b/docs/styles/demo/styles.css @@ -2,11 +2,13 @@ reset, fonts, tokens, + color-scheme, typography; @import url('../reset.css') layer(reset); @import url('../fonts.css') layer(fonts); @import url('/assets/packages/@rhds/tokens/css/global.css') layer(tokens); +@import url('../color-scheme.css') layer(color-scheme); @import url('../typography.css') layer(typography); html, diff --git a/docs/styles/styles.css b/docs/styles/styles.css index ddf9f956ae..6e2b7681e2 100644 --- a/docs/styles/styles.css +++ b/docs/styles/styles.css @@ -2,6 +2,7 @@ reset, fonts, tokens, + color-scheme, typography, base, grid, @@ -18,6 +19,7 @@ @import url('reset.css') layer(reset); @import url('fonts.css') layer(fonts); @import url('/assets/packages/@rhds/tokens/css/global.css') layer(tokens); +@import url('color-scheme.css') layer(color-scheme); @import url('typography.css') layer(typography); @import url('grid.css') layer(grid); @import url('lightdom.css') layer(lightdom); From 28d5253143550907e3de2faccf0a63af5992fd2d Mon Sep 17 00:00:00 2001 From: Steven Spriggs Date: Wed, 22 Jan 2025 15:20:44 -0500 Subject: [PATCH 02/33] fix(accordion): use color-scheme --- elements/rh-accordion/demo/color-context.html | 6 ++-- elements/rh-accordion/rh-accordion-header.css | 18 ++++------ elements/rh-accordion/rh-accordion-header.ts | 8 ++--- elements/rh-accordion/rh-accordion-panel.css | 34 +++++++++++++++++++ elements/rh-accordion/rh-accordion-panel.ts | 12 ++----- elements/rh-accordion/rh-accordion.css | 32 +++++++++++++++++ elements/rh-accordion/rh-accordion.ts | 25 ++++++++++---- 7 files changed, 98 insertions(+), 37 deletions(-) diff --git a/elements/rh-accordion/demo/color-context.html b/elements/rh-accordion/demo/color-context.html index 78bbd54eae..385685e15d 100644 --- a/elements/rh-accordion/demo/color-context.html +++ b/elements/rh-accordion/demo/color-context.html @@ -6,10 +6,10 @@ Call To Action - + - Forced Palette - + Forced Palette + diff --git a/elements/rh-accordion/rh-accordion-header.css b/elements/rh-accordion/rh-accordion-header.css index 6acc9ee174..b4f828cf3a 100644 --- a/elements/rh-accordion/rh-accordion-header.css +++ b/elements/rh-accordion/rh-accordion-header.css @@ -14,7 +14,9 @@ padding: 0; margin: 0; color: var(--rh-color-text-primary); - background-color: var(--rh-color-surface); + background-color: + light-dark(var(--rh-color-surface-lightest), + var(--rh-color-surface-darkest)); font-weight: var(--rh-font-weight-body-text-medium, 500); } @@ -75,8 +77,7 @@ span { } &:is(:hover,:active,:focus) { - &.light { background-color: var(--rh-color-surface-lighter); } - &.dark { background-color: var(--rh-color-surface-dark-alt); } + background-color: light-dark(var(--rh-color-surface-lighter), var(--rh-color-surface-dark-alt)); & span { color: var(--rh-color-text-primary); @@ -101,18 +102,13 @@ span { &.expanded { --_after-background-color: var(--rh-color-accent-brand); + --rh-color-surface: + light-dark(var(--rh-color-surface-lightest, #ffffff), + var(--rh-color-surface-darkest, #151515)); & #icon { rotate: calc(var(--_isRTL, -1) * 180deg); } - - &.on.light { - --rh-color-surface: var(--rh-color-surface-lightest, #ffffff); - } - - &.on.dark { - --rh-color-surface: var(--rh-color-surface-darkest, #151515); - } } } diff --git a/elements/rh-accordion/rh-accordion-header.ts b/elements/rh-accordion/rh-accordion-header.ts index b41e325297..79ec9e8f70 100644 --- a/elements/rh-accordion/rh-accordion-header.ts +++ b/elements/rh-accordion/rh-accordion-header.ts @@ -11,7 +11,6 @@ import { observes } from '@patternfly/pfe-core/decorators/observes.js'; import { InternalsController } from '@patternfly/pfe-core/controllers/internals-controller.js'; import { DirController } from '../../lib/DirController.js'; -import { colorContextConsumer, type ColorTheme } from '../../lib/context/color/consumer.js'; import { consume } from '@lit/context'; @@ -55,9 +54,6 @@ export class RhAccordionHeader extends LitElement { @property({ attribute: false }) private ctx?: RhAccordionContext; - @colorContextConsumer() - private on?: ColorTheme; - #dir = new DirController(this); #internals = InternalsController.of(this, { @@ -81,12 +77,12 @@ export class RhAccordionHeader extends LitElement { } render() { - const { expanded, on = 'light' } = this; + const { expanded } = this; const { accents, large = false } = this.ctx ?? {}; const rtl = this.#dir.dir === 'rtl'; return html` - +
diff --git a/elements/rh-table/rh-sort-button.css b/elements/rh-table/rh-sort-button.css index f18e7922a1..273740a480 100644 --- a/elements/rh-table/rh-sort-button.css +++ b/elements/rh-table/rh-sort-button.css @@ -3,7 +3,6 @@ border: 0; color: var(--rh-color-text-primary); } -= #sort-button:after { content: '';