mypgs 1.6.0 → 2.0.0
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/AGENTS.md +2 -2
- package/assets/javascript/components/_accordion.js +2 -2
- package/assets/javascript/components/_modals.js +159 -136
- package/assets/javascript/components/_notifications.js +19 -9
- package/assets/javascript/components/_search.js +2 -2
- package/assets/javascript/components/_slides.js +66 -32
- package/assets/javascript/components/_stepTabs.js +4 -4
- package/assets/javascript/components/_steps.js +2 -2
- package/assets/javascript/components/_summary.js +2 -2
- package/assets/javascript/functions/_formValidate.js +97 -53
- package/assets/javascript/functions/_scrollY.js +10 -10
- package/assets/javascript/layout/_header.js +3 -0
- package/assets/scss/base/_html.scss +2 -2
- package/assets/scss/base/_variables.scss +2 -2
- package/assets/scss/components/_form.scss +2 -2
- package/assets/scss/components/_notification.scss +23 -30
- package/assets/scss/components/_search.scss +27 -21
- package/assets/scss/layout/_pageShell.scss +18 -15
- package/assets/scss/mixin/_mx-form.scss +7 -7
- package/{templates/html → demo}/demo.html +1 -1
- package/demo/demo.js +240 -0
- package/dist/css/index.css +86 -92
- package/dist/css/index.css.map +1 -1
- package/dist/css/index.min.css +1 -1
- package/dist/javascript/index.js +356 -255
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/index.min.js +1 -1
- package/docs/componenti-e-markup.md +26 -27
- package/docs/components/accordion.md +61 -0
- package/docs/components/badges.md +67 -0
- package/docs/components/breadcumbs.md +43 -0
- package/docs/components/button.md +59 -0
- package/docs/components/card.md +50 -0
- package/docs/components/dropdown.md +135 -0
- package/docs/components/form.md +113 -0
- package/docs/components/logo.md +36 -0
- package/docs/components/menu.md +90 -0
- package/docs/components/modal.md +131 -0
- package/docs/components/notification.md +81 -0
- package/docs/components/search.md +117 -0
- package/docs/components/slides.md +85 -0
- package/docs/components/stepTabs.md +93 -0
- package/docs/components/steps.md +56 -0
- package/docs/components/summary.md +49 -0
- package/docs/components/table.md +42 -0
- package/docs/components/tooltip.md +53 -0
- package/docs/helper-javascript.md +68 -3
- package/docs/layout/body.md +41 -0
- package/docs/layout/flex.md +116 -0
- package/docs/layout/footer.md +71 -0
- package/docs/layout/grid.md +116 -0
- package/docs/layout/header.md +116 -0
- package/docs/layout/pageShell.md +94 -0
- package/docs/layout/section.md +69 -0
- package/docs/patterns/cookieConsent.md +89 -0
- package/package.json +2 -1
- package/scripts/generate-component-docs.js +557 -0
- package/templates/html/components/accordion.html +33 -4
- package/templates/html/components/badges.html +23 -0
- package/templates/html/components/breadcumbs.html +14 -0
- package/templates/html/components/button.html +22 -0
- package/templates/html/components/card.html +20 -0
- package/templates/html/components/dropdown.html +34 -0
- package/templates/html/components/form.html +82 -4
- package/templates/html/components/logo.html +21 -0
- package/templates/html/components/menu.html +33 -6
- package/templates/html/components/modal.html +44 -0
- package/templates/html/components/notification.html +68 -32
- package/templates/html/components/search.html +76 -0
- package/templates/html/components/slides.html +43 -0
- package/templates/html/components/stepTabs.html +47 -0
- package/templates/html/components/steps.html +24 -0
- package/templates/html/components/summary.html +27 -0
- package/templates/html/components/table.html +12 -0
- package/templates/html/components/tooltip.html +35 -0
- package/templates/html/layout/body.html +20 -5
- package/templates/html/layout/flex.html +20 -0
- package/templates/html/layout/footer.html +29 -1
- package/templates/html/layout/grid.html +20 -0
- package/templates/html/layout/header.html +41 -0
- package/templates/html/layout/pageShell.html +19 -0
- package/templates/html/layout/section.html +32 -10
- package/templates/html/patterns/cookieConsent.html +31 -0
- package/templates/react/components/form.jsx +3 -3
- package/templates/react/components/notification.jsx +4 -4
- package/templates/react/patterns/footer.jsx +1 -1
- package/templates/html/demo.js +0 -130
- /package/{templates/html → demo}/demo.css +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<!-- File generato automaticamente da templates/html/layout/flex.html. Modificare templates/html/layout/flex.html e rieseguire npm run docs:generate. -->
|
|
2
|
+
|
|
3
|
+
# Flex
|
|
4
|
+
|
|
5
|
+
Esempi di layout flex responsive che distribuiscono da due a sei elementi per riga adattando automaticamente la disposizione allo spazio disponibile.
|
|
6
|
+
|
|
7
|
+
## PGS
|
|
8
|
+
|
|
9
|
+
- `flex-2`: crea una distribuzione responsive fino a due elementi per riga.
|
|
10
|
+
- `flex-3`: crea una distribuzione responsive fino a tre elementi per riga.
|
|
11
|
+
- `flex-4`: crea una distribuzione responsive fino a quattro elementi per riga.
|
|
12
|
+
- `flex-6`: crea una distribuzione responsive fino a sei elementi per riga.
|
|
13
|
+
|
|
14
|
+
## Elementi correlati
|
|
15
|
+
|
|
16
|
+
- `container`: definisce il contesto contenitore dell'introduzione.
|
|
17
|
+
- `flexColumnTexts`: organizza verticalmente e distanzia testi e contenuti delle card.
|
|
18
|
+
- `card`: rende visibili le celle dimostrative del layout flex.
|
|
19
|
+
|
|
20
|
+
## Output
|
|
21
|
+
|
|
22
|
+
Raccolta HTML dei layout flex responsive a due, tre, quattro e sei elementi.
|
|
23
|
+
|
|
24
|
+
## Esempio
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<div pgs="container flexColumnTexts">
|
|
28
|
+
<strong>Sezione standard</strong>
|
|
29
|
+
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
<div pgs="flex-2">
|
|
34
|
+
<article pgs="card flexColumnTexts">
|
|
35
|
+
<strong>Colonna uno</strong>
|
|
36
|
+
<p>Contenuto della prima colonna.</p>
|
|
37
|
+
</article>
|
|
38
|
+
|
|
39
|
+
<article pgs="card flexColumnTexts">
|
|
40
|
+
<strong>Colonna due</strong>
|
|
41
|
+
<p>Contenuto della seconda colonna.</p>
|
|
42
|
+
</article>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div pgs="flex-3">
|
|
47
|
+
<article pgs="card flexColumnTexts">
|
|
48
|
+
<strong>Colonna uno</strong>
|
|
49
|
+
<p>Contenuto della prima colonna.</p>
|
|
50
|
+
</article>
|
|
51
|
+
|
|
52
|
+
<article pgs="card flexColumnTexts">
|
|
53
|
+
<strong>Colonna due</strong>
|
|
54
|
+
<p>Contenuto della seconda colonna.</p>
|
|
55
|
+
</article>
|
|
56
|
+
|
|
57
|
+
<article pgs="card flexColumnTexts">
|
|
58
|
+
<strong>Colonna tre</strong>
|
|
59
|
+
<p>Contenuto della terza colonna.</p>
|
|
60
|
+
</article>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
<div pgs="flex-4">
|
|
65
|
+
<article pgs="card flexColumnTexts">
|
|
66
|
+
<strong>Colonna uno</strong>
|
|
67
|
+
<p>Contenuto della prima colonna.</p>
|
|
68
|
+
</article>
|
|
69
|
+
|
|
70
|
+
<article pgs="card flexColumnTexts">
|
|
71
|
+
<strong>Colonna due</strong>
|
|
72
|
+
<p>Contenuto della seconda colonna.</p>
|
|
73
|
+
</article>
|
|
74
|
+
|
|
75
|
+
<article pgs="card flexColumnTexts">
|
|
76
|
+
<strong>Colonna tre</strong>
|
|
77
|
+
<p>Contenuto della terza colonna.</p>
|
|
78
|
+
</article>
|
|
79
|
+
<article pgs="card flexColumnTexts">
|
|
80
|
+
<strong>Colonna quattro</strong>
|
|
81
|
+
<p>Contenuto della quarta colonna.</p>
|
|
82
|
+
</article>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div pgs="flex-6">
|
|
86
|
+
<article pgs="card flexColumnTexts">
|
|
87
|
+
<strong>Colonna uno</strong>
|
|
88
|
+
<p>Contenuto della prima colonna.</p>
|
|
89
|
+
</article>
|
|
90
|
+
|
|
91
|
+
<article pgs="card flexColumnTexts">
|
|
92
|
+
<strong>Colonna due</strong>
|
|
93
|
+
<p>Contenuto della seconda colonna.</p>
|
|
94
|
+
</article>
|
|
95
|
+
|
|
96
|
+
<article pgs="card flexColumnTexts">
|
|
97
|
+
<strong>Colonna tre</strong>
|
|
98
|
+
<p>Contenuto della terza colonna.</p>
|
|
99
|
+
</article>
|
|
100
|
+
|
|
101
|
+
<article pgs="card flexColumnTexts">
|
|
102
|
+
<strong>Colonna quattro</strong>
|
|
103
|
+
<p>Contenuto della quarta colonna.</p>
|
|
104
|
+
</article>
|
|
105
|
+
|
|
106
|
+
<article pgs="card flexColumnTexts">
|
|
107
|
+
<strong>Colonna cinque</strong>
|
|
108
|
+
<p>Contenuto della quinta colonna.</p>
|
|
109
|
+
</article>
|
|
110
|
+
|
|
111
|
+
<article pgs="card flexColumnTexts">
|
|
112
|
+
<strong>Colonna sei</strong>
|
|
113
|
+
<p>Contenuto della sesta colonna.</p>
|
|
114
|
+
</article>
|
|
115
|
+
</div
|
|
116
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<!-- File generato automaticamente da templates/html/layout/footer.html. Modificare templates/html/layout/footer.html e rieseguire npm run docs:generate. -->
|
|
2
|
+
|
|
3
|
+
# Footer
|
|
4
|
+
|
|
5
|
+
Piè di pagina completo con controllo tema, area di brand, navigazione, contenuti informativi e collegamento alle preferenze cookie.
|
|
6
|
+
|
|
7
|
+
## PGS
|
|
8
|
+
|
|
9
|
+
- `footer`: identifica il contenitore principale del piè di pagina.
|
|
10
|
+
- `footer-top`: identifica la sezione superiore con brand e contenuti.
|
|
11
|
+
- `footer-top-content`: identifica il layout interno responsive della sezione superiore.
|
|
12
|
+
- `footer-brand`: identifica il gruppo dedicato al marchio.
|
|
13
|
+
- `footer-brand-motto`: identifica il testo descrittivo associato al marchio.
|
|
14
|
+
- `footer-content`: identifica una colonna informativa del footer.
|
|
15
|
+
- `footer-legal`: identifica la sezione inferiore dedicata alle informazioni legali.
|
|
16
|
+
- `footer-legal-content`: identifica il contenuto della sezione legale.
|
|
17
|
+
|
|
18
|
+
## Elementi correlati
|
|
19
|
+
|
|
20
|
+
- `button`: presenta i controlli del tema e delle preferenze cookie come pulsanti.
|
|
21
|
+
- `toggleDarkmode`: collega il controllo al gestore globale del tema chiaro o scuro.
|
|
22
|
+
- `section`: applica alle aree superiore e legale la struttura condivisa delle sezioni.
|
|
23
|
+
- `flex-3`: distribuisce in modo responsive le colonne della parte superiore.
|
|
24
|
+
- `logo`: inserisce il marchio nel footer.
|
|
25
|
+
- `logo-text`: usa la variante testuale del logo.
|
|
26
|
+
- `cookieConsent-actionOpen`: apre il pannello delle preferenze del pattern Cookie Consent.
|
|
27
|
+
|
|
28
|
+
## Output
|
|
29
|
+
|
|
30
|
+
Struttura HTML completa del footer con brand, menu e area legale.
|
|
31
|
+
|
|
32
|
+
## Esempio
|
|
33
|
+
|
|
34
|
+
```html
|
|
35
|
+
<footer pgs="footer">
|
|
36
|
+
<button pgs="button toggleDarkmode" type="button" aria-label="Cambia tema">
|
|
37
|
+
<i class="fa-solid fa-moon"></i>
|
|
38
|
+
</button>
|
|
39
|
+
|
|
40
|
+
<section pgs="footer-top section">
|
|
41
|
+
<div pgs="footer-top-content flex-3">
|
|
42
|
+
<div pgs="footer-brand">
|
|
43
|
+
<a aria-label="Logo" pgs="logo" href="/">
|
|
44
|
+
<span pgs="logo-text">MyPGS</span>
|
|
45
|
+
</a>
|
|
46
|
+
<p pgs="footer-brand-motto">Componenti frontend riutilizzabili.</p>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div pgs="footer-content">
|
|
50
|
+
<h2>Menu</h2>
|
|
51
|
+
<nav aria-label="Menu footer">
|
|
52
|
+
<ul>
|
|
53
|
+
<li><a href="/">Home</a></li>
|
|
54
|
+
<li><a href="/contatti">Contatti</a></li>
|
|
55
|
+
</ul>
|
|
56
|
+
</nav>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</section>
|
|
60
|
+
|
|
61
|
+
<section pgs="footer-legal section">
|
|
62
|
+
<div pgs="footer-legal-content">
|
|
63
|
+
<button type="button" pgs="button cookieConsent-actionOpen">Preferenze cookie</button>
|
|
64
|
+
<p><a href="">Privacy Policy</a></p>
|
|
65
|
+
<p><a href="">Cookie Policy</a></p>
|
|
66
|
+
<p><a href="">Termini e Condizioni</a></p>
|
|
67
|
+
<p>© 2026 MyPgs. Nessun diritto riservato.</p>
|
|
68
|
+
</div>
|
|
69
|
+
</section>
|
|
70
|
+
</footer>
|
|
71
|
+
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<!-- File generato automaticamente da templates/html/layout/grid.html. Modificare templates/html/layout/grid.html e rieseguire npm run docs:generate. -->
|
|
2
|
+
|
|
3
|
+
# Grid
|
|
4
|
+
|
|
5
|
+
Esempi di griglie responsive che distribuiscono da due a sei colonne mantenendo gap e ridimensionamento coerenti con il design system.
|
|
6
|
+
|
|
7
|
+
## PGS
|
|
8
|
+
|
|
9
|
+
- `grid-2`: crea una griglia responsive fino a due colonne.
|
|
10
|
+
- `grid-3`: crea una griglia responsive fino a tre colonne.
|
|
11
|
+
- `grid-4`: crea una griglia responsive fino a quattro colonne.
|
|
12
|
+
- `grid-6`: crea una griglia responsive fino a sei colonne.
|
|
13
|
+
|
|
14
|
+
## Elementi correlati
|
|
15
|
+
|
|
16
|
+
- `container`: definisce il contesto contenitore dell'introduzione.
|
|
17
|
+
- `flexColumnTexts`: organizza e distanzia i testi introduttivi e delle card.
|
|
18
|
+
- `card`: rende visibili le celle dimostrative delle griglie.
|
|
19
|
+
|
|
20
|
+
## Output
|
|
21
|
+
|
|
22
|
+
Raccolta HTML delle griglie responsive a due, tre, quattro e sei colonne.
|
|
23
|
+
|
|
24
|
+
## Esempio
|
|
25
|
+
|
|
26
|
+
```html
|
|
27
|
+
<div pgs="container flexColumnTexts">
|
|
28
|
+
<strong>Sezione standard</strong>
|
|
29
|
+
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
<div pgs="grid-2">
|
|
34
|
+
<article pgs="card flexColumnTexts">
|
|
35
|
+
<strong>Colonna uno</strong>
|
|
36
|
+
<p>Contenuto della prima colonna.</p>
|
|
37
|
+
</article>
|
|
38
|
+
|
|
39
|
+
<article pgs="card flexColumnTexts">
|
|
40
|
+
<strong>Colonna due</strong>
|
|
41
|
+
<p>Contenuto della seconda colonna.</p>
|
|
42
|
+
</article>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div pgs="grid-3">
|
|
47
|
+
<article pgs="card flexColumnTexts">
|
|
48
|
+
<strong>Colonna uno</strong>
|
|
49
|
+
<p>Contenuto della prima colonna.</p>
|
|
50
|
+
</article>
|
|
51
|
+
|
|
52
|
+
<article pgs="card flexColumnTexts">
|
|
53
|
+
<strong>Colonna due</strong>
|
|
54
|
+
<p>Contenuto della seconda colonna.</p>
|
|
55
|
+
</article>
|
|
56
|
+
|
|
57
|
+
<article pgs="card flexColumnTexts">
|
|
58
|
+
<strong>Colonna tre</strong>
|
|
59
|
+
<p>Contenuto della terza colonna.</p>
|
|
60
|
+
</article>
|
|
61
|
+
</div>
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
<div pgs="grid-4">
|
|
65
|
+
<article pgs="card flexColumnTexts">
|
|
66
|
+
<strong>Colonna uno</strong>
|
|
67
|
+
<p>Contenuto della prima colonna.</p>
|
|
68
|
+
</article>
|
|
69
|
+
|
|
70
|
+
<article pgs="card flexColumnTexts">
|
|
71
|
+
<strong>Colonna due</strong>
|
|
72
|
+
<p>Contenuto della seconda colonna.</p>
|
|
73
|
+
</article>
|
|
74
|
+
|
|
75
|
+
<article pgs="card flexColumnTexts">
|
|
76
|
+
<strong>Colonna tre</strong>
|
|
77
|
+
<p>Contenuto della terza colonna.</p>
|
|
78
|
+
</article>
|
|
79
|
+
<article pgs="card flexColumnTexts">
|
|
80
|
+
<strong>Colonna quattro</strong>
|
|
81
|
+
<p>Contenuto della quarta colonna.</p>
|
|
82
|
+
</article>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div pgs="grid-6">
|
|
86
|
+
<article pgs="card flexColumnTexts">
|
|
87
|
+
<strong>Colonna uno</strong>
|
|
88
|
+
<p>Contenuto della prima colonna.</p>
|
|
89
|
+
</article>
|
|
90
|
+
|
|
91
|
+
<article pgs="card flexColumnTexts">
|
|
92
|
+
<strong>Colonna due</strong>
|
|
93
|
+
<p>Contenuto della seconda colonna.</p>
|
|
94
|
+
</article>
|
|
95
|
+
|
|
96
|
+
<article pgs="card flexColumnTexts">
|
|
97
|
+
<strong>Colonna tre</strong>
|
|
98
|
+
<p>Contenuto della terza colonna.</p>
|
|
99
|
+
</article>
|
|
100
|
+
|
|
101
|
+
<article pgs="card flexColumnTexts">
|
|
102
|
+
<strong>Colonna quattro</strong>
|
|
103
|
+
<p>Contenuto della quarta colonna.</p>
|
|
104
|
+
</article>
|
|
105
|
+
|
|
106
|
+
<article pgs="card flexColumnTexts">
|
|
107
|
+
<strong>Colonna cinque</strong>
|
|
108
|
+
<p>Contenuto della quinta colonna.</p>
|
|
109
|
+
</article>
|
|
110
|
+
|
|
111
|
+
<article pgs="card flexColumnTexts">
|
|
112
|
+
<strong>Colonna sei</strong>
|
|
113
|
+
<p>Contenuto della sesta colonna.</p>
|
|
114
|
+
</article>
|
|
115
|
+
</div
|
|
116
|
+
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<!-- File generato automaticamente da templates/html/layout/header.html. Modificare templates/html/layout/header.html e rieseguire npm run docs:generate. -->
|
|
2
|
+
|
|
3
|
+
# Header
|
|
4
|
+
|
|
5
|
+
Intestazione responsive che misura lo spazio disponibile, alterna contenuti desktop e mobile e integra menu, tema scuro e navigazione modale.
|
|
6
|
+
|
|
7
|
+
## PGS
|
|
8
|
+
|
|
9
|
+
- `header`: identifica l'intestazione principale osservata dal modulo JavaScript.
|
|
10
|
+
- `header-element`: identifica il gruppo interno misurato per determinare il passaggio alla modalità mobile.
|
|
11
|
+
- `header-element-alwaysOn`: identifica l'area iniziale sempre visibile.
|
|
12
|
+
- `header-element-onlyDesktop`: identifica i contenuti mostrati soltanto quando il menu desktop è attivo.
|
|
13
|
+
- `header-element-onlyMobile`: identifica i contenuti mostrati soltanto in modalità mobile.
|
|
14
|
+
- `header-element-alwaysOnLast`: identifica l'area finale sempre visibile.
|
|
15
|
+
- `header-element-hamburger`: identifica il gruppo della navigazione mobile.
|
|
16
|
+
- `header-element-hamburger-button`: identifica il controllo hamburger specifico dell'header.
|
|
17
|
+
|
|
18
|
+
## PGS Options
|
|
19
|
+
|
|
20
|
+
- `horizontal`: dispone orizzontalmente il menu desktop correlato.
|
|
21
|
+
- `vertical`: dispone verticalmente il menu mobile correlato.
|
|
22
|
+
- `menuHeader`: adatta entrambi i menu al contesto dell'header.
|
|
23
|
+
- `containerPGS`: sul wrapper modal usa containerPGS[header] per spostare il dialog nell'intestazione.
|
|
24
|
+
- `right`: sul dialog della navigazione mobile presenta il contenuto dal lato destro.
|
|
25
|
+
|
|
26
|
+
## PGS States
|
|
27
|
+
|
|
28
|
+
- `mobileActive`: viene applicato a header e header-element quando larghezza o viewport richiedono la navigazione mobile.
|
|
29
|
+
|
|
30
|
+
## Elementi correlati
|
|
31
|
+
|
|
32
|
+
- `logo`: inserisce il marchio nell'area iniziale.
|
|
33
|
+
- `logo-text`: usa la variante testuale del logo.
|
|
34
|
+
- `menu`: fornisce la navigazione desktop e mobile.
|
|
35
|
+
- `buttonIcon`: presenta i controlli tema e hamburger come pulsanti a icona.
|
|
36
|
+
- `toggleDarkmode`: collega il controllo al gestore globale del tema.
|
|
37
|
+
- `modal`: fornisce apertura e chiusura della navigazione mobile.
|
|
38
|
+
- `modal-button`: apre il pannello mobile.
|
|
39
|
+
- `modal-close`: chiude il pannello mobile e condivide il controllo hamburger.
|
|
40
|
+
- `modal-dialog`: identifica il dialog della navigazione mobile.
|
|
41
|
+
- `modal-dialog-content`: identifica il pannello interno della navigazione mobile.
|
|
42
|
+
|
|
43
|
+
## Output
|
|
44
|
+
|
|
45
|
+
Header HTML completo con navigazione desktop e pannello mobile laterale.
|
|
46
|
+
|
|
47
|
+
## Esempio
|
|
48
|
+
|
|
49
|
+
```html
|
|
50
|
+
<header pgs="header">
|
|
51
|
+
<div pgs="header-element">
|
|
52
|
+
<div pgs="header-element-alwaysOn">
|
|
53
|
+
<a aria-label="Logo" pgs="logo" href="/">
|
|
54
|
+
<span pgs="logo-text">MyPGS</span>
|
|
55
|
+
</a>
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
<div pgs="header-element-onlyDesktop">
|
|
59
|
+
<nav pgs="menu" pgs-option="horizontal menuHeader" aria-label="Menu principale">
|
|
60
|
+
<ul>
|
|
61
|
+
<li><a href="/">Home</a></li>
|
|
62
|
+
<li><a href="#componenti">Componenti</a></li>
|
|
63
|
+
<li><a href="#layout">Layout</a></li>
|
|
64
|
+
</ul>
|
|
65
|
+
</nav>
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<div pgs="header-element-onlyMobile">
|
|
69
|
+
</div>
|
|
70
|
+
|
|
71
|
+
<div pgs="header-element-alwaysOnLast">
|
|
72
|
+
<button pgs="buttonIcon toggleDarkmode" type="button" aria-label="Cambia tema">
|
|
73
|
+
<i class="fa-solid fa-moon"></i>
|
|
74
|
+
</button>
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div pgs="header-element-hamburger modal" pgs-option="containerPGS[header] ">
|
|
78
|
+
|
|
79
|
+
<button pgs="buttonIcon modal-button modal-close header-element-hamburger-button" type="button"></button>
|
|
80
|
+
|
|
81
|
+
<dialog pgs="modal-dialog" pgs-option="right">
|
|
82
|
+
<div pgs="modal-dialog-content">
|
|
83
|
+
<nav pgs="menu" pgs-option="vertical menuHeader" aria-label="Menu mobile">
|
|
84
|
+
<ul>
|
|
85
|
+
<li><a href="/">Home</a></li>
|
|
86
|
+
<li><a href="#componenti">Componenti</a></li>
|
|
87
|
+
<li><a href="#layout">Layout</a></li>
|
|
88
|
+
</ul>
|
|
89
|
+
</nav>
|
|
90
|
+
</div>
|
|
91
|
+
</dialog>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<!-- //# HEADER BOTTOM -->
|
|
96
|
+
|
|
97
|
+
<script>
|
|
98
|
+
const addPgsState = (element, state) => {
|
|
99
|
+
if (!element) return;
|
|
100
|
+
|
|
101
|
+
const states = element.getAttribute("pgs-state")?.split(/\s+/) ?? [];
|
|
102
|
+
element.setAttribute("pgs-state", [...new Set([...states, state])].join(" "));
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
if (localStorage.getItem("screenIsDarkMode") === "true") {
|
|
106
|
+
addPgsState(document.documentElement, "darkmode");
|
|
107
|
+
addPgsState(document.body, "darkmode");
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (window.innerWidth < 600) {
|
|
111
|
+
addPgsState(document.querySelector("header"), "mobileActive");
|
|
112
|
+
addPgsState(document.querySelector("[pgs~=header-element]"), "mobileActive");
|
|
113
|
+
}
|
|
114
|
+
</script>
|
|
115
|
+
</header>
|
|
116
|
+
```
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
<!-- File generato automaticamente da templates/html/layout/pageShell.html. Modificare templates/html/layout/pageShell.html e rieseguire npm run docs:generate. -->
|
|
2
|
+
|
|
3
|
+
# Page Shell
|
|
4
|
+
|
|
5
|
+
Layout di pagina responsive che combina un contenuto principale con zero, una o due barre laterali scorrevoli, adattandone larghezza e posizione.
|
|
6
|
+
|
|
7
|
+
## PGS
|
|
8
|
+
|
|
9
|
+
- `pageShell`: identifica il contenitore che calcola la composizione di main e aside.
|
|
10
|
+
- `pageShell-aside`: identifica una barra laterale posizionabile prima o dopo il contenuto.
|
|
11
|
+
- `pageShell-aside-scroll`: identifica l'area interna che può restare visibile durante lo scorrimento.
|
|
12
|
+
- `pageShell-content`: identifica il contenuto principale della pagina.
|
|
13
|
+
|
|
14
|
+
## Elementi correlati
|
|
15
|
+
|
|
16
|
+
- `flexColumnTexts`: organizza i testi contenuti nelle barre laterali.
|
|
17
|
+
- `flexColumnElements`: organizza verticalmente gli elementi delle sezioni principali.
|
|
18
|
+
|
|
19
|
+
## Output
|
|
20
|
+
|
|
21
|
+
Quattro configurazioni HTML di page shell con due, una o nessuna barra laterale.
|
|
22
|
+
|
|
23
|
+
## Esempio
|
|
24
|
+
|
|
25
|
+
```html
|
|
26
|
+
<div pgs="pageShell">
|
|
27
|
+
<aside pgs="pageShell-aside">
|
|
28
|
+
<div pgs="pageShell-aside-scroll">
|
|
29
|
+
<div pgs="flexColumnTexts">
|
|
30
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab modi ut sunt est illum accusantium dolores eum aut cum itaque.</p>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</aside>
|
|
34
|
+
|
|
35
|
+
<main pgs="pageShell-content">
|
|
36
|
+
<section pgs="flexColumnElements" id="sezione-uno">
|
|
37
|
+
<strong>Lorem ipsum</strong>
|
|
38
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem dolore veniam nulla hic voluptatum harum illo voluptatem quos. Id quibusdam nemo, mollitia iusto quisquam tenetur doloremque corrupti natus nisi est sed consectetur deserunt? Fugiat consectetur iure aut id voluptate unde autem eius facilis dolorum? Eveniet, sit, excepturi iusto porro eos temporibus illum non ut sunt ex aut earum neque. Iure harum similique autem commodi ratione enim quisquam soluta rem, eius dolor officiis necessitatibus voluptatibus obcaecati vel sint iusto. Eligendi reiciendis aut error rem? Hic aliquid tenetur porro itaque quaerat excepturi consequatur veniam, et alias molestiae, eius odio quae maiores suscipit iure voluptatibus sed dolor facere ipsa quod libero necessitatibus, placeat natus. Doloribus esse nobis culpa ab ut dolorem id expedita nesciunt necessitatibus ipsam natus accusantium eius eveniet eum, distinctio quos modi perspiciatis earum sequi nostrum consequatur quibusdam? Blanditiis iusto possimus officia odio animi repudiandae? Repellendus autem ut soluta facere accusamus magni aut architecto cumque cupiditate. Nostrum officiis, tenetur consequuntur quaerat alias animi debitis? Quae quas placeat iure alias totam quaerat fugit recusandae sed, earum ipsa nihil molestiae quam odit itaque, odio asperiores, mollitia porro ratione tempora laboriosam. Incidunt aliquam nobis sunt ut molestiae nam animi placeat neque vero ratione? Eaque?</p>
|
|
39
|
+
</section>
|
|
40
|
+
</main>
|
|
41
|
+
|
|
42
|
+
<aside pgs="pageShell-aside">
|
|
43
|
+
<div pgs="pageShell-aside-scroll">
|
|
44
|
+
<div pgs="flexColumnTexts">
|
|
45
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab modi ut sunt est illum accusantium dolores eum aut cum itaque.</p>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</aside>
|
|
49
|
+
</div>
|
|
50
|
+
<div pgs="pageShell">
|
|
51
|
+
<aside pgs="pageShell-aside">
|
|
52
|
+
<div pgs="pageShell-aside-scroll">
|
|
53
|
+
<div pgs="flexColumnTexts">
|
|
54
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab modi ut sunt est illum accusantium dolores eum aut cum itaque.</p>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</aside>
|
|
58
|
+
|
|
59
|
+
<main pgs="pageShell-content">
|
|
60
|
+
<section pgs="flexColumnElements" id="sezione-uno">
|
|
61
|
+
<strong>Lorem ipsum</strong>
|
|
62
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem dolore veniam nulla hic voluptatum harum illo voluptatem quos. Id quibusdam nemo, mollitia iusto quisquam tenetur doloremque corrupti natus nisi est sed consectetur deserunt? Fugiat consectetur iure aut id voluptate unde autem eius facilis dolorum? Eveniet, sit, excepturi iusto porro eos temporibus illum non ut sunt ex aut earum neque. Iure harum similique autem commodi ratione enim quisquam soluta rem, eius dolor officiis necessitatibus voluptatibus obcaecati vel sint iusto. Eligendi reiciendis aut error rem? Hic aliquid tenetur porro itaque quaerat excepturi consequatur veniam, et alias molestiae, eius odio quae maiores suscipit iure voluptatibus sed dolor facere ipsa quod libero necessitatibus, placeat natus. Doloribus esse nobis culpa ab ut dolorem id expedita nesciunt necessitatibus ipsam natus accusantium eius eveniet eum, distinctio quos modi perspiciatis earum sequi nostrum consequatur quibusdam? Blanditiis iusto possimus officia odio animi repudiandae? Repellendus autem ut soluta facere accusamus magni aut architecto cumque cupiditate. Nostrum officiis, tenetur consequuntur quaerat alias animi debitis? Quae quas placeat iure alias totam quaerat fugit recusandae sed, earum ipsa nihil molestiae quam odit itaque, odio asperiores, mollitia porro ratione tempora laboriosam. Incidunt aliquam nobis sunt ut molestiae nam animi placeat neque vero ratione? Eaque?</p>
|
|
63
|
+
</section>
|
|
64
|
+
</main>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<div pgs="pageShell">
|
|
68
|
+
|
|
69
|
+
<main pgs="pageShell-content">
|
|
70
|
+
<section pgs="flexColumnElements" id="sezione-uno">
|
|
71
|
+
<strong>Lorem ipsum</strong>
|
|
72
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem dolore veniam nulla hic voluptatum harum illo voluptatem quos. Id quibusdam nemo, mollitia iusto quisquam tenetur doloremque corrupti natus nisi est sed consectetur deserunt? Fugiat consectetur iure aut id voluptate unde autem eius facilis dolorum? Eveniet, sit, excepturi iusto porro eos temporibus illum non ut sunt ex aut earum neque. Iure harum similique autem commodi ratione enim quisquam soluta rem, eius dolor officiis necessitatibus voluptatibus obcaecati vel sint iusto. Eligendi reiciendis aut error rem? Hic aliquid tenetur porro itaque quaerat excepturi consequatur veniam, et alias molestiae, eius odio quae maiores suscipit iure voluptatibus sed dolor facere ipsa quod libero necessitatibus, placeat natus. Doloribus esse nobis culpa ab ut dolorem id expedita nesciunt necessitatibus ipsam natus accusantium eius eveniet eum, distinctio quos modi perspiciatis earum sequi nostrum consequatur quibusdam? Blanditiis iusto possimus officia odio animi repudiandae? Repellendus autem ut soluta facere accusamus magni aut architecto cumque cupiditate. Nostrum officiis, tenetur consequuntur quaerat alias animi debitis? Quae quas placeat iure alias totam quaerat fugit recusandae sed, earum ipsa nihil molestiae quam odit itaque, odio asperiores, mollitia porro ratione tempora laboriosam. Incidunt aliquam nobis sunt ut molestiae nam animi placeat neque vero ratione? Eaque?</p>
|
|
73
|
+
</section>
|
|
74
|
+
</main>
|
|
75
|
+
|
|
76
|
+
<aside pgs="pageShell-aside">
|
|
77
|
+
<div pgs="pageShell-aside-scroll">
|
|
78
|
+
<div pgs="flexColumnTexts">
|
|
79
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Ab modi ut sunt est illum accusantium dolores eum aut cum itaque.</p>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</aside>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div pgs="pageShell">
|
|
86
|
+
|
|
87
|
+
<main pgs="pageShell-content">
|
|
88
|
+
<section pgs="flexColumnElements" id="sezione-uno">
|
|
89
|
+
<strong>Lorem ipsum</strong>
|
|
90
|
+
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quidem dolore veniam nulla hic voluptatum harum illo voluptatem quos. Id quibusdam nemo, mollitia iusto quisquam tenetur doloremque corrupti natus nisi est sed consectetur deserunt? Fugiat consectetur iure aut id voluptate unde autem eius facilis dolorum? Eveniet, sit, excepturi iusto porro eos temporibus illum non ut sunt ex aut earum neque. Iure harum similique autem commodi ratione enim quisquam soluta rem, eius dolor officiis necessitatibus voluptatibus obcaecati vel sint iusto. Eligendi reiciendis aut error rem? Hic aliquid tenetur porro itaque quaerat excepturi consequatur veniam, et alias molestiae, eius odio quae maiores suscipit iure voluptatibus sed dolor facere ipsa quod libero necessitatibus, placeat natus. Doloribus esse nobis culpa ab ut dolorem id expedita nesciunt necessitatibus ipsam natus accusantium eius eveniet eum, distinctio quos modi perspiciatis earum sequi nostrum consequatur quibusdam? Blanditiis iusto possimus officia odio animi repudiandae? Repellendus autem ut soluta facere accusamus magni aut architecto cumque cupiditate. Nostrum officiis, tenetur consequuntur quaerat alias animi debitis? Quae quas placeat iure alias totam quaerat fugit recusandae sed, earum ipsa nihil molestiae quam odit itaque, odio asperiores, mollitia porro ratione tempora laboriosam. Incidunt aliquam nobis sunt ut molestiae nam animi placeat neque vero ratione? Eaque?</p>
|
|
91
|
+
</section>
|
|
92
|
+
</main>
|
|
93
|
+
</div>
|
|
94
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<!-- File generato automaticamente da templates/html/layout/section.html. Modificare templates/html/layout/section.html e rieseguire npm run docs:generate. -->
|
|
2
|
+
|
|
3
|
+
# Section
|
|
4
|
+
|
|
5
|
+
Varianti di sezione che controllano larghezza, padding e trattamento di contenuti specifici mantenendo la spaziatura verticale condivisa.
|
|
6
|
+
|
|
7
|
+
## PGS
|
|
8
|
+
|
|
9
|
+
- `section`: identifica la sezione standard con contenuto centrato.
|
|
10
|
+
- `sectionFull`: identifica una sezione estesa a tutta la larghezza disponibile.
|
|
11
|
+
- `sectionSpecificity`: identifica una sezione che applica una struttura specifica al relativo figlio.
|
|
12
|
+
- `sectionSpecificity-child`: identifica il contenuto figlio gestito dalla variante sectionSpecificity.
|
|
13
|
+
- `sectionMax`: identifica una sezione con larghezza massima estesa.
|
|
14
|
+
- `sectionNoPadding`: identifica una sezione priva del padding standard.
|
|
15
|
+
|
|
16
|
+
## Elementi correlati
|
|
17
|
+
|
|
18
|
+
- `flexColumnSections`: distanzia verticalmente tutte le sezioni dell'esempio.
|
|
19
|
+
- `flexColumnElements`: organizza verticalmente gli elementi principali di ogni sezione.
|
|
20
|
+
- `flexColumnTexts`: organizza e distanzia i contenuti interni.
|
|
21
|
+
- `card-img`: riutilizza il trattamento delle immagini card nelle sezioni dimostrative.
|
|
22
|
+
- `imgCover`: adatta le immagini alla larghezza della sezione.
|
|
23
|
+
|
|
24
|
+
## Output
|
|
25
|
+
|
|
26
|
+
Raccolta HTML delle varianti di section disponibili.
|
|
27
|
+
|
|
28
|
+
## Esempio
|
|
29
|
+
|
|
30
|
+
```html
|
|
31
|
+
<div pgs="flexColumnSections">
|
|
32
|
+
<section pgs="section flexColumnElements">
|
|
33
|
+
<div pgs="flexColumnTexts">
|
|
34
|
+
<strong>Sezione standard</strong>
|
|
35
|
+
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
36
|
+
</div>
|
|
37
|
+
</section>
|
|
38
|
+
|
|
39
|
+
<section pgs="sectionFull flexColumnElements">
|
|
40
|
+
<div pgs="flexColumnTexts">
|
|
41
|
+
<strong>Sezione full-width</strong>
|
|
42
|
+
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
43
|
+
</div>
|
|
44
|
+
</section>
|
|
45
|
+
|
|
46
|
+
<section pgs="sectionSpecificity flexColumnElements">
|
|
47
|
+
<div pgs="flexColumnTexts">
|
|
48
|
+
<img pgs="card-img imgCover" src="https://placehold.co/800x200?text=Hero" alt="Immagine segnaposto">
|
|
49
|
+
</div>
|
|
50
|
+
<div pgs="sectionSpecificity-child flexColumnTexts">
|
|
51
|
+
<strong>Sezione specificità-child</strong>
|
|
52
|
+
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
53
|
+
</div>
|
|
54
|
+
</section>
|
|
55
|
+
|
|
56
|
+
<section pgs="sectionMax flexColumnElements" style="background-color: var(--color-primary-soft)">
|
|
57
|
+
<div pgs="flexColumnTexts">
|
|
58
|
+
<strong>Sezione max-width</strong>
|
|
59
|
+
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
60
|
+
</div>
|
|
61
|
+
</section>
|
|
62
|
+
|
|
63
|
+
<section pgs="sectionNoPadding flexColumnElements">
|
|
64
|
+
<div pgs="flexColumnTexts">
|
|
65
|
+
<img pgs="card-img imgCover" src="https://placehold.co/800x500?text=HI!" alt="Immagine segnaposto">
|
|
66
|
+
</div>
|
|
67
|
+
</section>
|
|
68
|
+
</div>
|
|
69
|
+
```
|