@atlaskit/tokens 0.2.0 → 0.4.1

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 (120) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +28 -0
  3. package/babel-plugin/package.json +7 -0
  4. package/css/atlassian-dark.css +89 -88
  5. package/css/atlassian-light.css +89 -88
  6. package/dist/cjs/artifacts/rename-mapping.js +23 -0
  7. package/dist/cjs/{tokens → artifacts}/token-default-values.js +22 -21
  8. package/dist/cjs/artifacts/token-names.js +101 -0
  9. package/dist/cjs/artifacts/tokens-raw/atlassian-dark.js +1786 -0
  10. package/dist/cjs/artifacts/tokens-raw/atlassian-light.js +1766 -0
  11. package/dist/cjs/artifacts/types.js +5 -0
  12. package/dist/cjs/{entry-points/token-default-values.js → babel-plugin/index.js} +2 -2
  13. package/dist/cjs/babel-plugin/plugin.js +176 -0
  14. package/dist/cjs/entry-points/rename-mapping.js +1 -1
  15. package/dist/cjs/entry-points/token-names.js +1 -1
  16. package/dist/cjs/figma/synchronize-figma-tokens.js +43 -41
  17. package/dist/cjs/get-token.js +1 -1
  18. package/dist/cjs/index.js +4 -4
  19. package/dist/cjs/tokens/atlassian-dark/utility/utility.js +3 -0
  20. package/dist/cjs/tokens/atlassian-light/utility/utility.js +3 -0
  21. package/dist/cjs/tokens/default/color/accent.js +26 -13
  22. package/dist/cjs/tokens/default/color/background.js +98 -49
  23. package/dist/cjs/tokens/default/color/border.js +4 -2
  24. package/dist/cjs/tokens/default/color/icon-border.js +10 -5
  25. package/dist/cjs/tokens/default/color/overlay.js +4 -2
  26. package/dist/cjs/tokens/default/color/text.js +28 -14
  27. package/dist/cjs/tokens/default/shadow/shadow.js +4 -2
  28. package/dist/cjs/tokens/default/utility/utility.js +10 -2
  29. package/dist/cjs/tokens/palette.js +145 -260
  30. package/dist/cjs/version.json +1 -1
  31. package/dist/es2019/artifacts/rename-mapping.js +16 -0
  32. package/dist/es2019/{tokens → artifacts}/token-default-values.js +22 -21
  33. package/dist/es2019/artifacts/token-names.js +94 -0
  34. package/dist/es2019/artifacts/tokens-raw/atlassian-dark.js +1779 -0
  35. package/dist/es2019/artifacts/tokens-raw/atlassian-light.js +1759 -0
  36. package/dist/es2019/artifacts/types.js +1 -0
  37. package/dist/es2019/babel-plugin/index.js +1 -0
  38. package/dist/es2019/babel-plugin/plugin.js +151 -0
  39. package/dist/es2019/entry-points/rename-mapping.js +1 -1
  40. package/dist/es2019/entry-points/token-names.js +1 -1
  41. package/dist/es2019/figma/synchronize-figma-tokens.js +43 -41
  42. package/dist/es2019/get-token.js +1 -1
  43. package/dist/es2019/tokens/atlassian-dark/utility/utility.js +3 -0
  44. package/dist/es2019/tokens/atlassian-light/utility/utility.js +3 -0
  45. package/dist/es2019/tokens/default/color/accent.js +26 -13
  46. package/dist/es2019/tokens/default/color/background.js +103 -49
  47. package/dist/es2019/tokens/default/color/border.js +4 -2
  48. package/dist/es2019/tokens/default/color/icon-border.js +28 -5
  49. package/dist/es2019/tokens/default/color/overlay.js +4 -2
  50. package/dist/es2019/tokens/default/color/text.js +35 -14
  51. package/dist/es2019/tokens/default/shadow/shadow.js +12 -2
  52. package/dist/es2019/tokens/default/utility/utility.js +10 -2
  53. package/dist/es2019/tokens/palette.js +145 -260
  54. package/dist/es2019/version.json +1 -1
  55. package/dist/esm/artifacts/rename-mapping.js +16 -0
  56. package/dist/esm/{tokens → artifacts}/token-default-values.js +22 -21
  57. package/dist/esm/artifacts/token-names.js +94 -0
  58. package/dist/esm/artifacts/tokens-raw/atlassian-dark.js +1779 -0
  59. package/dist/esm/artifacts/tokens-raw/atlassian-light.js +1759 -0
  60. package/dist/esm/artifacts/types.js +1 -0
  61. package/dist/esm/babel-plugin/index.js +1 -0
  62. package/dist/esm/babel-plugin/plugin.js +158 -0
  63. package/dist/esm/entry-points/rename-mapping.js +1 -1
  64. package/dist/esm/entry-points/token-names.js +1 -1
  65. package/dist/esm/figma/synchronize-figma-tokens.js +43 -41
  66. package/dist/esm/get-token.js +1 -1
  67. package/dist/esm/tokens/atlassian-dark/utility/utility.js +3 -0
  68. package/dist/esm/tokens/atlassian-light/utility/utility.js +3 -0
  69. package/dist/esm/tokens/default/color/accent.js +26 -13
  70. package/dist/esm/tokens/default/color/background.js +98 -49
  71. package/dist/esm/tokens/default/color/border.js +4 -2
  72. package/dist/esm/tokens/default/color/icon-border.js +10 -5
  73. package/dist/esm/tokens/default/color/overlay.js +4 -2
  74. package/dist/esm/tokens/default/color/text.js +28 -14
  75. package/dist/esm/tokens/default/shadow/shadow.js +4 -2
  76. package/dist/esm/tokens/default/utility/utility.js +10 -2
  77. package/dist/esm/tokens/palette.js +145 -260
  78. package/dist/esm/version.json +1 -1
  79. package/dist/types/artifacts/rename-mapping.d.ts +17 -0
  80. package/dist/types/{tokens → artifacts}/token-default-values.d.ts +21 -20
  81. package/dist/types/artifacts/token-names.d.ts +184 -0
  82. package/dist/types/artifacts/tokens-raw/atlassian-dark.d.ts +80 -0
  83. package/dist/types/artifacts/tokens-raw/atlassian-light.d.ts +56 -0
  84. package/dist/types/artifacts/types.d.ts +4 -0
  85. package/dist/types/babel-plugin/index.d.ts +1 -0
  86. package/dist/types/babel-plugin/plugin.d.ts +14 -0
  87. package/dist/types/entry-points/babel-plugin.d.ts +1 -0
  88. package/dist/types/entry-points/rename-mapping.d.ts +1 -1
  89. package/dist/types/entry-points/token-names.d.ts +2 -2
  90. package/dist/types/get-token.d.ts +1 -1
  91. package/dist/types/index.d.ts +1 -1
  92. package/dist/types/tokens/atlassian-dark/utility/utility.d.ts +10 -2
  93. package/dist/types/tokens/atlassian-light/utility/utility.d.ts +10 -2
  94. package/dist/types/tokens/default/utility/utility.d.ts +138 -2
  95. package/dist/types/types.d.ts +49 -14
  96. package/package.json +17 -6
  97. package/tokens-browser-extension/README.md +28 -0
  98. package/tokens-browser-extension/atlassian-theme.css +449 -0
  99. package/tokens-browser-extension/background.js +75 -0
  100. package/tokens-browser-extension/content-script.js +75 -0
  101. package/tokens-browser-extension/devtools.html +1 -0
  102. package/tokens-browser-extension/devtools.js +14 -0
  103. package/tokens-browser-extension/manifest.json +36 -0
  104. package/tokens-browser-extension/messageback-script.js +10 -0
  105. package/tokens-browser-extension/messaging.js +36 -0
  106. package/tokens-browser-extension/panel.html +25 -0
  107. package/tokens-browser-extension/panel.js +46 -0
  108. package/tokens-browser-extension/toast.png +0 -0
  109. package/dist/cjs/tokens/rename-mapping.js +0 -29
  110. package/dist/cjs/tokens/token-names.js +0 -100
  111. package/dist/es2019/entry-points/token-default-values.js +0 -1
  112. package/dist/es2019/tokens/rename-mapping.js +0 -21
  113. package/dist/es2019/tokens/token-names.js +0 -93
  114. package/dist/esm/entry-points/token-default-values.js +0 -1
  115. package/dist/esm/tokens/rename-mapping.js +0 -21
  116. package/dist/esm/tokens/token-names.js +0 -93
  117. package/dist/types/entry-points/token-default-values.d.ts +0 -1
  118. package/dist/types/tokens/rename-mapping.d.ts +0 -24
  119. package/dist/types/tokens/token-names.d.ts +0 -182
  120. package/token-default-values/package.json +0 -7
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -8,8 +8,8 @@ Object.defineProperty(exports, "__esModule", {
8
8
  Object.defineProperty(exports, "default", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
- return _tokenDefaultValues.default;
11
+ return _plugin.default;
12
12
  }
13
13
  });
