@iris.interactive/handcook 1.0.7 → 1.0.11

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iris.interactive/handcook",
3
- "version": "1.0.7",
3
+ "version": "1.0.11",
4
4
  "description": "The web cooking by IRIS Interactive",
5
5
  "main": "./public/scripts/index.js",
6
6
  "scripts": {
@@ -1,4 +1,5 @@
1
1
  /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
2
3
  /******/ var __webpack_modules__ = ({
3
4
 
4
5
  /***/ "./resources/assets/scripts/SmoothScroll.js":
@@ -7,7 +8,6 @@
7
8
  \**************************************************/
8
9
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
9
10
 
10
- "use strict";
11
11
  __webpack_require__.r(__webpack_exports__);
12
12
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13
13
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
@@ -60,7 +60,6 @@ var SmoothScroll = function SmoothScroll(triggerAttribute) {
60
60
  \****************************/
61
61
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
62
62
 
63
- "use strict";
64
63
  __webpack_require__.r(__webpack_exports__);
65
64
  /* harmony import */ var _package_script_SmoothScroll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @package_script/SmoothScroll */ "./resources/assets/scripts/SmoothScroll.js");
66
65
 
@@ -72,9 +71,11 @@ exports.SmoothScroll = _package_script_SmoothScroll__WEBPACK_IMPORTED_MODULE_0__
72
71
  /*!******************************!*\
73
72
  !*** ./resources/style.scss ***!
74
73
  \******************************/
75
- /***/ (() => {
74
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
75
+
76
+ __webpack_require__.r(__webpack_exports__);
77
+ // extracted by mini-css-extract-plugin
76
78
 
77
- throw new Error("Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):\nModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):\nSassError: Can't find stylesheet to import.\n ╷\n2 │ @use \"@package_style/_mixin-font\" as *;\n │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n ╵\n resources/style.scss 2:1 root stylesheet\n at processResult (/Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/webpack/lib/NormalModule.js:721:19)\n at /Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/webpack/lib/NormalModule.js:827:5\n at /Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/loader-runner/lib/LoaderRunner.js:399:11\n at /Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/loader-runner/lib/LoaderRunner.js:251:18\n at context.callback (/Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/loader-runner/lib/LoaderRunner.js:124:13)\n at /Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/sass-loader/dist/index.js:54:7\n at Function.call$2 (/Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/sass/sass.dart.js:95825:16)\n at _render_closure1.call$2 (/Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/sass/sass.dart.js:83882:12)\n at _RootZone.runBinary$3$3 (/Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/sass/sass.dart.js:28060:18)\n at _FutureListener.handleError$1 (/Users/camille.charel/Documents/IRIS/Projects/handcook/node_modules/sass/sass.dart.js:26590:21)");
78
79
 
79
80
  /***/ })
80
81
 
@@ -104,7 +105,42 @@ throw new Error("Module build failed (from ./node_modules/mini-css-extract-plugi
104
105
  /******/ return module.exports;
105
106
  /******/ }
106
107
  /******/
108
+ /******/ // expose the modules object (__webpack_modules__)
109
+ /******/ __webpack_require__.m = __webpack_modules__;
110
+ /******/
107
111
  /************************************************************************/
112
+ /******/ /* webpack/runtime/chunk loaded */
113
+ /******/ (() => {
114
+ /******/ var deferred = [];
115
+ /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
116
+ /******/ if(chunkIds) {
117
+ /******/ priority = priority || 0;
118
+ /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
119
+ /******/ deferred[i] = [chunkIds, fn, priority];
120
+ /******/ return;
121
+ /******/ }
122
+ /******/ var notFulfilled = Infinity;
123
+ /******/ for (var i = 0; i < deferred.length; i++) {
124
+ /******/ var [chunkIds, fn, priority] = deferred[i];
125
+ /******/ var fulfilled = true;
126
+ /******/ for (var j = 0; j < chunkIds.length; j++) {
127
+ /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
128
+ /******/ chunkIds.splice(j--, 1);
129
+ /******/ } else {
130
+ /******/ fulfilled = false;
131
+ /******/ if(priority < notFulfilled) notFulfilled = priority;
132
+ /******/ }
133
+ /******/ }
134
+ /******/ if(fulfilled) {
135
+ /******/ deferred.splice(i--, 1)
136
+ /******/ var r = fn();
137
+ /******/ if (r !== undefined) result = r;
138
+ /******/ }
139
+ /******/ }
140
+ /******/ return result;
141
+ /******/ };
142
+ /******/ })();
143
+ /******/
108
144
  /******/ /* webpack/runtime/define property getters */
109
145
  /******/ (() => {
110
146
  /******/ // define getter functions for harmony exports
@@ -133,13 +169,68 @@ throw new Error("Module build failed (from ./node_modules/mini-css-extract-plugi
133
169
  /******/ };
134
170
  /******/ })();
135
171
  /******/
172
+ /******/ /* webpack/runtime/jsonp chunk loading */
173
+ /******/ (() => {
174
+ /******/ // no baseURI
175
+ /******/
176
+ /******/ // object to store loaded and loading chunks
177
+ /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
178
+ /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
179
+ /******/ var installedChunks = {
180
+ /******/ "/scripts/index": 0,
181
+ /******/ "styles/style": 0
182
+ /******/ };
183
+ /******/
184
+ /******/ // no chunk on demand loading
185
+ /******/
186
+ /******/ // no prefetching
187
+ /******/
188
+ /******/ // no preloaded
189
+ /******/
190
+ /******/ // no HMR
191
+ /******/
192
+ /******/ // no HMR manifest
193
+ /******/
194
+ /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
195
+ /******/
196
+ /******/ // install a JSONP callback for chunk loading
197
+ /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
198
+ /******/ var [chunkIds, moreModules, runtime] = data;
199
+ /******/ // add "moreModules" to the modules object,
200
+ /******/ // then flag all "chunkIds" as loaded and fire callback
201
+ /******/ var moduleId, chunkId, i = 0;
202
+ /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
203
+ /******/ for(moduleId in moreModules) {
204
+ /******/ if(__webpack_require__.o(moreModules, moduleId)) {
205
+ /******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
206
+ /******/ }
207
+ /******/ }
208
+ /******/ if(runtime) var result = runtime(__webpack_require__);
209
+ /******/ }
210
+ /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
211
+ /******/ for(;i < chunkIds.length; i++) {
212
+ /******/ chunkId = chunkIds[i];
213
+ /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
214
+ /******/ installedChunks[chunkId][0]();
215
+ /******/ }
216
+ /******/ installedChunks[chunkIds[i]] = 0;
217
+ /******/ }
218
+ /******/ return __webpack_require__.O(result);
219
+ /******/ }
220
+ /******/
221
+ /******/ var chunkLoadingGlobal = self["webpackChunk_iris_interactive_handcook"] = self["webpackChunk_iris_interactive_handcook"] || [];
222
+ /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
223
+ /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
224
+ /******/ })();
225
+ /******/
136
226
  /************************************************************************/
