diff --git a/packages/twenty-ui/src/input/button/components/Button.tsx b/packages/twenty-ui/src/input/button/components/Button.tsx
index 241482a96b..35531cecfe 100644
--- a/packages/twenty-ui/src/input/button/components/Button.tsx
+++ b/packages/twenty-ui/src/input/button/components/Button.tsx
@@ -360,17 +360,43 @@ const StyledSoonPill = styled(Pill)`
margin-left: auto;
`;
-const StyledShortcutLabel = styled.div`
- color: ${({ theme }) => theme.font.color.light};
- font-weight: ${({ theme }) => theme.font.weight.medium};
+const StyledSeparator = styled.div<{
+ buttonSize: ButtonSize;
+ accent: ButtonAccent;
+}>`
+ background: ${({ theme, accent }) => {
+ switch (accent) {
+ case 'blue':
+ return theme.color.blue30;
+ case 'danger':
+ return theme.border.color.danger;
+ default:
+ return theme.font.color.light;
+ }
+ }};
+ height: ${({ theme, buttonSize }) =>
+ theme.spacing(buttonSize === 'small' ? 2 : 4)};
+ margin: 0;
+ width: 1px;
`;
-const StyledSeparator = styled.div<{ buttonSize: ButtonSize }>`
- background: ${({ theme }) => theme.border.color.light};
- height: ${({ theme, buttonSize }) =>
- theme.spacing(buttonSize === 'small' ? 3 : 4)};
- margin: 0 ${({ theme }) => theme.spacing(1)};
- width: 1px;
+const StyledShortcutLabel = styled.div<{
+ variant: ButtonVariant;
+ accent: ButtonAccent;
+}>`
+ color: ${({ theme, variant, accent }) => {
+ switch (accent) {
+ case 'blue':
+ return theme.color.blue30;
+ case 'danger':
+ return variant === 'primary'
+ ? theme.border.color.danger
+ : theme.color.red40;
+ default:
+ return theme.font.color.light;
+ }
+ }};
+ font-weight: ${({ theme }) => theme.font.weight.medium};
`;
export const Button = ({
@@ -419,8 +445,10 @@ export const Button = ({
{title}
{shortcut && (
<>
-
- {shortcut}
+
+
+ {shortcut}
+
>
)}
{soon && }
diff --git a/packages/twenty-ui/src/input/button/components/__stories__/Button.stories.tsx b/packages/twenty-ui/src/input/button/components/__stories__/Button.stories.tsx
index 5ad32a17e8..d53758a94c 100644
--- a/packages/twenty-ui/src/input/button/components/__stories__/Button.stories.tsx
+++ b/packages/twenty-ui/src/input/button/components/__stories__/Button.stories.tsx
@@ -44,7 +44,7 @@ export const Default: Story = {
};
export const Catalog: CatalogStory = {
- args: { title: 'Filter', Icon: IconSearch },
+ args: { title: 'Filter', Icon: IconSearch, shortcut: '' },
argTypes: {
size: { control: false },
variant: { control: false },
@@ -55,7 +55,6 @@ export const Catalog: CatalogStory = {
soon: { control: false },
position: { control: false },
className: { control: false },
- shortcut: { control: false },
},
parameters: {
pseudo: { hover: ['.hover'], active: ['.pressed'], focus: ['.focus'] },
@@ -277,7 +276,6 @@ export const ShortcutCatalog: CatalogStory = {
fullWidth: { control: false },
soon: { control: false },
position: { control: false },
- shortcut: { control: false },
},
parameters: {
pseudo: { hover: ['.hover'], active: ['.pressed'], focus: ['.focus'] },
@@ -288,6 +286,20 @@ export const ShortcutCatalog: CatalogStory = {
values: ['small', 'medium'] satisfies ButtonSize[],
props: (size: ButtonSize) => ({ size }),
},
+ {
+ name: 'accents',
+ values: ['default', 'blue', 'danger'] satisfies ButtonAccent[],
+ props: (accent: ButtonAccent) => ({ accent }),
+ },
+ {
+ name: 'variants',
+ values: [
+ 'primary',
+ 'secondary',
+ 'tertiary',
+ ] satisfies ButtonVariant[],
+ props: (variant: ButtonVariant) => ({ variant }),
+ },
],
},
},