@digdir/designsystemet 1.0.0-next.35 → 1.0.0-next.37
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/README.md +16 -0
- package/dist/{types/bin → bin}/designsystemet.d.ts.map +1 -1
- package/dist/bin/designsystemet.js +14 -15
- package/dist/src/colors/index.d.ts.map +1 -0
- package/dist/{types/src → src}/colors/theme.d.ts +10 -5
- package/dist/src/colors/theme.d.ts.map +1 -0
- package/dist/src/colors/theme.js +28 -29
- package/dist/{types/src → src}/colors/types.d.ts +0 -1
- package/dist/src/colors/types.d.ts.map +1 -0
- package/dist/{types/src → src}/colors/utils.d.ts +7 -1
- package/dist/src/colors/utils.d.ts.map +1 -0
- package/dist/src/colors/utils.js +13 -6
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +2 -0
- package/dist/src/init/createTokensPackage.d.ts.map +1 -0
- package/dist/src/init/createTokensPackage.js +4 -4
- package/dist/src/init/generateMetadataJson.d.ts.map +1 -0
- package/dist/src/init/generateMetadataJson.js +2 -2
- package/dist/src/init/generateThemesJson.d.ts.map +1 -0
- package/dist/src/init/generateThemesJson.js +2 -2
- package/dist/src/init/index.d.ts.map +1 -0
- package/dist/src/init/nextStepsMarkdown.d.ts.map +1 -0
- package/dist/src/init/nextStepsMarkdown.js +2 -2
- package/dist/src/init/utils.d.ts.map +1 -0
- package/dist/src/migrations/beta-to-v1.d.ts.map +1 -0
- package/dist/src/migrations/beta-to-v1.js +4 -4
- package/dist/src/migrations/codemods/css/plugins.d.ts.map +1 -0
- package/dist/src/migrations/codemods/css/run.d.ts.map +1 -0
- package/dist/src/migrations/codemods/jsx/classname-prefix.d.ts.map +1 -0
- package/dist/src/migrations/codemods/jsx/run.d.ts.map +1 -0
- package/dist/src/migrations/index.d.ts.map +1 -0
- package/dist/src/migrations/react-beta-to-v1.d.ts.map +1 -0
- package/dist/src/tokens/build/actions.d.ts.map +1 -0
- package/dist/src/tokens/build/builtin-colors.css +87 -0
- package/dist/src/tokens/build/configs.d.ts +21 -0
- package/dist/src/tokens/build/configs.d.ts.map +1 -0
- package/dist/src/tokens/build/configs.js +120 -67
- package/dist/src/tokens/build/formats/css.d.ts +13 -0
- package/dist/src/tokens/build/formats/css.d.ts.map +1 -0
- package/dist/src/tokens/build/formats/css.js +66 -14
- package/dist/src/tokens/build/formats/js-tokens.d.ts.map +1 -0
- package/dist/src/tokens/build/formats/js-tokens.js +2 -2
- package/dist/{types/src → src}/tokens/build/transformers.d.ts +1 -0
- package/dist/src/tokens/build/transformers.d.ts.map +1 -0
- package/dist/src/tokens/build/transformers.js +13 -0
- package/dist/src/tokens/build/types.d.ts +44 -0
- package/dist/src/tokens/build/types.d.ts.map +1 -0
- package/dist/src/tokens/build/types.js +7 -0
- package/dist/src/tokens/build/utils/entryfile.d.ts.map +1 -0
- package/dist/src/tokens/build/utils/entryfile.js +14 -6
- package/dist/src/tokens/build/utils/getMultidimensionalThemes.d.ts +35 -0
- package/dist/src/tokens/build/utils/getMultidimensionalThemes.d.ts.map +1 -0
- package/dist/src/tokens/build/utils/getMultidimensionalThemes.js +112 -0
- package/dist/src/tokens/build/utils/noCase.d.ts.map +1 -0
- package/dist/{types/src → src}/tokens/build/utils/utils.d.ts +3 -0
- package/dist/src/tokens/build/utils/utils.d.ts.map +1 -0
- package/dist/src/tokens/build/utils/utils.js +15 -0
- package/dist/src/tokens/build.d.ts +17 -0
- package/dist/src/tokens/build.d.ts.map +1 -0
- package/dist/src/tokens/build.js +97 -77
- package/dist/{types/src → src}/tokens/create.d.ts +5 -0
- package/dist/src/tokens/create.d.ts.map +1 -0
- package/dist/src/tokens/create.js +13 -10
- package/dist/src/tokens/design-tokens/default/primitives/globals.json +2 -8
- package/dist/src/tokens/design-tokens/default/semantic/style.json +86 -182
- package/dist/src/tokens/design-tokens/template/$metadata.json +8 -4
- package/dist/src/tokens/design-tokens/template/$themes.json +141 -25
- package/dist/src/tokens/design-tokens/template/semantic/color-base-file.json +262 -0
- package/dist/src/tokens/design-tokens/template/semantic/modes/category-color/category-color-template.json +62 -0
- package/dist/src/tokens/design-tokens/template/semantic/semantic-color-template.json +62 -0
- package/dist/src/tokens/design-tokens/template/themes/theme-base-file.json +53 -0
- package/dist/src/tokens/design-tokens/template/themes/theme-color-template.json +62 -0
- package/dist/src/tokens/index.d.ts +2 -0
- package/dist/src/tokens/index.d.ts.map +1 -0
- package/dist/src/tokens/index.js +5 -0
- package/dist/src/tokens/template.d.ts.map +1 -0
- package/dist/src/tokens/template.js +36 -4
- package/dist/{types/src → src}/tokens/types.d.ts +5 -2
- package/dist/src/tokens/types.d.ts.map +1 -0
- package/dist/{types/src → src}/tokens/write/generate$metadata.d.ts +2 -1
- package/dist/src/tokens/write/generate$metadata.d.ts.map +1 -0
- package/dist/src/tokens/write/generate$metadata.js +5 -3
- package/dist/{types/src → src}/tokens/write/generate$themes.d.ts +2 -1
- package/dist/src/tokens/write/generate$themes.d.ts.map +1 -0
- package/dist/src/tokens/write/generate$themes.js +20 -6
- package/dist/{types/src → src}/tokens/write.d.ts +2 -1
- package/dist/src/tokens/write.d.ts.map +1 -0
- package/dist/src/tokens/write.js +101 -13
- package/package.json +9 -8
- package/dist/src/init/template/prettier.config.js +0 -5
- package/dist/src/tokens/build/utils/permutateThemes.js +0 -64
- package/dist/src/tokens/design-tokens/default/semantic/color.json +0 -572
- package/dist/src/tokens/design-tokens/template/themes/theme.json +0 -334
- package/dist/types/src/colors/index.d.ts.map +0 -1
- package/dist/types/src/colors/theme.d.ts.map +0 -1
- package/dist/types/src/colors/types.d.ts.map +0 -1
- package/dist/types/src/colors/utils.d.ts.map +0 -1
- package/dist/types/src/init/createTokensPackage.d.ts.map +0 -1
- package/dist/types/src/init/generateMetadataJson.d.ts.map +0 -1
- package/dist/types/src/init/generateThemesJson.d.ts.map +0 -1
- package/dist/types/src/init/index.d.ts.map +0 -1
- package/dist/types/src/init/nextStepsMarkdown.d.ts.map +0 -1
- package/dist/types/src/init/template/prettier.config.d.mts +0 -9
- package/dist/types/src/init/template/prettier.config.d.mts.map +0 -1
- package/dist/types/src/init/utils.d.ts.map +0 -1
- package/dist/types/src/migrations/beta-to-v1.d.ts.map +0 -1
- package/dist/types/src/migrations/codemods/css/plugins.d.ts.map +0 -1
- package/dist/types/src/migrations/codemods/css/run.d.ts.map +0 -1
- package/dist/types/src/migrations/codemods/jsx/classname-prefix.d.ts.map +0 -1
- package/dist/types/src/migrations/codemods/jsx/run.d.ts.map +0 -1
- package/dist/types/src/migrations/index.d.ts.map +0 -1
- package/dist/types/src/migrations/react-beta-to-v1.d.ts.map +0 -1
- package/dist/types/src/tokens/build/actions.d.ts.map +0 -1
- package/dist/types/src/tokens/build/configs.d.ts +0 -31
- package/dist/types/src/tokens/build/configs.d.ts.map +0 -1
- package/dist/types/src/tokens/build/formats/css.d.ts +0 -5
- package/dist/types/src/tokens/build/formats/css.d.ts.map +0 -1
- package/dist/types/src/tokens/build/formats/js-tokens.d.ts.map +0 -1
- package/dist/types/src/tokens/build/transformers.d.ts.map +0 -1
- package/dist/types/src/tokens/build/utils/entryfile.d.ts.map +0 -1
- package/dist/types/src/tokens/build/utils/noCase.d.ts.map +0 -1
- package/dist/types/src/tokens/build/utils/permutateThemes.d.ts +0 -17
- package/dist/types/src/tokens/build/utils/permutateThemes.d.ts.map +0 -1
- package/dist/types/src/tokens/build/utils/utils.d.ts.map +0 -1
- package/dist/types/src/tokens/build.d.ts +0 -13
- package/dist/types/src/tokens/build.d.ts.map +0 -1
- package/dist/types/src/tokens/create.d.ts.map +0 -1
- package/dist/types/src/tokens/template.d.ts.map +0 -1
- package/dist/types/src/tokens/types.d.ts.map +0 -1
- package/dist/types/src/tokens/write/generate$metadata.d.ts.map +0 -1
- package/dist/types/src/tokens/write/generate$themes.d.ts.map +0 -1
- package/dist/types/src/tokens/write.d.ts.map +0 -1
- /package/dist/{types/bin → bin}/designsystemet.d.ts +0 -0
- /package/dist/{types/src → src}/colors/index.d.ts +0 -0
- /package/dist/{types/src → src}/init/createTokensPackage.d.ts +0 -0
- /package/dist/{types/src → src}/init/generateMetadataJson.d.ts +0 -0
- /package/dist/{types/src → src}/init/generateThemesJson.d.ts +0 -0
- /package/dist/{types/src → src}/init/index.d.ts +0 -0
- /package/dist/{types/src → src}/init/nextStepsMarkdown.d.ts +0 -0
- /package/dist/{types/src → src}/init/utils.d.ts +0 -0
- /package/dist/{types/src → src}/migrations/beta-to-v1.d.ts +0 -0
- /package/dist/{types/src → src}/migrations/codemods/css/plugins.d.ts +0 -0
- /package/dist/{types/src → src}/migrations/codemods/css/run.d.ts +0 -0
- /package/dist/{types/src → src}/migrations/codemods/jsx/classname-prefix.d.ts +0 -0
- /package/dist/{types/src → src}/migrations/codemods/jsx/run.d.ts +0 -0
- /package/dist/{types/src → src}/migrations/index.d.ts +0 -0
- /package/dist/{types/src → src}/migrations/react-beta-to-v1.d.ts +0 -0
- /package/dist/{types/src → src}/tokens/build/actions.d.ts +0 -0
- /package/dist/{types/src → src}/tokens/build/formats/js-tokens.d.ts +0 -0
- /package/dist/{types/src → src}/tokens/build/utils/entryfile.d.ts +0 -0
- /package/dist/{types/src → src}/tokens/build/utils/noCase.d.ts +0 -0
- /package/dist/{types/src → src}/tokens/template.d.ts +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# @digdir/designsystemet
|
|
2
|
+
|
|
3
|
+
CLI and tooling for Designsystemet
|
|
4
|
+
|
|
5
|
+
Use `--help` for available commands and options
|
|
6
|
+
|
|
7
|
+
Read the Designsystemet [README](https://github.com/digdir/designsystemet) to get started.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## Usage
|
|
11
|
+
|
|
12
|
+
### Create tokens
|
|
13
|
+
We recommend using the [Designsystemet theme-builder](https://theme.designsystemet.no/) for generating options and commandline snippet.
|
|
14
|
+
|
|
15
|
+
### Build tokens
|
|
16
|
+
Use `npx @digdir/designsystemet tokens build` to build CSS from design-tokens generated in the step above.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"designsystemet.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"designsystemet.d.ts","sourceRoot":"","sources":["../../bin/designsystemet.ts"],"names":[],"mappings":""}
|
|
@@ -2,35 +2,32 @@
|
|
|
2
2
|
import { Argument, createCommand, program } from "@commander-js/extra-typings";
|
|
3
3
|
import chalk from "chalk";
|
|
4
4
|
import { convertToHex } from "../src/colors/index.js";
|
|
5
|
-
import { createTokensPackage } from "../src/init/createTokensPackage.js";
|
|
6
5
|
import migrations from "../src/migrations/index.js";
|
|
7
6
|
import { buildTokens } from "../src/tokens/build.js";
|
|
8
|
-
import { createTokens } from "../src/tokens/create.js";
|
|
7
|
+
import { colorCliOptions, createTokens } from "../src/tokens/create.js";
|
|
9
8
|
import { writeTokens } from "../src/tokens/write.js";
|
|
10
|
-
program.name("
|
|
9
|
+
program.name("designsystemet").description("CLI for working with Designsystemet").showHelpAfterError();
|
|
11
10
|
function makeTokenCommands() {
|
|
12
11
|
const tokenCmd = createCommand("tokens");
|
|
13
12
|
const DEFAULT_TOKENSDIR = "./design-tokens";
|
|
14
|
-
tokenCmd.command("build").description("Build Designsystemet tokens").option("-t, --tokens <string>", `Path to ${chalk.blue("design-tokens")}`, DEFAULT_TOKENSDIR).option("-o, --out <string>", `Output directory for built ${chalk.blue("design-tokens")}`, "./
|
|
13
|
+
tokenCmd.command("build").description("Build Designsystemet tokens").option("-t, --tokens <string>", `Path to ${chalk.blue("design-tokens")}`, DEFAULT_TOKENSDIR).option("-o, --out <string>", `Output directory for built ${chalk.blue("design-tokens")}`, "./build").option("-p, --preview", "Generate preview token.ts files", false).option("--verbose", "Enable verbose output", false).action((opts) => {
|
|
15
14
|
const tokens = typeof opts.tokens === "string" ? opts.tokens : DEFAULT_TOKENSDIR;
|
|
16
15
|
const out = typeof opts.out === "string" ? opts.out : "./dist/tokens";
|
|
17
16
|
const preview = opts.preview;
|
|
18
17
|
const verbose = opts.verbose;
|
|
19
|
-
console.log(`
|
|
18
|
+
console.log(`Building tokens in ${chalk.green(tokens)}`);
|
|
20
19
|
return buildTokens({ tokens, out, preview, verbose });
|
|
21
20
|
});
|
|
22
|
-
tokenCmd.command("create").description("Create Designsystemet tokens").requiredOption(
|
|
21
|
+
tokenCmd.command("create").description("Create Designsystemet tokens").requiredOption(`-m, --${colorCliOptions.main} <name:hex...>`, `Main colors`, parseColorValues).requiredOption(`-s, --${colorCliOptions.support} <name:hex...>`, `Support colors`, parseColorValues).requiredOption(`-n, --${colorCliOptions.neutral} <hex>`, `Neutral hex color`, convertToHex).option("-w, --write [string]", `Output directory for created ${chalk.blue("design-tokens")}`, DEFAULT_TOKENSDIR).option("-f, --font-family <string>", `Font family`, "Inter").option("--theme <string>", `Theme name`, "theme").action(async (opts) => {
|
|
23
22
|
const { theme, fontFamily } = opts;
|
|
24
23
|
console.log(`Creating tokens with options ${chalk.green(JSON.stringify(opts, null, 2))}`);
|
|
25
24
|
const write = typeof opts.write === "boolean" ? DEFAULT_TOKENSDIR : opts.write;
|
|
26
25
|
const props = {
|
|
27
26
|
themeName: theme,
|
|
28
27
|
colors: {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
brand2: convertToHex(opts.brand2),
|
|
33
|
-
brand3: convertToHex(opts.brand3)
|
|
28
|
+
main: opts.mainColors,
|
|
29
|
+
support: opts.supportColors,
|
|
30
|
+
neutral: opts.neutralColor
|
|
34
31
|
},
|
|
35
32
|
typography: {
|
|
36
33
|
fontFamily
|
|
@@ -38,7 +35,7 @@ function makeTokenCommands() {
|
|
|
38
35
|
};
|
|
39
36
|
const tokens = createTokens(props);
|
|
40
37
|
if (write) {
|
|
41
|
-
await writeTokens({ writeDir: write, tokens, themeName: theme });
|
|
38
|
+
await writeTokens({ writeDir: write, tokens, themeName: theme, colors: props.colors });
|
|
42
39
|
}
|
|
43
40
|
return Promise.resolve();
|
|
44
41
|
});
|
|
@@ -63,7 +60,9 @@ program.command("migrate").description("run a Designsystemet migration").addArgu
|
|
|
63
60
|
console.log("Migrate: please specify a migration name or --list");
|
|
64
61
|
}
|
|
65
62
|
});
|
|
66
|
-
program.command("init").description("create an initial token structure for Designsystemet").addArgument(new Argument("<targetDir>", "Target directory for the generated code")).action(async (targetDir) => {
|
|
67
|
-
await createTokensPackage(targetDir);
|
|
68
|
-
});
|
|
69
63
|
await program.parseAsync(process.argv);
|
|
64
|
+
function parseColorValues(value, previous = {}) {
|
|
65
|
+
const [name, hex] = value.split(":");
|
|
66
|
+
previous[name] = convertToHex(hex);
|
|
67
|
+
return previous;
|
|
68
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/colors/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CssColor } from '@adobe/leonardo-contrast-colors';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Colors } from '../tokens/types.js';
|
|
3
|
+
import type { ColorInfo, ColorMode, ColorNumber, ContrastMode, GlobalColors, ThemeInfo } from './types.js';
|
|
3
4
|
export declare const baseColors: Record<GlobalColors, CssColor>;
|
|
4
|
-
type Colors = Record<ThemeColors, CssColor>;
|
|
5
5
|
export type ColorError = 'none' | 'decorative' | 'interaction';
|
|
6
6
|
type GlobalGenType = {
|
|
7
7
|
themeMode?: ColorMode | 'all';
|
|
@@ -16,9 +16,9 @@ type ThemeGenType = {
|
|
|
16
16
|
* Generates a color scale based on a base color and a mode.
|
|
17
17
|
*
|
|
18
18
|
* @param color The base color that is used to generate the color scale
|
|
19
|
-
* @param
|
|
19
|
+
* @param colorScheme The color scheme to generate a scale for
|
|
20
20
|
*/
|
|
21
|
-
export declare const generateScaleForColor: (color: CssColor,
|
|
21
|
+
export declare const generateScaleForColor: (color: CssColor, colorScheme: ColorMode, contrastMode?: "aa" | "aaa") => ColorInfo[];
|
|
22
22
|
/**
|
|
23
23
|
*
|
|
24
24
|
* Generates a color theme based on a base color. Light, Dark and Contrast scales are includes.
|
|
@@ -27,6 +27,11 @@ export declare const generateScaleForColor: (color: CssColor, mode: ColorMode, c
|
|
|
27
27
|
*/
|
|
28
28
|
export declare const generateThemeForColor: (color: CssColor, contrastMode?: "aa" | "aaa") => ThemeInfo;
|
|
29
29
|
export declare const generateGlobalColors: ({ contrastMode }: GlobalGenType) => Record<GlobalColors, ThemeInfo>;
|
|
30
|
+
type GeneratedColorTheme = {
|
|
31
|
+
main: Record<string, ThemeInfo>;
|
|
32
|
+
support: Record<string, ThemeInfo>;
|
|
33
|
+
neutral: ThemeInfo;
|
|
34
|
+
};
|
|
30
35
|
/**
|
|
31
36
|
* This function generates a complete theme for a set of colors.
|
|
32
37
|
*
|
|
@@ -34,7 +39,7 @@ export declare const generateGlobalColors: ({ contrastMode }: GlobalGenType) =>
|
|
|
34
39
|
* @param contrastMode The contrast mode to use
|
|
35
40
|
* @returns
|
|
36
41
|
*/
|
|
37
|
-
export declare const generateColorTheme: ({ colors, contrastMode }: ThemeGenType) =>
|
|
42
|
+
export declare const generateColorTheme: ({ colors, contrastMode }: ThemeGenType) => GeneratedColorTheme;
|
|
38
43
|
/**
|
|
39
44
|
*
|
|
40
45
|
* This function calculates a color that can be used as a strong contrast color to a base color.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/colors/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAKhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG3G,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAOrD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,aAAa,CAAC;AAE/D,KAAK,aAAa,GAAG;IACnB,SAAS,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC9B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AA2EF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,UACzB,QAAQ,eACF,SAAS,iBACR,IAAI,GAAG,KAAK,KACzB,SAAS,EAuCX,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,UAAW,QAAQ,iBAAgB,IAAI,GAAG,KAAK,KAAU,SAU1F,CAAC;AAEF,eAAO,MAAM,oBAAoB,qBAA6B,aAAa,KAAG,MAAM,CAAC,YAAY,EAAE,SAAS,CAgB3G,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,OAAO,EAAE,SAAS,CAAC;CACpB,CAAC;AACF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,6BAAqC,YAAY,KAAG,mBAUlF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,cAAe,QAAQ,0BAO5D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,UAAW,QAAQ,aAaxD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,qBAAsB,QAAQ,mBAAmB,QAAQ,YAe1F,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,UAAW,QAAQ,aAAa,MAAM,aAkB1E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,SAAU,MAAM,KAAG,WAmBrD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,WAAY,WAAW,KAAG,MAmB5D,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,QAAQ,KAQvB,QACpB,CAAC;AAEF,eAAO,MAAM,cAAc,cAAe,MAAM,eAAe,WAAW,WAEzE,CAAC"}
|
package/dist/src/colors/theme.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BackgroundColor, Color, Theme } from "@adobe/leonardo-contrast-colors";
|
|
2
2
|
import { Hsluv } from "hsluv";
|
|
3
|
+
import * as R from "ramda";
|
|
3
4
|
import { getContrastFromHex, getContrastFromLightness, getLightnessFromHex } from "./utils.js";
|
|
4
5
|
const baseColors = {
|
|
5
6
|
blue: "#0A71C0",
|
|
@@ -7,40 +8,42 @@ const baseColors = {
|
|
|
7
8
|
orange: "#B8581D",
|
|
8
9
|
purple: "#663299",
|
|
9
10
|
red: "#C01B1B",
|
|
10
|
-
yellow: "#
|
|
11
|
+
yellow: "#D4B12F"
|
|
11
12
|
};
|
|
12
|
-
const generateThemeColor = (color,
|
|
13
|
+
const generateThemeColor = (color, colorScheme, contrastMode = "aa") => {
|
|
13
14
|
const leoBackgroundColor = new BackgroundColor({
|
|
14
15
|
name: "backgroundColor",
|
|
15
16
|
colorKeys: ["#ffffff"],
|
|
16
17
|
ratios: [1]
|
|
17
18
|
});
|
|
18
19
|
let colorLightness = getLightnessFromHex(color);
|
|
19
|
-
if (
|
|
20
|
+
if (colorScheme === "dark" || colorScheme === "contrast") {
|
|
20
21
|
color = getBaseColor(color);
|
|
21
22
|
colorLightness = colorLightness <= 30 ? 70 : 100 - colorLightness;
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
+
let modifier = 8;
|
|
25
|
+
if (colorLightness <= 30) {
|
|
26
|
+
modifier = -modifier;
|
|
27
|
+
}
|
|
28
|
+
if (colorLightness >= 49 && colorLightness <= 65) {
|
|
29
|
+
modifier = -modifier;
|
|
30
|
+
}
|
|
24
31
|
const baseDefaultContrast = getContrastFromLightness(colorLightness, color, leoBackgroundColor.colorKeys[0]);
|
|
25
|
-
const baseHoverContrast = getContrastFromLightness(
|
|
26
|
-
colorLightness - multiplier,
|
|
27
|
-
color,
|
|
28
|
-
leoBackgroundColor.colorKeys[0]
|
|
29
|
-
);
|
|
32
|
+
const baseHoverContrast = getContrastFromLightness(colorLightness - modifier, color, leoBackgroundColor.colorKeys[0]);
|
|
30
33
|
const baseActiveContrast = getContrastFromLightness(
|
|
31
|
-
colorLightness -
|
|
34
|
+
colorLightness - modifier * 2,
|
|
32
35
|
color,
|
|
33
36
|
leoBackgroundColor.colorKeys[0]
|
|
34
37
|
);
|
|
35
|
-
const textSubLightLightness = contrastMode === "aa" ?
|
|
38
|
+
const textSubLightLightness = contrastMode === "aa" ? 41 : 30;
|
|
36
39
|
const textDefLightLightness = contrastMode === "aa" ? 18 : 12;
|
|
37
|
-
const textSubDarkLightness = contrastMode === "aa" ?
|
|
40
|
+
const textSubDarkLightness = contrastMode === "aa" ? 66 : 80;
|
|
38
41
|
const textDefDarkLightness = contrastMode === "aa" ? 90 : 94;
|
|
39
42
|
let lightnessScale = [];
|
|
40
|
-
if (
|
|
41
|
-
lightnessScale = [100, 96, 90, 84, 78, 76,
|
|
42
|
-
} else if (
|
|
43
|
-
lightnessScale = [10, 14, 20, 26, 32, 35,
|
|
43
|
+
if (colorScheme === "light") {
|
|
44
|
+
lightnessScale = [100, 96, 90, 84, 78, 76, 53, 41, textSubLightLightness, textDefLightLightness];
|
|
45
|
+
} else if (colorScheme === "dark") {
|
|
46
|
+
lightnessScale = [10, 14, 20, 26, 32, 35, 52, 66, textSubDarkLightness, textDefDarkLightness];
|
|
44
47
|
} else {
|
|
45
48
|
lightnessScale = [1, 6, 14, 20, 26, 58, 70, 82, 80, 95];
|
|
46
49
|
}
|
|
@@ -59,8 +62,8 @@ const generateThemeColor = (color, mode, contrastMode = "aa") => {
|
|
|
59
62
|
]
|
|
60
63
|
});
|
|
61
64
|
};
|
|
62
|
-
const generateScaleForColor = (color,
|
|
63
|
-
const themeColor = generateThemeColor(color,
|
|
65
|
+
const generateScaleForColor = (color, colorScheme, contrastMode = "aa") => {
|
|
66
|
+
const themeColor = generateThemeColor(color, colorScheme, contrastMode);
|
|
64
67
|
const leoBackgroundColor = new BackgroundColor({
|
|
65
68
|
name: "backgroundColor",
|
|
66
69
|
colorKeys: ["#ffffff"],
|
|
@@ -89,7 +92,7 @@ const generateScaleForColor = (color, mode, contrastMode = "aa") => {
|
|
|
89
92
|
number: 15,
|
|
90
93
|
name: getColorNameFromNumber(15)
|
|
91
94
|
});
|
|
92
|
-
if (
|
|
95
|
+
if (colorScheme === "light") {
|
|
93
96
|
outputArray[8].hex = color;
|
|
94
97
|
}
|
|
95
98
|
return outputArray;
|
|
@@ -121,17 +124,13 @@ const generateGlobalColors = ({ contrastMode = "aa" }) => {
|
|
|
121
124
|
};
|
|
122
125
|
};
|
|
123
126
|
const generateColorTheme = ({ colors, contrastMode = "aa" }) => {
|
|
124
|
-
const
|
|
125
|
-
const
|
|
126
|
-
const
|
|
127
|
-
const brand2Theme = generateThemeForColor(colors.brand2, contrastMode);
|
|
128
|
-
const brand3Theme = generateThemeForColor(colors.brand3, contrastMode);
|
|
127
|
+
const main = R.map((color) => generateThemeForColor(color, contrastMode), colors.main);
|
|
128
|
+
const support = R.map((color) => generateThemeForColor(color, contrastMode), colors.support);
|
|
129
|
+
const neutral = generateThemeForColor(colors.neutral, contrastMode);
|
|
129
130
|
return {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
brand2: brand2Theme,
|
|
134
|
-
brand3: brand3Theme
|
|
131
|
+
main,
|
|
132
|
+
support,
|
|
133
|
+
neutral
|
|
135
134
|
};
|
|
136
135
|
};
|
|
137
136
|
const calculateContrastOneColor = (baseColor) => {
|
|
@@ -3,7 +3,6 @@ export type ColorMode = 'light' | 'dark' | 'contrast';
|
|
|
3
3
|
export type ContrastMode = 'aa' | 'aaa';
|
|
4
4
|
export type ColorNumber = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15;
|
|
5
5
|
export type GlobalColors = 'red' | 'blue' | 'green' | 'orange' | 'purple' | 'yellow';
|
|
6
|
-
export type ThemeColors = 'accent' | 'neutral' | 'brand1' | 'brand2' | 'brand3';
|
|
7
6
|
export type ColorInfo = {
|
|
8
7
|
hex: CssColor;
|
|
9
8
|
number: ColorNumber;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/colors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAEhE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AACtD,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,KAAK,CAAC;AACxC,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC1F,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AACrF,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC"}
|
|
@@ -41,9 +41,10 @@ export declare const HSLToHex: (h: number, s: number, l: number) => string;
|
|
|
41
41
|
* Converts a HEX color '#xxxxxx' into an array of RGB values '[R, G, B]'
|
|
42
42
|
*
|
|
43
43
|
* @param hex A hex color string
|
|
44
|
+
* @param type The type of RGB values to return
|
|
44
45
|
* @returns RGB values in an array
|
|
45
46
|
*/
|
|
46
|
-
export declare const hexToRgb: (hex: string) => {
|
|
47
|
+
export declare const hexToRgb: (hex: string, type?: "255" | "1") => {
|
|
47
48
|
r: number;
|
|
48
49
|
g: number;
|
|
49
50
|
b: number;
|
|
@@ -129,4 +130,9 @@ export declare const isHexColor: (hex: string) => boolean;
|
|
|
129
130
|
* @returns
|
|
130
131
|
*/
|
|
131
132
|
export declare const convertToHex: (color?: string) => CssColor;
|
|
133
|
+
export declare const rgbToHex: (rgb: {
|
|
134
|
+
r: number;
|
|
135
|
+
g: number;
|
|
136
|
+
b: number;
|
|
137
|
+
}) => string;
|
|
132
138
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/colors/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAKhE;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,QAAS,MAAM,iCA6CtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,MAAO,MAAM,aAwCjC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,aAKrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,QAAS,MAAM,EAAE,WAExC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,MAAO,MAAM,KAAK,MAAM,KAAK,MAAM,WA+CvD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,QAAS,MAAM,SAAQ,KAAK,GAAG,GAAG;;;;QAYtD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,MAAO,MAAM,KAAK,MAAM,KAAK,MAAM,WAM/D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAS,QAAQ,WAS7C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,SAAU,MAAM,QAAQ,MAAM,WAKzD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAS,QAAQ,WAElD,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAS,QAAQ,WAEpD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAAS,MAAM,WAK9C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,WAAY,QAAQ,UAAU,QAAQ,WAOpE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,cAAe,MAAM,aAAa,QAAQ,mBAAmB,QAAQ,WAYzG,CAAC;AAEF;;GAEG;AAKH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,WAAY,QAAQ,UAAU,QAAQ,SAAQ,YAAY,GAAG,IAAI,GAAG,KAAK,YAYzG,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,QAAQ,mBAAmB,QAAQ,oBAW/E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,QAAS,MAAM,YAErC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,WAAY,MAAM,KAAG,QAQ7C,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAS;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,WAUhE,CAAC"}
|
package/dist/src/colors/utils.js
CHANGED
|
@@ -129,14 +129,14 @@ const HSLToHex = (h, s, l) => {
|
|
|
129
129
|
if (b.toString().length === 1) b = parseInt("0" + b.toString(), 10);
|
|
130
130
|
return "#" + r + g + b;
|
|
131
131
|
};
|
|
132
|
-
const hexToRgb = (hex) => {
|
|
132
|
+
const hexToRgb = (hex, type = "255") => {
|
|
133
133
|
const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
|
|
134
134
|
hex = hex.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b);
|
|
135
135
|
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
136
136
|
return result ? {
|
|
137
|
-
r: parseInt(result[1], 16),
|
|
138
|
-
g: parseInt(result[2], 16),
|
|
139
|
-
b: parseInt(result[3], 16)
|
|
137
|
+
r: type === "255" ? parseInt(result[1], 16) : parseInt(result[1], 16) / 255,
|
|
138
|
+
g: type === "255" ? parseInt(result[2], 16) : parseInt(result[2], 16) / 255,
|
|
139
|
+
b: type === "255" ? parseInt(result[3], 16) : parseInt(result[3], 16) / 255
|
|
140
140
|
} : null;
|
|
141
141
|
};
|
|
142
142
|
const luminanceFromRgb = (r, g, b) => {
|
|
@@ -172,7 +172,7 @@ const getLightnessFromHex = (hex) => {
|
|
|
172
172
|
const conv = new Hsluv();
|
|
173
173
|
conv.hex = hex;
|
|
174
174
|
conv.hexToHsluv();
|
|
175
|
-
return Number(conv.hsluv_l.toFixed(
|
|
175
|
+
return Number(conv.hsluv_l.toFixed(1));
|
|
176
176
|
};
|
|
177
177
|
const getContrastFromHex = (color1, color2) => {
|
|
178
178
|
const lum1 = luminanceFromHex(color1);
|
|
@@ -230,6 +230,12 @@ const convertToHex = (color) => {
|
|
|
230
230
|
}
|
|
231
231
|
return chroma(color).hex();
|
|
232
232
|
};
|
|
233
|
+
const rgbToHex = (rgb) => {
|
|
234
|
+
return "#" + [rgb.r, rgb.g, rgb.b].map((x) => {
|
|
235
|
+
const hex = Math.round(x * 255).toString(16);
|
|
236
|
+
return hex.length === 1 ? "0" + hex : hex;
|
|
237
|
+
}).join("");
|
|
238
|
+
};
|
|
233
239
|
export {
|
|
234
240
|
HSLToHex,
|
|
235
241
|
areColorsContrasting,
|
|
@@ -248,5 +254,6 @@ export {
|
|
|
248
254
|
hslArrToCss,
|
|
249
255
|
isHexColor,
|
|
250
256
|
luminanceFromHex,
|
|
251
|
-
luminanceFromRgb
|
|
257
|
+
luminanceFromRgb,
|
|
258
|
+
rgbToHex
|
|
252
259
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createTokensPackage.d.ts","sourceRoot":"","sources":["../../../src/init/createTokensPackage.ts"],"names":[],"mappings":"AAaA,QAAA,MAAM,KAAK,wCAAyC,CAAC;AACrD,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AA0B1C,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,iBAyQ1D"}
|
|
@@ -188,15 +188,15 @@ Will now create the following:
|
|
|
188
188
|
for (const theme of themes.map(normalizeTokenSetName)) {
|
|
189
189
|
for (const mode of modes.map(normalizeTokenSetName)) {
|
|
190
190
|
await fs.cp(
|
|
191
|
-
path.join(TOKEN_TEMPLATE_FILES_PATH, `primitives/modes/
|
|
192
|
-
path.join(TOKENS_TARGET_DIR, `primitives/modes/
|
|
191
|
+
path.join(TOKEN_TEMPLATE_FILES_PATH, `primitives/modes/color-scheme/${mode}/global.json`),
|
|
192
|
+
path.join(TOKENS_TARGET_DIR, `primitives/modes/color-scheme/${mode}/global.json`),
|
|
193
193
|
{ recursive: true }
|
|
194
194
|
);
|
|
195
195
|
const template2 = await fs.readFile(
|
|
196
|
-
path.join(TOKEN_TEMPLATE_FILES_PATH, `primitives/modes/
|
|
196
|
+
path.join(TOKEN_TEMPLATE_FILES_PATH, `primitives/modes/color-scheme/${mode}/theme-template.json`)
|
|
197
197
|
);
|
|
198
198
|
await fs.writeFile(
|
|
199
|
-
path.join(TOKENS_TARGET_DIR, `primitives/modes/
|
|
199
|
+
path.join(TOKENS_TARGET_DIR, `primitives/modes/color-scheme/${mode}/${theme}.json`),
|
|
200
200
|
template2.toString("utf-8").replaceAll("<theme>", theme)
|
|
201
201
|
);
|
|
202
202
|
const templatePrimaryTypo = await fs.readFile(
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateMetadataJson.d.ts","sourceRoot":"","sources":["../../../src/init/generateMetadataJson.ts"],"names":[],"mappings":"AAEA,UAAU,QAAQ;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAmBpH"}
|
|
@@ -7,9 +7,9 @@ function generateMetadataJson(modes, themes) {
|
|
|
7
7
|
"primitives/modes/typography/primary/theme",
|
|
8
8
|
"primitives/modes/typography/secondary/theme",
|
|
9
9
|
...modes.flatMap((mode) => [
|
|
10
|
-
`primitives/modes/
|
|
10
|
+
`primitives/modes/color-scheme/${normalizeTokenSetName(mode)}/global`,
|
|
11
11
|
...themes.map(
|
|
12
|
-
(theme) => `primitives/modes/
|
|
12
|
+
(theme) => `primitives/modes/color-scheme/${normalizeTokenSetName(mode)}/${normalizeTokenSetName(theme)}`
|
|
13
13
|
)
|
|
14
14
|
]),
|
|
15
15
|
...themes.map((theme) => `themes/${normalizeTokenSetName(theme)}`),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateThemesJson.d.ts","sourceRoot":"","sources":["../../../src/init/generateThemesJson.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,sBAAsB,CAAC;AAIxE,MAAM,CAAC,OAAO,UAAU,kBAAkB,CACxC,KAAK,EAAE,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC,EAC3C,MAAM,EAAE,MAAM,EAAE,GACf,WAAW,EAAE,CAQf"}
|
|
@@ -36,10 +36,10 @@ function generateModesGroup(modes, themes) {
|
|
|
36
36
|
id: randomUUID(),
|
|
37
37
|
name: mode,
|
|
38
38
|
selectedTokenSets: Object.fromEntries([
|
|
39
|
-
[`primitives/modes/
|
|
39
|
+
[`primitives/modes/color-scheme/${normalizeTokenSetName(mode)}/global`, TokenSetStatus.ENABLED],
|
|
40
40
|
...themes.map(
|
|
41
41
|
(theme) => [
|
|
42
|
-
`primitives/modes/
|
|
42
|
+
`primitives/modes/color-scheme/${normalizeTokenSetName(mode)}/${normalizeTokenSetName(theme)}`,
|
|
43
43
|
TokenSetStatus.ENABLED
|
|
44
44
|
]
|
|
45
45
|
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/init/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAIrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,yBAQ/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nextStepsMarkdown.d.ts","sourceRoot":"","sources":["../../../src/init/nextStepsMarkdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGrD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UA4F9G"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { normalizeTokenSetName, toGeneratedCssFileName } from "./utils.js";
|
|
2
2
|
function nextStepsMarkdown(themes, modes, tokensTargetDir, packageName) {
|
|
3
3
|
const themeModeCombinations = themes.flatMap(
|
|
4
|
-
(theme) => modes.map((
|
|
4
|
+
(theme) => modes.map((colorScheme) => [theme, colorScheme])
|
|
5
5
|
);
|
|
6
6
|
const themeOrThemes = `theme${themes.length > 1 ? "s" : ""}`;
|
|
7
7
|
const isOrAre = themes.length > 1 ? "are" : "is";
|
|
@@ -24,7 +24,7 @@ function nextStepsMarkdown(themes, modes, tokensTargetDir, packageName) {
|
|
|
24
24
|
2. Press "Kopier tema"
|
|
25
25
|
3. Under "Json til Figma", copy the contents under ${modes.join(" / ")} to
|
|
26
26
|
the corresponding file under \`${tokensTargetDir}\`:
|
|
27
|
-
${themeModeCombinations.map(([theme, mode]) => ` **${theme}, ${mode}**: \`primitives/modes/
|
|
27
|
+
${themeModeCombinations.map(([theme, mode]) => ` **${theme}, ${mode}**: \`primitives/modes/color-scheme/${normalizeTokenSetName(mode)}/${normalizeTokenSetName(theme)}.json\` `).join("\n")}
|
|
28
28
|
This can also be done in Tokens Studio for Figma.
|
|
29
29
|
4. **IMPORTANT!** In the JSON data you copied, replace \`theme\` on line 2
|
|
30
30
|
with the correct theme identifier, depending on the theme you're customizing.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/init/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,UAOrD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"beta-to-v1.d.ts","sourceRoot":"","sources":["../../../src/migrations/beta-to-v1.ts"],"names":[],"mappings":"gCAGuB,MAAM;AAA7B,wBAmVK"}
|
|
@@ -221,10 +221,10 @@ var beta_to_v1_default = (glob) => runCssCodemod({
|
|
|
221
221
|
"--fds-border_radius-small": "--ds-border-radius-sm",
|
|
222
222
|
"--fds-border_radius-medium": "--ds-border-radius-md",
|
|
223
223
|
"--fds-border_radius-large": "--ds-border-radius-lg",
|
|
224
|
-
"--fds-border_radius-xlarge": "--ds-border-radius-
|
|
225
|
-
"--fds-border_radius-xxlarge": "--ds-border-radius-
|
|
226
|
-
"--fds-border_radius-xxxlarge": "--ds-border-radius-
|
|
227
|
-
"--fds-border_radius-xxxxlarge": "--ds-border-radius-
|
|
224
|
+
"--fds-border_radius-xlarge": "--ds-border-radius-lg",
|
|
225
|
+
"--fds-border_radius-xxlarge": "--ds-border-radius-lg",
|
|
226
|
+
"--fds-border_radius-xxxlarge": "--ds-border-radius-lg",
|
|
227
|
+
"--fds-border_radius-xxxxlarge": "--ds-border-radius-lg",
|
|
228
228
|
"--fds-border_radius-full": "--ds-border-radius-full",
|
|
229
229
|
"--fds-base_spacing": "[delete]",
|
|
230
230
|
"--fds-base_sizing": "[delete]",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../../../../src/migrations/codemods/css/plugins.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,SAAS,CAAC;AAGnD,KAAK,eAAe,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAOtE,eAAO,MAAM,cAAc,EAAE,eAe3B,CAAC;AAEH,eAAO,MAAM,YAAY,EAAE,eA2BzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../../src/migrations/codemods/css/run.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,aAAa,6BAAwD,eAAe,kBAkBhG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classname-prefix.d.ts","sourceRoot":"","sources":["../../../../../src/migrations/codemods/jsx/classname-prefix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAoElE;;;;;GAKG;AACH,iBAAS,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAiB5E;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../../src/migrations/codemods/jsx/run.ts"],"names":[],"mappings":"AAKA,KAAK,eAAe,GAAG;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAIF,eAAO,MAAM,aAAa,yBAA+C,eAAe,kBAiBvF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrations/index.ts"],"names":[],"mappings":";;;;AAGA,wBAGE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-beta-to-v1.d.ts","sourceRoot":"","sources":["../../../src/migrations/react-beta-to-v1.ts"],"names":[],"mappings":"gCAEuB,MAAM;AAA7B,wBAAuE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/tokens/build/actions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AASrD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAuB3B,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
@layer ds.theme.color {
|
|
2
|
+
[data-color=neutral] {
|
|
3
|
+
--ds-color-background-default: var(--ds-color-neutral-background-default);
|
|
4
|
+
--ds-color-background-subtle: var(--ds-color-neutral-background-subtle);
|
|
5
|
+
--ds-color-surface-default: var(--ds-color-neutral-surface-default);
|
|
6
|
+
--ds-color-surface-hover: var(--ds-color-neutral-surface-hover);
|
|
7
|
+
--ds-color-surface-active: var(--ds-color-neutral-surface-active);
|
|
8
|
+
--ds-color-border-subtle: var(--ds-color-neutral-border-subtle);
|
|
9
|
+
--ds-color-border-default: var(--ds-color-neutral-border-default);
|
|
10
|
+
--ds-color-border-strong: var(--ds-color-neutral-border-strong);
|
|
11
|
+
--ds-color-base-default: var(--ds-color-neutral-base-default);
|
|
12
|
+
--ds-color-base-hover: var(--ds-color-neutral-base-hover);
|
|
13
|
+
--ds-color-base-active: var(--ds-color-neutral-base-active);
|
|
14
|
+
--ds-color-text-subtle: var(--ds-color-neutral-text-subtle);
|
|
15
|
+
--ds-color-text-default: var(--ds-color-neutral-text-default);
|
|
16
|
+
--ds-color-contrast-default: var(--ds-color-neutral-contrast-default);
|
|
17
|
+
--ds-color-contrast-subtle: var(--ds-color-neutral-contrast-subtle);
|
|
18
|
+
}
|
|
19
|
+
[data-color=success] {
|
|
20
|
+
--ds-color-background-default: var(--ds-color-success-background-default);
|
|
21
|
+
--ds-color-background-subtle: var(--ds-color-success-background-subtle);
|
|
22
|
+
--ds-color-surface-default: var(--ds-color-success-surface-default);
|
|
23
|
+
--ds-color-surface-hover: var(--ds-color-success-surface-hover);
|
|
24
|
+
--ds-color-surface-active: var(--ds-color-success-surface-active);
|
|
25
|
+
--ds-color-border-subtle: var(--ds-color-success-border-subtle);
|
|
26
|
+
--ds-color-border-default: var(--ds-color-success-border-default);
|
|
27
|
+
--ds-color-border-strong: var(--ds-color-success-border-strong);
|
|
28
|
+
--ds-color-base-default: var(--ds-color-success-base-default);
|
|
29
|
+
--ds-color-base-hover: var(--ds-color-success-base-hover);
|
|
30
|
+
--ds-color-base-active: var(--ds-color-success-base-active);
|
|
31
|
+
--ds-color-text-subtle: var(--ds-color-success-text-subtle);
|
|
32
|
+
--ds-color-text-default: var(--ds-color-success-text-default);
|
|
33
|
+
--ds-color-contrast-default: var(--ds-color-success-contrast-default);
|
|
34
|
+
--ds-color-contrast-subtle: var(--ds-color-success-contrast-subtle);
|
|
35
|
+
}
|
|
36
|
+
[data-color=warning] {
|
|
37
|
+
--ds-color-background-default: var(--ds-color-warning-background-default);
|
|
38
|
+
--ds-color-background-subtle: var(--ds-color-warning-background-subtle);
|
|
39
|
+
--ds-color-surface-default: var(--ds-color-warning-surface-default);
|
|
40
|
+
--ds-color-surface-hover: var(--ds-color-warning-surface-hover);
|
|
41
|
+
--ds-color-surface-active: var(--ds-color-warning-surface-active);
|
|
42
|
+
--ds-color-border-subtle: var(--ds-color-warning-border-subtle);
|
|
43
|
+
--ds-color-border-default: var(--ds-color-warning-border-default);
|
|
44
|
+
--ds-color-border-strong: var(--ds-color-warning-border-strong);
|
|
45
|
+
--ds-color-base-default: var(--ds-color-warning-base-default);
|
|
46
|
+
--ds-color-base-hover: var(--ds-color-warning-base-hover);
|
|
47
|
+
--ds-color-base-active: var(--ds-color-warning-base-active);
|
|
48
|
+
--ds-color-text-subtle: var(--ds-color-warning-text-subtle);
|
|
49
|
+
--ds-color-text-default: var(--ds-color-warning-text-default);
|
|
50
|
+
--ds-color-contrast-default: var(--ds-color-warning-contrast-default);
|
|
51
|
+
--ds-color-contrast-subtle: var(--ds-color-warning-contrast-subtle);
|
|
52
|
+
}
|
|
53
|
+
[data-color=danger] {
|
|
54
|
+
--ds-color-background-default: var(--ds-color-danger-background-default);
|
|
55
|
+
--ds-color-background-subtle: var(--ds-color-danger-background-subtle);
|
|
56
|
+
--ds-color-surface-default: var(--ds-color-danger-surface-default);
|
|
57
|
+
--ds-color-surface-hover: var(--ds-color-danger-surface-hover);
|
|
58
|
+
--ds-color-surface-active: var(--ds-color-danger-surface-active);
|
|
59
|
+
--ds-color-border-subtle: var(--ds-color-danger-border-subtle);
|
|
60
|
+
--ds-color-border-default: var(--ds-color-danger-border-default);
|
|
61
|
+
--ds-color-border-strong: var(--ds-color-danger-border-strong);
|
|
62
|
+
--ds-color-base-default: var(--ds-color-danger-base-default);
|
|
63
|
+
--ds-color-base-hover: var(--ds-color-danger-base-hover);
|
|
64
|
+
--ds-color-base-active: var(--ds-color-danger-base-active);
|
|
65
|
+
--ds-color-text-subtle: var(--ds-color-danger-text-subtle);
|
|
66
|
+
--ds-color-text-default: var(--ds-color-danger-text-default);
|
|
67
|
+
--ds-color-contrast-default: var(--ds-color-danger-contrast-default);
|
|
68
|
+
--ds-color-contrast-subtle: var(--ds-color-danger-contrast-subtle);
|
|
69
|
+
}
|
|
70
|
+
[data-color=info] {
|
|
71
|
+
--ds-color-background-default: var(--ds-color-info-background-default);
|
|
72
|
+
--ds-color-background-subtle: var(--ds-color-info-background-subtle);
|
|
73
|
+
--ds-color-surface-default: var(--ds-color-info-surface-default);
|
|
74
|
+
--ds-color-surface-hover: var(--ds-color-info-surface-hover);
|
|
75
|
+
--ds-color-surface-active: var(--ds-color-info-surface-active);
|
|
76
|
+
--ds-color-border-subtle: var(--ds-color-info-border-subtle);
|
|
77
|
+
--ds-color-border-default: var(--ds-color-info-border-default);
|
|
78
|
+
--ds-color-border-strong: var(--ds-color-info-border-strong);
|
|
79
|
+
--ds-color-base-default: var(--ds-color-info-base-default);
|
|
80
|
+
--ds-color-base-hover: var(--ds-color-info-base-hover);
|
|
81
|
+
--ds-color-base-active: var(--ds-color-info-base-active);
|
|
82
|
+
--ds-color-text-subtle: var(--ds-color-info-text-subtle);
|
|
83
|
+
--ds-color-text-default: var(--ds-color-info-text-default);
|
|
84
|
+
--ds-color-contrast-default: var(--ds-color-info-contrast-default);
|
|
85
|
+
--ds-color-contrast-subtle: var(--ds-color-info-contrast-subtle);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Config as StyleDictionaryConfig } from 'style-dictionary/types';
|
|
2
|
+
import type { GetSdConfigOptions, SDConfigForThemePermutation, ThemeDimension, ThemePermutation } from './types.js';
|
|
3
|
+
import { type ProcessedThemeObject } from './utils/getMultidimensionalThemes.js';
|
|
4
|
+
export declare const prefix = "ds";
|
|
5
|
+
export declare const basePxFontSize = 16;
|
|
6
|
+
export type GetStyleDictionaryConfig = (permutation: ThemePermutation, options: {
|
|
7
|
+
outPath?: string;
|
|
8
|
+
}) => StyleDictionaryConfig | {
|
|
9
|
+
config: StyleDictionaryConfig;
|
|
10
|
+
permutationOverrides?: Partial<ThemePermutation>;
|
|
11
|
+
}[];
|
|
12
|
+
export declare const configs: {
|
|
13
|
+
colorSchemeVariables: GetStyleDictionaryConfig;
|
|
14
|
+
mainColorVariables: GetStyleDictionaryConfig;
|
|
15
|
+
supportColorVariables: GetStyleDictionaryConfig;
|
|
16
|
+
typographyVariables: GetStyleDictionaryConfig;
|
|
17
|
+
semanticVariables: GetStyleDictionaryConfig;
|
|
18
|
+
typescriptTokens: GetStyleDictionaryConfig;
|
|
19
|
+
};
|
|
20
|
+
export declare const getConfigsForThemeDimensions: (getConfig: GetStyleDictionaryConfig, themes: ProcessedThemeObject[], dimensions: ThemeDimension[], options: GetSdConfigOptions) => SDConfigForThemePermutation[];
|
|
21
|
+
//# sourceMappingURL=configs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../../../../src/tokens/build/configs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,IAAI,qBAAqB,EAAoB,MAAM,wBAAwB,CAAC;AAOhG,OAAO,KAAK,EAEV,kBAAkB,EAElB,2BAA2B,EAC3B,cAAc,EACd,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,oBAAoB,EAA6B,MAAM,sCAAsC,CAAC;AAQ5G,eAAO,MAAM,MAAM,OAAO,CAAC;AAC3B,eAAO,MAAM,cAAc,KAAK,CAAC;AAwCjC,MAAM,MAAM,wBAAwB,GAAG,CACrC,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KACE,qBAAqB,GAAG;IAAE,MAAM,EAAE,qBAAqB,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAAE,EAAE,CAAC;AAuPnH,eAAO,MAAM,OAAO;;;;;;;CAOnB,CAAC;AAEF,eAAO,MAAM,4BAA4B,cAC5B,wBAAwB,UAC3B,oBAAoB,EAAE,cAClB,cAAc,EAAE,WACnB,kBAAkB,KAC1B,2BAA2B,EA8B7B,CAAC"}
|