@webmate-studio/builder 0.2.118 → 0.2.119
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/design-tokens.js +16 -50
package/package.json
CHANGED
package/src/design-tokens.js
CHANGED
|
@@ -7,6 +7,7 @@ function generateSemanticColorUtilities(tokens) {
|
|
|
7
7
|
if (!tokens.colors) return '';
|
|
8
8
|
|
|
9
9
|
let utilities = '\n/* Color Utilities */';
|
|
10
|
+
utilities += '\n@layer utilities {';
|
|
10
11
|
|
|
11
12
|
// Map of all colors: token name -> utility class base name
|
|
12
13
|
const colorMap = {
|
|
@@ -77,67 +78,32 @@ function generateSemanticColorUtilities(tokens) {
|
|
|
77
78
|
// Determine which type(s) of utility classes to generate based on className prefix
|
|
78
79
|
// If className already has prefix (bg-, text-, border-), generate only that variant
|
|
79
80
|
// Otherwise generate all three variants
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
|
|
82
|
+
/** Helper: generate base + hover + focus for a single class */
|
|
83
|
+
function addUtility(cls, prop, varRef) {
|
|
84
|
+
if (processedClasses.has(cls)) return;
|
|
85
|
+
processedClasses.add(cls);
|
|
86
|
+
utilities += `\n.${cls} {\n ${prop}: var(${varRef});\n}`;
|
|
87
|
+
utilities += `\n.hover\\:${cls}:hover {\n ${prop}: var(${varRef});\n}`;
|
|
88
|
+
utilities += `\n.focus\\:${cls}:focus {\n ${prop}: var(${varRef});\n}`;
|
|
89
|
+
}
|
|
82
90
|
|
|
83
91
|
if (className.startsWith('bg-')) {
|
|
84
|
-
|
|
85
|
-
processedClasses.add(className);
|
|
86
|
-
utilities += `\n@utility ${className} {`;
|
|
87
|
-
utilities += `\n background-color: var(${colorVar});`;
|
|
88
|
-
utilities += `\n}`;
|
|
89
|
-
}
|
|
92
|
+
addUtility(className, 'background-color', colorVar);
|
|
90
93
|
} else if (className.startsWith('text-')) {
|
|
91
|
-
|
|
92
|
-
processedClasses.add(className);
|
|
93
|
-
utilities += `\n@utility ${className} {`;
|
|
94
|
-
utilities += `\n color: var(${colorVar});`;
|
|
95
|
-
utilities += `\n}`;
|
|
96
|
-
}
|
|
94
|
+
addUtility(className, 'color', colorVar);
|
|
97
95
|
} else if (className.startsWith('border-')) {
|
|
98
|
-
|
|
99
|
-
processedClasses.add(className);
|
|
100
|
-
utilities += `\n@utility ${className} {`;
|
|
101
|
-
utilities += `\n border-color: var(${colorVar});`;
|
|
102
|
-
utilities += `\n}`;
|
|
103
|
-
}
|
|
96
|
+
addUtility(className, 'border-color', colorVar);
|
|
104
97
|
} else {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const borderClass = `border-${className}`;
|
|
109
|
-
|
|
110
|
-
if (!processedClasses.has(textClass)) {
|
|
111
|
-
processedClasses.add(textClass);
|
|
112
|
-
utilities += `\n@utility ${textClass} {`;
|
|
113
|
-
utilities += `\n color: var(${colorVar});`;
|
|
114
|
-
utilities += `\n}`;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (!processedClasses.has(bgClass)) {
|
|
118
|
-
processedClasses.add(bgClass);
|
|
119
|
-
utilities += `\n@utility ${bgClass} {`;
|
|
120
|
-
utilities += `\n background-color: var(${colorVar});`;
|
|
121
|
-
utilities += `\n}`;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
if (!processedClasses.has(borderClass)) {
|
|
125
|
-
processedClasses.add(borderClass);
|
|
126
|
-
utilities += `\n@utility ${borderClass} {`;
|
|
127
|
-
utilities += `\n border-color: var(${colorVar});`;
|
|
128
|
-
utilities += `\n}`;
|
|
129
|
-
}
|
|
98
|
+
addUtility(`text-${className}`, 'color', colorVar);
|
|
99
|
+
addUtility(`bg-${className}`, 'background-color', colorVar);
|
|
100
|
+
addUtility(`border-${className}`, 'border-color', colorVar);
|
|
130
101
|
}
|
|
131
102
|
}
|
|
132
103
|
|
|
133
104
|
// Generate opacity variants for all color utilities using color-mix()
|
|
134
|
-
// These use @layer utilities (not @utility) because @utility doesn't support slash in names.
|
|
135
|
-
// Opacity variants don't need responsive/hover support — the base class handles that.
|
|
136
105
|
const opacitySteps = [10, 20, 30, 40, 50, 60, 70, 80, 90];
|
|
137
106
|
|
|
138
|
-
utilities += '\n\n/* Opacity Variants */';
|
|
139
|
-
utilities += '\n@layer utilities {';
|
|
140
|
-
|
|
141
107
|
for (const [tokenKey, className] of Object.entries(colorMap)) {
|
|
142
108
|
if (!tokens.colors[tokenKey]) continue;
|
|
143
109
|
const colorVar = `--color-${tokenKey.replace(/([A-Z])/g, '-$1').toLowerCase()}`;
|