create-template-html-css 1.4.3 → 1.6.2

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/INSERT-QUICK-REFERENCE.md +147 -0
  3. package/README.md +33 -2
  4. package/RELEASE-NOTES-v1.6.1.md +129 -0
  5. package/RELEASE-STATUS.md +203 -0
  6. package/RELEASE-v1.6.2.md +169 -0
  7. package/SECURITY-AUDIT.md +157 -0
  8. package/TEST-REPORT.md +110 -0
  9. package/VERIFICATION-REPORT.md +162 -0
  10. package/bin/cli.js +416 -247
  11. package/demo/css/accordion-component.css +135 -0
  12. package/demo/css/button-component.css +110 -0
  13. package/demo/css/card-component.css +381 -0
  14. package/demo/index.html +169 -0
  15. package/demo/js/accordion-component.js +31 -0
  16. package/demo/js/button-component.js +17 -0
  17. package/demo/js/card-component.js +124 -0
  18. package/package.json +6 -3
  19. package/src/generator.js +165 -64
  20. package/src/index.js +1 -1
  21. package/src/inserter.js +352 -146
  22. package/templates/accordion/index.html +67 -0
  23. package/templates/accordion/script.js +29 -0
  24. package/templates/accordion/style.css +133 -0
  25. package/templates/counter/index.html +46 -0
  26. package/templates/counter/script.js +88 -0
  27. package/templates/counter/style.css +164 -0
  28. package/templates/tabs/index.html +83 -0
  29. package/templates/tabs/script.js +46 -0
  30. package/templates/tabs/style.css +173 -0
  31. package/templates/todo-list/index.html +45 -0
  32. package/templates/todo-list/script.js +69 -0
  33. package/templates/todo-list/style.css +138 -0
  34. package/v1.6.2-IMPROVEMENTS.md +185 -0
  35. package/CONTRIBUTING.md +0 -62
  36. package/INSERT-DEMO.md +0 -171
  37. package/QUICKSTART.md +0 -195
  38. package/SECURITY.md +0 -95
  39. package/SHOWCASE.html +0 -342
  40. package/test-insert.html +0 -54
