@patternfly/design-tokens 1.13.1 → 1.14.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/build/css/tokens-charts-dark.scss +2 -2
- package/build/css/tokens-charts.scss +2 -2
- package/build/css/tokens-dark.scss +21 -5
- package/build/css/tokens-default.scss +90 -30
- package/build/css/tokens-highcontrast-dark.scss +392 -0
- package/build/css/tokens-highcontrast.scss +427 -0
- package/build/css/tokens-palette.scss +8 -2
- package/build.js +15 -1
- package/config.highcontrast.dark.json +23 -0
- package/config.highcontrast.json +24 -0
- package/config.palette-colors.json +1 -1
- package/package.json +1 -1
- package/patternfly-docs/content/token-layers-dark.json +4308 -966
- package/patternfly-docs/content/token-layers-default.json +4382 -1485
- package/patternfly-docs/content/tokensTable.css +16 -3
- package/patternfly-docs/content/tokensTable.js +7 -5
- package/plugins/export-patternfly-tokens/dist/code.js +87 -0
- package/plugins/export-patternfly-tokens/dist/ui.html +34212 -0
- package/plugins/export-patternfly-tokens/src/ui.tsx +12 -4
- package/tokens/dark/base.dark.json +36 -0
- package/tokens/dark/charts.dark.json +8 -8
- package/tokens/dark/palette.color.json +24 -0
- package/tokens/dark/semantic.dark.json +51 -9
- package/tokens/default/base.dimension.json +38 -6
- package/tokens/default/base.json +171 -3
- package/tokens/default/charts.json +8 -8
- package/tokens/default/palette.color.json +24 -0
- package/tokens/default/semantic.dimension.json +69 -48
- package/tokens/default/semantic.json +51 -9
- package/tokens/default/semantic.motion.json +28 -28
- package/tokens/highcontrast/base.json +559 -0
- package/tokens/highcontrast/palette.color.json +319 -0
- package/tokens/highcontrast/semantic.highcontrast.json +1758 -0
- package/tokens/highcontrast-dark/base.dark.json +421 -0
- package/tokens/highcontrast-dark/palette.color.json +319 -0
- package/tokens/highcontrast-dark/semantic.highcontrast.dark.json +1758 -0
|
@@ -2,14 +2,27 @@
|
|
|
2
2
|
height: 1em;
|
|
3
3
|
display: inline-block;
|
|
4
4
|
aspect-ratio: 1 / 1;
|
|
5
|
-
border-radius:
|
|
5
|
+
border-radius: var(--pf-t--global--border--radius--pill);
|
|
6
6
|
border: var(--pf-t--global--border--width--regular) solid var(--pf-t--global--background--color--inverse--default);
|
|
7
7
|
box-shadow: var(--pf-t--global--box-shadow--sm);
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
@media (min-width: 1200px) {
|
|
11
11
|
.tokens-table-outer-wrapper {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/* Allow table to break out of artificial max-width, fill available space */
|
|
13
|
+
width: calc(
|
|
14
|
+
100vw -
|
|
15
|
+
var(--pf-v6-c-page__sidebar--Width) -
|
|
16
|
+
var(--pf-v6-c-page__main-container--MarginInlineEnd) -
|
|
17
|
+
var(--pf-v6-c-page__main-section--PaddingInlineStart) -
|
|
18
|
+
var(--pf-v6-c-page__main-section--PaddingInlineEnd)
|
|
19
|
+
);
|
|
20
|
+
max-width: calc(
|
|
21
|
+
100vw -
|
|
22
|
+
var(--pf-v6-c-page__sidebar--Width) -
|
|
23
|
+
var(--pf-v6-c-page__main-container--MarginInlineEnd) -
|
|
24
|
+
var(--pf-v6-c-page__main-section--PaddingInlineStart) -
|
|
25
|
+
var(--pf-v6-c-page__main-section--PaddingInlineEnd)
|
|
26
|
+
);
|
|
14
27
|
}
|
|
15
28
|
}
|
|
@@ -43,8 +43,9 @@ const getTokenChain = (themeTokenData) => {
|
|
|
43
43
|
return tokenChain;
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
-
const showTokenChain = (themeTokenData) => {
|
|
47
|
-
|
|
46
|
+
const showTokenChain = (themeTokenData, hasReferences) => {
|
|
47
|
+
// Show final value if isColorToken but no references - otherwise color value not displayed in table
|
|
48
|
+
const tokenChain = hasReferences ? getTokenChain(themeTokenData) : [themeTokenData.value];
|
|
48
49
|
return (
|
|
49
50
|
<div>
|
|
50
51
|
{tokenChain.map((nextValue, index) => (
|
|
@@ -158,6 +159,7 @@ export const TokensTable = ({ tokenJson, formatThemeText = capitalize }) => {
|
|
|
158
159
|
const hasReferences = tokenThemesArr.some(([_themeName, themeToken]) =>
|
|
159
160
|
themeToken.hasOwnProperty('references')
|
|
160
161
|
);
|
|
162
|
+
const isColorToken = tokenThemesArr[0][1].type === 'color';
|
|
161
163
|
const tokenDescription = tokenThemesArr[0][1].description;
|
|
162
164
|
|
|
163
165
|
return (
|
|
@@ -166,7 +168,7 @@ export const TokensTable = ({ tokenJson, formatThemeText = capitalize }) => {
|
|
|
166
168
|
{/* Expandable row icon */}
|
|
167
169
|
<Td
|
|
168
170
|
expand={
|
|
169
|
-
hasReferences
|
|
171
|
+
hasReferences || isColorToken
|
|
170
172
|
? {
|
|
171
173
|
rowIndex,
|
|
172
174
|
isExpanded: isTokenExpanded(tokenName),
|
|
@@ -214,7 +216,7 @@ export const TokensTable = ({ tokenJson, formatThemeText = capitalize }) => {
|
|
|
214
216
|
</Tr>
|
|
215
217
|
|
|
216
218
|
{/* Expandable token chain */}
|
|
217
|
-
{hasReferences && isTokenExpanded(tokenName) && (
|
|
219
|
+
{(hasReferences || isColorToken) && isTokenExpanded(tokenName) && (
|
|
218
220
|
<Tr isExpanded>
|
|
219
221
|
<Td />
|
|
220
222
|
<Td colSpan={3}>
|
|
@@ -223,7 +225,7 @@ export const TokensTable = ({ tokenJson, formatThemeText = capitalize }) => {
|
|
|
223
225
|
{tokenThemesArr.map(([themeName, themeToken]) => (
|
|
224
226
|
<>
|
|
225
227
|
<GridItem span={2}>{formatThemeText(themeName)}:</GridItem>
|
|
226
|
-
<GridItem span={10}>{showTokenChain(themeToken)}</GridItem>
|
|
228
|
+
<GridItem span={10}>{showTokenChain(themeToken, hasReferences)}</GridItem>
|
|
227
229
|
</>
|
|
228
230
|
))}
|
|
229
231
|
</Grid>
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/******/ (() => { // webpackBootstrap
|
|
2
|
+
var __webpack_exports__ = {};
|
|
3
|
+
/*!******************************************************!*\
|
|
4
|
+
!*** ./plugins/export-patternfly-tokens/src/code.ts ***!
|
|
5
|
+
\******************************************************/
|
|
6
|
+
console.clear();
|
|
7
|
+
/* MAIN function */
|
|
8
|
+
figma.ui.onmessage = (e) => {
|
|
9
|
+
console.log('code received message', e);
|
|
10
|
+
if (e.type === 'EXPORT') {
|
|
11
|
+
exportToJSON();
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
if (figma.command === 'export') {
|
|
15
|
+
figma.showUI(__html__, {
|
|
16
|
+
width: 820,
|
|
17
|
+
height: 600,
|
|
18
|
+
themeColors: true
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/* EXPORT Functionality */
|
|
22
|
+
/* EXPORT - main function */
|
|
23
|
+
function exportToJSON() {
|
|
24
|
+
const collections = figma.variables.getLocalVariableCollections();
|
|
25
|
+
const files = [];
|
|
26
|
+
collections.forEach((collection) => files.push(...processCollection(collection)));
|
|
27
|
+
figma.ui.postMessage({ type: 'EXPORT_RESULT', files });
|
|
28
|
+
}
|
|
29
|
+
/* EXPORT - helper functions */
|
|
30
|
+
function processCollection({ name, modes, variableIds }) {
|
|
31
|
+
const files = [];
|
|
32
|
+
modes.forEach((mode) => {
|
|
33
|
+
let file = { fileName: `${name}.${mode.name}.tokens.json`, body: {} };
|
|
34
|
+
variableIds.forEach((variableId) => {
|
|
35
|
+
const { name, resolvedType, valuesByMode, description } = figma.variables.getVariableById(variableId);
|
|
36
|
+
if (name.includes('figma-only')) {
|
|
37
|
+
return; // Skip this variable
|
|
38
|
+
}
|
|
39
|
+
const value = valuesByMode[mode.modeId];
|
|
40
|
+
if (value !== undefined && ['COLOR', 'FLOAT', 'STRING'].includes(resolvedType)) {
|
|
41
|
+
let obj = file.body;
|
|
42
|
+
name.split('/').forEach((groupName) => {
|
|
43
|
+
obj[groupName] = obj[groupName] || {};
|
|
44
|
+
obj = obj[groupName];
|
|
45
|
+
});
|
|
46
|
+
if (description) {
|
|
47
|
+
obj.description = description;
|
|
48
|
+
}
|
|
49
|
+
if (value.type === 'VARIABLE_ALIAS') {
|
|
50
|
+
obj.$type = resolvedType === 'COLOR' ? 'color' : 'number';
|
|
51
|
+
obj.$value = `{${figma.variables.getVariableById(value.id).name.replace(/\//g, '.')}}`;
|
|
52
|
+
console.log(value);
|
|
53
|
+
}
|
|
54
|
+
else if (resolvedType === 'COLOR') {
|
|
55
|
+
obj.$type = 'color';
|
|
56
|
+
obj.$value = rgbToHex(value);
|
|
57
|
+
}
|
|
58
|
+
else if (resolvedType === 'FLOAT') {
|
|
59
|
+
obj.$type = 'number';
|
|
60
|
+
obj.$value = value;
|
|
61
|
+
}
|
|
62
|
+
else if (resolvedType === 'STRING') {
|
|
63
|
+
obj.$type = 'string';
|
|
64
|
+
obj.$value = value;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
files.push(file);
|
|
69
|
+
});
|
|
70
|
+
return files;
|
|
71
|
+
}
|
|
72
|
+
function rgbToHex(value) {
|
|
73
|
+
const { r, g, b, a } = value;
|
|
74
|
+
if (a !== 1) {
|
|
75
|
+
return `rgba(${[r, g, b].map((n) => Math.round(n * 255)).join(', ')}, ${a.toFixed(4)})`;
|
|
76
|
+
}
|
|
77
|
+
const toHex = (value) => {
|
|
78
|
+
const hex = Math.round(value * 255).toString(16);
|
|
79
|
+
return hex.length === 1 ? '0' + hex : hex;
|
|
80
|
+
};
|
|
81
|
+
const hex = [toHex(r), toHex(g), toHex(b)].join('');
|
|
82
|
+
return `#${hex}`;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/******/ })()
|
|
86
|
+
;
|
|
87
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLDhCQUE4QjtBQUN6RDtBQUNBO0FBQ0EsNkJBQTZCLDBCQUEwQjtBQUN2RDtBQUNBO0FBQ0EscUJBQXFCLGFBQWEsS0FBSyxHQUFHLFVBQVU7QUFDcEQ7QUFDQSxvQkFBb0IsZ0RBQWdEO0FBQ3BFO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsRUFBRSxvRUFBb0U7QUFDekc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLFlBQVksYUFBYTtBQUN6QjtBQUNBLHVCQUF1QixxREFBcUQsSUFBSSxhQUFhO0FBQzdGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsSUFBSTtBQUNuQiIsInNvdXJjZXMiOlsid2VicGFjazovL0BwYXR0ZXJuZmx5L2Rlc2lnbi10b2tlbnMvLi9wbHVnaW5zL2V4cG9ydC1wYXR0ZXJuZmx5LXRva2Vucy9zcmMvY29kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zb2xlLmNsZWFyKCk7XG4vKiBNQUlOIGZ1bmN0aW9uICovXG5maWdtYS51aS5vbm1lc3NhZ2UgPSAoZSkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCdjb2RlIHJlY2VpdmVkIG1lc3NhZ2UnLCBlKTtcbiAgICBpZiAoZS50eXBlID09PSAnRVhQT1JUJykge1xuICAgICAgICBleHBvcnRUb0pTT04oKTtcbiAgICB9XG59O1xuaWYgKGZpZ21hLmNvbW1hbmQgPT09ICdleHBvcnQnKSB7XG4gICAgZmlnbWEuc2hvd1VJKF9faHRtbF9fLCB7XG4gICAgICAgIHdpZHRoOiA4MjAsXG4gICAgICAgIGhlaWdodDogNjAwLFxuICAgICAgICB0aGVtZUNvbG9yczogdHJ1ZVxuICAgIH0pO1xufVxuLyogRVhQT1JUIEZ1bmN0aW9uYWxpdHkgKi9cbi8qIEVYUE9SVCAtIG1haW4gZnVuY3Rpb24gKi9cbmZ1bmN0aW9uIGV4cG9ydFRvSlNPTigpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IGZpZ21hLnZhcmlhYmxlcy5nZXRMb2NhbFZhcmlhYmxlQ29sbGVjdGlvbnMoKTtcbiAgICBjb25zdCBmaWxlcyA9IFtdO1xuICAgIGNvbGxlY3Rpb25zLmZvckVhY2goKGNvbGxlY3Rpb24pID0+IGZpbGVzLnB1c2goLi4ucHJvY2Vzc0NvbGxlY3Rpb24oY29sbGVjdGlvbikpKTtcbiAgICBmaWdtYS51aS5wb3N0TWVzc2FnZSh7IHR5cGU6ICdFWFBPUlRfUkVTVUxUJywgZmlsZXMgfSk7XG59XG4vKiBFWFBPUlQgLSBoZWxwZXIgZnVuY3Rpb25zICovXG5mdW5jdGlvbiBwcm9jZXNzQ29sbGVjdGlvbih7IG5hbWUsIG1vZGVzLCB2YXJpYWJsZUlkcyB9KSB7XG4gICAgY29uc3QgZmlsZXMgPSBbXTtcbiAgICBtb2Rlcy5mb3JFYWNoKChtb2RlKSA9PiB7XG4gICAgICAgIGxldCBmaWxlID0geyBmaWxlTmFtZTogYCR7bmFtZX0uJHttb2RlLm5hbWV9LnRva2Vucy5qc29uYCwgYm9keToge30gfTtcbiAgICAgICAgdmFyaWFibGVJZHMuZm9yRWFjaCgodmFyaWFibGVJZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBuYW1lLCByZXNvbHZlZFR5cGUsIHZhbHVlc0J5TW9kZSwgZGVzY3JpcHRpb24gfSA9IGZpZ21hLnZhcmlhYmxlcy5nZXRWYXJpYWJsZUJ5SWQodmFyaWFibGVJZCk7XG4gICAgICAgICAgICBpZiAobmFtZS5pbmNsdWRlcygnZmlnbWEtb25seScpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIHRoaXMgdmFyaWFibGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzQnlNb2RlW21vZGUubW9kZUlkXTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIFsnQ09MT1InLCAnRkxPQVQnLCAnU1RSSU5HJ10uaW5jbHVkZXMocmVzb2x2ZWRUeXBlKSkge1xuICAgICAgICAgICAgICAgIGxldCBvYmogPSBmaWxlLmJvZHk7XG4gICAgICAgICAgICAgICAgbmFtZS5zcGxpdCgnLycpLmZvckVhY2goKGdyb3VwTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvYmpbZ3JvdXBOYW1lXSA9IG9ialtncm91cE5hbWVdIHx8IHt9O1xuICAgICAgICAgICAgICAgICAgICBvYmogPSBvYmpbZ3JvdXBOYW1lXTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS50eXBlID09PSAnVkFSSUFCTEVfQUxJQVMnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9iai4kdHlwZSA9IHJlc29sdmVkVHlwZSA9PT0gJ0NPTE9SJyA/ICdjb2xvcicgOiAnbnVtYmVyJztcbiAgICAgICAgICAgICAgICAgICAgb2JqLiR2YWx1ZSA9IGB7JHtmaWdtYS52YXJpYWJsZXMuZ2V0VmFyaWFibGVCeUlkKHZhbHVlLmlkKS5uYW1lLnJlcGxhY2UoL1xcLy9nLCAnLicpfX1gO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlc29sdmVkVHlwZSA9PT0gJ0NPTE9SJykge1xuICAgICAgICAgICAgICAgICAgICBvYmouJHR5cGUgPSAnY29sb3InO1xuICAgICAgICAgICAgICAgICAgICBvYmouJHZhbHVlID0gcmdiVG9IZXgodmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXNvbHZlZFR5cGUgPT09ICdGTE9BVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgb2JqLiR0eXBlID0gJ251bWJlcic7XG4gICAgICAgICAgICAgICAgICAgIG9iai4kdmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVzb2x2ZWRUeXBlID09PSAnU1RSSU5HJykge1xuICAgICAgICAgICAgICAgICAgICBvYmouJHR5cGUgPSAnc3RyaW5nJztcbiAgICAgICAgICAgICAgICAgICAgb2JqLiR2YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGZpbGVzLnB1c2goZmlsZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbGVzO1xufVxuZnVuY3Rpb24gcmdiVG9IZXgodmFsdWUpIHtcbiAgICBjb25zdCB7IHIsIGcsIGIsIGEgfSA9IHZhbHVlO1xuICAgIGlmIChhICE9PSAxKSB7XG4gICAgICAgIHJldHVybiBgcmdiYSgke1tyLCBnLCBiXS5tYXAoKG4pID0+IE1hdGgucm91bmQobiAqIDI1NSkpLmpvaW4oJywgJyl9LCAke2EudG9GaXhlZCg0KX0pYDtcbiAgICB9XG4gICAgY29uc3QgdG9IZXggPSAodmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgaGV4ID0gTWF0aC5yb3VuZCh2YWx1ZSAqIDI1NSkudG9TdHJpbmcoMTYpO1xuICAgICAgICByZXR1cm4gaGV4Lmxlbmd0aCA9PT0gMSA/ICcwJyArIGhleCA6IGhleDtcbiAgICB9O1xuICAgIGNvbnN0IGhleCA9IFt0b0hleChyKSwgdG9IZXgoZyksIHRvSGV4KGIpXS5qb2luKCcnKTtcbiAgICByZXR1cm4gYCMke2hleH1gO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9
|