Maison > Questions et réponses > le corps du texte
Je suis nouveau dans la conception de jetons et dans la conception de systèmes. J'essaie d'utiliser un dictionnaire de styles pour convertir mon balisage de conception en variables SCSS et tout semble bien fonctionner sauf que le balisage typographique s'avère être [object object]
dans le fichier de variables. Je ne sais pas ce que je fais de mal. Toute aide serait grandement appréciée. Vous trouverez ci-dessous le fichier de configuration de mon dictionnaire de styles.
const StyleDictionary = require('style-dictionary'); module.exports = { // This will match any files ending in json or json5 source: [`tokens/*.json`], transforms: [ { type: 'typography', fields: { fontSize: 'fontsize', fontWeight: 'fontWeight', lineHeight: 'lineHeight', }, }, ], platforms: { scss: { buildPath: `style/`, files: [{ destination: `_variables.scss`, format: `scss/variables` }] } } }
Mon jeton JSON est
{ "btn": { "primary": { "default": { "value": "{colors.accent.sun}", "type": "color" }, "hover": { "value": "{colors.accent.l_sun}", "type": "color" }, "focus": { "value": "{colors.accent.sun}", "type": "color" }, "focusbr": { "value": "{colors.accent.gold}", "type": "color" }, "click": { "value": "{colors.accent.gold}", "type": "color" }, "txtcolor": { "value": "{colors.neutral.black}", "type": "color" } }, "disabled": { "value": "{colors.neutral.ll_grey}", "type": "color" }, "radius": { "value": ".4rem", "type": "borderRadius" }, "brwidth": { "value": ".2rem", "type": "borderWidth" }, "ghostbg": { "value": "{colors.neutral.white}", "type": "color" }, "ghost": { "defaultbr": { "value": "{colors.primary.m_blue}", "type": "color" }, "focusbr": { "value": "{colors.primary.d_blue}", "type": "color" }, "clickbr": { "value": "{colors.neutral.ll_grey}", "type": "color" } }, "transparent": { "defaultbr": { "value": "{colors.neutral.white}", "type": "color" }, "focusbr": { "value": "{colors.primary.azure}", "type": "color" }, "click": { "value": "{colors.primary.azure}", "type": "color" } }, "transparentbg": { "value": "{colors.neutral.white}", "type": "color" }, "textcolor": { "value": "{colors.primary.m_blue}", "type": "color" } }, "btn-df": { "padding": { "value": "1.6rem 3.2rem", "type": "spacing" } }, "btn-dftypography": { "value": { "fontWeight": "", "fontSize": "1.8rem", "lineHeight": "" }, "type": "typography" }, "btn-smtypography": { "value": { "fontSize": "1.4rem", "fontWeight": "", "lineHeight": "" }, "type": "typography" }, "btn-mdtypography": { "value": { "fontSize": "1.6rem" }, "type": "typography" }, "btn-dftypographystyles": { "value": { "fontWeight": "400", "lineHeight": "120%" }, "type": "typography" }, "btn-md": { "padding": { "value": "1.4rem 3.2rem", "type": "spacing" } }, "btn-sm": { "padding": { "value": "1.4rem 3.2rem", "type": "spacing" } } }
P粉1871608832024-02-04 10:51:20
Sur la base du code fourni et du fichier JSON du jeton, il semble que les valeurs de composition ne soient pas converties correctement en variables SCSS.
Le problème vient peut-être de "value"
属性在版式标记中的设置方式有关。目前,它是一个对象而不是字符串,这导致它显示为 [object object]
. Pour résoudre ce problème, vous devez définir la valeur sur une chaîne dans un format que la transformation de composition peut analyser et utiliser pour créer la variable SCSS requise.
Par exemple, réduisez un objet de valeur en une seule chaîne.
Voici un exemple du jeton btn-dftypography
après sa correction :
"btn-dftypography": { "value": "font-size: 1.8rem; font-weight: 400; line-height: 120%", "type": "typography" }
Avant, c'était comme ça :
"btn-dftypography": { "value": { "fontWeight": "", "fontSize": "1.8rem", "lineHeight": "" }, "type": "typography" },
Remarque : vous devrez également apporter des modifications similaires à vos autres marques typographiques.