@porsche-design-system/components-angular 4.5.0-rc.1 → 4.6.0-rc.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.
Files changed (283) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/bin/pds-skill.js +259 -0
  3. package/fesm2022/porsche-design-system-components-angular.mjs.map +1 -1
  4. package/package.json +5 -2
  5. package/skill/SKILL.md +124 -0
  6. package/skill/references/components/p-accordion/examples/Default.ts +26 -0
  7. package/skill/references/components/p-accordion/examples/InteractiveElementsInSummary.ts +30 -0
  8. package/skill/references/components/p-accordion/examples/StickySummary.ts +26 -0
  9. package/skill/references/components/p-accordion/p-accordion.md +95 -0
  10. package/skill/references/components/p-ai-tag/examples/Default.ts +13 -0
  11. package/skill/references/components/p-ai-tag/examples/WithinCheckbox.ts +33 -0
  12. package/skill/references/components/p-ai-tag/examples/WithinFormLabel.ts +40 -0
  13. package/skill/references/components/p-ai-tag/examples/WithinImage.ts +16 -0
  14. package/skill/references/components/p-ai-tag/examples/WithinInputSearch.ts +15 -0
  15. package/skill/references/components/p-ai-tag/examples/WithinRadioGroup.ts +32 -0
  16. package/skill/references/components/p-ai-tag/examples/WithinTable.ts +94 -0
  17. package/skill/references/components/p-ai-tag/examples/WithinText.ts +17 -0
  18. package/skill/references/components/p-ai-tag/p-ai-tag.md +47 -0
  19. package/skill/references/components/p-banner/examples/Customization.ts +37 -0
  20. package/skill/references/components/p-banner/examples/Default.ts +26 -0
  21. package/skill/references/components/p-banner/p-banner.md +92 -0
  22. package/skill/references/components/p-button/examples/Default.ts +15 -0
  23. package/skill/references/components/p-button/examples/Form.ts +26 -0
  24. package/skill/references/components/p-button/examples/FormAttribute.ts +30 -0
  25. package/skill/references/components/p-button/p-button.md +118 -0
  26. package/skill/references/components/p-button-pure/examples/CustomClickableArea.ts +15 -0
  27. package/skill/references/components/p-button-pure/examples/Default.ts +15 -0
  28. package/skill/references/components/p-button-pure/examples/Form.ts +26 -0
  29. package/skill/references/components/p-button-pure/examples/FormAttribute.ts +30 -0
  30. package/skill/references/components/p-button-pure/p-button-pure.md +118 -0
  31. package/skill/references/components/p-button-tile/examples/ColorScheme.ts +18 -0
  32. package/skill/references/components/p-button-tile/examples/Default.ts +21 -0
  33. package/skill/references/components/p-button-tile/examples/FooterSlot.ts +32 -0
  34. package/skill/references/components/p-button-tile/examples/Hyphens.ts +38 -0
  35. package/skill/references/components/p-button-tile/examples/UiBehaviour.ts +44 -0
  36. package/skill/references/components/p-button-tile/p-button-tile.md +115 -0
  37. package/skill/references/components/p-canvas/examples/Default.ts +13 -0
  38. package/skill/references/components/p-canvas/p-canvas.md +91 -0
  39. package/skill/references/components/p-carousel/examples/Default.ts +26 -0
  40. package/skill/references/components/p-carousel/examples/DynamicSlides.ts +37 -0
  41. package/skill/references/components/p-carousel/examples/FlexibleWidths.ts +32 -0
  42. package/skill/references/components/p-carousel/examples/FocusOnCenterSlide.ts +65 -0
  43. package/skill/references/components/p-carousel/examples/Intl.ts +23 -0
  44. package/skill/references/components/p-carousel/examples/JumpToSlide.ts +50 -0
  45. package/skill/references/components/p-carousel/p-carousel.md +142 -0
  46. package/skill/references/components/p-checkbox/examples/Default.ts +13 -0
  47. package/skill/references/components/p-checkbox/examples/Form.ts +31 -0
  48. package/skill/references/components/p-checkbox/examples/Indeterminate.ts +16 -0
  49. package/skill/references/components/p-checkbox/examples/Slots.ts +57 -0
  50. package/skill/references/components/p-checkbox/examples/WrappedLabel.ts +27 -0
  51. package/skill/references/components/p-checkbox/p-checkbox.md +122 -0
  52. package/skill/references/components/p-crest/examples/CustomClickableArea.ts +13 -0
  53. package/skill/references/components/p-crest/examples/Default.ts +13 -0
  54. package/skill/references/components/p-crest/examples/Link.ts +13 -0
  55. package/skill/references/components/p-crest/p-crest.md +65 -0
  56. package/skill/references/components/p-display/examples/Color.ts +15 -0
  57. package/skill/references/components/p-display/examples/Default.ts +15 -0
  58. package/skill/references/components/p-display/examples/Semantics.ts +21 -0
  59. package/skill/references/components/p-display/examples/Size.ts +15 -0
  60. package/skill/references/components/p-display/examples/SizeResponsive.ts +15 -0
  61. package/skill/references/components/p-display/p-display.md +78 -0
  62. package/skill/references/components/p-divider/examples/Default.ts +13 -0
  63. package/skill/references/components/p-divider/examples/Responsive.ts +15 -0
  64. package/skill/references/components/p-divider/examples/Vertical.ts +15 -0
  65. package/skill/references/components/p-divider/p-divider.md +49 -0
  66. package/skill/references/components/p-drilldown/examples/CustomContent.ts +166 -0
  67. package/skill/references/components/p-drilldown/examples/Default.ts +119 -0
  68. package/skill/references/components/p-drilldown/p-drilldown.md +168 -0
  69. package/skill/references/components/p-fieldset/examples/Default.ts +15 -0
  70. package/skill/references/components/p-fieldset/examples/Required.ts +16 -0
  71. package/skill/references/components/p-fieldset/examples/SlottedLabel.ts +18 -0
  72. package/skill/references/components/p-fieldset/examples/SlottedMessage.ts +18 -0
  73. package/skill/references/components/p-fieldset/p-fieldset.md +88 -0
  74. package/skill/references/components/p-flag/examples/Default.ts +13 -0
  75. package/skill/references/components/p-flag/examples/ResponsiveSize.ts +13 -0
  76. package/skill/references/components/p-flag/examples/Size.ts +16 -0
  77. package/skill/references/components/p-flag/examples/SizeCssVar.ts +13 -0
  78. package/skill/references/components/p-flag/p-flag.md +68 -0
  79. package/skill/references/components/p-flyout/examples/CustomStyling.ts +47 -0
  80. package/skill/references/components/p-flyout/examples/Default.ts +44 -0
  81. package/skill/references/components/p-flyout/examples/Form.ts +47 -0
  82. package/skill/references/components/p-flyout/examples/StickyTop.ts +44 -0
  83. package/skill/references/components/p-flyout/p-flyout.md +128 -0
  84. package/skill/references/components/p-heading/examples/Color.ts +15 -0
  85. package/skill/references/components/p-heading/examples/Default.ts +15 -0
  86. package/skill/references/components/p-heading/examples/Semantics.ts +21 -0
  87. package/skill/references/components/p-heading/p-heading.md +78 -0
  88. package/skill/references/components/p-icon/examples/Color.ts +16 -0
  89. package/skill/references/components/p-icon/examples/ColorCssVar.ts +13 -0
  90. package/skill/references/components/p-icon/examples/Custom.ts +13 -0
  91. package/skill/references/components/p-icon/examples/Default.ts +13 -0
  92. package/skill/references/components/p-icon/examples/Overview.ts +591 -0
  93. package/skill/references/components/p-icon/examples/ResponsiveSize.ts +13 -0
  94. package/skill/references/components/p-icon/examples/Size.ts +16 -0
  95. package/skill/references/components/p-icon/examples/SizeCssVar.ts +13 -0
  96. package/skill/references/components/p-icon/p-icon.md +88 -0
  97. package/skill/references/components/p-inline-notification/examples/ActionButton.ts +29 -0
  98. package/skill/references/components/p-inline-notification/examples/Default.ts +13 -0
  99. package/skill/references/components/p-inline-notification/examples/EventHandling.ts +31 -0
  100. package/skill/references/components/p-inline-notification/p-inline-notification.md +74 -0
  101. package/skill/references/components/p-input-date/examples/Default.ts +13 -0
  102. package/skill/references/components/p-input-date/examples/Form.ts +31 -0
  103. package/skill/references/components/p-input-date/examples/Slots.ts +44 -0
  104. package/skill/references/components/p-input-date/p-input-date.md +138 -0
  105. package/skill/references/components/p-input-email/examples/Default.ts +13 -0
  106. package/skill/references/components/p-input-email/examples/Form.ts +31 -0
  107. package/skill/references/components/p-input-email/examples/Slots.ts +44 -0
  108. package/skill/references/components/p-input-email/p-input-email.md +142 -0
  109. package/skill/references/components/p-input-month/examples/Default.ts +13 -0
  110. package/skill/references/components/p-input-month/examples/Form.ts +31 -0
  111. package/skill/references/components/p-input-month/examples/Slots.ts +44 -0
  112. package/skill/references/components/p-input-month/p-input-month.md +138 -0
  113. package/skill/references/components/p-input-number/examples/Default.ts +13 -0
  114. package/skill/references/components/p-input-number/examples/Form.ts +31 -0
  115. package/skill/references/components/p-input-number/examples/Slots.ts +44 -0
  116. package/skill/references/components/p-input-number/p-input-number.md +146 -0
  117. package/skill/references/components/p-input-password/examples/Default.ts +13 -0
  118. package/skill/references/components/p-input-password/examples/Form.ts +31 -0
  119. package/skill/references/components/p-input-password/examples/Slots.ts +42 -0
  120. package/skill/references/components/p-input-password/examples/Toggle.ts +13 -0
  121. package/skill/references/components/p-input-password/p-input-password.md +141 -0
  122. package/skill/references/components/p-input-search/examples/AriaCombobox.ts +38 -0
  123. package/skill/references/components/p-input-search/examples/Default.ts +13 -0
  124. package/skill/references/components/p-input-search/examples/Form.ts +31 -0
  125. package/skill/references/components/p-input-search/examples/Slots.ts +44 -0
  126. package/skill/references/components/p-input-search/p-input-search.md +178 -0
  127. package/skill/references/components/p-input-tel/examples/Default.ts +13 -0
  128. package/skill/references/components/p-input-tel/examples/Form.ts +31 -0
  129. package/skill/references/components/p-input-tel/examples/Slots.ts +44 -0
  130. package/skill/references/components/p-input-tel/p-input-tel.md +141 -0
  131. package/skill/references/components/p-input-text/examples/Controlled.ts +36 -0
  132. package/skill/references/components/p-input-text/examples/Default.ts +13 -0
  133. package/skill/references/components/p-input-text/examples/Form.ts +31 -0
  134. package/skill/references/components/p-input-text/examples/Slots.ts +44 -0
  135. package/skill/references/components/p-input-text/p-input-text.md +146 -0
  136. package/skill/references/components/p-input-time/examples/Default.ts +13 -0
  137. package/skill/references/components/p-input-time/examples/Form.ts +31 -0
  138. package/skill/references/components/p-input-time/examples/Slots.ts +44 -0
  139. package/skill/references/components/p-input-time/p-input-time.md +140 -0
  140. package/skill/references/components/p-input-url/examples/Default.ts +13 -0
  141. package/skill/references/components/p-input-url/examples/Form.ts +31 -0
  142. package/skill/references/components/p-input-url/examples/Slots.ts +44 -0
  143. package/skill/references/components/p-input-url/p-input-url.md +141 -0
  144. package/skill/references/components/p-input-week/examples/Default.ts +13 -0
  145. package/skill/references/components/p-input-week/examples/Form.ts +31 -0
  146. package/skill/references/components/p-input-week/examples/Slots.ts +44 -0
  147. package/skill/references/components/p-input-week/p-input-week.md +138 -0
  148. package/skill/references/components/p-link/examples/Default.ts +15 -0
  149. package/skill/references/components/p-link/examples/FrameworkRouting.ts +17 -0
  150. package/skill/references/components/p-link/examples/Icon.ts +20 -0
  151. package/skill/references/components/p-link/p-link.md +101 -0
  152. package/skill/references/components/p-link-pure/examples/CustomClickableArea.ts +15 -0
  153. package/skill/references/components/p-link-pure/examples/Default.ts +15 -0
  154. package/skill/references/components/p-link-pure/examples/FrameworkRouting.ts +17 -0
  155. package/skill/references/components/p-link-pure/examples/Icon.ts +20 -0
  156. package/skill/references/components/p-link-pure/p-link-pure.md +110 -0
  157. package/skill/references/components/p-link-tile/examples/ColorScheme.ts +18 -0
  158. package/skill/references/components/p-link-tile/examples/Default.ts +21 -0
  159. package/skill/references/components/p-link-tile/examples/FooterSlot.ts +32 -0
  160. package/skill/references/components/p-link-tile/examples/Hyphens.ts +39 -0
  161. package/skill/references/components/p-link-tile/examples/UiBehaviour.ts +44 -0
  162. package/skill/references/components/p-link-tile/examples/WithVideo.ts +18 -0
  163. package/skill/references/components/p-link-tile/p-link-tile.md +105 -0
  164. package/skill/references/components/p-link-tile-product/examples/Default.ts +24 -0
  165. package/skill/references/components/p-link-tile-product/examples/FrameworkRouting.ts +27 -0
  166. package/skill/references/components/p-link-tile-product/p-link-tile-product.md +93 -0
  167. package/skill/references/components/p-modal/examples/AlertDialog.ts +41 -0
  168. package/skill/references/components/p-modal/examples/CustomStyling.ts +28 -0
  169. package/skill/references/components/p-modal/examples/Default.ts +41 -0
  170. package/skill/references/components/p-modal/examples/Scrollable.ts +45 -0
  171. package/skill/references/components/p-modal/p-modal.md +135 -0
  172. package/skill/references/components/p-model-signature/examples/CustomStyling.ts +17 -0
  173. package/skill/references/components/p-model-signature/examples/Default.ts +13 -0
  174. package/skill/references/components/p-model-signature/examples/MaskBlendMode.ts +35 -0
  175. package/skill/references/components/p-model-signature/examples/MaskImage.ts +15 -0
  176. package/skill/references/components/p-model-signature/examples/MaskVideo.ts +15 -0
  177. package/skill/references/components/p-model-signature/examples/SafeZone.ts +63 -0
  178. package/skill/references/components/p-model-signature/p-model-signature.md +62 -0
  179. package/skill/references/components/p-multi-select/examples/AsyncFilter.ts +149 -0
  180. package/skill/references/components/p-multi-select/examples/Default.ts +32 -0
  181. package/skill/references/components/p-multi-select/examples/Form.ts +38 -0
  182. package/skill/references/components/p-multi-select/examples/Optgroups.ts +45 -0
  183. package/skill/references/components/p-multi-select/examples/SelectedSlot.ts +103 -0
  184. package/skill/references/components/p-multi-select/examples/SetValue.ts +76 -0
  185. package/skill/references/components/p-multi-select/examples/Slots.ts +51 -0
  186. package/skill/references/components/p-multi-select/p-multi-select.md +197 -0
  187. package/skill/references/components/p-pagination/examples/Default.ts +13 -0
  188. package/skill/references/components/p-pagination/p-pagination.md +83 -0
  189. package/skill/references/components/p-pin-code/examples/CopyPaste.ts +13 -0
  190. package/skill/references/components/p-pin-code/examples/Default.ts +13 -0
  191. package/skill/references/components/p-pin-code/examples/Form.ts +31 -0
  192. package/skill/references/components/p-pin-code/examples/Slots.ts +42 -0
  193. package/skill/references/components/p-pin-code/p-pin-code.md +109 -0
  194. package/skill/references/components/p-popover/examples/Default.ts +17 -0
  195. package/skill/references/components/p-popover/examples/SlottedButton.ts +18 -0
  196. package/skill/references/components/p-popover/p-popover.md +116 -0
  197. package/skill/references/components/p-radio-group/examples/Default.ts +20 -0
  198. package/skill/references/components/p-radio-group/examples/Form.ts +38 -0
  199. package/skill/references/components/p-radio-group/examples/Slots.ts +72 -0
  200. package/skill/references/components/p-radio-group/p-radio-group.md +157 -0
  201. package/skill/references/components/p-scroller/examples/Default.ts +54 -0
  202. package/skill/references/components/p-scroller/examples/Height.ts +29 -0
  203. package/skill/references/components/p-scroller/examples/ScrollToPosition.ts +43 -0
  204. package/skill/references/components/p-scroller/p-scroller.md +93 -0
  205. package/skill/references/components/p-segmented-control/examples/Default.ts +29 -0
  206. package/skill/references/components/p-segmented-control/examples/Form.ts +37 -0
  207. package/skill/references/components/p-segmented-control/examples/Slots.ts +57 -0
  208. package/skill/references/components/p-segmented-control/examples/WithLabels.ts +29 -0
  209. package/skill/references/components/p-segmented-control/p-segmented-control.md +162 -0
  210. package/skill/references/components/p-select/examples/AsyncFilter.ts +149 -0
  211. package/skill/references/components/p-select/examples/Default.ts +32 -0
  212. package/skill/references/components/p-select/examples/Form.ts +38 -0
  213. package/skill/references/components/p-select/examples/Optgroups.ts +45 -0
  214. package/skill/references/components/p-select/examples/Required.ts +48 -0
  215. package/skill/references/components/p-select/examples/SelectedSlot.ts +130 -0
  216. package/skill/references/components/p-select/examples/SetValue.ts +71 -0
  217. package/skill/references/components/p-select/examples/Slots.ts +51 -0
  218. package/skill/references/components/p-select/examples/SlottedImages.ts +38 -0
  219. package/skill/references/components/p-select/p-select.md +194 -0
  220. package/skill/references/components/p-sheet/examples/Default.ts +33 -0
  221. package/skill/references/components/p-sheet/p-sheet.md +121 -0
  222. package/skill/references/components/p-spinner/examples/Color.ts +16 -0
  223. package/skill/references/components/p-spinner/examples/ColorCssVar.ts +13 -0
  224. package/skill/references/components/p-spinner/examples/Default.ts +13 -0
  225. package/skill/references/components/p-spinner/examples/ResponsiveSize.ts +13 -0
  226. package/skill/references/components/p-spinner/examples/Size.ts +16 -0
  227. package/skill/references/components/p-spinner/examples/SizeCssVar.ts +13 -0
  228. package/skill/references/components/p-spinner/p-spinner.md +96 -0
  229. package/skill/references/components/p-stepper-horizontal/examples/Default.ts +26 -0
  230. package/skill/references/components/p-stepper-horizontal/examples/FrameworkImplementation.ts +107 -0
  231. package/skill/references/components/p-stepper-horizontal/p-stepper-horizontal.md +109 -0
  232. package/skill/references/components/p-switch/examples/Default.ts +21 -0
  233. package/skill/references/components/p-switch/p-switch.md +103 -0
  234. package/skill/references/components/p-table/examples/Advanced.ts +162 -0
  235. package/skill/references/components/p-table/examples/CaptionProperty.ts +40 -0
  236. package/skill/references/components/p-table/examples/CaptionSlot.ts +43 -0
  237. package/skill/references/components/p-table/examples/Default.ts +120 -0
  238. package/skill/references/components/p-table/examples/HideLabel.ts +40 -0
  239. package/skill/references/components/p-table/examples/LayoutFixed.ts +53 -0
  240. package/skill/references/components/p-table/examples/Sorting.ts +79 -0
  241. package/skill/references/components/p-table/p-table.md +189 -0
  242. package/skill/references/components/p-tabs/examples/ActiveTab.ts +29 -0
  243. package/skill/references/components/p-tabs/examples/Default.ts +29 -0
  244. package/skill/references/components/p-tabs/examples/Gradient.ts +114 -0
  245. package/skill/references/components/p-tabs/examples/Labelling.ts +29 -0
  246. package/skill/references/components/p-tabs/p-tabs.md +136 -0
  247. package/skill/references/components/p-tabs-bar/examples/Default.ts +29 -0
  248. package/skill/references/components/p-tabs-bar/examples/Gradient.ts +80 -0
  249. package/skill/references/components/p-tabs-bar/examples/Labelling.ts +29 -0
  250. package/skill/references/components/p-tabs-bar/examples/Links.ts +23 -0
  251. package/skill/references/components/p-tabs-bar/p-tabs-bar.md +181 -0
  252. package/skill/references/components/p-tag/examples/Default.ts +15 -0
  253. package/skill/references/components/p-tag/examples/Multiline.ts +17 -0
  254. package/skill/references/components/p-tag/examples/SlottedButton.ts +44 -0
  255. package/skill/references/components/p-tag/examples/SlottedLink.ts +44 -0
  256. package/skill/references/components/p-tag/p-tag.md +66 -0
  257. package/skill/references/components/p-tag-dismissible/examples/Default.ts +15 -0
  258. package/skill/references/components/p-tag-dismissible/p-tag-dismissible.md +75 -0
  259. package/skill/references/components/p-text/examples/Default.ts +15 -0
  260. package/skill/references/components/p-text/examples/Semantics.ts +21 -0
  261. package/skill/references/components/p-text/examples/Size.ts +15 -0
  262. package/skill/references/components/p-text/examples/SizeResponsive.ts +15 -0
  263. package/skill/references/components/p-text/p-text.md +68 -0
  264. package/skill/references/components/p-text-list/examples/Default.ts +31 -0
  265. package/skill/references/components/p-text-list/p-text-list.md +68 -0
  266. package/skill/references/components/p-textarea/examples/Default.ts +13 -0
  267. package/skill/references/components/p-textarea/examples/Form.ts +31 -0
  268. package/skill/references/components/p-textarea/examples/Slots.ts +42 -0
  269. package/skill/references/components/p-textarea/p-textarea.md +122 -0
  270. package/skill/references/components/p-toast/examples/Default.ts +23 -0
  271. package/skill/references/components/p-toast/p-toast.md +61 -0
  272. package/skill/references/components/p-wordmark/examples/CustomClickableArea.ts +13 -0
  273. package/skill/references/components/p-wordmark/examples/Default.ts +13 -0
  274. package/skill/references/components/p-wordmark/examples/Size.ts +13 -0
  275. package/skill/references/components/p-wordmark/p-wordmark.md +66 -0
  276. package/skill/references/icons.md +5 -0
  277. package/skill/references/styles/emotion.md +439 -0
  278. package/skill/references/styles/scss.md +402 -0
  279. package/skill/references/styles/tailwindcss.md +356 -0
  280. package/skill/references/styles/vanilla-extract.md +444 -0
  281. package/skill/references/stylesheets.md +331 -0
  282. package/skill/references/tokens.md +323 -0
  283. package/types/porsche-design-system-components-angular.d.ts +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-angular",
