@massimo-cassandro/minimo 1.36.0 → 1.36.2
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/dev-tools/starter-kit/source_files/app/email/_mail-properties.scss +18 -0
- package/dev-tools/starter-kit/source_files/app/email/mail-embed.scss +68 -0
- package/dev-tools/starter-kit/source_files/app/email/mail-inline.scss +203 -0
- package/dev-tools/starter-kit/source_files/app/email/readme.md +26 -0
- package/dev-tools/starter-kit/source_files/app/email/{_mail-properties.css → versione postcss/_mail-properties.css } +2 -5
- package/dev-tools/starter-kit/source_files/app/email/{mail-embed.css → versione postcss/mail-embed.css } +14 -15
- package/dev-tools/starter-kit/source_files/app/email/{mail-inline.css → versione postcss/mail-inline.css } +50 -61
- package/dev-tools/starter-kit/source_files/app/email/{postcss.config.mjs → versione postcss/postcss.config.mjs } +1 -1
- package/{snippets/twig-symfony → dev-tools/starter-kit/source_files/root/_sf/templates}/_main-tpl.html.twig +3 -0
- package/dev-tools/starter-kit/source_files/root/{sf_templates → _sf/templates}/email/_email-tpl.html.twig +8 -9
- package/dev-tools/starter-kit/source_files/root/_sf/templates/email/css/.gitkeep +0 -0
- package/dev-tools/starter-kit/source_files/root/_sf/templates/email/imgs/.gitkeep +0 -0
- package/dev-tools/starter-kit/source_files/root/jsconfig.json +1 -1
- package/dev-tools/starter-kit/source_files/root/package-tpl.json +5 -2
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/css-rules.mjs +1 -0
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/custom-props-purgecss-plugin.mjs +328 -0
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/get-jsConfig-aliases.mjs +1 -0
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/inline-critical-css.mjs +1 -0
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/mini-svg-data-uri-loader.cjs +1 -0
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/postcss.config.mjs +9 -5
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/purgecss-setup.mjs +23 -27
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/svg-rules.mjs +1 -0
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/svgo.config.mjs +1 -0
- package/dev-tools/starter-kit/source_files/root/webpack.config.mjs +137 -65
- package/dev-tools/starter-kit/starter-install.sh +2 -1
- package/dev-tools/starter-kit/webpack-config-upg.md +147 -0
- package/package.json +1 -1
- package/src/css/forms/form-group.css +0 -1
- package/src/css/table.css +9 -14
- package/src/minimo.css +42 -42
- package/dev-tools/starter-kit/source_files/root/sf_templates/email/css/mail-embed.css +0 -1
- package/dev-tools/starter-kit/source_files/root/sf_templates/email/css/mail-inline.css +0 -1
- package/dev-tools/starter-kit/source_files/root/webpack-config-modules/purgecss-variables-safelist.mjs +0 -92
- /package/{snippets/twig-symfony → dev-tools/starter-kit/source_files/root}/_env.local +0 -0
- /package/{snippets/twig-symfony → dev-tools/starter-kit/source_files/root/_sf}/symfony-webpack-setup.md +0 -0
- /package/{snippets/twig-symfony → dev-tools/starter-kit/source_files/root/_sf/templates}/bundles/TwigBundle/Exception/error.html.twig +0 -0
- /package/{snippets/twig-symfony → dev-tools/starter-kit/source_files/root/_sf/templates/incl}/flash-messages.html.twig +0 -0
- /package/{snippets/twig-symfony → dev-tools/starter-kit/source_files/root/_sf/templates/incl}/minimo-form-layout.html.twig +0 -0
- /package/snippets/{twig-symfony → symfony}/ImgViewerController.php +0 -0
- /package/snippets/{twig-symfony → symfony}/UnsplashController.php +0 -0
- /package/snippets/{twig-symfony → symfony}/ViewerController.php +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
$mail-font-size-xs: 13px;
|
|
2
|
+
$mail-font-size-lg: 18px;
|
|
3
|
+
$mail-font-size-2lg: 21px;
|
|
4
|
+
$mail-font-size-3lg: 24px;
|
|
5
|
+
$mail-font-size-xl: 28px;
|
|
6
|
+
|
|
7
|
+
$mail-body-font: 'Aptos', 'Segoe UI', 'Roboto', 'Helvetica', 'Arial', sans-serif;
|
|
8
|
+
$mail-font-monospace: 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
|
|
9
|
+
$mail-body-bg: #efefef;
|
|
10
|
+
$mail-text-color: #333;
|
|
11
|
+
$mail-text-color-light: #373737;
|
|
12
|
+
$mail-gray: #4b4a4a;
|
|
13
|
+
|
|
14
|
+
$mail-content-bg: #fff;
|
|
15
|
+
$mail-spacing: 24px;
|
|
16
|
+
|
|
17
|
+
$mail-alt-color: #036;
|
|
18
|
+
$mail-darken-alt-color: #010112;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/* stylelint-disable declaration-no-important */
|
|
2
|
+
/* stylelint-disable property-no-vendor-prefix */
|
|
3
|
+
@use './mail-properties' as *;
|
|
4
|
+
|
|
5
|
+
/* NB: niente selettore universale `*`: inline_css lo inlinerebbe su ogni elemento */
|
|
6
|
+
body,
|
|
7
|
+
table,
|
|
8
|
+
td,
|
|
9
|
+
p,
|
|
10
|
+
a {
|
|
11
|
+
-webkit-text-size-adjust: 100%;
|
|
12
|
+
text-size-adjust: 100%;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/*
|
|
16
|
+
gli stili base dei link sono già in mail-inline;
|
|
17
|
+
qui serve !important perché lo style inline batte l'hover
|
|
18
|
+
*/
|
|
19
|
+
.content.body a:hover {
|
|
20
|
+
color: $mail-darken-alt-color !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@media only screen and (max-width: 640px) {
|
|
24
|
+
body {
|
|
25
|
+
&[class='yahoo-fix'] {
|
|
26
|
+
.device-width {
|
|
27
|
+
width: 440px !important;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.content {
|
|
33
|
+
&.columns-wrapper {
|
|
34
|
+
td.column-spacer {
|
|
35
|
+
height: 0 !important;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
td.column-width, td.column-spacer {
|
|
39
|
+
display: block !important;
|
|
40
|
+
width: 100% !important;
|
|
41
|
+
}
|
|
42
|
+
.column-content {
|
|
43
|
+
& td {
|
|
44
|
+
& h2 {
|
|
45
|
+
font-size: $mail-font-size-3lg !important;
|
|
46
|
+
}
|
|
47
|
+
& .text {
|
|
48
|
+
font-size: $mail-font-size-lg !important;
|
|
49
|
+
}
|
|
50
|
+
& .buttons {
|
|
51
|
+
font-size: $mail-font-size-2lg !important;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
@media only screen and (max-width: 479px) {
|
|
60
|
+
body {
|
|
61
|
+
&[class='yahoo-fix'] {
|
|
62
|
+
.device-width {
|
|
63
|
+
width: 280px !important;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/* stylelint-disable max-nesting-depth */
|
|
2
|
+
/* stylelint-disable selector-max-compound-selectors */
|
|
3
|
+
/* stylelint-disable selector-max-id */
|
|
4
|
+
/* stylelint-disable property-no-unknown */
|
|
5
|
+
@use './mail-properties' as *;
|
|
6
|
+
|
|
7
|
+
body {
|
|
8
|
+
width: 100%;
|
|
9
|
+
padding: 0;
|
|
10
|
+
margin: 0;
|
|
11
|
+
font-family: $mail-body-font;
|
|
12
|
+
font-style: normal;
|
|
13
|
+
font-weight: 400;
|
|
14
|
+
line-height: 1.5;
|
|
15
|
+
color: $mail-text-color;
|
|
16
|
+
background-color: $mail-body-bg;
|
|
17
|
+
-webkit-font-smoothing: antialiased;
|
|
18
|
+
|
|
19
|
+
.device-width {
|
|
20
|
+
width: 600px;
|
|
21
|
+
padding: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* .full-width {
|
|
25
|
+
width: 100%;
|
|
26
|
+
padding: 0;
|
|
27
|
+
} */
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/*
|
|
31
|
+
div.outerWrapper {
|
|
32
|
+
background-color: $mail-content-bg;
|
|
33
|
+
//border-radius:20px;
|
|
34
|
+
overflow: hidden;
|
|
35
|
+
margin: 0 auto;
|
|
36
|
+
}
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
table {
|
|
40
|
+
border-collapse: collapse;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
p {
|
|
44
|
+
mso-table-lspace: 0;
|
|
45
|
+
mso-table-rspace: 0;
|
|
46
|
+
margin-top: $mail-spacing * .5;
|
|
47
|
+
margin-bottom: $mail-spacing * .5;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#wrapper{
|
|
51
|
+
width: 100%;
|
|
52
|
+
margin: 0 auto;
|
|
53
|
+
border: none;
|
|
54
|
+
|
|
55
|
+
/* &.full-page{
|
|
56
|
+
width: 95%;
|
|
57
|
+
} */
|
|
58
|
+
|
|
59
|
+
> tbody > tr > td {
|
|
60
|
+
width: 100%;
|
|
61
|
+
padding-top: 10px;
|
|
62
|
+
padding-bottom: 20px;
|
|
63
|
+
background-color: $mail-body-bg;
|
|
64
|
+
border: none;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.content {
|
|
69
|
+
margin: 0 auto;
|
|
70
|
+
|
|
71
|
+
&.header {
|
|
72
|
+
> tbody > tr > td {
|
|
73
|
+
padding: 10px;
|
|
74
|
+
text-align: center;
|
|
75
|
+
background-color: $mail-body-bg;
|
|
76
|
+
|
|
77
|
+
> img {
|
|
78
|
+
display: inline-block;
|
|
79
|
+
max-width: 100%;
|
|
80
|
+
height: auto;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
.logo {
|
|
84
|
+
padding-top: 10px;
|
|
85
|
+
padding-bottom: 10px;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
&.body {
|
|
90
|
+
> tbody > tr > td {
|
|
91
|
+
|
|
92
|
+
padding-top: 20px;
|
|
93
|
+
padding-right: 30px;
|
|
94
|
+
padding-bottom: 20px;
|
|
95
|
+
padding-left: 30px;
|
|
96
|
+
font-size: $mail-font-size-lg;
|
|
97
|
+
vertical-align: top;
|
|
98
|
+
color: $mail-text-color;
|
|
99
|
+
background-color: $mail-content-bg;
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
a {
|
|
103
|
+
font-weight: 700;
|
|
104
|
+
color: $mail-alt-color;
|
|
105
|
+
text-decoration: underline;
|
|
106
|
+
cursor: pointer;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
h1 {
|
|
110
|
+
margin-top: 0;
|
|
111
|
+
margin-bottom: $mail-spacing;
|
|
112
|
+
font-size: $mail-font-size-xl;
|
|
113
|
+
font-weight: 700;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
h2 {
|
|
117
|
+
margin-top: $mail-spacing;
|
|
118
|
+
margin-bottom: 12px;
|
|
119
|
+
font-size: $mail-font-size-2lg;
|
|
120
|
+
font-weight: 700;
|
|
121
|
+
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
img {
|
|
125
|
+
max-width: 100%;
|
|
126
|
+
height: auto;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
&.footer {
|
|
134
|
+
> tbody > tr > td {
|
|
135
|
+
padding-top: 10px;
|
|
136
|
+
padding-bottom: 10px;
|
|
137
|
+
font-size: 80%;
|
|
138
|
+
color: $mail-text-color-light;
|
|
139
|
+
text-align: center;
|
|
140
|
+
background-color: $mail-body-bg;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
.text-center {
|
|
147
|
+
text-align: center;
|
|
148
|
+
}
|
|
149
|
+
.text-right {
|
|
150
|
+
text-align: right;
|
|
151
|
+
}
|
|
152
|
+
.text-left {
|
|
153
|
+
text-align: left;
|
|
154
|
+
}
|
|
155
|
+
.small, small {
|
|
156
|
+
font-size: $mail-font-size-xs;
|
|
157
|
+
}
|
|
158
|
+
.text-monospace {
|
|
159
|
+
font-family: $mail-font-monospace;
|
|
160
|
+
}
|
|
161
|
+
.text-muted {
|
|
162
|
+
color: #666;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
em, i {
|
|
167
|
+
font-style: italic;
|
|
168
|
+
}
|
|
169
|
+
strong, b {
|
|
170
|
+
font-weight: 700;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/* body content table */
|
|
174
|
+
.table {
|
|
175
|
+
width: 100%;
|
|
176
|
+
margin: 12px 0 24px;
|
|
177
|
+
border-collapse: collapse;
|
|
178
|
+
|
|
179
|
+
th, td {
|
|
180
|
+
padding: 6px 10px;
|
|
181
|
+
font-size: $mail-font-size-lg;
|
|
182
|
+
vertical-align: top;
|
|
183
|
+
text-align: left;
|
|
184
|
+
border-bottom: 1px solid $mail-gray;
|
|
185
|
+
}
|
|
186
|
+
th {
|
|
187
|
+
font-weight: 600;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
thead {
|
|
191
|
+
th {
|
|
192
|
+
border-bottom-width: 2px;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/* dopo .table, altrimenti il suo margin sovrascrive queste utility */
|
|
198
|
+
.margin-top {
|
|
199
|
+
margin-top: $mail-spacing;
|
|
200
|
+
}
|
|
201
|
+
.margin-bottom {
|
|
202
|
+
margin-bottom: $mail-spacing;
|
|
203
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# CSS email
|
|
2
|
+
|
|
3
|
+
## Versione SCSS
|
|
4
|
+
|
|
5
|
+
Richiede `sass`, compilazione in `templates/email/css/`:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm i -D sass
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm run 'email sass'
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Versione PostCSS
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm i -D postcss postcss-cli postcss-import postcss-nested postcss-custom-properties autoprefixer cssnano
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm run 'postcss email'
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
/* @import url(../src/css/custom-properties.css); */
|
|
2
|
-
|
|
3
1
|
:root {
|
|
4
2
|
|
|
5
3
|
--mail-font-size-xs: 13px;
|
|
6
|
-
--mail-font-size: 16px;
|
|
7
4
|
--mail-font-size-lg: 18px;
|
|
8
5
|
--mail-font-size-2lg: 21px;
|
|
9
6
|
--mail-font-size-3lg: 24px;
|
|
10
7
|
--mail-font-size-xl: 28px;
|
|
11
8
|
|
|
12
|
-
--mail-body-font:
|
|
9
|
+
--mail-body-font: 'Aptos', 'Segoe UI', 'Roboto', 'Helvetica', 'Arial', sans-serif;
|
|
10
|
+
--mail-font-monospace: 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
|
|
13
11
|
--mail-body-bg: #efefef;
|
|
14
12
|
--mail-text-color: #333;
|
|
15
13
|
--mail-text-color-light: #373737;
|
|
@@ -21,6 +19,5 @@
|
|
|
21
19
|
|
|
22
20
|
--mail-alt-color: #036;
|
|
23
21
|
--mail-darken-alt-color: #010112;
|
|
24
|
-
--mail-link-color: #036;
|
|
25
22
|
|
|
26
23
|
}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
/* stylelint-disable declaration-no-important */
|
|
2
2
|
@import './_mail-properties.css';
|
|
3
3
|
|
|
4
|
-
/* NB: niente selettore universale `*`: inline_css inlinerebbe
|
|
5
|
-
body,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
text-decoration: underline;
|
|
13
|
-
cursor: pointer;
|
|
4
|
+
/* NB: niente selettore universale `*`: inline_css lo inlinerebbe su ogni elemento */
|
|
5
|
+
body,
|
|
6
|
+
table,
|
|
7
|
+
td,
|
|
8
|
+
p,
|
|
9
|
+
a {
|
|
10
|
+
text-size-adjust: 100%;
|
|
11
|
+
}
|
|
14
12
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
/*
|
|
14
|
+
gli stili base dei link sono già in mail-inline;
|
|
15
|
+
qui serve !important perché lo style inline batte l'hover
|
|
16
|
+
*/
|
|
17
|
+
.content.body a:hover {
|
|
18
|
+
color: var(--mail-darken-alt-color) !important;
|
|
20
19
|
}
|
|
21
20
|
|
|
22
21
|
@media only screen and (max-width: 640px) {
|
|
@@ -59,9 +59,7 @@ p {
|
|
|
59
59
|
> tbody > tr > td {
|
|
60
60
|
width: 100%;
|
|
61
61
|
padding-top: 10px;
|
|
62
|
-
padding-right: 10px;
|
|
63
62
|
padding-bottom: 20px;
|
|
64
|
-
padding-left: 10px;
|
|
65
63
|
background-color: var(--mail-body-bg);
|
|
66
64
|
border: none;
|
|
67
65
|
}
|
|
@@ -74,7 +72,7 @@ p {
|
|
|
74
72
|
> tbody > tr > td {
|
|
75
73
|
padding: 10px;
|
|
76
74
|
text-align: center;
|
|
77
|
-
background: var(--mail-body-bg);
|
|
75
|
+
background-color: var(--mail-body-bg);
|
|
78
76
|
|
|
79
77
|
> img {
|
|
80
78
|
display: inline-block;
|
|
@@ -89,73 +87,61 @@ p {
|
|
|
89
87
|
}
|
|
90
88
|
|
|
91
89
|
&.body {
|
|
90
|
+
> tbody > tr > td {
|
|
91
|
+
|
|
92
|
+
padding-top: 20px;
|
|
93
|
+
padding-right: 30px;
|
|
94
|
+
padding-bottom: 20px;
|
|
95
|
+
padding-left: 30px;
|
|
96
|
+
font-size: var(--mail-font-size-lg);
|
|
97
|
+
vertical-align: top;
|
|
98
|
+
color: var(--mail-text-color);
|
|
99
|
+
background-color: var(--mail-content-bg);
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
a {
|
|
103
|
+
font-weight: 700;
|
|
104
|
+
color: var(--mail-alt-color);
|
|
105
|
+
text-decoration: underline;
|
|
106
|
+
cursor: pointer;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
h1 {
|
|
110
|
+
margin-top: 0;
|
|
111
|
+
margin-bottom: var(--mail-spacing);
|
|
112
|
+
font-size: var(--mail-font-size-xl);
|
|
113
|
+
font-weight: 700;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
h2 {
|
|
117
|
+
margin-top: var(--mail-spacing);
|
|
118
|
+
margin-bottom: 12px;
|
|
119
|
+
font-size: var(--mail-font-size-2lg);
|
|
120
|
+
font-weight: 700;
|
|
92
121
|
|
|
93
|
-
|
|
94
|
-
> td {
|
|
95
|
-
|
|
96
|
-
padding-top: 20px;
|
|
97
|
-
padding-right: 30px;
|
|
98
|
-
padding-bottom: 20px;
|
|
99
|
-
padding-left: 30px;
|
|
100
|
-
vertical-align: top;
|
|
101
|
-
color: var(--mail-text-color);
|
|
102
|
-
background-color: var(--mail-content-bg);
|
|
103
|
-
|
|
104
|
-
a {
|
|
105
|
-
font-weight: 700;
|
|
106
|
-
color: var(--mail-alt-color);
|
|
107
|
-
text-decoration: underline;
|
|
108
|
-
cursor: pointer;
|
|
109
|
-
|
|
110
|
-
&:hover {
|
|
111
|
-
color: var(--mail-darken-alt-color);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
h1 {
|
|
116
|
-
margin-top: 0;
|
|
117
|
-
margin-bottom: var(--mail-spacing);
|
|
118
|
-
font-size: var(--mail-font-size-xl);
|
|
119
|
-
font-weight: 700;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
p {
|
|
123
|
-
font-size: var(--mail-font-size-2lg);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
img {
|
|
127
|
-
max-width: 100%;
|
|
128
|
-
height: auto;
|
|
129
|
-
}
|
|
122
|
+
}
|
|
130
123
|
|
|
124
|
+
img {
|
|
125
|
+
max-width: 100%;
|
|
126
|
+
height: auto;
|
|
131
127
|
}
|
|
128
|
+
|
|
132
129
|
}
|
|
133
130
|
}
|
|
134
131
|
|
|
132
|
+
|
|
135
133
|
&.footer {
|
|
136
|
-
td {
|
|
134
|
+
> tbody > tr > td {
|
|
137
135
|
padding-top: 10px;
|
|
138
136
|
padding-bottom: 10px;
|
|
139
137
|
font-size: 80%;
|
|
140
138
|
color: var(--mail-text-color-light);
|
|
141
139
|
text-align: center;
|
|
142
|
-
background: var(--mail-body-bg);
|
|
140
|
+
background-color: var(--mail-body-bg);
|
|
143
141
|
}
|
|
144
142
|
}
|
|
145
143
|
}
|
|
146
144
|
|
|
147
|
-
.logo-network {
|
|
148
|
-
display: inline-block;
|
|
149
|
-
padding: 5px;
|
|
150
|
-
margin: 10px auto;
|
|
151
|
-
background-color: var(--mail-body-bg);
|
|
152
|
-
}
|
|
153
|
-
.network-info {
|
|
154
|
-
font-size: var(--mail-font-size-xs);
|
|
155
|
-
font-style: italic;
|
|
156
|
-
color: #888;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
145
|
|
|
160
146
|
.text-center {
|
|
161
147
|
text-align: center;
|
|
@@ -169,14 +155,8 @@ p {
|
|
|
169
155
|
.small, small {
|
|
170
156
|
font-size: var(--mail-font-size-xs);
|
|
171
157
|
}
|
|
172
|
-
.margin-top {
|
|
173
|
-
margin-top: var(--mail-spacing);
|
|
174
|
-
}
|
|
175
|
-
.margin-bottom {
|
|
176
|
-
margin-bottom: var(--mail-spacing);
|
|
177
|
-
}
|
|
178
158
|
.text-monospace {
|
|
179
|
-
font-family:
|
|
159
|
+
font-family: var(--mail-font-monospace);
|
|
180
160
|
}
|
|
181
161
|
.text-muted {
|
|
182
162
|
color: #666;
|
|
@@ -198,6 +178,7 @@ strong, b {
|
|
|
198
178
|
|
|
199
179
|
th, td {
|
|
200
180
|
padding: 6px 10px;
|
|
181
|
+
font-size: var(--mail-font-size-lg);
|
|
201
182
|
vertical-align: top;
|
|
202
183
|
text-align: left;
|
|
203
184
|
border-bottom: 1px solid var(--mail-gray);
|
|
@@ -212,3 +193,11 @@ strong, b {
|
|
|
212
193
|
}
|
|
213
194
|
}
|
|
214
195
|
}
|
|
196
|
+
|
|
197
|
+
/* dopo .table, altrimenti il suo margin sovrascrive queste utility */
|
|
198
|
+
.margin-top {
|
|
199
|
+
margin-top: var(--mail-spacing);
|
|
200
|
+
}
|
|
201
|
+
.margin-bottom {
|
|
202
|
+
margin-bottom: var(--mail-spacing);
|
|
203
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// config postcss per le CSS delle email (npm run "
|
|
1
|
+
// config postcss per le CSS delle email (npm run "postcss email")
|
|
2
2
|
// NB: in ESM perché postcss-nested >= 8 è ESM-only
|
|
3
3
|
//
|
|
4
4
|
// https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-custom-properties#readme
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
<link rel="preload" href="{{ asset('shared.js') }}" as="script">
|
|
13
13
|
<link rel="preload" href="{{ asset('runtime.js') }}" as="script">
|
|
14
14
|
{{- '' -}}
|
|
15
|
+
<link rel="preload" href="{{ asset('shared.css') }}" as="style">
|
|
15
16
|
<link rel="preload" href="{{ asset('index.css') }}" as="style">
|
|
17
|
+
{# shared.css va linkato PRIMA del css della entry (ordine della cascata) #}
|
|
18
|
+
<link rel="stylesheet" href="{{ asset('shared.css') }}" type="text/css" media="all">
|
|
16
19
|
<link rel="stylesheet" href="{{ asset('index.css') }}" type="text/css" media="all">
|
|
17
20
|
<style>
|
|
18
21
|
{%- include '@public_path' ~ asset('layout.critical.css') -%}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{# template base per tutte le email #}
|
|
2
2
|
{% apply inline_css(source('email/css/mail-inline.css')) %}
|
|
3
|
-
|
|
3
|
+
<!DOCTYPE html>
|
|
4
4
|
<html lang="it">
|
|
5
5
|
<head>
|
|
6
6
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
@@ -8,24 +8,23 @@
|
|
|
8
8
|
<meta name="format-detection" content="telephone=no">
|
|
9
9
|
<title>{% block title %}{% endblock %}</title>
|
|
10
10
|
<style type="text/css">
|
|
11
|
-
{
|
|
12
|
-
{%- include 'email/css/mail-embed.css' -%}
|
|
11
|
+
{{- source('email/css/mail-embed.css') -}}
|
|
13
12
|
</style>
|
|
14
13
|
</head>
|
|
15
14
|
<body class="yahoo-fix" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
|
|
16
15
|
{# Wrapper table #}
|
|
17
|
-
<table width="100%" border="0" cellpadding="0" cellspacing="0" align="center" id="wrapper">
|
|
16
|
+
<table width="100%" role="presentation" border="0" cellpadding="0" cellspacing="0" align="center" id="wrapper">
|
|
18
17
|
<tbody>
|
|
19
18
|
<tr>
|
|
20
19
|
<td width="100%">
|
|
21
20
|
{# logo #}
|
|
22
|
-
<table class="content header device-width" width="600" border="0" cellpadding="0" cellspacing="0" align="center">
|
|
21
|
+
<table class="content header device-width" width="600" role="presentation" border="0" cellpadding="0" cellspacing="0" align="center">
|
|
23
22
|
<tbody>
|
|
24
23
|
<tr>
|
|
25
24
|
<td class="logo" width="100%">
|
|
26
25
|
{% block logo %}
|
|
27
26
|
{# immagine allegata inline (cid:), vedi templates/email/imgs #}
|
|
28
|
-
<img src="{{ email.image('email/imgs/logo-
|
|
27
|
+
<img src="{{ email.image('email/imgs/logo-xxxx.png', 'image/png', 'logo-xxx.png') }}" alt="xxx" width="200" height="54" border="0">
|
|
29
28
|
{%- endblock %}
|
|
30
29
|
</td>
|
|
31
30
|
</tr>
|
|
@@ -33,7 +32,7 @@
|
|
|
33
32
|
</table>
|
|
34
33
|
|
|
35
34
|
{# content #}
|
|
36
|
-
<table class="content body device-width" width="600" border="0" cellpadding="0" cellspacing="0" align="center">
|
|
35
|
+
<table class="content body device-width" width="600" role="presentation" border="0" cellpadding="0" cellspacing="0" align="center">
|
|
37
36
|
<tbody>
|
|
38
37
|
<tr>
|
|
39
38
|
<td>
|
|
@@ -47,10 +46,10 @@
|
|
|
47
46
|
</table>
|
|
48
47
|
|
|
49
48
|
{# footer #}
|
|
50
|
-
<table class="content footer device-width" width="600" border="0" cellpadding="0" cellspacing="0" align="center">
|
|
49
|
+
<table class="content footer device-width" width="600" role="presentation" border="0" cellpadding="0" cellspacing="0" align="center">
|
|
51
50
|
<tbody>
|
|
52
51
|
<tr>
|
|
53
|
-
<td>{% block footer %}
|
|
52
|
+
<td>{% block footer %}xxx{%- endblock %}</td>
|
|
54
53
|
</tr>
|
|
55
54
|
</tbody>
|
|
56
55
|
</table>
|
|
File without changes
|
|
File without changes
|
|
@@ -17,12 +17,15 @@
|
|
|
17
17
|
"*.avif"
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
20
|
-
"
|
|
20
|
+
"webpack DEV (js)": "NODE_ENV=development webpack serve --config ./webpack.config.mjs #--open-app-name 'Google Chrome'",
|
|
21
21
|
"php server": "php -S localhost:[[port8000]] # -t root_dir/",
|
|
22
|
-
"
|
|
22
|
+
"webpack DEV (sf)": "rm -rf ./public/_dev && NODE_ENV=development webpack serve --config ./webpack.config.mjs # http://192.168.1.135:[[port5700]",
|
|
23
23
|
"symfony server": "symfony serve --port=[[port8000]] --listen-ip=0.0.0.0 # http://192.168.1.135:[[port8000]] # -d (deamon): rimane aperto anche dopo la chiusura del terminale, terminare con `symfony server:stop`",
|
|
24
24
|
"webpack PROD": "npm run 'UPD-version' && NODE_ENV=production webpack --config ./webpack.config.mjs --stats minimal",
|
|
25
|
+
"email sass": "npx sass ./app/email:./templates/email/css --no-source-map --style=compressed --watch",
|
|
26
|
+
"postcss email": "postcss ./app/email/[!_]*.css --dir ./templates/email/css --no-map --verbose --config ./app/email --watch",
|
|
25
27
|
"eslint-check": "npx eslint app/",
|
|
28
|
+
"stylelint-check": "npx stylelint 'app/**/*.css'",
|
|
26
29
|
"create-favicons INIT": "npx create-favicons init",
|
|
27
30
|
"create-favicons": "npx create-favicons --dir=./app/favicons",
|
|
28
31
|
"UPD-version": "npx update-version --no-log-v0 --log-file=./changelog.md # --log-patch --pkg=alt/path/to/package.json",
|