mypgs 1.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.
Files changed (79) hide show
  1. package/README.md +33 -0
  2. package/assets/javascript/_pgs.js +214 -0
  3. package/assets/javascript/base/_darkmode.js +121 -0
  4. package/assets/javascript/base/_object.js +42 -0
  5. package/assets/javascript/components/_accordion.js +77 -0
  6. package/assets/javascript/components/_dropdown.js +107 -0
  7. package/assets/javascript/components/_exeNotifications.js +85 -0
  8. package/assets/javascript/components/_menu.js +92 -0
  9. package/assets/javascript/components/_modals.js +123 -0
  10. package/assets/javascript/components/_slides.js +183 -0
  11. package/assets/javascript/components/_steps.js +27 -0
  12. package/assets/javascript/components/_tabs.js +134 -0
  13. package/assets/javascript/functions/_formValidate.js +217 -0
  14. package/assets/javascript/functions/_notifications.js +74 -0
  15. package/assets/javascript/functions/_scrollY.js +77 -0
  16. package/assets/javascript/functions/_sendForm.js +100 -0
  17. package/assets/javascript/index.js +20 -0
  18. package/assets/javascript/patterns/_cookieConsent.js +209 -0
  19. package/assets/javascript/patterns/_header.js +134 -0
  20. package/assets/javascript/pgs.d.ts +23 -0
  21. package/assets/scss/base/_body.scss +151 -0
  22. package/assets/scss/base/_color.scss +56 -0
  23. package/assets/scss/base/_general.scss +58 -0
  24. package/assets/scss/base/_heading.scss +20 -0
  25. package/assets/scss/base/_html.scss +4 -0
  26. package/assets/scss/base/_reset.scss +15 -0
  27. package/assets/scss/base/_variables.scss +39 -0
  28. package/assets/scss/components/_accordion.scss +91 -0
  29. package/assets/scss/components/_breadcumbs.scss +40 -0
  30. package/assets/scss/components/_button.scss +28 -0
  31. package/assets/scss/components/_dropdown.scss +106 -0
  32. package/assets/scss/components/_form.scss +53 -0
  33. package/assets/scss/components/_logo.scss +51 -0
  34. package/assets/scss/components/_menu.scss +23 -0
  35. package/assets/scss/components/_modals.scss +120 -0
  36. package/assets/scss/components/_notification.scss +193 -0
  37. package/assets/scss/components/_searchbar.scss +68 -0
  38. package/assets/scss/components/_slides.scss +198 -0
  39. package/assets/scss/components/_steps.scss +111 -0
  40. package/assets/scss/components/_table.scss +59 -0
  41. package/assets/scss/components/_tabs.scss +69 -0
  42. package/assets/scss/components/_tooltip.scss +16 -0
  43. package/assets/scss/index.scss +64 -0
  44. package/assets/scss/layout/_flex.scss +47 -0
  45. package/assets/scss/layout/_gap.scss +12 -0
  46. package/assets/scss/layout/_grid.scss +11 -0
  47. package/assets/scss/layout/_layout.scss +41 -0
  48. package/assets/scss/layout/_pageShell.scss +171 -0
  49. package/assets/scss/mixin/_mx-base.scss +126 -0
  50. package/assets/scss/mixin/_mx-button.scss +186 -0
  51. package/assets/scss/mixin/_mx-card.scss +77 -0
  52. package/assets/scss/mixin/_mx-color.scss +34 -0
  53. package/assets/scss/mixin/_mx-form-addon.scss +180 -0
  54. package/assets/scss/mixin/_mx-form.scss +512 -0
  55. package/assets/scss/mixin/_mx-menu.scss +154 -0
  56. package/assets/scss/mixin/_mx-responsive.scss +353 -0
  57. package/assets/scss/mixin/_mx-semantic.scss +147 -0
  58. package/assets/scss/mixin/mixin.scss +36 -0
  59. package/assets/scss/patterns/_cookieConsent.scss +101 -0
  60. package/assets/scss/patterns/_footer.scss +180 -0
  61. package/assets/scss/patterns/_header.scss +143 -0
  62. package/dist/css/index.css +7026 -0
  63. package/dist/css/index.css.map +1 -0
  64. package/dist/css/index.min.css +1 -0
  65. package/dist/index.d.ts +24 -0
  66. package/dist/javascript/index.js +2034 -0
  67. package/dist/javascript/index.js.map +1 -0
  68. package/dist/javascript/index.min.js +1 -0
  69. package/package.json +40 -0
  70. package/templates/components/md-breadcumbs.html +23 -0
  71. package/templates/components/md-menu.html +6 -0
  72. package/templates/components/md-notification.html +10 -0
  73. package/templates/components/md-searchbar.html +24 -0
  74. package/templates/components/md-tooltip.html +5 -0
  75. package/templates/layout/md-body.html +20 -0
  76. package/templates/layout/md-cookieConsent.html +51 -0
  77. package/templates/layout/md-footer.html +16 -0
  78. package/templates/layout/md-header.html +43 -0
  79. package/webpack.config.js +131 -0
