Add destructive variant to <Button>

[MAILPOET-3545]
This commit is contained in:
Ján Mikláš
2021-04-20 15:37:53 +02:00
committed by Veljko V
parent e7d1f52cd0
commit cc5fa7707d
6 changed files with 101 additions and 2 deletions

File diff suppressed because one or more lines are too long

View File

@@ -98,6 +98,25 @@
}
}
.mailpoet-button-destructive {
background: #fff;
border-color: #fff;
color: $color-destructive;
&:hover {
background: #fff;
border-color: $color-destructive-hover;
color: $color-destructive-hover;
}
&:focus {
background: #fff;
border-color: #fff;
box-shadow: 0 0 0 1.5px $color-destructive-hover;
color: $color-destructive-hover;
}
}
.mailpoet-button-with-spinner {
pointer-events: none;
touch-action: none;
@@ -115,7 +134,8 @@
}
&.mailpoet-button-secondary:after,
&.mailpoet-button-tertiary:after {
&.mailpoet-button-tertiary:after,
&.mailpoet-button-destructive:after {
background-color: rgba(#fff, .8);
}
}
@@ -131,4 +151,8 @@
border-color: #eaeaea;
color: #828282;
}
&.mailpoet-button-destructive {
color: rgba($color-destructive, .4);
}
}

View File

@@ -24,6 +24,8 @@ $color-tertiary-hover: darken($color-tertiary, 10%);
$color-tertiary-light: #e5e9f8;
$color-tertiary-light-hover: darken($color-tertiary-light, 10%);
$color-tertiary-light-background: rgba($color-tertiary-light, .3);
$color-destructive: #b52727;
$color-destructive-hover: #a02222;
// Typography colors
$color-text: $color-tertiary;

View File

@@ -32,6 +32,13 @@ export const WithoutIcons = () => (
>
Tertiary button
</Button>
<Button
onClick={action('destructive small')}
dimension="small"
variant="destructive"
>
Destructive button
</Button>
</p>
<br />
@@ -54,6 +61,12 @@ export const WithoutIcons = () => (
>
Tertiary button
</Button>
<Button
onClick={action('destructive regular')}
variant="destructive"
>
Destructive button
</Button>
</p>
<br />
@@ -74,6 +87,12 @@ export const WithoutIcons = () => (
>
Tertiary button
</Button>
<Button
isDisabled
variant="destructive"
>
Destructive button
</Button>
</p>
<br />
@@ -94,6 +113,12 @@ export const WithoutIcons = () => (
>
Tertiary button
</Button>
<Button
withSpinner
variant="destructive"
>
Destructive button
</Button>
</p>
<br />
@@ -119,6 +144,13 @@ export const WithoutIcons = () => (
>
Tertiary button
</Button>
<Button
onClick={action('destructive full-width')}
isFullWidth
variant="destructive"
>
Destructive button
</Button>
</p>
<br />
</>

View File

@@ -41,6 +41,14 @@ export const WithIcons = () => (
variant="tertiary"
iconStart={icon}
/>
<Button
onClick={action('icon end destructive small')}
dimension="small"
variant="destructive"
iconEnd={icon}
>
Icon end
</Button>
</p>
<br />
@@ -70,6 +78,13 @@ export const WithIcons = () => (
variant="tertiary"
iconStart={icon}
/>
<Button
onClick={action('icon end destructive regular')}
variant="destructive"
iconEnd={icon}
>
Icon end
</Button>
</p>
<br />
@@ -99,6 +114,13 @@ export const WithIcons = () => (
variant="tertiary"
iconStart={icon}
/>
<Button
isDisabled
variant="destructive"
iconEnd={icon}
>
Icon end
</Button>
</p>
<br />
@@ -128,6 +150,13 @@ export const WithIcons = () => (
variant="tertiary"
iconStart={icon}
/>
<Button
withSpinner
variant="destructive"
iconEnd={icon}
>
Icon end
</Button>
</p>
<br />
@@ -161,6 +190,14 @@ export const WithIcons = () => (
variant="tertiary"
iconStart={icon}
/>
<Button
onClick={action('icon end destructive full-width')}
isFullWidth
variant="destructive"
iconEnd={icon}
>
Icon end
</Button>
</p>
<br />
</>

View File

@@ -4,7 +4,7 @@ import classnames from 'classnames';
interface Props extends React.ButtonHTMLAttributes<HTMLButtonElement> {
children?: React.ReactNode;
dimension?: 'small';
variant?: 'secondary' | 'tertiary';
variant?: 'secondary' | 'tertiary' | 'destructive';
withSpinner?: boolean; // also disables href and onClick (via pointer-events in CSS)
isDisabled?: boolean; // also disables href and onClick (via pointer-events in CSS)
isFullWidth?: boolean;