.root { --ai-size-xs: calc(1.875rem * var(--mantine-scale)); --ai-size-sm: calc(2.25rem * var(--mantine-scale)); --ai-size-md: calc(2.625rem * var(--mantine-scale)); --ai-size-lg: calc(3.125rem * var(--mantine-scale)); --ai-size-xl: calc(3.75rem * var(--mantine-scale)); --ai-size-compact-xs: calc(1.5rem * var(--mantine-scale)); --ai-size-compact-sm: calc(1.75rem * var(--mantine-scale)); --ai-size-compact-md: calc(2rem * var(--mantine-scale)); font-weight: 500; transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out; &[data-disabled='true'] { opacity: 0.6; } &[data-variant='default'] { color: var(--theme-colors-foreground); background: var(--theme-colors-surface); border: 1px solid transparent; &:hover { background: lighten(var(--theme-colors-surface), 5%); } &:focus-visible { background: lighten(var(--theme-colors-surface), 10%); } } &[data-variant='outline'] { --button-border: var(--theme-colors-border); color: var(--theme-colors-foreground); border: 1px solid var(--theme-colors-border); &:hover { border: 1px solid lighten(var(--theme-colors-border), 10%); } &:focus-visible { border: 1px solid lighten(var(--theme-colors-border), 10%); } svg { color: var(--theme-colors-primary); fill: var(--theme-colors-primary); } } &[data-variant='filled'] { color: var(--theme-colors-primary-contrast); background: var(--theme-colors-primary-filled); border: 1px solid transparent; transition: background-color 0.2s ease-in-out; &:hover, &:focus-visible { background: darken(var(--theme-colors-primary-filled), 10%); } svg { color: var(--theme-colors-primary-contrast); fill: var(--theme-colors-primary-contrast); } } &[data-variant='subtle'] { color: var(--theme-colors-foreground); background: transparent; &:hover, &:active, &:focus-visible { @mixin dark { background: lighten(var(--theme-colors-background), 5%); } @mixin light { background: darken(var(--theme-colors-background), 5%); } } &[data-disabled='true'] { background: transparent; } } &[data-variant='secondary'] { border: 1px solid transparent; &:hover { background: darken(var(--theme-colors-surface), 5%); } &:focus-visible { background: darken(var(--theme-colors-surface), 10%); } } &[data-variant='transparent'] { color: var(--theme-colors-foreground); border: 1px solid transparent; &:hover { background: transparent; } &:focus-visible { border: 1px solid lighten(var(--theme-colors-border), 10%); } } &[data-size='compact-xs'] { width: var(--ai-size-compact-xs); min-width: var(--ai-size-compact-xs); height: var(--ai-size-compact-xs); min-height: var(--ai-size-compact-xs); } &[data-size='compact-sm'] { width: var(--ai-size-compact-sm); min-width: var(--ai-size-compact-sm); height: var(--ai-size-compact-sm); min-height: var(--ai-size-compact-sm); } &[data-size='compact-md'] { width: var(--ai-size-compact-md); min-width: var(--ai-size-compact-md); height: var(--ai-size-compact-md); min-height: var(--ai-size-compact-md); } }