diff --git a/apps/builder/app/builder/features/topbar/share.tsx b/apps/builder/app/builder/features/topbar/share.tsx index 07804a7987..0e8a6e821d 100644 --- a/apps/builder/app/builder/features/topbar/share.tsx +++ b/apps/builder/app/builder/features/topbar/share.tsx @@ -31,7 +31,9 @@ export const ShareButton = ({ projectId }: { projectId: Project["id"] }) => { - + diff --git a/packages/design-system/src/components/button.stories.tsx b/packages/design-system/src/components/button.stories.tsx index 7f759584a7..88ae95fdc5 100644 --- a/packages/design-system/src/components/button.stories.tsx +++ b/packages/design-system/src/components/button.stories.tsx @@ -28,6 +28,7 @@ const colors: ReadonlyArray["color"]> = [ "positive", "ghost", "dark", + "gradient", ]; const states: ReadonlyArray["state"]> = [ diff --git a/packages/design-system/src/components/button.tsx b/packages/design-system/src/components/button.tsx index e3ae7940de..4d6964be32 100644 --- a/packages/design-system/src/components/button.tsx +++ b/packages/design-system/src/components/button.tsx @@ -19,6 +19,7 @@ const colors = [ "neutral", "ghost", "dark", + "gradient", ] as const; type ButtonColor = (typeof colors)[number]; @@ -32,6 +33,7 @@ const backgrounds: Record = { positive: theme.colors.backgroundSuccessMain, ghost: theme.colors.backgroundHover, dark: theme.colors.backgroundTopbar, + gradient: theme.colors.backgroundGradientPrimary, }; const foregrounds: Record = { @@ -41,6 +43,7 @@ const foregrounds: Record = { neutral: theme.colors.foregroundMain, ghost: theme.colors.foregroundMain, dark: theme.colors.foregroundContrastMain, + gradient: theme.colors.foregroundContrastMain, }; // CSS supports multiple gradients as backgrounds but not multiple colors @@ -52,10 +55,13 @@ const perColorStyle = (variant: ButtonColor) => ({ color: foregrounds[variant], "&[data-state=auto]:hover, &[data-state=hover]": { - background: backgroundColors( - backgrounds[variant], - theme.colors.backgroundButtonHover - ), + background: + variant === "gradient" + ? `linear-gradient(${theme.colors.backgroundButtonHover}, ${theme.colors.backgroundButtonHover}), ${backgrounds[variant]}` + : backgroundColors( + backgrounds[variant], + theme.colors.backgroundButtonHover + ), }, "&[data-state=auto]:focus-visible, &[data-state=focus]": { @@ -64,10 +70,13 @@ const perColorStyle = (variant: ButtonColor) => ({ }, "&[data-state=auto]:active, &[data-state=pressed]": { - background: backgroundColors( - backgrounds[variant], - theme.colors.backgroundButtonPressed - ), + background: + variant === "gradient" + ? `linear-gradient(${theme.colors.backgroundButtonPressed}, ${theme.colors.backgroundButtonPressed}), ${backgrounds[variant]}` + : backgroundColors( + backgrounds[variant], + theme.colors.backgroundButtonPressed + ), }, "&[data-state=disabled]": { @@ -101,6 +110,7 @@ const StyledButton = styled("button", { neutral: perColorStyle("neutral"), ghost: perColorStyle("ghost"), dark: perColorStyle("dark"), + gradient: perColorStyle("gradient"), }, },