diff --git a/.changeset/great-singers-stare.md b/.changeset/great-singers-stare.md new file mode 100644 index 0000000000..ee566b0fe6 --- /dev/null +++ b/.changeset/great-singers-stare.md @@ -0,0 +1,6 @@ +--- +"@twilio-paste/design-tokens": minor +"@twilio-paste/core": minor +--- + +[Design Tokens] Add new box shadow and background color tokens for elevation diff --git a/.changeset/red-mirrors-play.md b/.changeset/red-mirrors-play.md new file mode 100644 index 0000000000..d514eca3fc --- /dev/null +++ b/.changeset/red-mirrors-play.md @@ -0,0 +1,22 @@ +--- +"@twilio-paste/callout": patch +"@twilio-paste/chat-composer": patch +"@twilio-paste/chat-log": patch +"@twilio-paste/combobox": patch +"@twilio-paste/input": patch +"@twilio-paste/input-box": patch +"@twilio-paste/menu": patch +"@twilio-paste/minimizable-dialog": patch +"@twilio-paste/modal": patch +"@twilio-paste/popover": patch +"@twilio-paste/side-modal": patch +"@twilio-paste/side-panel": patch +"@twilio-paste/sidebar": patch +"@twilio-paste/toast": patch +"@twilio-paste/tooltip": patch +"@twilio-paste/topbar": patch +"@twilio-paste/user-dialog": patch +"@twilio-paste/core": patch +--- + +[Callout, ChatComposer, ChatLog, Combobox, Input, InputBox, Menu, MinimizableDialog, Modal, Popover, SideModal, SidePanel, Sidebar, Toast, Tooltip, Topbar, UserDialog]: Update styles to implement new elevation tokens diff --git a/packages/paste-core/components/callout/src/Callout.tsx b/packages/paste-core/components/callout/src/Callout.tsx index 91381dea94..4906be8b4f 100644 --- a/packages/paste-core/components/callout/src/Callout.tsx +++ b/packages/paste-core/components/callout/src/Callout.tsx @@ -64,7 +64,7 @@ export interface CalloutProps extends HTMLPasteProps<"div"> { const variantStyles: Record = { success: { - backgroundColor: "colorBackgroundWeak", + backgroundColor: "colorBackgroundBodyElevation", color: "colorTextSuccess", borderColor: "colorBorderSuccessWeak", }, @@ -74,17 +74,17 @@ const variantStyles: Record = { borderColor: "colorBorderErrorWeak", }, warning: { - backgroundColor: "colorBackgroundWeak", + backgroundColor: "colorBackgroundBodyElevation", color: "colorTextWarningStrong", borderColor: "colorBorderWarningWeak", }, new: { - backgroundColor: "colorBackgroundWeak", + backgroundColor: "colorBackgroundBodyElevation", color: "colorTextNew", borderColor: "colorBorderNewWeak", }, neutral: { - backgroundColor: "colorBackgroundWeak", + backgroundColor: "colorBackgroundBodyElevation", color: "colorTextNeutral", borderColor: "colorBorderNeutralWeak", }, diff --git a/packages/paste-core/components/chat-composer/src/ChatComposerAttachmentCard.tsx b/packages/paste-core/components/chat-composer/src/ChatComposerAttachmentCard.tsx index 5a78a98152..595cb75d65 100644 --- a/packages/paste-core/components/chat-composer/src/ChatComposerAttachmentCard.tsx +++ b/packages/paste-core/components/chat-composer/src/ChatComposerAttachmentCard.tsx @@ -83,11 +83,8 @@ const ChatComposerAttachmentCard = React.forwardRef = { - default: {}, + default: { + backgroundColor: "colorBackgroundWeaker", + }, contained: { - borderWidth: "borderWidth10", - borderStyle: "solid", borderRadius: "borderRadius30", - borderColor: "colorBorderWeaker", - boxShadow: "shadowLow", - backgroundColor: "colorBackgroundBody", + boxShadow: "shadowElevation10", + backgroundColor: "colorBackgroundWeaker", }, }; diff --git a/packages/paste-core/components/chat-composer/src/PlaceholderWrapper.tsx b/packages/paste-core/components/chat-composer/src/PlaceholderWrapper.tsx index 0988473a26..b9ed14285b 100644 --- a/packages/paste-core/components/chat-composer/src/PlaceholderWrapper.tsx +++ b/packages/paste-core/components/chat-composer/src/PlaceholderWrapper.tsx @@ -3,28 +3,33 @@ import { Box } from "@twilio-paste/box"; import * as React from "react"; import type { ChatComposerProps } from "."; +import { ChatComposerContext } from "./ChatComposerContext"; export const PlaceholderWrapper: React.FC< React.PropsWithChildren<{ placeholder: ChatComposerProps["placeholder"]; element?: BoxProps["element"]; }> -> = ({ placeholder, element }) => ( - - {placeholder} - -); +> = ({ placeholder, element }) => { + const { isDisabled } = React.useContext(ChatComposerContext); + + return ( + + {placeholder} + + ); +}; PlaceholderWrapper.displayName = "PlaceholderWrapper"; diff --git a/packages/paste-core/components/chat-log/src/ChatBubble.tsx b/packages/paste-core/components/chat-log/src/ChatBubble.tsx index 5a98fee150..aebef6db1c 100644 --- a/packages/paste-core/components/chat-log/src/ChatBubble.tsx +++ b/packages/paste-core/components/chat-log/src/ChatBubble.tsx @@ -22,11 +22,11 @@ const bubbleVariantStyles: { [key in MessageVariants]: BoxStyleProps; } = { inbound: { - backgroundColor: "colorBackground", + backgroundColor: "colorBackgroundElevation", alignSelf: "flex-start", }, outbound: { - backgroundColor: "colorBackgroundInverseStronger", + backgroundColor: "colorBackgroundInverseStrongerElevation", alignSelf: "flex-end", color: "colorTextInverse", }, diff --git a/packages/paste-core/components/chat-log/src/ComposerAttachmentCard.tsx b/packages/paste-core/components/chat-log/src/ComposerAttachmentCard.tsx index 9dee8852b1..1b2ebd0378 100644 --- a/packages/paste-core/components/chat-log/src/ComposerAttachmentCard.tsx +++ b/packages/paste-core/components/chat-log/src/ComposerAttachmentCard.tsx @@ -62,11 +62,8 @@ const ComposerAttachmentCard = React.forwardRef ( ({ children, disabled, element = "PREFIX", variant }, ref) => { - let backgroundColor = "colorBackgroundWeak" as BackgroundColor; - let borderColor = "colorBorderWeaker" as BorderColor; + let backgroundColor = "colorBackgroundBodyElevation" as BackgroundColor; if (disabled && variant === "inverse") { backgroundColor = "none"; - borderColor = "colorBorderInverseWeaker"; } else if (variant === "inverse") { - backgroundColor = "colorBackgroundInverse"; - borderColor = "colorBorderInverse"; + backgroundColor = "colorBackgroundInverseElevation"; } else if (disabled) { backgroundColor = "none"; - borderColor = "colorBorderWeaker"; } if (children == null) return null; @@ -38,9 +34,6 @@ const Prefix = React.forwardRef( alignItems="flex-start" backgroundColor={backgroundColor} borderBottomLeftRadius="borderRadius20" - borderRightColor={borderColor} - borderRightStyle="solid" - borderRightWidth="borderWidth10" borderTopLeftRadius="borderRadius20" display="flex" element={`${element}_PREFIX`} diff --git a/packages/paste-core/components/input-box/src/Suffix.tsx b/packages/paste-core/components/input-box/src/Suffix.tsx index 6639efeb47..277bd4e661 100644 --- a/packages/paste-core/components/input-box/src/Suffix.tsx +++ b/packages/paste-core/components/input-box/src/Suffix.tsx @@ -1,6 +1,6 @@ import { Box } from "@twilio-paste/box"; import type { BoxProps } from "@twilio-paste/box"; -import type { BackgroundColor, BorderColor } from "@twilio-paste/style-props"; +import type { BackgroundColor } from "@twilio-paste/style-props"; import * as React from "react"; import type { Variants } from "./types"; @@ -18,18 +18,14 @@ export interface SuffixProps { const Suffix = React.forwardRef( ({ children, disabled, element = "SUFFIX", variant }, ref) => { - let backgroundColor = "colorBackgroundWeak" as BackgroundColor; - let borderColor = "colorBorderWeaker" as BorderColor; + let backgroundColor = "colorBackgroundBodyElevation" as BackgroundColor; if (disabled && variant === "inverse") { backgroundColor = "none"; - borderColor = "colorBorderInverseWeaker"; } else if (variant === "inverse") { - backgroundColor = "colorBackgroundInverse"; - borderColor = "colorBorderInverse"; + backgroundColor = "colorBackgroundInverseElevation"; } else if (disabled) { backgroundColor = "none"; - borderColor = "colorBorderWeaker"; } if (children == null) return null; @@ -38,9 +34,6 @@ const Suffix = React.forwardRef( alignItems="flex-start" backgroundColor={backgroundColor} borderBottomRightRadius="borderRadius20" - borderLeftColor={borderColor} - borderLeftStyle="solid" - borderLeftWidth="borderWidth10" borderTopRightRadius="borderRadius20" display="flex" element={`${element}_SUFFIX`} diff --git a/packages/paste-core/components/input/src/DecrementButton.tsx b/packages/paste-core/components/input/src/DecrementButton.tsx index 2391091844..7a34c3cd93 100644 --- a/packages/paste-core/components/input/src/DecrementButton.tsx +++ b/packages/paste-core/components/input/src/DecrementButton.tsx @@ -25,7 +25,7 @@ export const DecrementButton = React.forwardRef(({ style, . return ( >> = ({ element, children, -}) => ( - - {children} - -); +}) => { + return ( + + {children} + + ); +}; StyledMinimizableDialog.displayName = "StyledMinimizableDialog"; diff --git a/packages/paste-core/components/modal/src/Modal.tsx b/packages/paste-core/components/modal/src/Modal.tsx index 0b525f5acc..2a5fe9174f 100644 --- a/packages/paste-core/components/modal/src/Modal.tsx +++ b/packages/paste-core/components/modal/src/Modal.tsx @@ -54,11 +54,8 @@ export const ModalDialogContent = animated( maxHeight: "90%", minHeight: "170px", backgroundColor: "colorBackgroundBody", - borderColor: "colorBorderWeaker", borderRadius: "borderRadius30", - borderStyle: "solid", - borderWidth: "borderWidth10", - boxShadow: "shadow", + boxShadow: "shadowElevationTop20", display: "flex", flexDirection: "column", }), diff --git a/packages/paste-core/components/popover/src/Popover.tsx b/packages/paste-core/components/popover/src/Popover.tsx index 06d19e024a..55f159d742 100644 --- a/packages/paste-core/components/popover/src/Popover.tsx +++ b/packages/paste-core/components/popover/src/Popover.tsx @@ -17,12 +17,9 @@ const StyledPopover = React.forwardRef(({ style, width ( display="grid" gridTemplateRows="auto 1fr auto" height="100vh" - backgroundColor="colorBackgroundBody" - boxShadow="shadow" + backgroundColor="colorBackgroundWeaker" + boxShadow="shadowElevationLeft20" width="size80" > {children} diff --git a/packages/paste-core/components/side-panel/src/SidePanel.tsx b/packages/paste-core/components/side-panel/src/SidePanel.tsx index 93b8949f89..86c52725d7 100644 --- a/packages/paste-core/components/side-panel/src/SidePanel.tsx +++ b/packages/paste-core/components/side-panel/src/SidePanel.tsx @@ -49,6 +49,7 @@ const StyledSidePanelWrapper = React.forwardRef((props width={["100%", "size40", "size40"]} height={props.height} boxSizing="content-box" + backgroundColor="colorBackgroundWeaker" /> )); @@ -110,13 +111,11 @@ const SidePanelContents = React.forwardRef { - const { colorBackgroundBody, colorBackgroundStrong, colorBackgroundStronger } = theme.backgroundColors; + const { colorBackgroundBody, colorBackgroundElevation, colorBackgroundStrongElevation } = theme.backgroundColors; return css({ // Scrollbar @@ -23,12 +23,12 @@ const SidePanelBodyWrapper = styled.div(({ theme }: { theme: ThemeShape }) => { }, // Handle "::-webkit-scrollbar-thumb": { - background: colorBackgroundStrong, + background: colorBackgroundElevation, borderRadius: "10px", }, // Handle on hover "::-webkit-scrollbar-thumb:hover": { - background: colorBackgroundStronger, + background: colorBackgroundStrongElevation, }, }); }); diff --git a/packages/paste-core/components/side-panel/stories/components/SidePanelWithAIContent.tsx b/packages/paste-core/components/side-panel/stories/components/SidePanelWithAIContent.tsx index 8c792ac365..6fc5267a6d 100644 --- a/packages/paste-core/components/side-panel/stories/components/SidePanelWithAIContent.tsx +++ b/packages/paste-core/components/side-panel/stories/components/SidePanelWithAIContent.tsx @@ -10,7 +10,6 @@ import { ArtificialIntelligenceIcon } from "@twilio-paste/icons/esm/ArtificialIn import { AttachIcon } from "@twilio-paste/icons/esm/AttachIcon"; import { MoreIcon } from "@twilio-paste/icons/esm/MoreIcon"; import { SendIcon } from "@twilio-paste/icons/esm/SendIcon"; -import { Separator } from "@twilio-paste/separator"; import * as React from "react"; import { SidePanel, SidePanelBody, SidePanelFooter, SidePanelHeader, SidePanelHeaderActions } from "../../src"; @@ -29,7 +28,6 @@ export const SidePanelWithAIContent: React.FC = () => { - diff --git a/packages/paste-core/components/side-panel/stories/components/SidePanelWithFilterContent.tsx b/packages/paste-core/components/side-panel/stories/components/SidePanelWithFilterContent.tsx index cd4f60cd80..f4f25ca83b 100644 --- a/packages/paste-core/components/side-panel/stories/components/SidePanelWithFilterContent.tsx +++ b/packages/paste-core/components/side-panel/stories/components/SidePanelWithFilterContent.tsx @@ -6,7 +6,6 @@ import { Button } from "@twilio-paste/button"; import { Disclosure, DisclosureContent, DisclosureHeading } from "@twilio-paste/disclosure"; import { Heading } from "@twilio-paste/heading"; import { Radio, RadioGroup } from "@twilio-paste/radio-group"; -import { Separator } from "@twilio-paste/separator"; import * as React from "react"; import { SidePanel, SidePanelBody, SidePanelFooter, SidePanelHeader } from "../../src"; @@ -19,7 +18,6 @@ export const SidePanelWithFilterContent: React.FC = () More filters - diff --git a/packages/paste-core/components/sidebar/src/Sidebar.tsx b/packages/paste-core/components/sidebar/src/Sidebar.tsx index 309f5c53bc..144fe3be56 100644 --- a/packages/paste-core/components/sidebar/src/Sidebar.tsx +++ b/packages/paste-core/components/sidebar/src/Sidebar.tsx @@ -18,9 +18,7 @@ const StyledSidebar = React.forwardRef((props, ref) => display="flex" flexDirection="column" ref={ref} - borderRightStyle="solid" - borderRightWidth="borderWidth10" - borderRightColor="colorBorderInverseWeaker" + boxShadow="shadowElevationRightInverse05" backgroundColor="colorBackgroundInverse" zIndex="zIndex50" position="fixed" diff --git a/packages/paste-core/components/sidebar/src/SidebarSkipLinks.tsx b/packages/paste-core/components/sidebar/src/SidebarSkipLinks.tsx index e37d033bd1..20704ebb47 100644 --- a/packages/paste-core/components/sidebar/src/SidebarSkipLinks.tsx +++ b/packages/paste-core/components/sidebar/src/SidebarSkipLinks.tsx @@ -11,7 +11,7 @@ export const SidebarSkipLinkContainer: React.FC { - const { colorBackgroundInverse, colorBackgroundInverseStronger } = theme.backgroundColors; + const { colorBackgroundInverse, colorBackgroundInverseStrongerElevation, colorBackgroundInverseStrongElevation } = + theme.backgroundColors; return css({ overflowScrolling: "touch", @@ -36,12 +37,12 @@ const SidebarNavigationWrapper = styled.nav(({ theme }: { theme: ThemeShape }) = }, // Handle "::-webkit-scrollbar-thumb": { - background: colorBackgroundInverseStronger, + background: colorBackgroundInverseStrongElevation, borderRadius: "10px", }, // Handle on hover "::-webkit-scrollbar-thumb:hover": { - background: colorBackgroundInverseStronger, + background: colorBackgroundInverseStrongerElevation, }, }); }); diff --git a/packages/paste-core/components/toast/src/ErrorToast.tsx b/packages/paste-core/components/toast/src/ErrorToast.tsx index 70a5076d44..3b107f9f20 100644 --- a/packages/paste-core/components/toast/src/ErrorToast.tsx +++ b/packages/paste-core/components/toast/src/ErrorToast.tsx @@ -15,7 +15,7 @@ const ErrorToast = React.forwardRef(({ element = "TO borderRadius="borderRadius30" borderStyle="solid" borderWidth="borderWidth10" - boxShadow="shadowHigh" + boxShadow="shadowElevation20" element={element} padding="space60" variant={variant} diff --git a/packages/paste-core/components/toast/src/NeutralToast.tsx b/packages/paste-core/components/toast/src/NeutralToast.tsx index 4d84309ac9..38982ea92c 100644 --- a/packages/paste-core/components/toast/src/NeutralToast.tsx +++ b/packages/paste-core/components/toast/src/NeutralToast.tsx @@ -15,7 +15,7 @@ const NeutralToast = React.forwardRef(({ element = " borderRadius="borderRadius30" borderStyle="solid" borderWidth="borderWidth10" - boxShadow="shadowHigh" + boxShadow="shadowElevation20" element={element} padding="space60" variant={variant} diff --git a/packages/paste-core/components/toast/src/SuccessToast.tsx b/packages/paste-core/components/toast/src/SuccessToast.tsx index d0be2fc2ae..51326a21cf 100644 --- a/packages/paste-core/components/toast/src/SuccessToast.tsx +++ b/packages/paste-core/components/toast/src/SuccessToast.tsx @@ -15,7 +15,7 @@ const SuccessToast = React.forwardRef(({ element = " borderRadius="borderRadius30" borderStyle="solid" borderWidth="borderWidth10" - boxShadow="shadowHigh" + boxShadow="shadowElevation20" element={element} padding="space60" variant={variant} diff --git a/packages/paste-core/components/toast/src/WarningToast.tsx b/packages/paste-core/components/toast/src/WarningToast.tsx index d148f83ca4..1d6a698f8c 100644 --- a/packages/paste-core/components/toast/src/WarningToast.tsx +++ b/packages/paste-core/components/toast/src/WarningToast.tsx @@ -15,7 +15,7 @@ const WarningToast = React.forwardRef(({ element = " borderRadius="borderRadius30" borderStyle="solid" borderWidth="borderWidth10" - boxShadow="shadowHigh" + boxShadow="shadowElevation20" element={element} padding="space60" variant={variant} diff --git a/packages/paste-core/components/tooltip/src/Tooltip.tsx b/packages/paste-core/components/tooltip/src/Tooltip.tsx index 06f6a55d2d..d6cc8c384d 100644 --- a/packages/paste-core/components/tooltip/src/Tooltip.tsx +++ b/packages/paste-core/components/tooltip/src/Tooltip.tsx @@ -15,11 +15,9 @@ const StyledTooltip = React.forwardRef(({ style, eleme return ( > = (prop ); }; diff --git a/packages/paste-core/components/topbar/src/Topbar.tsx b/packages/paste-core/components/topbar/src/Topbar.tsx index 08ec28b985..d3294280a6 100644 --- a/packages/paste-core/components/topbar/src/Topbar.tsx +++ b/packages/paste-core/components/topbar/src/Topbar.tsx @@ -29,10 +29,8 @@ export const Topbar = React.forwardRef( element={element} width="100%" minHeight="sizeTopbar" - backgroundColor="colorBackgroundWeak" - borderBottomWidth="borderWidth10" - borderBottomStyle="solid" - borderBottomColor="colorBorderWeaker" + backgroundColor="colorBackgroundWeakElevation" + boxShadow="shadowElevationBottom05" paddingX="space70" position="sticky" top="0" diff --git a/packages/paste-core/components/user-dialog/src/UserDialog.tsx b/packages/paste-core/components/user-dialog/src/UserDialog.tsx index 539eebd49f..114e4792c4 100644 --- a/packages/paste-core/components/user-dialog/src/UserDialog.tsx +++ b/packages/paste-core/components/user-dialog/src/UserDialog.tsx @@ -23,9 +23,7 @@ const UserDialogPopover = React.forwardRef { - Side Panel content goes here. @@ -144,7 +143,6 @@ export const SidePanelExample = (): React.ReactNode => { - Side Panel content goes here.