UNPKG

kobalt

Version:

A cli to generate a theme from figma projects.

47 lines (46 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveColorReferences = exports.createFontToken = void 0; const convert_to_hex_1 = require("../utilities/convert-to-hex"); const createFontToken = (item) => { const { children } = item; let result = {}; if (children) { result = children.reduce((accumulator, current) => { accumulator[current.name] = (0, exports.createFontToken)(current); return accumulator; }, {}); } else if (item.style && item.fills[0]?.color) { const { fontFamily, fontSize, fontWeight, lineHeightPx, letterSpacing } = item.style; result = { value: { fontFamily, fontSize: `${fontSize}px`, fontWeight, letterSpacing, lineHeight: `${lineHeightPx}px`, color: (0, convert_to_hex_1.convertToHex)(item.fills[0]?.color), }, }; } return result; }; exports.createFontToken = createFontToken; const resolveColorReferences = (flattenedColors, font) => { const fontsWithColorRefs = Object.entries(font).reduce((accumulator, [key, value]) => { if (key === "value") { const reference = Object.keys(flattenedColors).find((key) => flattenedColors[key] === value.color); accumulator[key] = { ...value, color: `{color.${reference}}`, }; } else { accumulator[key] = (0, exports.resolveColorReferences)(flattenedColors, value); } return accumulator; }, {}); return fontsWithColorRefs; }; exports.resolveColorReferences = resolveColorReferences;