diff --git a/src/modules/main_menu/components/color-picker.vue b/src/modules/main_menu/components/color-picker.vue index 92c15a3e..ca2ccb59 100644 --- a/src/modules/main_menu/components/color-picker.vue +++ b/src/modules/main_menu/components/color-picker.vue @@ -22,7 +22,7 @@
-
+
@@ -42,7 +42,7 @@ v-if="open" v-on-clickaway="closePicker" :class="{'ffz-bottom-100': openUp}" - class="tw-absolute tw-z-default tw-balloon--up tw-balloon--right" + class="tw-absolute tw-z-above tw-balloon--up tw-balloon--right" > diff --git a/src/sites/twitch-twilight/modules/channel_bar.jsx b/src/sites/twitch-twilight/modules/channel_bar.jsx index 48418772..f2cd6d42 100644 --- a/src/sites/twitch-twilight/modules/channel_bar.jsx +++ b/src/sites/twitch-twilight/modules/channel_bar.jsx @@ -118,12 +118,16 @@ export default class ChannelBar extends Module { inst._ffz_uptime_updating = true; inst._ffz_uptime_id = current_id; - try { - inst._ffz_meta = await this.twitch_data.getStreamMeta(current_id, inst?.props?.channel?.login); - } catch(err) { - this.log.capture(err); - this.log.error('Error fetching uptime:', err); + if ( ! current_id ) inst._ffz_meta = null; + else { + try { + inst._ffz_meta = await this.twitch_data.getStreamMeta(current_id, inst?.props?.channel?.login); + } catch(err) { + this.log.capture(err); + this.log.error('Error fetching uptime:', err); + inst._ffz_meta = null; + } } inst._ffz_uptime_saved = Date.now(); diff --git a/src/sites/twitch-twilight/modules/chat/emote_menu.jsx b/src/sites/twitch-twilight/modules/chat/emote_menu.jsx index 983e7096..532dee3e 100644 --- a/src/sites/twitch-twilight/modules/chat/emote_menu.jsx +++ b/src/sites/twitch-twilight/modules/chat/emote_menu.jsx @@ -1713,7 +1713,7 @@ export default class EmoteMenu extends Module {
)}
- + {this.has_update && (
+
+
+
+
)} + {extra_pill && (
+
+ {extra_pill} +
+
)} + {pill && (
+
+ {pill} +
+
)} ) /*el = (
diff --git a/src/sites/twitch-twilight/modules/theme/index.js b/src/sites/twitch-twilight/modules/theme/index.js index 9da9005c..1a425d73 100644 --- a/src/sites/twitch-twilight/modules/theme/index.js +++ b/src/sites/twitch-twilight/modules/theme/index.js @@ -6,8 +6,10 @@ import Module from 'utilities/module'; import {createElement} from 'utilities/dom'; +import {Color} from 'utilities/color'; -import THEME_CSS_URL from 'site/styles/theme.scss'; +import THEME_CSS from 'site/styles/theme.scss'; +import NORMALIZER_CSS_URL from 'site/styles/color_normalizer.scss'; const BAD_ROUTES = ['product', 'prime', 'turbo']; @@ -23,6 +25,28 @@ export default class ThemeEngine extends Module { this.should_enable = true; + // Colors + + this.settings.add('theme.color.background', { + default: '', + ui: { + path: 'Appearance > Theme >> Colors @{"description": "This is a quick preview of a new system coming soon to FrankerFaceZ. Expect heavy changes here, including separate Basic and Advanced modes, and better color selection."}', + title: 'Background', + component: 'setting-color-box' + }, + changed: () => this.updateCSS() + }); + + this.settings.add('theme.color.text', { + default: '', + ui: { + path: 'Appearance > Theme >> Colors', + title: 'Text', + component: 'setting-color-box' + }, + changed: () => this.updateCSS() + }); + this.settings.add('theme.dark', { requires: ['theme.is-dark'], default: false, @@ -70,19 +94,78 @@ This is a very early feature and will change as there is time.`, }); this._style = null; + this._normalizer = null; } - - updateCSS() { + updateOldCSS() { const dark = this.settings.get('theme.is-dark'), gray = this.settings.get('theme.dark'); - document.body.classList.toggle('tw-root--theme-dark', dark); + //document.body.classList.toggle('tw-root--theme-dark', dark); document.body.classList.toggle('tw-root--theme-ffz', gray); this.css_tweaks.setVariable('border-color', dark ? (gray ? '#2a2a2a' : '#2c2541') : '#dad8de'); } + updateCSS() { + this.updateOldCSS(); + + let dark = this.settings.get('theme.is-dark'); + const bits = []; + + const background = Color.RGBA.fromCSS(this.settings.get('theme.color.background')); + if ( background ) { + bits.push(`--color-background-body: ${background.toCSS()};`); + + const hsla = background.toHSLA(), + luma = hsla.l; + dark = luma < 0.5; + + bits.push(`--color-background-base: ${hsla._l(luma + (dark ? .05 : -.05)).toCSS()};`); + bits.push(`--color-background-alt: ${hsla._l(luma + (dark ? .1 : -.1)).toCSS()};`); + bits.push(`--color-background-alt-2: ${hsla._l(luma + (dark ? .15 : -.15)).toCSS()};`); + } + + let text = Color.RGBA.fromCSS(this.settings.get('theme.color.text')); + if ( ! text && background ) { + text = Color.RGBA.fromCSS(dark ? '#FFF' : '#000'); + } + + if ( text ) { + bits.push(`--color-text-base: ${text.toCSS()};`); + + const hsla = text.toHSLA(), + luma = hsla.l; + + bits.push(`--color-text-alt: ${hsla._l(luma + (dark ? -.1 : .1)).toRGBA().toCSS()};`); + bits.push(`--color-text-alt-2: ${hsla._l(luma + (dark ? -.2 : .2)).toRGBA().toCSS()};`); + } + + + if ( bits.length ) + this.css_tweaks.set('colors', `body {${bits.join('\n')}}`); + else + this.css_tweaks.delete('colors'); + } + + toggleNormalizer(enable) { + if ( ! this._normalizer ) { + if ( ! enable ) + return; + + this._normalizer = createElement('link', { + rel: 'stylesheet', + type: 'text/css', + href: NORMALIZER_CSS_URL + }); + } else if ( ! enable ) { + this._normalizer.remove(); + return; + } + + if ( ! document.head.contains(this._normalizer) ) + document.head.appendChild(this._normalizer) + } toggleStyle(enable) { if ( ! this._style ) { @@ -92,7 +175,7 @@ This is a very early feature and will change as there is time.`, this._style = createElement('link', { rel: 'stylesheet', type: 'text/css', - href: THEME_CSS_URL + href: THEME_CSS }); } else if ( ! enable ) { @@ -110,5 +193,7 @@ This is a very early feature and will change as there is time.`, onEnable() { this.updateSetting(this.settings.get('theme.dark')); + this.toggleNormalizer(true); + this.updateCSS(); } } \ No newline at end of file diff --git a/src/sites/twitch-twilight/styles/chat.scss b/src/sites/twitch-twilight/styles/chat.scss index 2f478523..3af3a0f9 100644 --- a/src/sites/twitch-twilight/styles/chat.scss +++ b/src/sites/twitch-twilight/styles/chat.scss @@ -1,6 +1,6 @@ .chat-line__message--emote { - vertical-align: middle; - margin: -.5rem 0; + vertical-align: middle; + margin: -.5rem 0; } .chat-author__display-name, @@ -17,262 +17,262 @@ } .user-notice-line.tw-mg-y-05 { - margin-top: 0 !important; - margin-bottom: 0 !important; + margin-top: 0 !important; + margin-bottom: 0 !important; } .chat-settings__content div[data-test-selector="high-contrast-selector"] { - display: none; + display: none; } .autocomplete-balloon { - .autocomplete-balloon__item { - > .tw-flex { - > div { - display: flex; - flex-shrink: 0; - } - } + .autocomplete-balloon__item { + > .tw-flex { + > div { + display: flex; + flex-shrink: 0; + } + } - span { - overflow-x: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - } + span { + overflow-x: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + } } .ffz-action-balloon { - z-index: 10000 !important; + z-index: 10000 !important; } .ffz-tooltip.chat-card__link > * { - pointer-events: none; + pointer-events: none; } .ffz--chat-card { - .vod-message & { - .ffz--card-text { - max-width: 18rem; - } - } + .vod-message & { + .ffz--card-text { + max-width: 18rem; + } + } - .chat-card__title { - max-width: unset; - } + .chat-card__title { + max-width: unset; + } - .ffz--two-line { - .tw-ellipsis { line-height: 1.4rem } - .chat-card__title { line-height: 1.5rem } - } + .ffz--two-line { + .tw-ellipsis { line-height: 1.4rem } + .chat-card__title { line-height: 1.5rem } + } } .ffz-emoji { - width: calc(var(--ffz-chat-font-size) * 1.5); - height: calc(var(--ffz-chat-font-size) * 1.5); + width: calc(var(--ffz-chat-font-size) * 1.5); + height: calc(var(--ffz-chat-font-size) * 1.5); - &.preview-image { - width: 7.2rem; - height: 7.2rem; - } + &.preview-image { + width: 7.2rem; + height: 7.2rem; + } - &.emote-autocomplete-provider__image { - width: 1.8rem; - height: 1.8rem; - margin: .5rem; - } + &.emote-autocomplete-provider__image { + width: 1.8rem; + height: 1.8rem; + margin: .5rem; + } } .ffz-mod-icon { - text-align: center; - display: inline-flex; + text-align: center; + display: inline-flex; - & + .ffz-mod-icon { - margin-left: 1px; - } + & + .ffz-mod-icon { + margin-left: 1px; + } - span, img, figure { - pointer-events: none; - } + span, img, figure { + pointer-events: none; + } - span, img, - figure:before { - margin: 0 0.05rem !important - } + span, img, + figure:before { + margin: 0 0.05rem !important + } - span { - display: inline-block; - min-width: 1.6rem; - font-weight: bold; - } + span { + display: inline-block; + min-width: 1.6rem; + font-weight: bold; + } - .mod-icon__image img { - max-height: 1.6rem; - } + .mod-icon__image img { + max-height: 1.6rem; + } - &.colored, - .mod-icon__image img { - opacity: 0.75; - } + &.colored, + .mod-icon__image img { + opacity: 0.75; + } - .ffz--action &, - .tw-interactable:hover &, - &:hover { - .tw-root--theme-dark &, & { - &.tw-c-text-alt-2 { - color: inherit !important; - } - } + .ffz--action &, + .tw-interactable:hover &, + &:hover { + .tw-root--theme-dark &, & { + &.tw-c-text-alt-2 { + color: inherit !important; + } + } - &.colored, - .mod-icon__image img { - opacity: 1; - } - } + &.colored, + .mod-icon__image img { + opacity: 1; + } + } } .ffz--giftee-name { - cursor: pointer; - outline: none; + cursor: pointer; + outline: none; - &:hover { - text-decoration: underline; - } + &:hover { + text-decoration: underline; + } } .chat-line__username:hover, .chatter-name:hover { - text-decoration: underline; + text-decoration: underline; } .ffz--emote-picker { - section:not(.filtered) heading { - cursor: pointer; - } + section:not(.filtered) heading { + cursor: pointer; + } - .ffz--menu-badge { - width: 1.8rem; height: 1.8rem; - } + .ffz--menu-badge { + width: 1.8rem; height: 1.8rem; + } - .ffz--expiry-info { - opacity: 0.5; - } + .ffz--expiry-info { + opacity: 0.5; + } - .emote-picker__placeholder { - display: inline-block; - margin: .5rem .5rem 0; - min-width: 2.8rem; - } + .emote-picker__placeholder { + display: inline-block; + margin: .5rem .5rem 0; + min-width: 2.8rem; + } - .emote-picker__tab { - border-top: 1px solid transparent; + /*.emote-picker__tab { + border-top: 1px solid transparent; - &.emote-picker__tab--active, - &:hover { - border-top-color: #6441a4; - } - } + &.emote-picker__tab--active, + &:hover { + border-top-color: #6441a4; + } + }*/ - .whispers-thread .emote-picker-and-button & .emote-picker__tab-content { - max-height: 30rem; - } + .whispers-thread .emote-picker-and-button & .emote-picker__tab-content { + max-height: 30rem; + } - .emote-picker__tab-content { - height: unset !important; - max-height: 50rem; - } + .emote-picker__tab-content { + height: unset !important; + max-height: 50rem; + } - .whispers-thread { - overflow: visible !important; - } + .whispers-thread { + overflow: visible !important; + } - @media only screen and (max-height: 750px) { - .emote-picker__tab-content { - #root & { - max-height: calc(100vh - 31rem); - } + @media only screen and (max-height: 750px) { + .emote-picker__tab-content { + #root & { + max-height: calc(100vh - 31rem); + } - max-height: calc(100vh - 26rem); - } - } + max-height: calc(100vh - 26rem); + } + } - .emote-picker-tab-item button > *, - .emote-picker__emote-link > * { - pointer-events: none; - } + .emote-picker-tab-item button > *, + .emote-picker__emote-link > * { + pointer-events: none; + } - .emote-picker__emote-image { - max-height: 3.2rem - } + .emote-picker__emote-image { + max-height: 3.2rem + } - section:last-of-type { - & > div:last-child, - & > heading:last-child { - border-bottom: none !important; - } - } + section:last-of-type { + & > div:last-child, + & > heading:last-child { + border-bottom: none !important; + } + } - .ffz--emoji-tone-picker { - .tw-balloon { - min-width: unset; - } + .ffz--emoji-tone-picker { + .tw-balloon { + min-width: unset; + } - .tw-button__text { - padding: .2rem .4rem; - padding-right: .8rem; - } - } + .tw-button__text { + padding: .2rem .4rem; + padding-right: .8rem; + } + } - .ffz--emoji-tone-picker__emoji { - width: 2rem; - height: 2rem; - } + .ffz--emoji-tone-picker__emoji { + width: 2rem; + height: 2rem; + } - .emote-picker__emote-link { - position: relative; - padding: 0.5rem; - width: unset; - height: unset; - min-width: 3.8rem; + .emote-picker__emote-link { + position: relative; + padding: 0.5rem; + width: unset; + height: unset; + min-width: 3.8rem; - img { - vertical-align: middle; - } + img { + vertical-align: middle; + } - &.emote-picker__emoji { - min-width: unset; + &.emote-picker__emoji { + min-width: unset; - .emote-picker__emote-figure { - width: 2rem; - height: 2rem; - } - } + .emote-picker__emote-figure { + width: 2rem; + height: 2rem; + } + } - &.locked { - cursor: not-allowed; + &.locked { + cursor: not-allowed; - img { - opacity: 0.5; - } + img { + opacity: 0.5; + } - .ffz-i-lock { - position: absolute; - bottom: 0; right: 0; - border-radius: .2rem; - font-size: 1rem; - background-color: rgba(0,0,0,0.5); - color: #fff; - } + .ffz-i-lock { + position: absolute; + bottom: 0; right: 0; + border-radius: .2rem; + font-size: 1rem; + background-color: rgba(0,0,0,0.5); + color: #fff; + } - } - } + } + } - &.reduced-padding { - .tw-pd-1 { - padding: 0.5rem !important; - } - } + &.reduced-padding { + .tw-pd-1 { + padding: 0.5rem !important; + } + } } \ No newline at end of file diff --git a/src/sites/twitch-twilight/styles/color_normalizer.scss b/src/sites/twitch-twilight/styles/color_normalizer.scss new file mode 100644 index 00000000..4e4ef9e0 --- /dev/null +++ b/src/sites/twitch-twilight/styles/color_normalizer.scss @@ -0,0 +1,45 @@ +body { + background-color: var(--color-background-body) !important; +} + +.tw-root--theme-dark .channel-root__right-column, +.channel-root__right-column { + background-color: var(--color-background-body) !important; +} + +.tw-root--theme-dark .chat-room, +.chat-room { + background-color: var(--color-background-body) !important; +} + +.tw-root--theme-dark .carousel-player-nav-arrow__container, +.carousel-player-nav-arrow__container { + background-color: var(--color-background-body) !important; +} + +.tw-root--theme-dark .side-nav__overlay-wrapper, +.side-nav__overlay-wrapper { + background-color: var(--color-background-alt) !important; +} + +.tw-root--theme-dark .side-nav-card__link:hover, +.side-nav-card__link:hover { + background-color: var(--color-background-alt-2) !important; +} + +.tw-root--theme-dark .channel-header, +.channel-header { + background-color: var(--color-background-body) !important; +} + +.tw-root--theme-dark .channel-header__user, +.channel-header__user { + color: var(--color-text-base) !important; +} + +.tw-root--theme-dark .chat-line__moderation, +.tw-root--theme-dark .chat-line__status, +.chat-line__moderation, +.chat-line__status { + color: var(--color-text-alt-2) !important; +} \ No newline at end of file diff --git a/src/sites/twitch-twilight/styles/menu_button.scss b/src/sites/twitch-twilight/styles/menu_button.scss index 8c81530b..226e3724 100644 --- a/src/sites/twitch-twilight/styles/menu_button.scss +++ b/src/sites/twitch-twilight/styles/menu_button.scss @@ -1,14 +1,17 @@ .ffz-top-nav { + .tw-pill { + padding: .4rem; + } + .ffz-menu__pill { - top: -1rem; - right: -.3rem; - font-size: 1.2rem; + top: -.5rem; + right: 0; } .ffz-menu__extra-pill { - bottom: -0.2rem; - right: 5.2rem; - font-size: 1.2rem; + bottom: -.5rem; + right: 0; + pointer-events: none; } .tw-pd-r-1 + & { diff --git a/src/sites/twitch-twilight/styles/mod_card.scss b/src/sites/twitch-twilight/styles/mod_card.scss index 50b4ddb9..fe888712 100644 --- a/src/sites/twitch-twilight/styles/mod_card.scss +++ b/src/sites/twitch-twilight/styles/mod_card.scss @@ -2,12 +2,12 @@ width: 340px; z-index: 9001; - > header { + > header { cursor: move; - background-size: cover; - background-position: top; - } + background-size: cover; + background-position: top; + } .ffz-tooltip { > * { @@ -23,7 +23,7 @@ line-height: 1.2; } - .mod-cards__tabs-container { + .mod-cards__tabs-container { height: 3rem; > .mod-cards__tab { diff --git a/src/utilities/color.js b/src/utilities/color.js index c3c6b274..968c9f35 100644 --- a/src/utilities/color.js +++ b/src/utilities/color.js @@ -386,7 +386,7 @@ HSLAColor.prototype.targetLuminance = function (target) { } HSLAColor.prototype.toRGBA = function() { return RGBAColor.fromHSLA(this.h, this.s, this.l, this.a); } -HSLAColor.prototype.toCSS = function() { return `"hsl${this.a !== 1 ? 'a' : ''}(${Math.round(this.h*360)},${Math.round(this.s*100)}%,${Math.round(this.l*100)}%${this.a !== 1 ? `,${this.a}` : ''})`; } +HSLAColor.prototype.toCSS = function() { return `hsl${this.a !== 1 ? 'a' : ''}(${Math.round(this.h*360)},${Math.round(this.s*100)}%,${Math.round(this.l*100)}%${this.a !== 1 ? `,${this.a}` : ''})`; } HSLAColor.prototype.toHSVA = function() { return this.toRGBA().toHSVA(); } HSLAColor.prototype.toXYZA = function() { return this.toRGBA().toXYZA(); } HSLAColor.prototype.toLUVA = function() { return this.toRGBA().toLUVA(); } diff --git a/styles/tooltips.scss b/styles/tooltips.scss index bdefdb50..fe7e9bbd 100644 --- a/styles/tooltips.scss +++ b/styles/tooltips.scss @@ -80,8 +80,8 @@ body { z-index: 999999999; margin: 6px; border-radius: 2px; - background: #0e0c13; - color: #fff; + background: var(--color-background-tooltip); + color: var(--color-text-tooltip); font-size: 1.2rem; line-height: 1; text-align: left; @@ -96,7 +96,7 @@ body { transform: rotate(45deg); z-index: -1; - background: #0e0c13; + background: var(--color-background-tooltip); } &[x-placement^="bottom"] { @@ -126,16 +126,6 @@ body { border-radius: 0 0 0 2px; } } - - - .tw-root--theme-dark & { - background: #fff; - color: #0e0c13; - - .ffz__tooltip--arrow { - background: #fff; - } - } } diff --git a/styles/widgets.scss b/styles/widgets.scss index 7f0f76d1..d5e2b942 100644 --- a/styles/widgets.scss +++ b/styles/widgets.scss @@ -115,8 +115,8 @@ textarea.tw-input { &:focus { box-shadow: - inset 0 0 0 1px #7d5bbe, - 0 0 6px -2px #7d5bbe !important; + inset 0 0 0 1px var(--color-twitch-purple-8), + 0 0 6px -2px var(--color-twitch-purple-8) !important; } .handle { @@ -138,12 +138,12 @@ textarea.tw-input { .ffz--profile__icon { &.ffz-i-ok, .ffz-i-ok { - color: green; + color: var(--color-green-darker); } &.ffz-i-cancel, .ffz-i-cancel { - color: red; + color: var(--color-red); } } @@ -159,8 +159,8 @@ textarea.tw-input { &:focus { box-shadow: - inset 0 0 0 1px #7d5bbe, - 0 0 6px -2px #7d5bbe !important; + inset 0 0 0 1px var(--color-twitch-purple-8), + 0 0 6px -2px var(--color-twitch-purple-8) !important; } .handle { @@ -173,7 +173,7 @@ textarea.tw-input { font-size: 2rem; } - .ffz-i-ok { color: green } + .ffz-i-ok { color: var(--color-green) } } .sortable-ghost { diff --git a/styles/widgets/add-ons.scss b/styles/widgets/add-ons.scss index a562d54b..d3f96d0d 100644 --- a/styles/widgets/add-ons.scss +++ b/styles/widgets/add-ons.scss @@ -1,5 +1,5 @@ .ffz--add-on-info { - .ffz-logo-section { - max-width: 8rem; - } + .ffz-logo-section { + max-width: 8rem; + } } \ No newline at end of file diff --git a/styles/widgets/check-box.scss b/styles/widgets/check-box.scss index bfc95c89..f4b10658 100644 --- a/styles/widgets/check-box.scss +++ b/styles/widgets/check-box.scss @@ -1,8 +1,8 @@ .tw-checkbox__input { &:indeterminate + .tw-checkbox__label { &:before { - background: #7d5bbe; - border: 1px solid #7d5bbe; + background: var(--color-twitch-purple-8); + border: 1px solid var(--color-twitch-purple-8); } &:after { diff --git a/styles/widgets/menu-container.scss b/styles/widgets/menu-container.scss index 9a230057..86708eb8 100644 --- a/styles/widgets/menu-container.scss +++ b/styles/widgets/menu-container.scss @@ -18,10 +18,6 @@ transform: translateY(-50%); padding: 0 0.5rem; - background-color: $bg-light; - - .tw-root--theme-dark & { - background-color: $bg-dark; - } + background-color: var(--color-background-alt); } } \ No newline at end of file diff --git a/styles/widgets/menu-tree.scss b/styles/widgets/menu-tree.scss index 2167b659..7f64b232 100644 --- a/styles/widgets/menu-tree.scss +++ b/styles/widgets/menu-tree.scss @@ -12,26 +12,21 @@ content: ''; pointer-events: none; - box-shadow: inset 0 0 0 1px #7d5bbe, - 0 0 6px -2px #7d5bbe; + box-shadow: inset 0 0 0 1px var(--color-twitch-purple-8), + 0 0 6px -2px var(--color-twitch-purple-8); } } .active > div, .active > div:hover, .tw-root--theme-dark & .active > div:hover { - background-color: #6441a4; - color: #fff; + background-color: var(--color-background-button-primary-hover); + color: var(--color-text-button-primary); } div:hover { cursor: pointer; - - background-color: #fff; - - .tw-root--theme-dark & { - background-color: #201c2b; - } + background-color: var(--color-background-button-text-hover); } li div { diff --git a/styles/widgets/profile-selector.scss b/styles/widgets/profile-selector.scss index d876af67..a8a72229 100644 --- a/styles/widgets/profile-selector.scss +++ b/styles/widgets/profile-selector.scss @@ -19,7 +19,7 @@ border-left-color: transparent; &.live .ffz--profile-row__icon { - color: green; + color: var(--color-green-darker); } &:not(.live):not(:hover):not(:focus) { @@ -32,7 +32,7 @@ } &.current { - border-left-color: #6441a4; + border-left-color: var(--color-twitch-purple-8); } .description { @@ -51,16 +51,16 @@ &:focus { box-shadow: - inset 0 0 0 1px #7d5bbe, - 0 0 6px -2px #7d5bbe; + inset 0 0 0 1px var(--color-twitch-purple-8), + 0 0 6px -2px var(--color-twitch-purple-8); } &:focus, &:hover { - background: rgba(100, 65, 164, .05); + background: var(--color-opac-p-1); .tw-root--theme-dark & { - background: rgba(100, 65, 164, .2); + background: var(--color-opac-p-4); } } } diff --git a/styles/widgets/tab-container.scss b/styles/widgets/tab-container.scss index 0ac085c4..d1d47442 100644 --- a/styles/widgets/tab-container.scss +++ b/styles/widgets/tab-container.scss @@ -5,8 +5,8 @@ outline: none; .tab.active { - box-shadow: inset 0 0 0 1px #7d5bbe, - 0 0 6px -2px #7d5bbe; + box-shadow: inset 0 0 0 1px var(--color-twitch-purple-8), + 0 0 6px -2px var(--color-twitch-purple-8); } } @@ -30,7 +30,7 @@ left: 0; right: 0; content: ''; - border-bottom: 4px solid #6441a4; + border-bottom: 4px solid var(--color-twitch-purple-8); } }