@synergy-design-system/mcp 1.31.0 → 1.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.32.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1099](https://github.com/synergy-design-system/synergy-design-system/pull/1099) [`fc1e550`](https://github.com/synergy-design-system/synergy-design-system/commit/fc1e550fb4aa28eabf0bef6b089993a1dd939ff2) Thanks [@schilchSICKAG](https://github.com/schilchSICKAG)! - Released on: 2025-12-04
8
+
9
+ feat: ✨ add sick intl to fonts (#1085)
10
+
11
+ Add an optimized variant of the `SICK Intl` font as a shared asset to the new `@synergy-design-system/fonts` package.
12
+ It also adds the fonts package to the Synergy MCP server.
13
+
3
14
  ## 1.31.0
4
15
 
5
16
  ### Minor Changes
@@ -1,6 +1,7 @@
1
1
  import ora from 'ora';
2
2
  import { buildAssets } from './assets.js';
3
3
  import { buildComponents } from './components.js';
4
+ import { buildFonts } from './fonts.js';
4
5
  import { buildFrameworkFiles } from './frameworks.js';
5
6
  import { buildStaticFiles } from './static.js';
6
7
  import { buildTokens } from './tokens.js';
@@ -14,6 +15,7 @@ const build = async () => {
14
15
  await buildAssets();
15
16
  await buildComponents();
16
17
  await buildFrameworkFiles();
18
+ await buildFonts();
17
19
  await buildTokens();
18
20
  await buildStyles();
19
21
  // Should be run last as we will copy files where we see fit and paths must exist
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Sets up all wanted data from the fonts package and adds it to the static metadata.
3
+ */
4
+ export declare const buildFonts: () => Promise<void>;
@@ -0,0 +1,49 @@
1
+ import { existsSync } from 'node:fs';
2
+ import { copyFile } from 'node:fs/promises';
3
+ import { basename, join } from 'node:path';
4
+ import { rimraf } from 'rimraf';
5
+ import ora from 'ora';
6
+ import { createPath, fontsPath, getAbsolutePath, } from '../utilities/index.js';
7
+ /**
8
+ * List of relative paths to files that should be copied to the static metadata directory.
9
+ */
10
+ const staticFilesToCopy = [
11
+ 'README.md',
12
+ 'CHANGELOG.md',
13
+ 'package.json',
14
+ ].map(file => ([
15
+ getAbsolutePath(`../../../../packages/fonts/${file}`),
16
+ join(fontsPath, ''),
17
+ ]));
18
+ /**
19
+ * Sets up all wanted data from the fonts package and adds it to the static metadata.
20
+ */
21
+ export const buildFonts = async () => {
22
+ const spinner = ora({
23
+ prefixText: 'Fonts:',
24
+ text: 'Generating static metadata...',
25
+ }).start();
26
+ try {
27
+ spinner.text = 'Cleaning up old metadata...';
28
+ await rimraf(fontsPath);
29
+ spinner.succeed('Old metadata cleaned up.');
30
+ spinner.text = 'Creating new metadata directory...';
31
+ // Create the fonts directory if it doesn't exist
32
+ await createPath(fontsPath);
33
+ spinner.succeed('New metadata directory created.');
34
+ spinner.text = 'Copying files to metadata directory...';
35
+ const staticFiles = staticFilesToCopy
36
+ .filter(file => existsSync(file.at(0)))
37
+ .map(async ([staticFile, target]) => {
38
+ await createPath(target);
39
+ return copyFile(staticFile, join(target, basename(staticFile)));
40
+ });
41
+ await Promise.all(staticFiles);
42
+ spinner.succeed('Framework metadata generated successfully.');
43
+ spinner.succeed('Generation of metadata generated successfully.');
44
+ }
45
+ catch (error) {
46
+ spinner.fail(`Failed to generate fonts metadata. Error: ${error}`);
47
+ throw error; // Re-throw to handle it in the calling function
48
+ }
49
+ };
@@ -0,0 +1,6 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Simple tool to retrieve information about the fonts used in the Synergy Design System.
4
+ * @param server - The MCP server instance to register the tool on.
5
+ */
6
+ export declare const fontInfoTool: (server: McpServer) => void;
@@ -0,0 +1,35 @@
1
+ import { getFontsMetaData, getStructuredMetaData, } from '../utilities/index.js';
2
+ /**
3
+ * Simple tool to retrieve information about the fonts used in the Synergy Design System.
4
+ * @param server - The MCP server instance to register the tool on.
5
+ */
6
+ export const fontInfoTool = (server) => {
7
+ server.registerTool('font-info', {
8
+ description: 'Get the list of used fonts and their setup for the Synergy Design System.',
9
+ title: 'Font Information',
10
+ }, async () => {
11
+ const aiRules = await getStructuredMetaData('../../metadata/static/fonts');
12
+ const fontsData = await getFontsMetaData((fileName) => !fileName.toLowerCase().startsWith('changelog'));
13
+ return {
14
+ content: [
15
+ {
16
+ text: 'Available fonts in the Synergy Design System:',
17
+ type: 'text',
18
+ },
19
+ {
20
+ text: JSON.stringify([
21
+ {
22
+ text: JSON.stringify(aiRules, null, 2),
23
+ type: 'text',
24
+ },
25
+ ], null, 2),
26
+ type: 'text',
27
+ },
28
+ {
29
+ text: JSON.stringify(fontsData, null, 2),
30
+ type: 'text',
31
+ },
32
+ ],
33
+ };
34
+ });
35
+ };
@@ -3,6 +3,7 @@ export * from './asset-list.js';
3
3
  export * from './component-info.js';
4
4
  export * from './component-list.js';
5
5
  export * from './davinci-migration.js';
6
+ export * from './font-info.js';
6
7
  export * from './framework-info.js';
7
8
  export * from './migration-info.js';
8
9
  export * from './styles-info.js';
@@ -3,6 +3,7 @@ export * from './asset-list.js';
3
3
  export * from './component-info.js';
4
4
  export * from './component-list.js';
5
5
  export * from './davinci-migration.js';
6
+ export * from './font-info.js';
6
7
  export * from './framework-info.js';
7
8
  export * from './migration-info.js';
8
9
  export * from './styles-info.js';
@@ -70,6 +70,10 @@ export declare const staticPath: string;
70
70
  * Path to the migration directory, relative to the MCP directory.
71
71
  */
72
72
  export declare const staticMigrationPath: string;
73
+ /**
74
+ * Path to the fonts directory, relative to the MCP directory.
75
+ */
76
+ export declare const fontsPath: string;
73
77
  /**
74
78
  * List of supported frameworks.
75
79
  */
@@ -75,3 +75,7 @@ export const staticPath = join(currentDirname, '../../metadata/static');
75
75
  * Path to the migration directory, relative to the MCP directory.
76
76
  */
77
77
  export const staticMigrationPath = join(currentDirname, '../../metadata/static/migration');
78
+ /**
79
+ * Path to the fonts directory, relative to the MCP directory.
80
+ */
81
+ export const fontsPath = join(currentDirname, '../../metadata/packages/fonts');
@@ -0,0 +1,2 @@
1
+ import { type Filter } from './metadata.js';
2
+ export declare const getFontsMetaData: (filter?: Filter) => Promise<(import("./metadata.js").MetadataFile | null)[]>;
@@ -0,0 +1,3 @@
1
+ import { fontsPath, } from './config.js';
2
+ import { getStructuredMetaData, } from './metadata.js';
3
+ export const getFontsMetaData = async (filter) => getStructuredMetaData(fontsPath, filter);
@@ -3,6 +3,7 @@ export * from './checksum.js';
3
3
  export * from './components.js';
4
4
  export * from './config.js';
5
5
  export * from './file.js';
6
+ export * from './fonts.js';
6
7
  export * from './migration.js';
7
8
  export * from './metadata.js';
8
9
  export * from './stdio.js';
@@ -3,6 +3,7 @@ export * from './checksum.js';
3
3
  export * from './components.js';
4
4
  export * from './config.js';
5
5
  export * from './file.js';
6
+ export * from './fonts.js';
6
7
  export * from './migration.js';
7
8
  export * from './metadata.js';
8
9
  export * from './stdio.js';
@@ -1 +1 @@
1
- f84502dc39564645a0c772c6f75681ea
1
+ b0cfd690fcc6a6634862f98820c5fb8c
@@ -18,7 +18,9 @@ npm install --save @synergy-design-system/assets
18
18
 
19
19
  ### Usage
20
20
 
21
- All assets are provided as svg's.
21
+ #### Images
22
+
23
+ All images are provided as svg's.
22
24
 
23
25
  The recommended way of using the icons is using the [<syn-icon> Synergy component](https://synergy-design-system.github.io/?path=/docs/components-syn-icon--docs). Here you will also get more information about how setting up the assets package on bundlers like vite.
24
26
 
@@ -26,7 +28,7 @@ The recommended way of using the icons is using the [<syn-icon> Synergy componen
26
28
  <syn-icon name="warning"></syn-icon>
27
29
  ```
28
30
 
29
- But the assets could also be used like following:
31
+ Images could also be used directly:
30
32
 
31
33
  ```html
32
34
  <img src="assets/icons/warning.svg" />
@@ -1,24 +1,181 @@
1
- # Migration to Synergy 3.0
1
+ # Synergy 3.0 Migration Guide
2
2
 
3
- This document outlines the changes and migration steps required to upgrade from Synergy 2.x to the new Synergy 3.0.
3
+ > ⚠️ **Migration in progress:** Some features may not be fully implemented yet. See the [GitHub migration board](https://github.com/orgs/synergy-design-system/projects/2/views/37) for updates.
4
4
 
5
- > Please note that this migration is still in progress, and some features may not be fully implemented yet. We recommend reviewing the [GitHub repository](https://github.com/orgs/synergy-design-system/projects/2/views/37) for the latest updates.
5
+ > It is currently not advised to use the new version in production, as we are still finalizing the migration process.
6
+ > However, you can start preparing your codebase for the upcoming changes.
6
7
 
7
- ## Roadmap
8
+ ---
8
9
 
9
- We are currently working on the migration to Synergy 3.0, which includes significant updates to the brand appearance, fonts and icon library.
10
- This migration will ensure that your application remains up-to-date with the latest design standards and functionality improvements.
10
+ ## Migration Checklist: Quick Overview
11
11
 
12
- It is currently not advised to use the new version in production, as we are still finalizing the migration process.
13
- However, you can start preparing your codebase for the upcoming changes.
12
+ - [ ] Update Synergy packages to the latest version
13
+ - [ ] Call `setSystemIconLibrary('sick2025')` before rendering components
14
+ - [ ] Copy new icons to `/assets/icons/`
15
+ - [ ] Import new CSS themes (`sick2025_light.css`, `sick2025_dark.css`)
16
+ - [ ] Update theme switching logic to use new class names
17
+ - [ ] Add SICK Intl font (via `@synergy-design-system/fonts`, CDN, or brand portal)
14
18
 
15
- A roadmap and current status of the migration can be found in our [GitHub repository](https://github.com/orgs/synergy-design-system/projects/2/views/37).
19
+ ---
16
20
 
17
- ## Breaking Changes
21
+ ## Release Highlights: Synergy 3.0
18
22
 
19
- ### Icons
23
+ - **Brand appearance:** Updated colors, roundings, and overall look
24
+ - **Fonts:** New SICK Intl font replaces Open Sans
25
+ - **Icon library:** New outline and filled icons, new naming
26
+ - **CSS tokens/themes:** New theme files and class names
20
27
 
21
- #### System Icon Library
28
+ ---
29
+
30
+ ## Migration Steps: Detailed Guide
31
+
32
+ ### 1. Update Synergy packages
33
+
34
+ Use your package manager to update all `@synergy-design-system/*` packages.
35
+ Also make sure to install `@synergy-design-system/fonts` for the new `SICK Intl` font.
36
+
37
+ ---
38
+
39
+ ### 2. Set the system icon library
40
+
41
+ Call `setSystemIconLibrary('sick2025')` before rendering any Synergy components.
42
+
43
+ **Example:**
44
+
45
+ ```js
46
+ import { setSystemIconLibrary } from "@synergy-design-system/components";
47
+ setSystemIconLibrary("sick2025");
48
+ ```
49
+
50
+ ---
51
+
52
+ ### 3. Copy new icons to your build output
53
+
54
+ Use your bundler (e.g., Vite) to copy icons from `@synergy-design-system/assets` to `/assets/icons/`.
55
+
56
+ **Example (Vite):**
57
+
58
+ ```js
59
+ viteStaticCopy({
60
+ targets: [
61
+ {
62
+ src: "node_modules/@synergy-design-system/assets/src/sick2025/outline/*",
63
+ dest: "./assets/icons/",
64
+ },
65
+ {
66
+ src: "node_modules/@synergy-design-system/assets/src/sick2025/fill/*",
67
+ dest: "./assets/icons/",
68
+ },
69
+ ],
70
+ });
71
+ ```
72
+
73
+ ---
74
+
75
+ ### 4. Import new CSS themes
76
+
77
+ Replace old theme imports with:
78
+
79
+ ```js
80
+ import "@synergy-design-system/tokens/themes/sick2025_light.css";
81
+ import "@synergy-design-system/tokens/themes/sick2025_dark.css";
82
+ ```
83
+
84
+ ---
85
+
86
+ ### 5. Update theme switching logic
87
+
88
+ Use new class names: `syn-sick2025-light` and `syn-sick2025-dark`.
89
+
90
+ **Example:**
91
+
92
+ ```js
93
+ // Theme switcher
94
+ const { body } = document;
95
+ if (body.classList.contains("syn-sick2025-dark")) {
96
+ body.classList.remove("syn-sick2025-dark");
97
+ body.classList.add("syn-sick2025-light");
98
+ } else {
99
+ body.classList.remove("syn-sick2025-light");
100
+ body.classList.add("syn-sick2025-dark");
101
+ }
102
+ ```
103
+
104
+ ---
105
+
106
+ ### 6. Add the SICK Intl font
107
+
108
+ Use one of the following options:
109
+
110
+ **Synergy fonts package (recommended):**
111
+
112
+ ```javascript
113
+ import "@synergy-design-system/fonts";
114
+ ```
115
+
116
+ **SICK CDN:**
117
+
118
+ ```css
119
+ @font-face {
120
+ font-display: swap;
121
+ font-family: "SICK Intl";
122
+ font-style: normal;
123
+ font-weight: 400;
124
+ src: url("https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Regular.woff2")
125
+ format("woff2");
126
+ }
127
+ @font-face {
128
+ font-display: swap;
129
+ font-family: "SICK Intl";
130
+ font-style: normal;
131
+ font-weight: 600;
132
+ src: url("https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Semibold.woff2")
133
+ format("woff2");
134
+ }
135
+ ```
136
+
137
+ **Brand portal:** Download and host the font yourself, then use a local path in `@font-face`.
138
+
139
+ ---
140
+
141
+ ## Migration: Breaking Changes & Details
142
+
143
+ ### Breaking Changes: Icons
144
+
145
+ - **System icon library:** Synergy now ships two system icon libraries for compatibility. Use `setSystemIconLibrary` to switch to the new set.
146
+ - **New SICK 2025 icons:** Outline and filled icons, new naming. Use `<syn-icon name="home">` and `<syn-icon name="home_fill">`.
147
+ - **Migration utilities:** Use `setupIcons("sick2025")` for easy migration, or `migrateIconName` for custom setups.
148
+
149
+ ### Breaking Changes: Tokens & Themes
150
+
151
+ - New theme files: `sick2025_light.css`, `sick2025_dark.css`
152
+ - New theme class names: `.syn-sick2025-light`, `.syn-sick2025-dark`
153
+ - Significant visual changes: colors, roundings, font
154
+
155
+ ### Breaking Changes: SICK Intl Fonts
156
+
157
+ - New font: SICK Intl (Regular 400, Semi Bold 600)
158
+ - Provided directly by Synergy via `@synergy-design-system/fonts`, CDN, or brand portal
159
+
160
+ ---
161
+
162
+ ## Migration: Troubleshooting
163
+
164
+ - **Icons not showing?** Check asset paths and icon names.
165
+ - **Fonts not loading?** Verify font-face URLs and file locations.
166
+ - **Theme not switching?** Check class names and CSS imports.
167
+
168
+ ---
169
+
170
+ ## Migration: References & Further Reading
171
+
172
+ - [Synergy Docs](https://synergy-design-system.github.io/)
173
+ - [SICK Brand Portal](https://brand.sick.com/document/145#/basiselemente/typografie/sick-intl)
174
+ - [GitHub migration board](https://github.com/orgs/synergy-design-system/projects/2/views/37)
175
+
176
+ ### Reference: Icons
177
+
178
+ #### Reference: System Icon Library
22
179
 
23
180
  Some Synergy components depend on a set of icons that must always be available. To make sure those components display correctly, even if the `@synergy-design-system/assets` package is not installed or configured properly, these icons are baked into Synergies core directly.
24
181
 
@@ -41,7 +198,7 @@ import { setSystemIconLibrary } from "@synergy-design-system/components";
41
198
  setSystemIconLibrary("sick2025");
42
199
  ```
43
200
 
44
- #### New SICK 2025 icons
201
+ #### Reference: New SICK 2025 Icons
45
202
 
46
203
  The new SICK 2025 theme comes with an updated icon library that includes both outline and filled versions of icons. These icons are available in the `@synergy-design-system/assets` package and can be used with the `<syn-icon>` or `<syn-icon-button>` component.
47
204
 
@@ -85,7 +242,7 @@ export default defineConfig({
85
242
  });
86
243
  ```
87
244
 
88
- #### Migrating to the new icon set without changing the icon names
245
+ #### Reference: Migrating Icon Names
89
246
 
90
247
  Applications that are migrating from Synergy 2 may have used icons that have been renamed in the migration process.
91
248
  Those icons will **not** show up after the switch to the new icon library.
@@ -147,7 +304,7 @@ registerIconLibrary("default", customIconLibrary);
147
304
  setSystemIconLibrary("sick2025");
148
305
  ```
149
306
 
150
- ### Tokens
307
+ ### Reference: Tokens & Themes
151
308
 
152
309
  Synergy 3.0 introduces new CSS theme files that implement the updated SICK brand appearance:
153
310
 
@@ -195,11 +352,11 @@ To use the new themes in your application:
195
352
  };
196
353
  ```
197
354
 
198
- ### Fonts
355
+ ### Reference: SICK Intl Fonts
199
356
 
200
357
  The SICK 2025 theme introduces a new typeface called **SICK Intl** that replaces the previously used Open Sans font. When migrating to Synergy 3.0 with the SICK 2025 theme, you'll need to ensure this font is properly loaded in your application.
201
358
 
202
- > **Important**: Synergy does **not provide** the SICK Intl font directly. You need to include it in your own project.
359
+ > **Important**: The SICK Intl font is now provided via the dedicated `@synergy-design-system/fonts` package for easy integration.
203
360
 
204
361
  #### Font Requirements
205
362
 
@@ -212,32 +369,35 @@ For detailed information about when and how to use the different font styles, re
212
369
 
213
370
  #### Usage
214
371
 
215
- You have several options to include the SICK Intl font in your project:
372
+ You have several options to include the SICK Intl font in your project.
373
+ Each of those has its own advantages.
216
374
 
217
- ##### Option 1: Local Installation
375
+ | Option | Advantages | Disadvantages |
376
+ | :---------------- | :--------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
377
+ | Fonts Package | Easy integration, works offline, updates under your control, automatic CSS imports | Requires npm package installation. |
378
+ | CDN | Fast delivery when online, automatic update via CDN | Only works for services that have online connection, font updates may break application layouts. |
379
+ | Brand&nbsp;Portal | Installation from the official source | File exports (other than the original TTF) from the official source are currently misaligned, leading to issues with vertical alignment, especially for components that support or use icons. |
218
380
 
219
- 1. Download the `SICK Intl` font from the [SICK Brand Portal](https://brand.sick.com/document/145#/basiselemente/typografie/sick-intl)
220
- 2. Extract the ZIP file to a location accessible by your project (e.g., a `public` folder)
221
- 3. Add the following CSS to your project (replace `PUBLIC_PATH` with your actual path):
381
+ > If you are not sure, we recommend you to use Option 1 as outlined below.
222
382
 
223
- ```css
224
- @font-face {
225
- font-display: swap;
226
- font-family: "SICK Intl";
227
- font-style: normal;
228
- font-weight: 400;
229
- src: url("/PUBLIC_PATH/SICKIntl/SICKIntl-Regular.ttf") format("truetype");
230
- }
383
+ ##### Option 1: Using @synergy-design-system/fonts (Recommended!)
231
384
 
232
- @font-face {
233
- font-display: swap;
234
- font-family: "SICK Intl";
235
- font-style: normal;
236
- font-weight: 600;
237
- src: url("/PUBLIC_PATH/SICKIntl/SICKIntl-Semibold.ttf") format("truetype");
238
- }
385
+ Synergy now provides the SICK Intl font via the dedicated `@synergy-design-system/fonts` package.
386
+
387
+ **Installation:**
388
+
389
+ ```bash
390
+ npm install @synergy-design-system/fonts
391
+ ```
392
+
393
+ **Usage:**
394
+
395
+ ```javascript
396
+ import "@synergy-design-system/fonts";
239
397
  ```
240
398
 
399
+ This automatically imports all required font-face declarations and makes the SICK Intl font available in your application.
400
+
241
401
  ##### Option 2: Using the SICK CDN
242
402
 
243
403
  For the quickest setup, load the fonts directly from the SICK CDN:
@@ -249,11 +409,8 @@ For the quickest setup, load the fonts directly from the SICK CDN:
249
409
  font-family: "SICK Intl";
250
410
  font-style: normal;
251
411
  font-weight: 400;
252
- src:
253
- url("https://www.sick.com/media/fonts/sickintl-v1/regular/SICKIntl-Regular.woff2")
254
- format("woff2"),
255
- url("https://www.sick.com/media/fonts/sickintl-v1/regular/SICKIntl-Regular.ttf")
256
- format("truetype");
412
+ src: url("https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Regular.woff2")
413
+ format("woff2");
257
414
  }
258
415
 
259
416
  /* Semi Bold */
@@ -262,11 +419,8 @@ For the quickest setup, load the fonts directly from the SICK CDN:
262
419
  font-family: "SICK Intl";
263
420
  font-style: normal;
264
421
  font-weight: 600;
265
- src:
266
- url("https://www.sick.com/media/fonts/sickintl-v1/semibold/SICKIntl-Semibold.woff2")
267
- format("woff2"),
268
- url("https://www.sick.com/media/fonts/sickintl-v1/semibold/SICKIntl-Semibold.ttf")
269
- format("truetype");
422
+ src: url("https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Semibold.woff2")
423
+ format("woff2");
270
424
  }
271
425
  ```
272
426
 
@@ -275,13 +429,44 @@ For better performance, you can also preload the font:
275
429
  ```html
276
430
  <link
277
431
  rel="preload"
278
- href="https://www.sick.com/media/fonts/sickintl-v1/regular/SICKIntl-Regular.woff2"
432
+ href="https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Regular.woff2"
433
+ as="font"
434
+ type="font/woff2"
435
+ crossorigin
436
+ />
437
+ <link
438
+ rel="preload"
439
+ href="https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Semibold.woff2"
279
440
  as="font"
280
441
  type="font/woff2"
281
442
  crossorigin
282
443
  />
283
444
  ```
284
445
 
446
+ ##### Option 3: Local Installation from brand portal (not recommended!)
447
+
448
+ 1. Download the `SICK Intl` font from the [SICK Brand Portal](https://brand.sick.com/document/145#/basiselemente/typografie/sick-intl)
449
+ 2. Extract the ZIP file to a location accessible by your project (e.g., a `public` folder)
450
+ 3. Add the following CSS to your project (replace `PUBLIC_PATH` with your actual path):
451
+
452
+ ```css
453
+ @font-face {
454
+ font-display: swap;
455
+ font-family: "SICK Intl";
456
+ font-style: normal;
457
+ font-weight: 400;
458
+ src: url("/PUBLIC_PATH/SICKIntl/SICKIntl-Regular.ttf") format("truetype");
459
+ }
460
+
461
+ @font-face {
462
+ font-display: swap;
463
+ font-family: "SICK Intl";
464
+ font-style: normal;
465
+ font-weight: 600;
466
+ src: url("/PUBLIC_PATH/SICKIntl/SICKIntl-Semibold.ttf") format("truetype");
467
+ }
468
+ ```
469
+
285
470
  ## Migration Steps
286
471
 
287
472
  These steps are only needed when switching to the new Synergy 3.0 layout.
@@ -291,4 +476,4 @@ These steps are only needed when switching to the new Synergy 3.0 layout.
291
476
  3. Adjust your bundler to copy the new icons to your build output. This is necessary to ensure that the new icons are available in your application.
292
477
  4. **Update CSS theme imports** to use the new `sick2025_light.css` and `sick2025_dark.css` files instead of the legacy theme files.
293
478
  5. **Update theme class names** in your JavaScript theme switching logic to use `syn-sick2025-light` and `syn-sick2025-dark`.
294
- 6. **Add the SICK Intl font** by either downloading it locally or using the SICK CDN. Add the required `@font-face` declarations for Regular (400) and Semi Bold (600) weights to ensure proper typography rendering.
479
+ 6. **Add the SICK Intl font** by either using the dedicated `@synergy-design-system/fonts` package (recommended), using the SICK CDN, or downloading it locally. The fonts package automatically provides all required font-face declarations for Regular (400) and Semi Bold (600) weights.
@@ -0,0 +1,12 @@
1
+ # Changelog
2
+
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#1099](https://github.com/synergy-design-system/synergy-design-system/pull/1099) [`fc1e550`](https://github.com/synergy-design-system/synergy-design-system/commit/fc1e550fb4aa28eabf0bef6b089993a1dd939ff2) Thanks [@schilchSICKAG](https://github.com/schilchSICKAG)! - Released on: 2025-12-04
8
+
9
+ feat: ✨ add sick intl to fonts (#1085)
10
+
11
+ Add an optimized variant of the `SICK Intl` font as a shared asset to the new `@synergy-design-system/fonts` package.
12
+ It also adds the fonts package to the Synergy MCP server.
@@ -0,0 +1,157 @@
1
+ # @synergy-design-system/fonts
2
+
3
+ This package provides the SICK Intl font family required for Synergy 3.0 and later versions. The font is distributed with pre-built CSS files for easy integration into any project.
4
+
5
+ ## Installation
6
+
7
+ Install the fonts package as a dependency:
8
+
9
+ ```bash
10
+ npm install --save @synergy-design-system/fonts
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ### Basic Usage
16
+
17
+ Import the complete font family with all weights:
18
+
19
+ ```javascript
20
+ // The default export will load SICK Intl automatically.
21
+ import "@synergy-design-system/fonts";
22
+
23
+ // You may also use a direct import instead.
24
+ // Use this if your bundler does not understand JavaScript module syntax
25
+ import "@synergy-design-system/fonts/src/sick-intl/font.css";
26
+ ```
27
+
28
+ This will load both Regular (400) and Semi Bold (600) font weights with proper `@font-face` declarations.
29
+
30
+ ### CSS Import
31
+
32
+ If you prefer CSS imports, you can use:
33
+
34
+ ```css
35
+ @import "@synergy-design-system/fonts/src/sick-intl/font.css";
36
+ ```
37
+
38
+ ### Inline Base64 Version (Self-Contained)
39
+
40
+ For applications that need **fully self-contained CSS without external font file dependencies**, use the automatically generated inline version:
41
+
42
+ ```javascript
43
+ import "@synergy-design-system/fonts/sick-intl-inline.css";
44
+ ```
45
+
46
+ This version includes the font files as base64-encoded data URIs directly in the CSS, eliminating the need for separate font file hosting. **Note:** This increases CSS file size but removes external dependencies.
47
+
48
+ ### Framework Examples
49
+
50
+ #### Vite
51
+
52
+ ```javascript
53
+ // main.tsx
54
+ import "@synergy-design-system/fonts";
55
+ ```
56
+
57
+ #### Angular
58
+
59
+ ```json
60
+ // In angular.json
61
+ "styles": [
62
+ "@synergy-design-system/fonts/src/sick-intl/font.css",
63
+ ]
64
+ ```
65
+
66
+ ### CSS Usage
67
+
68
+ After importing the fonts, use the `SICK Intl` font family in your CSS:
69
+
70
+ ```css
71
+ body {
72
+ font-family:
73
+ "SICK Intl",
74
+ -apple-system,
75
+ BlinkMacSystemFont,
76
+ sans-serif;
77
+ }
78
+
79
+ .heading {
80
+ font-family: "SICK Intl";
81
+ font-weight: 600; /* Semi Bold */
82
+ }
83
+
84
+ .body-text {
85
+ font-family: "SICK Intl";
86
+ font-weight: 400; /* Regular */
87
+ }
88
+ ```
89
+
90
+ ## Available Font Weights
91
+
92
+ - **400 (Regular):** Used for body text and standard content
93
+ - **600 (Semi Bold):** Used for headings, emphasized text, and UI elements
94
+
95
+ ## File Structure
96
+
97
+ ```
98
+ dist/
99
+ ├── sick-intl-inline.css # Base64 inline version (git ignored)
100
+ src/
101
+ └── sick-intl/
102
+ ├── font.css # Default font face definitions
103
+ ├── SICKIntl-Regular.woff2 # Regular font
104
+ └── SICKIntl-SemiBold.woff2 # Semibold font
105
+ ```
106
+
107
+ ## Browser Support
108
+
109
+ The font files are provided in WOFF2 format, which is supported by:
110
+
111
+ - Chrome 36+
112
+ - Firefox 39+
113
+ - Safari 12+
114
+ - Edge 14+
115
+
116
+ For older browser support, consider using the CDN version or hosting additional font formats.
117
+
118
+ ## CDN Alternative
119
+
120
+ If you prefer not to bundle fonts with your application, you can load them from the SICK CDN:
121
+
122
+ ```css
123
+ @font-face {
124
+ font-display: swap;
125
+ font-family: "SICK Intl";
126
+ font-style: normal;
127
+ font-weight: 400;
128
+ src: url("https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Regular.woff2")
129
+ format("woff2");
130
+ }
131
+
132
+ @font-face {
133
+ font-display: swap;
134
+ font-family: "SICK Intl";
135
+ font-style: normal;
136
+ font-weight: 600;
137
+ src: url("https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Semibold.woff2")
138
+ format("woff2");
139
+ }
140
+ ```
141
+
142
+ ## Performance Considerations
143
+
144
+ - **Standard version:** Loads font files separately, better for caching
145
+ - **Inline version:** Self-contained but larger CSS file size
146
+ - **CDN version:** Fastest initial load but requires network connectivity
147
+
148
+ ---
149
+
150
+ ## Development
151
+
152
+ This package uses PostCSS to generate multiple font distribution formats:
153
+
154
+ - Standard CSS with external font files
155
+ - Base64 inline CSS for self-contained usage
156
+
157
+ The inline version is automatically generated during build and includes the font files as data URIs.
@@ -0,0 +1,72 @@
1
+ {
2
+ "author": {
3
+ "name": "SICK Global UX Foundation",
4
+ "url": "https://www.sick.com"
5
+ },
6
+ "description": "Fonts for Synergy, the SICK Design System",
7
+ "devDependencies": {
8
+ "@synergy-design-system/eslint-config-syn": "workspace:^",
9
+ "@synergy-design-system/stylelint-config-syn": "workspace:^",
10
+ "eslint": "^8.57.1",
11
+ "ora": "^8.2.0",
12
+ "postcss": "^8.5.6",
13
+ "postcss-header": "^3.0.3",
14
+ "postcss-import": "^16.1.1",
15
+ "postcss-url": "^10.1.3",
16
+ "stylelint": "^16.24.0"
17
+ },
18
+ "exports": {
19
+ ".": {
20
+ "import": "./src/sick-intl/font.css",
21
+ "default": "./src/sick-intl/font.css"
22
+ },
23
+ "./sick-intl.css": {
24
+ "import": "./src/sick-intl/font.css",
25
+ "default": "./src/sick-intl/font.css"
26
+ },
27
+ "./sick-intl-inline.css": {
28
+ "import": "./dist/sick-intl-inline.css",
29
+ "default": "./dist/sick-intl-inline.css"
30
+ },
31
+ "./src/*": {
32
+ "import": "./src/*",
33
+ "default": "./src/*"
34
+ },
35
+ "./dist/*": {
36
+ "import": "./dist/*",
37
+ "default": "./dist/*"
38
+ },
39
+ "./package.json": {
40
+ "import": "./package.json",
41
+ "default": "./package.json"
42
+ }
43
+ },
44
+ "files": [
45
+ "dist",
46
+ "src",
47
+ "CHANGELOG.md",
48
+ "NOTICE"
49
+ ],
50
+ "homepage": "https://synergy-design-system.github.io",
51
+ "keywords": [
52
+ "SDS",
53
+ "SICK",
54
+ "Synergy Design System",
55
+ "SICK Fonts"
56
+ ],
57
+ "license": "MIT",
58
+ "name": "@synergy-design-system/fonts",
59
+ "repository": {
60
+ "type": "git",
61
+ "url": "https://github.com/synergy-design-system/synergy-design-system.git",
62
+ "directory": "packages/fonts"
63
+ },
64
+ "scripts": {
65
+ "build": "node scripts/build.js",
66
+ "lint:css": "stylelint \"src/**/*.css\"",
67
+ "lint:js": "eslint .",
68
+ "lint": "pnpm run /^lint:.*/"
69
+ },
70
+ "type": "module",
71
+ "version": "1.0.0"
72
+ }
@@ -0,0 +1,4 @@
1
+ # Rules for chatbots and llms
2
+
3
+ - Synergy Version 3 uses `SICK Intl` as its font, whereas older Versions use `Open Sans`.
4
+ - Prefer the use of `@synergy-design-system/fonts` for setups
@@ -2,27 +2,131 @@
2
2
 
3
3
  ## Fonts
4
4
 
5
- Depending on the used theme (either SICK 2018 or SICK 2025) the Synergy Design System makes use of a specific typeface:
5
+ Synergy Design System uses these typefaces:
6
6
 
7
7
  | Theme | Typeface |
8
8
  | --------- | ----------- |
9
9
  | SICK 2018 | `Open Sans` |
10
10
  | SICK 2025 | `SICK Intl` |
11
11
 
12
- For the SICK 2025 theme there are some rules, how and when to use the different styles (like regular, semi-bold, bold, ...). For more information about this, have a look at the [SICK Brand Portal](https://brand.sick.com/document/145#/basiselemente/typografie/sick-intl).
12
+ For SICK 2025, see [SICK Brand Portal](https://brand.sick.com/document/145#/basiselemente/typografie/sick-intl) for style usage (regular, semi-bold, etc).
13
13
 
14
- Because there are various ways of loading fonts, depending on used bundler, pre- and postprocessors and usage of a CDN, Synergy does **not provide** this font.
15
- You need to include it into your own project.
14
+ ---
16
15
 
17
- The following information may be helpful to get you started including your own copy of `Open Sans` or `SICK Intl` in your project for quicker bootstrapping:
16
+ ## SICK 2018 Theme (Open Sans)
18
17
 
19
- ### Local Installation
18
+ ### Using `@fontsource` npm packages (Recommended)
20
19
 
21
- #### SICK 2018
20
+ Install the `@fontsource/open-sans` package into your project:
21
+
22
+ ```bash
23
+ npm install @fontsource/open-sans
24
+ ```
25
+
26
+ #### Vite/Webpack
27
+
28
+ ```javascript
29
+ import "@fontsource/open-sans/400.css";
30
+ import "@fontsource/open-sans/400-italic.css";
31
+ import "@fontsource/open-sans/600.css";
32
+ import "@fontsource/open-sans/600-italic.css";
33
+ import "@fontsource/open-sans/700.css";
34
+ import "@fontsource/open-sans/700-italic.css";
35
+ ```
36
+
37
+ #### Angular
38
+
39
+ Add to your `angular.json` file:
40
+
41
+ ```json
42
+ {
43
+ "projects": {
44
+ "project_name": {
45
+ "architect": {
46
+ "build": {
47
+ "options": {
48
+ "styles": [
49
+ "@fontsource/open-sans/400.css",
50
+ "@fontsource/open-sans/400-italic.css",
51
+ "@fontsource/open-sans/600.css",
52
+ "@fontsource/open-sans/600-italic.css",
53
+ "@fontsource/open-sans/700.css",
54
+ "@fontsource/open-sans/700-italic.css"
55
+ ]
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ ### Using SICK CDN for Open Sans
65
+
66
+ ```css
67
+ /* Regular */
68
+ @font-face {
69
+ font-display: swap;
70
+ font-family: "Open Sans";
71
+ font-style: normal;
72
+ font-weight: 400;
73
+ src:
74
+ url("https://www.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff2")
75
+ format("woff2"),
76
+ url("https://www.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff")
77
+ format("woff"),
78
+ url("https://www.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.ttf")
79
+ format("truetype");
80
+ }
81
+
82
+ /* Semi Bold */
83
+ @font-face {
84
+ font-display: swap;
85
+ font-family: "Open Sans";
86
+ font-style: normal;
87
+ font-weight: 600;
88
+ src:
89
+ url("https://www.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.woff2")
90
+ format("woff2"),
91
+ url("https://www.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.woff")
92
+ format("woff"),
93
+ url("https://www.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.ttf")
94
+ format("truetype");
95
+ }
96
+
97
+ /* Bold */
98
+ @font-face {
99
+ font-display: swap;
100
+ font-family: "Open Sans";
101
+ font-style: normal;
102
+ font-weight: 700;
103
+ src:
104
+ url("https://www.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.woff2")
105
+ format("woff2"),
106
+ url("https://www.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.woff")
107
+ format("woff"),
108
+ url("https://www.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.ttf")
109
+ format("truetype");
110
+ }
111
+ ```
112
+
113
+ For better performance, add this preload to your HTML:
114
+
115
+ ```html
116
+ <link
117
+ rel="preload"
118
+ href="https://www.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff2"
119
+ as="font"
120
+ type="font/woff2"
121
+ crossorigin
122
+ />
123
+ ```
124
+
125
+ ### Manual Installation
22
126
 
23
127
  1. Download the `Open Sans` font from the [SICK Brand Portal](https://brand.sick.com/document/49#/-/resources-1).
24
128
  2. Extract the ZIP file to a destination reachable by your project (e.g. a `public` folder).
25
- 3. Include the font in your project by adding the following CSS to your project (where `PUBLIC_PATH` is the path to the folder containing the font files).
129
+ 3. Include the font in your project by adding the following CSS (where `PUBLIC_PATH` is the path to the folder containing the font files):
26
130
 
27
131
  ```css
28
132
  @font-face {
@@ -75,56 +179,34 @@ The following information may be helpful to get you started including your own c
75
179
  }
76
180
  ```
77
181
 
78
- #### SICK 2025
182
+ ---
79
183
 
80
- 1. Download the `SICK Intl` font from the [SICK Brand Portal](https://brand.sick.com/document/145#/basiselemente/typografie/sick-intl).
81
- 2. Extract the ZIP file to a destination reachable by your project (e.g. a `public` folder).
82
- 3. Include the font in your project by adding the following CSS to your project (where `PUBLIC_PATH` is the path to the folder containing the font files).
184
+ ## SICK 2025 Theme (SICK Intl)
83
185
 
84
- ```css
85
- @font-face {
86
- font-display: swap;
87
- font-family: "SICK Intl";
88
- font-style: normal;
89
- font-weight: 400;
90
- src: url("/PUBLIC_PATH/SICKIntl/SICKIntl-Regular.ttf") format("truetype");
91
- }
186
+ ### Using @synergy-design-system/fonts (Recommended)
92
187
 
93
- @font-face {
94
- font-display: swap;
95
- font-family: "SICK Intl";
96
- font-style: normal;
97
- font-weight: 600;
98
- src: url("/PUBLIC_PATH/SICKIntl/SICKIntl-Semibold.ttf") format("truetype");
99
- }
100
- ```
101
-
102
- ### Installing via local npm package (e.g. for vite or webpack based setups)
188
+ Install the fonts package:
103
189
 
104
- #### SICK 2018
190
+ ```bash
191
+ npm install @synergy-design-system/fonts
192
+ ```
105
193
 
106
- 1. Install the `@fontsource/open-sans` package into your project.
107
- 2. Include the font in your project by adding the following import statements to your project:
194
+ #### Vite/Webpack
108
195
 
109
- ```js
110
- import "@fontsource/open-sans/400.css";
111
- import "@fontsource/open-sans/400-italic.css";
112
- import "@fontsource/open-sans/600.css";
113
- import "@fontsource/open-sans/600-italic.css";
114
- import "@fontsource/open-sans/700.css";
115
- import "@fontsource/open-sans/700-italic.css";
196
+ ```javascript
197
+ import "@synergy-design-system/fonts";
116
198
  ```
117
199
 
118
- #### SICK 2025
119
-
120
- There is no way to install the `SICK Intl` typeface via a npm package as it is not available.
200
+ #### Angular
121
201
 
122
- ### Installing via local npm package (angular)
202
+ Import in your main styles file:
123
203
 
124
- #### SICK 2018
204
+ ```css
205
+ /* styles.css */
206
+ @import "@synergy-design-system/fonts";
207
+ ```
125
208
 
126
- 1. Install the `@fontsource/open-sans` package into your project.
127
- 2. Adjust your `angular.json` file to include the needed stylesheets (where project_name is the name of your project):
209
+ Or add to your `angular.json` file:
128
210
 
129
211
  ```json
130
212
  {
@@ -133,14 +215,7 @@ There is no way to install the `SICK Intl` typeface via a npm package as it is n
133
215
  "architect": {
134
216
  "build": {
135
217
  "options": {
136
- "styles": [
137
- "@fontsource/open-sans/400.css",
138
- "@fontsource/open-sans/400-italic.css",
139
- "@fontsource/open-sans/600.css",
140
- "@fontsource/open-sans/600-italic.css",
141
- "@fontsource/open-sans/700.css",
142
- "@fontsource/open-sans/700-italic.css"
143
- ]
218
+ "styles": ["@synergy-design-system/fonts/src/sick-intl/font.css"]
144
219
  }
145
220
  }
146
221
  }
@@ -149,114 +224,96 @@ There is no way to install the `SICK Intl` typeface via a npm package as it is n
149
224
  }
150
225
  ```
151
226
 
152
- #### SICK 2025
153
-
154
- There is no way to install the `SICK Intl` typeface via a npm package as it is not available.
155
-
156
- ### Using the SICK CDN
157
-
158
- This is the simplest default font behavior. The typefaces are loaded from the SICK CDN.
159
-
160
- #### SICK 2018
227
+ ### Using SICK CDN
161
228
 
162
229
  ```css
163
230
  /* Regular */
164
231
  @font-face {
165
232
  font-display: swap;
166
- font-family: "Open Sans";
233
+ font-family: "SICK Intl";
167
234
  font-style: normal;
168
235
  font-weight: 400;
169
- src:
170
- url("https://www.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff2")
171
- format("woff2"),
172
- url("https://www.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff")
173
- format("woff"),
174
- url("https://www.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.ttf")
175
- format("truetype");
236
+ src: url("https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Regular.woff2")
237
+ format("woff2");
176
238
  }
177
239
 
178
240
  /* Semi Bold */
179
241
  @font-face {
180
242
  font-display: swap;
181
- font-family: "Open Sans";
243
+ font-family: "SICK Intl";
182
244
  font-style: normal;
183
245
  font-weight: 600;
184
- src:
185
- url("https://www.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.woff2")
186
- format("woff2"),
187
- url("https://www.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.woff")
188
- format("woff"),
189
- url("https://www.sick.com/media/fonts/opensans-v1/SemiBold/OpenSans-SemiBold.ttf")
190
- format("truetype");
191
- }
192
-
193
- /* Bold */
194
- @font-face {
195
- font-display: swap;
196
- font-family: "Open Sans";
197
- font-style: normal;
198
- font-weight: 700;
199
- src:
200
- url("https://www.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.woff2")
201
- format("woff2"),
202
- url("https://www.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.woff")
203
- format("woff"),
204
- url("https://www.sick.com/media/fonts/opensans-v1/Bold/OpenSans-Bold.ttf")
205
- format("truetype");
246
+ src: url("https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Semibold.woff2")
247
+ format("woff2");
206
248
  }
207
249
  ```
208
250
 
209
- For better performance, you may also add the following statement to your HTML:
251
+ For better performance, add this preload to your HTML:
210
252
 
211
253
  ```html
212
254
  <link
213
255
  rel="preload"
214
- href="https://www.sick.com/media/fonts/opensans-v1/Regular/OpenSans-Regular.woff2"
256
+ href="https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Regular.woff2"
257
+ as="font"
258
+ type="font/woff2"
259
+ crossorigin
260
+ />
261
+ <link
262
+ rel="preload"
263
+ href="https://www.sick.com/media/fonts/sickintl-v2/SICKIntl-Semibold.woff2"
215
264
  as="font"
216
265
  type="font/woff2"
217
266
  crossorigin
218
267
  />
219
268
  ```
220
269
 
221
- #### SICK 2025
270
+ ### Manual Installation
271
+
272
+ 1. Install `@synergy-design-system/fonts`.
273
+ 2. Copy the font from `node_modules/@synergy-design-system/fonts/src/sick-intl` to a destination reachable by your project (e.g. a public folder).
274
+ 3. Include the font with custom CSS (where `PUBLIC_PATH` is the path to the folder containing the font files):
222
275
 
223
276
  ```css
224
- /* Regular */
225
277
  @font-face {
226
278
  font-display: swap;
227
- font-family: "Open Sans";
279
+ font-family: "SICK Intl";
228
280
  font-style: normal;
229
281
  font-weight: 400;
230
- src:
231
- url("https://www.sick.com/media/fonts/sickintl-v1/regular/SICKIntl-Regular.woff2")
232
- format("woff2"),
233
- url("https://www.sick.com/media/fonts/sickintl-v1/regular/SICKIntl-Regular.ttf")
234
- format("truetype");
282
+ src: url("/PUBLIC_PATH/sick-intl/SICKIntl-Regular.woff2") format("woff2");
235
283
  }
236
284
 
237
- /* Semi Bold */
238
285
  @font-face {
239
286
  font-display: swap;
240
- font-family: "Open Sans";
287
+ font-family: "SICK Intl";
241
288
  font-style: normal;
242
289
  font-weight: 600;
243
- src:
244
- url("https://www.sick.com/media/fonts/sickintl-v1/semibold/SICKIntl-Semibold.woff2")
245
- format("woff2"),
246
- format("woff"),
247
- url("https://www.sick.com/media/fonts/sickintl-v1/semibold/SICKIntl-Semibold.ttf")
248
- format("truetype");
290
+ src: url("/PUBLIC_PATH/sick-intl/SICKIntl-Semibold.woff2") format("woff2");
249
291
  }
250
292
  ```
251
293
 
252
- For better performance, you may also add the following statement to your HTML:
294
+ ### Manual Installation (Angular)
253
295
 
254
- ```html
255
- <link
256
- rel="preload"
257
- href="https://www.sick.com/media/fonts/sickintl-v1/regular/SICKIntl-Regular.woff2"
258
- as="font"
259
- type="font/woff2"
260
- crossorigin
261
- />
296
+ 1. Install the `@synergy-design-system/fonts` package.
297
+ 2. Configure your `angular.json` file to include the fonts:
298
+
299
+ ```json
300
+ {
301
+ "projects": {
302
+ "project_name": {
303
+ "architect": {
304
+ "build": {
305
+ "options": {
306
+ "assets": [
307
+ {
308
+ "glob": "**/*",
309
+ "input": "./node_modules/@synergy-design-system/fonts/src/sick-intl",
310
+ "output": "/assets/fonts"
311
+ }
312
+ ]
313
+ }
314
+ }
315
+ }
316
+ }
317
+ }
318
+ }
262
319
  ```
package/package.json CHANGED
@@ -28,9 +28,10 @@
28
28
  "serve-handler": "^6.1.6",
29
29
  "ts-jest": "^29.4.0",
30
30
  "typescript": "^5.9.3",
31
- "@synergy-design-system/docs": "0.1.0",
32
31
  "@synergy-design-system/components": "2.68.0",
32
+ "@synergy-design-system/docs": "0.1.0",
33
33
  "@synergy-design-system/eslint-config-syn": "^0.1.0",
34
+ "@synergy-design-system/fonts": "1.0.0",
34
35
  "@synergy-design-system/styles": "1.9.0",
35
36
  "@synergy-design-system/tokens": "^2.45.0"
36
37
  },
@@ -66,7 +67,7 @@
66
67
  "directory": "packages/mcp"
67
68
  },
68
69
  "type": "module",
69
- "version": "1.31.0",
70
+ "version": "1.32.0",
70
71
  "scripts": {
71
72
  "build": "pnpm run build:ts && pnpm run build:metadata && pnpm build:hash",
72
73
  "build:all": "pnpm run build && pnpm run build:storybook",