diff options
| author | Oliver <oliver@mohlin.dev> | 2025-09-13 16:31:34 +0200 |
|---|---|---|
| committer | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-09-22 12:52:45 +0200 |
| commit | 075dafd31135ce3b0f64b3e01d227cdae05ac4ca (patch) | |
| tree | 892a00774ac262fce0228aa5e1559271db0775f7 | |
| parent | e8d84c3ff6ff568a5b5cdbe8ad9b403f1d7caa5d (diff) | |
| download | mullvadvpn-075dafd31135ce3b0f64b3e01d227cdae05ac4ca.tar.xz mullvadvpn-075dafd31135ce3b0f64b3e01d227cdae05ac4ca.zip | |
Add transition and pressed state to Button component
| -rw-r--r-- | desktop/packages/mullvad-vpn/src/renderer/lib/components/button/Button.tsx | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/button/Button.tsx b/desktop/packages/mullvad-vpn/src/renderer/lib/components/button/Button.tsx index 7c10b08a53..27bda0a6d8 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/lib/components/button/Button.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/button/Button.tsx @@ -16,16 +16,19 @@ const styles = { primary: { background: colors.blue, hover: colors.blue60, + pressed: colors.blue40, disabled: colors.blue40, }, success: { background: colors.green, hover: colors.green80, + pressed: colors.green40, disabled: colors.green40, }, destructive: { background: colors.red, hover: colors.red80, + pressed: colors.red40, disabled: colors.red40, }, }, @@ -48,10 +51,12 @@ export const StyledButton = styled.button<ButtonProps>` return css` --background: ${variant.background}; --hover: ${variant.hover}; + --pressed: ${variant.pressed}; --disabled: ${variant.disabled}; --radius: ${styles.radius}; --size: ${size}; --width: ${width}; + --transition-duration: 0.15s; display: flex; flex: var(--size); @@ -65,10 +70,20 @@ export const StyledButton = styled.button<ButtonProps>` border-radius: var(--radius); background: var(--background); - &:not(:disabled):hover { + @media (prefers-reduced-motion: no-preference) { + transition: background-color var(--transition-duration) ease; + } + + &&:not(:disabled):hover { + --transition-duration: 0s; background: var(--hover); } + &&:not(:disabled):active { + --transition-duration: 0s; + background: var(--pressed); + } + &:disabled { background: var(--disabled); } |