@@ -0,0 +1,135 @@
1
+ /* ACCORDION Component Styles */
2
+
3
+ * {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ body {
10
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
11
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
12
+ min-height: 100vh;
13
+ display: flex;
14
+ justify-content: center;
15
+ align-items: center;
16
+ padding: 20px;
17
+ }
18
+
19
+ .container {
20
+ width: 100%;
21
+ max-width: 600px;
22
+ }
23
+
24
+ .accordion-wrapper {
25
+ background: white;
26
+ border-radius: 12px;
27
+ padding: 40px;
28
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
29
+ }
30
+
31
+ .accordion-wrapper h1 {
32
+ color: #333;
33
+ margin-bottom: 30px;
34
+ text-align: center;
35
+ font-size: 28px;
36
+ }
37
+
38
+ .accordion {
39
+ display: flex;
40
+ flex-direction: column;
41
+ gap: 12px;
42
+ }
43
+
44
+ .accordion-item {
45
+ border: 2px solid #e0e0e0;
46
+ border-radius: 8px;
47
+ overflow: hidden;
48
+ transition: all 0.3s;
49
+ }
50
+
51
+ .accordion-item.active {
52
+ border-color: #667eea;
53
+ background: #f8f9ff;
54
+ }
55
+
56
+ .accordion-header {
57
+ width: 100%;
58
+ padding: 20px;
59
+ background: white;
60
+ border: none;
61
+ cursor: pointer;
62
+ display: flex;
63
+ justify-content: space-between;
64
+ align-items: center;
65
+ font-size: 16px;
66
+ font-weight: 600;
67
+ color: #333;
68
+ transition: all 0.3s;
69
+ }
70
+
71
+ .accordion-item.active .accordion-header {
72
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
73
+ color: white;
74
+ }
75
+
76
+ .accordion-header:hover {
77
+ background: #f5f5f5;
78
+ }
79
+
80
+ .accordion-item.active .accordion-header:hover {
81
+ background: linear-gradient(135deg, #5568d3 0%, #6a3f99 100%);
82
+ }
83
+
84
+ .accordion-header .icon {
85
+ display: inline-flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ width: 24px;
89
+ height: 24px;
90
+ font-size: 18px;
91
+ font-weight: bold;
92
+ transition: transform 0.3s;
93
+ }
94
+
95
+ .accordion-item.active .accordion-header .icon {
96
+ transform: rotate(45deg);
97
+ }
98
+
99
+ .accordion-content {
100
+ max-height: 0;
101
+ overflow: hidden;
102
+ transition: max-height 0.3s ease;
103
+ }
104
+
105
+ .accordion-item.active .accordion-content {
106
+ max-height: 500px;
107
+ }
108
+
109
+ .accordion-body {
110
+ padding: 20px;
111
+ color: #666;
112
+ line-height: 1.6;
113
+ }
114
+
115
+ /* Responsive */
116
+ @media (max-width: 600px) {
117
+ .accordion-wrapper {
118
+ padding: 20px;
119
+ }
120
+
121
+ .accordion-wrapper h1 {
122
+ font-size: 22px;
123
+ margin-bottom: 20px;
124
+ }
125
+
126
+ .accordion-header {
127
+ padding: 15px;
128
+ font-size: 14px;
129
+ }
130
+
131
+ .accordion-body {
132
+ padding: 15px;
133
+ font-size: 14px;
134
+ }
135
+ }
@@ -0,0 +1,110 @@
1
+ /* BUTTON Component Styles */
2
+
3
+ * {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ body {
10
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
11
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
12
+ min-height: 100vh;
13
+ display: flex;
14
+ justify-content: center;
15
+ align-items: center;
16
+ padding: 20px;
17
+ }
18
+
19
+ .container {
20
+ background: white;
21
+ padding: 40px;
22
+ border-radius: 15px;
23
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
24
+ text-align: center;
25
+ }
26
+
27
+ h1 {
28
+ margin-bottom: 30px;
29
+ color: #333;
30
+ font-size: 2rem;
31
+ }
32
+
33
+ .btn {
34
+ padding: 12px 30px;
35
+ margin: 10px;
36
+ border: none;
37
+ border-radius: 8px;
38
+ font-size: 16px;
39
+ font-weight: 600;
40
+ cursor: pointer;
41
+ transition: all 0.3s ease;
42
+ text-transform: uppercase;
43
+ letter-spacing: 1px;
44
+ }
45
+
46
+ .btn:hover {
47
+ transform: translateY(-2px);
48
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
49
+ }
50
+
51
+ .btn:active {
52
+ transform: translateY(0);
53
+ }
54
+
55
+ .btn-primary {
56
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
57
+ color: white;
58
+ }
59
+
60
+ .btn-primary:hover {
61
+ background: linear-gradient(135deg, #764ba2 0%, #667eea 100%);
62
+ }
63
+
64
+ .btn-secondary {
65
+ background: linear-gradient(135deg, #6c757d 0%, #495057 100%);
66
+ color: white;
67
+ }
68
+
69
+ .btn-secondary:hover {
70
+ background: linear-gradient(135deg, #495057 0%, #6c757d 100%);
71
+ }
72
+
73
+ .btn-success {
74
+ background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
75
+ color: white;
76
+ }
77
+
78
+ .btn-success:hover {
79
+ background: linear-gradient(135deg, #20c997 0%, #28a745 100%);
80
+ }
81
+
82
+ .btn-danger {
83
+ background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
84
+ color: white;
85
+ }
86
+
87
+ .btn-danger:hover {
88
+ background: linear-gradient(135deg, #c82333 0%, #dc3545 100%);
89
+ }
90
+
91
+ .btn-outlined {
92
+ background: transparent;
93
+ color: #667eea;
94
+ border: 2px solid #667eea;
95
+ }
96
+
97
+ .btn-outlined:hover {
98
+ background: #667eea;
99
+ color: white;
100
+ }
101
+
102
+ .btn:disabled {
103
+ opacity: 0.5;
104
+ cursor: not-allowed;
105
+ }
106
+
107
+ .btn:disabled:hover {
108
+ transform: none;
109
+ box-shadow: none;
110
+ }
@@ -0,0 +1,381 @@
1
+ /* CARD Component Styles */
2
+
3
+ * {
4
+ margin: 0;
5
+ padding: 0;
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ body {
10
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
11
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
12
+ min-height: 100vh;
13
+ padding: 60px 20px;
14
+ }
15
+
16
+ .container {
17
+ max-width: 1200px;
18
+ margin: 0 auto;
19
+ }
20
+
21
+ h1 {
22
+ text-align: center;
23
+ color: white;
24
+ margin-bottom: 10px;
25
+ font-size: 2.5rem;
26
+ font-weight: 700;
27
+ }
28
+
29
+ .subtitle {
30
+ text-align: center;
31
+ color: rgba(255, 255, 255, 0.8);
32
+ margin-bottom: 50px;
33
+ font-size: 1.1rem;
34
+ }
35
+
36
+ .cards-grid {
37
+ display: grid;
38
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
39
+ gap: 30px;
40
+ }
41
+
42
+ /* Card Base */
43
+ .card {
44
+ background: white;
45
+ border-radius: 16px;
46
+ overflow: hidden;
47
+ box-shadow: 0 10px 35px rgba(0, 0, 0, 0.15);
48
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
49
+ position: relative;
50
+ }
51
+
52
+ .card:hover {
53
+ transform: translateY(-8px);
54
+ box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
55
+ }
56
+
57
+ .card-header {
58
+ position: relative;
59
+ overflow: hidden;
60
+ height: 200px;
61
+ }
62
+
63
+ .card-img {
64
+ width: 100%;
65
+ height: 100%;
66
+ object-fit: cover;
67
+ transition: transform 0.4s ease;
68
+ }
69
+
70
+ .card:hover .card-img {
71
+ transform: scale(1.08);
72
+ }
73
+
74
+ /* Badges */
75
+ .card-badge {
76
+ position: absolute;
77
+ top: 12px;
78
+ right: 12px;
79
+ background: #667eea;
80
+ color: white;
81
+ padding: 6px 14px;
82
+ border-radius: 20px;
83
+ font-size: 12px;
84
+ font-weight: 600;
85
+ text-transform: uppercase;
86
+ letter-spacing: 0.5px;
87
+ z-index: 10;
88
+ animation: slideIn 0.4s ease;
89
+ }
90
+
91
+ .card-badge.premium {
92
+ background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
93
+ }
94
+
95
+ .card-badge.secondary {
96
+ background: #43e97b;
97
+ }
98
+
99
+ .card-badge.interactive {
100
+ background: #fa709a;
101
+ animation: pulse 2s infinite;
102
+ }
103
+
104
+ @keyframes slideIn {
105
+ from {
106
+ opacity: 0;
107
+ transform: translateX(20px);
108
+ }
109
+ to {
110
+ opacity: 1;
111
+ transform: translateX(0);
112
+ }
113
+ }
114
+
115
+ @keyframes pulse {
116
+ 0%, 100% { opacity: 1; }
117
+ 50% { opacity: 0.7; }
118
+ }
119
+
120
+ .card-body {
121
+ padding: 25px;
122
+ }
123
+
124
+ .card-category {
125
+ display: inline-block;
126
+ color: #667eea;
127
+ font-size: 12px;
128
+ font-weight: 600;
129
+ text-transform: uppercase;
130
+ letter-spacing: 0.5px;
131
+ margin-bottom: 10px;
132
+ }
133
+
134
+ .card-title {
135
+ color: #333;
136
+ font-size: 1.6rem;
137
+ margin-bottom: 12px;
138
+ font-weight: 600;
139
+ line-height: 1.3;
140
+ }
141
+
142
+ .card-subtitle {
143
+ color: #666;
144
+ font-size: 0.95rem;
145
+ margin-bottom: 15px;
146
+ font-weight: 500;
147
+ }
148
+
149
+ .card-text {
150
+ color: #666;
151
+ line-height: 1.7;
152
+ margin-bottom: 20px;
153
+ font-size: 0.95rem;
154
+ }
155
+
156
+ .card-price {
157
+ font-size: 2rem;
158
+ font-weight: 700;
159
+ color: #667eea;
160
+ margin-bottom: 15px;
161
+ }
162
+
163
+ /* Features List */
164
+ .card-features {
165
+ display: flex;
166
+ flex-direction: column;
167
+ gap: 8px;
168
+ margin-bottom: 20px;
169
+ }
170
+
171
+ .feature {
172
+ color: #555;
173
+ font-size: 0.9rem;
174
+ display: flex;
175
+ align-items: center;
176
+ gap: 8px;
177
+ }
178
+
179
+ /* Tags */
180
+ .card-tags {
181
+ display: flex;
182
+ flex-wrap: wrap;
183
+ gap: 8px;
184
+ margin-bottom: 15px;
185
+ }
186
+
187
+ .tag {
188
+ display: inline-block;
189
+ background: #f0f0f0;
190
+ color: #667eea;
191
+ padding: 5px 12px;
192
+ border-radius: 16px;
193
+ font-size: 0.85rem;
194
+ font-weight: 500;
195
+ }
196
+
197
+ /* Meta Information */
198
+ .card-meta {
199
+ display: flex;
200
+ gap: 15px;
201
+ margin-bottom: 20px;
202
+ font-size: 0.9rem;
203
+ color: #999;
204
+ }
205
+
206
+ .meta-item {
207
+ display: flex;
208
+ align-items: center;
209
+ gap: 5px;
210
+ }
211
+
212
+ /* Button */
213
+ .card-btn {
214
+ width: 100%;
215
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
216
+ color: white;
217
+ border: none;
218
+ padding: 12px 25px;
219
+ border-radius: 8px;
220
+ font-size: 14px;
221
+ font-weight: 600;
222
+ cursor: pointer;
223
+ transition: all 0.3s ease;
224
+ text-transform: uppercase;
225
+ letter-spacing: 0.5px;
226
+ position: relative;
227
+ overflow: hidden;
228
+ }
229
+
230
+ .card-btn::before {
231
+ content: '';
232
+ position: absolute;
233
+ top: 50%;
234
+ left: 50%;
235
+ width: 0;
236
+ height: 0;
237
+ border-radius: 50%;
238
+ background: rgba(255, 255, 255, 0.3);
239
+ transform: translate(-50%, -50%);
240
+ transition: width 0.6s, height 0.6s;
241
+ }
242
+
243
+ .card-btn:hover::before {
244
+ width: 300px;
245
+ height: 300px;
246
+ }
247
+
248
+ .card-btn:hover {
249
+ transform: translateY(-2px);
250
+ box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4);
251
+ }
252
+
253
+ .card-btn:active {
254
+ transform: translateY(0);
255
+ }
256
+
257
+ .btn-premium {
258
+ background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
259
+ }
260
+
261
+ .btn-premium:hover {
262
+ box-shadow: 0 8px 20px rgba(245, 87, 108, 0.4);
263
+ }
264
+
265
+ /* Card Variations */
266
+ .card-premium {
267
+ border-top: 3px solid #f5576c;
268
+ }
269
+
270
+ .card-minimal .card-body {
271
+ padding: 20px;
272
+ }
273
+
274
+ .card-minimal .card-title {
275
+ font-size: 1.4rem;
276
+ }
277
+
278
+ .card-minimal .card-text {
279
+ margin-bottom: 15px;
280
+ }
281
+
282
+ /* User Card */
283
+ .card-user .card-body {
284
+ text-align: center;
285
+ padding: 30px 25px;
286
+ }
287
+
288
+ .card-avatar {
289
+ font-size: 3rem;
290
+ margin-bottom: 15px;
291
+ }
292
+
293
+ .card-user .card-title {
294
+ margin-bottom: 5px;
295
+ }
296
+
297
+ .card-user .card-subtitle {
298
+ margin-bottom: 15px;
299
+ }
300
+
301
+ .card-social {
302
+ display: flex;
303
+ gap: 10px;
304
+ margin-top: 20px;
305
+ justify-content: center;
306
+ }
307
+
308
+ .social-btn {
309
+ display: inline-block;
310
+ padding: 8px 16px;
311
+ background: #f0f0f0;
312
+ color: #667eea;
313
+ text-decoration: none;
314
+ border-radius: 6px;
315
+ font-size: 0.85rem;
316
+ font-weight: 600;
317
+ transition: all 0.3s ease;
318
+ cursor: pointer;
319
+ }
320
+
321
+ .social-btn:hover {
322
+ background: #667eea;
323
+ color: white;
324
+ transform: translateY(-2px);
325
+ }
326
+
327
+ /* Interactive Card */
328
+ .card-actions {
329
+ display: flex;
330
+ gap: 10px;
331
+ margin-top: 20px;
332
+ }
333
+
334
+ .action-btn {
335
+ flex: 1;
336
+ padding: 10px 12px;
337
+ background: #f5f5f5;
338
+ border: 2px solid #e0e0e0;
339
+ border-radius: 8px;
340
+ cursor: pointer;
341
+ font-size: 0.9rem;
342
+ font-weight: 600;
343
+ transition: all 0.3s ease;
344
+ display: flex;
345
+ align-items: center;
346
+ justify-content: center;
347
+ gap: 6px;
348
+ }
349
+
350
+ .action-btn:hover {
351
+ border-color: #667eea;
352
+ background: #f9f9f9;
353
+ color: #667eea;
354
+ transform: translateY(-2px);
355
+ }
356
+
357
+ .action-btn:active {
358
+ transform: translateY(0);
359
+ }
360
+
361
+ /* Responsive */
362
+ @media (max-width: 768px) {
363
+ .cards-grid {
364
+ grid-template-columns: 1fr;
365
+ }
366
+
367
+ h1 {
368
+ font-size: 2rem;
369
+ }
370
+
371
+ .card-title {
372
+ font-size: 1.4rem;
373
+ }
374
+
375
+ .subtitle {
376
+ font-size: 1rem;
377
+ }
378
+ }
379
+ font-size: 2rem;
380
+ }
381
+ }