holygrail5 1.0.19 → 1.0.21

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 (77) hide show
  1. package/README.md +88 -18
  2. package/config.json +205 -77
  3. package/dist/assets/fonts/suisse-intl-light.woff +0 -0
  4. package/dist/assets/fonts/suisse-intl-light.woff2 +0 -0
  5. package/dist/assets/fonts/suisse-intl-medium.woff +0 -0
  6. package/dist/assets/fonts/suisse-intl-medium.woff2 +0 -0
  7. package/dist/assets/fonts/suisse-intl-regular.woff +0 -0
  8. package/dist/assets/fonts/suisse-intl-regular.woff2 +0 -0
  9. package/dist/assets/fonts/suisse-intl-semibold.woff +0 -0
  10. package/dist/assets/fonts/suisse-intl-semibold.woff2 +0 -0
  11. package/dist/assets/fonts/suisse-works-bold.woff +0 -0
  12. package/dist/assets/fonts/suisse-works-bold.woff2 +0 -0
  13. package/dist/assets/fonts/suisse-works-medium.woff +0 -0
  14. package/dist/assets/fonts/suisse-works-medium.woff2 +0 -0
  15. package/dist/assets/fonts/suisse-works-regular.woff +0 -0
  16. package/dist/assets/fonts/suisse-works-regular.woff2 +0 -0
  17. package/dist/componentes.html +429 -0
  18. package/dist/developer-guide.md +7 -7
  19. package/dist/guide-styles.css +197 -25
  20. package/dist/index.html +807 -689
  21. package/dist/output.css +217 -114
  22. package/dist/skills.html +14 -8
  23. package/dist/themes/dutti-demo.html +713 -19
  24. package/dist/themes/dutti.css +67 -16
  25. package/dist/themes/limited-demo.html +1121 -0
  26. package/dist/themes/limited.css +2493 -0
  27. package/package.json +1 -1
  28. package/src/.data/.previous-values.json +151 -84
  29. package/src/assets/fonts/suisse-intl-light.woff +0 -0
  30. package/src/assets/fonts/suisse-intl-light.woff2 +0 -0
  31. package/src/assets/fonts/suisse-intl-medium.woff +0 -0
  32. package/src/assets/fonts/suisse-intl-medium.woff2 +0 -0
  33. package/src/assets/fonts/suisse-intl-regular.woff +0 -0
  34. package/src/assets/fonts/suisse-intl-regular.woff2 +0 -0
  35. package/src/assets/fonts/suisse-intl-semibold.woff +0 -0
  36. package/src/assets/fonts/suisse-intl-semibold.woff2 +0 -0
  37. package/src/assets/fonts/suisse-works-bold.woff +0 -0
  38. package/src/assets/fonts/suisse-works-bold.woff2 +0 -0
  39. package/src/assets/fonts/suisse-works-medium.woff +0 -0
  40. package/src/assets/fonts/suisse-works-medium.woff2 +0 -0
  41. package/src/assets/fonts/suisse-works-regular.woff +0 -0
  42. package/src/assets/fonts/suisse-works-regular.woff2 +0 -0
  43. package/src/build/asset-manager.js +94 -3
  44. package/src/build/build-orchestrator.js +74 -12
  45. package/src/build/components-generator.js +584 -0
  46. package/src/build/skills-generator.js +43 -5
  47. package/src/build/theme-config-loader.js +58 -0
  48. package/src/build/theme-transformer.js +109 -16
  49. package/src/build/theme-vars-table-generator.js +349 -0
  50. package/src/build/typo-table-generator.js +154 -0
  51. package/src/docs-generator/guide-styles.css +197 -24
  52. package/src/docs-generator/html-generator.js +92 -246
  53. package/src/docs-generator/sections/colors-section.js +109 -0
  54. package/src/docs-generator/value-tracker.js +154 -0
  55. package/src/generators/typo-generator.js +2 -1
  56. package/src/generators/utils.js +90 -1
  57. package/src/skills.html +1 -0
  58. package/src/watch-config.js +99 -32
  59. package/themes/{dutti → _base}/_buttons.css +2 -2
  60. package/themes/{dutti → _base}/_checkboxes.css +1 -1
  61. package/themes/{dutti → _base}/_forms.css +1 -1
  62. package/themes/{dutti → _base}/_inputs.css +55 -10
  63. package/themes/{dutti → _base}/_labels.css +1 -1
  64. package/themes/dutti/README.md +67 -21
  65. package/themes/dutti/_variables.css +7 -1
  66. package/themes/dutti/demo.html +18 -14
  67. package/themes/dutti/theme.css +22 -44
  68. package/themes/dutti/theme.json +86 -0
  69. package/themes/limited/_variables.css +123 -0
  70. package/themes/limited/demo.html +296 -0
  71. package/themes/limited/theme.css +32 -0
  72. package/themes/limited/theme.json +105 -0
  73. /package/themes/{dutti → _base}/_containers.css +0 -0
  74. /package/themes/{dutti → _base}/_radios.css +0 -0
  75. /package/themes/{dutti → _base}/_switches.css +0 -0
  76. /package/themes/{dutti → _base}/components/_icons.css +0 -0
  77. /package/themes/{dutti → _base}/objects/_grid.css +0 -0
