Files
feishin/src/shared/components/action-icon/action-icon.module.css
T
2026-01-18 17:24:52 -08:00

138 lines
3.7 KiB
CSS

.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);
}
}