@@ -0,0 +1,64 @@
1
+ //+ MIXIN
2
+ @import "./mixin/mixin.scss";
3
+
4
+ /*
5
+ |--------------------------------------------------------------------------
6
+ | Base
7
+ |--------------------------------------------------------------------------
8
+ */
9
+
10
+ @import "base/variables";
11
+ @import "base/color";
12
+ @import "base/reset";
13
+ @import "base/html";
14
+ @import "base/body";
15
+ @import "base/heading";
16
+ @import "base/general";
17
+
18
+
19
+ /*
20
+ |--------------------------------------------------------------------------
21
+ | Layout
22
+ |--------------------------------------------------------------------------
23
+ */
24
+
25
+ @import "layout/layout";
26
+ @import "layout/flex";
27
+ @import "layout/grid";
28
+ @import "layout/pageShell";
29
+ @import "layout/gap";
30
+
31
+
32
+
33
+ /*
34
+ |--------------------------------------------------------------------------
35
+ | Components
36
+ |--------------------------------------------------------------------------
37
+ */
38
+
39
+ @import "components/button";
40
+ @import "components/form";
41
+ @import "components/menu";
42
+ @import "components/accordion";
43
+ @import "components/breadcumbs";
44
+ @import "components/dropdown";
45
+ @import "components/modals";
46
+ @import "components/slides";
47
+ @import "components/steps";
48
+ @import "components/table";
49
+ @import "components/tabs";
50
+ @import "components/notification";
51
+ @import "components/tooltip";
52
+ @import "components/searchbar";
53
+ @import "components/logo";
54
+
55
+
56
+ /*
57
+ |--------------------------------------------------------------------------
58
+ | Patterns
59
+ |--------------------------------------------------------------------------
60
+ */
61
+
62
+ @import "patterns/header";
63
+ @import "patterns/footer";
64
+ @import "patterns/cookieConsent";
@@ -0,0 +1,47 @@
1
+
2
+ //= FLEX
3
+
4
+ //== FLEX COLUMN
5
+ [pgs~=flexColumn] {
6
+ @include flexColumn();
7
+ }
8
+
9
+ [pgs~=flexColumnTexts] {
10
+ @include flexColumn();
11
+ }
12
+
13
+ [pgs~=flexColumnElements] {
14
+ @include flexColumnElements();
15
+ }
16
+
17
+ [pgs~=flexColumnSections] {
18
+ @include flexColumnSections();
19
+ }
20
+
21
+ //== FLEX ROW
22
+ [pgs~=flexRow] {
23
+ @include flexRow();
24
+ }
25
+
26
+ [pgs~=flexRowTexts] {
27
+ @include flexRow();
28
+ }
29
+
30
+ [pgs~=flexRowElements] {
31
+ @include flexRowElements();
32
+ }
33
+
34
+ [pgs~=flexRowSection] {
35
+ @include flexRowSection();
36
+ }
37
+
38
+ //== responsive flex
39
+ @for $i from 1 through 10 {
40
+ [pgs~=flex-#{$i}] {
41
+ @include rFlex($i);
42
+ }
43
+
44
+ [pgs~=flex-#{$i}-m2e] {
45
+ @include rFlex($i, true);
46
+ }
47
+ }
@@ -0,0 +1,12 @@
1
+ //# GAP
2
+ [pgs~=gapTexts] {
3
+ gap: var(--gap-texts);
4
+ }
5
+
6
+ [pgs~=gapElements]{
7
+ gap: var(--gap-elements);
8
+ }
9
+
10
+ [pgs~=gapSections] {
11
+ gap: var(--gap-sections);
12
+ }
@@ -0,0 +1,11 @@
1
+ //== GRID
2
+ @for $i from 1 through 10 {
3
+ [pgs~=grid-#{$i}] {
4
+ @include rGrid($i);
5
+ }
6
+
7
+ [pgs~=grid-#{$i}-m2e] {
8
+ @include rGrid($i, true);
9
+ }
10
+ }
11
+
@@ -0,0 +1,41 @@
1
+ //# SEMANTIC
2
+ [pgs~=main] {
3
+ @include main;
4
+ }
5
+
6
+ [pgs~=aside] {
7
+ @include aside;
8
+ }
9
+
10
+ [pgs~=containerAside] {
11
+ @include containerAside;
12
+ }
13
+
14
+ [pgs~=sectionAside] {
15
+ @include sectionNoPadding;
16
+ }
17
+
18
+ [pgs~=sectionNoPadding] {
19
+ @include sectionNoPadding;
20
+ }
21
+
22
+ [pgs~=section] {
23
+ @include section;
24
+ }
25
+
26
+ [pgs~=sectionSpecificity] {
27
+ @include sectionSpecifity-child('[pgs~=sectionSpecificity-child]');
28
+ }
29
+
30
+ [pgs~=sectionMax] {
31
+ @include sectionMax;
32
+ }
33
+
34
+ [pgs~=sectionFull] {
35
+ @include sectionFull;
36
+ }
37
+
38
+ //== CONTAINER
39
+ [pgs~=container] {
40
+ container-type: inline-size;
41
+ }
@@ -0,0 +1,171 @@
1
+ //# pageShell
2
+
3
+ [pgs~="pageShell"] {
4
+ --pageShell-aside-left-width: 400px;
5
+ --pageShell-aside-right-width: 400px;
6
+ --pageShell-aside-width-total: 0px;
7
+ --pageShell-content-min-width: 500px;
8
+ --pageShell-content-max-width: var(--page-width);
9
+ --pageShell-gap: var(--gap-elements);
10
+ --pageShell-aside-sticky-top: 10svh;
11
+ --pageShell-aside-sticky-bottom: var(--pageShell-gap);
12
+ --pageShell-aside-count: 0;
13
+ --pageShell-gap-count: 0;
14
+ --pageShell-max-width: calc(
15
+ var(--pageShell-content-max-width) +
16
+ var(--pageShell-aside-width-total) +
17
+ (var(--pageShell-gap) * var(--pageShell-gap-count))
18
+ );
19
+
20
+ display: grid;
21
+ grid-template-columns: minmax(0, var(--pageShell-content-max-width));
22
+ grid-template-areas: "content";
23
+ gap: var(--pageShell-gap);
24
+ padding-inline: var(--padding-page);
25
+ margin-inline: auto;
26
+ align-items: start;
27
+ justify-content: center;
28
+ width: 100%;
29
+ max-width: calc(var(--pageShell-max-width) + (var(--padding-page) * 2));
30
+
31
+ &:has(> [pgs~="pageShell-asideLeft"]) {
32
+ --pageShell-aside-width-total: var(--pageShell-aside-left-width);
33
+ --pageShell-aside-count: 1;
34
+ --pageShell-gap-count: 1;
35
+ grid-template-columns:
36
+ var(--pageShell-aside-left-width)
37
+ minmax(var(--pageShell-content-min-width), var(--pageShell-content-max-width));
38
+ grid-template-areas: "aside-left content";
39
+ }
40
+
41
+ &:has(> [pgs~="pageShell-asideRight"]) {
42
+ --pageShell-aside-width-total: var(--pageShell-aside-right-width);
43
+ --pageShell-aside-count: 1;
44
+ --pageShell-gap-count: 1;
45
+ grid-template-columns:
46
+ minmax(var(--pageShell-content-min-width), var(--pageShell-content-max-width))
47
+ var(--pageShell-aside-right-width);
48
+ grid-template-areas: "content aside-right";
49
+ }
50
+
51
+ &:has(> [pgs~="pageShell-asideLeft"]):has(> [pgs~="pageShell-asideRight"]) {
52
+ --pageShell-aside-width-total: calc(var(--pageShell-aside-left-width) + var(--pageShell-aside-right-width));
53
+ --pageShell-aside-count: 2;
54
+ --pageShell-gap-count: 2;
55
+ grid-template-columns:
56
+ var(--pageShell-aside-left-width)
57
+ minmax(var(--pageShell-content-min-width), var(--pageShell-content-max-width))
58
+ var(--pageShell-aside-right-width);
59
+ grid-template-areas: "aside-left content aside-right";
60
+ }
61
+
62
+ [pgs~="pageShell-content"] {
63
+ grid-area: content;
64
+ width: 100%;
65
+ min-width: 0;
66
+ }
67
+
68
+ [pgs~="pageShell-asideLeft"],
69
+ [pgs~="pageShell-asideRight"] {
70
+ @include flexColumn;
71
+ align-items: flex-start;
72
+ isolation: isolate;
73
+ position: sticky;
74
+ top: var(--pageShell-aside-sticky-top);
75
+ width: 100%;
76
+ max-height: calc(100svh - var(--pageShell-aside-sticky-top) - var(--pageShell-aside-sticky-bottom));
77
+ overflow-y: auto;
78
+ overscroll-behavior: contain;
79
+ scrollbar-gutter: stable;
80
+ scrollbar-width: none;
81
+
82
+ &::-webkit-scrollbar {
83
+ display: none;
84
+ }
85
+
86
+ >* {
87
+ width: 100%;
88
+ }
89
+ }
90
+
91
+
92
+ [pgs~="pageShell-asideLeft"] {
93
+ grid-area: aside-left;
94
+ max-width: var(--pageShell-aside-left-width);
95
+ }
96
+
97
+ [pgs~="pageShell-asideRight"] {
98
+ grid-area: aside-right;
99
+ max-width: var(--pageShell-aside-right-width);
100
+ }
101
+
102
+ @media (max-width: 1500px) {
103
+ &:has(> [pgs~="pageShell-asideLeft"]):has(> [pgs~="pageShell-asideRight"]) {
104
+ grid-template-columns: minmax(0, var(--pageShell-content-max-width));
105
+ grid-template-areas:
106
+ "aside-left"
107
+ "content"
108
+ "aside-right";
109
+
110
+ [pgs~="pageShell-asideLeft"],
111
+ [pgs~="pageShell-asideRight"] {
112
+ position: relative;
113
+ top: auto;
114
+ max-height: none;
115
+ max-width: none;
116
+ overflow: visible;
117
+ }
118
+ }
119
+ }
120
+
121
+ //- laptop
122
+ @media (max-width: $laptop){
123
+ &:has(> [pgs~="pageShell-asideLeft"]):has(> [pgs~="pageShell-asideRight"]) {
124
+ grid-template-columns: minmax(0, var(--pageShell-content-max-width));
125
+ grid-template-areas:
126
+ "aside-left"
127
+ "content"
128
+ "aside-right";
129
+ }
130
+
131
+ &:has(> [pgs~="pageShell-asideLeft"]):not(:has(> [pgs~="pageShell-asideRight"])) {
132
+ grid-template-columns: minmax(0, var(--pageShell-content-max-width));
133
+ grid-template-areas:
134
+ "aside-left"
135
+ "content";
136
+ }
137
+
138
+ &:has(> [pgs~="pageShell-asideRight"]):not(:has(> [pgs~="pageShell-asideLeft"])) {
139
+ grid-template-columns: minmax(0, var(--pageShell-content-max-width));
140
+ grid-template-areas:
141
+ "content"
142
+ "aside-right";
143
+ }
144
+
145
+ [pgs~="pageShell-asideLeft"],
146
+ [pgs~="pageShell-asideRight"] {
147
+ position: relative;
148
+ top: auto;
149
+ max-height: none;
150
+ max-width: none;
151
+ overflow: visible;
152
+ }
153
+ }
154
+
155
+ @media (max-width: $tablet) {
156
+ [pgs~="pageShell-asideLeft"],
157
+ [pgs~="pageShell-asideRight"],
158
+ [pgs~="pageShell-content"] {
159
+ width: 100%;
160
+ max-width: none;
161
+ }
162
+
163
+ [pgs~="pageShell-asideLeft"],
164
+ [pgs~="pageShell-asideRight"] {
165
+ position: relative;
166
+ top: auto;
167
+ max-height: none;
168
+ overflow: visible;
169
+ }
170
+ }
171
+ }
@@ -0,0 +1,126 @@
1
+ //= TEXTAREA
2
+ @mixin textarea() {
3
+ align-items: flex-start;
4
+ @include flexColumn();
5
+ @include list;
6
+
7
+ hr{
8
+ align-self: stretch;
9
+ }
10
+
11
+ h1,
12
+ h3,
13
+ h2 {
14
+ margin-top: 25px;
15
+ }
16
+ }
17
+
18
+ //= LISTA
19
+ @mixin list() {
20
+
21
+ :is(ul),
22
+ &:is(ul) {
23
+ list-style: disc;
24
+
25
+ >li {
26
+ list-style-type: disc;
27
+
28
+ >ul>li {
29
+ list-style: circle;
30
+ margin-top: var(--gap-texts);
31
+
32
+ ul>li {
33
+ list-style: "-";
34
+ }
35
+ }
36
+ }
37
+ }
38
+
39
+ :is(ol),
40
+ &:is(ol) {
41
+ list-style: decimal;
42
+
43
+ li {
44
+ list-style-type: decimal;
45
+ }
46
+ }
47
+
48
+ li {
49
+ display: list-item;
50
+ padding-left: 5px;
51
+ margin-left: 21px;
52
+ margin-top: calc(var(--gap-texts)/2);
53
+ color: var(--color-text);
54
+ // &:nth-child(1) {
55
+ // margin-top: calc(var(--gap-texts)/2);
56
+ // }
57
+ }
58
+ }
59
+
60
+ //= HEADING
61
+ @mixin heading($size, $marginTop: true) {
62
+ font-family: var(--font-titoli);
63
+ --heading-size: #{$size};
64
+ color: var(--color-black);
65
+ margin-bottom: calc(var(--heading-size)/4);
66
+ font-size: var(--heading-size);
67
+ min-width: 0;
68
+ font-weight: 900;
69
+ overflow-wrap: anywhere;
70
+
71
+ @if($marginTop){
72
+ margin-top: calc(var(--heading-size)/4);
73
+ }
74
+
75
+ // text-box: trim-both cap alphabetic;
76
+ @media (max-width: $tablet) {
77
+ font-size: clamp(1.6rem, var(--heading-size) / 3 + 8vw, var(--heading-size));
78
+ }
79
+
80
+ @media (max-width: $mobile) {
81
+ font-size: clamp(1.6rem, var(--heading-size) / 3 + 5vw, var(--heading-size));
82
+ }
83
+
84
+ @media (max-width: $watch) {
85
+ font-size: clamp(1.6rem, var(--heading-size) / 3 + 2.5vw, var(--heading-size));
86
+ }
87
+
88
+ //-( tablet
89
+ @container (max-width: #{$tablet}) {
90
+ :is(h1, h2, h3, h4, h5, h6) {
91
+ line-height: 1.1;
92
+ }
93
+ }
94
+ }
95
+
96
+
97
+ @mixin h1(){
98
+ @include heading($h1,false);
99
+ }
100
+
101
+ @mixin h2(){
102
+ @include heading($h2, false);
103
+ }
104
+
105
+ @mixin h3(){
106
+ @include heading($h3);
107
+ }
108
+
109
+ @mixin h4(){
110
+ @include heading($h4);
111
+ }
112
+
113
+ @mixin h5(){
114
+ @include heading($h5);
115
+ }
116
+
117
+ //= ICON SVG
118
+ @mixin iconSvgBase64($url, $size: 2.0rem, $color: var(--color-primary-strong)) {
119
+ content: "";
120
+ display: inline-block;
121
+ width: $size;
122
+ height: $size;
123
+ background-color: $color;
124
+ -webkit-mask: $url center/contain no-repeat;
125
+ mask: $url center/contain no-repeat;
126
+ }
@@ -0,0 +1,186 @@
1
+ @function ourContrastColor($backgorundReferenze) {
2
+ @return contrast-color(color-mix(in srgb, $backgorundReferenze 77%, black));
3
+ }
4
+
5
+ //+ VAR
6
+ @mixin _var-button-color($background, $for: null, $colorNotContrast: var(--color-black)) {
7
+ --button-background#{$for}: #{$background};
8
+ --button-color#{$for}: #{ourContrastColor(var(--button-background#{$for}))
9
+ }
10
+
11
+ ;
12
+ @supports not (color: contrast-color(red)) {
13
+ --button-color#{$for}: #{$colorNotContrast};
14
+ }
15
+
16
+ color: var(--button-color#{$for});
17
+ background: var(--button-background#{$for});
18
+
19
+ i {
20
+ color: var(--button-color#{$for});
21
+ --fa-primary-color: var(--button-color#{$for});
22
+ --fa-secondary-color: var(--button-color#{$for});
23
+ }
24
+ }
25
+
26
+ //= BUTTON
27
+ @mixin button($hover: true, $onlyIcon: false, $strong: false) {
28
+ --button-border: var(--border-complete);
29
+ --button-size: 1.5rem;
30
+ --button-icon-size: 2.0rem;
31
+ --button-padding: var(--button-size);
32
+ @include _var-button-color(var(--color-box));
33
+ font-family: var(--font);
34
+ font-size: 1.6rem;
35
+ font-weight: 600;
36
+ text-decoration: none;
37
+ -moz-user-select: none;
38
+ -webkit-user-select: none;
39
+ user-select: none;
40
+ border: none;
41
+ outline: var(--button-border);
42
+ border-radius: var(--border-radius-input);
43
+ display: flex;
44
+ gap: calc(var(--button-size)/2);
45
+ align-items: center;
46
+ padding: var(--button-padding);
47
+ width: max-content;
48
+
49
+ i {
50
+ --fa-secondary-opacity: 0.5;
51
+ --fa-size: var(--button-icon-size);
52
+ }
53
+
54
+ &:disabled {
55
+ opacity: 0.2;
56
+ cursor: not-allowed;
57
+ }
58
+
59
+ //== onlyIcon
60
+ @if($onlyIcon ==true) {
61
+ aspect-ratio: 1;
62
+ }
63
+
64
+ @else {
65
+ &:has(i) {
66
+ --button-padding: var(--button-size) calc(var(--button-size) + var(--button-size)/2) var(--button-size) var(--button-size);
67
+ }
68
+
69
+ &:not(:has(i)) {
70
+ --button-padding: var(--button-size) calc(var(--button-size) * 2);
71
+ }
72
+ }
73
+
74
+ //== hover
75
+ @if ($hover ==true) {
76
+ @include buttonHover();
77
+ }
78
+
79
+ @else {
80
+ transition: all 200ms;
81
+ cursor: inherit;
82
+ }
83
+
84
+ //== strong
85
+ @if ($strong ==true) {
86
+ @include _var-button-color(var(--color-primary), "-strong", var(--color-whiteFixed));
87
+ }
88
+
89
+ //== current
90
+ &[aria-current="page"]:not(:hover, :focus-visible) {
91
+ @include _var-button-color(var(--color-primary), "-current", var(--color-whiteFixed));
92
+ }
93
+ }
94
+
95
+ //= Button HOVER
96
+ @mixin buttonHover() {
97
+ transition: all 200ms;
98
+ cursor: pointer;
99
+ text-decoration: none;
100
+
101
+ &:not(:disabled) {
102
+ @media (hover: hover) and (pointer: fine) {
103
+
104
+ &:focus-visible,
105
+ &:hover {
106
+ $n: .25rem;
107
+ $-n: -$n;
108
+ box-shadow: $-n $n 0px var(--color-black);
109
+ transform: translate($n, $-n);
110
+ @include _var-button-color(var(--color-primary-soft), "-hover");
111
+ outline-color: transparent;
112
+
113
+ i {
114
+ --fa-secondary-opacity: 0.5;
115
+ }
116
+ }
117
+ }
118
+ }
119
+
120
+ &:is(a):hover {
121
+ text-decoration: none;
122
+ }
123
+
124
+ &:active {
125
+ box-shadow: 0 0 0 var(--color-black);
126
+ transform: translate(0, 0);
127
+ }
128
+ }
129
+
130
+ //= Button mini
131
+ @mixin buttonMini($hover: true) {
132
+ @include button($hover, true);
133
+ --button-size: 0.5rem;
134
+ display: inline-flex;
135
+ aspect-ratio: unset;
136
+ }
137
+
138
+ //== Button BIG
139
+ @mixin buttonBig($hover: true) {
140
+ @include button($hover);
141
+ position: relative;
142
+ flex-direction: column;
143
+ justify-content: center;
144
+ align-items: center;
145
+ width: 100%;
146
+ padding: var(--button-size);
147
+ border-radius: var(--border-radius);
148
+ aspect-ratio: 1;
149
+ text-align: center;
150
+ height: 100%;
151
+
152
+ &:not(:has(i)) {
153
+ padding-inline: var(--padding);
154
+ }
155
+
156
+ i {
157
+ font-size: 6.5rem;
158
+ z-index: 1;
159
+ }
160
+ }
161
+
162
+ //= Button CLOSE
163
+ @mixin buttonClose {
164
+ @include button(true, true);
165
+ --button-background: var(--color-error-background);
166
+ --button-color: var(--color-error);
167
+ --button-size: 1rem;
168
+ --button-icon-size: 1.3rem;
169
+ aspect-ratio: 1;
170
+ height: max-content;
171
+
172
+ &:hover {}
173
+
174
+ i {
175
+ color: var(--color-error);
176
+ }
177
+ }
178
+
179
+ //= button header
180
+ @mixin button_header() {
181
+ --button-size: 1.2rem;
182
+ --button-border: unset;
183
+ overflow-wrap: break-word;
184
+ height: calc(var(--button-size) * 4);
185
+ // height: var(--header-size);
186
+ }