@@ -1,3 +1,72 @@
1
+ /* ============================================
2
+ FUENTES — Suisse Intl (sans) + Suisse Works (serif)
3
+ Convención: una font-family por peso (suisse-light/regular/
4
+ medium/semibold) en lugar de una familia con varios pesos.
5
+ local() permite usar la fuente instalada en el sistema si
6
+ existe, evitando la descarga. font-display: swap evita el
7
+ FOIT — el texto se muestra con la fuente fallback y se
8
+ sustituye al cargar la web. Servimos woff2 (formato moderno,
9
+ más comprimido) con fallback a woff para navegadores muy
10
+ antiguos.
11
+ ============================================ */
12
+ @font-face {
13
+ font-family: "suisse-light";
14
+ font-weight: 100;
15
+ font-display: swap;
16
+ src: local("SuisseIntl-Light"),
17
+ url('assets/fonts/suisse-intl-light.woff2') format('woff2'),
18
+ url('assets/fonts/suisse-intl-light.woff') format('woff');
19
+ }
20
+ @font-face {
21
+ font-family: "suisse-regular";
22
+ font-weight: 300;
23
+ font-display: swap;
24
+ src: local("SuisseIntl-Regular"),
25
+ url('assets/fonts/suisse-intl-regular.woff2') format('woff2'),
26
+ url('assets/fonts/suisse-intl-regular.woff') format('woff');
27
+ }
28
+ @font-face {
29
+ font-family: "suisse-medium";
30
+ font-weight: 400;
31
+ font-display: swap;
32
+ src: local("SuisseIntl-Medium"),
33
+ url('assets/fonts/suisse-intl-medium.woff2') format('woff2'),
34
+ url('assets/fonts/suisse-intl-medium.woff') format('woff');
35
+ }
36
+ @font-face {
37
+ font-family: "suisse-semibold";
38
+ font-weight: 500;
39
+ font-display: swap;
40
+ src: local("SuisseIntl-SemiBold"),
41
+ url('assets/fonts/suisse-intl-semibold.woff2') format('woff2'),
42
+ url('assets/fonts/suisse-intl-semibold.woff') format('woff');
43
+ }
44
+ /* Suisse Works (serif) — reservado para el tema Limited */
45
+ @font-face {
46
+ font-family: "suisse-works-regular";
47
+ font-weight: 400;
48
+ font-display: swap;
49
+ src: local("SuisseWorks-Regular"),
50
+ url('assets/fonts/suisse-works-regular.woff2') format('woff2'),
51
+ url('assets/fonts/suisse-works-regular.woff') format('woff');
52
+ }
53
+ @font-face {
54
+ font-family: "suisse-works-medium";
55
+ font-weight: 500;
56
+ font-display: swap;
57
+ src: local("SuisseWorks-Medium"),
58
+ url('assets/fonts/suisse-works-medium.woff2') format('woff2'),
59
+ url('assets/fonts/suisse-works-medium.woff') format('woff');
60
+ }
61
+ @font-face {
62
+ font-family: "suisse-works-bold";
63
+ font-weight: 700;
64
+ font-display: swap;
65
+ src: local("SuisseWorks-Bold"),
66
+ url('assets/fonts/suisse-works-bold.woff2') format('woff2'),
67
+ url('assets/fonts/suisse-works-bold.woff') format('woff');
68
+ }
69
+
1
70
  /* ============================================
2
71
  RESET Y BASE
3
72
  ============================================ */
