Skip to content

Commit 1635f61

Browse files
fix(tokens): wrap css math expressions with calc() in layered build (#966)
1 parent 4471fdd commit 1635f61

4 files changed

Lines changed: 18 additions & 1 deletion

File tree

packages/dialtone-css/lib/build/less/components/radio-checkbox.less

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@
198198
background-image: url("data:image/svg+xml,<svg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'> <path fill-rule='evenodd' clip-rule='evenodd' d='M12.1083 3.05806C12.3524 3.30214 12.3524 3.69786 12.1083 3.94194L5.69162 10.3586C5.44754 10.6027 5.05181 10.6027 4.80773 10.3586L1.89107 7.44194C1.64699 7.19786 1.64699 6.80214 1.89107 6.55806C2.13514 6.31398 2.53087 6.31398 2.77495 6.55806L5.24967 9.03278L11.2244 3.05806C11.4685 2.81398 11.8642 2.81398 12.1083 3.05806Z' fill='white'/> </svg>");
199199
border: 0;
200200

201+
[data-dt-mode="dark"] &,
201202
[data-dt-theme="dark"] & {
202203
background-image: url("data:image/svg+xml,<svg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'> <path fill-rule='evenodd' clip-rule='evenodd' d='M12.1083 3.05806C12.3524 3.30214 12.3524 3.69786 12.1083 3.94194L5.69162 10.3586C5.44754 10.6027 5.05181 10.6027 4.80773 10.3586L1.89107 7.44194C1.64699 7.19786 1.64699 6.80214 1.89107 6.55806C2.13514 6.31398 2.53087 6.31398 2.77495 6.55806L5.24967 9.03278L11.2244 3.05806C11.4685 2.81398 11.8642 2.81398 12.1083 3.05806Z' fill='black'/> </svg>");
203204
}
@@ -225,6 +226,7 @@
225226
background-image: url("data:image/svg+xml,<svg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'> <path d='M11.9955 7C11.9955 7.55228 11.5478 8 10.9955 8H3.00415C2.45187 8 2.00415 7.55228 2.00415 7V7C2.00415 6.44772 2.45187 6 3.00415 6H10.9955C11.5478 6 11.9955 6.44772 11.9955 7V7Z' fill='white'/> </svg>");
226227
border: 0;
227228

229+
[data-dt-mode="dark"] &,
228230
[data-dt-theme="dark"] & {
229231
background-image: url("data:image/svg+xml,<svg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'> <path d='M11.9955 7C11.9955 7.55228 11.5478 8 10.9955 8H3.00415C2.45187 8 2.00415 7.55228 2.00415 7V7C2.00415 6.44772 2.45187 6 3.00415 6H10.9955C11.5478 6 11.9955 6.44772 11.9955 7V7Z' fill='black'/> </svg>");
230232
}

packages/dialtone-css/lib/build/less/components/toggle.less

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
background-repeat: no-repeat;
6969
background-size: cover;
7070

71+
[data-dt-mode="dark"] &,
7172
[data-dt-theme="dark"] & {
7273
background-image: url("data:image/svg+xml,<svg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'> <path fill-rule='evenodd' clip-rule='evenodd' d='M3.05806 3.05806C3.30214 2.81398 3.69786 2.81398 3.94194 3.05806L7 6.11612L10.0581 3.05806C10.3021 2.81398 10.6979 2.81398 10.9419 3.05806C11.186 3.30214 11.186 3.69786 10.9419 3.94194L7.88388 7L10.9419 10.0581C11.186 10.3021 11.186 10.6979 10.9419 10.9419C10.6979 11.186 10.3021 11.186 10.0581 10.9419L7 7.88388L3.94194 10.9419C3.69786 11.186 3.30214 11.186 3.05806 10.9419C2.81398 10.6979 2.81398 10.3021 3.05806 10.0581L6.11612 7L3.05806 3.94194C2.81398 3.69786 2.81398 3.30214 3.05806 3.05806Z' fill='black'/> </svg>");
7374
}
@@ -114,6 +115,7 @@
114115
inset-inline-start: var(--dt-space-350); // 6
115116
background-image: url("data:image/svg+xml,<svg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'> <path fill-rule='evenodd' clip-rule='evenodd' d='M12.1083 3.05806C12.3524 3.30214 12.3524 3.69786 12.1083 3.94194L5.69162 10.3586C5.44754 10.6027 5.05181 10.6027 4.80773 10.3586L1.89107 7.44194C1.64699 7.19786 1.64699 6.80214 1.89107 6.55806C2.13514 6.31398 2.53087 6.31398 2.77495 6.55806L5.24967 9.03278L11.2244 3.05806C11.4685 2.81398 11.8642 2.81398 12.1083 3.05806Z' fill='white'/> </svg>");
116117

118+
[data-dt-mode="dark"] &,
117119
[data-dt-theme="dark"] & {
118120
background-image: url("data:image/svg+xml,<svg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'> <path fill-rule='evenodd' clip-rule='evenodd' d='M12.1083 3.05806C12.3524 3.30214 12.3524 3.69786 12.1083 3.94194L5.69162 10.3586C5.44754 10.6027 5.05181 10.6027 4.80773 10.3586L1.89107 7.44194C1.64699 7.19786 1.64699 6.80214 1.89107 6.55806C2.13514 6.31398 2.53087 6.31398 2.77495 6.55806L5.24967 9.03278L11.2244 3.05806C11.4685 2.81398 11.8642 2.81398 12.1083 3.05806Z' fill='black'/> </svg>");
119121
}

packages/dialtone-tokens/build-sd-transforms-layered.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,18 @@ async function buildLayeredTokensForBrand(brandName, lightThemeConfig, darkTheme
286286
// Extract just the CSS variables from each file
287287
const extractVars = (content) => {
288288
const match = content.match(/:root\s*{([^}]*)}/s);
289-
return match ? match[1].trim() : '';
289+
const vars = match ? match[1].trim() : '';
290+
291+
// Fix any math expressions that don't have calc()
292+
// Matches patterns like "var(--dt-size-200) + var(--dt-size-100)"
293+
return vars.replace(/:\s*(var\([^)]+\)\s*[+\-*/][^;]+);/g, (match, expression) => {
294+
// If it already has calc(), leave it alone
295+
if (expression.includes('calc(')) {
296+
return match;
297+
}
298+
// Wrap the expression with calc()
299+
return `: calc(${expression});`;
300+
});
290301
};
291302

292303
const lightVars = extractVars(lightContent);

packages/dialtone-tokens/project.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
"{projectRoot}/build-docs.js",
1414
"{projectRoot}/build-ios.js",
1515
"{projectRoot}/build-sd-transforms.js",
16+
"{projectRoot}/build-sd-transforms-layered.js",
17+
"{projectRoot}/build-layered.js",
1618
"{projectRoot}/dialtone-transforms.js",
1719
"{projectRoot}/generate-themes.js",
1820
"{projectRoot}/vite.config.js"

0 commit comments

Comments
 (0)