From 69f63deeca1a8c453f6a7a211614c88b8a435e12 Mon Sep 17 00:00:00 2001 From: Kazunari Hara Date: Mon, 20 Jan 2025 15:43:02 +0900 Subject: [PATCH] feat(spindle-tokens): generate CSS shadow tokens --- packages/spindle-tokens/config-css.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/spindle-tokens/config-css.js b/packages/spindle-tokens/config-css.js index f90135efd..e701ab813 100644 --- a/packages/spindle-tokens/config-css.js +++ b/packages/spindle-tokens/config-css.js @@ -23,6 +23,23 @@ function makeAnimationTokens(dictionary) { .map((token) => ` --${token.name}: ${token.value};`); } +function makeShadowTokens(dictionary) { + return dictionary.allTokens + .filter((token) => { + return [ + 'tokens/shadow/drop-shadow.json', + 'tokens/shadow/shadow.css.json' + ].includes(token.filePath); + }) + .map((token) => { + if (token.attributes.category === 'size' && token.value !== 0) { + token.value = `${token.value}px`; + } + return token; + }) + .map((token) => ` --${token.name}: ${token.value};`); +} + module.exports = { source: ['tokens/**/*.json'], format: { @@ -30,6 +47,10 @@ module.exports = { const tokens = makeAnimationTokens(dictionary); return [':root {', ...tokens, '}', ''].join('\n'); }, + cssShadow: ({ dictionary }) => { + const tokens = makeShadowTokens(dictionary); + return [':root {', ...tokens, '}', ''].join('\n'); + }, }, platforms: { css: { @@ -39,6 +60,10 @@ module.exports = { destination: 'dist/css/spindle-tokens-animation.css', format: 'cssAnimation', }, + { + destination: 'dist/css/spindle-tokens-shadow.css', + format: 'cssShadow', + }, { destination: 'dist/css/spindle-tokens.css', format: 'cssAnimation',