Skip to content

Commit a7ae745

Browse files
committed
_brand.yml - sass name mapping for primary, secondary, tertiary, background, foreground
1 parent 05a4e26 commit a7ae745

File tree

1 file changed

+30
-2
lines changed

1 file changed

+30
-2
lines changed

src/core/sass/brand.ts

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,24 @@ import {
1515
} from "../../config/types.ts";
1616
import { ProjectContext } from "../../project/types.ts";
1717

18+
const defaultColorNameMap: Record<string, string> = {
19+
"body-bg": "background",
20+
"body-color": "foreground",
21+
"body-secondary-color": "secondary",
22+
"body-secondary": "secondary",
23+
"body-tertiary-color": "tertiary",
24+
"body-tertiary": "secondary",
25+
};
26+
1827
export async function brandBootstrapSassBundles(
1928
project: ProjectContext,
2029
key: string,
2130
): Promise<SassBundle[]> {
22-
return (await brandBootstrapSassBundleLayers(project, key)).map(
31+
return (await brandBootstrapSassBundleLayers(
32+
project,
33+
key,
34+
defaultColorNameMap,
35+
)).map(
2336
(layer: SassBundleLayers) => {
2437
return {
2538
...layer,
@@ -31,6 +44,7 @@ export async function brandBootstrapSassBundles(
3144
export async function brandBootstrapSassBundleLayers(
3245
project: ProjectContext,
3346
key: string,
47+
nameMap: Record<string, string> = {},
3448
): Promise<SassBundleLayers[]> {
3549
const brand = await project.resolveBrand();
3650
const sassBundles: SassBundleLayers[] = [];
@@ -50,6 +64,15 @@ export async function brandBootstrapSassBundleLayers(
5064
`$${colorKey}: ${brand.getColor(colorKey)} !default;`,
5165
);
5266
}
67+
// format-specific name mapping
68+
for (const [key, value] of Object.entries(nameMap)) {
69+
const resolvedValue = brand.getColor(value);
70+
if (resolvedValue !== value) {
71+
colorVariables.push(
72+
`$${key}: ${resolvedValue} !default;`,
73+
);
74+
}
75+
}
5376
// const colorEntries = Object.keys(brand.color);
5477
const colorBundle: SassBundleLayers = {
5578
key,
@@ -72,7 +95,11 @@ export async function brandRevealSassBundleLayers(
7295
_format: Format,
7396
project: ProjectContext,
7497
): Promise<SassBundleLayers[]> {
75-
return brandBootstrapSassBundleLayers(project, "reveal-theme");
98+
return brandBootstrapSassBundleLayers(
99+
project,
100+
"reveal-theme",
101+
defaultColorNameMap,
102+
);
76103
}
77104

78105
export async function brandSassFormatExtras(
@@ -82,6 +109,7 @@ export async function brandSassFormatExtras(
82109
const htmlSassBundleLayers = await brandBootstrapSassBundleLayers(
83110
project,
84111
"brand",
112+
defaultColorNameMap,
85113
);
86114
const htmlSassBundles: SassBundle[] = htmlSassBundleLayers.map((layer) => {
87115
return {

0 commit comments

Comments
 (0)