diff --git a/packages/css/baseline/typography.css b/packages/css/baseline/typography.css index aaa74e8d0a..d78718cb75 100644 --- a/packages/css/baseline/typography.css +++ b/packages/css/baseline/typography.css @@ -1,125 +1,114 @@ /** Heading */ .ds-heading { - --dsc-bottom-spacing: var(--ds-spacing-6); + --dsc-bottom-spacing: var(--ds-spacing-4); - margin: 0; color: var(--ds-color-neutral-text-default); -} - -.ds-heading--spacing { - margin-bottom: var(--dsc-bottom-spacing); -} - -.ds-heading--2xs { - --dsc-bottom-spacing: var(--ds-spacing-1); + font-size: var(--ds-heading-md-font-size); + font-weight: var(--ds-heading-md-font-weight); + letter-spacing: var(--ds-heading-md-letter-spacing); + line-height: var(--ds-heading-md-line-height); + margin: 0; - font-weight: var(--ds-heading-2xs-font-weight); - line-height: var(--ds-heading-2xs-line-height); - font-size: var(--ds-heading-2xs-font-size); - letter-spacing: var(--ds-heading-2xs-letter-spacing); -} + &[data-spacing] { + margin-bottom: var(--dsc-bottom-spacing); + } -.ds-heading--xs { - --dsc-bottom-spacing: var(--ds-spacing-2); + &[data-size='2xs'] { + --dsc-bottom-spacing: var(--ds-spacing-1); - font-weight: var(--ds-heading-xs-font-weight); - line-height: var(--ds-heading-xs-line-height); - font-size: var(--ds-heading-xs-font-size); - letter-spacing: var(--ds-heading-xs-letter-spacing); -} + font-weight: var(--ds-heading-2xs-font-weight); + line-height: var(--ds-heading-2xs-line-height); + font-size: var(--ds-heading-2xs-font-size); + letter-spacing: var(--ds-heading-2xs-letter-spacing); + } -.ds-heading--sm { - --dsc-bottom-spacing: var(--ds-spacing-3); + &[data-size='xs'] { + --dsc-bottom-spacing: var(--ds-spacing-2); - font-weight: var(--ds-heading-sm-font-weight); - line-height: var(--ds-heading-sm-line-height); - font-size: var(--ds-heading-sm-font-size); - letter-spacing: var(--ds-heading-sm-letter-spacing); -} + font-weight: var(--ds-heading-xs-font-weight); + line-height: var(--ds-heading-xs-line-height); + font-size: var(--ds-heading-xs-font-size); + letter-spacing: var(--ds-heading-xs-letter-spacing); + } -.ds-heading--md { - --dsc-bottom-spacing: var(--ds-spacing-4); + &[data-size='sm'] { + --dsc-bottom-spacing: var(--ds-spacing-3); - font-weight: var(--ds-heading-md-font-weight); - line-height: var(--ds-heading-md-line-height); - font-size: var(--ds-heading-md-font-size); - letter-spacing: var(--ds-heading-md-letter-spacing); -} + font-weight: var(--ds-heading-sm-font-weight); + line-height: var(--ds-heading-sm-line-height); + font-size: var(--ds-heading-sm-font-size); + letter-spacing: var(--ds-heading-sm-letter-spacing); + } -.ds-heading--lg { - --dsc-bottom-spacing: var(--ds-spacing-5); + &[data-size='lg'] { + --dsc-bottom-spacing: var(--ds-spacing-5); - font-weight: var(--ds-heading-lg-font-weight); - line-height: var(--ds-heading-lg-line-height); - font-size: var(--ds-heading-lg-font-size); - letter-spacing: var(--ds-heading-lg-letter-spacing); -} + font-weight: var(--ds-heading-lg-font-weight); + line-height: var(--ds-heading-lg-line-height); + font-size: var(--ds-heading-lg-font-size); + letter-spacing: var(--ds-heading-lg-letter-spacing); + } -.ds-heading--xl { - --dsc-bottom-spacing: var(--ds-spacing-6); + &[data-size='xl'] { + --dsc-bottom-spacing: var(--ds-spacing-6); - font-weight: var(--ds-heading-xl-font-weight); - line-height: var(--ds-heading-xl-line-height); - font-size: var(--ds-heading-xl-font-size); - letter-spacing: var(--ds-heading-xl-letter-spacing); -} + font-weight: var(--ds-heading-xl-font-weight); + line-height: var(--ds-heading-xl-line-height); + font-size: var(--ds-heading-xl-font-size); + letter-spacing: var(--ds-heading-xl-letter-spacing); + } -.ds-heading--2xl { - --dsc-bottom-spacing: var(--ds-spacing-7); + &[data-size='2xl'] { + --dsc-bottom-spacing: var(--ds-spacing-7); - font-weight: var(--ds-heading-2xl-font-weight); - line-height: var(--ds-heading-2xl-line-height); - font-size: var(--ds-heading-2xl-font-size); - letter-spacing: var(--ds-heading-2xl-letter-spacing); + font-weight: var(--ds-heading-2xl-font-weight); + line-height: var(--ds-heading-2xl-line-height); + font-size: var(--ds-heading-2xl-font-size); + letter-spacing: var(--ds-heading-2xl-letter-spacing); + } } /** Ingress */ - .ds-ingress { --dsc-bottom-spacing: var(--ds-spacing-5); - margin: 0; color: var(--ds-color-neutral-text-default); -} - -.ds-ingress--spacing { - margin-bottom: var(--dsc-bottom-spacing); -} - -.ds-ingress--xs { - --dsc-bottom-spacing: var(--ds-spacing-8); + font-size: var(--ds-ingress-md-font-size); + font-weight: var(--ds-ingress-md-font-weight); + letter-spacing: var(--ds-ingress-md-letter-spacing); + line-height: var(--ds-ingress-md-line-height); + margin: 0; - font-weight: var(--ds-ingress-xs-font-weight); - line-height: var(--ds-ingress-xs-line-height); - font-size: var(--ds-ingress-xs-font-size); - letter-spacing: var(--ds-ingress-xs-letter-spacing); -} + &[data-spacing] { + margin-bottom: var(--dsc-bottom-spacing); + } -.ds-ingress--sm { - --dsc-bottom-spacing: var(--ds-spacing-7); + &[data-size='xs'] { + --dsc-bottom-spacing: var(--ds-spacing-8); - font-weight: var(--ds-ingress-sm-font-weight); - line-height: var(--ds-ingress-sm-line-height); - font-size: var(--ds-ingress-sm-font-size); - letter-spacing: var(--ds-ingress-sm-letter-spacing); -} + font-weight: var(--ds-ingress-xs-font-weight); + line-height: var(--ds-ingress-xs-line-height); + font-size: var(--ds-ingress-xs-font-size); + letter-spacing: var(--ds-ingress-xs-letter-spacing); + } -.ds-ingress--md { - --dsc-bottom-spacing: var(--ds-spacing-5); + &[data-size='sm'] { + --dsc-bottom-spacing: var(--ds-spacing-7); - font-weight: var(--ds-ingress-md-font-weight); - line-height: var(--ds-ingress-md-line-height); - font-size: var(--ds-ingress-md-font-size); - letter-spacing: var(--ds-ingress-md-letter-spacing); -} + font-weight: var(--ds-ingress-sm-font-weight); + line-height: var(--ds-ingress-sm-line-height); + font-size: var(--ds-ingress-sm-font-size); + letter-spacing: var(--ds-ingress-sm-letter-spacing); + } -.ds-ingress--lg { - --dsc-bottom-spacing: var(--ds-spacing-6); + &[data-size='lg'] { + --dsc-bottom-spacing: var(--ds-spacing-6); - font-weight: var(--ds-ingress-lg-font-weight); - line-height: var(--ds-ingress-lg-line-height); - font-size: var(--ds-ingress-lg-font-size); - letter-spacing: var(--ds-ingress-lg-letter-spacing); + font-weight: var(--ds-ingress-lg-font-weight); + line-height: var(--ds-ingress-lg-line-height); + font-size: var(--ds-ingress-lg-font-size); + letter-spacing: var(--ds-ingress-lg-letter-spacing); + } } /** Paragraph */ @@ -308,103 +297,92 @@ } /** Label */ - .ds-label { --dsc-bottom-spacing: var(--ds-spacing-1); + color: var(--ds-color-neutral-text-default); display: inline-block; + font-size: var(--ds-label-md-font-size); + font-weight: var(--ds-label-md-font-weight); + letter-spacing: var(--ds-label-md-letter-spacing); + line-height: var(--ds-label-md-line-height); margin: 0; padding: 0; - color: var(--ds-color-neutral-text-default); -} -.ds-label--spacing { - margin-bottom: var(--dsc-bottom-spacing); -} - -.ds-label--xs { - font-weight: var(--ds-label-xs-font-weight); - line-height: var(--ds-label-xs-line-height); - font-size: var(--ds-label-xs-font-size); - letter-spacing: var(--ds-label-xs-letter-spacing); -} + &[data-spacing] { + margin-bottom: var(--dsc-bottom-spacing); + } -.ds-label--sm { - font-weight: var(--ds-label-sm-font-weight); - line-height: var(--ds-label-sm-line-height); - font-size: var(--ds-label-sm-font-size); - letter-spacing: var(--ds-label-sm-letter-spacing); -} + &[data-size='xs'] { + font-weight: var(--ds-label-xs-font-weight); + line-height: var(--ds-label-xs-line-height); + font-size: var(--ds-label-xs-font-size); + letter-spacing: var(--ds-label-xs-letter-spacing); + } -.ds-label--md { - font-weight: var(--ds-label-md-font-weight); - line-height: var(--ds-label-md-line-height); - font-size: var(--ds-label-md-font-size); - letter-spacing: var(--ds-label-md-letter-spacing); -} + &[data-size='sm'] { + font-weight: var(--ds-label-sm-font-weight); + line-height: var(--ds-label-sm-line-height); + font-size: var(--ds-label-sm-font-size); + letter-spacing: var(--ds-label-sm-letter-spacing); + } -.ds-label--lg { - font-weight: var(--ds-label-lg-font-weight); - line-height: var(--ds-label-lg-line-height); - font-size: var(--ds-label-lg-font-size); - letter-spacing: var(--ds-label-lg-letter-spacing); + &[data-size='lg'] { + font-weight: var(--ds-label-lg-font-weight); + line-height: var(--ds-label-lg-line-height); + font-size: var(--ds-label-lg-font-size); + letter-spacing: var(--ds-label-lg-letter-spacing); + } } -/** Error message */ - +/** Validation message */ .ds-validation-message { --dsc-bottom-spacing: var(--ds-spacing-5); + font-size: var(--ds-error_message-md-font-size); + font-weight: var(--ds-error_message-md-font-weight); + letter-spacing: var(--ds-error_message-md-letter-spacing); + line-height: var(--ds-error_message-md-line-height); margin: 0; -} - -.ds-validation-message--error { - color: var(--ds-color-danger-text-subtle); -} - -.ds-validation-message--spacing { - margin-bottom: var(--dsc-bottom-spacing); -} -.ds-validation-message--xs { - --dsc-bottom-spacing: var(--ds-spacing-3); + &[data-error] { + color: var(--ds-color-danger-text-subtle); + } - font-weight: var(--ds-error_message-xs-font-weight); - line-height: var(--ds-error_message-xs-line-height); - font-size: var(--ds-error_message-xs-font-size); - letter-spacing: var(--ds-error_message-xs-letter-spacing); -} + &[data-spacing] { + margin-bottom: var(--dsc-bottom-spacing); + } -.ds-validation-message--sm { - --dsc-bottom-spacing: var(--ds-spacing-4); + &[data-size='xs'] { + --dsc-bottom-spacing: var(--ds-spacing-3); - font-weight: var(--ds-error_message-sm-font-weight); - line-height: var(--ds-error_message-sm-line-height); - font-size: var(--ds-error_message-sm-font-size); - letter-spacing: var(--ds-error_message-sm-letter-spacing); -} + font-weight: var(--ds-error_message-xs-font-weight); + line-height: var(--ds-error_message-xs-line-height); + font-size: var(--ds-error_message-xs-font-size); + letter-spacing: var(--ds-error_message-xs-letter-spacing); + } -.ds-validation-message--md { - --dsc-bottom-spacing: var(--ds-spacing-5); + &[data-size='sm'] { + --dsc-bottom-spacing: var(--ds-spacing-4); - font-weight: var(--ds-error_message-md-font-weight); - line-height: var(--ds-error_message-md-line-height); - font-size: var(--ds-error_message-md-font-size); - letter-spacing: var(--ds-error_message-md-letter-spacing); -} + font-weight: var(--ds-error_message-sm-font-weight); + line-height: var(--ds-error_message-sm-line-height); + font-size: var(--ds-error_message-sm-font-size); + letter-spacing: var(--ds-error_message-sm-letter-spacing); + } -.ds-validation-message--lg { - --dsc-bottom-spacing: var(--ds-spacing-5); + &[data-size='lg'] { + --dsc-bottom-spacing: var(--ds-spacing-5); - font-weight: var(--ds-error_message-lg-font-weight); - line-height: var(--ds-error_message-lg-line-height); - font-size: var(--ds-error_message-lg-font-size); - letter-spacing: var(--ds-error_message-lg-letter-spacing); + font-weight: var(--ds-error_message-lg-font-weight); + line-height: var(--ds-error_message-lg-line-height); + font-size: var(--ds-error_message-lg-font-size); + letter-spacing: var(--ds-error_message-lg-letter-spacing); + } } /** Font weight ** used for weight on Label */ - .ds-font-weight--medium { font-weight: var(--ds-font-weight-medium); } @@ -419,7 +397,6 @@ /** Line height ** used for long, short Paragraph */ - .ds-line-height--sm { line-height: var(--ds-line-height-sm); } diff --git a/packages/react/src/components/Typography/Heading/Heading.tsx b/packages/react/src/components/Typography/Heading/Heading.tsx index 2a6c5cc74e..49d70f39bd 100644 --- a/packages/react/src/components/Typography/Heading/Heading.tsx +++ b/packages/react/src/components/Typography/Heading/Heading.tsx @@ -30,25 +30,20 @@ export type HeadingProps = { * Heading */ export const Heading = forwardRef( - ( + function Heading( { size = 'xl', level = 2, spacing = false, className, asChild, ...rest }, ref, - ) => { + ) { const Component = asChild ? Slot : (`h${level}` as ElementType); return ( ); }, ); - -Heading.displayName = 'Heading'; diff --git a/packages/react/src/components/Typography/Ingress/Ingress.tsx b/packages/react/src/components/Typography/Ingress/Ingress.tsx index 9b05e7c1f1..033a932ea1 100644 --- a/packages/react/src/components/Typography/Ingress/Ingress.tsx +++ b/packages/react/src/components/Typography/Ingress/Ingress.tsx @@ -24,22 +24,17 @@ export type IngressProps = { * Ingress */ export const Ingress = forwardRef( - ({ size = 'md', className, spacing, asChild, ...rest }, ref) => { + function Ingress({ size = 'md', className, spacing, asChild, ...rest }, ref) { const Component = asChild ? Slot : 'p'; return ( ); }, ); - -Ingress.displayName = 'Ingress'; diff --git a/packages/react/src/components/Typography/Label/Label.tsx b/packages/react/src/components/Typography/Label/Label.tsx index 809ebae1da..ef19ce00fb 100644 --- a/packages/react/src/components/Typography/Label/Label.tsx +++ b/packages/react/src/components/Typography/Label/Label.tsx @@ -29,27 +29,23 @@ export type LabelProps = { * @example * */ -export const Label = forwardRef( - ( - { className, spacing, size = 'md', weight = 'medium', asChild, ...rest }, - ref, - ) => { - const Component = asChild ? Slot : 'label'; +export const Label = forwardRef(function Label( + { className, spacing, size = 'md', weight = 'medium', asChild, ...rest }, + ref, +) { + const Component = asChild ? Slot : 'label'; - return ( - - ); - }, -); - -Label.displayName = 'Label'; + return ( + + ); +}); diff --git a/packages/react/src/components/Typography/ValidationMessage/ValidationMessage.tsx b/packages/react/src/components/Typography/ValidationMessage/ValidationMessage.tsx index 205d3eb9f7..0dd505dcec 100644 --- a/packages/react/src/components/Typography/ValidationMessage/ValidationMessage.tsx +++ b/packages/react/src/components/Typography/ValidationMessage/ValidationMessage.tsx @@ -32,14 +32,11 @@ export const ValidationMessage = forwardRef< return ( );