4.5.0 - 2024-12-18
Added
- Added a
triggerMode
prop to theColorSelector
component. Enabling the rendering of aAddColorButton
as a trigger. - Added a
onDeleteColor
prop to theColorSelector
component, when a callback is provided it adds a delete button in the picker flyout. - Added a
onOpen
andonClose
prop to theColorSelector
component. - Added a
labelMarker
prop to theFormField
component. When provided, it renders a marker next to the label (e.g. "optional"). - Added
thumbnailPadding
andthumbnailBackground
props toImageCard
to allow for custom svg support on theImageCard
component.
Fixed
- Fixed an issue where the text in the
Pill
andInputPill
components would overflow incorrectly whentruncate
was set tofalse
. No considerable visual changes are expected, but a minor width change may be present for truncated pills. - Fixed an issue where arrow navigation in the
FlyoutMenu
component would not focus in some scenarios of nested FlyoutMenus. - Other minor fixes and improvements.
4.4.0 - 2024-11-26
Changed
- Reduced the size of the HorizontalCard thumbnail to match other card components
Added
- Updated labels on
CheckboxGroup
,Checkbox
,FormField
,RadioGroup
andSwitch
to allow for React.ReactNode
Fixed
- Set the default delimiters for
PillsInput
to be [','
,';'
,' '
] - Updated
AppUiProvider
component to support multiple mounts. - Fixed broken paste behavior when string without delimiters are pasted into
PillsInput
- Fixed
Tab
contents display when overflowing as it would squash its contents.
4.3.0 - 2024-11-13
Added
- Added screen reader announcements for
PillsInput
. - Added the following icons:
LayoutIcon
ChartLineIcon
GlobeIcon
- Added the ability to group options in the
Select
component. - Added a
description
prop to theCheckbox
,CheckboxGroup
andRadioGroup
components.
4.2.0 - 2024-10-30
Added
- Added the following components:
HorizontalCard
- Added the following icons:
ImageIcon
- Added a
topEnd
prop (with visibility control) to theAudioCard
component, to add an icon button decorator to the top end corner of the card. - Added a
"small"
size for thePill
component. - Added improved
onDrag
behaviour to theAudio
,Video
,Embed
, andImage
Cards. They now hide their preview automatically when dragging (if dragging is enabled) and the preview is used as the drag image under the mouse cursor. - Added a peer dependency on Mobx
v6.13.3
or later, due to an incompatibility with prior patches that would make components fail to update correctly.
Changed
- Updated the
TabPanel
andTabPanels
flex grow behavior to always fill to outerTabs
height regardless if is "fill", "fixed" or "auto". Resolves an issue where theTabPanel
content was not filling the height of theTabs
component.
Fixed
- Fixed an issue where the text was being truncated for the
FlyoutMenu
component's trigger button. - Fixed an issue where the
FlyoutMenu
component was flickering on open due to React v18 changes. - Other minor fixes and improvements.
4.1.0 - 2024-10-14
Added
- Added a
showTooltip
prop to thePill
component. - Added a
thumbnailAspectRatio
prop to theImageCard
, which can be used withthumbnailHeight
and theCarousel
component to make carousels of fixed-height thumbnails with variable widths.
Fixed
- Fixed an issue where the
Button
tooltipDescription was not being used by screen readers. - Fixed an issue where a disabled
AudioCard
could be dragged. - Fixed a Safari display problem for
Tab
labels. - Fixed a layout issue to the FileInput in button mode that caused multiple scrollbars in apps.
4.0.0 - 2024-09-23
Removed
- Breaking: Removed the "xlarge"
size
option from theTitle
andText
components, please use the "large" size instead. - Breaking: Removed the "neutral"
tone
option from theBadge
component, it is recommend to use the "contrast" tone instead. - Breaking: Removed the "large"
size
from theLoadingIndicator
component. - Breaking: Removed the "center"
align
option from theTabList
component. - Breaking: Removed the
state
prop from theInputPill
component, the default state now becomes only "default". - Breaking: Removed the
tone
prop from theProgressBar
component. - Breaking: Removed the
size
prop from theSwatch
component. - Breaking: Removed the
MoreVerticalIcon
icon, as outlined in a previous release, theMoreHorizontalIcon
is recommended instead.
Changed
- Breaking: Changed the
alt
prop to be required for theImageCard
component. - Updated the styling of the
Slider
component, the shadow on the slider knob is now removed when in a "disabled" state. - Updated the behavior of the
NumberInput
component, a decimal (".") is now permitted as the first character.
Added
- Added Localization support across all App UI Kit components.
- With the introduction of Canva Apps Localization, all messaging within apps can now go through the Canva Translation process.
- Additionally all auxiliary messaging that cannot be directly managing in components are also now automatically translated when respective languages are preferred.
- Additionally added LTR (left-to-right) and RTL (right-to-left) content direction support to pair with the addition of Apps Localization.
- Added a
pressed
prop to theButton
component, for only "secondary" and "tertiary" variants. - Added a "contrast" option to the
variant
prop for theButton
component. - Added the following icons:
ArrowMultiDirectionalIcon
CopyPlusIcon
DatabaseIcon
LineWeightsIcon
MoveLayerDownIcon
MoveLayerUpIcon
SpacingIcon
TextSpacingIcon
Fixed
- Fixed an issue with the
Tabs
components where theTab
tooltip would snap to the start when theTabList
component had thealign
prop set to "stretch". - Fixed an issue where the
PillsInput
component would not display a grayed background when thedisabled
prop was set to true. - Other minor fixes and improvements.
Canva's app submission process requires a single app bundle. Implementing localization might increase the size of the app and cause webpack to split the bundle into multiple chunks. If this happens, you can force webpack to emmit a single bundle using the LimitChunkCountPlugin:
In your webpack.config.js
:
- Add the
optimize
module to thewebpack
import:
- const { DefinePlugin } = require("webpack");+ const { DefinePlugin, optimize } = require("webpack");
- In the
plugins
add the chunk limit before buildDevConfig is called. Modify the plugins definition:
plugins: [new DefinePlugin({BACKEND_HOST: JSON.stringify(backendHost),}),+ new optimize.LimitChunkCountPlugin({ maxChunks: 1 }),],
3.8.0 - 2024-08-05
Added
- Added the following components:
DateInput
FlyoutMenu
FlyoutMenuDivider
FlyoutMenuItem
InputPill
PillsInput
Scrollable
Fixed
- Fixed the heading size of the
Accordion
component.
3.7.0 - 2024-07-23
Added
- Added the following components:
Accordion
AccordionItem
Flyout
Menu
MenuDivider
MenuItem
SearchInputMenu
- Added the following icons:
DatabaseIcon
StarFilledIcon
StarIcon
TableMergedHeaderCellsIcon
- Added a
TestAppUiProvider
component for use when testing@canva/app-ui-kit
components in test environments such as Jest. - Added a
size
prop to theButton
component for tertiary icon buttons. - Added a
selectable
,selected
, anddisabled
prop to theAudioCard
component. - Added a
loading
prop to theAudioCard
,EmbedCard
,ImageCard
,TypographyCard
, andVideoCard
components.
Changed
- Updated the
onClick
andariaLabel
props to now be optional for theImageCard
,AudioCard
,VideoCard
andEmbedCard
components.
Fixed
- Fixed an issue in the
Slider
component where the handle overlay was getting cut off by the number input. - Fixed an issue where screen readers were double announcing labels to RadioGroups.
- Other minor fixes and improvements.
Deprecated
MoreVerticalIcon
is now deprecated, it is no longer recommended for use and will be removed in a future release. UseMoreHorizontalIcon
instead.
3.6.0 - 2024-07-01
Added
- Added the following components:
Tab
TabList
Tabs
TabPanel
TabPanels
- Added the following icons:
CalendarIcon
MaximizeIcon
MinimizeIcon
MoreHorizontalIcon
MoreVerticalIcon
StrikethroughIcon
- Added a
disabled
prop to theColorSelector
component. - Added a
tooltipLabel
prop to theBadge
component. - Added a
selected
prop to theButton
component. - Added a
searchable
prop to the FormSelect
component to allow searching for options. - Added a
thumbnailHeight
,selectable
,selected
, anddisabled
prop to theVideoCard
andEmbedCard
components. - Added a
bottomEnd
andbottomEndVisibility
prop for adding card decorators to theAudioCard
,EmbedCard
,ImageCard
, andVideoCard
components.
Changed
- Updated React version to
v18.3.1
in Peer Dependencies.
Fixed
- Fixed an issue where the
MultilineInput
component scroll positioning was resetting on input value change. - Fixed an issue where closing the
Select
component on touch devices resulted in the options menu reopening. - Fixed an issue with our build process to remove esm syntax from our cjs output.
- Other minor fixes and improvements.
3.5.1 - 2024-05-08
Added
- The following components:
Avatar
AvatarGroup
AvatarPlaceholder
- The following icons:
LinkIcon
FileTextIcon
- Added a new
contrast
tone variant for theBadge
component, along with TSDoc comments explaining the meaning of eachtone
. - Added a new
neutral
tone variant for theAlert
component. - Added a new
disabled
prop to theImageCard
component.
Changed
- Fixed
WordCountDecorator
displaying incorrect ARIA label. - Update the
colorTabdock
token value ever so slightly. - Render a truncated file name in
FileInputItem
when file name is too long, and show the full file name in a tooltip instead. - Visual changes to
Pill
component selected and disabled states. - Visual updates to the
Slider
component.
Fixed
- Links with the
OpenInNewTab
icon no longer leave the icon 'hanging' on a new line. - Fixed the
Link
component withtarget="_blank"
letting punctuation drop onto a new line. - Fixed a stacking context issue in
Carousel
component causing its buttons to be rendered above flyouts.
3.4.0 - 2024-03-18
Added
- The following icons:
FlagIcon
LightBulbIcon
Changed
- The
Badge
component now has awrapInset
prop. - The
Box
component now has display and flexbox related props. - The
ImageCard
component now hasselectable
andselected
props.
Fixed
- Fixed the text in the
SegmentedControl
component where active items were not rendering in the right tone. - Fixes a stacking context issue in
SegmentedControl
causing its buttons to be rendered above flyouts. - Fixed disabled
Select
displaying option lists using arrow keys.
3.3.0 - 2024-02-27
Added
- The
Button
component now has analignment
prop.
3.2.0 - 2024-02-13
Improvements
- Reduced bundle size by over 7% by optimizing dependencies and implementing tree-shaking, resulting in faster loading times and improved performance.
Added
- The following components:
Badge
Carousel
ClearDecorator
Masonry
Pill
- The following icons:
ExportIcon
EyeIcon
FlipHorizontalIcon
FlipVerticalIcon
FolderIcon
GridIcon
InfoIcon
ListBulletLtrIcon
RedoIcon
SlidersIcon
TransparencyIcon
UndoIcon
Changed
- The
Box
component now has aclassName
prop. - The
Button
component now hasiconPosition
andtooltipLabel
props. - The
EmbedCard
componenttitle
prop is now optional. - The
Select
component options now hasdescription
,disabled
andIcon
props. - The
Swatch
component now has anonDelete
prop. - The
TextInput
component now hasstart
andend
props. - The
TypographyCard
component now has anonHover
effect. - The
VideoCard
component now has aborderRadius
prop. - Add
onBlur
andonFocus
props to the following components:Checkbox
,CheckboxGroup
,MultilineInput
,NumberInput
,TextInput
,RadioGroup
,SegmentedControl
,Select
,Switch
. - Add
onKeyDown
prop to the following components:MultilineInput
,NumberInput
,TextInput
. - Updated primitive color scale, lighter colors are now more vibrant with less murky tones. Darker colors are lighter and more muted.
Fixed
- Fixed
Slider
tab order to belabel
,slider
,input
. This fixes a bug where theSlider
was being rendered on top of other components. - Other minor fixes and improvements.
3.1.0 - 2023-12-12
Added
- The following components:
AudioCard
AudioContextProvider
EmbedCard
ImageCard
Link
TypographyCard
VideoCard
- The following icons:
LockOpenIcon
LockClosedIcon
With the addition of the various Card
components, the equivalent Draggable
components, such as DraggableImage
, have been removed from the starter kit(opens in a new tab or window).
Changed
- The
Button
component now has anariaLabel
andicon
prop. - The
Grid
component now has analignX
prop. - The
Swatch
component now has atooltipLabel
prop. - Renamed the
colorTypographyQuaternary
token tocolorTypographyPlaceholder
.
Fixed
- The spacing of the
FormField
component, ensuring consistency with the rest of the components.
3.0.0 - 2023-11-02
Added
- The following components:
Alert
CharacterCountDecorator
ColorSelector
Slider
Swatch
Switch
WordCountDecorator
- A number of new icons.
Changed
- Breaking: Made the second argument to the
onChange
callback of theMultilineInput
component optional.
Example update in consumer code:
<MultilineInputonChange={(value, event) => {+ if (event == null) {+ return;+ }const cursorPosition = event.target.selectionStart;handleChangeAtCursorPosition(value, cursorPosition);}}/>
- The
Button
component now accepts atype
prop. This prop can be set to"submit"
,"button"
, or"reset"
. The default value is"button"
. - The
TextInput
component now accepts atype
prop. This prop can be set to"search"
,"tel"
,"text"
, or"url"
. The default value is"text"
. - The
MultilineInput
component now accepts afooter
prop. You can use this prop to decorate the input with theCharacterCountDecorator
orWordCountDecorator
components.
2.0.0 - 2023-09-14
Removed
- Breaking: Removed default reset styles, including
* { margin: 0 }
. Apps may need to update to add these styles back in to maintain current styling:
* {margin: 0;}img, picture, video, canvas, svg {display: block;max-width: 100%;}input, button, textarea, select {font: inherit;}
- Breaking: Removed
disableBubbles
prop fromProgressBar
component. The bubble effect is now always enabled. Any usages of thedisableBubbles
prop will need to be removed.
Changed
- Breaking: Renamed background color tokens. All usages must be updated to use the new name.
The Box
component's background
prop has changed and should be renamed accordingly:
before | after |
---|---|
<Box background={1} /> | <Box background="canvas" /> |
<Box background={2} /> | <Box background="tabdock" /> |
<Box background={3} /> | <Box background="page" /> |
<Box background={4} /> | <Box background="surface" /> |
Any references to the following color tokens should be renamed accordingly:
before | after |
---|---|
tokens.colorBackground1 | tokens.colorCanvas |
tokens.colorBackground2 | tokens.colorTabdock |
tokens.colorBackground3 | tokens.colorPage |
tokens.colorBackground4 | tokens.colorSurface |
Any references to the following CSS variables should be renamed accordingly:
before | after |
---|---|
--ui-kit-color-background-1 | --ui-kit-color-canvas |
--ui-kit-color-background-2 | --ui-kit-color-tabdock |
--ui-kit-color-background-3 | --ui-kit-color-page |
--ui-kit-color-background-4 | --ui-kit-color-surface |
Added
- Added new
Grid
layout component for displaying content in a grid. - Added and edited prop documentation across multiple files, to clarify language and provide more context.
Fixed
- Fixed disabled CSS bug in
Select
component. - Fixed alignment of
Checkbox
with its label. - Fixed
MultilineInput
textarea not auto-growing when wordbreaks occur from resizing. - Validates input when using
FileInput
selector. When using the OS provided selector to choose files, users could override filetype restrictions. - Other small bug fixes and improvements.
Other
onChange
prop inRadioGroup
component is now optional to align with the other form components.
1.0.0
Added
- Initial package release