From f9ead917103f821e8ccf7b99a9e0f398c929c3d4 Mon Sep 17 00:00:00 2001 From: Charles de Dreuille Date: Mon, 16 Dec 2024 17:16:46 +0000 Subject: [PATCH] Improve responsive values for Button Signed-off-by: Charles de Dreuille --- packages/canon/.storybook/preview.tsx | 6 +- .../canon/.storybook/themes/backstage.css | 57 ++++++------ packages/canon/docs/Responsive.mdx | 2 +- .../src/components/Button/Button.stories.tsx | 15 ++++ .../canon/src/components/Button/Button.tsx | 18 +++- packages/canon/src/components/Button/Docs.mdx | 4 +- .../canon/src/components/Button/styles.css | 86 +++++++++---------- packages/canon/src/components/Button/types.ts | 9 +- .../canon/src/components/Heading/Heading.tsx | 4 +- .../src/components/Icon/Icon.stories.tsx | 6 +- packages/canon/src/components/Icon/Icon.tsx | 4 +- packages/canon/src/components/Text/Text.tsx | 4 +- .../{theme/context.tsx => contexts/canon.tsx} | 14 +-- 13 files changed, 132 insertions(+), 97 deletions(-) rename packages/canon/src/{theme/context.tsx => contexts/canon.tsx} (90%) diff --git a/packages/canon/.storybook/preview.tsx b/packages/canon/.storybook/preview.tsx index 0c2a75332d..bb8bbea4ef 100644 --- a/packages/canon/.storybook/preview.tsx +++ b/packages/canon/.storybook/preview.tsx @@ -11,7 +11,7 @@ import '../src/css/components.css'; // Custom themes import './themes/backstage.css'; -import { ThemeProvider } from '../src/theme/context'; +import { CanonProvider } from '../src/contexts/canon'; const preview: Preview = { parameters: { @@ -98,9 +98,9 @@ const preview: Preview = { }); return ( - + - + ); }, ], diff --git a/packages/canon/.storybook/themes/backstage.css b/packages/canon/.storybook/themes/backstage.css index 4a7821cda2..5777f303b6 100644 --- a/packages/canon/.storybook/themes/backstage.css +++ b/packages/canon/.storybook/themes/backstage.css @@ -12,7 +12,7 @@ --canon-font-regular: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; - .button { + .cn-button { border-radius: 60px; font-weight: 400; text-transform: uppercase; @@ -25,39 +25,40 @@ background-color: #1f5493; padding: 6px 16px; box-shadow: none; - } - .button:hover { - box-shadow: none; - } + &:hover { + box-shadow: none; + } - .button.primary { - color: #fff; - background-color: rgb(21, 58, 102); - box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), - 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); - } + &.cn-button-primary { + color: #fff; + background-color: rgb(21, 58, 102); + box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), + 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12); - .button.primary:hover { - box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), - 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); - } + &:hover { + box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), + 0px 4px 5px 0px rgba(0, 0, 0, 0.14), + 0px 1px 10px 0px rgba(0, 0, 0, 0.12); + } + } - .button.secondary { - background-color: transparent; - border: 1px solid rgba(31, 84, 147, 0.5); - color: #1f5493; - } + &.cn-button-secondary { + background-color: transparent; + border: 1px solid rgba(31, 84, 147, 0.5); + color: #1f5493; - .button.secondary:hover { - border: 1px solid #1f5493; - background-color: rgba(31, 84, 147, 0.04); - } + &:hover { + border: 1px solid #1f5493; + background-color: rgba(31, 84, 147, 0.04); + } + } - .button.tertiary { - background-color: transparent; - border: none; - color: #1f5493; + &.cn-button-tertiary { + background-color: transparent; + border: none; + color: #1f5493; + } } } diff --git a/packages/canon/docs/Responsive.mdx b/packages/canon/docs/Responsive.mdx index 447bd3cbf0..85292ee555 100644 --- a/packages/canon/docs/Responsive.mdx +++ b/packages/canon/docs/Responsive.mdx @@ -136,7 +136,7 @@ import { Chip } from './components/Chip'; ( @@ -30,15 +31,28 @@ export const Button = forwardRef( children, } = props; + const { getResponsiveValue } = useCanon(); + + // Get the responsive value for the variant + const responsiveSize = getResponsiveValue(size); + const responsiveVariant = getResponsiveValue(variant); + return (