diff --git a/packages/components/src/button/button.stories.tsx b/packages/components/src/button/button.stories.tsx
index 33bb04ce..61a31e92 100644
--- a/packages/components/src/button/button.stories.tsx
+++ b/packages/components/src/button/button.stories.tsx
@@ -1,3 +1,5 @@
+import { PlaceholderIcon } from '@status-im/icons/20'
+
import { Button } from './button'
import type { Meta, StoryObj } from '@storybook/react'
@@ -55,6 +57,52 @@ const meta: Meta<
))}
))}
+ {(
+ [
+ 'primary',
+ 'positive',
+ 'grey',
+ 'darkGrey',
+ 'outline',
+ 'ghost',
+ 'danger',
+ ] as const
+ ).map(variant => (
+
+ {(['40', '32', '24'] as const).map(size => (
+ }
+ />
+ ))}
+
+ ))}
+ {(
+ [
+ 'primary',
+ 'positive',
+ 'grey',
+ 'darkGrey',
+ 'outline',
+ 'ghost',
+ 'danger',
+ ] as const
+ ).map(variant => (
+
+ {(['40', '32', '24'] as const).map(size => (
+ }
+ />
+ ))}
+
+ ))}
),
}
diff --git a/packages/components/src/button/button.tsx b/packages/components/src/button/button.tsx
index aae7cad2..56ac843b 100644
--- a/packages/components/src/button/button.tsx
+++ b/packages/components/src/button/button.tsx
@@ -69,18 +69,19 @@ function Button(
onClick={onClick}
{...buttonProps}
ref={ref}
- className={styles({ variant, size })}
+ className={styles({
+ variant,
+ size,
+ placement:
+ (iconBefore && 'before') || (iconAfter && 'after') || undefined,
+ })}
>
{iconBefore && (
-
- {iconBefore}
-
+ {iconBefore}
)}
{children}
{iconAfter && (
-
- {iconAfter}
-
+ {iconAfter}
)}
)
@@ -126,6 +127,10 @@ const styles = cva({
'dark:bg-danger-60 dark:hover:bg-danger-50 dark:pressed:bg-danger-50/[.9]',
],
},
+ placement: {
+ before: '',
+ after: '',
+ },
size: {
'40': 'h-[40px] rounded-12 px-4 text-15',
'32': 'h-[32px] rounded-10 px-3 text-15',
@@ -135,6 +140,28 @@ const styles = cva({
true: 'aspect-square !px-0',
},
},
+ compoundVariants: [
+ {
+ size: ['40', '32'],
+ placement: 'before',
+ className: 'pl-3 pr-4',
+ },
+ {
+ size: ['40', '32'],
+ placement: 'after',
+ className: 'pl-4 pr-3',
+ },
+ {
+ size: '24',
+ placement: 'before',
+ className: 'pl-2 pr-3',
+ },
+ {
+ size: '24',
+ placement: 'after',
+ className: 'pl-3 pr-2',
+ },
+ ],
})
const iconStyles = cva({
@@ -159,10 +186,6 @@ const iconStyles = cva({
ghost: ['text-neutral-50'],
danger: ['text-blur-white/70'],
},
- placement: {
- before: '',
- after: '',
- },
size: {
'40': 'size-5',
'32': 'size-5',
@@ -173,26 +196,6 @@ const iconStyles = cva({
},
},
compoundVariants: [
- {
- size: ['40', '32'],
- placement: 'before',
- className: '-ml-1',
- },
- {
- size: ['40', '32'],
- placement: 'after',
- className: '-mr-1',
- },
- {
- size: '24',
- placement: 'before',
- className: '-ml-0.5',
- },
- {
- size: '24',
- placement: 'after',
- className: '-mr-0.5',
- },
{
variant: 'outline',
iconOnly: true,