Appearance
Interaction State Tokens
Why?
Group default, :hover and :active state tokens meaningfully.
The interaction state token encodes through data structure (rather than naming convention) the relationship between tokens used in default, hover and active states.
Hidden in design tokens
Many design systems will have, somewhere in the semantic layer, tokens that look something like this:
Semantic Tokens
Name
Light
Dark
Semantics
Primary
Background
Default
Primitives/Primary/300Primitives/Primary/1100 Hover
Primitives/Primary/400Primitives/Primary/1000 Active
Primitives/Primary/500Primitives/Primary/900Semantics
Secondary
Background
Default
Primitives/Secondary/300Primitives/Secondary/1100 Hover
Primitives/Secondary/400Primitives/Secondary/1000 Active
Primitives/Secondary/500Primitives/Secondary/900There's a clear intent here, expressed through the naming, that a component using a background color of Semantics/Primary/Background/Default should also use a background color of Semantics/Primary/Background/Hover when in hover state (if applicable) and likewise for active state.
However, there's no easy way to apply this to a component that doesn't require the designer to manually select each one.
A development hotch-potch
Similarly, in development, at the worst case you will end up with something like this:
Positive
Negative
css
.widget-positive {
background-color: var(--sentiment-positive-background-default);
color: var(--sentiment-positive-foreground-default);
border-color: var(--sentiment-positive-border-default);
&:hover {
background-color: var(--sentiment-positive-background-hover);
color: var(--sentiment-positive-foreground-hover);
border-color: var(--sentiment-positive-border-hover);
}
&:active {
background-color: var(--sentiment-positive-background-active);
color: var(--sentiment-positive-foreground-active);
border-color: var(--sentiment-positive-border-active);
}
}
.widget-negative {
background-color: var(--sentiment-negative-background-default);
color: var(--sentiment-negative-foreground-default);
border-color: var(--sentiment-negative-border-default);
&:hover {
background-color: var(--sentiment-negative-background-hover);
color: var(--sentiment-negative-foreground-hover);
border-color: var(--sentiment-negative-border-hover);
}
&:active {
background-color: var(--sentiment-negative-background-active);
color: var(--sentiment-negative-foreground-active);
border-color: var(--sentiment-negative-border-active);
}
}html
<div class="widget-positive">Positive</div>
<div class="widget-negative">Negative</div>This is just for one component with two sentiments - when other components need sentimentality, there's nothing here that can be reused.
Torquens
The interaction state token exists to fill this void. Design systems implementations may already have something in place for this:
Positive
Negative
scss
@use "behavioural" as *;
.widget-positive {
@include behavioural(background-color, --sentiment-positive-background);
@include behavioural(color, --sentiment-positive-foreground);
@include behavioural(border-color, --sentiment-positive-border);
}
.widget-negative {
@include behavioural(background-color, --sentiment-negative-background);
@include behavioural(color, --sentiment-negative-foreground);
@include behavioural(border-color, --sentiment-negative-border);
}scss
@mixin behavioural($prop, $color) {
#{$prop}: var(#{$color}-default);
&:hover {
#{$prop}: var(#{$color}-hover);
}
&:active {
#{$prop}: var(#{$color}-active);
}
}html
<div class="widget-positive">Positive</div>
<div class="widget-negative">Negative</div>But the pain here is that this is using a token that doesn't exist in your semantics.
The solution here is to create a new set of tokens that can switch between the different states.
Interaction State Tokens
Name
Default
Hover
Active
Semantics
Primary
Background
Semantics/Primary/Background/DefaultSemantics/Primary/Background/HoverSemantics/Primary/Background/Active Foreground
Semantics/Primary/Foreground/DefaultSemantics/Primary/Foreground/HoverSemantics/Primary/Foreground/Active Border
Semantics/Primary/Border/DefaultSemantics/Primary/Border/HoverSemantics/Primary/Border/ActiveSemantics
Secondary
Background
Semantics/Secondary/Background/DefaultSemantics/Secondary/Background/HoverSemantics/Secondary/Background/Active Foreground
Semantics/Secondary/Foreground/DefaultSemantics/Secondary/Foreground/HoverSemantics/Secondary/Foreground/Active Border
Semantics/Secondary/Border/DefaultSemantics/Secondary/Border/HoverSemantics/Secondary/Border/ActiveNow, consumers can reference Semantics/Primary/Background, and have a mode to switch between states.
Example
json
{
"color": {
"sentiment": {
"primary": {
"foreground": {
"$root": {
"$value": "{color.sentiment.primary.foreground.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.primary.base.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.primary.background.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
}
},
"positive": {
"foreground": {
"$root": {
"$value": "{color.sentiment.positive.foreground.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.positive.base.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.positive.background.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
}
},
"warning": {
"foreground": {
"$root": {
"$value": "{color.sentiment.warning.foreground.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.warning.base.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.warning.background.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
}
},
"negative": {
"foreground": {
"$root": {
"$value": "{color.sentiment.negative.foreground.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.negative.base.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.negative.background.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
}
}
}
},
"system": {
"panel": {
"foreground": {
"$root": {
"$value": "{system.panel.foreground.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"background": {
"$root": {
"$value": "{system.panel.background.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"border": {
"$root": {
"$value": "{system.panel.border.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
}
},
"control": {
"foreground": {
"$root": {
"$value": "{system.control.foreground.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"background": {
"$root": {
"$value": "{system.control.background.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
},
"border": {
"$root": {
"$value": "{system.control.border.default}"
},
"ghost": {
"$value": "{primitives.transparent}"
}
}
}
}
}json
{
"color": {
"sentiment": {
"primary": {
"foreground": {
"$root": {
"$value": "{color.sentiment.primary.foreground.hover}"
},
"ghost": {
"$value": "{color.sentiment.primary.foreground.hover}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.primary.base.hover}"
},
"ghost": {
"$value": "{color.sentiment.primary.base.hover}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.primary.background.hover}"
},
"ghost": {
"$value": "{color.sentiment.primary.background.hover}"
}
}
},
"positive": {
"foreground": {
"$root": {
"$value": "{color.sentiment.positive.foreground.hover}"
},
"ghost": {
"$value": "{color.sentiment.positive.foreground.hover}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.positive.base.hover}"
},
"ghost": {
"$value": "{color.sentiment.positive.base.hover}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.positive.background.hover}"
},
"ghost": {
"$value": "{color.sentiment.positive.background.hover}"
}
}
},
"warning": {
"foreground": {
"$root": {
"$value": "{color.sentiment.warning.foreground.hover}"
},
"ghost": {
"$value": "{color.sentiment.warning.foreground.hover}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.warning.base.hover}"
},
"ghost": {
"$value": "{color.sentiment.warning.base.hover}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.warning.background.hover}"
},
"ghost": {
"$value": "{color.sentiment.warning.background.hover}"
}
}
},
"negative": {
"foreground": {
"$root": {
"$value": "{color.sentiment.negative.foreground.hover}"
},
"ghost": {
"$value": "{color.sentiment.negative.foreground.hover}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.negative.base.hover}"
},
"ghost": {
"$value": "{color.sentiment.negative.base.hover}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.negative.background.hover}"
},
"ghost": {
"$value": "{color.sentiment.negative.background.hover}"
}
}
}
}
},
"system": {
"panel": {
"foreground": {
"$root": {
"$value": "{system.panel.foreground.hover}"
},
"ghost": {
"$value": "{system.panel.foreground.hover}"
}
},
"background": {
"$root": {
"$value": "{system.panel.background.hover}"
},
"ghost": {
"$value": "{system.panel.background.hover}"
}
},
"border": {
"$root": {
"$value": "{system.panel.border.hover}"
},
"ghost": {
"$value": "{system.panel.border.hover}"
}
}
},
"control": {
"foreground": {
"$root": {
"$value": "{system.control.foreground.hover}"
},
"ghost": {
"$value": "{system.control.foreground.hover}"
}
},
"background": {
"$root": {
"$value": "{system.control.background.hover}"
},
"ghost": {
"$value": "{system.control.background.hover}"
}
},
"border": {
"$root": {
"$value": "{system.control.border.hover}"
},
"ghost": {
"$value": "{system.control.border.hover}"
}
}
}
}
}json
{
"color": {
"sentiment": {
"primary": {
"foreground": {
"$root": {
"$value": "{color.sentiment.primary.foreground.active}"
},
"ghost": {
"$value": "{color.sentiment.primary.foreground.active}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.primary.base.active}"
},
"ghost": {
"$value": "{color.sentiment.primary.base.active}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.primary.background.active}"
},
"ghost": {
"$value": "{color.sentiment.primary.background.active}"
}
}
},
"positive": {
"foreground": {
"$root": {
"$value": "{color.sentiment.positive.foreground.active}"
},
"ghost": {
"$value": "{color.sentiment.positive.foreground.active}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.positive.base.active}"
},
"ghost": {
"$value": "{color.sentiment.positive.base.active}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.positive.background.active}"
},
"ghost": {
"$value": "{color.sentiment.positive.background.active}"
}
}
},
"warning": {
"foreground": {
"$root": {
"$value": "{color.sentiment.warning.foreground.active}"
},
"ghost": {
"$value": "{color.sentiment.warning.foreground.active}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.warning.base.active}"
},
"ghost": {
"$value": "{color.sentiment.warning.base.active}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.warning.background.active}"
},
"ghost": {
"$value": "{color.sentiment.warning.background.active}"
}
}
},
"negative": {
"foreground": {
"$root": {
"$value": "{color.sentiment.negative.foreground.active}"
},
"ghost": {
"$value": "{color.sentiment.negative.foreground.active}"
}
},
"base": {
"$root": {
"$value": "{color.sentiment.negative.base.active}"
},
"ghost": {
"$value": "{color.sentiment.negative.base.active}"
}
},
"background": {
"$root": {
"$value": "{color.sentiment.negative.background.active}"
},
"ghost": {
"$value": "{color.sentiment.negative.background.active}"
}
}
}
}
},
"system": {
"panel": {
"foreground": {
"$root": {
"$value": "{system.panel.foreground.active}"
},
"ghost": {
"$value": "{system.panel.foreground.active}"
}
},
"background": {
"$root": {
"$value": "{system.panel.background.active}"
},
"ghost": {
"$value": "{system.panel.background.active}"
}
},
"border": {
"$root": {
"$value": "{system.panel.border.active}"
},
"ghost": {
"$value": "{system.panel.border.active}"
}
}
},
"control": {
"foreground": {
"$root": {
"$value": "{system.control.foreground.active}"
},
"ghost": {
"$value": "{system.control.foreground.active}"
}
},
"background": {
"$root": {
"$value": "{system.control.background.active}"
},
"ghost": {
"$value": "{system.control.background.active}"
}
},
"border": {
"$root": {
"$value": "{system.control.border.active}"
},
"ghost": {
"$value": "{system.control.border.active}"
}
}
}
}
}Figma Output
Interaction State
Name
Default
Hover
Active
Color
Sentiment
Primary
Foreground
Color/Sentiment/Primary/Foreground/DefaultColor/Sentiment/Primary/Foreground/HoverColor/Sentiment/Primary/Foreground/Active Base
Color/Sentiment/Primary/Base/DefaultColor/Sentiment/Primary/Base/HoverColor/Sentiment/Primary/Base/Active Background
Color/Sentiment/Primary/Background/DefaultColor/Sentiment/Primary/Background/HoverColor/Sentiment/Primary/Background/ActiveColor
Sentiment
Primary
Foreground
Ghost
Primitives/TransparentColor/Sentiment/Primary/Foreground/HoverColor/Sentiment/Primary/Foreground/ActiveColor
Sentiment
Primary
Base
Ghost
Primitives/TransparentColor/Sentiment/Primary/Base/HoverColor/Sentiment/Primary/Base/ActiveColor
Sentiment
Primary
Background
Ghost
Primitives/TransparentColor/Sentiment/Primary/Background/HoverColor/Sentiment/Primary/Background/ActiveColor
Sentiment
Positive
Foreground
Color/Sentiment/Positive/Foreground/DefaultColor/Sentiment/Positive/Foreground/HoverColor/Sentiment/Positive/Foreground/Active Base
Color/Sentiment/Positive/Base/DefaultColor/Sentiment/Positive/Base/HoverColor/Sentiment/Positive/Base/Active Background
Color/Sentiment/Positive/Background/DefaultColor/Sentiment/Positive/Background/HoverColor/Sentiment/Positive/Background/ActiveColor
Sentiment
Positive
Foreground
Ghost
Primitives/TransparentColor/Sentiment/Positive/Foreground/HoverColor/Sentiment/Positive/Foreground/ActiveColor
Sentiment
Positive
Base
Ghost
Primitives/TransparentColor/Sentiment/Positive/Base/HoverColor/Sentiment/Positive/Base/ActiveColor
Sentiment
Positive
Background
Ghost
Primitives/TransparentColor/Sentiment/Positive/Background/HoverColor/Sentiment/Positive/Background/ActiveColor
Sentiment
Warning
Foreground
Color/Sentiment/Warning/Foreground/DefaultColor/Sentiment/Warning/Foreground/HoverColor/Sentiment/Warning/Foreground/Active Base
Color/Sentiment/Warning/Base/DefaultColor/Sentiment/Warning/Base/HoverColor/Sentiment/Warning/Base/Active Background
Color/Sentiment/Warning/Background/DefaultColor/Sentiment/Warning/Background/HoverColor/Sentiment/Warning/Background/ActiveColor
Sentiment
Warning
Foreground
Ghost
Primitives/TransparentColor/Sentiment/Warning/Foreground/HoverColor/Sentiment/Warning/Foreground/ActiveColor
Sentiment
Warning
Base
Ghost
Primitives/TransparentColor/Sentiment/Warning/Base/HoverColor/Sentiment/Warning/Base/ActiveColor
Sentiment
Warning
Background
Ghost
Primitives/TransparentColor/Sentiment/Warning/Background/HoverColor/Sentiment/Warning/Background/ActiveColor
Sentiment
Negative
Foreground
Color/Sentiment/Negative/Foreground/DefaultColor/Sentiment/Negative/Foreground/HoverColor/Sentiment/Negative/Foreground/Active Base
Color/Sentiment/Negative/Base/DefaultColor/Sentiment/Negative/Base/HoverColor/Sentiment/Negative/Base/Active Background
Color/Sentiment/Negative/Background/DefaultColor/Sentiment/Negative/Background/HoverColor/Sentiment/Negative/Background/ActiveColor
Sentiment
Negative
Foreground
Ghost
Primitives/TransparentColor/Sentiment/Negative/Foreground/HoverColor/Sentiment/Negative/Foreground/ActiveColor
Sentiment
Negative
Base
Ghost
Primitives/TransparentColor/Sentiment/Negative/Base/HoverColor/Sentiment/Negative/Base/ActiveColor
Sentiment
Negative
Background
Ghost
Primitives/TransparentColor/Sentiment/Negative/Background/HoverColor/Sentiment/Negative/Background/ActiveSystem
Panel
Foreground
System/Panel/Foreground/DefaultSystem/Panel/Foreground/HoverSystem/Panel/Foreground/Active Background
System/Panel/Background/DefaultSystem/Panel/Background/HoverSystem/Panel/Background/Active Border
System/Panel/Border/DefaultSystem/Panel/Border/HoverSystem/Panel/Border/ActiveSystem
Panel
Foreground
Ghost
Primitives/TransparentSystem/Panel/Foreground/HoverSystem/Panel/Foreground/ActiveSystem
Panel
Background
Ghost
Primitives/TransparentSystem/Panel/Background/HoverSystem/Panel/Background/ActiveSystem
Panel
Border
Ghost
Primitives/TransparentSystem/Panel/Border/HoverSystem/Panel/Border/ActiveSystem
Control
Foreground
System/Control/Foreground/DefaultSystem/Control/Foreground/HoverSystem/Control/Foreground/Active Background
System/Control/Background/DefaultSystem/Control/Background/HoverSystem/Control/Background/Active Border
System/Control/Border/DefaultSystem/Control/Border/HoverSystem/Control/Border/ActiveSystem
Control
Foreground
Ghost
Primitives/TransparentSystem/Control/Foreground/HoverSystem/Control/Foreground/ActiveSystem
Control
Background
Ghost
Primitives/TransparentSystem/Control/Background/HoverSystem/Control/Background/ActiveSystem
Control
Border
Ghost
Primitives/TransparentSystem/Control/Border/HoverSystem/Control/Border/ActiveSCSS Output
scss
/* -------------------------------------------
* Autogenerated by ⛋ Terrazzo. DO NOT EDIT!
* ------------------------------------------- */
@mixin default {
--color-sentiment-negative-background: var(--color-sentiment-negative-background-default);
--color-sentiment-negative-background-ghost: #00000000;
--color-sentiment-negative-base: var(--color-sentiment-negative-base-default);
--color-sentiment-negative-base-ghost: #00000000;
--color-sentiment-negative-foreground: var(--color-sentiment-negative-foreground-default);
--color-sentiment-negative-foreground-ghost: #00000000;
--color-sentiment-positive-background: var(--color-sentiment-positive-background-default);
--color-sentiment-positive-background-ghost: #00000000;
--color-sentiment-positive-base: var(--color-sentiment-positive-base-default);
--color-sentiment-positive-base-ghost: #00000000;
--color-sentiment-positive-foreground: var(--color-sentiment-positive-foreground-default);
--color-sentiment-positive-foreground-ghost: #00000000;
--color-sentiment-primary-background: var(--color-sentiment-primary-background-default);
--color-sentiment-primary-background-ghost: #00000000;
--color-sentiment-primary-base: var(--color-sentiment-primary-base-default);
--color-sentiment-primary-base-ghost: #00000000;
--color-sentiment-primary-foreground: var(--color-sentiment-primary-foreground-default);
--color-sentiment-primary-foreground-ghost: #00000000;
--color-sentiment-warning-background: var(--color-sentiment-warning-background-default);
--color-sentiment-warning-background-ghost: #00000000;
--color-sentiment-warning-base: var(--color-sentiment-warning-base-default);
--color-sentiment-warning-base-ghost: #00000000;
--color-sentiment-warning-foreground: var(--color-sentiment-warning-foreground-default);
--color-sentiment-warning-foreground-ghost: #00000000;
--system-control-background: ButtonFace;
--system-control-background-ghost: #00000000;
--system-control-border: ButtonBorder;
--system-control-border-ghost: #00000000;
--system-control-foreground: ButtonText;
--system-control-foreground-ghost: #00000000;
--system-panel-background: Canvas;
--system-panel-background-ghost: #00000000;
--system-panel-border: CanvasText;
--system-panel-border-ghost: #00000000;
--system-panel-foreground: CanvasText;
--system-panel-foreground-ghost: #00000000;
}
@mixin hover {
--color-sentiment-negative-background: var(--color-sentiment-negative-background-hover);
--color-sentiment-negative-background-ghost: var(--color-sentiment-negative-background-hover);
--color-sentiment-negative-base: var(--color-sentiment-negative-base-hover);
--color-sentiment-negative-base-ghost: var(--color-sentiment-negative-base-hover);
--color-sentiment-negative-foreground: var(--color-sentiment-negative-foreground-hover);
--color-sentiment-negative-foreground-ghost: var(--color-sentiment-negative-foreground-hover);
--color-sentiment-positive-background: var(--color-sentiment-positive-background-hover);
--color-sentiment-positive-background-ghost: var(--color-sentiment-positive-background-hover);
--color-sentiment-positive-base: var(--color-sentiment-positive-base-hover);
--color-sentiment-positive-base-ghost: var(--color-sentiment-positive-base-hover);
--color-sentiment-positive-foreground: var(--color-sentiment-positive-foreground-hover);
--color-sentiment-positive-foreground-ghost: var(--color-sentiment-positive-foreground-hover);
--color-sentiment-primary-background: var(--color-sentiment-primary-background-hover);
--color-sentiment-primary-background-ghost: var(--color-sentiment-primary-background-hover);
--color-sentiment-primary-base: var(--color-sentiment-primary-base-hover);
--color-sentiment-primary-base-ghost: var(--color-sentiment-primary-base-hover);
--color-sentiment-primary-foreground: var(--color-sentiment-primary-foreground-hover);
--color-sentiment-primary-foreground-ghost: var(--color-sentiment-primary-foreground-hover);
--color-sentiment-warning-background: var(--color-sentiment-warning-background-hover);
--color-sentiment-warning-background-ghost: var(--color-sentiment-warning-background-hover);
--color-sentiment-warning-base: var(--color-sentiment-warning-base-hover);
--color-sentiment-warning-base-ghost: var(--color-sentiment-warning-base-hover);
--color-sentiment-warning-foreground: var(--color-sentiment-warning-foreground-hover);
--color-sentiment-warning-foreground-ghost: var(--color-sentiment-warning-foreground-hover);
--system-control-background: #00000000;
--system-control-background-ghost: #00000000;
--system-control-border: Highlight;
--system-control-border-ghost: Highlight;
--system-control-foreground: Highlight;
--system-control-foreground-ghost: Highlight;
--system-panel-background: #00000000;
--system-panel-background-ghost: #00000000;
--system-panel-border: Highlight;
--system-panel-border-ghost: Highlight;
--system-panel-foreground: Highlight;
--system-panel-foreground-ghost: Highlight;
}
@mixin active {
--color-sentiment-negative-background: var(--color-sentiment-negative-background-active);
--color-sentiment-negative-background-ghost: var(--color-sentiment-negative-background-active);
--color-sentiment-negative-base: var(--color-sentiment-negative-base-active);
--color-sentiment-negative-base-ghost: var(--color-sentiment-negative-base-active);
--color-sentiment-negative-foreground: var(--color-sentiment-negative-foreground-active);
--color-sentiment-negative-foreground-ghost: var(--color-sentiment-negative-foreground-active);
--color-sentiment-positive-background: var(--color-sentiment-positive-background-active);
--color-sentiment-positive-background-ghost: var(--color-sentiment-positive-background-active);
--color-sentiment-positive-base: var(--color-sentiment-positive-base-active);
--color-sentiment-positive-base-ghost: var(--color-sentiment-positive-base-active);
--color-sentiment-positive-foreground: var(--color-sentiment-positive-foreground-active);
--color-sentiment-positive-foreground-ghost: var(--color-sentiment-positive-foreground-active);
--color-sentiment-primary-background: var(--color-sentiment-primary-background-active);
--color-sentiment-primary-background-ghost: var(--color-sentiment-primary-background-active);
--color-sentiment-primary-base: var(--color-sentiment-primary-base-active);
--color-sentiment-primary-base-ghost: var(--color-sentiment-primary-base-active);
--color-sentiment-primary-foreground: var(--color-sentiment-primary-foreground-active);
--color-sentiment-primary-foreground-ghost: var(--color-sentiment-primary-foreground-active);
--color-sentiment-warning-background: var(--color-sentiment-warning-background-active);
--color-sentiment-warning-background-ghost: var(--color-sentiment-warning-background-active);
--color-sentiment-warning-base: var(--color-sentiment-warning-base-active);
--color-sentiment-warning-base-ghost: var(--color-sentiment-warning-base-active);
--color-sentiment-warning-foreground: var(--color-sentiment-warning-foreground-active);
--color-sentiment-warning-foreground-ghost: var(--color-sentiment-warning-foreground-active);
--system-control-background: #00000000;
--system-control-background-ghost: #00000000;
--system-control-border: Highlight;
--system-control-border-ghost: Highlight;
--system-control-foreground: Highlight;
--system-control-foreground-ghost: Highlight;
--system-panel-background: #00000000;
--system-panel-background-ghost: #00000000;
--system-panel-border: Highlight;
--system-panel-border-ghost: Highlight;
--system-panel-foreground: Highlight;
--system-panel-foreground-ghost: Highlight;
}