diff options
Diffstat (limited to 'src/content/dependencies/generateColorStyleRules.js')
-rw-r--r-- | src/content/dependencies/generateColorStyleRules.js | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/content/dependencies/generateColorStyleRules.js b/src/content/dependencies/generateColorStyleRules.js new file mode 100644 index 0000000..c412b8f --- /dev/null +++ b/src/content/dependencies/generateColorStyleRules.js @@ -0,0 +1,42 @@ +export default { + contentDependencies: ['generateColorStyleVariables'], + extraDependencies: ['html'], + + relations: (relation) => ({ + variables: + relation('generateColorStyleVariables'), + }), + + data: (color) => ({ + color: + color ?? null, + }), + + slots: { + color: { + validate: v => v.isColor, + }, + }, + + generate(data, relations, slots) { + const color = data.color ?? slots.color; + + if (!color) { + return ''; + } + + return [ + `:root {`, + ...( + relations.variables + .slots({ + color, + context: 'page-root', + mode: 'property-list', + }) + .content + .map(line => line + ';')), + `}`, + ].join('\n'); + }, +}; |