Announcements for Canvas updates, bug fixes, and new releases.
Canvas Kit v8 will be released on November 2nd, 2022. An upgrade guide will be available once v8 goes live to assist product teams with their migration to the newest version of Canvas Kit.
Note: Due to an unintentional release of Canvas Kit v8.0.0 earlier this year, Canvas Kit v8 will be released as v8.0.1 to maintain semantic versioning. Teams looking to upgrade to v8 should skip v8.0.0 and upgrade straight to v8.0.1 as the accidental release of v8.0.0 has already been deprecated.
The table below contains a high-level overview of the updates that will be rolled out as part of the v8 release. The impact for developers are defined as follows:
- None: inapplicable to the role or no actions are required for users to adopt the change; Updates will be applied automatically once users upgrade to Canvas Kit v8
- Low: minor changes are required for users to adopt the change
- Medium: a moderate amount of changes are required for users to adopt the change, such as switching out UI elements
- High: a large amount of changes are required for users to adopt the change, requiring product teams to make major design or development decisions
|Change||Short Description||Developer Impact|
|React 18 Upgrade||Canvas Kit will be upgrading to React 18, but will still maintain support for the same React versions as v7||None|
|Breadcrumbs Collection Enhancements||The new Collection Systems introduced in v7 will be added to Breadcrumbs, which will also be promoted to the Main package||Low|
|Component Name Alignment||Updated component names in Canvas documentation to align all Canvas touchpoints||None|
|Depth Update for Menu||The Menu in the Main package will be updated to use depth 3 instead of depth 1||None|
|New Responsive Utilities||New responsive utilities will be released that will allow teams to take a container size and easily adjust styles based on their current breakpoint range||None|
|New Grid Component||A new Grid component will be released in Canvas Kit to help developers create a grid system with Canvas. Documentation for the new Grid will be available on the Canvas Design System site within the Layout page||None|
|New Text Components||New Text components will be released in Canvas Kit to help developers quickly switch between different type token||None|
|Updated Tabs Documentation||The Tabs documentation will be updated to provide guidance for touch based tabs||None|
|New Touch and Responsive Behavior for Modal||New touch and responsive based behavior will be added to Modal in Canvas Kit, along with updated documentation||None|
|Component Soft Deprecations||Drawer, Menu (in Preview), and Layout will be soft deprecated||None|
|New and Updated Documentation||Updated documentation for Modal, Popup, and Tooltip. New documentation for FormField||None|
|Default Export Clean Up||Leftover default exports will be removed from Canvas Kit components||None|
|Internet Explorer 11 Deprecation||IE specific code will be removed from Canvas Kit||None|
|Testing Components and Utilities Promotion||Several testing components and utilities will be promoted to ||None|
|Refactor and Reorganize Style Props||Style props implementation will be refactored and reorganized as general clean up and improve documentation||None|
|Redesigned Status Indicator Component||A new redesigned Status Indicator component with Title Casing will be added to the Preview package||None|
|Redesigned Segmented Control Component||A new redesigned Segmented Control component will be added to the Preview package||None|
|Default Update for Popup Close Buttons||Update close buttons for Popup, Modal, and Dialog to default to ||None|
|Action Bar Overflow Button Refactoring||The hard-coded OverflowButton in Action Bar will be refactored to allow users to modify and pass props into it||None|
|Utility Soft Deprecations||None|
Canvas Kit will be upgraded to React 18 as part of the v8 release. This will not include any other dependency updates. However, Canvas Kit will continue to support React 16.14, React 17.X, and React 18.X in v8.
This change will not impact product teams that are already on v7 and are looking to upgrade to v8 as v8 will support the same React versions as v7 while still giving teams the ability to upgrade to React 18 as needed.
The Collection System released in Canvas Kit v7 will be added to the Breadcrumbs component, which will help optimize Breadcrumbs and resolve some of the issues associated with the current Breadcrumbs component. The new Collection System will introduce some visual changes into Breadcrumbs, so to maintain the same visual design, the following updates will also be made to the Menu in Breadcrumbs:
- Max Width: No max width → 280px
- Max Height: 200px → 296px
These Menu updates are specific to the Menu embedded into Breadcrumbs, not the standalone Menu component in the Main or Preview package. With this enhancement, Breadcrumbs will also be promoted to the Main package.
A codemod will be available to help most teams transition to the new v8 Breadcrumbs. However, teams using
Breadcrumbs.CollapsibleList will not be able to use codemods for this update. For additional information, please view our GitHub discussion to assist with the Breadcrumbs update.
The Loading Animation component documentation, along with all other mentions of Loading Animation on the Canvas Design System site, has been updated to reference "Loading Dots" instead. Additionally, the Loading Animation in Canvas Kit has also been renamed to
LoadingDots. This is being done to create a clearer distinction between Loading Dots and loading animation, which can be used to describe a wide variety of UI elements (ex: Loading Dots, Skeleton) that are used to indicate that content is being loaded.
A codemod will handle this change when developers upgrade to v8. No additional action will be required to uptake this change.
The Menu in Canvas Kit’s Main package will be updated to use Depth 3 instead of Depth 1.
Changes will be applied automatically, and no actions will be required for developers to uptake this change.
The following Canvas Kit responsive utilities will be released as part of v8:
- useResponsiveContainerStyles: A hook that allows developers to create container-based responsive styles using style objects.
This is a net-new utility that developers can opt-in to start using, but no action is required to uptake this change.
A new Grid component created using CSS Grids will be released in the Main package in Canvas Kit to help developers create grid systems to align their product(s). Since this is a net-new component, no action will be required to uptake this change. However, it is recommended for teams using the current Layout component in Canvas Kit to switch over to this new Grid component as Layout will be soft deprecated in v8 (more information will be provided in the sections below).
The following Text components will be released in v8 to help developers quickly apply and switch between different type tokens:
The Text component will also allow developers to set text styles for component groupings. These will all be net-new components so no action will be required for developers to uptake this change.
The Tabs documentation will be updated to provide additional usage guidance for touch based Tabs.
This update will not impact developers since it is being rolled out on the Canvas Design System site.
The Modal component will be updated to include new touch and responsive behaviors. Users interacting with Modal on touch will not be able to exit out of the Modal by tapping on the overlay. The responsive Modal component will be displayed when users are browsing on screen sizes between 320px and 768px and will have the following visual differences compared to the standard Modal:
- Corner Radius: 8px → 24px
- Padding: 32px → 24px
- Line Spacing between
Modal.Body: 24px → 16px
The Modal documentation on the Canvas Design System site will be updated to reflect the new touch and responsive behavior. No action will be required for developers to uptake this change. The new touch and responsive behaviors will be applied automatically as teams upgrade to v8.
Drawer, Layout, and Menu (in Preview) will be soft deprecated in v8. Warnings will be added to notify users about the soft deprecation and subsequent hard deprecation in v9. The components will also be renamed to indicate that they are being deprecated.
These components will still be available for use in Canvas Kit v8, but will be accompanied by the deprecation warnings mentioned above. Codemods will be available to help developers uptake the component name changes as part of the soft deprecation, but developers using:
- Drawer should start switching over to the Side Panel component in Preview, which contains the same capabilities as Drawer (and more!)
- Layout should switch over to the new Grid component that will be released in v8
- Menu in Preview should start switching over to the most updated Menu component in the Main package
New usage guidance will be released for the Modal and Popup documentation on the Canvas Design System site. The Tooltip documentation will be updated to include additional guidance for text wrapping and new documentation will be released for FormField.
The remaining default exports leftover in Canvas Kit will be removed as part of general Canvas Kit maintenance. A codemod will be available to help developers uptake the change and no actions will be required.
Canvas will stop supporting IE11 in v8. The IE11 deprecation will include:
- Removing IE specific code from Canvas Kit
- Turning off Chromatic for IE
No action will be required from developers to uptake this change. However, teams supporting IE11 should note that certain components and utilities may be built that IE11 cannot support. This means applications built using Canvas Kit React v8 and beyond may not be loaded or not work properly for users accessing it through IE11.
The following testing components and utilities from the Common and Labs package will be promoted to a new package,
@workday/canvas-kit-react/testing, which will only be used for visual testing purposes:
A codemod will be available to help developers uptake this change, but no additional actions will be required.
Style props will be reorganized and the implementation will be refactored, but the functionality will remain the same. This will improve the style prop documentation and allow Canvas to extend style props further in the future. The style props
backgroundImage will be moving from the
color style prop function to a new style prop function,
These functions are intended to only be used by Canvas Kit internally, and will not impact Canvas users. However, teams importing the
color style prop function to apply these two style props will need to update their import statements to import the
background style function as well.
A new Status Indicator component with title casing will be released in Preview, which will enhance its globalization capabilities and accessibility. The new Status Indicator component will differ from the current version in the Main package in the following areas:
- Text Casing: The new Status Indicator in Preview will use title casing (ex: In Progress) instead of full capitalization (ex: IN PROGRESS) as full capitalization can be interpreted as rude or offensive in other languages.
- Typography: added 12/14 Font Size Uppercase Bold (a one-off text style) to the Subtext L (Bold) type token for increased visibility and consistency
- Icon Size: (14px, 14px) to (20px, 20px) for increased visibility
- Height: 16px to 20px to accommodate a larger font and icon
- Padding: 1px to 0px for top and bottom padding
This update will release a net-new component in the Preview package. The current Status Indicator component in the Main package will not be modified as part of this release. Developers can continue using the Status Indicator in Main and can transition to the new one in Preview as needed.
Segmented Control with text capabilities will be released in Preview to support newly identified use cases for text only variants.
Some key aspects of the component to note include:
- Usage: Best used for switching between different views of the same content. Use Tabs for switching between content that is related but not the same. Segments are mutually exclusive and can contain text and/or icons.
- Shape: The component will continue to feature squared corners to visually distinguish these controls and their purpose from Standard Buttons.
- Color: Active/selected segment is white, French Vanilla 100 with a gray, Licorice 200 border against a light gray, Soap 200 container to make these controls less prominent than Standard Buttons.
- Tooltips: Canvas Tooltips showing text labels will be added for Icon-only variants to improve accessibility for ambiguous icons.
- Container: A container around the Segmented Control component has been added.
Since it will be released as a net-new component in Preview and no updates will be made to the current Segmented Control component in Main for v8, this update will not impact developers.
CloseButton for Popup, Modal, and Dialog will be updated to use a default
type=button to prevent forms from unintentionally being submitted. This will not impact development, no action is required to uptake this change.
In v7, the Overflow Button was hardcoded and placed directly inside
ActionBar.List as part of an update to the Action Bar component. This prevented users from modifying the Overflow Button or passing props into it. To fix this issue,
ActionBar.OverflowButton will be replaced with an
A codemod will handle this change when developers upgrade to v8.
useEventMap utilities will be soft deprecated in v8. This soft deprecation adds a strike-through to the utilities in the code editor, but they will still be available for developers to use. However, teams using these utilities should switch over to the new
ToModelConfig utilities that were introduced in v7 as
useEventMap will be hard deprecated in v9. The new
ToModelConfig utilities are much more verbose, leveraging Typecript 4.1 functionalities. These new utilities will help streamline the developer experience and reduce bugs associated with the old
useEventMap are only being deprecated in v8, no action will be required from developers to uptake this change.
Can't Find What You Need?
Check out our FAQ section which may help you find the information you're looking for.FAQ Section