Canvas v8 Announcements
Announcements for Canvas v8 updates, bug fixes, and new releases.
Canvas Kit 8.6.0 Release
Canvas Kit 8.6.0 is now available.
This Canvas Kit release contains the following updates:
inset
has been added to thePositionStyle
prop to enable users to set more than one position prop with the logical property syntax- The
getColor
API has been extended toAccentIcon
which will enable it to use Canvas color tokens for color related props
This update will not impact developers. To access these changes, please upgrade to Canvas Kit 8.6.0.
Canvas Kit 8.5.0 Release
Canvas Kit 8.5.0 is now available.
This Canvas Kit release contains the following updates:
- The overall padding for
Modal
on smaller screen sizes (320px to 767px) has increased from 16px to 24px in Canvas Kit to align with Mobile - The spacing between
Modal.Heading
andModal.Body
has been reduced from 16px to 8px on smaller screen sizes (320px to 767px) - An enhancement has be applied to
SystemIcon
that enables the use of token colors - Docgen parsing has been added to enhance documentation for APIs, hooks, and more!
This update will not impact development work. To access these changes, please upgrade to Canvas Kit 8.5.0.
Canvas Kit 8.4.0 Release
The Canvas Kit React 8.4.0 is now available.
This release includes the soft deprecation of the following components:
- Stack
- VStack
- HStack
Teams using these soft deprecated components should transition to using the newly enhanced Flex component. A code mod is also available to help with the transition to Flex.
To access these changes, please upgrade to Canvas Kit 8.4.0
Canvas Kit v8 Release
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.
Release Overview
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 @workday/canvas-kit-react/testing , a new testing package | None | 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 type=button so they do not unintentionally submit forms | 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 | createEventMap and useEventMap will be soft deprecated | None |
React 18 Upgrade
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.
Breadcrumbs Collection Enhancements
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.List
or 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.
Component Name Alignment
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.
Depth Update for Menu
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.
New Responsive Utilities
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.
New Grid Component
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).
New Text Components
The following Text components will be released in v8 to help developers quickly apply and switch between different type tokens:
- Text
- LabelText
- Subtext
- BodyText
- Heading
- Title
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.
Updated Tabs Documentation
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.
New Touch and Responsive Behavior for Modal
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.Heading
andModal.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.
Component Soft Deprecations
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 and Updated Documentation
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.
Default Export Clean Up
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.
Internet Explorer 11 Deprecation
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.
Testing Components and Utilities Promotion
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:
- StaticStates
- ComponentStatesTable
- converToStaticStates
- permutateProps
- PropCombination
- Props
- PropDeclaration
A codemod will be available to help developers uptake this change, but no additional actions will be required.
Refactor and Reorganize Style Props
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 background
and backgroundImage
will be moving
from the color
style prop function to a new style prop function, background
.
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.
Redesigned Status Indicator Component
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.
Redesigned Segmented Control Component
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.
Default Update for Popup Close Buttons
The 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.
Action Bar Overflow Button Refactoring
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
overflowButton
prop.
A codemod will handle this change when developers upgrade to v8.
Utility Soft Deprecations
The createEventMap
and 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
Model
and ToModelConfig
utilities that were introduced in v7 as createEventMap
and
useEventMap
will be hard deprecated in v9. The new Model
and 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 createEventMap
and useEventMap
utilities.
Since createEventMap
and 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