Skip to content

Commit 8514d75

Browse files
kathrinschalberdaniellerouxflxlst09tokyojengemini-code-assist[bot]
authored
Create migration guide for V4 (#79)
Co-authored-by: Daniel Leroux <[email protected]> Co-authored-by: flxlst09 <[email protected]> Co-authored-by: flxlst09 <[email protected]> Co-authored-by: tokyojen <[email protected]> Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
1 parent f839b34 commit 8514d75

File tree

13 files changed

+279
-45
lines changed

13 files changed

+279
-45
lines changed
21.3 KB
Loading
41 KB
Loading
42.1 KB
Loading
22.5 KB
Loading
16.2 KB
Loading
28.6 KB
Loading

blog/2025-10-01-release-4/index.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
authors: [felixleist]
3+
tags: [release]
4+
---
5+
6+
# Release V4.0.0
7+
8+
![banner](./2510_blog_4-0.png)
9+
10+
The next chapter of the Industrial Experience Design System is here. This version brings together thoughtful feature enhancements and essential style refinements, offering greater flexibility while reinforcing design consistency.
11+
12+
<!-- truncate -->
13+
14+
# How to start?
15+
16+
- Install `@siemens/ix` (`@siemens/ix-angular`, `@siemens/ix-react`, `@siemens/ix-vue`) via the `latest` tag
17+
- Review detailed changelog [here](/docs/home/releases/changelog)
18+
- Make sure you're using the latest published version of our Figma library
19+
20+
# Button update
21+
22+
![button](./2510_blog_buttons.png)
23+
24+
The time of confusing button naming is officially behind us. With this release, we’ve introduced a clear and intuitive naming convention: primary, secondary, and tertiary [buttons](/docs/components/button/guide). Now labeled exactly as such. This change improves clarity, making it easier to choose the right button for the right context.
25+
26+
To implement this improvement, we had to introduce a breaking change. Existing variant names will need to be updated manually. Please refer to our [migration guide](/docs/home/migration/4_0_0) for detailed instructions.
27+
28+
In line with brand consistency efforts, all buttons now feature slightly rounded corners, offering a more modern and approachable look. Additionally, we’ve added support for placing icons to the right of the label. Especially useful for “Next” actions, where a left-aligned arrow often felt visually off.
29+
30+
# New app header options
31+
32+
![appheaderoptions](./2510_blog_appheader.png)
33+
34+
The [app header](/docs/components/application-header/guide) is now more flexible than before. With the introduction of an additional secondary slot, teams can tailor the header to better fit their application needs.
35+
36+
We’ve also updated the documentation to showcase all available configuration options, including:
37+
38+
- Displaying a user avatar
39+
- Using a secondary slot
40+
- Enabling the borderless variant
41+
- Showing an app icon
42+
- Adding a sub-label to the app name
43+
44+
These enhancements come as additions to the existing header component, giving teams more options without disrupting current implementation.
45+
46+
# Elevation principle
47+
48+
![elevation](./2510_blog_elevation.png)
49+
50+
Elevation helps create depth in the user interface. A simple elevation principle makes it easier for users to understand which elements sit above others, improving both hierarchy and interactivity.
51+
52+
With this major release, we are reducing the use of semi-transparent colors in favor of solid tones. This change improves visual separation between layers and aligns with our goal of a consistent design language.
53+
54+
The new colors are applied automatically when migrating to this version. Therefore, we recommend teams visually review their interfaces. To support this, our migration guide includes an overview where switching to outline variants is needed for good layer separation.
55+
56+
# Angular 20
57+
58+
![angular20](./2510_blog_angular.png)
59+
60+
This release brings full compatibility with Angular 20 and up, helping teams keep their projects aligned with the latest framework improvements.
61+
62+
To reflect this, the Angular specific peer dependencies have been updated to require at least version 20. Projects using this package will need to upgrade to Angular 20 or higher before migrating to the latest version of iX. See more in the [migration guide](/docs/home/migration/4_0_0).
63+
64+
# AG Grid update
65+
66+
![aggrid](./2510_blog_aggrid.png)
67+
68+
We are now publishing a separate Figma library based on the [official AG Grid design system](https://www.figma.com/community/file/1360600846643230092) styled with the iX theme. This gives designers direct access to AG Grid’s native components and layout logic. Developers benefit from AG Grid’s new [theming API](https://blog.ag-grid.com/introducing-our-new-theming-api/), which makes styling grids easier and more flexible. Together, this change makes design and development faster, clearer, and better aligned.
69+
70+
# New section within UX writing guidelines: Formatting
71+
72+
We’ve just released a brand-new section in our [UX writing guidelines](/docs/guidelines/language/writing-style-guide-getting-started), designed to bring clarity, consistency, and user-friendliness to some of the most commonly used — and often overlooked — elements in digital communication. This update covers:
73+
74+
- Addresses
75+
- Dates
76+
- Measurements and units
77+
- Money and currency
78+
- Names and titles
79+
- Numbers and percentages
80+
- Software versions
81+
- Time and time zones
82+
83+
# Any questions or feedback?
84+
85+
Please reach out to us at [[email protected]](mailto:[email protected]) and tell us about your migration experience.
86+
If you encounter any issues, we are here to support you every step of the way.
87+
88+
We greatly appreciate your contributions.

docs/components/overview.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ import { CategoryButton } from '@site/src/components/CategoryButton';
9797
| [Card list](./card-list/index.mdx) | Card lists display a large number of cards or items of the same type in a lightweight, grouped manner. |
9898
| [Flip](./flip/index.mdx) | Flips are containers that flip when clicked to reveal additional content. |
9999
| [Event list](./event-list/index.mdx) | Event lists display a list of any type of element with additional details. |
100-
| [Drawer](legacy/drawer/index.mdx) | Drawers are containers that open on the click of a button to show additional content. |
100+
| [Drawer](legacy/drawer/index.mdx) | Drawers are containers that open on the click of a button to show additional content. |
101101
| [Layout auto](./layout-auto/index.mdx) | Auto-layouts are containers that automatically adjust the size of their columns based on the content. |
102102
| [Layout grid](./layout-grid/index.mdx) | Layout grids are used to structure the layout of a page or screen responsively. |
103103
| [Modal](./modal/index.mdx) | Modals present information prominently and are useful for gathering essential user input without navigating to another page. |

docs/home/migration/4_0_0/index.md

Lines changed: 177 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,180 @@
11
---
22
sidebar_position: 0
3-
sidebar_title: Upgrade to v4
4-
title: Upgrade to v4
3+
sidebar_title: Upgrade to V4
4+
title: Upgrade to V4
55
doc-type: banner
6-
description: Welcome to the migration guide for upgrading from Siemens Industrial Experience design system v3 to v4. This guide introduces all major changes.
6+
description: Welcome to the migration guide for upgrading from Siemens Industrial Experience design system V3 to V4. This guide supports you through all the major changes.
77
---
8-
# Upgrade to v4.0.0
8+
9+
# Upgrade to V4.0.0
910

1011
## TL;DR
11-
- We renamed the [button variants](#ix-button) to better reflect their usage.
12-
- Map and basic navigation have been removed in favor of the [application](../../../components/application/guide.md) component.
13-
- Drawer has been deprecated in favor of [panes](../../../components/panes/index.mdx).
1412

15-
## Icons renamed or removed
13+
- We upgraded to [Angular 20](#angular-20).
14+
- We renamed the [button variants](#ix-button-variants) to better reflect their usage.
15+
- Map and basic navigation have been removed in favor of the [application](#removed-basic-navigation-and-map-navigation) component.
16+
- Drawer has been [deprecated](#drawer) in favor of [panes](/docs/components/panes/guide).
17+
- We made changes to the [elevation principle](#updated-elevation-principle) which means teams need to check whether their components need an outline.
18+
19+
## Updated dependencies
20+
21+
### Angular 20
22+
23+
Important: Projects using `@siemens/ix-angular` must upgrade to Angular 20 or higher before updating to this version. Some APIs deprecated in previous Angular versions may have been removed; review the Angular 20 changelog for migration steps. Ensure all third-party Angular libraries are compatible with at least V20 to avoid runtime issues.
24+
25+
## Renamed or removed icons
1626

17-
TO BE DONE
27+
<div class="table-full-width table-column-equal-width">
28+
|**Deprecated** |**Replace with** |
29+
| :----------------- | :------------------------- |
30+
| `cam` | Replace with `output-cam` |
31+
</div>
1832

1933
## Deprecated and removed components
2034

21-
- Map and basic navigation
22-
- Drawer
35+
### Removed basic navigation and map navigation
2336

24-
### Removed map and basic navigation
37+
Use the [ix-application](/docs/components/application/guide) with the following components to replace the basic and map navigation:
2538

26-
TO BE DONE
39+
- [Application header](/docs/components/application-header/guide) containing the previous `application name`
40+
- [Application menu](/docs/components/application-menu/guide)
41+
- [Pane (inline)](/docs/components/panes/guide) replacing the map navigation's left sidebar
42+
- [Pane (floating)](/docs/components/panes/guide) or original overlay content replacing the map navigation's right overlay
2743

28-
### Deprecated drawer
44+
### Drawer
2945

30-
The drawer component has been deprecated and will be removed in the next major release. We recommend using [panes](../../../components/panes/index.mdx) instead, which provide similar functionality with improved performance and usability. Use this configuration for a similar experience:
46+
The drawer component has been deprecated and will be removed in the next major release. We recommend using [panes](/docs/components/panes/index.mdx) instead, which provide similar functionality with improved performance and usability. Use this configuration for a similar experience:
3147

3248
```html
3349
<ix-pane
34-
heading="Title"
35-
variant="floating"
36-
composition="right"
37-
borderless="true"
38-
size="320px"
39-
close-on-click-outside="true"
40-
hide-on-collapse>
41-
My content
50+
heading="Title"
51+
variant="floating"
52+
composition="right"
53+
borderless="true"
54+
size="320px"
55+
close-on-click-outside="true"
56+
hide-on-collapse
57+
>
58+
My content
4259
</ix-pane>
4360
```
4461

4562
Here is a comparison of the properties and events between the drawer and pane components:
4663

47-
| **Drawer** | **Pane** |
48-
| ----------------- | -------------------- |
64+
<div class="table-full-width table-column-equal-width">
65+
|**Drawer** |**Pane** |
66+
| :----------------- | :-------------------- |
4967
| `expanded` | `show` |
5068
| `width` | `size` |
5169
| `min-width` | (not available) |
5270
| `max-width` | (not available) |
5371
| `full-height` | (not available) |
5472
| `on-drawer-close` | `on-expanded-change` |
5573
| `on-open` | `on-expanded-change` |
74+
</div>
5675

5776
Additional changes you need to consider when migrating from drawers to panes:
77+
5878
- You may need to adjust your content layout accordingly since pane contents have a default padding of `16px`.
5979
- You now need to define a title for the pane using the `heading` property.
6080

6181
## Component updates
6282

63-
### ix-button
83+
### ix-application
84+
85+
- `min-width: 0` has been added to the content-area in `ix-application` to prevent the flex container from growing beyond the screen width.
86+
- If you have implemented a workaround for this behavior, your application's layout might be affected by this change.
87+
88+
### ix-application-header
89+
90+
- Changed height from `2.75rem` (44px) to `3rem` (48px).
91+
92+
### ix-button variants
93+
94+
Affected components:
95+
96+
- ix-button
97+
- ix-dropdown-button
98+
- ix-icon-button
99+
- ix-split-button
100+
- ix-toggle-button
101+
- ix-icon-toggle-button
102+
103+
- Renamed variant `secondary` to `subtle`
104+
- Removed the property `outline` in favor of new `secondary` variants
105+
- Removed the property `ghost` in favor of new `tertiary` variants
106+
107+
![Buttons](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Documentation-illustrations?node-id=6708-52302&t=bGky2tHjBPC9fOGT-4)
108+
109+
To take over the changes, rename all button variants according to this table. Start with renaming `secondary` to `subtle-*` variants to avoid unwanted overriding.
110+
111+
<div class="table-full-width table-column-equal-width">
112+
|**Variant** |**Outline** |**Ghost** |**New variant** |
113+
| :-------------- | :-------------- | :------------ | :------------------ |
114+
| `secondary` | `false` | `false` | `subtle-primary` |
115+
| `secondary` | `true` | `false` | `subtle-secondary` |
116+
| `secondary` | `false` | `true` | `subtle-tertiary` |
117+
| `primary` | `false` | `false` | `primary` |
118+
| `primary` | `true` | `false` | `secondary` |
119+
| `primary` | `false` | `true` | `tertiary` |
120+
| `danger` | `false` | `false` | `danger-primary` |
121+
| `danger` | `true` | `false` | `danger-secondary` |
122+
| `danger` | `false` | `true` | `danger-tertiary` |
123+
</div>
124+
125+
For buttons without an explicity set variant, the default is used. As defaults differ between the button components, the renaming should be component-specific.
126+
127+
#### Button with default variant
128+
129+
<div class="table-full-width table-column-equal-width">
130+
|**Variant** |**Outline** |**Ghost** |**New variant** |
131+
| :-------------- | :-------------- | :------------ | :------------------ |
132+
| `default` | `false` | `false` | `primary` |
133+
| `default` | `true` | `false` | `secondary` |
134+
| `default` | `false` | `true` | `tertiary` |
135+
</div>
64136

65-
- Removed `outline` and `ghost`.
66-
- Replaced `variant` names:
67-
- `primary` → `primary`
68-
- `primary` `outline` → `primary`
69-
- `secondary` → `outline`
70-
- `tertiary` → `ghost`
137+
#### Dropdown button with default variant
138+
139+
<div class="table-full-width table-column-equal-width">
140+
|**Variant** |**Outline** |**Ghost** |**New variant** |
141+
| :-------------- | :-------------- | :------------ | :------------------ |
142+
| `default` | `false` | `false` | `primary` |
143+
| `default` | `true` | `false` | `secondary` |
144+
| `default` | `false` | `true` | `tertiary` |
145+
</div>
146+
147+
#### Icon button with default variant
148+
149+
<div class="table-full-width table-column-equal-width">
150+
|**Variant** |**Outline** |**Ghost** |**New variant** |
151+
| :-------------- | :-------------- | :------------ | :------------------ |
152+
| `default` | `false` | `false` | `subtle-primary` |
153+
| `default` | `true` | `false` | `subtle-secondary` |
154+
| `default` | `false` | `true` | `subtle-tertiary` |
155+
</div>
156+
157+
#### Split button with default variant
158+
159+
<div class="table-full-width table-column-equal-width">
160+
|**Variant** |**Outline** |**Ghost** |**New variant** |
161+
| :-------------- | :-------------- | :------------ | :------------------ |
162+
| `default` | `false` | `false` | `primary` |
163+
| `default` | `true` | `false` | `secondary` |
164+
| `default` | `false` | `true` | `tertiary` |
165+
</div>
166+
167+
#### Toggle button and icon toggle button with default variant
168+
169+
<div class="table-full-width table-column-equal-width">
170+
|**Variant** |**Outline** |**Ghost** |**New variant** |
171+
| :-------------- | :-------------- | :------------ | :------------------ |
172+
| `default` | `false` | `false` | `subtle-primary` |
173+
| `default` | `true` | `false` | `subtle-secondary` |
174+
| `default` | `false` | `true` | `subtle-tertiary` |
175+
</div>
176+
177+
We recommend to visually review your changes. Ensure that `subtle-*` variants are not mixed with the default variant.
71178

72179
### ix-pane
73180

@@ -76,9 +183,46 @@ Additional changes you need to consider when migrating from drawers to panes:
76183
- Added `aria-label-expand-button` property.
77184
- Added `aria-label-collapse-button` property.
78185

186+
### ix-aggrid
187+
188+
We are updating to the latest AG Grid version and are providing a new brand-aligned iX theme.
189+
190+
#### Design
191+
192+
- Published a new 'AG Grid theme' library
193+
- Deprecated AG Grid components from 'iX components' Figma library
194+
195+
Note: Manual replacement effort needed, there is no automated replacement possible.
196+
197+
<div class="table-full-width table-column-equal-width">
198+
|**Deprecated** |**Replace with** |
199+
| :------------------------------------- | :----------------------------------- |
200+
| AG Grid Building Blocks / Data Cell | Grid Cell |
201+
| AG Grid Building Blocks / Header Cell | Grid Header |
202+
| AG Grid Building Blocks / Header Row | not needed |
203+
| AG Grid Building Blocks / Row | not needed |
204+
| AG Grid component / AG Grid Column | - |
205+
| AG Grid component / AG Grid Row | - |
206+
| AG Grid component / AG Grid Table | iX AG Grid Table |
207+
| AG Grid component / AG Grid Table Example | iX AG Grid Table Example |
208+
</div>
209+
210+
#### Implementation
211+
212+
TBD
213+
79214
## Global style updates
80215

81-
Lorem ipsum
216+
### Updated elevation principle
217+
218+
With the updated elevation principle, some components require a visual outline if they are placed on `color-2` or `component-1`. See more in the styles chapter on [elevation](/docs/styles/elevation).
219+
220+
![Elevation principle](https://www.figma.com/design/wEptRgAezDU1z80Cn3eZ0o/iX-Documentation-illustrations?node-id=6707-50604&t=bGky2tHjBPC9fOGT-4)
221+
222+
If you have used the `filled` variant of following components on `color-2` or `component-1`, please change their variant to `outline`:
223+
- [Blind](/docs/components/blind/guide)
224+
- [Card, Push card, Action card](/docs/components/card/guide)
225+
- [Event list](/docs/components/event-list/)
82226

83227
## Questions ❓🙋‍♀️
84228

sidebars.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,7 +1047,6 @@ const sidebars: SidebarsConfig = {
10471047

10481048
label: 'Charts',
10491049
items: [
1050-
'components/charts-overview/index',
10511050
{
10521051
id: 'components/charts-overview/index',
10531052
type: 'doc',
@@ -1107,16 +1106,6 @@ const sidebars: SidebarsConfig = {
11071106
},
11081107
],
11091108
}),
1110-
createTabItem({
1111-
id: 'legacy/drawer/index',
1112-
label: 'Drawer',
1113-
items: [
1114-
{
1115-
id: 'legacy/drawer/code',
1116-
label: 'Code',
1117-
},
1118-
],
1119-
}),
11201109
'legacy/checkbox',
11211110
'legacy/input',
11221111
'legacy/radiobutton',

0 commit comments

Comments
 (0)