@porsche-design-system/components-react 4.0.0-alpha.0 → 4.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +187 -1
- package/bin/patchRemixRunProcessBrowserGlobalIdentifier.js +0 -0
- package/cjs/lib/components/canvas.wrapper.cjs +3 -3
- package/{styles → emotion}/cjs/index.cjs +3 -3
- package/emotion/esm/index.d.ts +1 -0
- package/emotion/esm/index.mjs +1 -0
- package/{styles → emotion}/package.json +0 -5
- package/esm/lib/components/canvas.wrapper.d.ts +9 -1
- package/esm/lib/components/canvas.wrapper.mjs +3 -3
- package/esm/lib/components/display.wrapper.d.ts +2 -2
- package/esm/lib/components/divider.wrapper.d.ts +2 -2
- package/esm/lib/components/heading.wrapper.d.ts +2 -2
- package/esm/lib/components/icon.wrapper.d.ts +2 -2
- package/esm/lib/components/radio-group-option.wrapper.d.ts +2 -0
- package/esm/lib/components/text.wrapper.d.ts +2 -2
- package/esm/lib/components/textarea.wrapper.d.ts +2 -2
- package/esm/lib/types.d.ts +8 -1
- package/global-styles/cn/font-face.css +1 -1
- package/global-styles/cn/index.css +264 -115
- package/global-styles/color-scheme.css +135 -0
- package/global-styles/font-face.css +1 -1
- package/global-styles/index.css +264 -115
- package/global-styles/variables.css +158 -144
- package/package.json +16 -14
- package/scss/_index.scss +1 -0
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +671 -600
- package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +37 -29
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/canvas.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group-option.wrapper.cjs +3 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.cjs +5 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.cjs +2 -13
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.cjs +5 -3
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-date.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-email.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-month.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-tel.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-time.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-url.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-week.cjs +1 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/label.cjs +4 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.cjs +5 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +3 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +3 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group-option.cjs +11 -3
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.cjs +3 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.cjs +4 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +2 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.cjs +1 -0
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +671 -601
- package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +37 -29
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/canvas.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/radio-group-option.wrapper.mjs +3 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +5 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.mjs +2 -13
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +5 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-date.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-email.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-month.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-tel.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-time.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-url.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-week.mjs +1 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/label.mjs +4 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.mjs +5 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +3 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +5 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group-option.mjs +12 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-group.mjs +4 -5
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.mjs +4 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +2 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.mjs +1 -0
- package/ssr/esm/lib/components/canvas.wrapper.d.ts +9 -1
- package/ssr/esm/lib/components/display.wrapper.d.ts +2 -2
- package/ssr/esm/lib/components/divider.wrapper.d.ts +2 -2
- package/ssr/esm/lib/components/heading.wrapper.d.ts +2 -2
- package/ssr/esm/lib/components/icon.wrapper.d.ts +2 -2
- package/ssr/esm/lib/components/radio-group-option.wrapper.d.ts +2 -0
- package/ssr/esm/lib/components/text.wrapper.d.ts +2 -2
- package/ssr/esm/lib/components/textarea.wrapper.d.ts +2 -2
- package/ssr/esm/lib/dsr-components/canvas.d.ts +0 -3
- package/ssr/esm/lib/dsr-components/checkbox.d.ts +4 -2
- package/ssr/esm/lib/dsr-components/input-date.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-email.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-month.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-number.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-password.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-search.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-tel.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-text.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-time.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-url.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/input-week.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/label.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/multi-select.d.ts +2 -1
- package/ssr/esm/lib/dsr-components/pin-code.d.ts +2 -1
- package/ssr/esm/lib/dsr-components/radio-group-option.d.ts +4 -0
- package/ssr/esm/lib/dsr-components/radio-group.d.ts +2 -1
- package/ssr/esm/lib/dsr-components/segmented-control.d.ts +2 -1
- package/ssr/esm/lib/dsr-components/select.d.ts +2 -1
- package/ssr/esm/lib/dsr-components/textarea.d.ts +1 -0
- package/ssr/esm/lib/types.d.ts +8 -1
- package/tailwindcss/index.css +223 -135
- package/{styles/vanilla-extract → vanilla-extract}/cjs/index.cjs +1 -1
- package/vanilla-extract/esm/index.d.ts +1 -0
- package/vanilla-extract/esm/index.mjs +1 -0
- package/vanilla-extract/package.json +13 -0
- package/ssr/esm/lib/dsr-components/legacy-label.d.ts +0 -14
- package/styles/_index.scss +0 -1
- package/styles/esm/index.d.ts +0 -1
- package/styles/esm/index.mjs +0 -1
- package/styles/vanilla-extract/esm/index.d.ts +0 -1
- package/styles/vanilla-extract/esm/index.mjs +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,142 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
|
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
+
## [4.0.0-beta.0] - 2026-02-12
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- `Checkbox` (🧪Experimental): Supports now being wrapped inside a native `label` element to provide more flexibility in
|
|
22
|
+
positioning a custom label ([#4124](https://github.com/porsche-design-system/porsche-design-system/pull/4124))
|
|
23
|
+
- `Canvas`: prop `background` to set the background color to `canvas | surface`
|
|
24
|
+
- `Carousel`:
|
|
25
|
+
- `width` prop now supports `wide` and `full` values
|
|
26
|
+
([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
|
|
27
|
+
- `--p-carousel-px` CSS custom property introduced to control horizontal padding (when used, the `width` prop has no
|
|
28
|
+
effect anymore) ([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
|
|
29
|
+
- `--p-carousel-ps`, `--p-carousel-pe` CSS custom property introduced to control the logical inline start/end padding
|
|
30
|
+
([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
|
|
31
|
+
- `Angular`: Bumped peer dependency to support Angular new major version 21
|
|
32
|
+
([#4178](https://github.com/porsche-design-system/porsche-design-system/pull/4178))
|
|
33
|
+
- `AG Grid`:
|
|
34
|
+
- Bumped peer dependency to support AG Grid new major version 35
|
|
35
|
+
([#4143](https://github.com/porsche-design-system/porsche-design-system/issues/4143))
|
|
36
|
+
- Refreshed visuals to reflect new color tokens
|
|
37
|
+
- `Tailwind CSS`:
|
|
38
|
+
- `--transition-duration-sm`, `--transition-duration-md`, `--transition-duration-lg`, `--transition-duration-xl`,
|
|
39
|
+
`--shadow-sm`, `--shadow-md`, `--shadow-lg`, `--radius-xs`, `--radius-xl`, `--radius-2xl`, `--radius-3xl`,
|
|
40
|
+
`--radius-4xl`, `--radius-full`, `--border-width-1`, `--border-width-2`, `--color-frosted-strong`
|
|
41
|
+
- `SCSS`:
|
|
42
|
+
- Common hint: Previous variables are still available as alias and mapped to the new ones for backward compatibility.
|
|
43
|
+
- Breakpoint: `$breakpoint-xs`, `$breakpoint-sm`, `$breakpoint-md`, `$breakpoint-lg`, `$breakpoint-xl` and
|
|
44
|
+
`$breakpoint-2xl`
|
|
45
|
+
- Blur: `$blur-frosted`
|
|
46
|
+
- Border: `$radius-xs`, `$radius-sm`, `$radius-md`, `$radius-lg`, `$radius-xl`, `$radius-2xl`, `$radius-3xl`,
|
|
47
|
+
`$radius-4xl` and `$radius-full`
|
|
48
|
+
- Color Scheme: `@mixin color-scheme()`
|
|
49
|
+
- Color: `$color-focus`,`$color-canvas`, `$color-surface`, `$color-frosted`, `$color-frosted-soft`,
|
|
50
|
+
`$color-frosted-strong`, `$color-backdrop`, `$color-contrast-lower`, `$color-contrast-low`,
|
|
51
|
+
`$color-contrast-medium`, `$color-contrast-high`, `$color-contrast-higher`, `$color-primary`, `$color-success`,
|
|
52
|
+
`$color-success-low`, `$color-success-medium`, `$color-success-frosted`, `$color-success-frosted-soft`,
|
|
53
|
+
`$color-warning`, `$color-warning-low`, `$color-warning-medium`, `$color-warning-frosted`,
|
|
54
|
+
`$color-warning-frosted-soft`,`$color-error`, `$color-error-low`, `$color-error-medium`,
|
|
55
|
+
`$color-error-frosted`,`$color-error-frosted-soft`, `$color-info`, `$color-info-low`, `$color-info-medium`,
|
|
56
|
+
`$color-info-frosted`, `$color-info-frosted-soft`
|
|
57
|
+
- Focus: `@mixin focus-visible()`
|
|
58
|
+
- Gradient: `$gradient-stops-fade-dark`
|
|
59
|
+
- Skeleton: `@mixin skeleton()`
|
|
60
|
+
- Media Query: `@mixin media-query-min()`, `@mixin media-query-max()` and `@mixin media-query-min-max()`
|
|
61
|
+
- Motion: `$duration-sm`, `$duration-md`, `$duration-lg`, `$duration-xl`, `$ease-in-out`, `$ease-in` and `$ease-out`
|
|
62
|
+
- Shadow: `$shadow-sm`, `$shadow-md` and `$shadow-lg`
|
|
63
|
+
- Spacing: `$spacing-fluid-xs`, `$spacing-fluid-sm`, `$spacing-fluid-md`, `$spacing-fluid-lg`, `$spacing-fluid-xl`,
|
|
64
|
+
`$spacing-fluid-2xl`, `$spacing-static-xs`, `$spacing-static-sm`, `$spacing-static-md`, `$spacing-static-lg`,
|
|
65
|
+
`$spacing-static-xl` and `$spacing-static-2xl`
|
|
66
|
+
- Typography: `@mixin prose-display-lg()`, `@mixin prose-display-md()`, `@mixin prose-display-sm()`,
|
|
67
|
+
`@mixin prose-heading-2xl()`, `@mixin prose-heading-xl()`, `@mixin prose-heading-lg()`, `@mixin prose-heading-md()`,
|
|
68
|
+
`@mixin prose-heading-sm()`, `@mixin prose-text-xl()`, `@mixin prose-text-lg()`, `@mixin prose-text-md()`,
|
|
69
|
+
`@mixin prose-text-sm()`, `@mixin prose-text-xs()` `@mixin prose-text-2xs()`, `$font-porsche-next`,
|
|
70
|
+
`$leading-normal`, `$typescale-2xs`, `$typescale-xs`, `$typescale-sm`, `$typescale-md`, `$typescale-lg`,
|
|
71
|
+
`$typescale-xl`, `$typescale-2xl`, `$font-weight-normal`, `$font-weight-semibold` and `$font-weight-bold`
|
|
72
|
+
- Emotion, Vanilla-Extract:
|
|
73
|
+
- Blur: `blurFrosted`
|
|
74
|
+
- Border: `radiusXs`, `radiusSm`, `radiusMd`, `radiusLg`, `radiusXl`, `radius2xl`, `radius3xl`, `radius4xl` and
|
|
75
|
+
`radiusFull`
|
|
76
|
+
- Color: `colorCanvas`, `colorSurface`, `colorFrosted`, `colorFrostedSoft`, `colorFrostedStrong`,
|
|
77
|
+
`colorBackdrop`,`colorPrimary`, `colorContrastHigher`, `colorContrastHigh`, `colorContrastMedium`,
|
|
78
|
+
`colorContrastLow`, `colorContrastLower`, `colorInfo`, `colorInfoMedium`, `colorInfoLow`, `colorInfoFrosted`,
|
|
79
|
+
`colorInfoFrostedSoft`, `colorSuccess`, `colorSuccessMedium`, `colorSuccessLow`, `colorSuccessFrosted`,
|
|
80
|
+
`colorSuccessFrostedSoft`, `colorWarning`, `colorWarningMedium`, `colorWarningLow`, `colorWarningFrosted`,
|
|
81
|
+
`colorWarningFrostedSoft`, `colorError`, `colorErrorMedium`, `colorErrorLow`, `colorErrorFrosted`,
|
|
82
|
+
`colorErrorFrostedSoft`, `colorFocus`,
|
|
83
|
+
- Color Scheme: `colorSchemeStyles()`
|
|
84
|
+
- Focus: `getFocusVisibleStyle()`
|
|
85
|
+
- Gradient: `gradientStopsFadeDark`,
|
|
86
|
+
- Motion: `durationSm`, `durationMd`, `durationLg`, `durationXl`, `easeInOut`, `easeIn` and `easeOut`
|
|
87
|
+
- Shadow: `shadowSm`, `shadowMd` and `shadowLg`
|
|
88
|
+
- Spacing: `spacingFluidXs`, `spacingFluidSm`, `spacingFluidMd`, `spacingFluidLg`, `spacingFluidXl`,
|
|
89
|
+
`spacingFluid2xl`, `spacingStaticXs`, `spacingStaticSm`, `spacingStaticMd`, `spacingStaticLg`, `spacingStaticXl` and
|
|
90
|
+
`spacingStatic2xl`
|
|
91
|
+
- Typography: `proseDisplayLg()`, `proseDisplayMd()`, `proseDisplaySm()`, `proseHeading2Xl()`, `proseHeadingXl()`,
|
|
92
|
+
`proseHeadingLg()`, `proseHeadingMd()`, `proseHeadingSm()`, `proseTextXl()`, `proseTextLg()`, `proseTextMd()`,
|
|
93
|
+
`proseTextSm()`, `proseTextXs()`, `proseText2Xs()`, `fontPorscheNext`, `leadingNormal`, `typescale2Xs`,
|
|
94
|
+
`typescaleXs`, `typescaleSm`, `typescaleMd`, `typescaleLg`, `typescaleXl`, `typescale2xl`, `fontWeightNormal` and
|
|
95
|
+
`fontWeightSemibold`
|
|
96
|
+
|
|
97
|
+
### Changed
|
|
98
|
+
|
|
99
|
+
- Remove theme prop since it's handled by CSS variables which can be controlled by `.scheme-light`, `.scheme-dark` or
|
|
100
|
+
`.scheme-light-dark` CSS class, e.g. `<p-button>Some label</p-button>` inside `<div class="scheme-dark">…</div>` will
|
|
101
|
+
render the dark theme.
|
|
102
|
+
- `Link Tile`, `Button Tile`: uses `color-scheme: dark` by default
|
|
103
|
+
- `Tailwind CSS`:
|
|
104
|
+
- Reset `--text-*`, `--breakpoint-*`, `--radius-*` and `--shadow-*`
|
|
105
|
+
- Rename theme CSS classes `.light` to `.scheme-light`, `.dark` to `.scheme-dark` and `.auto` to `.scheme-light-dark`
|
|
106
|
+
- `Canvas`: visual appearance on mobile view
|
|
107
|
+
- `Styles`: Import paths for npm package:
|
|
108
|
+
|
|
109
|
+
```diff
|
|
110
|
+
- import { … } from '@porsche-design-system/components-{js|angular|react|vue}/styles';
|
|
111
|
+
+ import { … } from '@porsche-design-system/components-{js|angular|react|vue}/emotion';
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
```diff
|
|
115
|
+
- import { … } from '@porsche-design-system/components-{js|angular|react|vue}/styles/vanilla-extract';
|
|
116
|
+
+ import { … } from '@porsche-design-system/components-{js|angular|react|vue}/vanilla-extract';
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
```diff
|
|
120
|
+
- @use '@porsche-design-system/components-{js|angular|react|vue}/styles' as *;
|
|
121
|
+
+ @use '@porsche-design-system/components-{js|angular|react|vue}/scss' as *;
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Fixed
|
|
125
|
+
|
|
126
|
+
- `Vanilla Extract`: grid style media query not working
|
|
127
|
+
- `Radio Group Option`: missing `delegatesFocus`
|
|
128
|
+
([#4135](https://github.com/porsche-design-system/porsche-design-system/pull/4135))
|
|
129
|
+
|
|
130
|
+
### Removed
|
|
131
|
+
|
|
132
|
+
- Styles (SCSS, Emotion, Vanilla-Extract): `getHoverStyle`/`pds-hover`
|
|
133
|
+
|
|
134
|
+
- Tailwind CSS: `--color-disabled`
|
|
135
|
+
|
|
136
|
+
- Emotion: `opts` parameter in `getSkeletonStyle()` including `theme` (New skeleton style works with `light-dark()` CSS
|
|
137
|
+
color function)
|
|
138
|
+
|
|
139
|
+
```diff
|
|
140
|
+
- getSkeletonStyle({ theme: 'light|dark' })
|
|
141
|
+
+ getSkeletonStyle()
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
- Vanilla Extract: `opts` parameter in `getSkeletonStyle()` including `theme` (New skeleton style works with
|
|
145
|
+
`light-dark()` CSS color function)
|
|
146
|
+
|
|
147
|
+
```diff
|
|
148
|
+
const skeletonAnimation = keyframes(skeletonKeyframes);
|
|
149
|
+
- const Skeleton = style(getSkeletonStyle(skeletonAnimation, { theme: 'light|dark' }));
|
|
150
|
+
+ const Skeleton = style(getSkeletonStyle(skeletonAnimation));
|
|
151
|
+
```
|
|
152
|
+
|
|
17
153
|
## [4.0.0-alpha.0] - 2025-12-12
|
|
18
154
|
|
|
19
155
|
See the full [migration guide](/news/migration-guide/porsche-design-system/) for a detailed explanation of all changes
|
|
@@ -28,7 +164,6 @@ and migration steps.
|
|
|
28
164
|
`@porsche-design-system/components-{js|angular|react|vue}/legacy-radius.css`
|
|
29
165
|
|
|
30
166
|
- `Divider`: value `contrast-lower` for prop `color`
|
|
31
|
-
|
|
32
167
|
- `Multi Select, Select`:
|
|
33
168
|
- `selected` slot for custom selection rendering and enabling complex options
|
|
34
169
|
- `options-status` slot for loading, error and no results states when using custom filtering
|
|
@@ -116,6 +251,10 @@ and migration steps.
|
|
|
116
251
|
- Reset all default Tailwind color tokens
|
|
117
252
|
- Remove -light and -dark color tokens, instead control theming via `.light`, `.dark` or `.auto` CSS class only
|
|
118
253
|
|
|
254
|
+
- Styles (SCSS, Emotion, Vanilla-Extract)
|
|
255
|
+
- heading styles use a regular instead of semi-bold font-weight
|
|
256
|
+
- border-radius large was changed from `12px` to `8px`, since more radius styles are now available
|
|
257
|
+
|
|
119
258
|
### Removed
|
|
120
259
|
|
|
121
260
|
- `Partials`:
|
|
@@ -263,6 +402,53 @@ and migration steps.
|
|
|
263
402
|
([#4118](https://github.com/porsche-design-system/porsche-design-system/pull/4118))
|
|
264
403
|
([#4121](https://github.com/porsche-design-system/porsche-design-system/pull/4121))
|
|
265
404
|
|
|
405
|
+
## [3.32.0] - 2026-02-04
|
|
406
|
+
|
|
407
|
+
## [3.32.0-rc.2] - 2026-02-03
|
|
408
|
+
|
|
409
|
+
### Added
|
|
410
|
+
|
|
411
|
+
- `Checkbox`, `Input-*`, `Multi-Select`, `Pin Code`, `Radio Button Group`, `Segmented-Control`, `Select`, `Textarea`:
|
|
412
|
+
New slot `label-after` to add custom content (e.g. `Popover`) after the `label` element
|
|
413
|
+
([#4181](https://github.com/porsche-design-system/porsche-design-system/pull/4181))
|
|
414
|
+
- `Angular`: Bumped peer dependency to support Angular new major version 21
|
|
415
|
+
([#4178](https://github.com/porsche-design-system/porsche-design-system/pull/4178))
|
|
416
|
+
- `Carousel`:
|
|
417
|
+
- `width` prop now supports `wide` and `full` values
|
|
418
|
+
([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
|
|
419
|
+
- `--p-carousel-px` CSS custom property introduced to control horizontal padding (when used, the `width` prop has no
|
|
420
|
+
effect anymore) ([#4180](https://github.com/porsche-design-system/porsche-design-system/pull/4180))
|
|
421
|
+
|
|
422
|
+
## [3.32.0-rc.1] - 2026-01-12
|
|
423
|
+
|
|
424
|
+
### Added
|
|
425
|
+
|
|
426
|
+
- `AG Grid`: Bumped peer dependency to support AG Grid new major version 35
|
|
427
|
+
([#4143](https://github.com/porsche-design-system/porsche-design-system/issues/4143))
|
|
428
|
+
|
|
429
|
+
### Fixed
|
|
430
|
+
|
|
431
|
+
- `Radio Group Option`: missing `delegatesFocus`
|
|
432
|
+
([#4135](https://github.com/porsche-design-system/porsche-design-system/pull/4135))
|
|
433
|
+
|
|
434
|
+
## [3.32.0-rc.0] - 2025-12-16
|
|
435
|
+
|
|
436
|
+
### Added
|
|
437
|
+
|
|
438
|
+
- `Textarea`: add CSS Variables for `fieldSizing`, `minWidth`, `maxWidth`, `minHeight`, `maxHeight` to control the
|
|
439
|
+
intrinsic sizing behavior ([#4132](https://github.com/porsche-design-system/porsche-design-system/pull/4132))
|
|
440
|
+
- `Canvas`: prop `background` to set the background color to `canvas | surface`
|
|
441
|
+
|
|
442
|
+
### Fixed
|
|
443
|
+
|
|
444
|
+
- `Multi Select`: trim whitespace of selected options text
|
|
445
|
+
([#4132](https://github.com/porsche-design-system/porsche-design-system/pull/4132))
|
|
446
|
+
|
|
447
|
+
### Changed
|
|
448
|
+
|
|
449
|
+
- `Link Tile`, `Button Tile`: appearance in compact mode
|
|
450
|
+
- `Canvas`: appearance on mobile view
|
|
451
|
+
|
|
266
452
|
## [3.31.0] - 2025-11-13
|
|
267
453
|
|
|
268
454
|
## [3.31.0-rc.0] - 2025-11-11
|
|
File without changes
|
|
@@ -6,15 +6,15 @@ var react = require('react');
|
|
|
6
6
|
var hooks = require('../../hooks.cjs');
|
|
7
7
|
var utils = require('../../utils.cjs');
|
|
8
8
|
|
|
9
|
-
const PCanvas = /*#__PURE__*/ react.forwardRef(({ onSidebarEndDismiss, onSidebarStartUpdate, sidebarEndOpen = false, sidebarStartOpen = false, className, ...rest }, ref) => {
|
|
9
|
+
const PCanvas = /*#__PURE__*/ react.forwardRef(({ background = 'canvas', onSidebarEndDismiss, onSidebarStartUpdate, sidebarEndOpen = false, sidebarStartOpen = false, className, ...rest }, ref) => {
|
|
10
10
|
const elementRef = react.useRef(undefined);
|
|
11
11
|
hooks.useEventCallback(elementRef, 'sidebarEndDismiss', onSidebarEndDismiss);
|
|
12
12
|
hooks.useEventCallback(elementRef, 'sidebarStartUpdate', onSidebarStartUpdate);
|
|
13
13
|
const WebComponentTag = hooks.usePrefix('p-canvas');
|
|
14
|
-
const propsToSync = [sidebarEndOpen, sidebarStartOpen];
|
|
14
|
+
const propsToSync = [background, sidebarEndOpen, sidebarStartOpen];
|
|
15
15
|
hooks.useBrowserLayoutEffect(() => {
|
|
16
16
|
const { current } = elementRef;
|
|
17
|
-
['sidebarEndOpen', 'sidebarStartOpen'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
17
|
+
['background', 'sidebarEndOpen', 'sidebarStartOpen'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
18
18
|
}, propsToSync);
|
|
19
19
|
const props = {
|
|
20
20
|
...rest,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var emotion = require('@porsche-design-system/components-js/emotion');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
Object.keys(
|
|
7
|
+
Object.keys(emotion).forEach(function (k) {
|
|
8
8
|
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
9
9
|
enumerable: true,
|
|
10
|
-
get: function () { return
|
|
10
|
+
get: function () { return emotion[k]; }
|
|
11
11
|
});
|
|
12
12
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@porsche-design-system/components-js/emotion';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@porsche-design-system/components-js/emotion';
|
|
@@ -8,11 +8,6 @@
|
|
|
8
8
|
"types": "./esm/index.d.ts",
|
|
9
9
|
"import": "./esm/index.mjs",
|
|
10
10
|
"default": "./cjs/index.cjs"
|
|
11
|
-
},
|
|
12
|
-
"./vanilla-extract": {
|
|
13
|
-
"types": "./vanilla-extract/esm/index.d.ts",
|
|
14
|
-
"import": "./vanilla-extract/esm/index.mjs",
|
|
15
|
-
"default": "./vanilla-extract/cjs/index.cjs"
|
|
16
11
|
}
|
|
17
12
|
}
|
|
18
13
|
}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { BaseProps } from '../../BaseProps';
|
|
2
|
-
import type { CanvasSidebarStartUpdateEventDetail } from '../types';
|
|
2
|
+
import type { CanvasBackground, CanvasSidebarStartUpdateEventDetail } from '../types';
|
|
3
3
|
export type PCanvasProps = BaseProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Defines the background color of the main section and auto adjust it for the sidebar
|
|
6
|
+
*/
|
|
7
|
+
background?: CanvasBackground;
|
|
4
8
|
/**
|
|
5
9
|
* Emitted when the sidebar end requests to be dismissed.
|
|
6
10
|
*/
|
|
@@ -19,6 +23,10 @@ export type PCanvasProps = BaseProps & {
|
|
|
19
23
|
sidebarStartOpen?: boolean;
|
|
20
24
|
};
|
|
21
25
|
export declare const PCanvas: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
26
|
+
/**
|
|
27
|
+
* Defines the background color of the main section and auto adjust it for the sidebar
|
|
28
|
+
*/
|
|
29
|
+
background?: CanvasBackground;
|
|
22
30
|
/**
|
|
23
31
|
* Emitted when the sidebar end requests to be dismissed.
|
|
24
32
|
*/
|
|
@@ -4,15 +4,15 @@ import { forwardRef, useRef } from 'react';
|
|
|
4
4
|
import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
|
|
5
5
|
import { syncRef } from '../../utils.mjs';
|
|
6
6
|
|
|
7
|
-
const PCanvas = /*#__PURE__*/ forwardRef(({ onSidebarEndDismiss, onSidebarStartUpdate, sidebarEndOpen = false, sidebarStartOpen = false, className, ...rest }, ref) => {
|
|
7
|
+
const PCanvas = /*#__PURE__*/ forwardRef(({ background = 'canvas', onSidebarEndDismiss, onSidebarStartUpdate, sidebarEndOpen = false, sidebarStartOpen = false, className, ...rest }, ref) => {
|
|
8
8
|
const elementRef = useRef(undefined);
|
|
9
9
|
useEventCallback(elementRef, 'sidebarEndDismiss', onSidebarEndDismiss);
|
|
10
10
|
useEventCallback(elementRef, 'sidebarStartUpdate', onSidebarStartUpdate);
|
|
11
11
|
const WebComponentTag = usePrefix('p-canvas');
|
|
12
|
-
const propsToSync = [sidebarEndOpen, sidebarStartOpen];
|
|
12
|
+
const propsToSync = [background, sidebarEndOpen, sidebarStartOpen];
|
|
13
13
|
useBrowserLayoutEffect(() => {
|
|
14
14
|
const { current } = elementRef;
|
|
15
|
-
['sidebarEndOpen', 'sidebarStartOpen'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
15
|
+
['background', 'sidebarEndOpen', 'sidebarStartOpen'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
16
16
|
}, propsToSync);
|
|
17
17
|
const props = {
|
|
18
18
|
...rest,
|
|
@@ -6,7 +6,7 @@ export type PDisplayProps = BaseProps & {
|
|
|
6
6
|
*/
|
|
7
7
|
align?: DisplayAlign;
|
|
8
8
|
/**
|
|
9
|
-
* Basic text color variations
|
|
9
|
+
* Basic text color variations.
|
|
10
10
|
*/
|
|
11
11
|
color?: DisplayColor;
|
|
12
12
|
/**
|
|
@@ -28,7 +28,7 @@ export declare const PDisplay: import("react").ForwardRefExoticComponent<Omit<im
|
|
|
28
28
|
*/
|
|
29
29
|
align?: DisplayAlign;
|
|
30
30
|
/**
|
|
31
|
-
* Basic text color variations
|
|
31
|
+
* Basic text color variations.
|
|
32
32
|
*/
|
|
33
33
|
color?: DisplayColor;
|
|
34
34
|
/**
|
|
@@ -2,7 +2,7 @@ import type { BaseProps } from '../../BaseProps';
|
|
|
2
2
|
import type { DividerColor, BreakpointCustomizable, DividerDirection } from '../types';
|
|
3
3
|
export type PDividerProps = BaseProps & {
|
|
4
4
|
/**
|
|
5
|
-
* Defines color
|
|
5
|
+
* Defines color.
|
|
6
6
|
*/
|
|
7
7
|
color?: DividerColor;
|
|
8
8
|
/**
|
|
@@ -12,7 +12,7 @@ export type PDividerProps = BaseProps & {
|
|
|
12
12
|
};
|
|
13
13
|
export declare const PDivider: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
14
14
|
/**
|
|
15
|
-
* Defines color
|
|
15
|
+
* Defines color.
|
|
16
16
|
*/
|
|
17
17
|
color?: DividerColor;
|
|
18
18
|
/**
|
|
@@ -6,7 +6,7 @@ export type PHeadingProps = BaseProps & {
|
|
|
6
6
|
*/
|
|
7
7
|
align?: HeadingAlign;
|
|
8
8
|
/**
|
|
9
|
-
* Basic text color variations
|
|
9
|
+
* Basic text color variations.
|
|
10
10
|
*/
|
|
11
11
|
color?: HeadingColor;
|
|
12
12
|
/**
|
|
@@ -28,7 +28,7 @@ export declare const PHeading: import("react").ForwardRefExoticComponent<Omit<im
|
|
|
28
28
|
*/
|
|
29
29
|
align?: HeadingAlign;
|
|
30
30
|
/**
|
|
31
|
-
* Basic text color variations
|
|
31
|
+
* Basic text color variations.
|
|
32
32
|
*/
|
|
33
33
|
color?: HeadingColor;
|
|
34
34
|
/**
|
|
@@ -6,7 +6,7 @@ export type PIconProps = BaseProps & {
|
|
|
6
6
|
*/
|
|
7
7
|
aria?: SelectedAriaAttributes<IconAriaAttribute>;
|
|
8
8
|
/**
|
|
9
|
-
* Basic color variations
|
|
9
|
+
* Basic color variations.
|
|
10
10
|
*/
|
|
11
11
|
color?: IconColor;
|
|
12
12
|
/**
|
|
@@ -28,7 +28,7 @@ export declare const PIcon: import("react").ForwardRefExoticComponent<Omit<impor
|
|
|
28
28
|
*/
|
|
29
29
|
aria?: SelectedAriaAttributes<IconAriaAttribute>;
|
|
30
30
|
/**
|
|
31
|
-
* Basic color variations
|
|
31
|
+
* Basic color variations.
|
|
32
32
|
*/
|
|
33
33
|
color?: IconColor;
|
|
34
34
|
/**
|
|
@@ -6,7 +6,7 @@ export type PTextProps = BaseProps & {
|
|
|
6
6
|
*/
|
|
7
7
|
align?: TextAlign;
|
|
8
8
|
/**
|
|
9
|
-
* Basic text color variations
|
|
9
|
+
* Basic text color variations.
|
|
10
10
|
*/
|
|
11
11
|
color?: TextColor;
|
|
12
12
|
/**
|
|
@@ -32,7 +32,7 @@ export declare const PText: import("react").ForwardRefExoticComponent<Omit<impor
|
|
|
32
32
|
*/
|
|
33
33
|
align?: TextAlign;
|
|
34
34
|
/**
|
|
35
|
-
* Basic text color variations
|
|
35
|
+
* Basic text color variations.
|
|
36
36
|
*/
|
|
37
37
|
color?: TextColor;
|
|
38
38
|
/**
|
|
@@ -78,7 +78,7 @@ export type PTextareaProps = BaseProps & {
|
|
|
78
78
|
*/
|
|
79
79
|
resize?: TextareaResize;
|
|
80
80
|
/**
|
|
81
|
-
* The number of rows
|
|
81
|
+
* The number of rows. Has no effect when field-sizing CSS Variable '--p-textarea-field-sizing' is set to 'content'.
|
|
82
82
|
*/
|
|
83
83
|
rows?: number;
|
|
84
84
|
/**
|
|
@@ -176,7 +176,7 @@ export declare const PTextarea: import("react").ForwardRefExoticComponent<Omit<i
|
|
|
176
176
|
*/
|
|
177
177
|
resize?: TextareaResize;
|
|
178
178
|
/**
|
|
179
|
-
* The number of rows
|
|
179
|
+
* The number of rows. Has no effect when field-sizing CSS Variable '--p-textarea-field-sizing' is set to 'content'.
|
|
180
180
|
*/
|
|
181
181
|
rows?: number;
|
|
182
182
|
/**
|
package/esm/lib/types.d.ts
CHANGED
|
@@ -847,9 +847,16 @@ export type ButtonTileAlign = TileAlign;
|
|
|
847
847
|
export type CanvasSidebarStartUpdateEventDetail = {
|
|
848
848
|
open: boolean;
|
|
849
849
|
};
|
|
850
|
+
declare const CANVAS_BACKGROUNDS: readonly [
|
|
851
|
+
"canvas",
|
|
852
|
+
"surface"
|
|
853
|
+
];
|
|
854
|
+
export type CanvasBackground = (typeof CANVAS_BACKGROUNDS)[number];
|
|
850
855
|
declare const CAROUSEL_WIDTHS: readonly [
|
|
851
856
|
"basic",
|
|
852
|
-
"extended"
|
|
857
|
+
"extended",
|
|
858
|
+
"wide",
|
|
859
|
+
"full"
|
|
853
860
|
];
|
|
854
861
|
export type CarouselWidth = (typeof CAROUSEL_WIDTHS)[number];
|
|
855
862
|
declare const CAROUSEL_SLIDES_PER_PAGE: (string | number)[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@font-face{font-family:Porsche Next;font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-arabic-bold.1796b39.woff2') format('woff2');unicode-range:U+0600-0671,U+06A1,U+06A4,U+06BA,U+06CC,U+06D5,U+06F8,U+06F9;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-arabic-regular.413b375.woff2') format('woff2');unicode-range:U+0600-0671,U+06A1,U+06A4,U+06BA,U+06CC,U+06D5,U+06F8,U+06F9;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-cyril-bold.4cb90bb.woff2') format('woff2');unicode-range:U+0400-04FF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-cyril-regular.b845952.woff2') format('woff2');unicode-range:U+0400-04FF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:600;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-cyril-semi-bold.378f7d5.woff2') format('woff2');unicode-range:U+0400-04FF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-greek-bold.d2546b1.woff2') format('woff2');unicode-range:U+0370-03FF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-greek-regular.0b3d9b3.woff2') format('woff2');unicode-range:U+0370-03FF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:600;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-greek-semi-bold.f3a9ae0.woff2') format('woff2');unicode-range:U+0370-03FF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-latin-bold.0fbdc6d.woff2') format('woff2');unicode-range:U+0020-007F,U+0080-00FF,U+0100-017F,U+0180-024F,U+0250-02AF,U+02B0-02FF,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2150-218F,U+2190-21FF,U+2200-22FF,U+25A0-25FF,U+2600-26FF,U+FB00-FB4F,U+FE70-FEFF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-latin-regular.b8f1c20.woff2') format('woff2');unicode-range:U+0020-007F,U+0080-00FF,U+0100-017F,U+0180-024F,U+0250-02AF,U+02B0-02FF,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2150-218F,U+2190-21FF,U+2200-22FF,U+25A0-25FF,U+2600-26FF,U+FB00-FB4F,U+FE70-FEFF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:600;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-latin-semi-bold.b5f6fca.woff2') format('woff2');unicode-range:U+0020-007F,U+0080-00FF,U+0100-017F,U+0180-024F,U+0250-02AF,U+02B0-02FF,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2150-218F,U+2190-21FF,U+2200-22FF,U+25A0-25FF,U+2600-26FF,U+FB00-FB4F,U+FE70-FEFF;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-pashto-bold.f30f194.woff2') format('woff2');unicode-range:U+067C,U+067E,U+0681,U+0682,U+0685,U+0686,U+0689,U+067C,U+0693,U+0696,U+0698,U+069A,U+06A9,U+06AB,U+06AF,U+06BC,U+06CD,U+06D0;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-pashto-regular.3989814.woff2') format('woff2');unicode-range:U+067C,U+067E,U+0681,U+0682,U+0685,U+0686,U+0689,U+067C,U+0693,U+0696,U+0698,U+069A,U+06A9,U+06AB,U+06AF,U+06BC,U+06CD,U+06D0;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-thai-bold.b9e9f23.woff2') format('woff2');unicode-range:U+0E00-0E7F;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-thai-regular.ac04c30.woff2') format('woff2');unicode-range:U+0E00-0E7F;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:600;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-thai-semi-bold.8d53572.woff2') format('woff2');unicode-range:U+0E00-0E7F;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-urdu-bold.49a86a4.woff2') format('woff2');unicode-range:U+0679,U+0688,U+0691,U+06BE,U+06C0-06C3,U+06D2-06D5,U+06F0-06F9;font-display:swap}@font-face{font-family:Porsche Next;font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-urdu-regular.ad23819.woff2') format('woff2');unicode-range:U+0679,U+0688,U+0691,U+06BE,U+06C0-06C3,U+06D2-06D5,U+06F0-06F9;font-display:swap}
|
|
1
|
+
@font-face{font-family:"Porsche Next";font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-arabic-bold.1796b39.woff2') format('woff2');unicode-range:U+0600-0671,U+06A1,U+06A4,U+06BA,U+06CC,U+06D5,U+06F8,U+06F9;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-arabic-regular.413b375.woff2') format('woff2');unicode-range:U+0600-0671,U+06A1,U+06A4,U+06BA,U+06CC,U+06D5,U+06F8,U+06F9;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-cyril-bold.4cb90bb.woff2') format('woff2');unicode-range:U+0400-04FF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-cyril-regular.b845952.woff2') format('woff2');unicode-range:U+0400-04FF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:600;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-cyril-semi-bold.378f7d5.woff2') format('woff2');unicode-range:U+0400-04FF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-greek-bold.d2546b1.woff2') format('woff2');unicode-range:U+0370-03FF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-greek-regular.0b3d9b3.woff2') format('woff2');unicode-range:U+0370-03FF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:600;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-greek-semi-bold.f3a9ae0.woff2') format('woff2');unicode-range:U+0370-03FF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-latin-bold.0fbdc6d.woff2') format('woff2');unicode-range:U+0020-007F,U+0080-00FF,U+0100-017F,U+0180-024F,U+0250-02AF,U+02B0-02FF,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2150-218F,U+2190-21FF,U+2200-22FF,U+25A0-25FF,U+2600-26FF,U+FB00-FB4F,U+FE70-FEFF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-latin-regular.b8f1c20.woff2') format('woff2');unicode-range:U+0020-007F,U+0080-00FF,U+0100-017F,U+0180-024F,U+0250-02AF,U+02B0-02FF,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2150-218F,U+2190-21FF,U+2200-22FF,U+25A0-25FF,U+2600-26FF,U+FB00-FB4F,U+FE70-FEFF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:600;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-latin-semi-bold.b5f6fca.woff2') format('woff2');unicode-range:U+0020-007F,U+0080-00FF,U+0100-017F,U+0180-024F,U+0250-02AF,U+02B0-02FF,U+0300-036F,U+1E00-1EFF,U+2000-206F,U+2070-209F,U+20A0-20CF,U+2100-214F,U+2150-218F,U+2190-21FF,U+2200-22FF,U+25A0-25FF,U+2600-26FF,U+FB00-FB4F,U+FE70-FEFF;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-pashto-bold.f30f194.woff2') format('woff2');unicode-range:U+067C,U+067E,U+0681,U+0682,U+0685,U+0686,U+0689,U+067C,U+0693,U+0696,U+0698,U+069A,U+06A9,U+06AB,U+06AF,U+06BC,U+06CD,U+06D0;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-pashto-regular.3989814.woff2') format('woff2');unicode-range:U+067C,U+067E,U+0681,U+0682,U+0685,U+0686,U+0689,U+067C,U+0693,U+0696,U+0698,U+069A,U+06A9,U+06AB,U+06AF,U+06BC,U+06CD,U+06D0;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-thai-bold.b9e9f23.woff2') format('woff2');unicode-range:U+0E00-0E7F;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-thai-regular.ac04c30.woff2') format('woff2');unicode-range:U+0E00-0E7F;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:600;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-thai-semi-bold.8d53572.woff2') format('woff2');unicode-range:U+0E00-0E7F;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:700;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-urdu-bold.49a86a4.woff2') format('woff2');unicode-range:U+0679,U+0688,U+0691,U+06BE,U+06C0-06C3,U+06D2-06D5,U+06F0-06F9;font-display:swap}@font-face{font-family:"Porsche Next";font-style:normal;font-weight:400;src:url('https://cdn.ui.porsche.cn/porsche-design-system/fonts/porsche-next-urdu-regular.ad23819.woff2') format('woff2');unicode-range:U+0679,U+0688,U+0691,U+06BE,U+06C0-06C3,U+06D2-06D5,U+06F0-06F9;font-display:swap}
|