pleroma-fe/src/components/tab_switcher/tab.style.js
2026-01-06 16:22:52 +02:00

75 lines
1.5 KiB
JavaScript

export default {
name: 'Tab', // Name of the component
selector: '.tab', // CSS selector/prefix
states: {
active: '.active',
hover: ':is(:hover, :focus-visible, :has(:focus-visible)):not(.disabled)',
disabled: '.disabled',
},
validInnerComponents: ['Text', 'Icon'],
defaultRules: [
{
directives: {
background: '--fg',
shadow: ['--buttonDefaultShadow', '--buttonDefaultBevel'],
roundness: 3,
},
},
{
state: ['hover'],
directives: {
shadow: ['--buttonDefaultHoverGlow', '--buttonDefaultBevel'],
},
},
{
state: ['active'],
directives: {
opacity: 0,
},
},
{
state: ['hover', 'active'],
directives: {
shadow: ['--buttonDefaultShadow', '--buttonDefaultBevel'],
},
},
{
state: ['disabled'],
directives: {
background: '$blend(--inheritedBackground 0.25 --parent)',
shadow: ['--buttonDefaultBevel'],
},
},
{
component: 'Text',
parent: {
component: 'Tab',
state: ['disabled'],
},
directives: {
textOpacity: 0.25,
textOpacityMode: 'blend',
},
},
{
component: 'Icon',
parent: {
component: 'Tab',
state: ['active'],
},
directives: {
textColor: '--text',
},
},
{
component: 'Icon',
parent: {
component: 'Tab',
state: ['active', 'hover'],
},
directives: {
textColor: '--text',
},
},
],
}