@synergy-design-system/mcp 0.1.0 → 1.0.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 (449) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/README.md +539 -3
  3. package/dist/bin/create-checksum.d.ts +2 -0
  4. package/dist/bin/create-checksum.js +23 -0
  5. package/dist/bin/start.d.ts +2 -0
  6. package/dist/bin/start.js +8 -0
  7. package/dist/build/assets.d.ts +4 -0
  8. package/dist/build/assets.js +57 -0
  9. package/dist/build/build.d.ts +1 -0
  10. package/dist/build/build.js +33 -0
  11. package/dist/build/components.d.ts +4 -0
  12. package/dist/build/components.js +132 -0
  13. package/dist/build/frameworks.d.ts +4 -0
  14. package/dist/build/frameworks.js +61 -0
  15. package/dist/build/static.d.ts +4 -0
  16. package/dist/build/static.js +52 -0
  17. package/dist/build/styles.d.ts +4 -0
  18. package/dist/build/styles.js +58 -0
  19. package/dist/build/tokens.d.ts +4 -0
  20. package/dist/build/tokens.js +59 -0
  21. package/dist/server.d.ts +6 -0
  22. package/dist/server.js +20 -0
  23. package/dist/tools/asset-info.d.ts +8 -0
  24. package/dist/tools/asset-info.js +108 -0
  25. package/dist/tools/asset-list.d.ts +6 -0
  26. package/dist/tools/asset-list.js +40 -0
  27. package/dist/tools/component-info.d.ts +6 -0
  28. package/dist/tools/component-info.js +35 -0
  29. package/dist/tools/component-list.d.ts +7 -0
  30. package/dist/tools/component-list.js +42 -0
  31. package/dist/tools/davinci-migration.d.ts +3 -0
  32. package/dist/tools/davinci-migration.js +66 -0
  33. package/dist/tools/framework-info.d.ts +7 -0
  34. package/dist/tools/framework-info.js +59 -0
  35. package/dist/tools/index.d.ts +13 -0
  36. package/dist/tools/index.js +13 -0
  37. package/dist/tools/migration-info.d.ts +6 -0
  38. package/dist/tools/migration-info.js +27 -0
  39. package/dist/tools/styles-info.d.ts +7 -0
  40. package/dist/tools/styles-info.js +28 -0
  41. package/dist/tools/styles-list.d.ts +7 -0
  42. package/dist/tools/styles-list.js +42 -0
  43. package/dist/tools/template-info.d.ts +6 -0
  44. package/dist/tools/template-info.js +34 -0
  45. package/dist/tools/template-list.d.ts +7 -0
  46. package/dist/tools/template-list.js +42 -0
  47. package/dist/tools/tokens.d.ts +7 -0
  48. package/dist/tools/tokens.js +24 -0
  49. package/dist/tools/version.d.ts +7 -0
  50. package/dist/tools/version.js +51 -0
  51. package/dist/utilities/assets.d.ts +1 -0
  52. package/dist/utilities/assets.js +3 -0
  53. package/dist/utilities/checksum.d.ts +36 -0
  54. package/dist/utilities/checksum.js +93 -0
  55. package/dist/utilities/components.d.ts +25 -0
  56. package/dist/utilities/components.js +86 -0
  57. package/dist/utilities/config.d.ts +76 -0
  58. package/dist/utilities/config.js +77 -0
  59. package/dist/utilities/file.d.ts +12 -0
  60. package/dist/utilities/file.js +31 -0
  61. package/dist/utilities/index.d.ts +12 -0
  62. package/dist/utilities/index.js +12 -0
  63. package/dist/utilities/metadata.d.ts +28 -0
  64. package/dist/utilities/metadata.js +57 -0
  65. package/dist/utilities/migration.d.ts +1 -0
  66. package/dist/utilities/migration.js +10 -0
  67. package/dist/utilities/stdio.d.ts +14 -0
  68. package/dist/utilities/stdio.js +60 -0
  69. package/dist/utilities/storybook/build-docs.d.ts +2 -0
  70. package/dist/utilities/storybook/build-docs.js +42 -0
  71. package/dist/utilities/storybook/configs.d.ts +13 -0
  72. package/dist/utilities/storybook/configs.js +85 -0
  73. package/dist/utilities/storybook/docs-scraper.d.ts +26 -0
  74. package/dist/utilities/storybook/docs-scraper.js +97 -0
  75. package/dist/utilities/storybook/index.d.ts +5 -0
  76. package/dist/utilities/storybook/index.js +4 -0
  77. package/dist/utilities/storybook/scraper.d.ts +14 -0
  78. package/dist/utilities/storybook/scraper.js +196 -0
  79. package/dist/utilities/storybook/storybook-manager.d.ts +29 -0
  80. package/dist/utilities/storybook/storybook-manager.js +139 -0
  81. package/dist/utilities/storybook/types.d.ts +22 -0
  82. package/dist/utilities/storybook/types.js +1 -0
  83. package/dist/utilities/styles.d.ts +6 -0
  84. package/dist/utilities/styles.js +24 -0
  85. package/dist/utilities/templates.d.ts +12 -0
  86. package/dist/utilities/templates.js +28 -0
  87. package/dist/utilities/tokens.d.ts +1 -0
  88. package/dist/utilities/tokens.js +21 -0
  89. package/dist/utilities/version.d.ts +10 -0
  90. package/dist/utilities/version.js +21 -0
  91. package/metadata/checksum.txt +1 -0
  92. package/metadata/davinci-migration/migration-guide.md +1859 -0
  93. package/metadata/packages/angular/LIMITATIONS.md +32 -0
  94. package/metadata/packages/angular/README.md +393 -0
  95. package/metadata/packages/assets/CHANGELOG.md +189 -0
  96. package/metadata/packages/assets/README.md +78 -0
  97. package/metadata/packages/components/components/syn-accordion/component.angular.ts +80 -0
  98. package/metadata/packages/components/components/syn-accordion/component.react.ts +30 -0
  99. package/metadata/packages/components/components/syn-accordion/component.styles.ts +15 -0
  100. package/metadata/packages/components/components/syn-accordion/component.ts +111 -0
  101. package/metadata/packages/components/components/syn-accordion/component.vue +64 -0
  102. package/metadata/packages/components/components/syn-alert/component.angular.ts +158 -0
  103. package/metadata/packages/components/components/syn-alert/component.custom.styles.ts +90 -0
  104. package/metadata/packages/components/components/syn-alert/component.react.ts +60 -0
  105. package/metadata/packages/components/components/syn-alert/component.styles.ts +110 -0
  106. package/metadata/packages/components/components/syn-alert/component.ts +324 -0
  107. package/metadata/packages/components/components/syn-alert/component.vue +130 -0
  108. package/metadata/packages/components/components/syn-badge/component.angular.ts +53 -0
  109. package/metadata/packages/components/components/syn-badge/component.custom.styles.ts +61 -0
  110. package/metadata/packages/components/components/syn-badge/component.react.ts +29 -0
  111. package/metadata/packages/components/components/syn-badge/component.styles.ts +59 -0
  112. package/metadata/packages/components/components/syn-badge/component.ts +65 -0
  113. package/metadata/packages/components/components/syn-badge/component.vue +53 -0
  114. package/metadata/packages/components/components/syn-breadcrumb/component.angular.ts +58 -0
  115. package/metadata/packages/components/components/syn-breadcrumb/component.custom.styles.ts +5 -0
  116. package/metadata/packages/components/components/syn-breadcrumb/component.react.ts +32 -0
  117. package/metadata/packages/components/components/syn-breadcrumb/component.styles.ts +18 -0
  118. package/metadata/packages/components/components/syn-breadcrumb/component.ts +110 -0
  119. package/metadata/packages/components/components/syn-breadcrumb/component.vue +58 -0
  120. package/metadata/packages/components/components/syn-breadcrumb-item/component.angular.ts +88 -0
  121. package/metadata/packages/components/components/syn-breadcrumb-item/component.custom.styles.ts +74 -0
  122. package/metadata/packages/components/components/syn-breadcrumb-item/component.react.ts +37 -0
  123. package/metadata/packages/components/components/syn-breadcrumb-item/component.styles.ts +95 -0
  124. package/metadata/packages/components/components/syn-breadcrumb-item/component.ts +139 -0
  125. package/metadata/packages/components/components/syn-breadcrumb-item/component.vue +76 -0
  126. package/metadata/packages/components/components/syn-button/component.angular.ts +318 -0
  127. package/metadata/packages/components/components/syn-button/component.custom.styles.ts +206 -0
  128. package/metadata/packages/components/components/syn-button/component.react.ts +56 -0
  129. package/metadata/packages/components/components/syn-button/component.styles.ts +368 -0
  130. package/metadata/packages/components/components/syn-button/component.ts +322 -0
  131. package/metadata/packages/components/components/syn-button/component.vue +204 -0
  132. package/metadata/packages/components/components/syn-button-group/component.angular.ts +55 -0
  133. package/metadata/packages/components/components/syn-button-group/component.react.ts +29 -0
  134. package/metadata/packages/components/components/syn-button-group/component.styles.ts +21 -0
  135. package/metadata/packages/components/components/syn-button-group/component.ts +103 -0
  136. package/metadata/packages/components/components/syn-button-group/component.vue +55 -0
  137. package/metadata/packages/components/components/syn-card/component.angular.ts +69 -0
  138. package/metadata/packages/components/components/syn-card/component.custom.styles.ts +55 -0
  139. package/metadata/packages/components/components/syn-card/component.react.ts +41 -0
  140. package/metadata/packages/components/components/syn-card/component.styles.ts +77 -0
  141. package/metadata/packages/components/components/syn-card/component.ts +68 -0
  142. package/metadata/packages/components/components/syn-card/component.vue +67 -0
  143. package/metadata/packages/components/components/syn-checkbox/component.angular.ts +260 -0
  144. package/metadata/packages/components/components/syn-checkbox/component.custom.styles.ts +53 -0
  145. package/metadata/packages/components/components/syn-checkbox/component.react.ts +64 -0
  146. package/metadata/packages/components/components/syn-checkbox/component.styles.ts +130 -0
  147. package/metadata/packages/components/components/syn-checkbox/component.ts +291 -0
  148. package/metadata/packages/components/components/syn-checkbox/component.vue +186 -0
  149. package/metadata/packages/components/components/syn-combobox/component.angular.ts +436 -0
  150. package/metadata/packages/components/components/syn-combobox/component.custom.styles.ts +35 -0
  151. package/metadata/packages/components/components/syn-combobox/component.react.ts +109 -0
  152. package/metadata/packages/components/components/syn-combobox/component.styles.ts +406 -0
  153. package/metadata/packages/components/components/syn-combobox/component.ts +1139 -0
  154. package/metadata/packages/components/components/syn-combobox/component.vue +304 -0
  155. package/metadata/packages/components/components/syn-details/component.angular.ts +184 -0
  156. package/metadata/packages/components/components/syn-details/component.custom.styles.ts +140 -0
  157. package/metadata/packages/components/components/syn-details/component.react.ts +63 -0
  158. package/metadata/packages/components/components/syn-details/component.styles.ts +90 -0
  159. package/metadata/packages/components/components/syn-details/component.ts +266 -0
  160. package/metadata/packages/components/components/syn-details/component.vue +134 -0
  161. package/metadata/packages/components/components/syn-dialog/component.angular.ts +201 -0
  162. package/metadata/packages/components/components/syn-dialog/component.custom.styles.ts +54 -0
  163. package/metadata/packages/components/components/syn-dialog/component.react.ts +91 -0
  164. package/metadata/packages/components/components/syn-dialog/component.styles.ts +129 -0
  165. package/metadata/packages/components/components/syn-dialog/component.ts +366 -0
  166. package/metadata/packages/components/components/syn-dialog/component.vue +169 -0
  167. package/metadata/packages/components/components/syn-divider/component.angular.ts +55 -0
  168. package/metadata/packages/components/components/syn-divider/component.custom.styles.ts +8 -0
  169. package/metadata/packages/components/components/syn-divider/component.react.ts +29 -0
  170. package/metadata/packages/components/components/syn-divider/component.styles.ts +31 -0
  171. package/metadata/packages/components/components/syn-divider/component.ts +42 -0
  172. package/metadata/packages/components/components/syn-divider/component.vue +51 -0
  173. package/metadata/packages/components/components/syn-drawer/component.angular.ts +234 -0
  174. package/metadata/packages/components/components/syn-drawer/component.custom.styles.ts +78 -0
  175. package/metadata/packages/components/components/syn-drawer/component.react.ts +98 -0
  176. package/metadata/packages/components/components/syn-drawer/component.styles.ts +165 -0
  177. package/metadata/packages/components/components/syn-drawer/component.ts +496 -0
  178. package/metadata/packages/components/components/syn-drawer/component.vue +188 -0
  179. package/metadata/packages/components/components/syn-dropdown/component.angular.ts +223 -0
  180. package/metadata/packages/components/components/syn-dropdown/component.custom.styles.ts +5 -0
  181. package/metadata/packages/components/components/syn-dropdown/component.react.ts +59 -0
  182. package/metadata/packages/components/components/syn-dropdown/component.styles.ts +60 -0
  183. package/metadata/packages/components/components/syn-dropdown/component.ts +484 -0
  184. package/metadata/packages/components/components/syn-dropdown/component.vue +159 -0
  185. package/metadata/packages/components/components/syn-file/component.angular.ts +359 -0
  186. package/metadata/packages/components/components/syn-file/component.react.ts +85 -0
  187. package/metadata/packages/components/components/syn-file/component.styles.ts +179 -0
  188. package/metadata/packages/components/components/syn-file/component.ts +631 -0
  189. package/metadata/packages/components/components/syn-file/component.vue +251 -0
  190. package/metadata/packages/components/components/syn-header/component.angular.ts +132 -0
  191. package/metadata/packages/components/components/syn-header/component.react.ts +65 -0
  192. package/metadata/packages/components/components/syn-header/component.styles.ts +128 -0
  193. package/metadata/packages/components/components/syn-header/component.ts +260 -0
  194. package/metadata/packages/components/components/syn-header/component.vue +117 -0
  195. package/metadata/packages/components/components/syn-icon/component.angular.ts +115 -0
  196. package/metadata/packages/components/components/syn-icon/component.custom.styles.ts +5 -0
  197. package/metadata/packages/components/components/syn-icon/component.react.ts +41 -0
  198. package/metadata/packages/components/components/syn-icon/component.styles.ts +25 -0
  199. package/metadata/packages/components/components/syn-icon/component.ts +234 -0
  200. package/metadata/packages/components/components/syn-icon/component.vue +100 -0
  201. package/metadata/packages/components/components/syn-icon-button/component.angular.ts +185 -0
  202. package/metadata/packages/components/components/syn-icon-button/component.custom.styles.ts +68 -0
  203. package/metadata/packages/components/components/syn-icon-button/component.react.ts +42 -0
  204. package/metadata/packages/components/components/syn-icon-button/component.styles.ts +59 -0
  205. package/metadata/packages/components/components/syn-icon-button/component.ts +154 -0
  206. package/metadata/packages/components/components/syn-icon-button/component.vue +132 -0
  207. package/metadata/packages/components/components/syn-input/component.angular.ts +606 -0
  208. package/metadata/packages/components/components/syn-input/component.custom.styles.ts +278 -0
  209. package/metadata/packages/components/components/syn-input/component.react.ts +91 -0
  210. package/metadata/packages/components/components/syn-input/component.styles.ts +287 -0
  211. package/metadata/packages/components/components/syn-input/component.ts +942 -0
  212. package/metadata/packages/components/components/syn-input/component.vue +370 -0
  213. package/metadata/packages/components/components/syn-menu/component.angular.ts +52 -0
  214. package/metadata/packages/components/components/syn-menu/component.custom.styles.ts +29 -0
  215. package/metadata/packages/components/components/syn-menu/component.react.ts +36 -0
  216. package/metadata/packages/components/components/syn-menu/component.styles.ts +27 -0
  217. package/metadata/packages/components/components/syn-menu/component.ts +199 -0
  218. package/metadata/packages/components/components/syn-menu/component.vue +48 -0
  219. package/metadata/packages/components/components/syn-menu-item/component.angular.ts +121 -0
  220. package/metadata/packages/components/components/syn-menu-item/component.custom.styles.ts +128 -0
  221. package/metadata/packages/components/components/syn-menu-item/component.react.ts +45 -0
  222. package/metadata/packages/components/components/syn-menu-item/component.styles.ts +164 -0
  223. package/metadata/packages/components/components/syn-menu-item/component.ts +209 -0
  224. package/metadata/packages/components/components/syn-menu-item/component.vue +91 -0
  225. package/metadata/packages/components/components/syn-menu-label/component.angular.ts +48 -0
  226. package/metadata/packages/components/components/syn-menu-label/component.custom.styles.ts +24 -0
  227. package/metadata/packages/components/components/syn-menu-label/component.react.ts +35 -0
  228. package/metadata/packages/components/components/syn-menu-label/component.styles.ts +28 -0
  229. package/metadata/packages/components/components/syn-menu-label/component.ts +54 -0
  230. package/metadata/packages/components/components/syn-menu-label/component.vue +41 -0
  231. package/metadata/packages/components/components/syn-nav-item/component.angular.ts +242 -0
  232. package/metadata/packages/components/components/syn-nav-item/component.react.ts +82 -0
  233. package/metadata/packages/components/components/syn-nav-item/component.styles.ts +337 -0
  234. package/metadata/packages/components/components/syn-nav-item/component.ts +492 -0
  235. package/metadata/packages/components/components/syn-nav-item/component.vue +182 -0
  236. package/metadata/packages/components/components/syn-optgroup/component.angular.ts +79 -0
  237. package/metadata/packages/components/components/syn-optgroup/component.react.ts +41 -0
  238. package/metadata/packages/components/components/syn-optgroup/component.styles.ts +59 -0
  239. package/metadata/packages/components/components/syn-optgroup/component.ts +176 -0
  240. package/metadata/packages/components/components/syn-optgroup/component.vue +71 -0
  241. package/metadata/packages/components/components/syn-option/component.angular.ts +79 -0
  242. package/metadata/packages/components/components/syn-option/component.custom.styles.ts +81 -0
  243. package/metadata/packages/components/components/syn-option/component.react.ts +37 -0
  244. package/metadata/packages/components/components/syn-option/component.styles.ts +96 -0
  245. package/metadata/packages/components/components/syn-option/component.ts +174 -0
  246. package/metadata/packages/components/components/syn-option/component.vue +71 -0
  247. package/metadata/packages/components/components/syn-popup/component.angular.ts +385 -0
  248. package/metadata/packages/components/components/syn-popup/component.react.ts +55 -0
  249. package/metadata/packages/components/components/syn-popup/component.styles.ts +70 -0
  250. package/metadata/packages/components/components/syn-popup/component.ts +583 -0
  251. package/metadata/packages/components/components/syn-popup/component.vue +240 -0
  252. package/metadata/packages/components/components/syn-prio-nav/component.angular.ts +67 -0
  253. package/metadata/packages/components/components/syn-prio-nav/component.react.ts +54 -0
  254. package/metadata/packages/components/components/syn-prio-nav/component.styles.ts +48 -0
  255. package/metadata/packages/components/components/syn-prio-nav/component.ts +287 -0
  256. package/metadata/packages/components/components/syn-prio-nav/component.vue +60 -0
  257. package/metadata/packages/components/components/syn-progress-bar/component.angular.ts +85 -0
  258. package/metadata/packages/components/components/syn-progress-bar/component.custom.styles.ts +22 -0
  259. package/metadata/packages/components/components/syn-progress-bar/component.react.ts +37 -0
  260. package/metadata/packages/components/components/syn-progress-bar/component.styles.ts +94 -0
  261. package/metadata/packages/components/components/syn-progress-bar/component.ts +74 -0
  262. package/metadata/packages/components/components/syn-progress-bar/component.vue +71 -0
  263. package/metadata/packages/components/components/syn-progress-ring/component.angular.ts +72 -0
  264. package/metadata/packages/components/components/syn-progress-ring/component.custom.styles.ts +17 -0
  265. package/metadata/packages/components/components/syn-progress-ring/component.react.ts +37 -0
  266. package/metadata/packages/components/components/syn-progress-ring/component.styles.ts +77 -0
  267. package/metadata/packages/components/components/syn-progress-ring/component.ts +90 -0
  268. package/metadata/packages/components/components/syn-progress-ring/component.vue +66 -0
  269. package/metadata/packages/components/components/syn-radio/component.angular.ts +109 -0
  270. package/metadata/packages/components/components/syn-radio/component.custom.styles.ts +64 -0
  271. package/metadata/packages/components/components/syn-radio/component.react.ts +48 -0
  272. package/metadata/packages/components/components/syn-radio/component.styles.ts +124 -0
  273. package/metadata/packages/components/components/syn-radio/component.ts +129 -0
  274. package/metadata/packages/components/components/syn-radio/component.vue +99 -0
  275. package/metadata/packages/components/components/syn-radio-button/component.angular.ts +123 -0
  276. package/metadata/packages/components/components/syn-radio-button/component.react.ts +49 -0
  277. package/metadata/packages/components/components/syn-radio-button/component.styles.ts +37 -0
  278. package/metadata/packages/components/components/syn-radio-button/component.ts +149 -0
  279. package/metadata/packages/components/components/syn-radio-button/component.vue +105 -0
  280. package/metadata/packages/components/components/syn-radio-group/component.angular.ts +204 -0
  281. package/metadata/packages/components/components/syn-radio-group/component.custom.styles.ts +22 -0
  282. package/metadata/packages/components/components/syn-radio-group/component.react.ts +56 -0
  283. package/metadata/packages/components/components/syn-radio-group/component.styles.ts +44 -0
  284. package/metadata/packages/components/components/syn-radio-group/component.ts +418 -0
  285. package/metadata/packages/components/components/syn-radio-group/component.vue +158 -0
  286. package/metadata/packages/components/components/syn-range/component.angular.ts +334 -0
  287. package/metadata/packages/components/components/syn-range/component.react.ts +92 -0
  288. package/metadata/packages/components/components/syn-range/component.styles.ts +284 -0
  289. package/metadata/packages/components/components/syn-range/component.ts +878 -0
  290. package/metadata/packages/components/components/syn-range/component.vue +240 -0
  291. package/metadata/packages/components/components/syn-range-tick/component.angular.ts +59 -0
  292. package/metadata/packages/components/components/syn-range-tick/component.react.ts +33 -0
  293. package/metadata/packages/components/components/syn-range-tick/component.styles.ts +34 -0
  294. package/metadata/packages/components/components/syn-range-tick/component.ts +50 -0
  295. package/metadata/packages/components/components/syn-range-tick/component.vue +57 -0
  296. package/metadata/packages/components/components/syn-resize-observer/component.styles.ts +16 -0
  297. package/metadata/packages/components/components/syn-resize-observer/component.ts +98 -0
  298. package/metadata/packages/components/components/syn-select/component.angular.ts +441 -0
  299. package/metadata/packages/components/components/syn-select/component.custom.styles.ts +176 -0
  300. package/metadata/packages/components/components/syn-select/component.react.ts +101 -0
  301. package/metadata/packages/components/components/syn-select/component.styles.ts +316 -0
  302. package/metadata/packages/components/components/syn-select/component.ts +1054 -0
  303. package/metadata/packages/components/components/syn-select/component.vue +303 -0
  304. package/metadata/packages/components/components/syn-side-nav/component.angular.ts +231 -0
  305. package/metadata/packages/components/components/syn-side-nav/component.react.ts +95 -0
  306. package/metadata/packages/components/components/syn-side-nav/component.styles.ts +160 -0
  307. package/metadata/packages/components/components/syn-side-nav/component.ts +492 -0
  308. package/metadata/packages/components/components/syn-side-nav/component.vue +201 -0
  309. package/metadata/packages/components/components/syn-spinner/component.angular.ts +44 -0
  310. package/metadata/packages/components/components/syn-spinner/component.custom.styles.ts +31 -0
  311. package/metadata/packages/components/components/syn-spinner/component.react.ts +31 -0
  312. package/metadata/packages/components/components/syn-spinner/component.styles.ts +55 -0
  313. package/metadata/packages/components/components/syn-spinner/component.ts +42 -0
  314. package/metadata/packages/components/components/syn-spinner/component.vue +35 -0
  315. package/metadata/packages/components/components/syn-switch/component.angular.ts +244 -0
  316. package/metadata/packages/components/components/syn-switch/component.custom.styles.ts +112 -0
  317. package/metadata/packages/components/components/syn-switch/component.react.ts +63 -0
  318. package/metadata/packages/components/components/syn-switch/component.styles.ts +177 -0
  319. package/metadata/packages/components/components/syn-switch/component.ts +274 -0
  320. package/metadata/packages/components/components/syn-switch/component.vue +178 -0
  321. package/metadata/packages/components/components/syn-tab/component.angular.ts +109 -0
  322. package/metadata/packages/components/components/syn-tab/component.custom.styles.ts +92 -0
  323. package/metadata/packages/components/components/syn-tab/component.react.ts +42 -0
  324. package/metadata/packages/components/components/syn-tab/component.styles.ts +77 -0
  325. package/metadata/packages/components/components/syn-tab/component.ts +132 -0
  326. package/metadata/packages/components/components/syn-tab/component.vue +91 -0
  327. package/metadata/packages/components/components/syn-tab-group/component.angular.ts +166 -0
  328. package/metadata/packages/components/components/syn-tab-group/component.custom.styles.ts +248 -0
  329. package/metadata/packages/components/components/syn-tab-group/component.react.ts +58 -0
  330. package/metadata/packages/components/components/syn-tab-group/component.styles.ts +200 -0
  331. package/metadata/packages/components/components/syn-tab-group/component.ts +557 -0
  332. package/metadata/packages/components/components/syn-tab-group/component.vue +126 -0
  333. package/metadata/packages/components/components/syn-tab-panel/component.angular.ts +68 -0
  334. package/metadata/packages/components/components/syn-tab-panel/component.custom.styles.ts +8 -0
  335. package/metadata/packages/components/components/syn-tab-panel/component.react.ts +31 -0
  336. package/metadata/packages/components/components/syn-tab-panel/component.styles.ts +27 -0
  337. package/metadata/packages/components/components/syn-tab-panel/component.ts +67 -0
  338. package/metadata/packages/components/components/syn-tab-panel/component.vue +60 -0
  339. package/metadata/packages/components/components/syn-tag/component.angular.ts +83 -0
  340. package/metadata/packages/components/components/syn-tag/component.custom.styles.ts +120 -0
  341. package/metadata/packages/components/components/syn-tag/component.react.ts +43 -0
  342. package/metadata/packages/components/components/syn-tag/component.styles.ts +65 -0
  343. package/metadata/packages/components/components/syn-tag/component.ts +90 -0
  344. package/metadata/packages/components/components/syn-tag/component.vue +81 -0
  345. package/metadata/packages/components/components/syn-textarea/component.angular.ts +394 -0
  346. package/metadata/packages/components/components/syn-textarea/component.custom.styles.ts +18 -0
  347. package/metadata/packages/components/components/syn-textarea/component.react.ts +60 -0
  348. package/metadata/packages/components/components/syn-textarea/component.styles.ts +187 -0
  349. package/metadata/packages/components/components/syn-textarea/component.ts +401 -0
  350. package/metadata/packages/components/components/syn-textarea/component.vue +244 -0
  351. package/metadata/packages/components/components/syn-tooltip/component.angular.ts +212 -0
  352. package/metadata/packages/components/components/syn-tooltip/component.custom.styles.ts +13 -0
  353. package/metadata/packages/components/components/syn-tooltip/component.react.ts +63 -0
  354. package/metadata/packages/components/components/syn-tooltip/component.styles.ts +64 -0
  355. package/metadata/packages/components/components/syn-tooltip/component.ts +319 -0
  356. package/metadata/packages/components/components/syn-tooltip/component.vue +158 -0
  357. package/metadata/packages/components/components/syn-validate/component.angular.ts +128 -0
  358. package/metadata/packages/components/components/syn-validate/component.react.ts +36 -0
  359. package/metadata/packages/components/components/syn-validate/component.styles.ts +9 -0
  360. package/metadata/packages/components/components/syn-validate/component.ts +437 -0
  361. package/metadata/packages/components/components/syn-validate/component.vue +98 -0
  362. package/metadata/packages/components/migration/BREAKING_CHANGES.md +489 -0
  363. package/metadata/packages/components/static/CHANGELOG.md +1100 -0
  364. package/metadata/packages/components/static/LIMITATIONS.md +269 -0
  365. package/metadata/packages/components/static/README.md +248 -0
  366. package/metadata/packages/react/LIMITATIONS.md +31 -0
  367. package/metadata/packages/react/README.md +262 -0
  368. package/metadata/packages/styles/CHANGELOG.md +76 -0
  369. package/metadata/packages/styles/README.md +132 -0
  370. package/metadata/packages/styles/index.css +309 -0
  371. package/metadata/packages/styles/link-list.css +47 -0
  372. package/metadata/packages/styles/link.css +79 -0
  373. package/metadata/packages/styles/tables.css +143 -0
  374. package/metadata/packages/styles/typography.css +52 -0
  375. package/metadata/packages/tokens/CHANGELOG.md +431 -0
  376. package/metadata/packages/tokens/README.md +408 -0
  377. package/metadata/packages/tokens/dark.css +268 -0
  378. package/metadata/packages/tokens/index.js +1294 -0
  379. package/metadata/packages/tokens/light.css +268 -0
  380. package/metadata/packages/vue/LIMITATIONS.md +53 -0
  381. package/metadata/packages/vue/README.md +252 -0
  382. package/metadata/static/angular/index.md +6 -0
  383. package/metadata/static/assets/index.md +10 -0
  384. package/metadata/static/component-info/index.md +24 -0
  385. package/metadata/static/component-list/index.md +34 -0
  386. package/metadata/static/components/index.md +10 -0
  387. package/metadata/static/components/syn-accordion/docs.md +428 -0
  388. package/metadata/static/components/syn-alert/docs.md +231 -0
  389. package/metadata/static/components/syn-badge/docs.md +128 -0
  390. package/metadata/static/components/syn-breadcrumb/docs.md +265 -0
  391. package/metadata/static/components/syn-breadcrumb-item/docs.md +49 -0
  392. package/metadata/static/components/syn-button/docs.md +402 -0
  393. package/metadata/static/components/syn-card/docs.md +273 -0
  394. package/metadata/static/components/syn-checkbox/docs.md +77 -0
  395. package/metadata/static/components/syn-combobox/docs.md +2402 -0
  396. package/metadata/static/components/syn-details/docs.md +220 -0
  397. package/metadata/static/components/syn-dialog/docs.md +222 -0
  398. package/metadata/static/components/syn-divider/docs.md +77 -0
  399. package/metadata/static/components/syn-drawer/docs.md +271 -0
  400. package/metadata/static/components/syn-dropdown/docs.md +316 -0
  401. package/metadata/static/components/syn-file/docs.md +215 -0
  402. package/metadata/static/components/syn-header/docs.md +134 -0
  403. package/metadata/static/components/syn-icon/docs.md +177 -0
  404. package/metadata/static/components/syn-icon-button/docs.md +142 -0
  405. package/metadata/static/components/syn-input/docs.md +460 -0
  406. package/metadata/static/components/syn-menu/docs.md +162 -0
  407. package/metadata/static/components/syn-menu-item/docs.md +196 -0
  408. package/metadata/static/components/syn-menu-label/docs.md +29 -0
  409. package/metadata/static/components/syn-nav-item/docs.md +161 -0
  410. package/metadata/static/components/syn-optgroup/docs.md +167 -0
  411. package/metadata/static/components/syn-option/docs.md +137 -0
  412. package/metadata/static/components/syn-prio-nav/docs.md +54 -0
  413. package/metadata/static/components/syn-progress-bar/docs.md +77 -0
  414. package/metadata/static/components/syn-progress-ring/docs.md +89 -0
  415. package/metadata/static/components/syn-radio/docs.md +123 -0
  416. package/metadata/static/components/syn-radio-group/docs.md +363 -0
  417. package/metadata/static/components/syn-range/docs.md +419 -0
  418. package/metadata/static/components/syn-range-tick/docs.md +110 -0
  419. package/metadata/static/components/syn-select/docs.md +730 -0
  420. package/metadata/static/components/syn-side-nav/docs.md +593 -0
  421. package/metadata/static/components/syn-spinner/docs.md +45 -0
  422. package/metadata/static/components/syn-switch/docs.md +74 -0
  423. package/metadata/static/components/syn-tab/docs.md +47 -0
  424. package/metadata/static/components/syn-tab-group/docs.md +1094 -0
  425. package/metadata/static/components/syn-tab-panel/docs.md +91 -0
  426. package/metadata/static/components/syn-tag/docs.md +50 -0
  427. package/metadata/static/components/syn-textarea/docs.md +215 -0
  428. package/metadata/static/components/syn-tooltip/docs.md +144 -0
  429. package/metadata/static/components/syn-validate/docs.md +225 -0
  430. package/metadata/static/migration/index.md +10 -0
  431. package/metadata/static/react/index.md +8 -0
  432. package/metadata/static/setup/icon-usage.md +239 -0
  433. package/metadata/static/setup/prerequisites.md +171 -0
  434. package/metadata/static/styles/index.md +11 -0
  435. package/metadata/static/styles/syn-body.md +5 -0
  436. package/metadata/static/styles/syn-heading.md +5 -0
  437. package/metadata/static/styles/syn-link-list.md +325 -0
  438. package/metadata/static/styles/syn-link.md +156 -0
  439. package/metadata/static/styles/syn-table-cell.md +125 -0
  440. package/metadata/static/styles/syn-table.md +201 -0
  441. package/metadata/static/styles/syn-weight.md +5 -0
  442. package/metadata/static/templates/appshell.md +2061 -0
  443. package/metadata/static/templates/breadcrumb.md +375 -0
  444. package/metadata/static/templates/footer.md +342 -0
  445. package/metadata/static/templates/forms.md +369 -0
  446. package/metadata/static/templates/index.md +9 -0
  447. package/metadata/static/templates/table.md +1426 -0
  448. package/metadata/static/vue/index.md +6 -0
  449. package/package.json +109 -4