137
227
  /******/
138
228
  /******/ // startup
139
229
  /******/ // Load entry module and return exports
140
- /******/ __webpack_require__("./resources/index.js");
141
- /******/ // This entry module doesn't tell about it's top-level declarations so it can't be inlined
142
- /******/ var __webpack_exports__ = __webpack_require__("./resources/style.scss");
230
+ /******/ // This entry module depends on other loaded chunks and execution need to be delayed
231
+ /******/ __webpack_require__.O(undefined, ["styles/style"], () => (__webpack_require__("./resources/index.js")))
232
+ /******/ var __webpack_exports__ = __webpack_require__.O(undefined, ["styles/style"], () => (__webpack_require__("./resources/style.scss")))
233
+ /******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
143
234
  /******/
144
235
  /******/ })()
145
236
  ;
@@ -30,15 +30,15 @@ $section-margin-top-small: 40px;
30
30
  $section-margin-bottom-small: 40px;
31
31
  $text-margin-bottom: 20px;
32
32
 
33
- $title-margin-top: 60px;
34
- $title-margin-bottom: 40px;
35
- $title-margin-top-small: 40px;
33
+ $title-margin-top: 80px;
34
+ $title-margin-bottom: 20px;
35
+ $title-margin-top-small: 60px;
36
36
  $title-margin-bottom-small: 20px;
37
37
 
38
- $block-margin-top: 60px;
38
+ $block-margin-top: 80px;
39
39
  $block-margin-top-medium: 60px;
40
40
  $block-margin-top-small: 30px;
41
- $block-margin-bottom: 60px;
41
+ $block-margin-bottom: 80px;
42
42
  $block-margin-bottom-medium: 60px;
43
43
  $block-margin-bottom-small: 30px;
44
44
 
@@ -110,7 +110,7 @@ $link-color: var(--iris--link--color);
110
110
  $link-color-hover: var(--iris--link--color-hover);
111
111
  $link-text-decoration: var(--iris--link--text-decoration, none);
