Breaking Changes in 9.0.0
The Kendo UI for Vue 9.0.0 release narrows the supported themeColor values of several components and removes the themeColor property of the Dialog and the Window. Stale values are not always reported at runtime, and TypeScript flags them only where the type was narrowed, so review your code rather than rely on compilation errors.
Buttons
-
Button—ThethemeColorproperty no longer accepts the'dark'and'light'values. This also applies toSmartPasteButtonandSpeechToTextButton, which extend the Button properties and passthemeColorto theButton.- Before:
<Button themeColor="dark" />or<Button :theme-color="'light'" />was part of thethemeColortype. - After:
themeColoris'base','primary','secondary','tertiary','info','success','warning','error', or'inverse'. TheButtonhas no runtime validator, so an old value is not reported at runtime. - To migrate, replace the removed values and update the custom CSS and tests that target the buttons by their removed theme color, for example
k-button-solid-darkork-button-outline-light. There is no one-to-one replacement. The'inverse'value is the closest to the dark appearance, but choose the value that matches your design.
- Before:
-
DropDownButtonandSplitButton—ThethemeColorproperty no longer accepts the'dark'and'light'values.- Before:
<DropDownButton themeColor="dark" />or<SplitButton :theme-color="'light'" />was part of thethemeColortype. - After:
themeColoris'base','primary','secondary','tertiary','info','success','warning','error', or'inverse'. The removed values fail the prop validator. - To migrate, replace the removed values and update the custom CSS and tests that target the buttons by their removed theme color. There is no one-to-one replacement. The
'inverse'value is the closest to the dark appearance, but choose the value that matches your design.
- Before:
-
FloatingActionButton—ThethemeColorproperty (FloatingActionButtonThemeColor) now accepts only'base','primary','secondary', and'tertiary'.- Before:
themeColoralso accepted'info','success','warning','error','dark','light', and'inverse'. - After: The removed values are no longer supported. The component has no runtime validator, so an old value is not reported. It is still rendered as the
k-fab-<themeColor>class, but it is no longer a supported theme color. TheFloatingActionButtonsource applies no defaultthemeColor. When the property is omitted, nok-fab-<themeColor>class is rendered, even though the API documentation lists'base'as the default. - To migrate, replace the removed values with a supported one, set
themeColorexplicitly if you depend on a color, and update the custom CSS and tests that target the removedk-fab-<color>classes. There is no one-to-one replacement.
- Before:
Common
-
FontIcon,Icon, andSvgIcon—ThethemeColorproperty (IconThemeColor) no longer accepts the'dark'and'light'values.- Before:
<SvgIcon :icon="icon" themeColor="dark" />was part of thethemeColortype. - After:
themeColoris'inherit','primary','secondary','tertiary','info','success','warning','error', or'inverse'. The components have no runtime validator, so the removed values are not reported. They are still rendered as thek-color-<themeColor>class, but they are no longer supported theme colors. - To migrate, omit
themeColoror set it to'inherit'and set the color on the parent element, or use a supported value. Update the CSS selectors and tests that depend on thek-color-darkandk-color-lightclasses of the icons. There is no one-to-one replacement.
- Before:
Dialogs
-
DialogandWindow—ThethemeColorproperty is removed, and thek-window-primary,k-window-dark, andk-window-lighttheme classes are no longer rendered.- Before:
<Dialog themeColor="dark" />or<Window :theme-color="color" />rendered thek-window-<themeColor>class. - After: The property does not exist, and no theme class is rendered.
- To migrate, remove the
themeColor(theme-color) attribute and style the component through thedialogClassproperty of theDialogor thewindowClassproperty of theWindow. Update the custom CSS and tests that depend on the removedk-window-<themeColor>classes. Thedialog-window-theme-color-removedcodemod removes the attribute wherever it can locate it statically. Review the places it cannot reach, such as properties passed throughv-bind="obj"or JSX spreads, dynamic components, and wrapper components that forwardthemeColorto aDialogor aWindow, together with the types of those wrappers.
- Before:
Indicators
-
Badge—ThethemeColorproperty no longer accepts the'dark'and'light'values. They are removed fromBadgePropsandBadgeThemeColor.- Before:
<Badge themeColor="dark" />was part of thethemeColortype. - After: The prop validator accepts only
'base','primary','secondary','tertiary','info','success','warning', and'error'. As a result,'inverse'and'inherit'are also rejected, and theBadgeThemeColortype no longer includes'inherit','dark','light', or'inverse'. - To migrate, replace the removed values and update the CSS selectors and tests that depend on the removed
k-badge-darkandk-badge-lightclasses. There is no one-to-one replacement for'dark'and'light'.
- Before:
-
BadgeContainer—ThethemeColorproperty no longer accepts the'dark'and'light'values, and its default changed from'primary'to'base'.- Before:
<BadgeContainer />renderedk-badge-primary. - After: The validator accepts
'base','primary','secondary','tertiary','info','success','warning','error', and'inverse'.<BadgeContainer />rendersk-badge-baseandk-badge-<fillMode>-baseinstead ofk-badge-primaryandk-badge-<fillMode>-primary. - To migrate, set
themeColor="primary"to keep the previous default appearance, replace the removed values, and update the CSS selectors and tests that depend on the removed classes or on the previous default.
- Before:
-
Loader—ThethemeColorproperty (LoaderThemeColor) now accepts only'base','primary','secondary', and'tertiary', and the default changed from'primary'to no value.- Before:
<Loader />renderedk-loader-primary, and<Loader themeColor="success" />renderedk-loader-success. The'info','success','warning','error','dark','light', and'inverse'values were supported. - After:
<Loader />renders nok-loader-<color>class. Thek-loader-info,k-loader-success,k-loader-warning,k-loader-error,k-loader-dark,k-loader-light, andk-loader-inverseclasses are removed, and the newk-loader-baseclass is added. - To migrate, set
themeColor="primary"explicitly to keep the previous default appearance, replace the removed values, and update the CSS selectors and tests that depend on the removed classes or on the previous default. There is no one-to-one replacement for the removed values.
- Before:
Layout
-
AppBar—ThethemeColorproperty (AppBarThemeColor) changed from'light','dark', and'inherit'to'base','primary','secondary','tertiary', and'inverse', and the default changed from'light'to'base'.- Before:
<AppBar />renderedk-appbar-light, and<AppBar themeColor="dark" />renderedk-appbar-dark. - After:
<AppBar />rendersk-appbar-base. Thek-appbar-light,k-appbar-dark, andk-appbar-inheritclasses are no longer rendered. A prop validator rejects any other value. The property type still allows any string, so TypeScript does not flag stale values. - To migrate, replace
'inherit'with a supported value, and update the CSS selectors and tests that depend on the removed classes or on the previous default. There is no one-to-one replacement for'inherit'. Theapp-bar-theme-color-valuescodemod replaces the static'light'values with'base'and the static'dark'values with'inverse'automatically.
- Before:
-
Avatar—ThethemeColorproperty now accepts onlynull,'base','primary','secondary', and'tertiary', and its default of'primary'is removed.- Before:
<Avatar fillMode="solid" />renderedk-avatar-solid-primary, and<Avatar fillMode="solid" themeColor="info" />renderedk-avatar-solid-info. Thek-avatar-<fillMode>-<themeColor>class was rendered only when bothfillModeandthemeColorwere set. - After: The property type no longer allows other strings, and the validator rejects them. The
'info','success','error','warning','dark','light', and'inverse'values are removed, and'inherit'is also rejected. The Avatar rendersk-avatar-<themeColor>wheneverthemeColoris set and no color class when it is not.<Avatar fillMode="solid" />renders no color class, and<Avatar fillMode="solid" themeColor="primary" />rendersk-avatar-solidandk-avatar-primary. - To migrate, set
themeColor="primary"explicitly to keep a primary color, replace the removed values, and update the CSS selectors and tests that depend on thek-avatar-<fillMode>-<color>classes or on the previous default. There is no one-to-one replacement for the removed values.
- Before:
-
BottomNavigation—ThethemeColorproperty (BottomNavigationThemeColor) now accepts only'base','primary','secondary','tertiary', and'inverse', and the default changed from'primary'to'base'.- Before:
<BottomNavigation />renderedk-bottom-nav-primaryandk-bottom-nav-flat-primary, and<BottomNavigation themeColor="info" />renderedk-bottom-nav-info. - After:
<BottomNavigation />rendersk-bottom-nav-baseandk-bottom-nav-flat-base. The validator rejects'info','success','warning','error','dark', and'light'. Thek-bottom-nav-<color>classes of these values, together with theirk-bottom-nav-flat-<color>andk-bottom-nav-solid-<color>variants, are no longer rendered, andk-bottom-nav-baseis added. - To migrate, set
themeColor="primary"explicitly to keep the previous default appearance, replace the removed values, and update the CSS selectors and tests that depend on the removed classes or on the previous default. There is no one-to-one replacement for the removed values.
- Before:
For the changes in the generated markup, the icons, and the CSS classes, see Rendering Changes in 9.0.0.
Other Changes
The following changes are not breaking, but you may need to take them into account when you upgrade:
- The Upload no longer depends on
axiosand sends its requests throughXMLHttpRequest. Theaxiospeer dependency is removed, and the@progress/kendo-svg-iconspeer dependency range of@progress/kendo-vue-uploadis now^4.9.0 || ^5.0.0. - The documentation and the getting-started guides use the Meridian theme (
@progress/kendo-theme-meridian), and the Kendo UI themes moved from the 13.x to the 14.x line. For more information, see Styling Overview. - The
sizeproperty ofButton,DropDownButton, andSplitButtonaccepts the new'xs'value. - The Grid supports exporting its data to CSV. For more information, see CSV Export.