@sealcode/sealgen 0.17.12 → 0.17.14
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/lib/builders/colors-builder.js +33 -14
- package/package.json +1 -1
- package/src/builders/colors-builder.ts +40 -18
|
@@ -65,13 +65,21 @@ class ColorsBuilder extends Builder {
|
|
|
65
65
|
const color_groups = JSON.parse(output.stdout);
|
|
66
66
|
let css_colors = "";
|
|
67
67
|
let html_colors = "";
|
|
68
|
-
function html_color_box(
|
|
68
|
+
function html_color_box({
|
|
69
|
+
color,
|
|
70
|
+
shade_no,
|
|
71
|
+
name,
|
|
72
|
+
group_name,
|
|
73
|
+
is_main = false
|
|
74
|
+
}) {
|
|
69
75
|
return (
|
|
70
76
|
/* HTML */
|
|
71
77
|
`<div
|
|
72
78
|
class="color-box ${colord(color).isDark() ? "is-dark" : ""} ${is_main ? "is-main" : ""}"
|
|
73
79
|
style="background-color: ${color}; order: ${parseInt(shade_no)}"
|
|
74
|
-
data-color-name="${
|
|
80
|
+
data-color-name="${name}"
|
|
81
|
+
data-color-group-name="${group_name}"
|
|
82
|
+
data-color-shade-number="${shade_no}"
|
|
75
83
|
></div>`
|
|
76
84
|
);
|
|
77
85
|
}
|
|
@@ -85,20 +93,27 @@ class ColorsBuilder extends Builder {
|
|
|
85
93
|
const main_color = color_info.color;
|
|
86
94
|
css_colors += `--color-${group_name}-${color_name}: ${main_color};`;
|
|
87
95
|
const main_l = colord(main_color).toHsl().l;
|
|
88
|
-
html_colors += html_color_box(
|
|
89
|
-
main_color,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
96
|
+
html_colors += html_color_box({
|
|
97
|
+
color: main_color,
|
|
98
|
+
name: color_name,
|
|
99
|
+
shade_no: Math.round((main_l - main_l % 10) / 10).toString().padStart(2, "0"),
|
|
100
|
+
is_main: true,
|
|
101
|
+
group_name
|
|
102
|
+
});
|
|
93
103
|
color_info.shades.forEach((shaded_color, index) => {
|
|
104
|
+
const shade_no = index.toString().padStart(2, "0");
|
|
105
|
+
css_colors += `--color-${group_name}-${color_name}-${shade_no}: ${shaded_color};`;
|
|
94
106
|
if (Math.abs(
|
|
95
107
|
colord(shaded_color).toHsl().l - colord(main_color).toHsl().l
|
|
96
108
|
) < 10) {
|
|
97
109
|
return;
|
|
98
110
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
111
|
+
html_colors += html_color_box({
|
|
112
|
+
color: shaded_color,
|
|
113
|
+
shade_no,
|
|
114
|
+
name: color_name,
|
|
115
|
+
group_name
|
|
116
|
+
});
|
|
102
117
|
});
|
|
103
118
|
html_colors += `</div>`;
|
|
104
119
|
}
|
|
@@ -128,12 +143,14 @@ class ColorsBuilder extends Builder {
|
|
|
128
143
|
.color-box {
|
|
129
144
|
width: 100px;
|
|
130
145
|
height: 100px;
|
|
131
|
-
transition:
|
|
146
|
+
transition: transform 50ms;
|
|
132
147
|
transition-timing-function: ease-in-out;
|
|
148
|
+
transform: scale(1);
|
|
133
149
|
cursor: pointer;
|
|
134
150
|
|
|
135
151
|
&:hover {
|
|
136
152
|
transform: scale(1.1);
|
|
153
|
+
z-index: 2;
|
|
137
154
|
}
|
|
138
155
|
|
|
139
156
|
&.is-main {
|
|
@@ -146,7 +163,7 @@ class ColorsBuilder extends Builder {
|
|
|
146
163
|
}
|
|
147
164
|
|
|
148
165
|
.color-box:after {
|
|
149
|
-
content: attr(data-color-
|
|
166
|
+
content: attr(data-color-shade-number);
|
|
150
167
|
box-sizing: border-box;
|
|
151
168
|
display: block;
|
|
152
169
|
color: black;
|
|
@@ -181,7 +198,7 @@ class ColorsBuilder extends Builder {
|
|
|
181
198
|
padding: 8px;
|
|
182
199
|
animation: float-up 800ms;
|
|
183
200
|
animation-timing-function: ease-out;
|
|
184
|
-
z-index:
|
|
201
|
+
z-index: 3;
|
|
185
202
|
}
|
|
186
203
|
</style>
|
|
187
204
|
</head>
|
|
@@ -192,9 +209,11 @@ class ColorsBuilder extends Builder {
|
|
|
192
209
|
document.addEventListener("click", (event) => {
|
|
193
210
|
navigator.clipboard.writeText(
|
|
194
211
|
\`var(--color-\${event.target.getAttribute(
|
|
195
|
-
"data-color-group"
|
|
212
|
+
"data-color-group-name"
|
|
196
213
|
)}-\${event.target.getAttribute(
|
|
197
214
|
"data-color-name"
|
|
215
|
+
)}-\${event.target.getAttribute(
|
|
216
|
+
"data-color-shade-number"
|
|
198
217
|
)})\`
|
|
199
218
|
);
|
|
200
219
|
const toast = document.createElement("div");
|
package/package.json
CHANGED
|
@@ -75,17 +75,27 @@ export class ColorsBuilder extends Builder {
|
|
|
75
75
|
let css_colors = "";
|
|
76
76
|
let html_colors = "";
|
|
77
77
|
|
|
78
|
-
function html_color_box(
|
|
79
|
-
color
|
|
80
|
-
shade_no
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
function html_color_box({
|
|
79
|
+
color,
|
|
80
|
+
shade_no,
|
|
81
|
+
name,
|
|
82
|
+
group_name,
|
|
83
|
+
is_main = false,
|
|
84
|
+
}: {
|
|
85
|
+
color: string;
|
|
86
|
+
shade_no: string;
|
|
87
|
+
name: string;
|
|
88
|
+
group_name: string;
|
|
89
|
+
is_main?: boolean;
|
|
90
|
+
}) {
|
|
83
91
|
return /* HTML */ `<div
|
|
84
92
|
class="color-box ${colord(color).isDark()
|
|
85
93
|
? "is-dark"
|
|
86
94
|
: ""} ${is_main ? "is-main" : ""}"
|
|
87
95
|
style="background-color: ${color}; order: ${parseInt(shade_no)}"
|
|
88
|
-
data-color-name="${
|
|
96
|
+
data-color-name="${name}"
|
|
97
|
+
data-color-group-name="${group_name}"
|
|
98
|
+
data-color-shade-number="${shade_no}"
|
|
89
99
|
></div>`;
|
|
90
100
|
}
|
|
91
101
|
|
|
@@ -99,25 +109,33 @@ export class ColorsBuilder extends Builder {
|
|
|
99
109
|
const main_color = color_info.color;
|
|
100
110
|
css_colors += `--color-${group_name}-${color_name}: ${main_color};`;
|
|
101
111
|
const main_l = colord(main_color).toHsl().l;
|
|
102
|
-
html_colors += html_color_box(
|
|
103
|
-
main_color,
|
|
104
|
-
|
|
112
|
+
html_colors += html_color_box({
|
|
113
|
+
color: main_color,
|
|
114
|
+
name: color_name,
|
|
115
|
+
shade_no: Math.round((main_l - (main_l % 10)) / 10)
|
|
105
116
|
.toString()
|
|
106
117
|
.padStart(2, "0"),
|
|
107
|
-
true
|
|
108
|
-
|
|
118
|
+
is_main: true,
|
|
119
|
+
group_name,
|
|
120
|
+
});
|
|
109
121
|
color_info.shades.forEach((shaded_color, index) => {
|
|
122
|
+
const shade_no = index.toString().padStart(2, "0");
|
|
123
|
+
css_colors += `--color-${group_name}-${color_name}-${shade_no}: ${shaded_color};`;
|
|
110
124
|
if (
|
|
111
125
|
Math.abs(
|
|
112
126
|
colord(shaded_color).toHsl().l -
|
|
113
127
|
colord(main_color).toHsl().l
|
|
114
128
|
) < 10
|
|
115
129
|
) {
|
|
130
|
+
// this color is already in HTML as the main color, skipping adding it to html to avoid duplication
|
|
116
131
|
return;
|
|
117
132
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
133
|
+
html_colors += html_color_box({
|
|
134
|
+
color: shaded_color,
|
|
135
|
+
shade_no,
|
|
136
|
+
name: color_name,
|
|
137
|
+
group_name,
|
|
138
|
+
});
|
|
121
139
|
});
|
|
122
140
|
html_colors += `</div>`;
|
|
123
141
|
}
|
|
@@ -148,12 +166,14 @@ export class ColorsBuilder extends Builder {
|
|
|
148
166
|
.color-box {
|
|
149
167
|
width: 100px;
|
|
150
168
|
height: 100px;
|
|
151
|
-
transition:
|
|
169
|
+
transition: transform 50ms;
|
|
152
170
|
transition-timing-function: ease-in-out;
|
|
171
|
+
transform: scale(1);
|
|
153
172
|
cursor: pointer;
|
|
154
173
|
|
|
155
174
|
&:hover {
|
|
156
175
|
transform: scale(1.1);
|
|
176
|
+
z-index: 2;
|
|
157
177
|
}
|
|
158
178
|
|
|
159
179
|
&.is-main {
|
|
@@ -166,7 +186,7 @@ export class ColorsBuilder extends Builder {
|
|
|
166
186
|
}
|
|
167
187
|
|
|
168
188
|
.color-box:after {
|
|
169
|
-
content: attr(data-color-
|
|
189
|
+
content: attr(data-color-shade-number);
|
|
170
190
|
box-sizing: border-box;
|
|
171
191
|
display: block;
|
|
172
192
|
color: black;
|
|
@@ -201,7 +221,7 @@ export class ColorsBuilder extends Builder {
|
|
|
201
221
|
padding: 8px;
|
|
202
222
|
animation: float-up 800ms;
|
|
203
223
|
animation-timing-function: ease-out;
|
|
204
|
-
z-index:
|
|
224
|
+
z-index: 3;
|
|
205
225
|
}
|
|
206
226
|
</style>
|
|
207
227
|
</head>
|
|
@@ -212,9 +232,11 @@ export class ColorsBuilder extends Builder {
|
|
|
212
232
|
document.addEventListener("click", (event) => {
|
|
213
233
|
navigator.clipboard.writeText(
|
|
214
234
|
\`var(--color-\${event.target.getAttribute(
|
|
215
|
-
"data-color-group"
|
|
235
|
+
"data-color-group-name"
|
|
216
236
|
)}-\${event.target.getAttribute(
|
|
217
237
|
"data-color-name"
|
|
238
|
+
)}-\${event.target.getAttribute(
|
|
239
|
+
"data-color-shade-number"
|
|
218
240
|
)})\`
|
|
219
241
|
);
|
|
220
242
|
const toast = document.createElement("div");
|