112
112
  $link-box-shadow: var(--iris--link--box-shadow, none);
113
- $link-underline-offset: var(--iris--link--underline-offset, 0);
113
+ $link-underline-offset: var(--iris--link--underline-offset, 2px);
114
114
  $link-font-weight: var(--iris--link--font-weight);
115
115
 
116
116
 
@@ -214,7 +214,7 @@ $blockquote-font-size: var(--iris--blockquote--font-size);
214
214
  $blockquote-font-size--rem: var(--iris--blockquote--font-size--rem);
215
215
  $blockquote-font-size-small: var(--iris--blockquote--font-size--small);
216
216
  $blockquote-font-size-small--rem: var(--iris--blockquote--font-size--small--rem);
217
- $blockquote-padding-left: calc(#{$blockquote-font-size} * 1px + 10px);
217
+ $blockquote-padding-left: calc(#{$blockquote-font-size} * 1px + 20px);
218
218
  $blockquote-text-align: var(--iris--blockquote--text-align);
219
219
 
220
220
 
@@ -37,6 +37,7 @@ $allicons: map-merge($allicons, $etourisme-icons);
37
37
 
38
38
  .ei:before,
39
39
  .ei:after {
40
+ color: $icon-color;
40
41
  display: inline-block;
41
42
  vertical-align: middle;
42
43
  font-family: 'etourisme-font', sans-serif;
@@ -117,6 +117,7 @@ $allicons: map-merge($allicons, $theme-icons);
117
117
 
118
118
  .fi:before,
119
119
  .fi:after {
120
+ color: $icon-color;
120
121
  display: inline-block;
121
122
  vertical-align: middle;
122
123
  font-family: 'theme-font', sans-serif;
@@ -2,10 +2,377 @@
2
2
  * Created by IRIS Interactive
3
3
  * User : IRIS Interactive
4
4
  */
5
+ /* Layout
6
+ / ================================================== */
7
+ /* Gutter
8
+ / ================================================== */
9
+ /* Margin
10
+ / ================================================== */
11
+ /* Margin
12
+ / ================================================== */
13
+ /* Breakpoint
14
+ / ================================================== */
15
+ /* Global
16
+ / ================================================== */
17
+ /* Notifications
18
+ / ================================================== */
19
+ /* Difficulty
20
+ / ================================================== */
21
+ /*
22
+ * Created by IRIS Interactive
23
+ * User : IRIS Interactive
24
+ */
5
25
  /* Import
6
26
  /* ============================================= */
7
27
  /* Fonticon
8
28
  /* ============================================= */
29
+ /*
30
+ * Created by IRIS Interactive
31
+ * User : IRIS Interactive
32
+ */
33
+ /* Main gutter
34
+ / ================================================== */
35
+ /* display flex
36
+ /* ============================================= */
37
+ /* Font size
38
+ /* ============================================= */
39
+ /* Hover - TODO
40
+ /* ============================================= */
41
+ /* Touch
42
+ /* ============================================= */
43
+ /* Clear
44
+ /* ============================================= */
45
+ /*
46
+ * Created by IRIS Interactive
47
+ * User : IRIS Interactive
48
+ */
49
+ /* Transition
50
+ /* ============================================= */
51
+ /* Hover
52
+ /* ============================================= */
53
+ /* Ellipsis
54
+ /* ============================================= */
55
+ /* Adaptive height block
56
+ /* ============================================= */
57
+ /* Line clamp
58
+ /* ============================================= */
59
+ /* Object fit
60
+ /* ============================================= */
61
+ /* Linear Gradient
62
+ /* ============================================= */
63
+ /* fit-content
64
+ /* ============================================= */
65
+ /* stretched-link
66
+ /* ============================================= */
67
+ /* sr-only
68
+ /* ============================================= */
69
+ /*
70
+ * Created by IRIS Interactive
71
+ * User : IRIS Interactive
72
+ */
73
+ *,
74
+ *:after,
75
+ *:before {
76
+ -moz-osx-font-smoothing: grayscale;
77
+ -webkit-font-smoothing: antialiased;
78
+ text-rendering: optimizeLegibility;
79
+ box-sizing: border-box;
80
+ margin: 0;
81
+ padding: 0;
82
+ }
83
+
84
+ body {
85
+ background: var(--iris--global--background-color);
86
+ color: var(--iris--global--color);
87
+ font-family: var(--iris--global--font-family);
88
+ line-height: 1.75;
89
+ font-weight: var(--iris--global--font-weight);
90
+ font-size: var(--iris--global--font-size-regular--rem);
91
+ }
92
+
93
+ /*
94
+ * Created by IRIS Interactive
95
+ * User : IRIS Interactive
96
+ */
97
+ body.fullscreen .header {
98
+ height: 120px;
99
+ }
100
+ @media screen and (max-width: 1000px) {
101
+ body.fullscreen .header {
102
+ height: 80px;
103
+ }
104
+ }
105
+ body.fullscreen .alignheight {
106
+ height: calc(100vh - 120px);
107
+ }
108
+ @media screen and (max-width: 1000px) {
109
+ body.fullscreen .alignheight {
110
+ height: calc(100vh - 80px);
111
+ }
112
+ }
113
+ body.fullscreen .header .banner,
114
+ body.fullscreen .footer,
115
+ body.fullscreen .prefooter {
116
+ display: none;
117
+ }
118
+
119
+ /* Margin section
120
+ / ================================================== */
121
+ .section {
122
+ position: relative;
123
+ margin-top: 100px;
124
+ margin-bottom: 60px;
125
+ }
126
+ @media screen and (max-width: 1000px) {
127
+ .section {
128
+ margin-top: 40px;
129
+ margin-bottom: 40px;
130
+ }
131
+ }
132
+ .fullscreen .section {
133
+ margin-top: 0;
134
+ margin-bottom: 0;
135
+ }
136
+
137
+ .section-tools {
138
+ position: absolute;
139
+ z-index: 1;
140
+ top: 0;
141
+ left: 0;
142
+ margin-left: 30px;
143
+ }
144
+ @media screen and (max-width: 1452.380952381px) {
145
+ .section-tools {
146
+ display: none;
147
+ }
148
+ }
149
+
150
+ .section-tools__item {
151
+ display: flex;
152
+ justify-content: center;
153
+ align-items: center;
154
+ flex-direction: column;
155
+ margin-bottom: 20px;
156
+ }
157
+ @media screen and (max-width: 1452.380952381px) {
158
+ .section-tools__item {
159
+ font-size: var(--iris--global--font-size-small);
160
+ }
161
+ }
162
+ @media screen and (max-width: 1000px) {
163
+ .section-tools__item {
164
+ display: flex;
165
+ justify-content: center;
166
+ align-items: center;
167
+ flex-direction: row;
168
+ }
169
+ .section-tools__item > * {
170
+ margin: 0 3px;
171
+ }
172
+ .section-tools__item > *:first-child {
173
+ margin-left: 0;
174
+ }
175
+ }
176
+ @media screen and (max-width: 650px) {
177
+ .section-tools__item {
178
+ margin: 0 20px;
179
+ display: flex;
180
+ justify-content: flex-start;
181
+ align-items: center;
182
+ flex-direction: row;
183
+ width: calc(100% - 20px * 2);
184
+ }
185
+ }
186
+ @media screen and (max-width: 370px) {
187
+ .section-tools__item {
188
+ margin: 0 20px;
189
+ width: calc(100% - 20px * 2);
190
+ }
191
+ }
192
+
193
+ /* Width element
194
+ / ================================================== */
195
+ .article > *:not(.alignwide):not(.alignfull) {
196
+ max-width: 800px;
197
+ margin-left: auto;
198
+ margin-right: auto;
199
+ }
200
+ @media screen and (max-width: 1452.380952381px) {
201
+ .article > *:not(.alignfull) {
202
+ width: calc(100% - 8% * 2);
203
+ }
204
+ }
205
+ @media screen and (max-width: 1000px) {
206
+ .article > *:not(.alignfull) {
207
+ width: calc(100% - 60px * 2);
208
+ }
209
+ }
210
+ @media screen and (max-width: 650px) {
211
+ .article > *:not(.alignfull) {
212
+ width: calc(100% - 20px * 2);
213
+ }
214
+ }
215
+ @media screen and (max-width: 370px) {
216
+ .article > *:not(.alignfull) {
217
+ width: calc(100% - 20px * 2);
218
+ }
219
+ }
220
+
221
+ .alignwide {
222
+ max-width: 1220px;
223
+ margin: 0 auto;
224
+ }
225
+
226
+ .alignheight {
227
+ height: 100vh;
228
+ }
229
+
230
+ .full-width {
231
+ margin-left: calc(50% - 50vw);
232
+ margin-right: calc(50% - 50vw);
233
+ }
234
+
235
+ /* Margin element
236
+ / ================================================== */
237
+ .hentry > h1,
238
+ .hentry > h2,
239
+ .hentry > h3,
240
+ .hentry > h4,
241
+ .hentry > h5,
242
+ .hentry > h6 {
243
+ margin-top: 80px;
244
+ margin-bottom: 20px;
245
+ }
246
+ @media screen and (max-width: 650px) {
247
+ .hentry > h1,
248
+ .hentry > h2,
249
+ .hentry > h3,
250
+ .hentry > h4,
251
+ .hentry > h5,
252
+ .hentry > h6 {
253
+ margin-top: 60px;
254
+ margin-bottom: 20px;
255
+ }
256
+ }
257
+ .hentry ul:not(.not-list-style),
258
+ .hentry ol:not(.not-list-style),
259
+ .hentry p {
260
+ margin-bottom: 20px;
261
+ }
262
+ .hentry > *[class] {
263
+ margin-top: 80px;
264
+ margin-bottom: 80px;
265
+ }
266
+ @media screen and (max-width: 650px) {
267
+ .hentry > *[class] {
268
+ margin-top: 30px;
269
+ margin-bottom: 30px;
270
+ }
271
+ }
272
+
273
+ /* TODO
274
+ / ================================================== */
275
+ /*
276
+ * Created by IRIS Interactive
277
+ * User : IRIS Interactive
278
+ */
279
+ /* Utils classes
280
+ /* ============================================= */
281
+ .stretched-link:before {
282
+ position: absolute;
283
+ top: 0;
284
+ right: 0;
285
+ bottom: 0;
286
+ left: 0;
287
+ z-index: 1;
288
+ pointer-events: auto;
289
+ content: "";
290
+ background-color: rgba(0, 0, 0, 0);
291
+ }
292
+
293
+ /* ============================================= */
294
+ .list-flex {
295
+ display: flex;
296
+ flex-wrap: wrap;
297
+ margin-bottom: 0;
298
+ }
299
+ .list-flex > * {
300
+ list-style-type: none;
301
+ margin: 0 10px 10px 0;
302
+ }
303
+ .list-flex > *:last-child {
304
+ margin-right: 0;
305
+ }
306
+
307
+ /* Animations
308
+ /* ============================================= */
309
+ @-webkit-keyframes loader {
310
+ 100% {
311
+ transform: rotate(360deg);
312
+ }
313
+ }
314
+ @keyframes loader {
315
+ 100% {
316
+ transform: rotate(360deg);
317
+ }
318
+ }
319
+ /* Sr-only
320
+ /* ============================================= */
321
+ .sr-only {
322
+ clip: rect(0, 0, 0, 0);
323
+ border-width: 0;
324
+ height: 1px;
325
+ margin: -1px;
326
+ overflow: hidden;
327
+ padding: 0;
328
+ position: absolute;
329
+ white-space: nowrap;
330
+ width: 1px;
331
+ }
332
+
333
+ /* Text with icon before
334
+ /* ============================================= */
335
+ .text-icon {
336
+ display: inline-flex;
337
+ align-items: center;
338
+ }
339
+ .text-icon:before {
340
+ margin-right: 5px;
341
+ }
342
+ .text-icon:after {
343
+ margin-left: 5px;
344
+ }
345
+
346
+ /* Block with img animated on hover
347
+ /* ============================================= */
348
+ .hover-item img {
349
+ transition: 0.2s ease;
350
+ will-change: transform;
351
+ }
352
+ .hover-item:hover img {
353
+ transform: scale(1.02);
354
+ }
355
+
356
+ /* Masquer un element
357
+ /* ============================================= */
358
+ .hide {
359
+ display: none;
360
+ }
361
+
362
+ /* Opening
363
+ /* ============================================= */
364
+ .is-opened {
365
+ color: #009e55;
366
+ }
367
+
368
+ .soon-closed {
369
+ color: #ff890e;
370
+ }
371
+
372
+ .is-closed {
373
+ color: #f33;
374
+ }
375
+
9
376
  @font-face {
10
377
  font-family: "etourisme-font";
11
378
  font-weight: normal;
@@ -15,6 +382,7 @@
15
382
  }
16
383
  .ei:before,
17
384
  .ei:after {
385
+ color: var(--iris--icon--color);
18
386
  display: inline-block;
19
387
  vertical-align: middle;
20
388
  font-family: "etourisme-font", sans-serif;
@@ -234,6 +602,7 @@
234
602
  }
235
603
  .fi:before,
236
604
  .fi:after {
605
+ color: var(--iris--icon--color);
237
606
  display: inline-block;
238
607
  vertical-align: middle;
239
608
  font-family: "theme-font", sans-serif;