Volvo Cars Online Engineering
Volvo Cars Online Engineering
Published
During the last year, the team behind Web UI has created a number of components released separately from the main vcc-ui package. These packages, together with vcc-ui, are what makes up the Volvo Cars Web UI.
We created these components outside of the vcc-ui npm package to avoid increasing the API surface area of vcc-ui, which is also used to distribute the themes of the Volvo Cars Design System. The aim is to keep the effort required to stay up to date with the Design System to a minimum – allowing you to update other components gradually instead of all at once.
A couple of core components have recently been added or significantly updated in vcc-ui itself, however:
Thanks to a renewed focus on the project and streamlining of our release process, we have been able to publish updates to Web UI packages almost every week during the last year. To release this frequently without disrupting the product teams requires an emphasis on backwards compatibility and a robust versioning strategy.
The details of our versioning strategy is described in Releases and versioning, but the gist is that major versions of vcc-ui mostly contain removals of deprecated features, while minor releases include new features. This means that updating to 3.0.0 should be uneventful for most teams.
If all is good, updating to 3.0 should require no further changes. There are some caveats if you are using undocumented behaviour or vcc-ui internals.
@volvo-cars/browserslist-config
configuration.
This means dropping support for IE11 and Safari 12.lib/
or es/
folders. In an
upcoming version you will not be able to import individual files from within vcc-ui
at all - update your imports to import { ... } from 'vcc-ui'
instead of from 'vcc-ui/lib/...'
ThemePicker
over ThemeProvider
, meaning you don't need to import the theme directly. If needed, you can
still access a theme with getTheme
(import { getTheme } from 'vcc-ui'
).#1F78D1
.media-
icons have been renamed mediacircled-
, in preparation for deprecating them in favor of IconButton
.
media-play
and media-pause
now do not have an outline.navigation-search
was removed in favor of search
.office-
icons were cleaned up.IconButton variant=filled
has been replaced with IconButton variant=media
and intent=secondary
has been removed.positive
icon color was added.bleed
property to IconButton
to allow the icon visually with other elements.The following changes produce deprecation or prop-type warnings in the latest 2.x version. If you have no console warnings, you are not affected by these changes.
Arrow
component has been removed. Any usage should be replaced with the Icon
component.Icon
types and sizes have been removed from TypeScript types and prop-types.Toggle isValid
property was removed from TypeScript types.Spinner width
property was removed from TypeScript types.label
property has been made required in Checkbox
, Radio
, SelectInput
, TextInput
and TextArea
. Checkbox
and Radio
labels accept React nodes.square
type of Logo
is no longer available and should be replaced with spreadmark
.theme.styles.componentName
are no longer applied. Only default styles should be used.theme.colors
were removed after having been deprecated for a long time. Use the colors from theme.color
instead.See the full changelog on GitHub.
We are available in GitHub Discussions or in #vcc-ui on Slack - feedback is always welcome!