3
- "version": "4.5.0-rc.1",
3
+ "version": "4.6.0-rc.0",
4
4
  "description": "Porsche Design System is a component library designed to help developers create the best experience for software or services distributed by Dr. Ing. h.c. F. Porsche AG.",
5
5
  "type": "commonjs",
6
6
  "keywords": [
@@ -22,7 +22,7 @@
22
22
  "url": "https://github.com/porsche-design-system/porsche-design-system"
23
23
  },
24
24
  "dependencies": {
25
- "@porsche-design-system/components-js": "4.5.0-rc.1",
25
+ "@porsche-design-system/components-js": "4.6.0-rc.0",
26
26
  "tslib": "^2.8.1"
27
27
  },
28
28
  "peerDependencies": {
@@ -124,6 +124,9 @@
124
124
  }
125
125
  },
126
126
  "style": "./stylesheets/index.css",
127
+ "bin": {
128
+ "pds-skill": "./bin/pds-skill.js"
129
+ },
127
130
  "module": "fesm2022/porsche-design-system-components-angular.mjs",
128
131
  "typings": "types/porsche-design-system-components-angular.d.ts",
129
132
  "sideEffects": false
package/skill/SKILL.md ADDED
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: porsche-design-system-components-angular
3
+ description: Build, style, or review web user interfaces with the Porsche Design System (PDS), or author and review documents that specify PDS behavior. Use whenever a task touches frontend UI — adding or changing components (buttons, forms, inputs, cards, tables, modals, navigation, layouts), styling with Tailwind, SCSS, vanilla-extract or Emotion, applying design tokens, or scaffolding a new page or form. Also use whenever a requirement, spec, design doc, or acceptance criteria names a PDS component, prop, token, or theming. Prefer PDS for new UI even when it is not named by the user. Do not activate for backend or non-UI logic, unrelated tests or tooling, documentation or prose that does not assert PDS component, prop, token, or theming behavior, work that clearly targets a different UI library, or when the user opts out of PDS.
4
+ ---
5
+
6
+ # Porsche Design System (`angular`)
7
+
8
+ Version-exact knowledge of the installed Porsche Design System: every fact, prop, token and example here matches the installed package exactly — never mix guidance across versions. Every reference path is relative to this skill root unless noted otherwise.
9
+
10
+ This skill ships inside the installed wrapper package alongside its inspectable package artifacts: the typings, `component-meta` (`@porsche-design-system/components-js/meta`), the SCSS partials (`@porsche-design-system/components-js/scss`), the design tokens (`../tokens`), the Tailwind theme (`../tailwindcss/index.css`) and the shipped global CSS. The underlying Stencil component implementation is not included in the npm package; it is loaded from the Porsche Design System CDN at runtime. The wrapper's own `meta` and `scss` are re-export shims of the same-version `@porsche-design-system/components-js` peer, so those two point at the peer directly.
11
+
12
+ Prefer Porsche Design System components and tokens for new UI, even when the user does not name PDS. Do not rewrite non-PDS UI unasked, and do not hijack work that targets another library.
13
+
14
+ ## Coverage and fallbacks
15
+
16
+ This skill currently covers components, global stylesheets and theming, tokens, and styling integrations. It does not yet include complete getting-started, setup, and installation guidance; the v3-to-v4 migration guide; the changelog; partials; patterns and templates; the AG Grid theme; or the Storefront’s Must Know and Help sections.
17
+
18
+ Before using documentation outside this skill or the installed package, match it to the installed PDS version. This skill was generated for `4.6.0-rc.0`; prefer the [exact-version Porsche Design System Storefront](https://designsystem.porsche.com/v4.6.0-rc.0/). Major-version URLs such as `/v4/` always serve the latest v4 release and may describe APIs or setup introduced after the installed version. Use them only as a fallback and verify relevant details against the installed package.
19
+
20
+ For runnable patterns and templates, consult the [Porsche Design System examples repository](https://github.com/porsche-design-system/examples), selecting a release tag or commit that matches the installed package instead of assuming its default branch is compatible. For release-specific changes, read `../CHANGELOG.md`.
21
+
22
+ For exact API facts, inspect the installed typings and metadata first. When readable implementation details are necessary, use the [exact-version component source](https://github.com/porsche-design-system/porsche-design-system/tree/v4.6.0-rc.0/packages/components/src/components) under the repository's `packages/components/src/components/<component>` directory. Do not use the default branch, which may represent a newer release.
23
+
24
+ For deployed browser behavior, inspect component requests in the Network panel. Treat these minified, content-hashed CDN artifacts as a debugging fallback; use the exact-version repository source for readable implementation details.
25
+
26
+ ## Components
27
+
28
+ The Porsche Design System ships 58 components. Open a component's reference for its props, slots, events, CSS variables and examples before using it. Each reference's "Examples" table links runnable, framework-specific example files under `references/components/<tag>/examples/`.
29
+
30
+ `component-meta` is authoritative: when it disagrees with the examples or prose here, follow `component-meta` (raw data at `@porsche-design-system/components-js/meta`).
31
+
32
+ Every component is validated against the PDS accessibility test matrix (automated: AXE-Core WCAG 2.2 AA, high-contrast, text-zoom; manual: keyboard, screen reader). A component reference carries a `## Tests` section only to flag an exception (e.g. partial high-contrast support).
33
+
34
+ **Framework syntax:**
35
+ - Use the **custom-element tags** directly in templates: `<p-button>`, `<p-input-text>`.
36
+ - Bind props with `[prop]` and camelCase names (`[open]="open"`, `[disableBackdropClick]="true"`).
37
+ - Listen to events with `(event)` — the `dismiss` event is `(dismiss)="onDismiss()"`.
38
+ - Place a child into a named slot with the `slot="..."` attribute.
39
+
40
+ Sub-components (e.g. `p-table-row`, `p-select-option`, `p-tabs-item`) have no separate row — they are only valid inside a parent, so their API is documented under a "Sub-components" section in that parent's reference.
41
+
42
+ | Component | Summary | Reference |
43
+ | --- | --- | --- |
44
+ | `p-accordion` | The `p-accordion` is a component that reveals or hides associated sections of content. | [p-accordion.md](references/components/p-accordion/p-accordion.md) |
45
+ | `p-ai-tag` | `p-ai-tag` is used to indicate AI-generated or AI-modified content. | [p-ai-tag.md](references/components/p-ai-tag/p-ai-tag.md) |
46
+ | `p-banner` | The `p-banner` component provides action-based feedback messages (e.g. after performing a task) or to convey informational and/or critical notification like some site related topics. | [p-banner.md](references/components/p-banner/p-banner.md) |
47
+ | `p-button` | The `p-button` component is essential for performing form or **interaction** events. | [p-button.md](references/components/p-button/p-button.md) |
48
+ | `p-button-pure` | The `p-button-pure` component is essential to perform events for **interactions**. | [p-button-pure.md](references/components/p-button-pure/p-button-pure.md) |
49
+ | `p-button-tile` | The `p-button-tile` is an interactive component that displays a provided image to tease content and performs form or **interaction** events within one container. | [p-button-tile.md](references/components/p-button-tile/p-button-tile.md) |
50
+ | `p-canvas` _(experimental)_ | The `p-canvas` is an experimental layout component for productive web applications. | [p-canvas.md](references/components/p-canvas/p-canvas.md) |
51
+ | `p-carousel` | The `p-carousel` component allows related or similar content to be consumed on a step by step basis with a better overview than just showing them in a grid or as a list. | [p-carousel.md](references/components/p-carousel/p-carousel.md) |
52
+ | `p-checkbox` | The `p-checkbox` component wraps the native HTML input type `checkbox` form element. | [p-checkbox.md](references/components/p-checkbox/p-checkbox.md) |
53
+ | `p-crest` | The `p-crest` gives the Porsche brand a distinctive look, sets it apart from others within the overall external image and represents the quality of the product. | [p-crest.md](references/components/p-crest/p-crest.md) |
54
+ | `p-display` _(deprecated)_ | `p-display` is used to highlight and specify heading styling and hierarchy in documents. | [p-display.md](references/components/p-display/p-display.md) |
55
+ | `p-divider` | The `p-divider` is used as 'horizontal or vertical rule' and displays a dividing line. | [p-divider.md](references/components/p-divider/p-divider.md) |
56
+ | `p-drilldown` _(experimental)_ | The `p-drilldown` component is meant for displaying an infinite multilevel structure in a drilldown menu that overlays the page content from the start side of the screen. | [p-drilldown.md](references/components/p-drilldown/p-drilldown.md) |
57
+ | `p-fieldset` | The `p-fieldset` is a grouping component for wrapping contextual associated form elements. | [p-fieldset.md](references/components/p-fieldset/p-fieldset.md) |
58
+ | `p-flag` | The `p-flag` component displays a country or region flag and should be used to communicate geographic context visually. | [p-flag.md](references/components/p-flag/p-flag.md) |
59
+ | `p-flyout` | The `p-flyout` is a overlay from the left or right side of the screen. | [p-flyout.md](references/components/p-flyout/p-flyout.md) |
60
+ | `p-heading` | `p-heading` is used to highlight and specify heading styling and hierarchy in documents. | [p-heading.md](references/components/p-heading/p-heading.md) |
61
+ | `p-icon` | Along with other Porsche basic elements - such as colors, typography and the Porsche marque - icons are core components of the Porsche design. | [p-icon.md](references/components/p-icon/p-icon.md) |
62
+ | `p-inline-notification` | The `p-inline-notification` is a controlled component that provides action-based feedback messages (e.g. after performing a task) or to convey informational and/or critical notification like some site related topics. | [p-inline-notification.md](references/components/p-inline-notification/p-inline-notification.md) |
63
+ | `p-input-date` | The `p-input-date` component provides a versatile, user‑friendly interface for entering date values. | [p-input-date.md](references/components/p-input-date/p-input-date.md) |
64
+ | `p-input-email` | The `p-input-email` component provides a user-friendly, accessible interface for entering valid email addresses. | [p-input-email.md](references/components/p-input-email/p-input-email.md) |
65
+ | `p-input-month` | The `p-input-month` component provides a versatile, user‑friendly interface for entering month values. | [p-input-month.md](references/components/p-input-month/p-input-month.md) |
66
+ | `p-input-number` | The `p-input-number` component provides a versatile, user‑friendly interface for entering numeric values. | [p-input-number.md](references/components/p-input-number/p-input-number.md) |
67
+ | `p-input-password` | The `p-input-password` component enables secure password entry by obscuring the typed characters. | [p-input-password.md](references/components/p-input-password/p-input-password.md) |
68
+ | `p-input-search` | The `p-input-search` component offers a versatile, user-friendly interface for entering and submitting search queries. | [p-input-search.md](references/components/p-input-search/p-input-search.md) |
69
+ | `p-input-tel` | The `p-input-tel` component provides a user-friendly, accessible interface for entering valid telephone numbers. | [p-input-tel.md](references/components/p-input-tel/p-input-tel.md) |
70
+ | `p-input-text` | The `p-input-text` component provides a versatile, user‑friendly interface for entering freeform text. | [p-input-text.md](references/components/p-input-text/p-input-text.md) |
71
+ | `p-input-time` | The `p-input-time` component provides a versatile, user‑friendly interface for entering time values. | [p-input-time.md](references/components/p-input-time/p-input-time.md) |
72
+ | `p-input-url` | The `p-input-url` component provides a user-friendly, accessible interface for entering valid website URLs. | [p-input-url.md](references/components/p-input-url/p-input-url.md) |
73
+ | `p-input-week` | The `p-input-week` component provides a versatile, user‑friendly interface for entering week values. | [p-input-week.md](references/components/p-input-week/p-input-week.md) |
74
+ | `p-link` | The `p-link` component is essential to perform changes in **page routes**. | [p-link.md](references/components/p-link/p-link.md) |
75
+ | `p-link-pure` | The `p-link-pure` component is essential for performing changes in **page routes**. | [p-link-pure.md](references/components/p-link-pure/p-link-pure.md) |
76
+ | `p-link-tile` | The `p-link-tile` is a navigational component that displays a provided image to tease content and navigate to further information within one container. | [p-link-tile.md](references/components/p-link-tile/p-link-tile.md) |
77
+ | `p-link-tile-product` _(experimental)_ | The `p-link-tile-product` is a navigational component designed to showcase a featured product within a store. | [p-link-tile-product.md](references/components/p-link-tile-product/p-link-tile-product.md) |
78
+ | `p-modal` | The `p-modal` is a temporary overlay to focus the user's attention on one task while interactions with the underlying page are blocked. | [p-modal.md](references/components/p-modal/p-modal.md) |
79
+ | `p-model-signature` | The `p-model-signature` component is purely visual and renders the different signatures of Porsche car models. | [p-model-signature.md](references/components/p-model-signature/p-model-signature.md) |
80
+ | `p-multi-select` | The `p-multi-select` component is a versatile custom form element that facilitates the selection of multiple options. | [p-multi-select.md](references/components/p-multi-select/p-multi-select.md) |
81
+ | `p-pagination` | The `p-pagination` component divides large content sets into pages and should be used when all items cannot be displayed at once. | [p-pagination.md](references/components/p-pagination/p-pagination.md) |
82
+ | `p-pin-code` | The `p-pin-code` component is optimized for entering sequences of digits. | [p-pin-code.md](references/components/p-pin-code/p-pin-code.md) |
83
+ | `p-popover` | The `p-popover` component displays additional contextual content in an overlay and should be used when users need optional details without leaving their current context. | [p-popover.md](references/components/p-popover/p-popover.md) |
84
+ | `p-radio-group` | The `p-radio-group` component is a versatile custom form element that enables the selection of a single option. | [p-radio-group.md](references/components/p-radio-group/p-radio-group.md) |
85
+ | `p-scroller` | The `p-scroller` component forces its child nodes to be rendered horizontally next to each other. | [p-scroller.md](references/components/p-scroller/p-scroller.md) |
86
+ | `p-segmented-control` | The `p-segmented-control` component is similar to the native `select` element while showing all available options right away. | [p-segmented-control.md](references/components/p-segmented-control/p-segmented-control.md) |
87
+ | `p-select` | The `p-select` component is a versatile custom form element that enables the selection of a single option. | [p-select.md](references/components/p-select/p-select.md) |
88
+ | `p-sheet` | The `p-sheet` is a temporary overlay to focus the user's attention on one or multiple tasks while the underlying page is still visible but interactions with it are blocked. | [p-sheet.md](references/components/p-sheet/p-sheet.md) |
89
+ | `p-spinner` | The `p-spinner` component indicates an indeterminate ongoing process and should be used when users must wait for loading or processing to finish. | [p-spinner.md](references/components/p-spinner/p-spinner.md) |
90
+ | `p-stepper-horizontal` | The `p-stepper-horizontal` component displays progress through a sequence of logical and numbered steps. | [p-stepper-horizontal.md](references/components/p-stepper-horizontal/p-stepper-horizontal.md) |
91
+ | `p-switch` | The `p-switch` component is a control that is used to quickly switch between two possible states. | [p-switch.md](references/components/p-switch/p-switch.md) |
92
+ | `p-table` | The `p-table` component displays tabular data and offers column-wise sorting options. | [p-table.md](references/components/p-table/p-table.md) |
93
+ | `p-tabs` | The `p-tabs` component makes it easy to explore and switch between different views. | [p-tabs.md](references/components/p-tabs/p-tabs.md) |
94
+ | `p-tabs-bar` | The `p-tabs-bar` component is a styled button/link list for multiple purposes. | [p-tabs-bar.md](references/components/p-tabs-bar/p-tabs-bar.md) |
95
+ | `p-tag` | `p-tag` is used to label, categorize, or organize items by using keywords that describe them. | [p-tag.md](references/components/p-tag/p-tag.md) |
96
+ | `p-tag-dismissible` | `p-tag-dismissible` is used in contexts where the user can actively remove a tag. | [p-tag-dismissible.md](references/components/p-tag-dismissible/p-tag-dismissible.md) |
97
+ | `p-text` | `p-text` is used to specify paragraph styling in documents. | [p-text.md](references/components/p-text/p-text.md) |
98
+ | `p-text-list` | The `p-text-list` component is used to display listed data in form of an unordered or ordered list. | [p-text-list.md](references/components/p-text-list/p-text-list.md) |
99
+ | `p-textarea` | The `p-textarea` component is a multi-line text input control. | [p-textarea.md](references/components/p-textarea/p-textarea.md) |
100
+ | `p-toast` | The `p-toast` component manages both, the queue and display of toast messages. | [p-toast.md](references/components/p-toast/p-toast.md) |
101
+ | `p-wordmark` | The `p-wordmark` gives the Porsche brand a distinctive look, sets it apart from others within the overall external image and represents the quality of the product. | [p-wordmark.md](references/components/p-wordmark/p-wordmark.md) |
102
+
103
+ ## Stylesheets
104
+
105
+ The required global stylesheets every component depends on (CSS variables, font-face, normalize/reset) and light/dark theming via the `.scheme-*` classes and `color-scheme`. Open this whenever installing or setting up PDS, before rendering any component, when components look unstyled or use the wrong font/colors, or for anything about themes, dark mode, or color scheme — it applies to most PDS work. See [stylesheets.md](references/stylesheets.md) for the exact files, their import order and the full `.scheme-*` list.
106
+
107
+ **Theming is one mechanism — CSS `color-scheme`, nothing else** (the `.scheme-*` mechanics live in [stylesheets.md](references/stylesheets.md)). There is **no** `theme` prop — not on `PorscheDesignSystemModule.load()` (it takes only `prefix` and `cdn`) and not on components. A `theme="light|dark|auto"` prop existed in earlier majors and was removed; if you recall one, it is a stale prior — do not add it, verify against the installed types.
108
+
109
+ ## Tokens
110
+
111
+ Design tokens — the source values for color, spacing, typography, motion, breakpoints and more, provided as JS constants. The entire system is built on these tokens: the global stylesheets, the components and the custom styling themes all depend on them. They can also be used standalone to support other styling solutions or to build custom UI directly. Open [tokens.md](references/tokens.md) when using tokens directly in custom UI.
112
+
113
+ ## Styling
114
+
115
+ The Porsche Design System offers a ready-made integration for four styling solutions. Use them to build layout and custom components or patterns not yet available in the component library — typography, surfaces, boxes, the layout grid, spacing and responsive breakpoints. They are independent of the components, but build on the same design tokens and the same `color-scheme` (light/dark) theming (see the **Stylesheets** section above), so custom UI shares the exact palette, spacing and typography as PDS components. Pick one solution per project and open its reference for setup and the full catalog.
116
+
117
+ Note: the code examples in the component references use PDS Tailwind utility classes (e.g. `flex`, `flex-col`, `gap-fluid-sm`) for layout. These only take effect with the Tailwind CSS solution installed (`references/styles/tailwindcss.md`) — without it they are inert, so replace them with your own layout CSS.
118
+
119
+ | Styling solution | Use this when | Reference |
120
+ | --- | --- | --- |
121
+ | Tailwind CSS | utility-first styling on a PDS Tailwind v4 theme | [tailwindcss.md](references/styles/tailwindcss.md) |
122
+ | SCSS | Sass variables and mixins under the `pds` namespace | [scss.md](references/styles/scss.md) |
123
+ | vanilla-extract | typed tokens and utilities in `*.css.ts` files | [vanilla-extract.md](references/styles/vanilla-extract.md) |
124
+ | Emotion | tokens and utilities in `css`/`styled` styles | [emotion.md](references/styles/emotion.md) |
@@ -0,0 +1,26 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule, type AccordionUpdateEventDetail } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-accordion [open]="open" (update)="onUpdate($event)">
8
+ <p-heading slot="summary" tag="h2" size="small" weight="semibold">
9
+ Some summary
10
+ </p-heading>
11
+ <p-text>
12
+ Some details. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore agna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
13
+ </p-text>
14
+ </p-accordion>
15
+ `,
16
+ changeDetection: ChangeDetectionStrategy.OnPush,
17
+ standalone: true,
18
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
19
+ })
20
+ export class ExampleComponent {
21
+ open = false;
22
+
23
+ onUpdate(e: CustomEvent<AccordionUpdateEventDetail>) {
24
+ this.open = e.detail.open;
25
+ }
26
+ }
@@ -0,0 +1,30 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule, type AccordionUpdateEventDetail } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-accordion [open]="open" background="surface" (update)="onUpdate($event)">
8
+ <p-heading slot="summary" tag="h3" size="small" weight="semibold">
9
+ Some summary
10
+ </p-heading>
11
+ <p-checkbox slot="summary-before" name="some-name" label="Some label" [hideLabel]="true"></p-checkbox>
12
+ <p-popover slot="summary-after">
13
+ Some content
14
+ </p-popover>
15
+ <p-text>
16
+ Some details. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
17
+ </p-text>
18
+ </p-accordion>
19
+ `,
20
+ changeDetection: ChangeDetectionStrategy.OnPush,
21
+ standalone: true,
22
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
23
+ })
24
+ export class ExampleComponent {
25
+ open = true;
26
+
27
+ onUpdate(e: CustomEvent<AccordionUpdateEventDetail>) {
28
+ this.open = e.detail.open;
29
+ }
30
+ }
@@ -0,0 +1,26 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule, type AccordionUpdateEventDetail } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-accordion [open]="open" [sticky]="true" background="surface" class="[--p-accordion-summary-top:40px]" (update)="onUpdate($event)">
8
+ <p-heading slot="summary" tag="h3" size="small" weight="semibold">
9
+ Some summary
10
+ </p-heading>
11
+ <p-text>
12
+ Some details. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
13
+ </p-text>
14
+ </p-accordion>
15
+ `,
16
+ changeDetection: ChangeDetectionStrategy.OnPush,
17
+ standalone: true,
18
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
19
+ })
20
+ export class ExampleComponent {
21
+ open = true;
22
+
23
+ onUpdate(e: CustomEvent<AccordionUpdateEventDetail>) {
24
+ this.open = e.detail.open;
25
+ }
26
+ }
@@ -0,0 +1,95 @@
1
+ # p-accordion
2
+
3
+ The `p-accordion` is a component that reveals or hides associated sections of content. Accordions are flexible in the context and can include other components of the Porsche Design System.
4
+
5
+ It is a controlled component. This means it does not contain any internal state, and you got full control over its behavior.
6
+
7
+ ## Usage
8
+
9
+ ### Do:
10
+
11
+ - Use accordions to organize and display large amounts of content in a structured and efficient way.
12
+ - Group related content together within each accordion panel.
13
+ - Use clear and concise headings for each accordion panel to help users quickly understand what content is included.
14
+ - Make sure that each accordion panel is easily identifiable and distinguishable from the others.
15
+
16
+ ### Don't:
17
+
18
+ - Don't use accordions for content that is essential or required for users to see. Users may not realize that they need to expand the accordion panel to see the content, resulting in a poor user experience.
19
+ - Don't overuse accordions on a single page, as this can make the page feel cluttered and difficult to navigate.
20
+ - Don't use ambiguous or confusing labels for the accordion headings, as this can make it difficult for users to understand what content is included in each panel.
21
+ - Don't overload the accordion panels with too much content, as this can make the component feel overwhelming and difficult to use.
22
+ - Don't add a divider on top of the first item.
23
+
24
+ ## Accessibility support
25
+
26
+ ### Keyboard
27
+
28
+ | Key / state | Function |
29
+ | --- | --- |
30
+ | `Tab`, `Shift-Tab` | Moves focus to the next (or previous) focusable element. |
31
+ | `Enter/Space` | When focus is on the accordion trigger, the associated panel expands or collapses. |
32
+
33
+ ## Development considerations
34
+
35
+ ### Heading hierarchy
36
+
37
+ The accordion summary should be a heading element (e.g.,`p-heading` or `<h1>` to `<h6>`,) to ensure proper semantic structure and correct heading hierarchy.
38
+
39
+ ### Common do's and don'ts
40
+
41
+ - **Do** use the `summary` slot with a heading element such as `p-heading` or native `h1`–`h6`.
42
+ - **Do** keep heading levels sequential across multiple accordions on a page.
43
+ - **Don't** use plain text in the summary without a semantic heading.
44
+
45
+ ## API
46
+
47
+ ### Properties
48
+
49
+ | Property | Type | Default | Description |
50
+ | --- | --- | --- | --- |
51
+ | `alignMarker` | `'start'` `'end'` | `'end'` | Positions the expand/collapse marker icon at the start or end of the summary section. |
52
+ | `background` | `'canvas'` `'surface'` `'frosted'` `'none'` | `'none'` | Sets the background color of the accordion panel. Use `frosted` only when placed on images, videos, or gradients. |
53
+ | `compact` | `boolean` | `undefined` | Reduces padding and spacing for a more compact layout, useful in space-constrained interfaces. |
54
+ | `heading` _(deprecated)_ | `string` | `undefined` | @deprecated Will be removed in the next major release. Use the `summary` slot instead. Sets the heading text within the summary section. |
55
+ | `headingTag` _(deprecated)_ | `'h1'` `'h2'` `'h3'` `'h4'` `'h5'` `'h6'` | `'h2'` | @deprecated Will be removed in the next major release. Use the `summary` slot instead. Sets the heading tag for proper semantic structure within the page. |
56
+ | `indent` | `boolean`<br>`BreakpointCustomizable<boolean>` | `false` | Indents the slotted content to be vertically aligned with the text of the summary section. |
57
+ | `open` | `boolean` | `undefined` | Controls whether the accordion is open or closed. |
58
+ | `size` _(deprecated)_ | `'small'` `'medium'`<br>`BreakpointCustomizable<AccordionSize>` | `'small'` | @deprecated Will be removed in the next major release. Use the `summary` slot instead. Controls the heading size in the summary section (only applies when using the `heading` prop or `heading` slot). |
59
+ | `sticky` _(experimental)_ | `boolean` | `undefined` | @experimental Makes the summary section sticky at the top while scrolling. Only works with `background="canvas"` or `background="surface"`. Not compatible with `summary-before` or `summary-after` slots. |
60
+
61
+ ### Events
62
+
63
+ | Event | Type | Description |
64
+ | --- | --- | --- |
65
+ | `update` | `CustomEvent<AccordionUpdateEventDetail>`<br>`{ open: boolean }` | Emitted when the user toggles the accordion open or closed, with the new open state in the event detail. |
66
+
67
+ ### Controlled properties
68
+
69
+ - `open` — a controlled prop: the component does **not** update it itself. Handle the `update` event and assign the new value to `open` yourself, or the change will not take effect.
70
+
71
+ ### Slots
72
+
73
+ | Slot | Required | Allowed tag names | Description |
74
+ | --- | --- | --- | --- |
75
+ | `summary` | no | — | Content for the accordion's summary section. Clicking toggles the accordion open and closed. |
76
+ | `summary-before` | no | — | Content or interactive elements placed before the accordion's summary section. |
77
+ | `summary-after` | no | — | Content or interactive elements placed after the accordion's summary section. |
78
+ | `heading` _(deprecated)_ | no | — | Content for the accordion's heading section. Clicking toggles the accordion open and closed. |
79
+ | _(default)_ | no | — | Main content displayed when the accordion is expanded. |
80
+
81
+ ### CSS Variables
82
+
83
+ | CSS Variable | Default | Description |
84
+ | --- | --- | --- |
85
+ | `--p-accordion-summary-top` | `0px` | Controls the sticky top position when `sticky` is enabled. |
86
+ | `--p-accordion-px` | `16px` | Horizontal padding of the accordion. |
87
+ | `--p-accordion-py` | `16px` | Vertical padding of the accordion. |
88
+
89
+ ## Examples
90
+
91
+ | Example | When to use | File |
92
+ | --- | --- | --- |
93
+ | Default | Minimal default configuration. | [./examples/Default.ts](./examples/Default.ts) |
94
+ | Sticky summary | The summary can be made sticky by adding the experimental property `sticky` to the `p-accordion` tag. | [./examples/StickySummary.ts](./examples/StickySummary.ts) |
95
+ | Interactive elements in summary | The summary section supports interactive elements via the `slot="summary-before"` and `slot="summary-after"` attributes. | [./examples/InteractiveElementsInSummary.ts](./examples/InteractiveElementsInSummary.ts) |
@@ -0,0 +1,13 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-ai-tag></p-ai-tag>
8
+ `,
9
+ changeDetection: ChangeDetectionStrategy.OnPush,
10
+ standalone: true,
11
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
12
+ })
13
+ export class ExampleComponent {}
@@ -0,0 +1,33 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-fieldset label="Pick your favorite Fruits" labelSize="small" class="flex flex-col gap-static-sm">
8
+ <p-text class="-mt-static-md mb-static-sm">
9
+ Slotted description with optional link
10
+ </p-text>
11
+ <div class="flex flex-col gap-static-sm">
12
+ <p-checkbox>
13
+ <span slot="label">
14
+ Banana
15
+ <p-ai-tag variant="generated" class="ms-static-sm"></p-ai-tag>
16
+ </span>
17
+ </p-checkbox>
18
+ <p-checkbox label="Apple"></p-checkbox>
19
+ <p-checkbox [checked]="true">
20
+ <span slot="label">
21
+ Melon
22
+ <p-ai-tag variant="abbreviation" class="ms-static-sm"></p-ai-tag>
23
+ </span>
24
+ </p-checkbox>
25
+ <p-checkbox label="Grapefruit"></p-checkbox>
26
+ </div>
27
+ </p-fieldset>
28
+ `,
29
+ changeDetection: ChangeDetectionStrategy.OnPush,
30
+ standalone: true,
31
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
32
+ })
33
+ export class ExampleComponent {}
@@ -0,0 +1,40 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-select name="options" description="Some description">
8
+ <span slot="label">
9
+ Pick your favorite Fruits
10
+ <p-ai-tag variant="abbreviation" class="ms-static-sm"></p-ai-tag>
11
+ </span>
12
+ <p-optgroup label="Some optgroup label 1">
13
+ <p-select-option value="a">
14
+ Option A
15
+ </p-select-option>
16
+ <p-select-option value="b">
17
+ Option B
18
+ </p-select-option>
19
+ <p-select-option value="c">
20
+ Option C
21
+ </p-select-option>
22
+ </p-optgroup>
23
+ <p-optgroup label="Some optgroup label 2">
24
+ <p-select-option value="d">
25
+ Option D
26
+ </p-select-option>
27
+ <p-select-option value="e">
28
+ Option E
29
+ </p-select-option>
30
+ <p-select-option value="f">
31
+ Option F
32
+ </p-select-option>
33
+ </p-optgroup>
34
+ </p-select>
35
+ `,
36
+ changeDetection: ChangeDetectionStrategy.OnPush,
37
+ standalone: true,
38
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
39
+ })
40
+ export class ExampleComponent {}
@@ -0,0 +1,16 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <div class="relative inline-block rounded-lg overflow-hidden">
8
+ <img src="assets/ai-tag-image.jpg" alt="AI modified image" class="block w-[300px] h-[300px] object-cover" />
9
+ <p-ai-tag variant="modified" class="absolute bottom-static-sm end-static-sm scheme-dark"></p-ai-tag>
10
+ </div>
11
+ `,
12
+ changeDetection: ChangeDetectionStrategy.OnPush,
13
+ standalone: true,
14
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
15
+ })
16
+ export class ExampleComponent {}
@@ -0,0 +1,15 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-input-search label="What's your favorite Fruit" description="Search for fruits" name="search">
8
+ <p-ai-tag slot="end" variant="abbreviation"></p-ai-tag>
9
+ </p-input-search>
10
+ `,
11
+ changeDetection: ChangeDetectionStrategy.OnPush,
12
+ standalone: true,
13
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
14
+ })
15
+ export class ExampleComponent {}
@@ -0,0 +1,32 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-heading size="small" tag="h3">
8
+ Pick your favorite Fruits
9
+ </p-heading>
10
+
11
+ <p-radio-group label="Some Label" name="fruit" value="banana" class="mt-static-sm">
12
+ <p-radio-group-option value="banana">
13
+ <span slot="label">
14
+ Banana
15
+ <p-ai-tag variant="generated" class="ms-static-sm"></p-ai-tag>
16
+ </span>
17
+ </p-radio-group-option>
18
+ <p-radio-group-option value="apple" label="Apple"></p-radio-group-option>
19
+ <p-radio-group-option value="melon">
20
+ <span slot="label">
21
+ Melon
22
+ <p-ai-tag variant="abbreviation" class="ms-static-sm"></p-ai-tag>
23
+ </span>
24
+ </p-radio-group-option>
25
+ <p-radio-group-option value="grapefruit" label="Grapefruit"></p-radio-group-option>
26
+ </p-radio-group>
27
+ `,
28
+ changeDetection: ChangeDetectionStrategy.OnPush,
29
+ standalone: true,
30
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
31
+ })
32
+ export class ExampleComponent {}
@@ -0,0 +1,94 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <div class="w-full">
8
+ <p-table>
9
+ <p-heading slot="caption" size="large" tag="h3">
10
+ Some slotted caption
11
+ </p-heading>
12
+ <p-table-head>
13
+ <p-table-head-row>
14
+ <p-table-head-cell [sort]="{'id': 'model', 'active': 'true', 'direction': 'desc'}">
15
+ Model
16
+ </p-table-head-cell>
17
+ <p-table-head-cell>
18
+ Date
19
+ </p-table-head-cell>
20
+ <p-table-head-cell>
21
+ Purchase Intention
22
+ </p-table-head-cell>
23
+ <p-table-head-cell>
24
+ <span class="inline-flex items-center gap-static-sm">
25
+ Status
26
+ <p-ai-tag variant="abbreviation"></p-ai-tag>
27
+ </span>
28
+ </p-table-head-cell>
29
+ <p-table-head-cell>
30
+ Lead ID
31
+ </p-table-head-cell>
32
+ </p-table-head-row>
33
+ </p-table-head>
34
+ <p-table-body>
35
+ <p-table-row>
36
+ <p-table-cell>
37
+ 718 Cayman
38
+ </p-table-cell>
39
+ <p-table-cell>
40
+ 23.06.2021
41
+ </p-table-cell>
42
+ <p-table-cell>
43
+ New Car
44
+ </p-table-cell>
45
+ <p-table-cell>
46
+ Won
47
+ </p-table-cell>
48
+ <p-table-cell>
49
+ 0000824402
50
+ </p-table-cell>
51
+ </p-table-row>
52
+ <p-table-row>
53
+ <p-table-cell>
54
+ Panamera 4S
55
+ </p-table-cell>
56
+ <p-table-cell>
57
+ 15.03.2023
58
+ </p-table-cell>
59
+ <p-table-cell>
60
+ Used Car
61
+ </p-table-cell>
62
+ <p-table-cell>
63
+ Lost
64
+ </p-table-cell>
65
+ <p-table-cell>
66
+ 0000824408
67
+ </p-table-cell>
68
+ </p-table-row>
69
+ <p-table-row>
70
+ <p-table-cell>
71
+ 911 Carrera S
72
+ </p-table-cell>
73
+ <p-table-cell>
74
+ 28.08.2025
75
+ </p-table-cell>
76
+ <p-table-cell>
77
+ New Car
78
+ </p-table-cell>
79
+ <p-table-cell>
80
+ Won
81
+ </p-table-cell>
82
+ <p-table-cell>
83
+ 0000824409
84
+ </p-table-cell>
85
+ </p-table-row>
86
+ </p-table-body>
87
+ </p-table>
88
+ </div>
89
+ `,
90
+ changeDetection: ChangeDetectionStrategy.OnPush,
91
+ standalone: true,
92
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
93
+ })
94
+ export class ExampleComponent {}
@@ -0,0 +1,17 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { PorscheDesignSystemModule } from '@porsche-design-system/components-angular';
3
+
4
+ @Component({
5
+ selector: 'porsche-design-system-app',
6
+ template: `
7
+ <p-text>
8
+ This content was generated using artificial intelligence (AI). AI can be a powerful tool for creating content, but it's important to be transparent about its use. By including an AI tag, we can inform users that this content may have been modified or generated by AI, helping to build trust and provide context for the information presented.
9
+ <p-ai-tag variant="modified" class="align-bottom"></p-ai-tag>
10
+ This is some additional text to show how the AI tag can be used within a text component. The AI tag can be used to indicate that certain content has been modified or generated by AI, providing transparency to users.
11
+ </p-text>
12
+ `,
13
+ changeDetection: ChangeDetectionStrategy.OnPush,
14
+ standalone: true,
15
+ imports: [PorscheDesignSystemModule], // <-- PDS module is imported here
16
+ })
17
+ export class ExampleComponent {}