holygrail5 1.0.22 → 1.0.25

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/config.json CHANGED
@@ -36,6 +36,14 @@
36
36
  }
37
37
  ],
38
38
  "fonts": [
39
+ {
40
+ "source": "src/assets/fonts/suisse-intl-thin.woff2",
41
+ "dest": "dist/assets/fonts/suisse-intl-thin.woff2"
42
+ },
43
+ {
44
+ "source": "src/assets/fonts/suisse-intl-thin.woff",
45
+ "dest": "dist/assets/fonts/suisse-intl-thin.woff"
46
+ },
39
47
  {
40
48
  "source": "src/assets/fonts/suisse-intl-light.woff2",
41
49
  "dest": "dist/assets/fonts/suisse-intl-light.woff2"
@@ -130,15 +138,26 @@
130
138
  "gold": "#A38A6B",
131
139
  "platinum": "#5B7FA1",
132
140
  "bg-light": "#f9f9f9",
133
- "bg-cream": "#f4f2ed"
141
+ "bg-cream": "#f4f2ed",
142
+ "black-3": "rgba(0, 0, 0, 0.03)",
143
+ "black-15": "rgba(0, 0, 0, 0.15)",
144
+ "black-30": "rgba(0, 0, 0, 0.3)",
145
+ "black-60": "rgba(0, 0, 0, 0.6)",
146
+ "black-97": "rgba(0, 0, 0, 0.97)",
147
+ "white-3": "rgba(255, 255, 255, 0.03)",
148
+ "white-15": "rgba(255, 255, 255, 0.15)",
149
+ "white-30": "rgba(255, 255, 255, 0.3)",
150
+ "white-60": "rgba(255, 255, 255, 0.6)",
151
+ "white-97": "rgba(255, 255, 255, 0.97)"
134
152
  },
135
153
  "fontFamilyMap": {
154
+ "primary-thin": "\"suisse-thin\", Arial, Helvetica, sans-serif",
136
155
  "primary-light": "\"suisse-light\", Arial, Helvetica, sans-serif",
137
156
  "primary-regular": "\"suisse-regular\", Arial, Helvetica, sans-serif",
138
157
  "primary-bold": "\"suisse-semibold\", Arial, Helvetica, sans-serif",
139
158
  "secondary": "\"suisse-medium\", Arial, Helvetica, sans-serif",
140
- "mono-regular": "\"suisse-mono-regular\", Consolas, Menlo, Monaco, \"Courier New\", monospace",
141
- "mono-bold": "\"suisse-mono-bold\", Consolas, Menlo, Monaco, \"Courier New\", monospace"
159
+ "mono-regular": "\"suisse-mono-regular\", ui-monospace, monospace",
160
+ "mono-bold": "\"suisse-mono-bold\", ui-monospace, monospace"
142
161
  },
143
162
  "spacingMap": {
144
163
  "0": "0",
@@ -698,9 +717,21 @@
698
717
  }
699
718
  },