@@ -8,7 +77,7 @@
8
77
  body {
9
78
  margin: 0;
10
79
  padding: 0;
11
- font-family: var(--hg-typo-font-family-primary);
80
+ font-family: var(--hg-typo-font-family-primary-regular);
12
81
  }
13
82
 
14
83
  h2 {
@@ -37,12 +106,12 @@ h2 {
37
106
  margin-bottom: 40px;
38
107
  font-weight: 500;
39
108
  color: #000;
40
- font-family: "Instrument Sans", sans-serif;
109
+ font-family: var(--hg-typo-font-family-primary-bold);
41
110
  letter-spacing: 0;
42
111
  }
43
112
 
44
113
  .guide-main-content h3 {
45
- font-family: helvetica;
114
+ font-family: var(--hg-typo-font-family-primary-regular);
46
115
  color: #000;
47
116
  font-size: 16px;
48
117
  line-height: 28px;
@@ -57,7 +126,7 @@ h2 {
57
126
  }
58
127
 
59
128
  .guide-main-content h3 {
60
- font-family: helvetica;
129
+ font-family: var(--hg-typo-font-family-primary-regular);
61
130
  color: #000;
62
131
  font-size: 20px;
63
132
  line-height: 28px;
@@ -110,7 +179,7 @@ h2 {
110
179
  margin-top: 1rem;
111
180
  font-size: 28px;
112
181
  color: #000000;
113
- font-family: "Instrument Sans", sans-serif;
182
+ font-family: var(--hg-typo-font-family-primary-light);
114
183
  margin-bottom: 20px;
115
184
 
116
185
  line-height: 1.2;
@@ -125,7 +194,7 @@ h2 {
125
194
  margin-top: 1rem;
126
195
  font-size: 28px;
127
196
  color: #000000;
128
- font-family: "Instrument Sans", sans-serif;
197
+ font-family: var(--hg-typo-font-family-primary-light);
129
198
  margin-bottom: 20px;
130
199
 
131
200
  line-height: 1.2;
@@ -206,11 +275,14 @@ h2 {
206
275
  align-items: center;
207
276
  }
208
277
  .guide-nav a {
278
+ font-family: var(--hg-typo-font-family-primary-regular);
209
279
  font-size: 13px;
210
280
  color: #666;
211
281
  text-decoration: none;
212
282
  transition: color 0.2s;
213
283
  white-space: nowrap;
284
+ text-transform: uppercase;
285
+ letter-spacing: 0.05em;
214
286
  }
215
287
  .guide-nav a:hover {
216
288
  color: #000;
@@ -229,7 +301,6 @@ h2 {
229
301
  font-size: 10px;
230
302
  font-weight: 500;
231
303
  transition: background 0.2s ease;
232
- margin-left: auto;
233
304
  width: 50px;
234
305
  height: 50px;
235
306
  flex-shrink: 0;
@@ -352,6 +423,102 @@ h2 {
352
423
  overflow: auto;
353
424
  }
354
425
 
426
+ /* ============================================
427
+ VARIABLES CSS — Grid de 3 columnas compacto
428
+ ============================================ */
429
+ .guide-variables-grid {
430
+ column-count: 2;
431
+ column-gap: 2rem;
432
+ margin-top: 0;
433
+ font-family: var(--hg-typo-font-family-primary-regular);
434
+ }
435
+ @media (max-width: 720px) {
436
+ .guide-variables-grid { column-count: 1; }
437
+ }
438
+ .guide-variables-group {
439
+ break-inside: avoid;
440
+ -webkit-column-break-inside: avoid;
441
+ page-break-inside: avoid;
442
+ margin: 0 0 1.5rem;
443
+ padding: 0.75rem 1rem;
444
+ border: 1px solid #e9e9e9;
445
+ border-radius: 6px;
446
+ background: #fff;
447
+ display: block;
448
+ }
449
+ .guide-variables-group-title {
450
+ margin: 0 0 0.5rem;
451
+ font-family: var(--hg-typo-font-family-primary-regular);
452
+ font-size: 0.75rem;
453
+ font-weight: 700;
454
+ letter-spacing: 0.06em;
455
+ text-transform: uppercase;
456
+ color: #737373;
457
+ }
458
+ .guide-variables-group-count {
459
+ color: #a9a9a9;
460
+ font-weight: 400;
461
+ margin-left: 0.25rem;
462
+ }
463
+ .guide-variables-group-list {
464
+ display: flex;
465
+ flex-direction: column;
466
+ }
467
+ .guide-variable-item {
468
+ display: flex;
469
+ align-items: center;
470
+ justify-content: space-between;
471
+ gap: 0.75rem;
472
+ padding: 0.4rem 0;
473
+ border-bottom: 1px solid #efefef;
474
+ min-width: 0;
475
+ font-size: 0.72rem;
476
+ }
477
+ .guide-variables-group-list .guide-variable-item:last-child {
478
+ border-bottom: 0;
479
+ }
480
+ .guide-variable-item .guide-variable-name {
481
+ font-weight: 600;
482
+ color: #000;
483
+ word-break: break-all;
484
+ cursor: pointer;
485
+ line-height: 1.3;
486
+ flex: 1 1 auto;
487
+ min-width: 0;
488
+ }
489
+ .guide-variable-item .guide-variable-values {
490
+ display: flex;
491
+ align-items: baseline;
492
+ gap: 0.75rem;
493
+ flex-shrink: 0;
494
+ text-align: right;
495
+ font-size: 0.68rem;
496
+ }
497
+ .guide-variable-item .guide-variable-value {
498
+ color: #333;
499
+ cursor: pointer;
500
+ word-break: break-all;
501
+ max-width: 180px;
502
+ }
503
+ .guide-variable-item .guide-value-center-blue,
504
+ .guide-variable-item .guide-value-center-orange {
505
+ cursor: pointer;
506
+ font-weight: 500;
507
+ white-space: nowrap;
508
+ }
509
+ .guide-variable-item .guide-changed {
510
+ background: transparent;
511
+ }
512
+ .guide-variable-item .guide-variable-swatch {
513
+ display: inline-block;
514
+ width: 14px;
515
+ height: 14px;
516
+ border-radius: 3px;
517
+ border: 1px solid #e3e3e3;
518
+ flex-shrink: 0;
519
+ vertical-align: middle;
520
+ }
521
+
355
522
  .guide-table {
356
523
  width: 100%;
357
524
  border-collapse: collapse;
@@ -414,7 +581,12 @@ h2 {
414
581
  padding: 0.75rem;
415
582
  min-height: 50px;
416
583
  font-size: 1.5rem;
417
- font-weight: 600;
584
+ /* Dejamos que cada font-family muestre su peso natural. En
585
+ esta convención (una familia por peso) cada @font-face
586
+ declara un único font-weight, así que forzar un weight
587
+ aquí anula la diferencia visual entre light / regular /
588
+ medium / semibold. */
589
+ font-weight: normal;
418
590
  }
419
591
 
420
592
  /* Rectángulo de lados afectados (tabla spacing modernas) */
@@ -507,12 +679,12 @@ h2 {
507
679
  .guide-layout-class-name {
508
680
  font-weight: 600;
509
681
  color: #000000;
510
- font-family: arial;
682
+ font-family: var(--hg-typo-font-family-primary-regular);
511
683
  }
512
684
 
513
685
  .guide-text-regular,
514
686
  .guide-table .guide-table-value {
515
- font-family: arial;
687
+ font-family: var(--hg-typo-font-family-primary-regular);
516
688
  color: #333;
517
689
  font-size: 13px;
518
690
  }
@@ -522,7 +694,7 @@ h2 {
522
694
  .guide-table .guide-desktop-value,
523
695
  .guide-table .guide-value-center-blue {
524
696
  font-weight: 500;
525
- font-family: arial;
697
+ font-family: var(--hg-typo-font-family-primary-regular);
526
698
  color: #000000;
527
699
  }
528
700
 
@@ -530,7 +702,7 @@ h2 {
530
702
  .guide-layout-property,
531
703
  .guide-color-var-name,
532
704
  .guide-color-value {
533
- font-family: arial;
705
+ font-family: var(--hg-typo-font-family-primary-regular);
534
706
  color: #666;
535
707
  font-size: 13px;
536
708
  }
@@ -554,7 +726,7 @@ h2 {
554
726
 
555
727
  .guide-table .guide-value-center-orange {
556
728
  font-weight: 500;
557
- font-family: arial;
729
+ font-family: var(--hg-typo-font-family-primary-regular);
558
730
  color: #cc6600;
559
731
  }
560
732
 
@@ -662,7 +834,7 @@ h2 {
662
834
  .guide-info-box-code-info {
663
835
  padding: 0.125rem 0.375rem;
664
836
  border-radius: 3px;
665
- font-family: arial;
837
+ font-family: var(--hg-typo-font-family-primary-regular);
666
838
  font-size: 0.875rem;
667
839
  }
668
840
 
@@ -672,7 +844,7 @@ h2 {
672
844
  padding: 1rem;
673
845
  border-radius: 4px;
674
846
  overflow-x: auto;
675
- font-family: arial;
847
+ font-family: var(--hg-typo-font-family-primary-regular);
676
848
  font-size: 12px;
677
849
  border-radius: 24px;
678
850
  margin-bottom: 24px;
@@ -771,18 +943,18 @@ h2 {
771
943
  ============================================ */
772
944
  .guide-colors-grid {
773
945
  display: grid;
774
- grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
775
- gap: 1.5rem;
946
+ grid-template-columns: repeat(10, minmax(0, 1fr));
947
+ gap: 0.75rem;
776
948
  margin-top: 2rem;
777
949
  padding-inline: 0.5rem;
778
950
  padding-bottom: 2rem;
779
951
  }
780
952
 
781
-
782
- @media (min-width: 768px) {
783
- .guide-colors-grid {
784
- grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
785
- }
953
+ @media (max-width: 1280px) {
954
+ .guide-colors-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
955
+ }
956
+ @media (max-width: 720px) {
957
+ .guide-colors-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
786
958
  }
787
959
 
788
960
 
@@ -957,7 +1129,7 @@ h2 {
957
1129
  position: absolute;
958
1130
  font-size: 0.875rem;
959
1131
  font-weight: 600;
960
- font-family: arial;
1132
+ font-family: var(--hg-typo-font-family-primary-regular);
961
1133
  color: #333;
962
1134
  background: white;
963
1135
  padding: 0.25rem 0.5rem;
@@ -1024,7 +1196,7 @@ h2 {
1024
1196
  }
1025
1197
 
1026
1198
  .guide-typeface-left {
1027
- font-family: var(--hg-typo-font-family-primary);
1199
+ font-family: var(--hg-typo-font-family-primary-regular);
1028
1200
  display: flex;
1029
1201
  flex-direction: column;
1030
1202
  gap: 2rem;
@@ -1189,7 +1361,7 @@ h2 {
1189
1361
  }
1190
1362
 
1191
1363
  .case-study-holygrail-title {
1192
- font-family: 'Roboto', sans-serif;
1364
+ font-family: var(--hg-typo-font-family-primary-light);
1193
1365
  font-size: clamp(2.5rem, 12vw, 8rem);
1194
1366
  font-weight: 100;
1195
1367
  letter-spacing: 0.2em;