@reown/appkit-ui
Version:
The full stack toolkit to build onchain app UX.
143 lines (119 loc) • 4.24 kB
JavaScript
import { css } from '../../utils/ThemeHelperUtil.js';
export default css `
:host {
width: var(--local-width);
}
button {
width: var(--local-width);
white-space: nowrap;
column-gap: ${({ spacing }) => spacing[2]};
transition:
scale ${({ durations }) => durations['lg']} ${({ easings }) => easings['ease-out-power-1']},
background-color ${({ durations }) => durations['lg']}
${({ easings }) => easings['ease-out-power-2']},
border-radius ${({ durations }) => durations['lg']}
${({ easings }) => easings['ease-out-power-1']};
will-change: scale, background-color, border-radius;
cursor: pointer;
}
/* -- Sizes --------------------------------------------------- */
button[data-size='sm'] {
border-radius: ${({ borderRadius }) => borderRadius[2]};
padding: 0 ${({ spacing }) => spacing[2]};
height: 28px;
}
button[data-size='md'] {
border-radius: ${({ borderRadius }) => borderRadius[3]};
padding: 0 ${({ spacing }) => spacing[4]};
height: 38px;
}
button[data-size='lg'] {
border-radius: ${({ borderRadius }) => borderRadius[4]};
padding: 0 ${({ spacing }) => spacing[5]};
height: 48px;
}
/* -- Variants --------------------------------------------------------- */
button[data-variant='accent-primary'] {
background-color: ${({ tokens }) => tokens.core.backgroundAccentPrimary};
color: ${({ tokens }) => tokens.theme.textInvert};
}
button[data-variant='accent-secondary'] {
background-color: ${({ tokens }) => tokens.core.foregroundAccent010};
color: ${({ tokens }) => tokens.core.textAccentPrimary};
}
button[data-variant='neutral-primary'] {
background-color: ${({ tokens }) => tokens.theme.backgroundInvert};
color: ${({ tokens }) => tokens.theme.textInvert};
}
button[data-variant='neutral-secondary'] {
background-color: transparent;
border: 1px solid ${({ tokens }) => tokens.theme.borderSecondary};
color: ${({ tokens }) => tokens.theme.textPrimary};
}
button[data-variant='neutral-tertiary'] {
background-color: ${({ tokens }) => tokens.theme.foregroundPrimary};
color: ${({ tokens }) => tokens.theme.textPrimary};
}
button[data-variant='error-primary'] {
background-color: ${({ tokens }) => tokens.core.textError};
color: ${({ tokens }) => tokens.theme.textInvert};
}
button[data-variant='error-secondary'] {
background-color: ${({ tokens }) => tokens.core.backgroundError};
color: ${({ tokens }) => tokens.core.textError};
}
button[data-variant='shade'] {
background: var(--wui-color-gray-glass-002);
color: var(--wui-color-fg-200);
border: none;
box-shadow: inset 0 0 0 1px var(--wui-color-gray-glass-005);
}
/* -- Focus states --------------------------------------------------- */
button[data-size='sm']:focus-visible:enabled {
border-radius: 28px;
}
button[data-size='md']:focus-visible:enabled {
border-radius: 38px;
}
button[data-size='lg']:focus-visible:enabled {
border-radius: 48px;
}
button[data-variant='shade']:focus-visible:enabled {
background: var(--wui-color-gray-glass-005);
box-shadow:
inset 0 0 0 1px var(--wui-color-gray-glass-010),
0 0 0 4px var(--wui-color-gray-glass-002);
}
/* -- Hover & Active states ----------------------------------------------------------- */
@media (hover: hover) {
button[data-size='sm']:hover:enabled {
border-radius: 28px;
}
button[data-size='md']:hover:enabled {
border-radius: 38px;
}
button[data-size='lg']:hover:enabled {
border-radius: 48px;
}
button[data-variant='shade']:hover:enabled {
background: var(--wui-color-gray-glass-002);
}
button[data-variant='shade']:active:enabled {
background: var(--wui-color-gray-glass-005);
}
}
button[data-size='sm']:active:enabled {
border-radius: 28px;
}
button[data-size='md']:active:enabled {
border-radius: 38px;
}
button[data-size='lg']:active:enabled {
border-radius: 48px;
}
/* -- Disabled states --------------------------------------------------- */
button:disabled {
opacity: 0.3;
}
`;
//# sourceMappingURL=styles.js.map