700
719
  "typo": {
720
+ "title-thin": {
721
+ "fontFamily": "\"suisse-thin\", Arial, Helvetica, sans-serif",
722
+ "fontWeight": "100",
723
+ "mobile": {
724
+ "fontSize": "24px",
725
+ "lineHeight": "1"
726
+ },
727
+ "desktop": {
728
+ "fontSize": "24px",
729
+ "lineHeight": "1"
730
+ }
731
+ },
701
732
  "title-xxl": {
702
733
  "fontFamily": "\"suisse-regular\", Arial, Helvetica, sans-serif",
703
- "fontWeight": "300",
734
+ "fontWeight": "400",
704
735
  "mobile": {
705
736
  "fontSize": "24px",
706
737
  "lineHeight": "1"
@@ -726,7 +757,7 @@
726
757
  },
727
758
  "title-l-b": {
728
759
  "fontFamily": "\"suisse-regular\", Arial, Helvetica, sans-serif",
729
- "fontWeight": "300",
760
+ "fontWeight": "400",
730
761
  "mobile": {
731
762
  "fontSize": "12px",
732
763
  "lineHeight": "1.4"
@@ -738,7 +769,7 @@
738
769
  },
739
770
  "title-l": {
740
771
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
741
- "fontWeight": "100",
772
+ "fontWeight": "300",
742
773
  "letterSpacing": "0.16em",
743
774
  "textTransform": "uppercase",
744
775
  "mobile": {
@@ -752,7 +783,7 @@
752
783
  },
753
784
  "title-m": {
754
785
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
755
- "fontWeight": "100",
786
+ "fontWeight": "300",
756
787
  "letterSpacing": "0.16em",
757
788
  "mobile": {
758
789
  "fontSize": "12px",
@@ -765,7 +796,7 @@
765
796
  },
766
797
  "title-s-b": {
767
798
  "fontFamily": "\"suisse-regular\", Arial, Helvetica, sans-serif",
768
- "fontWeight": "300",
799
+ "fontWeight": "400",
769
800
  "letterSpacing": "0.16em",
770
801
  "mobile": {
771
802
  "fontSize": "10px",
@@ -778,7 +809,7 @@
778
809
  },
779
810
  "title-s": {
780
811
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
781
- "fontWeight": "100",
812
+ "fontWeight": "300",
782
813
  "letterSpacing": "0.16em",
783
814
  "textTransform": "uppercase",
784
815
  "mobile": {
@@ -792,7 +823,7 @@
792
823
  },
793
824
  "text-l": {
794
825
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
795
- "fontWeight": "100",
826
+ "fontWeight": "300",
796
827
  "letterSpacing": "0.04em",
797
828
  "mobile": {
798
829
  "fontSize": "13px",
@@ -805,7 +836,7 @@
805
836
  },
806
837
  "text-m": {
807
838
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
808
- "fontWeight": "100",
839
+ "fontWeight": "300",
809
840
  "letterSpacing": "0.04em",
810
841
  "mobile": {
811
842
  "fontSize": "12px",
@@ -818,7 +849,7 @@
818
849
  },
819
850
  "p-tag": {
820
851
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
821
- "fontWeight": "100",
852
+ "fontWeight": "300",
822
853
  "letterSpacing": "0.16em",
823
854
  "mobile": {
824
855
  "fontSize": "9px",
@@ -831,7 +862,7 @@
831
862
  },
832
863
  "hg-body-l": {
833
864
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
834
- "fontWeight": "100",
865
+ "fontWeight": "300",
835
866
  "letterSpacing": "0.04em",
836
867
  "mobile": {
837
868
  "fontSize": "12px",
@@ -844,7 +875,7 @@
844
875
  },
845
876
  "hg-body-l-b": {
846
877
  "fontFamily": "\"suisse-regular\", Arial, Helvetica, sans-serif",
847
- "fontWeight": "300",
878
+ "fontWeight": "400",
848
879
  "letterSpacing": "0.04em",
849
880
  "mobile": {
850
881
  "fontSize": "12px",
@@ -857,7 +888,7 @@
857
888
  },
858
889
  "hg-body-m": {
859
890
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
860
- "fontWeight": "100",
891
+ "fontWeight": "300",
861
892
  "letterSpacing": "0.04em",
862
893
  "mobile": {
863
894
  "fontSize": "12px",
@@ -870,7 +901,7 @@
870
901
  },
871
902
  "hg-body-m-b": {
872
903
  "fontFamily": "\"suisse-regular\", Arial, Helvetica, sans-serif",
873
- "fontWeight": "300",
904
+ "fontWeight": "400",
874
905
  "letterSpacing": "0.04em",
875
906
  "mobile": {
876
907
  "fontSize": "12px",
@@ -883,7 +914,7 @@
883
914
  },
884
915
  "label-m": {
885
916
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
886
- "fontWeight": "100",
917
+ "fontWeight": "300",
887
918
  "letterSpacing": "0.16em",
888
919
  "textTransform": "uppercase",
889
920
  "mobile": {
@@ -897,7 +928,7 @@
897
928
  },
898
929
  "label-m-b": {
899
930
  "fontFamily": "\"suisse-regular\", Arial, Helvetica, sans-serif",
900
- "fontWeight": "300",
931
+ "fontWeight": "400",
901
932
  "letterSpacing": "0.16em",
902
933
  "textTransform": "uppercase",
903
934
  "mobile": {
@@ -911,7 +942,7 @@
911
942
  },
912
943
  "label-s": {
913
944
  "fontFamily": "\"suisse-light\", Arial, Helvetica, sans-serif",
914
- "fontWeight": "100",
945
+ "fontWeight": "300",
915
946
  "letterSpacing": "0.06em",
916
947
  "textTransform": "uppercase",
917
948
  "mobile": {
@@ -925,7 +956,7 @@
925
956
  },
926
957
  "label-s-b": {
927
958
  "fontFamily": "\"suisse-regular\", Arial, Helvetica, sans-serif",
928
- "fontWeight": "300",
959
+ "fontWeight": "400",
929
960
  "letterSpacing": "0.06em",
930
961
  "textTransform": "uppercase",
931
962
  "mobile": {
@@ -938,7 +969,7 @@
938
969
  }
939
970
  },
940
971
  "label-mono": {
941
- "fontFamily": "\"suisse-mono-regular\", Arial, Helvetica, sans-serif",
972
+ "fontFamily": "\"suisse-mono-regular\", ui-monospace, monospace",
942
973
  "fontWeight": "400",
943
974
  "letterSpacing": "0.06em",
944
975
  "textTransform": "uppercase",
@@ -952,7 +983,7 @@
952
983
  }
953
984
  },
954
985
  "label-mono-b": {
955
- "fontFamily": "\"suisse-mono-bold\", Arial, Helvetica, sans-serif",
986
+ "fontFamily": "\"suisse-mono-bold\", ui-monospace, monospace",
956
987
  "fontWeight": "700",
957
988
  "letterSpacing": "0.06em",
958
989
  "textTransform": "uppercase",
@@ -4,20 +4,13 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>HolyGrail5 — Componentes base</title>
7
- <link rel="preconnect" href="https://fonts.googleapis.com">
8
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Instrument+Sans:regular,100,500,600,700">
10
7
  <!-- Framework base -->
11
8
  <link rel="stylesheet" href="output.css">
12
9
  <!-- Tema base genérico: dutti (variables + componentes) -->
13
10
  <link rel="stylesheet" href="themes/dutti.css">
14
- <!-- Estilos compartidos de guía (header, sidebar, demo-*) -->
11
+ <!-- Estilos compartidos de guía (header, sidebar, demo-*; incluye @font-face Suisse y la regla body en Suisse) -->
15
12
  <link rel="stylesheet" href="guide-styles.css">
16
13
  <style>
17
- body {
18
- font-family: 'Instrument Sans', sans-serif !important;
19
- }
20
-
21
14
  /* Descripción de cada sección (debajo del título) */
22
15
  .cmp-desc {
23
16
  font-size: 14px;
@@ -10,16 +10,24 @@
10
10
  antiguos.
11
11
  ============================================ */
12
12
  @font-face {
13
- font-family: "suisse-light";
13
+ font-family: "suisse-thin";
14
14
  font-weight: 100;
15
15
  font-display: swap;
16
+ src: local("SuisseIntl-Thin"),
17
+ url('assets/fonts/suisse-intl-thin.woff2') format('woff2'),
18
+ url('assets/fonts/suisse-intl-thin.woff') format('woff');
19
+ }
20
+ @font-face {
21
+ font-family: "suisse-light";
22
+ font-weight: 300;
23
+ font-display: swap;
16
24
  src: local("SuisseIntl-Light"),
17
25
  url('assets/fonts/suisse-intl-light.woff2') format('woff2'),
18
26
  url('assets/fonts/suisse-intl-light.woff') format('woff');
19
27
  }
20
28
  @font-face {
21
29
  font-family: "suisse-regular";
22
- font-weight: 300;
30
+ font-weight: 400;
23
31
  font-display: swap;
24
32
  src: local("SuisseIntl-Regular"),
25
33
  url('assets/fonts/suisse-intl-regular.woff2') format('woff2'),
@@ -27,7 +35,7 @@
27
35
  }
28
36
  @font-face {
29
37
  font-family: "suisse-medium";
30
- font-weight: 400;
38
+ font-weight: 500;
31
39
  font-display: swap;
32
40
  src: local("SuisseIntl-Medium"),
33
41
  url('assets/fonts/suisse-intl-medium.woff2') format('woff2'),
@@ -35,7 +43,7 @@
35
43
  }
36
44
  @font-face {
37
45
  font-family: "suisse-semibold";
38
- font-weight: 500;
46
+ font-weight: 600;
39
47
  font-display: swap;
40
48
  src: local("SuisseIntl-SemiBold"),
41
49
  url('assets/fonts/suisse-intl-semibold.woff2') format('woff2'),
@@ -86,9 +94,7 @@
86
94
  /* ============================================
87
95
  RESET Y BASE
88
96
  ============================================ */
89
- * {
90
- scroll-behavior: smooth;
91
- }
97
+ /* Scroll nativo (sin suavizado): los saltos de ancla son instantáneos. */
92
98
 
93
99
  body {
94
100
  margin: 0;
@@ -112,14 +118,14 @@ h2 {
112
118
  margin-left: 0;
113
119
  flex: 1;
114
120
  padding: 0;
115
- padding-bottom: 10rem;
121
+ padding-bottom: 4rem;
116
122
  max-width: 100%;
117
123
  }
118
124
 
119
125
  .guide-main-content h2 {
120
- font-size: 50px;
121
- padding-bottom: 40px;
122
- margin-bottom: 40px;
126
+ font-size: 34px;
127
+ padding-bottom: 12px;
128
+ margin-bottom: 8px;
123
129
  font-weight: 500;
124
130
  color: #000;
125
131
  font-family: var(--hg-typo-font-family-primary-bold);
@@ -130,27 +136,27 @@ h2 {
130
136
  font-family: var(--hg-typo-font-family-primary-regular);
131
137
  color: #000;
132
138
  font-size: 16px;
133
- line-height: 28px;
134
- margin: 80px 0 12px;
139
+ line-height: 1.4;
140
+ margin: 2rem 0 0.75rem;
135
141
  }
136
142
 
137
143
  @media (min-width: 768px) {
138
144
  .guide-main-content h2 {
139
- font-size: 64px;
140
- padding-bottom: 40px;
141
- margin-bottom: 10px;
145
+ font-size: 44px;
146
+ padding-bottom: 12px;
147
+ margin-bottom: 8px;
142
148
  }
143
149
 
144
150
  .guide-main-content h3 {
145
151
  font-family: var(--hg-typo-font-family-primary-regular);
146
152
  color: #000;
147
- font-size: 20px;
148
- line-height: 28px;
149
- margin: 80px 0 12px;
153
+ font-size: 18px;
154
+ line-height: 1.4;
155
+ margin: 2rem 0 0.75rem;
150
156
  }
151
-
157
+
152
158
  .guide-section-description {
153
- font-size: 28px;
159
+ font-size: 18px;
154
160
  }
155
161
  }
156
162
 
@@ -163,20 +169,40 @@ h2 {
163
169
  border-radius: 8px;
164
170
  }
165
171
 
172
+ /* Compactación / unificación del ritmo vertical de la guía.
173
+ Las cabeceras de sección usan `.row.mb-120` (120px) como separador;
174
+ aquí lo reducimos a un valor coherente y mucho más pegado. También
175
+ homogeneizamos el espacio entre secciones y el del separador <hr>. */
176
+ .guide-section .row.mb-120,
177
+ .guide-section--highlighted .row.mb-120 {
178
+ margin-bottom: 1.5rem;
179
+ }
180
+ .guide-section + .guide-section,
181
+ .guide-section--highlighted + .guide-section,
182
+ .guide-section + .guide-section--highlighted {
183
+ margin-top: 2.5rem;
184
+ }
185
+ .guide-section .row.mb-120 hr,
186
+ .guide-section hr {
187
+ margin: 0.5rem 0 0;
188
+ border: 0;
189
+ border-top: 1px solid #e9e9e9;
190
+ }
191
+
166
192
  .guide-section.guide-section--highlighted {
167
193
  background: #fff;
168
- padding: 5rem 0 2rem 0;
194
+ padding: 2rem 0 1rem 0;
169
195
  }
170
196
  @media (min-width: 768px) {
171
197
  .guide-section.guide-section--highlighted {
172
- padding: 5rem 0;
198
+ padding: 2.5rem 0 1.5rem 0;
173
199
  }
174
200
  }
175
201
 
176
202
  .guide-section-title {
177
203
  font-size: 1.5rem;
178
204
  font-weight: 500;
179
- padding-bottom: 2rem;
205
+ padding-bottom: 1rem;
180
206
  line-height: 1.2;
181
207
  display: flex;
182
208
  justify-content: space-between;
@@ -186,34 +212,19 @@ h2 {
186
212
 
187
213
  @media (min-width: 768px) {
188
214
  .guide-section-title {
189
- margin-top: 3rem;
190
- flex-direction: row;
215
+ margin-top: 1.25rem;
216
+ /* Se mantiene en columna: el contenido (cajas explicativas) queda
217
+ debajo del titular y alineado a la izquierda, no en la mitad derecha. */
191
218
  }
192
219
  }
193
220
 
194
221
  .guide-section-description {
195
- margin-top: 1rem;
196
- font-size: 28px;
197
- color: #000000;
198
- font-family: var(--hg-typo-font-family-primary-light);
199
- margin-bottom: 20px;
200
-
201
- line-height: 1.2;
202
- width: 100%;
203
- margin-left: 0;
204
- display: flex;
205
- flex-direction: column;
206
- justify-content: flex-end;
207
- }
208
-
209
- .guide-section-description {
210
- margin-top: 1rem;
211
- font-size: 28px;
222
+ margin-top: 0.5rem;
223
+ font-size: 18px;
212
224
  color: #000000;
213
225
  font-family: var(--hg-typo-font-family-primary-light);
214
- margin-bottom: 20px;
215
-
216
- line-height: 1.2;
226
+ margin-bottom: 8px;
227
+ line-height: 1.35;
217
228
  width: 100%;
218
229
  margin-left: 0;
219
230
  display: flex;
@@ -439,6 +450,50 @@ h2 {
439
450
  overflow: auto;
440
451
  }
441
452
 
453
+ /* Dos tablas lado a lado en desktop para ver más filas sin tanto scroll;
454
+ se apilan en una sola columna en móvil. Genérico: lo usan Ratios y
455
+ Containers. */
456
+ .guide-cols-2 {
457
+ display: grid;
458
+ grid-template-columns: 1fr;
459
+ gap: 0 2.5rem;
460
+ align-items: start;
461
+ }
462
+ @media (min-width: 768px) {
463
+ .guide-cols-2 {
464
+ grid-template-columns: 1fr 1fr;
465
+ }
466
+ }
467
+ /* Tamaño compacto y unificado dentro de las vistas a 2 columnas
468
+ (Containers/Ratios), en línea con la densidad de la sección Layout. */
469
+ .guide-cols-2 .guide-table {
470
+ font-size: 0.78rem;
471
+ }
472
+ .guide-cols-2 .guide-table thead th {
473
+ font-size: 0.68rem;
474
+ padding-top: 0.3rem;
475
+ padding-bottom: 0.3rem;
476
+ }
477
+ .guide-cols-2 .guide-table td {
478
+ padding-top: 0.28rem;
479
+ padding-bottom: 0.28rem;
480
+ }
481
+
482
+ /* Badge "md:" en los títulos de grupo de la sección Layout (indica que el
483
+ helper tiene variantes responsive). */
484
+ .guide-layout-md {
485
+ font-size: 0.58rem;
486
+ font-weight: 600;
487
+ letter-spacing: 0;
488
+ text-transform: none;
489
+ color: var(--hg-color-dark-grey, #737373);
490
+ background: var(--hg-color-light-grey, #f4f2ed);
491
+ border-radius: 3px;
492
+ padding: 1px 5px;
493
+ margin-left: 0.35rem;
494
+ vertical-align: middle;
495
+ }
496
+
442
497
  /* ============================================
443
498
  VARIABLES CSS — Grid de 3 columnas compacto
444
499
  ============================================ */
@@ -559,14 +614,14 @@ h2 {
559
614
  color: #919191;
560
615
  letter-spacing: 0.05em;
561
616
  border-bottom: 1px solid #ddd;
562
- padding: 0.75rem;
617
+ padding: 0.5rem 0.75rem;
563
618
  padding-left: 0;
564
619
  text-align: left;
565
620
  z-index: 10;
566
621
  }
567
622
 
568
623
  .guide-table td {
569
- padding: 0.75rem;
624
+ padding: 0.38rem 0.75rem;
570
625
  padding-left: 0;
571
626
  border-bottom: 1px solid #efefef;
572
627
  vertical-align: middle;
@@ -594,9 +649,9 @@ h2 {
594
649
 
595
650
  .guide-table .guide-font-family-preview {
596
651
  min-width: 100px;
597
- padding: 0.75rem;
598
- min-height: 50px;
599
- font-size: 1.5rem;
652
+ padding: 0.4rem;
653
+ min-height: 34px;
654
+ font-size: 1.25rem;
600
655
  /* Dejamos que cada font-family muestre su peso natural. En
601
656
  esta convención (una familia por peso) cada @font-face
602
657
  declara un único font-weight, así que forzar un weight
@@ -693,7 +748,6 @@ h2 {
693
748
  .guide-text-bold,
694
749
  .guide-table .guide-table-name,
695
750
  .guide-layout-class-name {
696
- font-weight: 600;
697
751
  color: #000000;
698
752
  font-family: var(--hg-typo-font-family-primary-regular);
699
753
  }
@@ -1311,15 +1365,31 @@ h2 {
1311
1365
  gap: var(--hg-spacing-24);
1312
1366
  max-width: 100%;
1313
1367
  margin-left: 0;
1314
- margin-bottom: 10rem;
1368
+ margin-bottom: 2rem;
1315
1369
  }
1316
1370
 
1371
+ /* Las cajas explicativas van debajo del titular + línea, alineadas a la
1372
+ IZQUIERDA (antes: max-width 50% + margin-left 50% las empujaba a la
1373
+ mitad derecha de la página). */
1317
1374
  @media (min-width: 768px) {
1318
1375
  .demo-section-2 {
1319
1376
  grid-template-columns: repeat(2, 1fr);
1377
+ width: 100%;
1378
+ margin-left: 0;
1379
+ margin-bottom: 2rem;
1380
+ }
1381
+ }
1382
+
1383
+ /* Variante de una sola columna al 50% del ancho (p. ej. la intro del Grid):
1384
+ los bloques se apilan verticalmente en vez de quedar en 2 columnas con
1385
+ alturas descompensadas. En móvil ocupa el 100%. */
1386
+ .demo-section-2.demo-section-1col {
1387
+ grid-template-columns: 1fr;
1388
+ }
1389
+ @media (min-width: 768px) {
1390
+ .demo-section-2.demo-section-1col {
1320
1391
  max-width: 50%;
1321
- margin-left: 50%;
1322
- margin-bottom: 10rem;
1392
+ width: 50%;
1323
1393
  }
1324
1394
  }
1325
1395