@atlaskit/tokens 0.1.1 → 0.4.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 +39 -0
- package/README.md +28 -0
- package/babel-plugin/package.json +7 -0
- package/css/atlassian-dark.css +89 -88
- package/css/atlassian-light.css +89 -88
- package/dist/cjs/artifacts/rename-mapping.js +23 -0
- package/dist/cjs/artifacts/token-default-values.js +105 -0
- package/dist/cjs/artifacts/token-names.js +101 -0
- package/dist/cjs/artifacts/tokens-raw/atlassian-dark.js +1786 -0
- package/dist/cjs/artifacts/tokens-raw/atlassian-light.js +1766 -0
- package/dist/cjs/artifacts/types.js +5 -0
- package/dist/cjs/babel-plugin/index.js +15 -0
- package/dist/cjs/babel-plugin/plugin.js +176 -0
- package/dist/cjs/entry-points/rename-mapping.js +1 -1
- package/dist/cjs/entry-points/token-names.js +1 -1
- package/dist/cjs/figma/synchronize-figma-tokens.js +43 -41
- package/dist/cjs/get-token.js +1 -1
- package/dist/cjs/tokens/atlassian-dark/utility/utility.js +3 -0
- package/dist/cjs/tokens/atlassian-light/utility/utility.js +3 -0
- package/dist/cjs/tokens/default/color/accent.js +26 -13
- package/dist/cjs/tokens/default/color/background.js +98 -49
- package/dist/cjs/tokens/default/color/border.js +4 -2
- package/dist/cjs/tokens/default/color/icon-border.js +10 -5
- package/dist/cjs/tokens/default/color/overlay.js +4 -2
- package/dist/cjs/tokens/default/color/text.js +28 -14
- package/dist/cjs/tokens/default/shadow/shadow.js +4 -2
- package/dist/cjs/tokens/default/utility/utility.js +10 -2
- package/dist/cjs/tokens/palette.js +145 -260
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/artifacts/rename-mapping.js +16 -0
- package/dist/es2019/artifacts/token-default-values.js +98 -0
- package/dist/es2019/artifacts/token-names.js +94 -0
- package/dist/es2019/artifacts/tokens-raw/atlassian-dark.js +1779 -0
- package/dist/es2019/artifacts/tokens-raw/atlassian-light.js +1759 -0
- package/dist/es2019/artifacts/types.js +1 -0
- package/dist/es2019/babel-plugin/index.js +1 -0
- package/dist/es2019/babel-plugin/plugin.js +151 -0
- package/dist/es2019/entry-points/rename-mapping.js +1 -1
- package/dist/es2019/entry-points/token-names.js +1 -1
- package/dist/es2019/figma/synchronize-figma-tokens.js +43 -41
- package/dist/es2019/get-token.js +1 -1
- package/dist/es2019/tokens/atlassian-dark/utility/utility.js +3 -0
- package/dist/es2019/tokens/atlassian-light/utility/utility.js +3 -0
- package/dist/es2019/tokens/default/color/accent.js +26 -13
- package/dist/es2019/tokens/default/color/background.js +103 -49
- package/dist/es2019/tokens/default/color/border.js +4 -2
- package/dist/es2019/tokens/default/color/icon-border.js +28 -5
- package/dist/es2019/tokens/default/color/overlay.js +4 -2
- package/dist/es2019/tokens/default/color/text.js +35 -14
- package/dist/es2019/tokens/default/shadow/shadow.js +12 -2
- package/dist/es2019/tokens/default/utility/utility.js +10 -2
- package/dist/es2019/tokens/palette.js +145 -260
- package/dist/es2019/version.json +1 -1
- package/dist/esm/artifacts/rename-mapping.js +16 -0
- package/dist/esm/artifacts/token-default-values.js +98 -0
- package/dist/esm/artifacts/token-names.js +94 -0
- package/dist/esm/artifacts/tokens-raw/atlassian-dark.js +1779 -0
- package/dist/esm/artifacts/tokens-raw/atlassian-light.js +1759 -0
- package/dist/esm/artifacts/types.js +1 -0
- package/dist/esm/babel-plugin/index.js +1 -0
- package/dist/esm/babel-plugin/plugin.js +158 -0
- package/dist/esm/entry-points/rename-mapping.js +1 -1
- package/dist/esm/entry-points/token-names.js +1 -1
- package/dist/esm/figma/synchronize-figma-tokens.js +43 -41
- package/dist/esm/get-token.js +1 -1
- package/dist/esm/tokens/atlassian-dark/utility/utility.js +3 -0
- package/dist/esm/tokens/atlassian-light/utility/utility.js +3 -0
- package/dist/esm/tokens/default/color/accent.js +26 -13
- package/dist/esm/tokens/default/color/background.js +98 -49
- package/dist/esm/tokens/default/color/border.js +4 -2
- package/dist/esm/tokens/default/color/icon-border.js +10 -5
- package/dist/esm/tokens/default/color/overlay.js +4 -2
- package/dist/esm/tokens/default/color/text.js +28 -14
- package/dist/esm/tokens/default/shadow/shadow.js +4 -2
- package/dist/esm/tokens/default/utility/utility.js +10 -2
- package/dist/esm/tokens/palette.js +145 -260
- package/dist/esm/version.json +1 -1
- package/dist/types/artifacts/rename-mapping.d.ts +17 -0
- package/dist/types/artifacts/token-default-values.d.ts +95 -0
- package/dist/types/artifacts/token-names.d.ts +184 -0
- package/dist/types/artifacts/tokens-raw/atlassian-dark.d.ts +80 -0
- package/dist/types/artifacts/tokens-raw/atlassian-light.d.ts +56 -0
- package/dist/types/artifacts/types.d.ts +4 -0
- package/dist/types/babel-plugin/index.d.ts +1 -0
- package/dist/types/babel-plugin/plugin.d.ts +14 -0
- package/dist/types/entry-points/babel-plugin.d.ts +1 -0
- package/dist/types/entry-points/rename-mapping.d.ts +1 -1
- package/dist/types/entry-points/token-names.d.ts +2 -2
- package/dist/types/get-token.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/tokens/atlassian-dark/utility/utility.d.ts +10 -2
- package/dist/types/tokens/atlassian-light/utility/utility.d.ts +10 -2
- package/dist/types/tokens/default/utility/utility.d.ts +138 -2
- package/dist/types/types.d.ts +49 -14
- package/package.json +17 -5
- package/tokens-browser-extension/README.md +28 -0
- package/tokens-browser-extension/atlassian-theme.css +375 -0
- package/tokens-browser-extension/background.js +75 -0
- package/tokens-browser-extension/content-script.js +75 -0
- package/tokens-browser-extension/devtools.html +1 -0
- package/tokens-browser-extension/devtools.js +14 -0
- package/tokens-browser-extension/manifest.json +36 -0
- package/tokens-browser-extension/messageback-script.js +10 -0
- package/tokens-browser-extension/messaging.js +36 -0
- package/tokens-browser-extension/panel.html +25 -0
- package/tokens-browser-extension/panel.js +46 -0
- package/tokens-browser-extension/toast.png +0 -0
- package/dist/cjs/tokens/rename-mapping.js +0 -29
- package/dist/cjs/tokens/token-names.js +0 -100
- package/dist/es2019/tokens/rename-mapping.js +0 -21
- package/dist/es2019/tokens/token-names.js +0 -93
- package/dist/esm/tokens/rename-mapping.js +0 -21
- package/dist/esm/tokens/token-names.js +0 -93
- package/dist/types/tokens/rename-mapping.d.ts +0 -24
- package/dist/types/tokens/token-names.d.ts +0 -182
package/dist/types/types.d.ts
CHANGED
|
@@ -1,24 +1,57 @@
|
|
|
1
|
-
|
|
1
|
+
import { ActiveTokens } from './artifacts/types';
|
|
2
|
+
export declare type Groups = 'raw' | 'paint' | 'shadow' | 'palette';
|
|
3
|
+
export declare type ActiveTokenStates = 'active';
|
|
4
|
+
export declare type ReplacedTokenStates = 'deprecated' | 'deleted';
|
|
5
|
+
export declare type TokenState = ActiveTokenStates | ReplacedTokenStates;
|
|
6
|
+
export declare type Replacement = ActiveTokens[];
|
|
7
|
+
export interface Token<TValue, Group extends Groups> {
|
|
2
8
|
value: TValue;
|
|
3
9
|
attributes: {
|
|
4
|
-
group
|
|
10
|
+
group: Group;
|
|
5
11
|
description?: string;
|
|
12
|
+
state?: TokenState;
|
|
13
|
+
replacement?: Replacement;
|
|
6
14
|
};
|
|
7
15
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Base tokens define the raw values consumed by Design Tokens. They are a context-agnostic
|
|
18
|
+
* name:value pairing (for example, the base token N0 represents the value #FFFFFF ).
|
|
19
|
+
*/
|
|
20
|
+
export interface BaseToken<TValue, Group extends Groups> extends Token<TValue, Group> {
|
|
11
21
|
attributes: {
|
|
12
|
-
|
|
22
|
+
group: Group;
|
|
13
23
|
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Design tokens represent single sources of truth to name and store semantic design decisions.
|
|
27
|
+
* They map a semantic name (color.background.default) to a base token (N0).
|
|
28
|
+
*/
|
|
29
|
+
export interface DesignToken<TValue, Group extends Groups> extends Token<TValue, Group> {
|
|
30
|
+
attributes: {
|
|
31
|
+
group: Group;
|
|
32
|
+
description: string;
|
|
33
|
+
state: ActiveTokenStates;
|
|
34
|
+
replacement?: undefined;
|
|
35
|
+
} | {
|
|
36
|
+
group: Group;
|
|
37
|
+
description: string;
|
|
38
|
+
state: ReplacedTokenStates;
|
|
39
|
+
replacement?: Replacement;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
declare type OmitDistributive<T, K extends PropertyKey> = T extends any ? T extends object ? Id<DeepOmit<T, K>> : T : never;
|
|
43
|
+
declare type Id<T> = {} & {
|
|
44
|
+
[P in keyof T]: T[P];
|
|
14
45
|
};
|
|
15
|
-
|
|
16
|
-
[
|
|
17
|
-
}
|
|
18
|
-
export declare type
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export declare type
|
|
46
|
+
declare type DeepOmit<T extends any, K extends PropertyKey> = Omit<{
|
|
47
|
+
[P in keyof T]: OmitDistributive<T[P], K>;
|
|
48
|
+
}, K>;
|
|
49
|
+
export declare type ValueSchema<Schema extends object> = DeepOmit<Schema, 'attributes'>;
|
|
50
|
+
export declare type AttributeSchema<Schema extends object> = DeepOmit<Schema, 'value'>;
|
|
51
|
+
export declare type PaletteToken = BaseToken<string, 'palette'>;
|
|
52
|
+
export declare type ColorPalette = keyof PaletteColorTokenSchema['color']['palette'];
|
|
53
|
+
export declare type PaintToken<Value extends string = ColorPalette> = DesignToken<Value, 'paint'>;
|
|
54
|
+
export declare type ShadowToken<Value extends string = ColorPalette> = DesignToken<Array<{
|
|
22
55
|
color: Value;
|
|
23
56
|
opacity: number;
|
|
24
57
|
offset: {
|
|
@@ -29,7 +62,7 @@ export declare type ShadowToken<Value extends string = ColorPalette> = Token<Arr
|
|
|
29
62
|
spread?: number;
|
|
30
63
|
inset?: boolean;
|
|
31
64
|
}>, 'shadow'>;
|
|
32
|
-
export declare type RawToken =
|
|
65
|
+
export declare type RawToken = DesignToken<string, 'raw'>;
|
|
33
66
|
export interface PaletteColorTokenSchema {
|
|
34
67
|
color: {
|
|
35
68
|
palette: {
|
|
@@ -313,7 +346,9 @@ export interface ShadowTokenSchema {
|
|
|
313
346
|
export interface UtilTokenSchema {
|
|
314
347
|
UNSAFE_util: {
|
|
315
348
|
transparent: RawToken;
|
|
349
|
+
MISSING_TOKEN: RawToken;
|
|
316
350
|
};
|
|
317
351
|
}
|
|
318
352
|
export declare type ColorTokenSchema = BackgroundColorTokenSchema & BorderColorTokenSchema & IconBorderColorTokenSchema & TextColorTokenSchema & AccentColorTokenSchema & UtilTokenSchema;
|
|
319
353
|
export declare type TokenSchema = PaletteColorTokenSchema & ColorTokenSchema & ShadowTokenSchema;
|
|
354
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/tokens",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"author": "Atlassian Pty Ltd",
|
|
5
5
|
"description": "Tokens are a single source of truth to name and store Atlassian design decisions.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"af:exports": {
|
|
22
22
|
".": "./src/index.tsx",
|
|
23
23
|
"./token-names": "./src/entry-points/token-names.tsx",
|
|
24
|
-
"./rename-mapping": "./src/entry-points/rename-mapping.tsx"
|
|
24
|
+
"./rename-mapping": "./src/entry-points/rename-mapping.tsx",
|
|
25
|
+
"./babel-plugin": "./src/entry-points/babel-plugin.tsx"
|
|
25
26
|
},
|
|
26
27
|
"scripts": {
|
|
27
28
|
"ak-postbuild": "yarn codegen-tokens && yarn check-clean-git",
|
|
@@ -29,12 +30,20 @@
|
|
|
29
30
|
"codegen-tokens": "ts-node --project ../../../tsconfig.node.json ./scripts/style-dictionary/build"
|
|
30
31
|
},
|
|
31
32
|
"dependencies": {
|
|
32
|
-
"@babel/runtime": "^7.0.0"
|
|
33
|
+
"@babel/runtime": "^7.0.0",
|
|
34
|
+
"@babel/traverse": "^7.15.0",
|
|
35
|
+
"@babel/types": "^7.15.0"
|
|
33
36
|
},
|
|
34
37
|
"devDependencies": {
|
|
38
|
+
"@atlaskit/code": "*",
|
|
39
|
+
"@atlaskit/lozenge": "*",
|
|
40
|
+
"@atlaskit/tabs": "*",
|
|
35
41
|
"@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
|
|
42
|
+
"@babel/core": "^7.12.3",
|
|
43
|
+
"@emotion/core": "^10.0.9",
|
|
36
44
|
"lodash": "^4.17.15",
|
|
37
45
|
"prettier": "^2.1.1",
|
|
46
|
+
"react": "^16.8.0",
|
|
38
47
|
"style-dictionary": "^3.0.0",
|
|
39
48
|
"ts-node": "^10.0.0",
|
|
40
49
|
"typescript": "3.9.6"
|
|
@@ -47,8 +56,11 @@
|
|
|
47
56
|
"@repo/internal": {
|
|
48
57
|
"design-system": "v1",
|
|
49
58
|
"ui-components": "lite-mode",
|
|
50
|
-
"deprecation": "no-deprecated-imports"
|
|
59
|
+
"deprecation": "no-deprecated-imports",
|
|
60
|
+
"styling": [
|
|
61
|
+
"emotion"
|
|
62
|
+
]
|
|
51
63
|
}
|
|
52
64
|
},
|
|
53
65
|
"prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.1"
|
|
54
|
-
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Atlaskit Tokens Browser Extension
|
|
2
|
+
===
|
|
3
|
+
|
|
4
|
+
This extension was made to help development of different themes using `@atlaskit/tokens`
|
|
5
|
+
|
|
6
|
+
Installation
|
|
7
|
+
===
|
|
8
|
+
The extension currently is not available on any extension store and can only be installed in its unpacked form
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Chrome
|
|
12
|
+
* Open [chrome://extensions](chrome://extensions)
|
|
13
|
+
* Enable 'Developer Mode' checkbox
|
|
14
|
+
* Click 'Load unpacked extensions...'
|
|
15
|
+
* Select the `packages/design-system/tokens/tokens-browser-extension` folder
|
|
16
|
+
|
|
17
|
+
Firefox
|
|
18
|
+
* You can also install the extension in Firefox:
|
|
19
|
+
* Unzip the extension and follow the instructions at [Temporary installation in Firefox](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/).
|
|
20
|
+
|
|
21
|
+
Note: When you quit the browser it will remove the extension so you will have to follow the guide above to install it again. We can look at packaging the extension up properly if there is enough demand ;)
|
|
22
|
+
|
|
23
|
+
Usage
|
|
24
|
+
===
|
|
25
|
+
|
|
26
|
+
While on any page, launch the devtools, you should see a new tab called 'Tokens theming controls'.
|
|
27
|
+
|
|
28
|
+
You can toggle between the themes or disable the theme to see the legacy appearance
|
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* These styles have been copy-pasted from the output
|
|
3
|
+
* in packages/design-system/tokens/css
|
|
4
|
+
* this includes namespaced and non-namespaced tokens
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
html[data-theme='light'] {
|
|
8
|
+
--accent-boldBlue: #579dff;
|
|
9
|
+
--accent-boldGreen: #3acf91;
|
|
10
|
+
--accent-boldOrange: #ffa333;
|
|
11
|
+
--accent-boldPurple: #9f8fef;
|
|
12
|
+
--accent-boldRed: #f97362;
|
|
13
|
+
--accent-boldTeal: #53c8d5;
|
|
14
|
+
--accent-subtleBlue: #cce0ff;
|
|
15
|
+
--accent-subtleGreen: #aff3d6;
|
|
16
|
+
--accent-subtleMagenta: #fdd0ec;
|
|
17
|
+
--accent-subtleOrange: #ffdeb8;
|
|
18
|
+
--accent-subtlePurple: #dfd8fd;
|
|
19
|
+
--accent-subtleRed: #ffd2cc;
|
|
20
|
+
--accent-subtleTeal: #adeef5;
|
|
21
|
+
--background-sunken: #091e4208;
|
|
22
|
+
--background-default: #ffffff;
|
|
23
|
+
--background-card: #ffffff;
|
|
24
|
+
--background-overlay: #ffffff;
|
|
25
|
+
--background-selected-resting: #e9f2ff;
|
|
26
|
+
--background-selected-hover: #cce0ff;
|
|
27
|
+
--background-selected-pressed: #85b8ff;
|
|
28
|
+
--background-blanket: #091e427a;
|
|
29
|
+
--background-disabled: #091e420f;
|
|
30
|
+
--background-boldBrand-resting: #0c66e4;
|
|
31
|
+
--background-boldBrand-hover: #0055cc;
|
|
32
|
+
--background-boldBrand-pressed: #09326c;
|
|
33
|
+
--background-subtleBrand-resting: #e9f2ff;
|
|
34
|
+
--background-subtleBrand-hover: #cce0ff;
|
|
35
|
+
--background-subtleBrand-pressed: #85b8ff;
|
|
36
|
+
--background-boldDanger-resting: #ce2e1c;
|
|
37
|
+
--background-boldDanger-hover: #b22515;
|
|
38
|
+
--background-boldDanger-pressed: #601d16;
|
|
39
|
+
--background-subtleDanger-resting: #ffedeb;
|
|
40
|
+
--background-subtleDanger-hover: #ffd2cc;
|
|
41
|
+
--background-subtleDanger-pressed: #ff9a8f;
|
|
42
|
+
--background-boldWarning-resting: #ebb800;
|
|
43
|
+
--background-boldWarning-hover: #d19d00;
|
|
44
|
+
--background-boldWarning-pressed: #b38600;
|
|
45
|
+
--background-subtleWarning-resting: #fff7d6;
|
|
46
|
+
--background-subtleWarning-hover: #ffe785;
|
|
47
|
+
--background-subtleWarning-pressed: #ffd138;
|
|
48
|
+
--background-boldSuccess-resting: #1f845a;
|
|
49
|
+
--background-boldSuccess-hover: #216e4e;
|
|
50
|
+
--background-boldSuccess-pressed: #164b35;
|
|
51
|
+
--background-subtleSuccess-resting: #dffcf0;
|
|
52
|
+
--background-subtleSuccess-hover: #aff3d6;
|
|
53
|
+
--background-subtleSuccess-pressed: #76e0b4;
|
|
54
|
+
--background-boldDiscovery-resting: #6e5dc6;
|
|
55
|
+
--background-boldDiscovery-hover: #5e4db2;
|
|
56
|
+
--background-boldDiscovery-pressed: #352c63;
|
|
57
|
+
--background-subtleDiscovery-resting: #f3f0ff;
|
|
58
|
+
--background-subtleDiscovery-hover: #dfd8fd;
|
|
59
|
+
--background-subtleDiscovery-pressed: #b8acf6;
|
|
60
|
+
--background-boldNeutral-resting: #44546f;
|
|
61
|
+
--background-boldNeutral-hover: #2c3e5d;
|
|
62
|
+
--background-boldNeutral-pressed: #172b4d;
|
|
63
|
+
--background-transparentNeutral-hover: #091e420f;
|
|
64
|
+
--background-transparentNeutral-pressed: #091e4224;
|
|
65
|
+
--background-subtleNeutral-resting: #091e420f;
|
|
66
|
+
--background-subtleNeutral-hover: #091e4224;
|
|
67
|
+
--background-subtleNeutral-pressed: #091e424f;
|
|
68
|
+
--background-subtleBorderedNeutral-resting: #091e4208;
|
|
69
|
+
--background-subtleBorderedNeutral-pressed: #091e420f;
|
|
70
|
+
--border-focus: #388bff;
|
|
71
|
+
--border-neutral: #091e4224;
|
|
72
|
+
--iconBorder-brand: #1d7afc;
|
|
73
|
+
--iconBorder-danger: #e8422c;
|
|
74
|
+
--iconBorder-warning: #db6e00;
|
|
75
|
+
--iconBorder-success: #22a06b;
|
|
76
|
+
--iconBorder-discovery: #8270db;
|
|
77
|
+
--overlay-hover: #091e424f;
|
|
78
|
+
--overlay-pressed: #091e427a;
|
|
79
|
+
--text-selected: #0c66e4;
|
|
80
|
+
--text-highEmphasis: #172b4d;
|
|
81
|
+
--text-mediumEmphasis: #44546f;
|
|
82
|
+
--text-lowEmphasis: #626f86;
|
|
83
|
+
--text-onBold: #ffffff;
|
|
84
|
+
--text-onBoldWarning: #172b4d;
|
|
85
|
+
--text-link-resting: #0c66e4;
|
|
86
|
+
--text-link-pressed: #0055cc;
|
|
87
|
+
--text-brand: #0055cc;
|
|
88
|
+
--text-warning: #974f0c;
|
|
89
|
+
--text-danger: #b22515;
|
|
90
|
+
--text-success: #216e4e;
|
|
91
|
+
--text-discovery: #5e4db2;
|
|
92
|
+
--text-disabled: #8993a5;
|
|
93
|
+
--card: 0px 1px 1px #091e4240, 0px 0px 1px #091e424f;
|
|
94
|
+
--overlay: 0px 8px 12px #091e4226, 0px 0px 1px #091e424f;
|
|
95
|
+
--UNSAFE_util-transparent: transparent;
|
|
96
|
+
--UNSAFE_util-MISSING_TOKEN: hotpink;
|
|
97
|
+
|
|
98
|
+
/* namespaced */
|
|
99
|
+
|
|
100
|
+
--ds-accent-boldBlue: #579dff;
|
|
101
|
+
--ds-accent-boldGreen: #3acf91;
|
|
102
|
+
--ds-accent-boldOrange: #ffa333;
|
|
103
|
+
--ds-accent-boldPurple: #9f8fef;
|
|
104
|
+
--ds-accent-boldRed: #f97362;
|
|
105
|
+
--ds-accent-boldTeal: #53c8d5;
|
|
106
|
+
--ds-accent-subtleBlue: #cce0ff;
|
|
107
|
+
--ds-accent-subtleGreen: #aff3d6;
|
|
108
|
+
--ds-accent-subtleMagenta: #fdd0ec;
|
|
109
|
+
--ds-accent-subtleOrange: #ffdeb8;
|
|
110
|
+
--ds-accent-subtlePurple: #dfd8fd;
|
|
111
|
+
--ds-accent-subtleRed: #ffd2cc;
|
|
112
|
+
--ds-accent-subtleTeal: #adeef5;
|
|
113
|
+
--ds-background-sunken: #091e4208;
|
|
114
|
+
--ds-background-default: #ffffff;
|
|
115
|
+
--ds-background-card: #ffffff;
|
|
116
|
+
--ds-background-overlay: #ffffff;
|
|
117
|
+
--ds-background-selected-resting: #e9f2ff;
|
|
118
|
+
--ds-background-selected-hover: #cce0ff;
|
|
119
|
+
--ds-background-selected-pressed: #85b8ff;
|
|
120
|
+
--ds-background-blanket: #091e427a;
|
|
121
|
+
--ds-background-disabled: #091e420f;
|
|
122
|
+
--ds-background-boldBrand-resting: #0c66e4;
|
|
123
|
+
--ds-background-boldBrand-hover: #0055cc;
|
|
124
|
+
--ds-background-boldBrand-pressed: #09326c;
|
|
125
|
+
--ds-background-subtleBrand-resting: #e9f2ff;
|
|
126
|
+
--ds-background-subtleBrand-hover: #cce0ff;
|
|
127
|
+
--ds-background-subtleBrand-pressed: #85b8ff;
|
|
128
|
+
--ds-background-boldDanger-resting: #ce2e1c;
|
|
129
|
+
--ds-background-boldDanger-hover: #b22515;
|
|
130
|
+
--ds-background-boldDanger-pressed: #601d16;
|
|
131
|
+
--ds-background-subtleDanger-resting: #ffedeb;
|
|
132
|
+
--ds-background-subtleDanger-hover: #ffd2cc;
|
|
133
|
+
--ds-background-subtleDanger-pressed: #ff9a8f;
|
|
134
|
+
--ds-background-boldWarning-resting: #ebb800;
|
|
135
|
+
--ds-background-boldWarning-hover: #d19d00;
|
|
136
|
+
--ds-background-boldWarning-pressed: #b38600;
|
|
137
|
+
--ds-background-subtleWarning-resting: #fff7d6;
|
|
138
|
+
--ds-background-subtleWarning-hover: #ffe785;
|
|
139
|
+
--ds-background-subtleWarning-pressed: #ffd138;
|
|
140
|
+
--ds-background-boldSuccess-resting: #1f845a;
|
|
141
|
+
--ds-background-boldSuccess-hover: #216e4e;
|
|
142
|
+
--ds-background-boldSuccess-pressed: #164b35;
|
|
143
|
+
--ds-background-subtleSuccess-resting: #dffcf0;
|
|
144
|
+
--ds-background-subtleSuccess-hover: #aff3d6;
|
|
145
|
+
--ds-background-subtleSuccess-pressed: #76e0b4;
|
|
146
|
+
--ds-background-boldDiscovery-resting: #6e5dc6;
|
|
147
|
+
--ds-background-boldDiscovery-hover: #5e4db2;
|
|
148
|
+
--ds-background-boldDiscovery-pressed: #352c63;
|
|
149
|
+
--ds-background-subtleDiscovery-resting: #f3f0ff;
|
|
150
|
+
--ds-background-subtleDiscovery-hover: #dfd8fd;
|
|
151
|
+
--ds-background-subtleDiscovery-pressed: #b8acf6;
|
|
152
|
+
--ds-background-boldNeutral-resting: #44546f;
|
|
153
|
+
--ds-background-boldNeutral-hover: #2c3e5d;
|
|
154
|
+
--ds-background-boldNeutral-pressed: #172b4d;
|
|
155
|
+
--ds-background-transparentNeutral-hover: #091e420f;
|
|
156
|
+
--ds-background-transparentNeutral-pressed: #091e4224;
|
|
157
|
+
--ds-background-subtleNeutral-resting: #091e420f;
|
|
158
|
+
--ds-background-subtleNeutral-hover: #091e4224;
|
|
159
|
+
--ds-background-subtleNeutral-pressed: #091e424f;
|
|
160
|
+
--ds-background-subtleBorderedNeutral-resting: #091e4208;
|
|
161
|
+
--ds-background-subtleBorderedNeutral-pressed: #091e420f;
|
|
162
|
+
--ds-border-focus: #388bff;
|
|
163
|
+
--ds-border-neutral: #091e4224;
|
|
164
|
+
--ds-iconBorder-brand: #1d7afc;
|
|
165
|
+
--ds-iconBorder-danger: #e8422c;
|
|
166
|
+
--ds-iconBorder-warning: #db6e00;
|
|
167
|
+
--ds-iconBorder-success: #22a06b;
|
|
168
|
+
--ds-iconBorder-discovery: #8270db;
|
|
169
|
+
--ds-overlay-hover: #091e424f;
|
|
170
|
+
--ds-overlay-pressed: #091e427a;
|
|
171
|
+
--ds-text-selected: #0c66e4;
|
|
172
|
+
--ds-text-highEmphasis: #172b4d;
|
|
173
|
+
--ds-text-mediumEmphasis: #44546f;
|
|
174
|
+
--ds-text-lowEmphasis: #626f86;
|
|
175
|
+
--ds-text-onBold: #ffffff;
|
|
176
|
+
--ds-text-onBoldWarning: #172b4d;
|
|
177
|
+
--ds-text-link-resting: #0c66e4;
|
|
178
|
+
--ds-text-link-pressed: #0055cc;
|
|
179
|
+
--ds-text-brand: #0055cc;
|
|
180
|
+
--ds-text-warning: #974f0c;
|
|
181
|
+
--ds-text-danger: #b22515;
|
|
182
|
+
--ds-text-success: #216e4e;
|
|
183
|
+
--ds-text-discovery: #5e4db2;
|
|
184
|
+
--ds-text-disabled: #8993a5;
|
|
185
|
+
--ds-card: 0px 1px 1px #091e4240, 0px 0px 1px #091e424f;
|
|
186
|
+
--ds-overlay: 0px 8px 12px #091e4226, 0px 0px 1px #091e424f;
|
|
187
|
+
--ds-UNSAFE_util-transparent: transparent;
|
|
188
|
+
--ds-UNSAFE_util-MISSING_TOKEN: #fa11f2;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
html[data-theme='dark'] {
|
|
192
|
+
--accent-boldBlue: #0c66e4;
|
|
193
|
+
--accent-boldGreen: #1f845a;
|
|
194
|
+
--accent-boldOrange: #b85c00;
|
|
195
|
+
--accent-boldPurple: #6e5dc6;
|
|
196
|
+
--accent-boldRed: #ce2e1c;
|
|
197
|
+
--accent-boldTeal: #1d7f8c;
|
|
198
|
+
--accent-subtleBlue: #09326c;
|
|
199
|
+
--accent-subtleGreen: #164b35;
|
|
200
|
+
--accent-subtleMagenta: #50253f;
|
|
201
|
+
--accent-subtleOrange: #5f3811;
|
|
202
|
+
--accent-subtlePurple: #352c63;
|
|
203
|
+
--accent-subtleRed: #601d16;
|
|
204
|
+
--accent-subtleTeal: #1d474c;
|
|
205
|
+
--background-sunken: #03040454;
|
|
206
|
+
--background-default: #161a1d;
|
|
207
|
+
--background-card: #1d2125;
|
|
208
|
+
--background-overlay: #22272b;
|
|
209
|
+
--background-selected-resting: #a1bdd914;
|
|
210
|
+
--background-selected-hover: #a6c5e229;
|
|
211
|
+
--background-selected-pressed: #bfdbf847;
|
|
212
|
+
--background-blanket: #03040454;
|
|
213
|
+
--background-disabled: #a1bdd914;
|
|
214
|
+
--background-boldBrand-resting: #579dff;
|
|
215
|
+
--background-boldBrand-hover: #85b8ff;
|
|
216
|
+
--background-boldBrand-pressed: #cce0ff;
|
|
217
|
+
--background-subtleBrand-resting: #082145;
|
|
218
|
+
--background-subtleBrand-hover: #09326c;
|
|
219
|
+
--background-subtleBrand-pressed: #0055cc;
|
|
220
|
+
--background-boldDanger-resting: #f97362;
|
|
221
|
+
--background-boldDanger-hover: #ff9a8f;
|
|
222
|
+
--background-boldDanger-pressed: #ffd2cc;
|
|
223
|
+
--background-subtleDanger-resting: #391713;
|
|
224
|
+
--background-subtleDanger-hover: #601d16;
|
|
225
|
+
--background-subtleDanger-pressed: #b22515;
|
|
226
|
+
--background-boldWarning-resting: #ebb800;
|
|
227
|
+
--background-boldWarning-hover: #ffd138;
|
|
228
|
+
--background-boldWarning-pressed: #ffe785;
|
|
229
|
+
--background-subtleWarning-resting: #3d2e00;
|
|
230
|
+
--background-subtleWarning-hover: #533f04;
|
|
231
|
+
--background-subtleWarning-pressed: #7f5f01;
|
|
232
|
+
--background-boldSuccess-resting: #3acf91;
|
|
233
|
+
--background-boldSuccess-hover: #76e0b4;
|
|
234
|
+
--background-boldSuccess-pressed: #aff3d6;
|
|
235
|
+
--background-subtleSuccess-resting: #133527;
|
|
236
|
+
--background-subtleSuccess-hover: #164b35;
|
|
237
|
+
--background-subtleSuccess-pressed: #216e4e;
|
|
238
|
+
--background-boldDiscovery-resting: #9f8fef;
|
|
239
|
+
--background-boldDiscovery-hover: #b8acf6;
|
|
240
|
+
--background-boldDiscovery-pressed: #dfd8fd;
|
|
241
|
+
--background-subtleDiscovery-resting: #231c3f;
|
|
242
|
+
--background-subtleDiscovery-hover: #352c63;
|
|
243
|
+
--background-subtleDiscovery-pressed: #5e4db2;
|
|
244
|
+
--background-boldNeutral-resting: #9fadbc;
|
|
245
|
+
--background-boldNeutral-hover: #b6c2cf;
|
|
246
|
+
--background-boldNeutral-pressed: #c7d1db;
|
|
247
|
+
--background-transparentNeutral-hover: #a1bdd914;
|
|
248
|
+
--background-transparentNeutral-pressed: #a6c5e229;
|
|
249
|
+
--background-subtleNeutral-resting: #a1bdd914;
|
|
250
|
+
--background-subtleNeutral-hover: #a6c5e229;
|
|
251
|
+
--background-subtleNeutral-pressed: #bfdbf847;
|
|
252
|
+
--background-subtleBorderedNeutral-resting: #bcd6f00a;
|
|
253
|
+
--background-subtleBorderedNeutral-pressed: #a1bdd914;
|
|
254
|
+
--border-focus: #85b8ff;
|
|
255
|
+
--border-neutral: #a6c5e229;
|
|
256
|
+
--iconBorder-brand: #388bff;
|
|
257
|
+
--iconBorder-danger: #f35844;
|
|
258
|
+
--iconBorder-warning: #d19d00;
|
|
259
|
+
--iconBorder-success: #2abb7f;
|
|
260
|
+
--iconBorder-discovery: #8f7ee7;
|
|
261
|
+
--overlay-hover: #bfdbf847;
|
|
262
|
+
--overlay-pressed: #a3c0db7a;
|
|
263
|
+
--text-selected: #579dff;
|
|
264
|
+
--text-highEmphasis: #c7d1db;
|
|
265
|
+
--text-mediumEmphasis: #9fadbc;
|
|
266
|
+
--text-lowEmphasis: #8696a7;
|
|
267
|
+
--text-onBold: #161a1d;
|
|
268
|
+
--text-onBoldWarning: #161a1d;
|
|
269
|
+
--text-link-resting: #579dff;
|
|
270
|
+
--text-link-pressed: #85b8ff;
|
|
271
|
+
--text-brand: #85b8ff;
|
|
272
|
+
--text-warning: #ffd138;
|
|
273
|
+
--text-danger: #ff9a8f;
|
|
274
|
+
--text-success: #76e0b4;
|
|
275
|
+
--text-discovery: #b8acf6;
|
|
276
|
+
--text-disabled: #5a6977;
|
|
277
|
+
--card: 0px 1px 1px #03040480, 0px 0px 1px #03040480;
|
|
278
|
+
--overlay: inset 0px 0px 0px 1px #bcd6f00a, 0px 8px 12px #0304045c,
|
|
279
|
+
0px 0px 1px #03040480;
|
|
280
|
+
--UNSAFE_util-transparent: transparent;
|
|
281
|
+
--UNSAFE_util-MISSING_TOKEN: hotpink;
|
|
282
|
+
|
|
283
|
+
/* namespaced */
|
|
284
|
+
|
|
285
|
+
--ds-accent-boldBlue: #0c66e4;
|
|
286
|
+
--ds-accent-boldGreen: #1f845a;
|
|
287
|
+
--ds-accent-boldOrange: #b85c00;
|
|
288
|
+
--ds-accent-boldPurple: #6e5dc6;
|
|
289
|
+
--ds-accent-boldRed: #ce2e1c;
|
|
290
|
+
--ds-accent-boldTeal: #1d7f8c;
|
|
291
|
+
--ds-accent-subtleBlue: #09326c;
|
|
292
|
+
--ds-accent-subtleGreen: #164b35;
|
|
293
|
+
--ds-accent-subtleMagenta: #50253f;
|
|
294
|
+
--ds-accent-subtleOrange: #5f3811;
|
|
295
|
+
--ds-accent-subtlePurple: #352c63;
|
|
296
|
+
--ds-accent-subtleRed: #601d16;
|
|
297
|
+
--ds-accent-subtleTeal: #1d474c;
|
|
298
|
+
--ds-background-sunken: #03040454;
|
|
299
|
+
--ds-background-default: #161a1d;
|
|
300
|
+
--ds-background-card: #1d2125;
|
|
301
|
+
--ds-background-overlay: #22272b;
|
|
302
|
+
--ds-background-selected-resting: #a1bdd914;
|
|
303
|
+
--ds-background-selected-hover: #a6c5e229;
|
|
304
|
+
--ds-background-selected-pressed: #bfdbf847;
|
|
305
|
+
--ds-background-blanket: #03040454;
|
|
306
|
+
--ds-background-disabled: #a1bdd914;
|
|
307
|
+
--ds-background-boldBrand-resting: #579dff;
|
|
308
|
+
--ds-background-boldBrand-hover: #85b8ff;
|
|
309
|
+
--ds-background-boldBrand-pressed: #cce0ff;
|
|
310
|
+
--ds-background-subtleBrand-resting: #082145;
|
|
311
|
+
--ds-background-subtleBrand-hover: #09326c;
|
|
312
|
+
--ds-background-subtleBrand-pressed: #0055cc;
|
|
313
|
+
--ds-background-boldDanger-resting: #f97362;
|
|
314
|
+
--ds-background-boldDanger-hover: #ff9a8f;
|
|
315
|
+
--ds-background-boldDanger-pressed: #ffd2cc;
|
|
316
|
+
--ds-background-subtleDanger-resting: #391713;
|
|
317
|
+
--ds-background-subtleDanger-hover: #601d16;
|
|
318
|
+
--ds-background-subtleDanger-pressed: #b22515;
|
|
319
|
+
--ds-background-boldWarning-resting: #ebb800;
|
|
320
|
+
--ds-background-boldWarning-hover: #ffd138;
|
|
321
|
+
--ds-background-boldWarning-pressed: #ffe785;
|
|
322
|
+
--ds-background-subtleWarning-resting: #3d2e00;
|
|
323
|
+
--ds-background-subtleWarning-hover: #533f04;
|
|
324
|
+
--ds-background-subtleWarning-pressed: #7f5f01;
|
|
325
|
+
--ds-background-boldSuccess-resting: #3acf91;
|
|
326
|
+
--ds-background-boldSuccess-hover: #76e0b4;
|
|
327
|
+
--ds-background-boldSuccess-pressed: #aff3d6;
|
|
328
|
+
--ds-background-subtleSuccess-resting: #133527;
|
|
329
|
+
--ds-background-subtleSuccess-hover: #164b35;
|
|
330
|
+
--ds-background-subtleSuccess-pressed: #216e4e;
|
|
331
|
+
--ds-background-boldDiscovery-resting: #9f8fef;
|
|
332
|
+
--ds-background-boldDiscovery-hover: #b8acf6;
|
|
333
|
+
--ds-background-boldDiscovery-pressed: #dfd8fd;
|
|
334
|
+
--ds-background-subtleDiscovery-resting: #231c3f;
|
|
335
|
+
--ds-background-subtleDiscovery-hover: #352c63;
|
|
336
|
+
--ds-background-subtleDiscovery-pressed: #5e4db2;
|
|
337
|
+
--ds-background-boldNeutral-resting: #9fadbc;
|
|
338
|
+
--ds-background-boldNeutral-hover: #b6c2cf;
|
|
339
|
+
--ds-background-boldNeutral-pressed: #c7d1db;
|
|
340
|
+
--ds-background-transparentNeutral-hover: #a1bdd914;
|
|
341
|
+
--ds-background-transparentNeutral-pressed: #a6c5e229;
|
|
342
|
+
--ds-background-subtleNeutral-resting: #a1bdd914;
|
|
343
|
+
--ds-background-subtleNeutral-hover: #a6c5e229;
|
|
344
|
+
--ds-background-subtleNeutral-pressed: #bfdbf847;
|
|
345
|
+
--ds-background-subtleBorderedNeutral-resting: #bcd6f00a;
|
|
346
|
+
--ds-background-subtleBorderedNeutral-pressed: #a1bdd914;
|
|
347
|
+
--ds-border-focus: #85b8ff;
|
|
348
|
+
--ds-border-neutral: #a6c5e229;
|
|
349
|
+
--ds-iconBorder-brand: #388bff;
|
|
350
|
+
--ds-iconBorder-danger: #f35844;
|
|
351
|
+
--ds-iconBorder-warning: #d19d00;
|
|
352
|
+
--ds-iconBorder-success: #2abb7f;
|
|
353
|
+
--ds-iconBorder-discovery: #8f7ee7;
|
|
354
|
+
--ds-overlay-hover: #bfdbf847;
|
|
355
|
+
--ds-overlay-pressed: #a3c0db7a;
|
|
356
|
+
--ds-text-selected: #579dff;
|
|
357
|
+
--ds-text-highEmphasis: #c7d1db;
|
|
358
|
+
--ds-text-mediumEmphasis: #9fadbc;
|
|
359
|
+
--ds-text-lowEmphasis: #8696a7;
|
|
360
|
+
--ds-text-onBold: #161a1d;
|
|
361
|
+
--ds-text-onBoldWarning: #161a1d;
|
|
362
|
+
--ds-text-link-resting: #579dff;
|
|
363
|
+
--ds-text-link-pressed: #85b8ff;
|
|
364
|
+
--ds-text-brand: #85b8ff;
|
|
365
|
+
--ds-text-warning: #ffd138;
|
|
366
|
+
--ds-text-danger: #ff9a8f;
|
|
367
|
+
--ds-text-success: #76e0b4;
|
|
368
|
+
--ds-text-discovery: #b8acf6;
|
|
369
|
+
--ds-text-disabled: #5a6977;
|
|
370
|
+
--ds-card: 0px 1px 1px #03040480, 0px 0px 1px #03040480;
|
|
371
|
+
--ds-overlay: inset 0px 0px 0px 1px #bcd6f00a, 0px 8px 12px #0304045c,
|
|
372
|
+
0px 0px 1px #03040480;
|
|
373
|
+
--ds-UNSAFE_util-transparent: transparent;
|
|
374
|
+
--ds-UNSAFE_util-MISSING_TOKEN: #fa11f2;
|
|
375
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/* eslint-disable func-names */
|
|
2
|
+
/* eslint-disable no-console */
|
|
3
|
+
/* eslint-disable no-undef */
|
|
4
|
+
/* eslint-disable no-unused-vars */
|
|
5
|
+
|
|
6
|
+
// Chrome automatically creates a background.html page for this to execute.
|
|
7
|
+
// This can access the inspected page via executeScript
|
|
8
|
+
//
|
|
9
|
+
// Can use:
|
|
10
|
+
// chrome.tabs.*
|
|
11
|
+
// chrome.extension.*
|
|
12
|
+
|
|
13
|
+
// sync options settings
|
|
14
|
+
function setOptions(data = {}) {
|
|
15
|
+
chrome.storage.sync.set(data, function () {
|
|
16
|
+
console.log('Settings saved');
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function getOptions(keys, callback) {
|
|
21
|
+
chrome.storage.sync.get(keys, function (data) {
|
|
22
|
+
console.log('Settings retrieved', data);
|
|
23
|
+
callback(data);
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function queryTheme() {
|
|
28
|
+
const theme = window.localStorage && window.localStorage.theme;
|
|
29
|
+
console.log('theme', theme);
|
|
30
|
+
chrome.runtime.sendMessage({ theme });
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// when the extension is loaded when opening devtools
|
|
34
|
+
chrome.runtime.onConnect.addListener(function (port) {
|
|
35
|
+
// check for the theme in the running tab
|
|
36
|
+
chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) {
|
|
37
|
+
chrome.tabs.executeScript(tabs[0].id, {
|
|
38
|
+
code: `(${queryTheme})()`,
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
const extensionListener = function (message, sender, sendResponse) {
|
|
42
|
+
if (message.tabId && message.action) {
|
|
43
|
+
// handle changing theme from extension into inspected page
|
|
44
|
+
// these messages come from panel.js
|
|
45
|
+
|
|
46
|
+
console.log('background', message);
|
|
47
|
+
switch (message.action) {
|
|
48
|
+
case 'removeTheme':
|
|
49
|
+
chrome.tabs.sendMessage(message.tabId, 'none');
|
|
50
|
+
break;
|
|
51
|
+
case 'setTheme-light':
|
|
52
|
+
chrome.tabs.sendMessage(message.tabId, 'light');
|
|
53
|
+
break;
|
|
54
|
+
case 'setTheme-dark':
|
|
55
|
+
chrome.tabs.sendMessage(message.tabId, 'dark');
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// This accepts messages from the inspected page and
|
|
62
|
+
// sends them to the panel
|
|
63
|
+
} else {
|
|
64
|
+
port.postMessage(message);
|
|
65
|
+
}
|
|
66
|
+
sendResponse(message);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// Listens to messages sent from the panel
|
|
70
|
+
chrome.runtime.onMessage.addListener(extensionListener);
|
|
71
|
+
|
|
72
|
+
port.onDisconnect.addListener(function () {
|
|
73
|
+
chrome.runtime.onMessage.removeListener(extensionListener);
|
|
74
|
+
});
|
|
75
|
+
});
|