mypgs 2.0.0 → 3.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/.vscode/tasks.json +39 -0
- package/AGENTS.md +22 -21
- package/README.md +25 -25
- package/assets/javascript/components/_menu.js +2 -1
- package/assets/javascript/components/_modals.js +1 -1
- package/assets/javascript/components/_notifications.js +2 -1
- package/assets/javascript/components/_slides.js +2 -2
- package/assets/scss/base/_body.scss +5 -5
- package/assets/scss/base/_general.scss +27 -18
- package/assets/scss/base/_variables.scss +1 -1
- package/assets/scss/components/_accordion.scss +9 -9
- package/assets/scss/components/_alerts.scss +71 -0
- package/assets/scss/components/_badges.scss +40 -48
- package/assets/scss/components/_button.scss +28 -20
- package/assets/scss/components/_card.scss +9 -4
- package/assets/scss/components/_form.scss +0 -16
- package/assets/scss/components/_formAddon.scss +22 -0
- package/assets/scss/components/_logo.scss +3 -4
- package/assets/scss/components/_menu.scss +26 -3
- package/assets/scss/components/_modals.scss +6 -4
- package/assets/scss/components/_search.scss +2 -2
- package/assets/scss/components/_slides.scss +0 -1
- package/assets/scss/components/_stepTabs.scss +2 -1
- package/assets/scss/components/_tooltip.scss +0 -1
- package/assets/scss/index.scss +3 -3
- package/assets/scss/layout/_footer.scss +0 -2
- package/assets/scss/layout/_header.scss +10 -2
- package/assets/scss/layout/_pageShell.scss +6 -2
- package/assets/scss/layout/_responsive.scss +63 -0
- package/assets/scss/mixin/_mx-base.scss +4 -8
- package/assets/scss/mixin/_mx-button.scss +73 -115
- package/assets/scss/mixin/_mx-card.scss +39 -40
- package/assets/scss/mixin/_mx-form.scss +13 -10
- package/assets/scss/mixin/{_mx-form-addon.scss → _mx-formAddon.scss} +103 -64
- package/assets/scss/mixin/_mx-hover.scss +81 -0
- package/assets/scss/mixin/_mx-responsive.scss +81 -201
- package/assets/scss/mixin/_settings.scss +2 -1
- package/assets/scss/mixin/mixin.scss +2 -1
- package/demo/demo.css +9 -6
- package/demo/demo.html +7 -5
- package/demo/demo.js +37 -34
- package/dist/css/index.css +2469 -3825
- package/dist/css/index.css.map +1 -1
- package/dist/css/index.min.css +1 -1
- package/dist/javascript/index.js +7 -5
- package/dist/javascript/index.js.map +1 -1
- package/dist/javascript/index.min.js +1 -1
- package/docs/componenti-e-markup.md +9 -8
- package/docs/components/accordion.md +23 -23
- package/docs/components/alerts.md +67 -0
- package/docs/components/badges.md +29 -26
- package/docs/components/breadcumbs.md +8 -8
- package/docs/components/button.md +18 -18
- package/docs/components/card.md +25 -22
- package/docs/components/dropdown.md +29 -29
- package/docs/components/form.md +65 -41
- package/docs/components/formAddon.md +116 -0
- package/docs/components/logo.md +11 -11
- package/docs/components/menu.md +20 -20
- package/docs/components/modal.md +52 -51
- package/docs/components/notification.md +34 -34
- package/docs/components/search.md +54 -52
- package/docs/components/slides.md +41 -42
- package/docs/components/stepTabs.md +45 -45
- package/docs/components/steps.md +16 -16
- package/docs/components/summary.md +20 -20
- package/docs/components/table.md +7 -7
- package/docs/components/tooltip.md +24 -23
- package/docs/convenzioni.md +11 -11
- package/docs/export-e-sviluppo.md +4 -4
- package/docs/helper-javascript.md +8 -8
- package/docs/layout/body.md +11 -11
- package/docs/layout/footer.md +28 -24
- package/docs/layout/header.md +36 -35
- package/docs/layout/pageShell.md +19 -19
- package/docs/layout/responsive.md +90 -0
- package/docs/layout/section.md +38 -38
- package/docs/patterns/cookieConsent.md +42 -39
- package/docs/utilizzo-css-scss.md +33 -9
- package/package.json +1 -1
- package/reference/html/components/accordion.html +52 -0
- package/reference/html/components/alerts.html +59 -0
- package/reference/html/components/badges.html +62 -0
- package/{templates → reference}/html/components/breadcumbs.html +6 -6
- package/reference/html/components/button.html +51 -0
- package/reference/html/components/card.html +45 -0
- package/{templates → reference}/html/components/dropdown.html +25 -25
- package/reference/html/components/form.html +128 -0
- package/reference/html/components/formAddon.html +109 -0
- package/reference/html/components/logo.html +28 -0
- package/{templates → reference}/html/components/menu.html +17 -17
- package/reference/html/components/modal.html +123 -0
- package/reference/html/components/notification.html +71 -0
- package/reference/html/components/search.html +109 -0
- package/reference/html/components/slides.html +75 -0
- package/reference/html/components/stepTabs.html +83 -0
- package/reference/html/components/steps.html +49 -0
- package/reference/html/components/summary.html +41 -0
- package/{templates → reference}/html/components/table.html +5 -5
- package/reference/html/components/tooltip.html +44 -0
- package/reference/html/layout/body.html +34 -0
- package/reference/html/layout/footer.html +67 -0
- package/reference/html/layout/header.html +108 -0
- package/{templates → reference}/html/layout/pageShell.html +16 -16
- package/reference/html/layout/responsive.html +83 -0
- package/reference/html/layout/section.html +62 -0
- package/reference/html/patterns/cookieConsent.html +84 -0
- package/{templates → reference}/react/components/accordion.jsx +5 -5
- package/reference/react/components/alerts.jsx +46 -0
- package/{templates → reference}/react/components/breadcumbs.jsx +1 -1
- package/{templates → reference}/react/components/button.jsx +6 -6
- package/{templates → reference}/react/components/card.jsx +6 -6
- package/{templates → reference}/react/components/dropdown.jsx +8 -8
- package/{templates → reference}/react/components/form.jsx +3 -3
- package/{templates → reference}/react/components/modal.jsx +15 -15
- package/{templates → reference}/react/components/notification.jsx +3 -3
- package/{templates → reference}/react/components/search.jsx +8 -8
- package/{templates → reference}/react/components/slides.jsx +4 -4
- package/{templates → reference}/react/components/stepTabs.jsx +12 -12
- package/reference/react/components/summary.jsx +18 -0
- package/{templates → reference}/react/components/table.jsx +2 -2
- package/{templates → reference}/react/components/tooltip.jsx +1 -1
- package/{templates → reference}/react/layout/pageShell.jsx +2 -2
- package/reference/react/layout/responsive.jsx +61 -0
- package/reference/react/layout/section.jsx +44 -0
- package/{templates → reference}/react/patterns/cookieConsent.jsx +9 -9
- package/{templates → reference}/react/patterns/footer.jsx +4 -4
- package/{templates → reference}/react/patterns/header.jsx +4 -4
- package/scripts/generate-component-docs.js +12 -12
- package/assets/scss/layout/_flex.scss +0 -49
- package/assets/scss/layout/_gap.scss +0 -21
- package/assets/scss/layout/_grid.scss +0 -13
- package/docs/layout/flex.md +0 -116
- package/docs/layout/grid.md +0 -116
- package/templates/html/components/accordion.html +0 -52
- package/templates/html/components/badges.html +0 -60
- package/templates/html/components/button.html +0 -51
- package/templates/html/components/card.html +0 -43
- package/templates/html/components/form.html +0 -104
- package/templates/html/components/logo.html +0 -28
- package/templates/html/components/modal.html +0 -122
- package/templates/html/components/notification.html +0 -71
- package/templates/html/components/search.html +0 -107
- package/templates/html/components/slides.html +0 -76
- package/templates/html/components/stepTabs.html +0 -83
- package/templates/html/components/steps.html +0 -49
- package/templates/html/components/summary.html +0 -41
- package/templates/html/components/tooltip.html +0 -43
- package/templates/html/layout/body.html +0 -35
- package/templates/html/layout/flex.html +0 -109
- package/templates/html/layout/footer.html +0 -64
- package/templates/html/layout/grid.html +0 -109
- package/templates/html/layout/header.html +0 -107
- package/templates/html/layout/section.html +0 -62
- package/templates/html/patterns/cookieConsent.html +0 -82
- package/templates/react/components/summary.jsx +0 -18
- package/templates/react/layout/flex.jsx +0 -36
- package/templates/react/layout/grid.jsx +0 -36
- package/templates/react/layout/section.jsx +0 -44
- /package/{templates → reference}/react/components/logo.jsx +0 -0
- /package/{templates → reference}/react/components/menu.jsx +0 -0
- /package/{templates → reference}/react/components/steps.jsx +0 -0
- /package/{templates → reference}/react/layout/body.jsx +0 -0
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
/**
|
|
3
|
-
* @title Flex
|
|
4
|
-
* @description Esempi di layout flex responsive che distribuiscono da due a sei elementi per riga adattando automaticamente la disposizione allo spazio disponibile.
|
|
5
|
-
*
|
|
6
|
-
* @pgs
|
|
7
|
-
* - flex-2: crea una distribuzione responsive fino a due elementi per riga.
|
|
8
|
-
* - flex-3: crea una distribuzione responsive fino a tre elementi per riga.
|
|
9
|
-
* - flex-4: crea una distribuzione responsive fino a quattro elementi per riga.
|
|
10
|
-
* - flex-6: crea una distribuzione responsive fino a sei elementi per riga.
|
|
11
|
-
*
|
|
12
|
-
* @related
|
|
13
|
-
* - container: definisce il contesto contenitore dell'introduzione.
|
|
14
|
-
* - flexColumnTexts: organizza verticalmente e distanzia testi e contenuti delle card.
|
|
15
|
-
* - card: rende visibili le celle dimostrative del layout flex.
|
|
16
|
-
*
|
|
17
|
-
* @return Raccolta HTML dei layout flex responsive a due, tre, quattro e sei elementi.
|
|
18
|
-
*/
|
|
19
|
-
-->
|
|
20
|
-
|
|
21
|
-
<div pgs="container flexColumnTexts">
|
|
22
|
-
<strong>Sezione standard</strong>
|
|
23
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
24
|
-
</div>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<div pgs="flex-2">
|
|
28
|
-
<article pgs="card flexColumnTexts">
|
|
29
|
-
<strong>Colonna uno</strong>
|
|
30
|
-
<p>Contenuto della prima colonna.</p>
|
|
31
|
-
</article>
|
|
32
|
-
|
|
33
|
-
<article pgs="card flexColumnTexts">
|
|
34
|
-
<strong>Colonna due</strong>
|
|
35
|
-
<p>Contenuto della seconda colonna.</p>
|
|
36
|
-
</article>
|
|
37
|
-
</div>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
<div pgs="flex-3">
|
|
41
|
-
<article pgs="card flexColumnTexts">
|
|
42
|
-
<strong>Colonna uno</strong>
|
|
43
|
-
<p>Contenuto della prima colonna.</p>
|
|
44
|
-
</article>
|
|
45
|
-
|
|
46
|
-
<article pgs="card flexColumnTexts">
|
|
47
|
-
<strong>Colonna due</strong>
|
|
48
|
-
<p>Contenuto della seconda colonna.</p>
|
|
49
|
-
</article>
|
|
50
|
-
|
|
51
|
-
<article pgs="card flexColumnTexts">
|
|
52
|
-
<strong>Colonna tre</strong>
|
|
53
|
-
<p>Contenuto della terza colonna.</p>
|
|
54
|
-
</article>
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
<div pgs="flex-4">
|
|
59
|
-
<article pgs="card flexColumnTexts">
|
|
60
|
-
<strong>Colonna uno</strong>
|
|
61
|
-
<p>Contenuto della prima colonna.</p>
|
|
62
|
-
</article>
|
|
63
|
-
|
|
64
|
-
<article pgs="card flexColumnTexts">
|
|
65
|
-
<strong>Colonna due</strong>
|
|
66
|
-
<p>Contenuto della seconda colonna.</p>
|
|
67
|
-
</article>
|
|
68
|
-
|
|
69
|
-
<article pgs="card flexColumnTexts">
|
|
70
|
-
<strong>Colonna tre</strong>
|
|
71
|
-
<p>Contenuto della terza colonna.</p>
|
|
72
|
-
</article>
|
|
73
|
-
<article pgs="card flexColumnTexts">
|
|
74
|
-
<strong>Colonna quattro</strong>
|
|
75
|
-
<p>Contenuto della quarta colonna.</p>
|
|
76
|
-
</article>
|
|
77
|
-
</div>
|
|
78
|
-
|
|
79
|
-
<div pgs="flex-6">
|
|
80
|
-
<article pgs="card flexColumnTexts">
|
|
81
|
-
<strong>Colonna uno</strong>
|
|
82
|
-
<p>Contenuto della prima colonna.</p>
|
|
83
|
-
</article>
|
|
84
|
-
|
|
85
|
-
<article pgs="card flexColumnTexts">
|
|
86
|
-
<strong>Colonna due</strong>
|
|
87
|
-
<p>Contenuto della seconda colonna.</p>
|
|
88
|
-
</article>
|
|
89
|
-
|
|
90
|
-
<article pgs="card flexColumnTexts">
|
|
91
|
-
<strong>Colonna tre</strong>
|
|
92
|
-
<p>Contenuto della terza colonna.</p>
|
|
93
|
-
</article>
|
|
94
|
-
|
|
95
|
-
<article pgs="card flexColumnTexts">
|
|
96
|
-
<strong>Colonna quattro</strong>
|
|
97
|
-
<p>Contenuto della quarta colonna.</p>
|
|
98
|
-
</article>
|
|
99
|
-
|
|
100
|
-
<article pgs="card flexColumnTexts">
|
|
101
|
-
<strong>Colonna cinque</strong>
|
|
102
|
-
<p>Contenuto della quinta colonna.</p>
|
|
103
|
-
</article>
|
|
104
|
-
|
|
105
|
-
<article pgs="card flexColumnTexts">
|
|
106
|
-
<strong>Colonna sei</strong>
|
|
107
|
-
<p>Contenuto della sesta colonna.</p>
|
|
108
|
-
</article>
|
|
109
|
-
</div
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
/**
|
|
3
|
-
* @title Footer
|
|
4
|
-
* @description Piè di pagina completo con controllo tema, area di brand, navigazione, contenuti informativi e collegamento alle preferenze cookie.
|
|
5
|
-
*
|
|
6
|
-
* @pgs
|
|
7
|
-
* - footer: identifica il contenitore principale del piè di pagina.
|
|
8
|
-
* - footer-top: identifica la sezione superiore con brand e contenuti.
|
|
9
|
-
* - footer-top-content: identifica il layout interno responsive della sezione superiore.
|
|
10
|
-
* - footer-brand: identifica il gruppo dedicato al marchio.
|
|
11
|
-
* - footer-brand-motto: identifica il testo descrittivo associato al marchio.
|
|
12
|
-
* - footer-content: identifica una colonna informativa del footer.
|
|
13
|
-
* - footer-legal: identifica la sezione inferiore dedicata alle informazioni legali.
|
|
14
|
-
* - footer-legal-content: identifica il contenuto della sezione legale.
|
|
15
|
-
*
|
|
16
|
-
* @related
|
|
17
|
-
* - button: presenta i controlli del tema e delle preferenze cookie come pulsanti.
|
|
18
|
-
* - toggleDarkmode: collega il controllo al gestore globale del tema chiaro o scuro.
|
|
19
|
-
* - section: applica alle aree superiore e legale la struttura condivisa delle sezioni.
|
|
20
|
-
* - flex-3: distribuisce in modo responsive le colonne della parte superiore.
|
|
21
|
-
* - logo: inserisce il marchio nel footer.
|
|
22
|
-
* - logo-text: usa la variante testuale del logo.
|
|
23
|
-
* - cookieConsent-actionOpen: apre il pannello delle preferenze del pattern Cookie Consent.
|
|
24
|
-
*
|
|
25
|
-
* @return Struttura HTML completa del footer con brand, menu e area legale.
|
|
26
|
-
*/
|
|
27
|
-
-->
|
|
28
|
-
|
|
29
|
-
<footer pgs="footer">
|
|
30
|
-
<button pgs="button toggleDarkmode" type="button" aria-label="Cambia tema">
|
|
31
|
-
<i class="fa-solid fa-moon"></i>
|
|
32
|
-
</button>
|
|
33
|
-
|
|
34
|
-
<section pgs="footer-top section">
|
|
35
|
-
<div pgs="footer-top-content flex-3">
|
|
36
|
-
<div pgs="footer-brand">
|
|
37
|
-
<a aria-label="Logo" pgs="logo" href="/">
|
|
38
|
-
<span pgs="logo-text">MyPGS</span>
|
|
39
|
-
</a>
|
|
40
|
-
<p pgs="footer-brand-motto">Componenti frontend riutilizzabili.</p>
|
|
41
|
-
</div>
|
|
42
|
-
|
|
43
|
-
<div pgs="footer-content">
|
|
44
|
-
<h2>Menu</h2>
|
|
45
|
-
<nav aria-label="Menu footer">
|
|
46
|
-
<ul>
|
|
47
|
-
<li><a href="/">Home</a></li>
|
|
48
|
-
<li><a href="/contatti">Contatti</a></li>
|
|
49
|
-
</ul>
|
|
50
|
-
</nav>
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</section>
|
|
54
|
-
|
|
55
|
-
<section pgs="footer-legal section">
|
|
56
|
-
<div pgs="footer-legal-content">
|
|
57
|
-
<button type="button" pgs="button cookieConsent-actionOpen">Preferenze cookie</button>
|
|
58
|
-
<p><a href="">Privacy Policy</a></p>
|
|
59
|
-
<p><a href="">Cookie Policy</a></p>
|
|
60
|
-
<p><a href="">Termini e Condizioni</a></p>
|
|
61
|
-
<p>© 2026 MyPgs. Nessun diritto riservato.</p>
|
|
62
|
-
</div>
|
|
63
|
-
</section>
|
|
64
|
-
</footer>
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
/**
|
|
3
|
-
* @title Grid
|
|
4
|
-
* @description Esempi di griglie responsive che distribuiscono da due a sei colonne mantenendo gap e ridimensionamento coerenti con il design system.
|
|
5
|
-
*
|
|
6
|
-
* @pgs
|
|
7
|
-
* - grid-2: crea una griglia responsive fino a due colonne.
|
|
8
|
-
* - grid-3: crea una griglia responsive fino a tre colonne.
|
|
9
|
-
* - grid-4: crea una griglia responsive fino a quattro colonne.
|
|
10
|
-
* - grid-6: crea una griglia responsive fino a sei colonne.
|
|
11
|
-
*
|
|
12
|
-
* @related
|
|
13
|
-
* - container: definisce il contesto contenitore dell'introduzione.
|
|
14
|
-
* - flexColumnTexts: organizza e distanzia i testi introduttivi e delle card.
|
|
15
|
-
* - card: rende visibili le celle dimostrative delle griglie.
|
|
16
|
-
*
|
|
17
|
-
* @return Raccolta HTML delle griglie responsive a due, tre, quattro e sei colonne.
|
|
18
|
-
*/
|
|
19
|
-
-->
|
|
20
|
-
|
|
21
|
-
<div pgs="container flexColumnTexts">
|
|
22
|
-
<strong>Sezione standard</strong>
|
|
23
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
24
|
-
</div>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<div pgs="grid-2">
|
|
28
|
-
<article pgs="card flexColumnTexts">
|
|
29
|
-
<strong>Colonna uno</strong>
|
|
30
|
-
<p>Contenuto della prima colonna.</p>
|
|
31
|
-
</article>
|
|
32
|
-
|
|
33
|
-
<article pgs="card flexColumnTexts">
|
|
34
|
-
<strong>Colonna due</strong>
|
|
35
|
-
<p>Contenuto della seconda colonna.</p>
|
|
36
|
-
</article>
|
|
37
|
-
</div>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
<div pgs="grid-3">
|
|
41
|
-
<article pgs="card flexColumnTexts">
|
|
42
|
-
<strong>Colonna uno</strong>
|
|
43
|
-
<p>Contenuto della prima colonna.</p>
|
|
44
|
-
</article>
|
|
45
|
-
|
|
46
|
-
<article pgs="card flexColumnTexts">
|
|
47
|
-
<strong>Colonna due</strong>
|
|
48
|
-
<p>Contenuto della seconda colonna.</p>
|
|
49
|
-
</article>
|
|
50
|
-
|
|
51
|
-
<article pgs="card flexColumnTexts">
|
|
52
|
-
<strong>Colonna tre</strong>
|
|
53
|
-
<p>Contenuto della terza colonna.</p>
|
|
54
|
-
</article>
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
<div pgs="grid-4">
|
|
59
|
-
<article pgs="card flexColumnTexts">
|
|
60
|
-
<strong>Colonna uno</strong>
|
|
61
|
-
<p>Contenuto della prima colonna.</p>
|
|
62
|
-
</article>
|
|
63
|
-
|
|
64
|
-
<article pgs="card flexColumnTexts">
|
|
65
|
-
<strong>Colonna due</strong>
|
|
66
|
-
<p>Contenuto della seconda colonna.</p>
|
|
67
|
-
</article>
|
|
68
|
-
|
|
69
|
-
<article pgs="card flexColumnTexts">
|
|
70
|
-
<strong>Colonna tre</strong>
|
|
71
|
-
<p>Contenuto della terza colonna.</p>
|
|
72
|
-
</article>
|
|
73
|
-
<article pgs="card flexColumnTexts">
|
|
74
|
-
<strong>Colonna quattro</strong>
|
|
75
|
-
<p>Contenuto della quarta colonna.</p>
|
|
76
|
-
</article>
|
|
77
|
-
</div>
|
|
78
|
-
|
|
79
|
-
<div pgs="grid-6">
|
|
80
|
-
<article pgs="card flexColumnTexts">
|
|
81
|
-
<strong>Colonna uno</strong>
|
|
82
|
-
<p>Contenuto della prima colonna.</p>
|
|
83
|
-
</article>
|
|
84
|
-
|
|
85
|
-
<article pgs="card flexColumnTexts">
|
|
86
|
-
<strong>Colonna due</strong>
|
|
87
|
-
<p>Contenuto della seconda colonna.</p>
|
|
88
|
-
</article>
|
|
89
|
-
|
|
90
|
-
<article pgs="card flexColumnTexts">
|
|
91
|
-
<strong>Colonna tre</strong>
|
|
92
|
-
<p>Contenuto della terza colonna.</p>
|
|
93
|
-
</article>
|
|
94
|
-
|
|
95
|
-
<article pgs="card flexColumnTexts">
|
|
96
|
-
<strong>Colonna quattro</strong>
|
|
97
|
-
<p>Contenuto della quarta colonna.</p>
|
|
98
|
-
</article>
|
|
99
|
-
|
|
100
|
-
<article pgs="card flexColumnTexts">
|
|
101
|
-
<strong>Colonna cinque</strong>
|
|
102
|
-
<p>Contenuto della quinta colonna.</p>
|
|
103
|
-
</article>
|
|
104
|
-
|
|
105
|
-
<article pgs="card flexColumnTexts">
|
|
106
|
-
<strong>Colonna sei</strong>
|
|
107
|
-
<p>Contenuto della sesta colonna.</p>
|
|
108
|
-
</article>
|
|
109
|
-
</div
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
/**
|
|
3
|
-
* @title Header
|
|
4
|
-
* @description Intestazione responsive che misura lo spazio disponibile, alterna contenuti desktop e mobile e integra menu, tema scuro e navigazione modale.
|
|
5
|
-
*
|
|
6
|
-
* @pgs
|
|
7
|
-
* - header: identifica l'intestazione principale osservata dal modulo JavaScript.
|
|
8
|
-
* - header-element: identifica il gruppo interno misurato per determinare il passaggio alla modalità mobile.
|
|
9
|
-
* - header-element-alwaysOn: identifica l'area iniziale sempre visibile.
|
|
10
|
-
* - header-element-onlyDesktop: identifica i contenuti mostrati soltanto quando il menu desktop è attivo.
|
|
11
|
-
* - header-element-onlyMobile: identifica i contenuti mostrati soltanto in modalità mobile.
|
|
12
|
-
* - header-element-alwaysOnLast: identifica l'area finale sempre visibile.
|
|
13
|
-
* - header-element-hamburger: identifica il gruppo della navigazione mobile.
|
|
14
|
-
* - header-element-hamburger-button: identifica il controllo hamburger specifico dell'header.
|
|
15
|
-
*
|
|
16
|
-
* @pgs-option
|
|
17
|
-
* - horizontal: dispone orizzontalmente il menu desktop correlato.
|
|
18
|
-
* - vertical: dispone verticalmente il menu mobile correlato.
|
|
19
|
-
* - menuHeader: adatta entrambi i menu al contesto dell'header.
|
|
20
|
-
* - containerPGS: sul wrapper modal usa containerPGS[header] per spostare il dialog nell'intestazione.
|
|
21
|
-
* - right: sul dialog della navigazione mobile presenta il contenuto dal lato destro.
|
|
22
|
-
*
|
|
23
|
-
* @pgs-state
|
|
24
|
-
* - mobileActive: viene applicato a header e header-element quando larghezza o viewport richiedono la navigazione mobile.
|
|
25
|
-
*
|
|
26
|
-
* @related
|
|
27
|
-
* - logo: inserisce il marchio nell'area iniziale.
|
|
28
|
-
* - logo-text: usa la variante testuale del logo.
|
|
29
|
-
* - menu: fornisce la navigazione desktop e mobile.
|
|
30
|
-
* - buttonIcon: presenta i controlli tema e hamburger come pulsanti a icona.
|
|
31
|
-
* - toggleDarkmode: collega il controllo al gestore globale del tema.
|
|
32
|
-
* - modal: fornisce apertura e chiusura della navigazione mobile.
|
|
33
|
-
* - modal-button: apre il pannello mobile.
|
|
34
|
-
* - modal-close: chiude il pannello mobile e condivide il controllo hamburger.
|
|
35
|
-
* - modal-dialog: identifica il dialog della navigazione mobile.
|
|
36
|
-
* - modal-dialog-content: identifica il pannello interno della navigazione mobile.
|
|
37
|
-
*
|
|
38
|
-
* @return Header HTML completo con navigazione desktop e pannello mobile laterale.
|
|
39
|
-
*/
|
|
40
|
-
-->
|
|
41
|
-
|
|
42
|
-
<header pgs="header">
|
|
43
|
-
<div pgs="header-element">
|
|
44
|
-
<div pgs="header-element-alwaysOn">
|
|
45
|
-
<a aria-label="Logo" pgs="logo" href="/">
|
|
46
|
-
<span pgs="logo-text">MyPGS</span>
|
|
47
|
-
</a>
|
|
48
|
-
</div>
|
|
49
|
-
|
|
50
|
-
<div pgs="header-element-onlyDesktop">
|
|
51
|
-
<nav pgs="menu" pgs-option="horizontal menuHeader" aria-label="Menu principale">
|
|
52
|
-
<ul>
|
|
53
|
-
<li><a href="/">Home</a></li>
|
|
54
|
-
<li><a href="#componenti">Componenti</a></li>
|
|
55
|
-
<li><a href="#layout">Layout</a></li>
|
|
56
|
-
</ul>
|
|
57
|
-
</nav>
|
|
58
|
-
</div>
|
|
59
|
-
|
|
60
|
-
<div pgs="header-element-onlyMobile">
|
|
61
|
-
</div>
|
|
62
|
-
|
|
63
|
-
<div pgs="header-element-alwaysOnLast">
|
|
64
|
-
<button pgs="buttonIcon toggleDarkmode" type="button" aria-label="Cambia tema">
|
|
65
|
-
<i class="fa-solid fa-moon"></i>
|
|
66
|
-
</button>
|
|
67
|
-
</div>
|
|
68
|
-
|
|
69
|
-
<div pgs="header-element-hamburger modal" pgs-option="containerPGS[header] ">
|
|
70
|
-
|
|
71
|
-
<button pgs="buttonIcon modal-button modal-close header-element-hamburger-button" type="button"></button>
|
|
72
|
-
|
|
73
|
-
<dialog pgs="modal-dialog" pgs-option="right">
|
|
74
|
-
<div pgs="modal-dialog-content">
|
|
75
|
-
<nav pgs="menu" pgs-option="vertical menuHeader" aria-label="Menu mobile">
|
|
76
|
-
<ul>
|
|
77
|
-
<li><a href="/">Home</a></li>
|
|
78
|
-
<li><a href="#componenti">Componenti</a></li>
|
|
79
|
-
<li><a href="#layout">Layout</a></li>
|
|
80
|
-
</ul>
|
|
81
|
-
</nav>
|
|
82
|
-
</div>
|
|
83
|
-
</dialog>
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
|
|
87
|
-
<!-- //# HEADER BOTTOM -->
|
|
88
|
-
|
|
89
|
-
<script>
|
|
90
|
-
const addPgsState = (element, state) => {
|
|
91
|
-
if (!element) return;
|
|
92
|
-
|
|
93
|
-
const states = element.getAttribute("pgs-state")?.split(/\s+/) ?? [];
|
|
94
|
-
element.setAttribute("pgs-state", [...new Set([...states, state])].join(" "));
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
if (localStorage.getItem("screenIsDarkMode") === "true") {
|
|
98
|
-
addPgsState(document.documentElement, "darkmode");
|
|
99
|
-
addPgsState(document.body, "darkmode");
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (window.innerWidth < 600) {
|
|
103
|
-
addPgsState(document.querySelector("header"), "mobileActive");
|
|
104
|
-
addPgsState(document.querySelector("[pgs~=header-element]"), "mobileActive");
|
|
105
|
-
}
|
|
106
|
-
</script>
|
|
107
|
-
</header>
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
/**
|
|
3
|
-
* @title Section
|
|
4
|
-
* @description Varianti di sezione che controllano larghezza, padding e trattamento di contenuti specifici mantenendo la spaziatura verticale condivisa.
|
|
5
|
-
*
|
|
6
|
-
* @pgs
|
|
7
|
-
* - section: identifica la sezione standard con contenuto centrato.
|
|
8
|
-
* - sectionFull: identifica una sezione estesa a tutta la larghezza disponibile.
|
|
9
|
-
* - sectionSpecificity: identifica una sezione che applica una struttura specifica al relativo figlio.
|
|
10
|
-
* - sectionSpecificity-child: identifica il contenuto figlio gestito dalla variante sectionSpecificity.
|
|
11
|
-
* - sectionMax: identifica una sezione con larghezza massima estesa.
|
|
12
|
-
* - sectionNoPadding: identifica una sezione priva del padding standard.
|
|
13
|
-
*
|
|
14
|
-
* @related
|
|
15
|
-
* - flexColumnSections: distanzia verticalmente tutte le sezioni dell'esempio.
|
|
16
|
-
* - flexColumnElements: organizza verticalmente gli elementi principali di ogni sezione.
|
|
17
|
-
* - flexColumnTexts: organizza e distanzia i contenuti interni.
|
|
18
|
-
* - card-img: riutilizza il trattamento delle immagini card nelle sezioni dimostrative.
|
|
19
|
-
* - imgCover: adatta le immagini alla larghezza della sezione.
|
|
20
|
-
*
|
|
21
|
-
* @return Raccolta HTML delle varianti di section disponibili.
|
|
22
|
-
*/
|
|
23
|
-
-->
|
|
24
|
-
|
|
25
|
-
<div pgs="flexColumnSections">
|
|
26
|
-
<section pgs="section flexColumnElements">
|
|
27
|
-
<div pgs="flexColumnTexts">
|
|
28
|
-
<strong>Sezione standard</strong>
|
|
29
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
30
|
-
</div>
|
|
31
|
-
</section>
|
|
32
|
-
|
|
33
|
-
<section pgs="sectionFull flexColumnElements">
|
|
34
|
-
<div pgs="flexColumnTexts">
|
|
35
|
-
<strong>Sezione full-width</strong>
|
|
36
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
37
|
-
</div>
|
|
38
|
-
</section>
|
|
39
|
-
|
|
40
|
-
<section pgs="sectionSpecificity flexColumnElements">
|
|
41
|
-
<div pgs="flexColumnTexts">
|
|
42
|
-
<img pgs="card-img imgCover" src="https://placehold.co/800x200?text=Hero" alt="Immagine segnaposto">
|
|
43
|
-
</div>
|
|
44
|
-
<div pgs="sectionSpecificity-child flexColumnTexts">
|
|
45
|
-
<strong>Sezione specificità-child</strong>
|
|
46
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
47
|
-
</div>
|
|
48
|
-
</section>
|
|
49
|
-
|
|
50
|
-
<section pgs="sectionMax flexColumnElements" style="background-color: var(--color-primary-soft)">
|
|
51
|
-
<div pgs="flexColumnTexts">
|
|
52
|
-
<strong>Sezione max-width</strong>
|
|
53
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
54
|
-
</div>
|
|
55
|
-
</section>
|
|
56
|
-
|
|
57
|
-
<section pgs="sectionNoPadding flexColumnElements">
|
|
58
|
-
<div pgs="flexColumnTexts">
|
|
59
|
-
<img pgs="card-img imgCover" src="https://placehold.co/800x500?text=HI!" alt="Immagine segnaposto">
|
|
60
|
-
</div>
|
|
61
|
-
</section>
|
|
62
|
-
</div>
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
/**
|
|
3
|
-
* @title Cookie Consent
|
|
4
|
-
* @description Pattern accessibile per raccogliere e memorizzare il consenso ai cookie analitici, applicare le preferenze e caricare Google Analytics solo quando autorizzato.
|
|
5
|
-
*
|
|
6
|
-
* @pgs
|
|
7
|
-
* - cookieConsent: identifica il pannello principale inizializzato dal pattern JavaScript.
|
|
8
|
-
* - cookieConsent-panel: identifica il gruppo delle preferenze configurabili.
|
|
9
|
-
* - cookieConsent-featureEssential: identifica la riga dei cookie tecnici sempre attivi.
|
|
10
|
-
* - cookieConsent-panel-badge: identifica l'indicatore dello stato dei cookie tecnici.
|
|
11
|
-
* - cookieConsent-featureAnalytics: identifica la riga dei cookie analitici opzionali.
|
|
12
|
-
* - cookieConsent-toggleAnalytics: identifica il controllo che abilita il consenso analytics.
|
|
13
|
-
* - cookieConsent-actionReject: applica le preferenze selezionate senza accettare automaticamente analytics.
|
|
14
|
-
* - cookieConsent-actionAccept: accetta tutti i cookie disponibili.
|
|
15
|
-
* - cookieConsent-actionOpen: identifica controlli esterni che riaprono il pannello delle preferenze.
|
|
16
|
-
* - cookieConsent-gaUnavailable: token runtime applicato al root quando manca un measurement ID utilizzabile.
|
|
17
|
-
* - cookieConsent-accepted: token runtime applicato al root quando analytics è consentito.
|
|
18
|
-
* - cookieConsent-declined: token runtime applicato al root quando analytics non è consentito.
|
|
19
|
-
*
|
|
20
|
-
* @related
|
|
21
|
-
* - flexColumn: organizza verticalmente il pannello delle preferenze.
|
|
22
|
-
* - flexRow: dispone righe e azioni del pannello.
|
|
23
|
-
* - nowrap: impedisce il ritorno a capo nella riga dei cookie essenziali.
|
|
24
|
-
* - toggle: presenta il consenso analytics come interruttore.
|
|
25
|
-
* - button: presenta l'azione di selezione con lo stile standard.
|
|
26
|
-
* - buttonStrong: presenta l'accettazione completa come azione primaria.
|
|
27
|
-
*
|
|
28
|
-
* @return Pannello HTML di consenso con preferenze tecniche e analytics, azioni e attributi accessibili.
|
|
29
|
-
*/
|
|
30
|
-
-->
|
|
31
|
-
|
|
32
|
-
<section id="pgs-cookieConsent" pgs="cookieConsent" role="dialog" aria-modal="true" data-ga-id="G-XXXXXXXXXX" hidden tabindex="-1">
|
|
33
|
-
<p><i class="fa-duotone fa-solid fa-cookie-bite"></i> Cookie e privacy <br></p>
|
|
34
|
-
<h2>La tua privacy prima di tutto</h2>
|
|
35
|
-
|
|
36
|
-
<p>
|
|
37
|
-
Utilizziamo cookie tecnici per offrire il servizio e, previo consenso, cookie analitici di
|
|
38
|
-
<strong>Google Analytics</strong> per misurare in modo anonimo il traffico e migliorare i contenuti.
|
|
39
|
-
Puoi modificare la scelta in qualsiasi momento.
|
|
40
|
-
</p>
|
|
41
|
-
|
|
42
|
-
<p>
|
|
43
|
-
<a href="/privacy-policy/" target="_blank" rel="noopener">Privacy Policy</a> -
|
|
44
|
-
<a href="/cookie-policy/" target="_blank" rel="noopener">Cookie Policy</a>
|
|
45
|
-
</p>
|
|
46
|
-
|
|
47
|
-
<div pgs="cookieConsent-panel flexColumn" role="group" aria-label="Preferenze cookie">
|
|
48
|
-
<div pgs="flexRow nowrap cookieConsent-featureEssential">
|
|
49
|
-
<div>
|
|
50
|
-
<p>
|
|
51
|
-
<strong>Cookie tecnici</strong>
|
|
52
|
-
<br>
|
|
53
|
-
<small>Sempre attivi per garantire il corretto funzionamento del sito.</small>
|
|
54
|
-
</p>
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
<span pgs="cookieConsent-panel-badge">Attivi</span>
|
|
58
|
-
</div>
|
|
59
|
-
|
|
60
|
-
<div pgs="flexRow cookieConsent-featureAnalytics">
|
|
61
|
-
<label pgs="toggle">
|
|
62
|
-
<p>
|
|
63
|
-
<strong>Analytics</strong>
|
|
64
|
-
<br>
|
|
65
|
-
<small>Dati di navigazione raccolti in forma aggregata per statistiche anonime.</small>
|
|
66
|
-
</p>
|
|
67
|
-
|
|
68
|
-
<input type="checkbox" pgs="cookieConsent-toggleAnalytics" aria-label="Abilita Google Analytics">
|
|
69
|
-
</label>
|
|
70
|
-
</div>
|
|
71
|
-
</div>
|
|
72
|
-
|
|
73
|
-
<div pgs="flexRow">
|
|
74
|
-
<button type="button" pgs="button cookieConsent-actionReject">
|
|
75
|
-
<i class="fa-solid fa-duotone fa-sliders"></i>Solo selezionati
|
|
76
|
-
</button>
|
|
77
|
-
|
|
78
|
-
<button type="button" pgs="buttonStrong cookieConsent-actionAccept">
|
|
79
|
-
<i class="fa-solid fa-check"></i> Accetta tutto
|
|
80
|
-
</button>
|
|
81
|
-
</div>
|
|
82
|
-
</section>
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export default function Summary() {
|
|
2
|
-
return (
|
|
3
|
-
<div pgs="summary">
|
|
4
|
-
<div pgs="summary-content">
|
|
5
|
-
<p>
|
|
6
|
-
Questo testo dimostrativo e' abbastanza lungo da occupare piu righe e mostrare il comportamento del componente summary. Il contenuto puo includere testo, link e altri elementi inline senza richiedere markup aggiuntivo.
|
|
7
|
-
</p>
|
|
8
|
-
<p>
|
|
9
|
-
Quando il contenuto supera tre righe viene mostrato un pulsante per espandere o richiudere l'area visibile.
|
|
10
|
-
</p>
|
|
11
|
-
</div>
|
|
12
|
-
|
|
13
|
-
<button pgs="summary-button" type="button">
|
|
14
|
-
Mostra di più
|
|
15
|
-
</button>
|
|
16
|
-
</div>
|
|
17
|
-
);
|
|
18
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
const columns = [
|
|
2
|
-
["Colonna uno", "Contenuto della prima colonna."],
|
|
3
|
-
["Colonna due", "Contenuto della seconda colonna."],
|
|
4
|
-
["Colonna tre", "Contenuto della terza colonna."],
|
|
5
|
-
["Colonna quattro", "Contenuto della quarta colonna."],
|
|
6
|
-
["Colonna cinque", "Contenuto della quinta colonna."],
|
|
7
|
-
["Colonna sei", "Contenuto della sesta colonna."],
|
|
8
|
-
];
|
|
9
|
-
|
|
10
|
-
function ColumnCard({ title, text }) {
|
|
11
|
-
return (
|
|
12
|
-
<article pgs="card flexColumnTexts">
|
|
13
|
-
<strong>{title}</strong>
|
|
14
|
-
<p>{text}</p>
|
|
15
|
-
</article>
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export default function Flex() {
|
|
20
|
-
return (
|
|
21
|
-
<>
|
|
22
|
-
<div pgs="container flexColumnTexts">
|
|
23
|
-
<strong>Sezione standard</strong>
|
|
24
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
{[2, 3, 4, 6].map((count) => (
|
|
28
|
-
<div key={count} pgs={`flex-${count}`}>
|
|
29
|
-
{columns.slice(0, count).map(([title, text]) => (
|
|
30
|
-
<ColumnCard key={title} title={title} text={text} />
|
|
31
|
-
))}
|
|
32
|
-
</div>
|
|
33
|
-
))}
|
|
34
|
-
</>
|
|
35
|
-
);
|
|
36
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
const columns = [
|
|
2
|
-
["Colonna uno", "Contenuto della prima colonna."],
|
|
3
|
-
["Colonna due", "Contenuto della seconda colonna."],
|
|
4
|
-
["Colonna tre", "Contenuto della terza colonna."],
|
|
5
|
-
["Colonna quattro", "Contenuto della quarta colonna."],
|
|
6
|
-
["Colonna cinque", "Contenuto della quinta colonna."],
|
|
7
|
-
["Colonna sei", "Contenuto della sesta colonna."],
|
|
8
|
-
];
|
|
9
|
-
|
|
10
|
-
function ColumnCard({ title, text }) {
|
|
11
|
-
return (
|
|
12
|
-
<article pgs="card flexColumnTexts">
|
|
13
|
-
<strong>{title}</strong>
|
|
14
|
-
<p>{text}</p>
|
|
15
|
-
</article>
|
|
16
|
-
);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export default function Grid() {
|
|
20
|
-
return (
|
|
21
|
-
<>
|
|
22
|
-
<div pgs="container flexColumnTexts">
|
|
23
|
-
<strong>Sezione standard</strong>
|
|
24
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
{[2, 3, 4, 6].map((count) => (
|
|
28
|
-
<div key={count} pgs={`grid-${count}`}>
|
|
29
|
-
{columns.slice(0, count).map(([title, text]) => (
|
|
30
|
-
<ColumnCard key={title} title={title} text={text} />
|
|
31
|
-
))}
|
|
32
|
-
</div>
|
|
33
|
-
))}
|
|
34
|
-
</>
|
|
35
|
-
);
|
|
36
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
export default function Section() {
|
|
2
|
-
return (
|
|
3
|
-
<div pgs="flexColumnSections">
|
|
4
|
-
<section pgs="section flexColumnElements">
|
|
5
|
-
<div pgs="container flexColumnTexts">
|
|
6
|
-
<strong>Sezione standard</strong>
|
|
7
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
8
|
-
</div>
|
|
9
|
-
</section>
|
|
10
|
-
|
|
11
|
-
<section pgs="sectionFull flexColumnElements">
|
|
12
|
-
<div pgs="container flexColumnTexts">
|
|
13
|
-
<strong>Sezione full-width</strong>
|
|
14
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
15
|
-
</div>
|
|
16
|
-
</section>
|
|
17
|
-
|
|
18
|
-
<section pgs="sectionSpecificity flexColumnElements">
|
|
19
|
-
<div pgs="container flexColumnTexts">
|
|
20
|
-
<strong>Sezione specificità</strong>
|
|
21
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
22
|
-
</div>
|
|
23
|
-
<div pgs="sectionSpecificity-child container flexColumnTexts">
|
|
24
|
-
<strong>Sezione specificità-child</strong>
|
|
25
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
26
|
-
</div>
|
|
27
|
-
</section>
|
|
28
|
-
|
|
29
|
-
<section pgs="sectionMax flexColumnElements" style={{ backgroundColor: "var(--color-primary-soft)" }}>
|
|
30
|
-
<div pgs="container flexColumnTexts">
|
|
31
|
-
<strong>Sezione max-width</strong>
|
|
32
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
33
|
-
</div>
|
|
34
|
-
</section>
|
|
35
|
-
|
|
36
|
-
<section pgs="sectionNoPadding flexColumnElements">
|
|
37
|
-
<div pgs="container flexColumnTexts">
|
|
38
|
-
<strong>Sezione no-padding</strong>
|
|
39
|
-
<p>Contenuto centrato dentro una sezione MyPGS.</p>
|
|
40
|
-
</div>
|
|
41
|
-
</section>
|
|
42
|
-
</div>
|
|
43
|
-
);
|
|
44
|
-
}
|
|
File without changes
|