@@ -0,0 +1,2061 @@
1
+ ## Side Navigation
2
+
3
+ The side navigation opens when the user clicks on the burger menu. As the side navigation opens, a transparent mask fades in and the navigation overlaps the content area. To close the navigation, the user must either click on the close icon or anywhere on the content area to the right of the side navigation.
4
+
5
+ ```html
6
+ <!-- .synergy-demo-application -->
7
+ <div
8
+ class="synergy-demo-application story-loaded-0"
9
+ id="appshell-side-navigation"
10
+ >
11
+ <!-- header -->
12
+ <syn-header label="Synergy" burger-menu="closed">
13
+ <!-- meta-navigation -->
14
+ <nav slot="meta-navigation">
15
+ <syn-dropdown placement="bottom-start">
16
+ <syn-icon-button
17
+ color="neutral"
18
+ name="more_vert"
19
+ label="More"
20
+ slot="trigger"
21
+ size="inherit"
22
+ ></syn-icon-button>
23
+ <syn-menu role="menu">
24
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="0"
25
+ >Menu Item</syn-menu-item
26
+ >
27
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
28
+ >Menu Item</syn-menu-item
29
+ >
30
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
31
+ >Menu Item</syn-menu-item
32
+ >
33
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
34
+ >Menu Item</syn-menu-item
35
+ >
36
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
37
+ >Menu Item</syn-menu-item
38
+ >
39
+ </syn-menu>
40
+ </syn-dropdown>
41
+ </nav>
42
+ <!-- /meta-navigation -->
43
+ </syn-header>
44
+ <!-- /header -->
45
+
46
+ <!-- .synergy-demo-content -->
47
+ <div class="synergy-demo-content">
48
+ <!-- side-navigation -->
49
+ <syn-side-nav variant="default">
50
+ <syn-nav-item current="">
51
+ <syn-icon
52
+ name="home"
53
+ slot="prefix"
54
+ aria-hidden="true"
55
+ library="default"
56
+ ></syn-icon>
57
+ Start
58
+ </syn-nav-item>
59
+ <syn-nav-item divider="">
60
+ <syn-icon
61
+ name="spoke"
62
+ slot="prefix"
63
+ aria-hidden="true"
64
+ library="default"
65
+ ></syn-icon>
66
+ Workspaces
67
+ </syn-nav-item>
68
+ <syn-nav-item divider="">
69
+ <syn-icon
70
+ name="insert_drive_file"
71
+ slot="prefix"
72
+ aria-hidden="true"
73
+ library="default"
74
+ ></syn-icon>
75
+ Documents
76
+ </syn-nav-item>
77
+ <syn-nav-item divider="">
78
+ <syn-icon
79
+ name="wb_cloudy"
80
+ slot="prefix"
81
+ aria-hidden="true"
82
+ library="default"
83
+ ></syn-icon>
84
+ Cloud
85
+ </syn-nav-item>
86
+ <syn-nav-item divider="">
87
+ <syn-icon
88
+ name="volunteer_activism"
89
+ slot="prefix"
90
+ aria-hidden="true"
91
+ library="default"
92
+ ></syn-icon>
93
+ Feedback
94
+ </syn-nav-item>
95
+
96
+ <syn-nav-item slot="footer">
97
+ <syn-icon
98
+ name="settings"
99
+ slot="prefix"
100
+ aria-hidden="true"
101
+ library="default"
102
+ ></syn-icon>
103
+ Settings
104
+ </syn-nav-item>
105
+ <syn-nav-item slot="footer" divider="">
106
+ <syn-icon
107
+ name="logout"
108
+ slot="prefix"
109
+ aria-hidden="true"
110
+ library="default"
111
+ ></syn-icon>
112
+ Logout
113
+ </syn-nav-item>
114
+ </syn-side-nav>
115
+ <!-- /side-navigation -->
116
+
117
+ <main class="synergy-demo-main">
118
+ <h1>Start Page Content</h1>
119
+ Replace this slot
120
+ </main>
121
+
122
+ <!-- footer -->
123
+ <style>
124
+ .synergy-footer-demo {
125
+ container-type: inline-size;
126
+ }
127
+
128
+ .footer-content {
129
+ align-items: center;
130
+ display: flex;
131
+ flex-direction: row;
132
+ gap: var(--syn-spacing-x-large);
133
+ justify-content: space-between;
134
+ padding: var(--syn-spacing-large) var(--syn-spacing-2x-large);
135
+ }
136
+
137
+ .copyright {
138
+ color: var(--syn-typography-color-text);
139
+ font: var(--syn-body-small-bold);
140
+ margin: 0;
141
+ }
142
+
143
+ @container (max-width: 640px) {
144
+ .syn-link-list {
145
+ flex-direction: column;
146
+ }
147
+
148
+ .footer-content {
149
+ align-items: flex-start;
150
+ flex-direction: column;
151
+ padding: var(--syn-spacing-large) var(--syn-spacing-medium);
152
+ }
153
+ }
154
+ </style>
155
+ <footer class="synergy-footer-demo">
156
+ <nav class="footer-content" aria-label="Footer navigation">
157
+ <ul
158
+ class="syn-link-list syn-link-list--medium syn-link-list--horizontal"
159
+ >
160
+ <li>
161
+ <a
162
+ class="syn-link syn-link--medium syn-link--quiet"
163
+ href="https://www.sick.com/imprint"
164
+ >
165
+ Imprint
166
+ </a>
167
+ </li>
168
+ <li>
169
+ <a
170
+ class="syn-link syn-link--medium syn-link--quiet"
171
+ href="https://www.sick.com/tac"
172
+ >
173
+ Terms and conditions
174
+ </a>
175
+ </li>
176
+ <li>
177
+ <a
178
+ class="syn-link syn-link--medium syn-link--quiet"
179
+ href="https://www.sick.com/terms-of-use"
180
+ >
181
+ Terms of use
182
+ </a>
183
+ </li>
184
+ <li>
185
+ <a
186
+ class="syn-link syn-link--medium syn-link--quiet"
187
+ href="https://www.sick.com/dataprotection"
188
+ >
189
+ Privacy Policy
190
+ </a>
191
+ </li>
192
+ </ul>
193
+ <p class="copyright">© 2025 SICK AG</p>
194
+ </nav>
195
+ </footer>
196
+ <!-- /footer -->
197
+ </div>
198
+ <!-- /.synergy-demo-content -->
199
+ </div>
200
+ <!-- /.synergy-demo-application -->
201
+
202
+ <style>
203
+ body {
204
+ margin: 0 !important;
205
+ padding: 0 !important;
206
+ }
207
+
208
+ #storybook-root,
209
+ #root-inner {
210
+ height: 100%;
211
+ }
212
+
213
+ .synergy-demo-application {
214
+ container-type: inline-size;
215
+ display: flex;
216
+ flex-direction: column;
217
+ height: 100%;
218
+ min-height: 550px;
219
+ }
220
+
221
+ .synergy-demo-content {
222
+ background: var(--syn-color-neutral-100);
223
+ display: flex;
224
+ flex: 1 0 auto;
225
+ flex-direction: column;
226
+ height: 1%;
227
+ position: relative;
228
+ }
229
+
230
+ .synergy-demo-content-inner {
231
+ container-type: inline-size;
232
+ display: flex;
233
+ flex: 1 1 auto;
234
+ flex-direction: column;
235
+ }
236
+
237
+ .synergy-demo-main {
238
+ align-items: center;
239
+ border: 1px dashed #9747ff;
240
+ border-radius: var(--syn-border-radius-medium);
241
+ color: #9747ff;
242
+ display: flex;
243
+ flex: 1 0 auto;
244
+ flex-direction: column;
245
+ font: var(--syn-body-small-bold);
246
+ justify-content: center;
247
+ margin: var(--syn-spacing-2x-large) var(--syn-spacing-2x-large) 0;
248
+ padding: 0 var(--syn-spacing-small);
249
+ }
250
+
251
+ @container (max-width: 640px) {
252
+ .synergy-demo-main {
253
+ margin: var(--syn-spacing-medium) var(--syn-spacing-medium) 0;
254
+ }
255
+ }
256
+
257
+ .synergy-demo-main h1 {
258
+ color: var(--syn-typography-color-text);
259
+ font: var(--syn-heading-large);
260
+ margin: 0;
261
+ text-align: center;
262
+ }
263
+ </style>
264
+ ```
265
+
266
+ ---
267
+
268
+ ## Side Navigation Shrinking Content
269
+
270
+ The side navigation opens when the user clicks on the burger menu. As the side navigation opens, the content area shrinks. To close the navigation, the user must click on the close icon.
271
+
272
+ ```html
273
+ <!-- .synergy-demo-application -->
274
+ <div class="synergy-demo-application story-loaded-0" id="appshell-shrink">
275
+ <!-- header -->
276
+ <syn-header label="Synergy" burger-menu="open">
277
+ <!-- meta-navigation -->
278
+ <nav slot="meta-navigation">
279
+ <syn-dropdown placement="bottom-start">
280
+ <syn-icon-button
281
+ color="neutral"
282
+ name="more_vert"
283
+ label="More"
284
+ slot="trigger"
285
+ size="inherit"
286
+ ></syn-icon-button>
287
+ <syn-menu role="menu">
288
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="0"
289
+ >Menu Item</syn-menu-item
290
+ >
291
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
292
+ >Menu Item</syn-menu-item
293
+ >
294
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
295
+ >Menu Item</syn-menu-item
296
+ >
297
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
298
+ >Menu Item</syn-menu-item
299
+ >
300
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
301
+ >Menu Item</syn-menu-item
302
+ >
303
+ </syn-menu>
304
+ </syn-dropdown>
305
+ </nav>
306
+ <!-- /meta-navigation -->
307
+ </syn-header>
308
+ <!-- /header -->
309
+
310
+ <!-- .synergy-demo-content -->
311
+ <div class="synergy-demo-content">
312
+ <!-- side-navigation -->
313
+ <syn-side-nav no-focus-trapping="" open="" variant="default">
314
+ <syn-nav-item current="">
315
+ <syn-icon
316
+ name="home"
317
+ slot="prefix"
318
+ aria-hidden="true"
319
+ library="default"
320
+ ></syn-icon>
321
+ Start
322
+ </syn-nav-item>
323
+ <syn-nav-item divider="">
324
+ <syn-icon
325
+ name="spoke"
326
+ slot="prefix"
327
+ aria-hidden="true"
328
+ library="default"
329
+ ></syn-icon>
330
+ Workspaces
331
+ </syn-nav-item>
332
+ <syn-nav-item divider="">
333
+ <syn-icon
334
+ name="insert_drive_file"
335
+ slot="prefix"
336
+ aria-hidden="true"
337
+ library="default"
338
+ ></syn-icon>
339
+ Documents
340
+ </syn-nav-item>
341
+ <syn-nav-item divider="">
342
+ <syn-icon
343
+ name="wb_cloudy"
344
+ slot="prefix"
345
+ aria-hidden="true"
346
+ library="default"
347
+ ></syn-icon>
348
+ Cloud
349
+ </syn-nav-item>
350
+ <syn-nav-item divider="">
351
+ <syn-icon
352
+ name="volunteer_activism"
353
+ slot="prefix"
354
+ aria-hidden="true"
355
+ library="default"
356
+ ></syn-icon>
357
+ Feedback
358
+ </syn-nav-item>
359
+
360
+ <syn-nav-item slot="footer">
361
+ <syn-icon
362
+ name="settings"
363
+ slot="prefix"
364
+ aria-hidden="true"
365
+ library="default"
366
+ ></syn-icon>
367
+ Settings
368
+ </syn-nav-item>
369
+ <syn-nav-item slot="footer" divider="">
370
+ <syn-icon
371
+ name="logout"
372
+ slot="prefix"
373
+ aria-hidden="true"
374
+ library="default"
375
+ ></syn-icon>
376
+ Logout
377
+ </syn-nav-item>
378
+ </syn-side-nav>
379
+ <!-- /side-navigation -->
380
+
381
+ <div class="synergy-demo-content-inner">
382
+ <main class="synergy-demo-main">
383
+ <h1>Start Page Content</h1>
384
+ Replace this slot
385
+ </main>
386
+
387
+ <!-- footer -->
388
+ <style>
389
+ .synergy-footer-demo {
390
+ container-type: inline-size;
391
+ }
392
+
393
+ .footer-content {
394
+ align-items: center;
395
+ display: flex;
396
+ flex-direction: row;
397
+ gap: var(--syn-spacing-x-large);
398
+ justify-content: space-between;
399
+ padding: var(--syn-spacing-large) var(--syn-spacing-2x-large);
400
+ }
401
+
402
+ .copyright {
403
+ color: var(--syn-typography-color-text);
404
+ font: var(--syn-body-small-bold);
405
+ margin: 0;
406
+ }
407
+
408
+ @container (max-width: 640px) {
409
+ .syn-link-list {
410
+ flex-direction: column;
411
+ }
412
+
413
+ .footer-content {
414
+ align-items: flex-start;
415
+ flex-direction: column;
416
+ padding: var(--syn-spacing-large) var(--syn-spacing-medium);
417
+ }
418
+ }
419
+ </style>
420
+ <footer class="synergy-footer-demo">
421
+ <nav class="footer-content" aria-label="Footer navigation">
422
+ <ul
423
+ class="syn-link-list syn-link-list--medium syn-link-list--horizontal"
424
+ >
425
+ <li>
426
+ <a
427
+ class="syn-link syn-link--medium syn-link--quiet"
428
+ href="https://www.sick.com/imprint"
429
+ >
430
+ Imprint
431
+ </a>
432
+ </li>
433
+ <li>
434
+ <a
435
+ class="syn-link syn-link--medium syn-link--quiet"
436
+ href="https://www.sick.com/tac"
437
+ >
438
+ Terms and conditions
439
+ </a>
440
+ </li>
441
+ <li>
442
+ <a
443
+ class="syn-link syn-link--medium syn-link--quiet"
444
+ href="https://www.sick.com/terms-of-use"
445
+ >
446
+ Terms of use
447
+ </a>
448
+ </li>
449
+ <li>
450
+ <a
451
+ class="syn-link syn-link--medium syn-link--quiet"
452
+ href="https://www.sick.com/dataprotection"
453
+ >
454
+ Privacy Policy
455
+ </a>
456
+ </li>
457
+ </ul>
458
+ <p class="copyright">© 2025 SICK AG</p>
459
+ </nav>
460
+ </footer>
461
+ <!-- /footer -->
462
+ </div>
463
+ </div>
464
+ <!-- /.synergy-demo-content -->
465
+ </div>
466
+ <!-- /.synergy-demo-application -->
467
+
468
+ <style>
469
+ body {
470
+ margin: 0 !important;
471
+ padding: 0 !important;
472
+ }
473
+
474
+ #storybook-root,
475
+ #root-inner {
476
+ height: 100%;
477
+ }
478
+
479
+ .synergy-demo-application {
480
+ container-type: inline-size;
481
+ display: flex;
482
+ flex-direction: column;
483
+ height: 100%;
484
+ min-height: 550px;
485
+ }
486
+
487
+ .synergy-demo-content {
488
+ background: var(--syn-color-neutral-100);
489
+ display: flex;
490
+ flex: 1 0 auto;
491
+ flex-direction: column;
492
+ height: 1%;
493
+ position: relative;
494
+ }
495
+
496
+ .synergy-demo-content-inner {
497
+ container-type: inline-size;
498
+ display: flex;
499
+ flex: 1 1 auto;
500
+ flex-direction: column;
501
+ }
502
+
503
+ .synergy-demo-main {
504
+ align-items: center;
505
+ border: 1px dashed #9747ff;
506
+ border-radius: var(--syn-border-radius-medium);
507
+ color: #9747ff;
508
+ display: flex;
509
+ flex: 1 0 auto;
510
+ flex-direction: column;
511
+ font: var(--syn-body-small-bold);
512
+ justify-content: center;
513
+ margin: var(--syn-spacing-2x-large) var(--syn-spacing-2x-large) 0;
514
+ padding: 0 var(--syn-spacing-small);
515
+ }
516
+
517
+ @container (max-width: 640px) {
518
+ .synergy-demo-main {
519
+ margin: var(--syn-spacing-medium) var(--syn-spacing-medium) 0;
520
+ }
521
+ }
522
+
523
+ .synergy-demo-main h1 {
524
+ color: var(--syn-typography-color-text);
525
+ font: var(--syn-heading-large);
526
+ margin: 0;
527
+ text-align: center;
528
+ }
529
+ </style>
530
+
531
+ <style>
532
+ #appshell-shrink {
533
+ /**
534
+ * Set this variable to the wanted size of the side-nav
535
+ * Make sure the value stays in sync, otherwise the parts may overlap
536
+ */
537
+ --appshell-shrink-nav-open-width: 320px;
538
+
539
+ syn-side-nav::part(overlay) {
540
+ display: none;
541
+ }
542
+
543
+ .synergy-demo-content-inner {
544
+ /**
545
+ * Set the initial margin left. Needed because we
546
+ * create the page with the side-bar open
547
+ */
548
+ margin-left: var(--appshell-shrink-nav-open-width);
549
+ }
550
+
551
+ /**
552
+ * Show a transition effect for users that do not have reduced motion enabled
553
+ */
554
+ @media (prefers-reduced-motion: no-preference) {
555
+ .synergy-demo-content-inner {
556
+ transition: margin-left 250ms;
557
+ }
558
+ }
559
+ }
560
+ </style>
561
+ ```
562
+
563
+ ---
564
+
565
+ ## Rail Navigation (Desktop)
566
+
567
+ The navigation opens when the user hovers over it. As the navigation opens, it overlaps the content area. To close the navigation, the user simply hovers outside of it.
568
+
569
+ ```html
570
+ <!-- .synergy-demo-application -->
571
+ <div class="synergy-demo-application story-loaded-0" id="appshell-rail-desktop">
572
+ <!-- header -->
573
+ <syn-header label="Synergy" burger-menu="hidden">
574
+ <!-- meta-navigation -->
575
+ <nav slot="meta-navigation">
576
+ <syn-dropdown placement="bottom-start">
577
+ <syn-icon-button
578
+ color="neutral"
579
+ name="more_vert"
580
+ label="More"
581
+ slot="trigger"
582
+ size="inherit"
583
+ ></syn-icon-button>
584
+ <syn-menu role="menu">
585
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="0"
586
+ >Menu Item</syn-menu-item
587
+ >
588
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
589
+ >Menu Item</syn-menu-item
590
+ >
591
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
592
+ >Menu Item</syn-menu-item
593
+ >
594
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
595
+ >Menu Item</syn-menu-item
596
+ >
597
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
598
+ >Menu Item</syn-menu-item
599
+ >
600
+ </syn-menu>
601
+ </syn-dropdown>
602
+ </nav>
603
+ <!-- /meta-navigation -->
604
+ </syn-header>
605
+ <!-- /header -->
606
+
607
+ <!-- .synergy-demo-content -->
608
+ <div class="synergy-demo-content">
609
+ <!-- side-navigation -->
610
+ <syn-side-nav variant="rail">
611
+ <syn-nav-item current="">
612
+ <syn-icon
613
+ name="home"
614
+ slot="prefix"
615
+ aria-hidden="true"
616
+ library="default"
617
+ ></syn-icon>
618
+ Start
619
+ </syn-nav-item>
620
+ <syn-nav-item divider="">
621
+ <syn-icon
622
+ name="spoke"
623
+ slot="prefix"
624
+ aria-hidden="true"
625
+ library="default"
626
+ ></syn-icon>
627
+ Workspaces
628
+ </syn-nav-item>
629
+ <syn-nav-item divider="">
630
+ <syn-icon
631
+ name="insert_drive_file"
632
+ slot="prefix"
633
+ aria-hidden="true"
634
+ library="default"
635
+ ></syn-icon>
636
+ Documents
637
+ </syn-nav-item>
638
+ <syn-nav-item divider="">
639
+ <syn-icon
640
+ name="wb_cloudy"
641
+ slot="prefix"
642
+ aria-hidden="true"
643
+ library="default"
644
+ ></syn-icon>
645
+ Cloud
646
+ </syn-nav-item>
647
+ <syn-nav-item divider="">
648
+ <syn-icon
649
+ name="volunteer_activism"
650
+ slot="prefix"
651
+ aria-hidden="true"
652
+ library="default"
653
+ ></syn-icon>
654
+ Feedback
655
+ </syn-nav-item>
656
+
657
+ <syn-nav-item slot="footer">
658
+ <syn-icon
659
+ name="settings"
660
+ slot="prefix"
661
+ aria-hidden="true"
662
+ library="default"
663
+ ></syn-icon>
664
+ Settings
665
+ </syn-nav-item>
666
+ <syn-nav-item slot="footer" divider="">
667
+ <syn-icon
668
+ name="logout"
669
+ slot="prefix"
670
+ aria-hidden="true"
671
+ library="default"
672
+ ></syn-icon>
673
+ Logout
674
+ </syn-nav-item>
675
+ </syn-side-nav>
676
+ <!-- /side-navigation -->
677
+
678
+ <div class="synergy-demo-content-inner">
679
+ <main class="synergy-demo-main">
680
+ <h1>Start Page Content</h1>
681
+ Replace this slot
682
+ </main>
683
+
684
+ <!-- footer -->
685
+ <style>
686
+ .synergy-footer-demo {
687
+ container-type: inline-size;
688
+ }
689
+
690
+ .footer-content {
691
+ align-items: center;
692
+ display: flex;
693
+ flex-direction: row;
694
+ gap: var(--syn-spacing-x-large);
695
+ justify-content: space-between;
696
+ padding: var(--syn-spacing-large) var(--syn-spacing-2x-large);
697
+ }
698
+
699
+ .copyright {
700
+ color: var(--syn-typography-color-text);
701
+ font: var(--syn-body-small-bold);
702
+ margin: 0;
703
+ }
704
+
705
+ @container (max-width: 640px) {
706
+ .syn-link-list {
707
+ flex-direction: column;
708
+ }
709
+
710
+ .footer-content {
711
+ align-items: flex-start;
712
+ flex-direction: column;
713
+ padding: var(--syn-spacing-large) var(--syn-spacing-medium);
714
+ }
715
+ }
716
+ </style>
717
+ <footer class="synergy-footer-demo">
718
+ <nav class="footer-content" aria-label="Footer navigation">
719
+ <ul
720
+ class="syn-link-list syn-link-list--medium syn-link-list--horizontal"
721
+ >
722
+ <li>
723
+ <a
724
+ class="syn-link syn-link--medium syn-link--quiet"
725
+ href="https://www.sick.com/imprint"
726
+ >
727
+ Imprint
728
+ </a>
729
+ </li>
730
+ <li>
731
+ <a
732
+ class="syn-link syn-link--medium syn-link--quiet"
733
+ href="https://www.sick.com/tac"
734
+ >
735
+ Terms and conditions
736
+ </a>
737
+ </li>
738
+ <li>
739
+ <a
740
+ class="syn-link syn-link--medium syn-link--quiet"
741
+ href="https://www.sick.com/terms-of-use"
742
+ >
743
+ Terms of use
744
+ </a>
745
+ </li>
746
+ <li>
747
+ <a
748
+ class="syn-link syn-link--medium syn-link--quiet"
749
+ href="https://www.sick.com/dataprotection"
750
+ >
751
+ Privacy Policy
752
+ </a>
753
+ </li>
754
+ </ul>
755
+ <p class="copyright">© 2025 SICK AG</p>
756
+ </nav>
757
+ </footer>
758
+ <!-- /footer -->
759
+ </div>
760
+ </div>
761
+ <!-- /.synergy-demo-content -->
762
+ </div>
763
+ <!-- /.synergy-demo-application -->
764
+
765
+ <style>
766
+ body {
767
+ margin: 0 !important;
768
+ padding: 0 !important;
769
+ }
770
+
771
+ #storybook-root,
772
+ #root-inner {
773
+ height: 100%;
774
+ }
775
+
776
+ .synergy-demo-application {
777
+ container-type: inline-size;
778
+ display: flex;
779
+ flex-direction: column;
780
+ height: 100%;
781
+ min-height: 550px;
782
+ }
783
+
784
+ .synergy-demo-content {
785
+ background: var(--syn-color-neutral-100);
786
+ display: flex;
787
+ flex: 1 0 auto;
788
+ flex-direction: column;
789
+ height: 1%;
790
+ position: relative;
791
+ }
792
+
793
+ .synergy-demo-content-inner {
794
+ container-type: inline-size;
795
+ display: flex;
796
+ flex: 1 1 auto;
797
+ flex-direction: column;
798
+ }
799
+
800
+ .synergy-demo-main {
801
+ align-items: center;
802
+ border: 1px dashed #9747ff;
803
+ border-radius: var(--syn-border-radius-medium);
804
+ color: #9747ff;
805
+ display: flex;
806
+ flex: 1 0 auto;
807
+ flex-direction: column;
808
+ font: var(--syn-body-small-bold);
809
+ justify-content: center;
810
+ margin: var(--syn-spacing-2x-large) var(--syn-spacing-2x-large) 0;
811
+ padding: 0 var(--syn-spacing-small);
812
+ }
813
+
814
+ @container (max-width: 640px) {
815
+ .synergy-demo-main {
816
+ margin: var(--syn-spacing-medium) var(--syn-spacing-medium) 0;
817
+ }
818
+ }
819
+
820
+ .synergy-demo-main h1 {
821
+ color: var(--syn-typography-color-text);
822
+ font: var(--syn-heading-large);
823
+ margin: 0;
824
+ text-align: center;
825
+ }
826
+ </style>
827
+
828
+ <style>
829
+ #appshell-rail-desktop .synergy-demo-content {
830
+ flex-direction: row;
831
+ }
832
+
833
+ @media (max-width: 420px) {
834
+ #appshell-rail-desktop syn-side-nav {
835
+ --side-nav-open-width: 306px;
836
+ }
837
+ }
838
+ </style>
839
+ ```
840
+
841
+ ---
842
+
843
+ ## ↳ Tablet
844
+
845
+ The navigation opens when the user touches it. As the side navigation opens, a transparent mask fades in and the navigation overlaps the content area. To close the navigation, the user must touch anywhere on the content area to the right of the side navigation.
846
+
847
+ ```html
848
+ <!-- .synergy-demo-application -->
849
+ <div class="synergy-demo-application story-loaded-1" id="appshell-rail-desktop">
850
+ <!-- header -->
851
+ <syn-header label="Synergy" burger-menu="hidden">
852
+ <!-- meta-navigation -->
853
+ <nav slot="meta-navigation">
854
+ <syn-dropdown placement="bottom-start">
855
+ <syn-icon-button
856
+ color="neutral"
857
+ name="more_vert"
858
+ label="More"
859
+ slot="trigger"
860
+ size="inherit"
861
+ ></syn-icon-button>
862
+ <syn-menu role="menu">
863
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="0"
864
+ >Menu Item</syn-menu-item
865
+ >
866
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
867
+ >Menu Item</syn-menu-item
868
+ >
869
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
870
+ >Menu Item</syn-menu-item
871
+ >
872
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
873
+ >Menu Item</syn-menu-item
874
+ >
875
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
876
+ >Menu Item</syn-menu-item
877
+ >
878
+ </syn-menu>
879
+ </syn-dropdown>
880
+ </nav>
881
+ <!-- /meta-navigation -->
882
+ </syn-header>
883
+ <!-- /header -->
884
+
885
+ <!-- .synergy-demo-content -->
886
+ <div class="synergy-demo-content">
887
+ <!-- side-navigation -->
888
+ <syn-side-nav variant="rail">
889
+ <syn-nav-item current="">
890
+ <syn-icon
891
+ name="home"
892
+ slot="prefix"
893
+ aria-hidden="true"
894
+ library="default"
895
+ ></syn-icon>
896
+ Start
897
+ </syn-nav-item>
898
+ <syn-nav-item divider="">
899
+ <syn-icon
900
+ name="spoke"
901
+ slot="prefix"
902
+ aria-hidden="true"
903
+ library="default"
904
+ ></syn-icon>
905
+ Workspaces
906
+ </syn-nav-item>
907
+ <syn-nav-item divider="">
908
+ <syn-icon
909
+ name="insert_drive_file"
910
+ slot="prefix"
911
+ aria-hidden="true"
912
+ library="default"
913
+ ></syn-icon>
914
+ Documents
915
+ </syn-nav-item>
916
+ <syn-nav-item divider="">
917
+ <syn-icon
918
+ name="wb_cloudy"
919
+ slot="prefix"
920
+ aria-hidden="true"
921
+ library="default"
922
+ ></syn-icon>
923
+ Cloud
924
+ </syn-nav-item>
925
+ <syn-nav-item divider="">
926
+ <syn-icon
927
+ name="volunteer_activism"
928
+ slot="prefix"
929
+ aria-hidden="true"
930
+ library="default"
931
+ ></syn-icon>
932
+ Feedback
933
+ </syn-nav-item>
934
+
935
+ <syn-nav-item slot="footer">
936
+ <syn-icon
937
+ name="settings"
938
+ slot="prefix"
939
+ aria-hidden="true"
940
+ library="default"
941
+ ></syn-icon>
942
+ Settings
943
+ </syn-nav-item>
944
+ <syn-nav-item slot="footer" divider="">
945
+ <syn-icon
946
+ name="logout"
947
+ slot="prefix"
948
+ aria-hidden="true"
949
+ library="default"
950
+ ></syn-icon>
951
+ Logout
952
+ </syn-nav-item>
953
+ </syn-side-nav>
954
+ <!-- /side-navigation -->
955
+
956
+ <div class="synergy-demo-content-inner">
957
+ <main class="synergy-demo-main">
958
+ <h1>Start Page Content</h1>
959
+ Replace this slot
960
+ </main>
961
+
962
+ <!-- footer -->
963
+ <style>
964
+ .synergy-footer-demo {
965
+ container-type: inline-size;
966
+ }
967
+
968
+ .footer-content {
969
+ align-items: center;
970
+ display: flex;
971
+ flex-direction: row;
972
+ gap: var(--syn-spacing-x-large);
973
+ justify-content: space-between;
974
+ padding: var(--syn-spacing-large) var(--syn-spacing-2x-large);
975
+ }
976
+
977
+ .copyright {
978
+ color: var(--syn-typography-color-text);
979
+ font: var(--syn-body-small-bold);
980
+ margin: 0;
981
+ }
982
+
983
+ @container (max-width: 640px) {
984
+ .syn-link-list {
985
+ flex-direction: column;
986
+ }
987
+
988
+ .footer-content {
989
+ align-items: flex-start;
990
+ flex-direction: column;
991
+ padding: var(--syn-spacing-large) var(--syn-spacing-medium);
992
+ }
993
+ }
994
+ </style>
995
+ <footer class="synergy-footer-demo">
996
+ <nav class="footer-content" aria-label="Footer navigation">
997
+ <ul
998
+ class="syn-link-list syn-link-list--medium syn-link-list--horizontal"
999
+ >
1000
+ <li>
1001
+ <a
1002
+ class="syn-link syn-link--medium syn-link--quiet"
1003
+ href="https://www.sick.com/imprint"
1004
+ >
1005
+ Imprint
1006
+ </a>
1007
+ </li>
1008
+ <li>
1009
+ <a
1010
+ class="syn-link syn-link--medium syn-link--quiet"
1011
+ href="https://www.sick.com/tac"
1012
+ >
1013
+ Terms and conditions
1014
+ </a>
1015
+ </li>
1016
+ <li>
1017
+ <a
1018
+ class="syn-link syn-link--medium syn-link--quiet"
1019
+ href="https://www.sick.com/terms-of-use"
1020
+ >
1021
+ Terms of use
1022
+ </a>
1023
+ </li>
1024
+ <li>
1025
+ <a
1026
+ class="syn-link syn-link--medium syn-link--quiet"
1027
+ href="https://www.sick.com/dataprotection"
1028
+ >
1029
+ Privacy Policy
1030
+ </a>
1031
+ </li>
1032
+ </ul>
1033
+ <p class="copyright">© 2025 SICK AG</p>
1034
+ </nav>
1035
+ </footer>
1036
+ <!-- /footer -->
1037
+ </div>
1038
+ </div>
1039
+ <!-- /.synergy-demo-content -->
1040
+ </div>
1041
+ <!-- /.synergy-demo-application -->
1042
+
1043
+ <style>
1044
+ body {
1045
+ margin: 0 !important;
1046
+ padding: 0 !important;
1047
+ }
1048
+
1049
+ #storybook-root,
1050
+ #root-inner {
1051
+ height: 100%;
1052
+ }
1053
+
1054
+ .synergy-demo-application {
1055
+ container-type: inline-size;
1056
+ display: flex;
1057
+ flex-direction: column;
1058
+ height: 100%;
1059
+ min-height: 550px;
1060
+ }
1061
+
1062
+ .synergy-demo-content {
1063
+ background: var(--syn-color-neutral-100);
1064
+ display: flex;
1065
+ flex: 1 0 auto;
1066
+ flex-direction: column;
1067
+ height: 1%;
1068
+ position: relative;
1069
+ }
1070
+
1071
+ .synergy-demo-content-inner {
1072
+ container-type: inline-size;
1073
+ display: flex;
1074
+ flex: 1 1 auto;
1075
+ flex-direction: column;
1076
+ }
1077
+
1078
+ .synergy-demo-main {
1079
+ align-items: center;
1080
+ border: 1px dashed #9747ff;
1081
+ border-radius: var(--syn-border-radius-medium);
1082
+ color: #9747ff;
1083
+ display: flex;
1084
+ flex: 1 0 auto;
1085
+ flex-direction: column;
1086
+ font: var(--syn-body-small-bold);
1087
+ justify-content: center;
1088
+ margin: var(--syn-spacing-2x-large) var(--syn-spacing-2x-large) 0;
1089
+ padding: 0 var(--syn-spacing-small);
1090
+ }
1091
+
1092
+ @container (max-width: 640px) {
1093
+ .synergy-demo-main {
1094
+ margin: var(--syn-spacing-medium) var(--syn-spacing-medium) 0;
1095
+ }
1096
+ }
1097
+
1098
+ .synergy-demo-main h1 {
1099
+ color: var(--syn-typography-color-text);
1100
+ font: var(--syn-heading-large);
1101
+ margin: 0;
1102
+ text-align: center;
1103
+ }
1104
+ </style>
1105
+
1106
+ <style>
1107
+ #appshell-rail-desktop .synergy-demo-content {
1108
+ flex-direction: row;
1109
+ }
1110
+
1111
+ @media (max-width: 420px) {
1112
+ #appshell-rail-desktop syn-side-nav {
1113
+ --side-nav-open-width: 306px;
1114
+ }
1115
+ }
1116
+ </style>
1117
+ ```
1118
+
1119
+ ---
1120
+
1121
+ ## Sticky Navigation (Desktop)
1122
+
1123
+ General BehaviourThe navigation maintains its compact width until the user clicks the “show sidebar” icon at the bottom. When the navigation expands, it shifts the content area. To reduce the navigation's width, the user simply clicks “Hide sidebar” again.
1124
+
1125
+ ```html
1126
+ <!-- .synergy-demo-application -->
1127
+ <div
1128
+ class="synergy-demo-application story-loaded-0"
1129
+ id="appshell-sticky-desktop"
1130
+ >
1131
+ <!-- header -->
1132
+ <syn-header label="Synergy" burger-menu="hidden">
1133
+ <!-- meta-navigation -->
1134
+ <nav slot="meta-navigation">
1135
+ <syn-dropdown placement="bottom-start">
1136
+ <syn-icon-button
1137
+ color="neutral"
1138
+ name="more_vert"
1139
+ label="More"
1140
+ slot="trigger"
1141
+ size="inherit"
1142
+ ></syn-icon-button>
1143
+ <syn-menu role="menu">
1144
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="0"
1145
+ >Menu Item</syn-menu-item
1146
+ >
1147
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1148
+ >Menu Item</syn-menu-item
1149
+ >
1150
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1151
+ >Menu Item</syn-menu-item
1152
+ >
1153
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1154
+ >Menu Item</syn-menu-item
1155
+ >
1156
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1157
+ >Menu Item</syn-menu-item
1158
+ >
1159
+ </syn-menu>
1160
+ </syn-dropdown>
1161
+ </nav>
1162
+ <!-- /meta-navigation -->
1163
+ </syn-header>
1164
+ <!-- /header -->
1165
+
1166
+ <!-- .synergy-demo-content -->
1167
+ <div class="synergy-demo-content">
1168
+ <!-- side-navigation -->
1169
+ <syn-side-nav variant="sticky">
1170
+ <syn-nav-item current="">
1171
+ <syn-icon
1172
+ name="home"
1173
+ slot="prefix"
1174
+ aria-hidden="true"
1175
+ library="default"
1176
+ ></syn-icon>
1177
+ Start
1178
+ </syn-nav-item>
1179
+ <syn-nav-item divider="">
1180
+ <syn-icon
1181
+ name="spoke"
1182
+ slot="prefix"
1183
+ aria-hidden="true"
1184
+ library="default"
1185
+ ></syn-icon>
1186
+ Workspaces
1187
+ </syn-nav-item>
1188
+ <syn-nav-item divider="">
1189
+ <syn-icon
1190
+ name="insert_drive_file"
1191
+ slot="prefix"
1192
+ aria-hidden="true"
1193
+ library="default"
1194
+ ></syn-icon>
1195
+ Documents
1196
+ </syn-nav-item>
1197
+ <syn-nav-item divider="">
1198
+ <syn-icon
1199
+ name="wb_cloudy"
1200
+ slot="prefix"
1201
+ aria-hidden="true"
1202
+ library="default"
1203
+ ></syn-icon>
1204
+ Cloud
1205
+ </syn-nav-item>
1206
+ <syn-nav-item divider="">
1207
+ <syn-icon
1208
+ name="volunteer_activism"
1209
+ slot="prefix"
1210
+ aria-hidden="true"
1211
+ library="default"
1212
+ ></syn-icon>
1213
+ Feedback
1214
+ </syn-nav-item>
1215
+ </syn-side-nav>
1216
+ <!-- /side-navigation -->
1217
+
1218
+ <div class="synergy-demo-content-inner">
1219
+ <main class="synergy-demo-main">
1220
+ <h1>Start Page Content</h1>
1221
+ Replace this slot
1222
+ </main>
1223
+
1224
+ <!-- footer -->
1225
+ <style>
1226
+ .synergy-footer-demo {
1227
+ container-type: inline-size;
1228
+ }
1229
+
1230
+ .footer-content {
1231
+ align-items: center;
1232
+ display: flex;
1233
+ flex-direction: row;
1234
+ gap: var(--syn-spacing-x-large);
1235
+ justify-content: space-between;
1236
+ padding: var(--syn-spacing-large) var(--syn-spacing-2x-large);
1237
+ }
1238
+
1239
+ .copyright {
1240
+ color: var(--syn-typography-color-text);
1241
+ font: var(--syn-body-small-bold);
1242
+ margin: 0;
1243
+ }
1244
+
1245
+ @container (max-width: 640px) {
1246
+ .syn-link-list {
1247
+ flex-direction: column;
1248
+ }
1249
+
1250
+ .footer-content {
1251
+ align-items: flex-start;
1252
+ flex-direction: column;
1253
+ padding: var(--syn-spacing-large) var(--syn-spacing-medium);
1254
+ }
1255
+ }
1256
+ </style>
1257
+ <footer class="synergy-footer-demo">
1258
+ <nav class="footer-content" aria-label="Footer navigation">
1259
+ <ul
1260
+ class="syn-link-list syn-link-list--medium syn-link-list--horizontal"
1261
+ >
1262
+ <li>
1263
+ <a
1264
+ class="syn-link syn-link--medium syn-link--quiet"
1265
+ href="https://www.sick.com/imprint"
1266
+ >
1267
+ Imprint
1268
+ </a>
1269
+ </li>
1270
+ <li>
1271
+ <a
1272
+ class="syn-link syn-link--medium syn-link--quiet"
1273
+ href="https://www.sick.com/tac"
1274
+ >
1275
+ Terms and conditions
1276
+ </a>
1277
+ </li>
1278
+ <li>
1279
+ <a
1280
+ class="syn-link syn-link--medium syn-link--quiet"
1281
+ href="https://www.sick.com/terms-of-use"
1282
+ >
1283
+ Terms of use
1284
+ </a>
1285
+ </li>
1286
+ <li>
1287
+ <a
1288
+ class="syn-link syn-link--medium syn-link--quiet"
1289
+ href="https://www.sick.com/dataprotection"
1290
+ >
1291
+ Privacy Policy
1292
+ </a>
1293
+ </li>
1294
+ </ul>
1295
+ <p class="copyright">© 2025 SICK AG</p>
1296
+ </nav>
1297
+ </footer>
1298
+ <!-- /footer -->
1299
+ </div>
1300
+ </div>
1301
+ <!-- /.synergy-demo-content -->
1302
+ </div>
1303
+ <!-- /.synergy-demo-application -->
1304
+
1305
+ <style>
1306
+ body {
1307
+ margin: 0 !important;
1308
+ padding: 0 !important;
1309
+ }
1310
+
1311
+ #storybook-root,
1312
+ #root-inner {
1313
+ height: 100%;
1314
+ }
1315
+
1316
+ .synergy-demo-application {
1317
+ container-type: inline-size;
1318
+ display: flex;
1319
+ flex-direction: column;
1320
+ height: 100%;
1321
+ min-height: 550px;
1322
+ }
1323
+
1324
+ .synergy-demo-content {
1325
+ background: var(--syn-color-neutral-100);
1326
+ display: flex;
1327
+ flex: 1 0 auto;
1328
+ flex-direction: column;
1329
+ height: 1%;
1330
+ position: relative;
1331
+ }
1332
+
1333
+ .synergy-demo-content-inner {
1334
+ container-type: inline-size;
1335
+ display: flex;
1336
+ flex: 1 1 auto;
1337
+ flex-direction: column;
1338
+ }
1339
+
1340
+ .synergy-demo-main {
1341
+ align-items: center;
1342
+ border: 1px dashed #9747ff;
1343
+ border-radius: var(--syn-border-radius-medium);
1344
+ color: #9747ff;
1345
+ display: flex;
1346
+ flex: 1 0 auto;
1347
+ flex-direction: column;
1348
+ font: var(--syn-body-small-bold);
1349
+ justify-content: center;
1350
+ margin: var(--syn-spacing-2x-large) var(--syn-spacing-2x-large) 0;
1351
+ padding: 0 var(--syn-spacing-small);
1352
+ }
1353
+
1354
+ @container (max-width: 640px) {
1355
+ .synergy-demo-main {
1356
+ margin: var(--syn-spacing-medium) var(--syn-spacing-medium) 0;
1357
+ }
1358
+ }
1359
+
1360
+ .synergy-demo-main h1 {
1361
+ color: var(--syn-typography-color-text);
1362
+ font: var(--syn-heading-large);
1363
+ margin: 0;
1364
+ text-align: center;
1365
+ }
1366
+ </style>
1367
+
1368
+ <style>
1369
+ #appshell-sticky-desktop .synergy-demo-content {
1370
+ flex-direction: row;
1371
+ }
1372
+
1373
+ @media (max-width: 420px) {
1374
+ #appshell-sticky-desktop syn-side-nav {
1375
+ --side-nav-open-width: 306px;
1376
+ }
1377
+ }
1378
+ </style>
1379
+ ```
1380
+
1381
+ ---
1382
+
1383
+ ## ↳ Tablet
1384
+
1385
+ General BehaviourThe navigation maintains its compact width until the user clicks the “show sidebar” icon at the bottom. When the navigation expands, it shifts the content area. To reduce the navigation's width, the user simply clicks “Hide sidebar” again.
1386
+
1387
+ ```html
1388
+ <!-- .synergy-demo-application -->
1389
+ <div
1390
+ class="synergy-demo-application story-loaded-1"
1391
+ id="appshell-sticky-desktop"
1392
+ >
1393
+ <!-- header -->
1394
+ <syn-header label="Synergy" burger-menu="hidden">
1395
+ <!-- meta-navigation -->
1396
+ <nav slot="meta-navigation">
1397
+ <syn-dropdown placement="bottom-start">
1398
+ <syn-icon-button
1399
+ color="neutral"
1400
+ name="more_vert"
1401
+ label="More"
1402
+ slot="trigger"
1403
+ size="inherit"
1404
+ ></syn-icon-button>
1405
+ <syn-menu role="menu">
1406
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="0"
1407
+ >Menu Item</syn-menu-item
1408
+ >
1409
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1410
+ >Menu Item</syn-menu-item
1411
+ >
1412
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1413
+ >Menu Item</syn-menu-item
1414
+ >
1415
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1416
+ >Menu Item</syn-menu-item
1417
+ >
1418
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1419
+ >Menu Item</syn-menu-item
1420
+ >
1421
+ </syn-menu>
1422
+ </syn-dropdown>
1423
+ </nav>
1424
+ <!-- /meta-navigation -->
1425
+ </syn-header>
1426
+ <!-- /header -->
1427
+
1428
+ <!-- .synergy-demo-content -->
1429
+ <div class="synergy-demo-content">
1430
+ <!-- side-navigation -->
1431
+ <syn-side-nav variant="sticky">
1432
+ <syn-nav-item current="">
1433
+ <syn-icon
1434
+ name="home"
1435
+ slot="prefix"
1436
+ aria-hidden="true"
1437
+ library="default"
1438
+ ></syn-icon>
1439
+ Start
1440
+ </syn-nav-item>
1441
+ <syn-nav-item divider="">
1442
+ <syn-icon
1443
+ name="spoke"
1444
+ slot="prefix"
1445
+ aria-hidden="true"
1446
+ library="default"
1447
+ ></syn-icon>
1448
+ Workspaces
1449
+ </syn-nav-item>
1450
+ <syn-nav-item divider="">
1451
+ <syn-icon
1452
+ name="insert_drive_file"
1453
+ slot="prefix"
1454
+ aria-hidden="true"
1455
+ library="default"
1456
+ ></syn-icon>
1457
+ Documents
1458
+ </syn-nav-item>
1459
+ <syn-nav-item divider="">
1460
+ <syn-icon
1461
+ name="wb_cloudy"
1462
+ slot="prefix"
1463
+ aria-hidden="true"
1464
+ library="default"
1465
+ ></syn-icon>
1466
+ Cloud
1467
+ </syn-nav-item>
1468
+ <syn-nav-item divider="">
1469
+ <syn-icon
1470
+ name="volunteer_activism"
1471
+ slot="prefix"
1472
+ aria-hidden="true"
1473
+ library="default"
1474
+ ></syn-icon>
1475
+ Feedback
1476
+ </syn-nav-item>
1477
+ </syn-side-nav>
1478
+ <!-- /side-navigation -->
1479
+
1480
+ <div class="synergy-demo-content-inner">
1481
+ <main class="synergy-demo-main">
1482
+ <h1>Start Page Content</h1>
1483
+ Replace this slot
1484
+ </main>
1485
+
1486
+ <!-- footer -->
1487
+ <style>
1488
+ .synergy-footer-demo {
1489
+ container-type: inline-size;
1490
+ }
1491
+
1492
+ .footer-content {
1493
+ align-items: center;
1494
+ display: flex;
1495
+ flex-direction: row;
1496
+ gap: var(--syn-spacing-x-large);
1497
+ justify-content: space-between;
1498
+ padding: var(--syn-spacing-large) var(--syn-spacing-2x-large);
1499
+ }
1500
+
1501
+ .copyright {
1502
+ color: var(--syn-typography-color-text);
1503
+ font: var(--syn-body-small-bold);
1504
+ margin: 0;
1505
+ }
1506
+
1507
+ @container (max-width: 640px) {
1508
+ .syn-link-list {
1509
+ flex-direction: column;
1510
+ }
1511
+
1512
+ .footer-content {
1513
+ align-items: flex-start;
1514
+ flex-direction: column;
1515
+ padding: var(--syn-spacing-large) var(--syn-spacing-medium);
1516
+ }
1517
+ }
1518
+ </style>
1519
+ <footer class="synergy-footer-demo">
1520
+ <nav class="footer-content" aria-label="Footer navigation">
1521
+ <ul
1522
+ class="syn-link-list syn-link-list--medium syn-link-list--horizontal"
1523
+ >
1524
+ <li>
1525
+ <a
1526
+ class="syn-link syn-link--medium syn-link--quiet"
1527
+ href="https://www.sick.com/imprint"
1528
+ >
1529
+ Imprint
1530
+ </a>
1531
+ </li>
1532
+ <li>
1533
+ <a
1534
+ class="syn-link syn-link--medium syn-link--quiet"
1535
+ href="https://www.sick.com/tac"
1536
+ >
1537
+ Terms and conditions
1538
+ </a>
1539
+ </li>
1540
+ <li>
1541
+ <a
1542
+ class="syn-link syn-link--medium syn-link--quiet"
1543
+ href="https://www.sick.com/terms-of-use"
1544
+ >
1545
+ Terms of use
1546
+ </a>
1547
+ </li>
1548
+ <li>
1549
+ <a
1550
+ class="syn-link syn-link--medium syn-link--quiet"
1551
+ href="https://www.sick.com/dataprotection"
1552
+ >
1553
+ Privacy Policy
1554
+ </a>
1555
+ </li>
1556
+ </ul>
1557
+ <p class="copyright">© 2025 SICK AG</p>
1558
+ </nav>
1559
+ </footer>
1560
+ <!-- /footer -->
1561
+ </div>
1562
+ </div>
1563
+ <!-- /.synergy-demo-content -->
1564
+ </div>
1565
+ <!-- /.synergy-demo-application -->
1566
+
1567
+ <style>
1568
+ body {
1569
+ margin: 0 !important;
1570
+ padding: 0 !important;
1571
+ }
1572
+
1573
+ #storybook-root,
1574
+ #root-inner {
1575
+ height: 100%;
1576
+ }
1577
+
1578
+ .synergy-demo-application {
1579
+ container-type: inline-size;
1580
+ display: flex;
1581
+ flex-direction: column;
1582
+ height: 100%;
1583
+ min-height: 550px;
1584
+ }
1585
+
1586
+ .synergy-demo-content {
1587
+ background: var(--syn-color-neutral-100);
1588
+ display: flex;
1589
+ flex: 1 0 auto;
1590
+ flex-direction: column;
1591
+ height: 1%;
1592
+ position: relative;
1593
+ }
1594
+
1595
+ .synergy-demo-content-inner {
1596
+ container-type: inline-size;
1597
+ display: flex;
1598
+ flex: 1 1 auto;
1599
+ flex-direction: column;
1600
+ }
1601
+
1602
+ .synergy-demo-main {
1603
+ align-items: center;
1604
+ border: 1px dashed #9747ff;
1605
+ border-radius: var(--syn-border-radius-medium);
1606
+ color: #9747ff;
1607
+ display: flex;
1608
+ flex: 1 0 auto;
1609
+ flex-direction: column;
1610
+ font: var(--syn-body-small-bold);
1611
+ justify-content: center;
1612
+ margin: var(--syn-spacing-2x-large) var(--syn-spacing-2x-large) 0;
1613
+ padding: 0 var(--syn-spacing-small);
1614
+ }
1615
+
1616
+ @container (max-width: 640px) {
1617
+ .synergy-demo-main {
1618
+ margin: var(--syn-spacing-medium) var(--syn-spacing-medium) 0;
1619
+ }
1620
+ }
1621
+
1622
+ .synergy-demo-main h1 {
1623
+ color: var(--syn-typography-color-text);
1624
+ font: var(--syn-heading-large);
1625
+ margin: 0;
1626
+ text-align: center;
1627
+ }
1628
+ </style>
1629
+
1630
+ <style>
1631
+ #appshell-sticky-desktop .synergy-demo-content {
1632
+ flex-direction: row;
1633
+ }
1634
+
1635
+ @media (max-width: 420px) {
1636
+ #appshell-sticky-desktop syn-side-nav {
1637
+ --side-nav-open-width: 306px;
1638
+ }
1639
+ }
1640
+ </style>
1641
+ ```
1642
+
1643
+ ---
1644
+
1645
+ ## Top Navigation
1646
+
1647
+ The top navigation can be combined with a light grey background.This variant is suitable, for example, in combination with cards to achieve a dashboard look and feel.
1648
+
1649
+ ```html
1650
+ <!-- .synergy-demo-application -->
1651
+ <div
1652
+ class="synergy-demo-application story-loaded-0"
1653
+ id="appshell-top-navigation"
1654
+ >
1655
+ <!-- header -->
1656
+ <syn-header label="Synergy" burger-menu="hidden">
1657
+ <!-- prio-nav -->
1658
+ <syn-prio-nav slot="navigation">
1659
+ <syn-nav-item current="" horizontal="true">Home</syn-nav-item>
1660
+ <syn-nav-item horizontal="true">Documents</syn-nav-item>
1661
+ <syn-nav-item horizontal="true">Applications</syn-nav-item>
1662
+ <syn-nav-item horizontal="true">Teams</syn-nav-item>
1663
+ </syn-prio-nav>
1664
+ <!-- /prio-nav -->
1665
+
1666
+ <!-- meta-navigation -->
1667
+ <nav slot="meta-navigation">
1668
+ <syn-dropdown placement="bottom-start">
1669
+ <syn-icon-button
1670
+ color="neutral"
1671
+ name="more_vert"
1672
+ label="More"
1673
+ slot="trigger"
1674
+ size="inherit"
1675
+ ></syn-icon-button>
1676
+ <syn-menu role="menu">
1677
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="0"
1678
+ >Menu Item</syn-menu-item
1679
+ >
1680
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1681
+ >Menu Item</syn-menu-item
1682
+ >
1683
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1684
+ >Menu Item</syn-menu-item
1685
+ >
1686
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1687
+ >Menu Item</syn-menu-item
1688
+ >
1689
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1690
+ >Menu Item</syn-menu-item
1691
+ >
1692
+ </syn-menu>
1693
+ </syn-dropdown>
1694
+ </nav>
1695
+ <!-- /meta-navigation -->
1696
+ </syn-header>
1697
+ <!-- /header -->
1698
+
1699
+ <!-- .synergy-demo-content -->
1700
+ <div class="synergy-demo-content">
1701
+ <main class="synergy-demo-main">
1702
+ <h1>Start Page Content</h1>
1703
+ Replace this slot
1704
+ </main>
1705
+
1706
+ <!-- footer -->
1707
+ <style>
1708
+ .synergy-footer-demo {
1709
+ container-type: inline-size;
1710
+ }
1711
+
1712
+ .footer-content {
1713
+ align-items: center;
1714
+ display: flex;
1715
+ flex-direction: row;
1716
+ gap: var(--syn-spacing-x-large);
1717
+ justify-content: space-between;
1718
+ padding: var(--syn-spacing-large) var(--syn-spacing-2x-large);
1719
+ }
1720
+
1721
+ .copyright {
1722
+ color: var(--syn-typography-color-text);
1723
+ font: var(--syn-body-small-bold);
1724
+ margin: 0;
1725
+ }
1726
+
1727
+ @container (max-width: 640px) {
1728
+ .syn-link-list {
1729
+ flex-direction: column;
1730
+ }
1731
+
1732
+ .footer-content {
1733
+ align-items: flex-start;
1734
+ flex-direction: column;
1735
+ padding: var(--syn-spacing-large) var(--syn-spacing-medium);
1736
+ }
1737
+ }
1738
+ </style>
1739
+ <footer class="synergy-footer-demo">
1740
+ <nav class="footer-content" aria-label="Footer navigation">
1741
+ <ul
1742
+ class="syn-link-list syn-link-list--medium syn-link-list--horizontal"
1743
+ >
1744
+ <li>
1745
+ <a
1746
+ class="syn-link syn-link--medium syn-link--quiet"
1747
+ href="https://www.sick.com/imprint"
1748
+ >
1749
+ Imprint
1750
+ </a>
1751
+ </li>
1752
+ <li>
1753
+ <a
1754
+ class="syn-link syn-link--medium syn-link--quiet"
1755
+ href="https://www.sick.com/tac"
1756
+ >
1757
+ Terms and conditions
1758
+ </a>
1759
+ </li>
1760
+ <li>
1761
+ <a
1762
+ class="syn-link syn-link--medium syn-link--quiet"
1763
+ href="https://www.sick.com/terms-of-use"
1764
+ >
1765
+ Terms of use
1766
+ </a>
1767
+ </li>
1768
+ <li>
1769
+ <a
1770
+ class="syn-link syn-link--medium syn-link--quiet"
1771
+ href="https://www.sick.com/dataprotection"
1772
+ >
1773
+ Privacy Policy
1774
+ </a>
1775
+ </li>
1776
+ </ul>
1777
+ <p class="copyright">© 2025 SICK AG</p>
1778
+ </nav>
1779
+ </footer>
1780
+ <!-- /footer -->
1781
+ </div>
1782
+ <!-- /.synergy-demo-content -->
1783
+ </div>
1784
+ <!-- /.synergy-demo-application -->
1785
+
1786
+ <style>
1787
+ body {
1788
+ margin: 0 !important;
1789
+ padding: 0 !important;
1790
+ }
1791
+
1792
+ #storybook-root,
1793
+ #root-inner {
1794
+ height: 100%;
1795
+ }
1796
+
1797
+ .synergy-demo-application {
1798
+ container-type: inline-size;
1799
+ display: flex;
1800
+ flex-direction: column;
1801
+ height: 100%;
1802
+ min-height: 550px;
1803
+ }
1804
+
1805
+ .synergy-demo-content {
1806
+ background: var(--syn-color-neutral-100);
1807
+ display: flex;
1808
+ flex: 1 0 auto;
1809
+ flex-direction: column;
1810
+ height: 1%;
1811
+ position: relative;
1812
+ }
1813
+
1814
+ .synergy-demo-content-inner {
1815
+ container-type: inline-size;
1816
+ display: flex;
1817
+ flex: 1 1 auto;
1818
+ flex-direction: column;
1819
+ }
1820
+
1821
+ .synergy-demo-main {
1822
+ align-items: center;
1823
+ border: 1px dashed #9747ff;
1824
+ border-radius: var(--syn-border-radius-medium);
1825
+ color: #9747ff;
1826
+ display: flex;
1827
+ flex: 1 0 auto;
1828
+ flex-direction: column;
1829
+ font: var(--syn-body-small-bold);
1830
+ justify-content: center;
1831
+ margin: var(--syn-spacing-2x-large) var(--syn-spacing-2x-large) 0;
1832
+ padding: 0 var(--syn-spacing-small);
1833
+ }
1834
+
1835
+ @container (max-width: 640px) {
1836
+ .synergy-demo-main {
1837
+ margin: var(--syn-spacing-medium) var(--syn-spacing-medium) 0;
1838
+ }
1839
+ }
1840
+
1841
+ .synergy-demo-main h1 {
1842
+ color: var(--syn-typography-color-text);
1843
+ font: var(--syn-heading-large);
1844
+ margin: 0;
1845
+ text-align: center;
1846
+ }
1847
+ </style>
1848
+ ```
1849
+
1850
+ ---
1851
+
1852
+ ## White Background
1853
+
1854
+ Additionally the top navigation can be combined with a white background.
1855
+
1856
+ ```html
1857
+ <!-- .synergy-demo-application -->
1858
+ <div
1859
+ class="synergy-demo-application story-loaded-0"
1860
+ id="appshell-white-background"
1861
+ >
1862
+ <!-- header -->
1863
+ <syn-header label="Synergy" burger-menu="hidden">
1864
+ <!-- prio-nav -->
1865
+ <syn-prio-nav slot="navigation">
1866
+ <syn-nav-item current="" horizontal="true">Home</syn-nav-item>
1867
+ <syn-nav-item horizontal="true">Documents</syn-nav-item>
1868
+ <syn-nav-item horizontal="true">Applications</syn-nav-item>
1869
+ <syn-nav-item horizontal="true">Teams</syn-nav-item>
1870
+ </syn-prio-nav>
1871
+ <!-- /prio-nav -->
1872
+
1873
+ <!-- meta-navigation -->
1874
+ <nav slot="meta-navigation">
1875
+ <syn-dropdown placement="bottom-start">
1876
+ <syn-icon-button
1877
+ color="neutral"
1878
+ name="more_vert"
1879
+ label="More"
1880
+ slot="trigger"
1881
+ size="inherit"
1882
+ ></syn-icon-button>
1883
+ <syn-menu role="menu">
1884
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="0"
1885
+ >Menu Item</syn-menu-item
1886
+ >
1887
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1888
+ >Menu Item</syn-menu-item
1889
+ >
1890
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1891
+ >Menu Item</syn-menu-item
1892
+ >
1893
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1894
+ >Menu Item</syn-menu-item
1895
+ >
1896
+ <syn-menu-item role="menuitem" aria-disabled="false" tabindex="-1"
1897
+ >Menu Item</syn-menu-item
1898
+ >
1899
+ </syn-menu>
1900
+ </syn-dropdown>
1901
+ </nav>
1902
+ <!-- /meta-navigation -->
1903
+ </syn-header>
1904
+ <!-- /header -->
1905
+
1906
+ <!-- .synergy-demo-content -->
1907
+ <div class="synergy-demo-content">
1908
+ <main class="synergy-demo-main">
1909
+ <h1>Start Page Content</h1>
1910
+ Replace this slot
1911
+ </main>
1912
+
1913
+ <!-- footer -->
1914
+ <style>
1915
+ .synergy-footer-demo {
1916
+ container-type: inline-size;
1917
+ }
1918
+
1919
+ .footer-content {
1920
+ align-items: center;
1921
+ display: flex;
1922
+ flex-direction: row;
1923
+ gap: var(--syn-spacing-x-large);
1924
+ justify-content: space-between;
1925
+ padding: var(--syn-spacing-large) var(--syn-spacing-2x-large);
1926
+ }
1927
+
1928
+ .copyright {
1929
+ color: var(--syn-typography-color-text);
1930
+ font: var(--syn-body-small-bold);
1931
+ margin: 0;
1932
+ }
1933
+
1934
+ @container (max-width: 640px) {
1935
+ .syn-link-list {
1936
+ flex-direction: column;
1937
+ }
1938
+
1939
+ .footer-content {
1940
+ align-items: flex-start;
1941
+ flex-direction: column;
1942
+ padding: var(--syn-spacing-large) var(--syn-spacing-medium);
1943
+ }
1944
+ }
1945
+ </style>
1946
+ <footer class="synergy-footer-demo">
1947
+ <nav class="footer-content" aria-label="Footer navigation">
1948
+ <ul
1949
+ class="syn-link-list syn-link-list--medium syn-link-list--horizontal"
1950
+ >
1951
+ <li>
1952
+ <a
1953
+ class="syn-link syn-link--medium syn-link--quiet"
1954
+ href="https://www.sick.com/imprint"
1955
+ >
1956
+ Imprint
1957
+ </a>
1958
+ </li>
1959
+ <li>
1960
+ <a
1961
+ class="syn-link syn-link--medium syn-link--quiet"
1962
+ href="https://www.sick.com/tac"
1963
+ >
1964
+ Terms and conditions
1965
+ </a>
1966
+ </li>
1967
+ <li>
1968
+ <a
1969
+ class="syn-link syn-link--medium syn-link--quiet"
1970
+ href="https://www.sick.com/terms-of-use"
1971
+ >
1972
+ Terms of use
1973
+ </a>
1974
+ </li>
1975
+ <li>
1976
+ <a
1977
+ class="syn-link syn-link--medium syn-link--quiet"
1978
+ href="https://www.sick.com/dataprotection"
1979
+ >
1980
+ Privacy Policy
1981
+ </a>
1982
+ </li>
1983
+ </ul>
1984
+ <p class="copyright">© 2025 SICK AG</p>
1985
+ </nav>
1986
+ </footer>
1987
+ <!-- /footer -->
1988
+ </div>
1989
+ <!-- /.synergy-demo-content -->
1990
+ </div>
1991
+ <!-- /.synergy-demo-application -->
1992
+
1993
+ <style>
1994
+ body {
1995
+ margin: 0 !important;
1996
+ padding: 0 !important;
1997
+ }
1998
+
1999
+ #storybook-root,
2000
+ #root-inner {
2001
+ height: 100%;
2002
+ }
2003
+
2004
+ .synergy-demo-application {
2005
+ container-type: inline-size;
2006
+ display: flex;
2007
+ flex-direction: column;
2008
+ height: 100%;
2009
+ min-height: 550px;
2010
+ }
2011
+
2012
+ .synergy-demo-content {
2013
+ background: var(--syn-color-neutral-100);
2014
+ display: flex;
2015
+ flex: 1 0 auto;
2016
+ flex-direction: column;
2017
+ height: 1%;
2018
+ position: relative;
2019
+ }
2020
+
2021
+ .synergy-demo-content-inner {
2022
+ container-type: inline-size;
2023
+ display: flex;
2024
+ flex: 1 1 auto;
2025
+ flex-direction: column;
2026
+ }
2027
+
2028
+ .synergy-demo-main {
2029
+ align-items: center;
2030
+ border: 1px dashed #9747ff;
2031
+ border-radius: var(--syn-border-radius-medium);
2032
+ color: #9747ff;
2033
+ display: flex;
2034
+ flex: 1 0 auto;
2035
+ flex-direction: column;
2036
+ font: var(--syn-body-small-bold);
2037
+ justify-content: center;
2038
+ margin: var(--syn-spacing-2x-large) var(--syn-spacing-2x-large) 0;
2039
+ padding: 0 var(--syn-spacing-small);
2040
+ }
2041
+
2042
+ @container (max-width: 640px) {
2043
+ .synergy-demo-main {
2044
+ margin: var(--syn-spacing-medium) var(--syn-spacing-medium) 0;
2045
+ }
2046
+ }
2047
+
2048
+ .synergy-demo-main h1 {
2049
+ color: var(--syn-typography-color-text);
2050
+ font: var(--syn-heading-large);
2051
+ margin: 0;
2052
+ text-align: center;
2053
+ }
2054
+ </style>
2055
+
2056
+ <style>
2057
+ #appshell-white-background .synergy-demo-content {
2058
+ background: var(--syn-color-neutral-0);
2059
+ }
2060
+ </style>
2061
+ ```