@@ -15,11 +15,24 @@ import {
1515} from "../../config/types.ts" ;
1616import { 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+
1827export 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(
3144export 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
78105export 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