14
14
 
15
- var _tokenDefaultValues = _interopRequireDefault(require("../tokens/token-default-values"));
15
+ var _plugin = _interopRequireDefault(require("./plugin"));
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = plugin;
11
+
12
+ var t = _interopRequireWildcard(require("@babel/types"));
13
+
14
+ var _tokenDefaultValues = _interopRequireDefault(require("../artifacts/token-default-values"));
15
+
16
+ var _tokenNames = _interopRequireDefault(require("../artifacts/token-names"));
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ function plugin() {
23
+ return {
24
+ visitor: {
25
+ CallExpression: function (_CallExpression) {
26
+ function CallExpression(_x, _x2) {
27
+ return _CallExpression.apply(this, arguments);
28
+ }
29
+
30
+ CallExpression.toString = function () {
31
+ return _CallExpression.toString();
32
+ };
33
+
34
+ return CallExpression;
35
+ }(function (path, state) {
36
+ var tokenImportScope = getTokenImportScope(path);
37
+
38
+ if (!tokenImportScope) {
39
+ return;
40
+ } // Check arguments have correct format
41
+
42
+
43
+ if (!path.node.arguments[0]) {
44
+ throw new Error("token() requires at least one argument");
45
+ } else if (!t.isStringLiteral(path.node.arguments[0])) {
46
+ throw new Error("token() must have a string as the first argument");
47
+ } else if (path.node.arguments.length > 2) {
48
+ throw new Error("token() does not accept ".concat(path.node.arguments.length, " arguments"));
49
+ } // Check the token exists
50
+
51
+
52
+ var tokenName = path.node.arguments[0].value;
53
+ var cssTokenValue = _tokenNames.default[tokenName];
54
+
55
+ if (!cssTokenValue) {
56
+ throw new Error("token '".concat(tokenName, "' does not exist"));
57
+ }
58
+
59
+ var replacementNode; // if no fallback is set, optionally find one from the default theme
60
+
61
+ if (path.node.arguments.length < 2) {
62
+ if (state.opts.shouldUseAutoFallback) {
63
+ replacementNode = t.stringLiteral("var(".concat(cssTokenValue, ", ").concat(getDefaultFallback(tokenName), ")"));
64
+ } else {
65
+ replacementNode = t.stringLiteral("var(".concat(cssTokenValue, ")"));
66
+ }
67
+ } // Handle fallbacks
68
+
69
+
70
+ var fallback = path.node.arguments[1];
71
+
72
+ if (t.isStringLiteral(fallback)) {
73
+ // String literals can be concatenated into css variable call
74
+ // Empty string fallbacks are ignored. For now, as the user did specify a fallback, no default is inserted
75
+ replacementNode = t.stringLiteral(fallback.value ? "var(".concat(cssTokenValue, ", ").concat(fallback.value, ")") : "var(".concat(cssTokenValue, ")"));
76
+ } else if (t.isExpression(fallback)) {
77
+ // Expressions should be placed in a template string/literal
78
+ replacementNode = t.templateLiteral([t.templateElement({
79
+ cooked: "var(".concat(cssTokenValue, ", "),
80
+ // Currently we create a "raw" value by inserting escape characters via regex (https://github.com/babel/babel/issues/9242)
81
+ raw: "var(".concat(cssTokenValue.replace(/\\|`|\${/g, '\\$&'), ", ")
82
+ }, false), t.templateElement({
83
+ raw: ')',
84
+ cooked: ')'
85
+ }, true)], [fallback]);
86
+ } // Replace path and call scope.crawl() to refresh the scope bindings + references
87
+
88
+
89
+ replacementNode && path.replaceWith(replacementNode); // @ts-ignore crawl is a valid property
90
+
91
+ tokenImportScope.crawl();
92
+ }),
93
+ Program: {
94
+ exit: function exit(path) {
95
+ path.traverse({
96
+ ImportDeclaration: function ImportDeclaration(path) {
97
+ // remove import of 'token'
98
+ if (path.node.source.value !== '@atlaskit/tokens') {
99
+ return;
100
+ }
101
+
102
+ path.get('specifiers').forEach(function (specifier) {
103
+ if (!specifier.isImportSpecifier()) {
104
+ return;
105
+ }
106
+
107
+ if (getNonAliasedImportName(specifier.node) !== 'token') {
108
+ return;
109
+ }
110
+
111
+ var binding = path.scope.bindings[getAliasedImportName(specifier.node)]; // if no longer used, remove
112
+
113
+ if (!binding.referenced) {
114
+ specifier.remove();
115
+ }
116
+ }); // remove '@atlaskit/tokens' import if it is no longer needed
117
+
118
+ if (path.get('specifiers').length === 0) {
119
+ path.remove();
120
+ }
121
+ }
122
+ });
123
+ }
124
+ }
125
+ }
126
+ };
127
+ }
128
+
129
+ function getDefaultFallback(tokenName) {
130
+ return _tokenDefaultValues.default[tokenName];
131
+ }
132
+
133
+ function getNonAliasedImportName(node) {
134
+ if (t.isIdentifier(node.imported)) {
135
+ return node.imported.name;
136
+ }
137
+
138
+ return node.imported.value;
139
+ }
140
+
141
+ function getAliasedImportName(node) {
142
+ return node.local.name;
143
+ }
144
+ /**
145
+ * Determine if the current call is to a token function, and
146
+ * return the relevant scope
147
+ */
148
+
149
+
150
+ function getTokenImportScope(path) {
151
+ var callee = path.node.callee;
152
+
153
+ if (!t.isIdentifier(callee)) {
154
+ return undefined;
155
+ }
156
+
157
+ var binding = getTokenBinding(path.scope, callee.name);
158
+
159
+ if (!binding || !t.isImportSpecifier(binding.path.node)) {
160
+ return undefined;
161
+ }
162
+
163
+ return getNonAliasedImportName(binding.path.node) === 'token' ? binding.scope : undefined;
164
+ }
165
+
166
+ function getTokenBinding(scope, name) {
167
+ if (!scope) {
168
+ return undefined;
169
+ }
170
+
171
+ if (scope.bindings[name]) {
172
+ return scope.bindings[name];
173
+ } else {
174
+ return getTokenBinding(scope.parent, name);
175
+ }
176
+ }
@@ -12,4 +12,4 @@ Object.defineProperty(exports, "default", {
12
12
  }
13
13
  });
14
14
 
15
- var _renameMapping = _interopRequireDefault(require("../tokens/rename-mapping"));
15
+ var _renameMapping = _interopRequireDefault(require("../artifacts/rename-mapping"));
@@ -12,4 +12,4 @@ Object.defineProperty(exports, "default", {
12
12
  }
13
13
  });
14
14
 
15
- var _tokenNames = _interopRequireDefault(require("../tokens/token-names"));
15
+ var _tokenNames = _interopRequireDefault(require("../artifacts/token-names"));
@@ -102,28 +102,29 @@ function synchronizeFigmaTokens(themeName, tokens) {
102
102
  style.name = renameMap[style.name];
103
103
  }
104
104
 
105
- var token = tokens[style.name];
106
-
107
- if (token) {
108
- if (token.attributes.group !== 'shadow') {
109
- // Effect exists in our token set.
110
- // The token is no longer an effect style, time to remove it!
111
- console.log("=> ".concat(style.name, " is no longer a shadow, removing!"));
112
- style.remove();
113
- } else {
114
- // It's still an effect! Update it.
115
- console.log("=> ".concat(style.name, " shadow style has been updated!"));
116
- style.effects = createEffects(token.value);
117
- style.description = token.attributes.description || ''; // Remove from themeValues so it isn't picked up as a new token.
118
-
119
- delete tokens[style.name];
120
- }
121
- } else if (style.name.startsWith(themeName)) {
122
- // The local style was in our theme, but no more!
123
- // It's time to delete it.
105
+ var token = tokens[style.name]; // The local style was in our theme, but no more!
106
+ // It's time to delete it.
107
+
108
+ if (!token) {
124
109
  console.log("=> ".concat(style.name, " shadow style no longer exists, removing."));
125
110
  style.remove();
111
+ return;
126
112
  }
113
+
114
+ if (token.attributes.group !== 'shadow') {
115
+ // Effect exists in our token set.
116
+ // The token is no longer an effect style, time to remove it!
117
+ console.log("=> ".concat(style.name, " is no longer a shadow, removing!"));
118
+ style.remove();
119
+ return;
120
+ } // It's still an effect! Update it.
121
+
122
+
123
+ console.log("=> ".concat(style.name, " shadow style has been updated!"));
124
+ style.effects = createEffects(token.value);
125
+ style.description = (token.attributes.description || '').trim(); // Remove from themeValues so it isn't picked up as a new token.
126
+
127
+ delete tokens[style.name];
127
128
  }); // Iterate through all local figma styles first
128
129
  // If it still exists in themeValues, update it (and then remove from themeValues)
129
130
  // If it doesn't exist, delete the local figma style
@@ -137,29 +138,30 @@ function synchronizeFigmaTokens(themeName, tokens) {
137
138
  style.name = renameMap[style.name];
138
139
  }
139
140
 
140
- var token = tokens[style.name];
141
-
142
- if (token) {
143
- if (token.attributes.group !== 'paint') {
144
- // The token is no longer a paint style, time to remove it!
145
- console.log("=> ".concat(style.name, " is no longer a paint, removing!"));
146
- style.remove();
147
- } else {
148
- // Local style exists that also exists in our tokens!
149
- // Update it and then remove from themeValues.
150
- console.log("=> ".concat(style.name, " paint style has been updated!")); // Mutating is how Figma updates.
151
-
152
- style.paints = [createPaint(token.value)];
153
- style.description = token.attributes.description || ''; // Remove from themeValues so it isn't picked up as a new token.
154
-
155
- delete tokens[style.name];
156
- }
157
- } else if (style.name.startsWith(themeName)) {
158
- // The local style was in our theme, but no more!
159
- // It's time to delete it.
141
+ var token = tokens[style.name]; // The local style was in our theme, but no more!
142
+ // It's time to delete it.
143
+
144
+ if (!token) {
160
145
  console.log("=> ".concat(style.name, " paint style no longer exists, removing."));
161
146
  style.remove();
147
+ return;
162
148
  }
149
+
150
+ if (token.attributes.group !== 'paint') {
151
+ // The token is no longer a paint style, time to remove it!
152
+ console.log("=> ".concat(style.name, " is no longer a paint, removing!"));
153
+ style.remove();
154
+ return;
155
+ } // Local style exists that also exists in our tokens!
156
+ // Update it and then remove from themeValues.
157
+
158
+
159
+ console.log("=> ".concat(style.name, " paint style has been updated!")); // Mutating is how Figma updates.
160
+
161
+ style.paints = [createPaint(token.value)];
162
+ style.description = (token.attributes.description || '').trim(); // Remove from themeValues so it isn't picked up as a new token.
163
+
164
+ delete tokens[style.name];
163
165
  }); // eslint-disable-next-line guard-for-in
164
166
 
165
167
  for (var key in tokens) {
@@ -168,7 +170,7 @@ function synchronizeFigmaTokens(themeName, tokens) {
168
170
  if (token.attributes.group === 'paint') {
169
171
  var newStyle = figma.createPaintStyle();
170
172
  newStyle.name = key;
171
- newStyle.description = token.attributes.description || '';
173
+ newStyle.description = (token.attributes.description || '').trim();
172
174
  newStyle.paints = [createPaint(token.value)];
173
175
  console.log("=> ".concat(key, " paint style has been added!"));
174
176
  }
@@ -177,7 +179,7 @@ function synchronizeFigmaTokens(themeName, tokens) {
177
179
  var _newStyle = figma.createEffectStyle();
178
180
 
179
181
  _newStyle.name = key;
180
- _newStyle.description = token.attributes.description || '';
182
+ _newStyle.description = (token.attributes.description || '').trim();
181
183
  _newStyle.effects = createEffects(token.value);
182
184
  console.log("=> ".concat(key, " shadow style has been added!"));
183
185
  }
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _tokenNames = _interopRequireDefault(require("./tokens/token-names"));
10
+ var _tokenNames = _interopRequireDefault(require("./artifacts/token-names"));
11
11
 
12
12
  function token(path, fallback) {
13
13
  if (process.env.NODE_ENV !== 'production' && !_tokenNames.default[path]) {
package/dist/cjs/index.js CHANGED
@@ -5,16 +5,16 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "token", {
8
+ Object.defineProperty(exports, "setGlobalTheme", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
- return _getToken.default;
11
+ return _setGlobalTheme.default;
12
12
  }
13
13
  });
14
- Object.defineProperty(exports, "setGlobalTheme", {
14
+ Object.defineProperty(exports, "token", {
15
15
  enumerable: true,
16
16
  get: function get() {
17
- return _setGlobalTheme.default;
17
+ return _getToken.default;
18
18
  }
19
19
  });
20
20
 
@@ -8,6 +8,9 @@ var utility = {
8
8
  UNSAFE_util: {
9
9
  transparent: {
10
10
  value: 'transparent'
11
+ },
12
+ MISSING_TOKEN: {
13
+ value: '#FA11F2'
11
14
  }
12
15
  }
13
16
  };
@@ -8,6 +8,9 @@ var utility = {
8
8
  UNSAFE_util: {
9
9
  transparent: {
10
10
  value: 'transparent'
11
+ },
12
+ MISSING_TOKEN: {
13
+ value: '#FA11F2'
11
14
  }
12
15
  }
13
16
  };
@@ -10,79 +10,92 @@ var color = {
10
10
  boldBlue: {
11
11
  attributes: {
12
12
  group: 'paint',
13
- description: ''
13
+ state: 'active',
14
+ description: 'Use for blue backgrounds of stronger emphasis when there is no meaning tied to the color, such as bold tags.'
14
15
  }
15
16
  },
16
17
  boldGreen: {
17
18
  attributes: {
18
19
  group: 'paint',
19
- description: ''
20
+ state: 'active',
21
+ description: 'Use for green backgrounds of stronger emphasis when there is no meaning tied to the color, such as bold tags.'
20
22
  }
21
23
  },
22
24
  boldOrange: {
23
25
  attributes: {
24
26
  group: 'paint',
25
- description: ''
27
+ state: 'active',
28
+ description: 'Use for orange backgrounds of stronger emphasis when there is no meaning tied to the color, such as bold tags.'
26
29
  }
27
30
  },
28
31
  boldPurple: {
29
32
  attributes: {
30
33
  group: 'paint',
31
- description: ''
34
+ state: 'active',
35
+ description: 'Use for purple backgrounds of stronger emphasis when there is no meaning tied to the color, such as bold tags.'
32
36
  }
33
37
  },
34
38
  boldRed: {
35
39
  attributes: {
36
40
  group: 'paint',
37
- description: ''
41
+ state: 'active',
42
+ description: 'Use for red backgrounds of stronger emphasis when there is no meaning tied to the color, such as bold tags.'
38
43
  }
39
44
  },
40
45
  boldTeal: {
41
46
  attributes: {
42
47
  group: 'paint',
43
- description: ''
48
+ state: 'active',
49
+ description: 'Use for teal backgrounds of stronger emphasis when there is no meaning tied to the color, such as bold tags.'
44
50
  }
45
51
  },
46
52
  subtleBlue: {
47
53
  attributes: {
48
54
  group: 'paint',
49
- description: ''
55
+ state: 'active',
56
+ description: 'Use for blue subdued backgrounds when there is no meaning tied to the color, such as colored tags.'
50
57
  }
51
58
  },
52
59
  subtleGreen: {
53
60
  attributes: {
54
61
  group: 'paint',
55
- description: ''
62
+ state: 'active',
63
+ description: 'Use for green subdued backgrounds when there is no meaning tied to the color, such as colored tags.'
56
64
  }
57
65
  },
58
66
  subtleMagenta: {
59
67
  attributes: {
60
68
  group: 'paint',
61
- description: ''
69
+ state: 'active',
70
+ description: 'Use for magenta subdued backgrounds when there is no meaning tied to the color, such as colored tags.'
62
71
  }
63
72
  },
64
73
  subtleOrange: {
65
74
  attributes: {
66
75
  group: 'paint',
67
- description: ''
76
+ state: 'active',
77
+ description: 'Use for orange subdued backgrounds when there is no meaning tied to the color, such as colored tags.'
68
78
  }
69
79
  },
70
80
  subtlePurple: {
71
81
  attributes: {
72
82
  group: 'paint',
73
- description: ''
83
+ state: 'active',
84
+ description: 'Use for purple subdued backgrounds when there is no meaning tied to the color, such as colored tags.'
74
85
  }
75
86
  },
76
87
  subtleRed: {
77
88
  attributes: {
78
89
  group: 'paint',
79
- description: ''
90
+ state: 'active',
91
+ description: 'Use for red subdued backgrounds when there is no meaning tied to the color, such as colored tags.'
80
92
  }
81
93
  },
82
94
  subtleTeal: {
83
95
  attributes: {
84
96
  group: 'paint',
85
- description: ''
97
+ state: 'active',
98
+ description: 'Use for teal subdued backgrounds when there is no meaning tied to the color, such as colored tags.'
86
99
  }
87
100
  }
88
101
  }