@internetstiftelsen/styleguide 2.20.5 → 2.21.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/dist/components.js +3 -1
- package/dist/molecules/context-menu/context-menu.js +19 -0
- package/dist/molecules/modal/modal.js +49 -0
- package/package.json +1 -1
- package/src/.DS_Store +0 -0
- package/src/app.js +15 -1
- package/src/atoms/.DS_Store +0 -0
- package/src/atoms/icon/.DS_Store +0 -0
- package/src/components.js +1 -0
- package/src/molecules/.DS_Store +0 -0
- package/src/molecules/context-menu/context-menu.config.js +12 -2
- package/src/molecules/context-menu/context-menu.hbs +1 -1
- package/src/molecules/context-menu/context-menu.js +17 -0
- package/src/molecules/glider/_glider.scss +1 -1
- package/src/molecules/modal/modal.js +42 -0
- package/src/organisms/footer/_footer.scss +58 -96
- package/src/organisms/footer/footer.config.js +4 -4
- package/src/organisms/footer/footer.hbs +100 -110
- package/src/utilities/_icons.scss +5 -0
package/dist/components.js
CHANGED
|
@@ -48,4 +48,6 @@ require('./molecules/glider/glider-single');
|
|
|
48
48
|
|
|
49
49
|
require('./atoms/timeline/anchorScroll');
|
|
50
50
|
|
|
51
|
-
require('./molecules/timeline-navigation/timeline-navigation');
|
|
51
|
+
require('./molecules/timeline-navigation/timeline-navigation');
|
|
52
|
+
|
|
53
|
+
require('./molecules/context-menu/context-menu');
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var elements = document.querySelectorAll('[data-close-on-outside-click]');
|
|
4
|
+
|
|
5
|
+
function closeElement(element) {
|
|
6
|
+
document.addEventListener('mouseup', function (e) {
|
|
7
|
+
var childElement = element.nextElementSibling;
|
|
8
|
+
|
|
9
|
+
/* Close menu on all clicks except the trigger button,
|
|
10
|
+
the menu and it's child elements and if the menu is actually open. */
|
|
11
|
+
if (!element.contains(e.target) && !childElement.contains(e.target) && element.getAttribute('aria-expanded') === 'true') {
|
|
12
|
+
element.click();
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (elements) {
|
|
18
|
+
[].forEach.call(elements, closeElement);
|
|
19
|
+
}
|
|
@@ -9,6 +9,9 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument
|
|
|
9
9
|
|
|
10
10
|
var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
|
|
11
11
|
|
|
12
|
+
exports.onOpen = onOpen;
|
|
13
|
+
exports.onClose = onClose;
|
|
14
|
+
|
|
12
15
|
var _focusTrap = require('../../focusTrap');
|
|
13
16
|
|
|
14
17
|
var _focusTrap2 = _interopRequireDefault(_focusTrap);
|
|
@@ -51,6 +54,8 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
51
54
|
*/
|
|
52
55
|
|
|
53
56
|
var queue = [];
|
|
57
|
+
var globalOnCloseCallbacks = [];
|
|
58
|
+
var globalOnOpenCallbacks = [];
|
|
54
59
|
var active = null;
|
|
55
60
|
var incrementId = 0;
|
|
56
61
|
var modal = null;
|
|
@@ -138,6 +143,26 @@ function handleKeyUp(e) {
|
|
|
138
143
|
});
|
|
139
144
|
}
|
|
140
145
|
|
|
146
|
+
/**
|
|
147
|
+
* Global onOpen handler
|
|
148
|
+
*
|
|
149
|
+
* @param {Function} cb
|
|
150
|
+
* @returns {number}
|
|
151
|
+
*/
|
|
152
|
+
function onOpen(cb) {
|
|
153
|
+
var index = globalOnOpenCallbacks.push(cb) - 1;
|
|
154
|
+
|
|
155
|
+
return function () {
|
|
156
|
+
globalOnOpenCallbacks.splice(index, 1);
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function dispatchOnOpenHandlers(el, id) {
|
|
161
|
+
globalOnOpenCallbacks.forEach(function (cb) {
|
|
162
|
+
return cb(el, id);
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
141
166
|
/**
|
|
142
167
|
* Display the active modal.
|
|
143
168
|
*/
|
|
@@ -167,6 +192,8 @@ function display() {
|
|
|
167
192
|
active.settings.onOpen(active.id, active.el);
|
|
168
193
|
}
|
|
169
194
|
|
|
195
|
+
dispatchOnOpenHandlers(active.el, active.id);
|
|
196
|
+
|
|
170
197
|
setTimeout(function () {
|
|
171
198
|
if (active.el.focusTrap) {
|
|
172
199
|
active.el.focusTrap.activate();
|
|
@@ -200,6 +227,26 @@ function dispatch() {
|
|
|
200
227
|
display();
|
|
201
228
|
}
|
|
202
229
|
|
|
230
|
+
/**
|
|
231
|
+
* Global onClose handler
|
|
232
|
+
*
|
|
233
|
+
* @param {Function} cb
|
|
234
|
+
* @returns {number}
|
|
235
|
+
*/
|
|
236
|
+
function onClose(cb) {
|
|
237
|
+
var index = globalOnCloseCallbacks.push(cb) - 1;
|
|
238
|
+
|
|
239
|
+
return function () {
|
|
240
|
+
globalOnCloseCallbacks.splice(index, 1);
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
function dispatchOnCloseHandlers(el, id) {
|
|
245
|
+
globalOnCloseCallbacks.forEach(function (cb) {
|
|
246
|
+
return cb(el, id);
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
|
|
203
250
|
/**
|
|
204
251
|
* Close currently active modal
|
|
205
252
|
* and dispatch next in queue.
|
|
@@ -212,6 +259,8 @@ function close() {
|
|
|
212
259
|
active.settings.onClose(active.id);
|
|
213
260
|
}
|
|
214
261
|
|
|
262
|
+
dispatchOnCloseHandlers(active.el, active.id);
|
|
263
|
+
|
|
215
264
|
document.removeEventListener('keyup', handleKeyUp);
|
|
216
265
|
|
|
217
266
|
if (active.el.focusTrap) {
|
package/package.json
CHANGED
package/src/.DS_Store
ADDED
|
Binary file
|
package/src/app.js
CHANGED
|
@@ -5,7 +5,7 @@ require('./atoms/grid-toggle/grid-toggle');
|
|
|
5
5
|
require('./components');
|
|
6
6
|
|
|
7
7
|
const Button = require('./atoms/button/Button');
|
|
8
|
-
const { open } = require('./molecules/modal/modal');
|
|
8
|
+
const { open, onClose, onOpen } = require('./molecules/modal/modal');
|
|
9
9
|
|
|
10
10
|
const demoButtons = document.querySelectorAll('button.a-button.has-loader');
|
|
11
11
|
|
|
@@ -59,3 +59,17 @@ if (demoModal) {
|
|
|
59
59
|
});
|
|
60
60
|
});
|
|
61
61
|
}
|
|
62
|
+
|
|
63
|
+
// eslint-disable-next-line no-unused-vars
|
|
64
|
+
const unsubscribe = onClose((el, id) => {
|
|
65
|
+
console.log('Global onClose', el, id);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// Call unsubscribe to remove callback
|
|
69
|
+
|
|
70
|
+
// eslint-disable-next-line no-unused-vars
|
|
71
|
+
const unsubscribeOpen = onOpen((el, id) => {
|
|
72
|
+
console.log('Global onOpen', el, id);
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
// Call unsubscribe to remove callback
|
|
Binary file
|
|
Binary file
|
package/src/components.js
CHANGED
|
Binary file
|
|
@@ -4,14 +4,24 @@ module.exports = {
|
|
|
4
4
|
context: {
|
|
5
5
|
name: 'Context menu',
|
|
6
6
|
controls: 'contextMenu',
|
|
7
|
-
focusTrap: true
|
|
7
|
+
focusTrap: true,
|
|
8
|
+
outsideClick: false
|
|
8
9
|
},
|
|
9
10
|
variants: [
|
|
10
11
|
{
|
|
11
12
|
name: 'No focus trap',
|
|
12
13
|
context: {
|
|
13
14
|
controls: 'contextMenu2',
|
|
14
|
-
focusTrap: false
|
|
15
|
+
focusTrap: false,
|
|
16
|
+
outsideClick: false
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'Close on outside click',
|
|
21
|
+
context: {
|
|
22
|
+
controls: 'contextMenu3',
|
|
23
|
+
focusTrap: false,
|
|
24
|
+
outsideClick: true
|
|
15
25
|
}
|
|
16
26
|
}
|
|
17
27
|
]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<nav class="m-context-menu js-context-menu">
|
|
2
|
-
<button type="button" class="a-button a-button--icon a-button--transparent a-button--icon js-context-menu-btn" aria-expanded="false" data-a11y-toggle="{{controls}}" aria-controls="{{controls}}">
|
|
2
|
+
<button type="button" class="a-button a-button--icon a-button--transparent a-button--icon js-context-menu-btn" aria-expanded="false" data-a11y-toggle="{{controls}}" aria-controls="{{controls}}" {{#if outsideClick}}data-close-on-outside-click="true"{{/if}}>
|
|
3
3
|
<span class="a-button__text">Exportera</span>
|
|
4
4
|
<svg class="icon a-button__icon">
|
|
5
5
|
<use xlink:href="#icon-download"></use>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const elements = document.querySelectorAll('[data-close-on-outside-click]');
|
|
2
|
+
|
|
3
|
+
function closeElement(element) {
|
|
4
|
+
document.addEventListener('mouseup', (e) => {
|
|
5
|
+
const childElement = element.nextElementSibling;
|
|
6
|
+
|
|
7
|
+
/* Close menu on all clicks except the trigger button,
|
|
8
|
+
the menu and it's child elements and if the menu is actually open. */
|
|
9
|
+
if (!element.contains(e.target) && !childElement.contains(e.target) && element.getAttribute('aria-expanded') === 'true') {
|
|
10
|
+
element.click();
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
if (elements) {
|
|
16
|
+
[].forEach.call(elements, closeElement);
|
|
17
|
+
}
|
|
@@ -33,6 +33,8 @@ import className from '../../assets/js/className';
|
|
|
33
33
|
*/
|
|
34
34
|
|
|
35
35
|
const queue = [];
|
|
36
|
+
const globalOnCloseCallbacks = [];
|
|
37
|
+
const globalOnOpenCallbacks = [];
|
|
36
38
|
let active = null;
|
|
37
39
|
let incrementId = 0;
|
|
38
40
|
let modal = null;
|
|
@@ -117,6 +119,24 @@ function handleKeyUp(e) {
|
|
|
117
119
|
});
|
|
118
120
|
}
|
|
119
121
|
|
|
122
|
+
/**
|
|
123
|
+
* Global onOpen handler
|
|
124
|
+
*
|
|
125
|
+
* @param {Function} cb
|
|
126
|
+
* @returns {number}
|
|
127
|
+
*/
|
|
128
|
+
export function onOpen(cb) {
|
|
129
|
+
const index = globalOnOpenCallbacks.push(cb) - 1;
|
|
130
|
+
|
|
131
|
+
return () => {
|
|
132
|
+
globalOnOpenCallbacks.splice(index, 1);
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function dispatchOnOpenHandlers(el, id) {
|
|
137
|
+
globalOnOpenCallbacks.forEach((cb) => cb(el, id));
|
|
138
|
+
}
|
|
139
|
+
|
|
120
140
|
/**
|
|
121
141
|
* Display the active modal.
|
|
122
142
|
*/
|
|
@@ -149,6 +169,8 @@ function display() {
|
|
|
149
169
|
active.settings.onOpen(active.id, active.el);
|
|
150
170
|
}
|
|
151
171
|
|
|
172
|
+
dispatchOnOpenHandlers(active.el, active.id);
|
|
173
|
+
|
|
152
174
|
setTimeout(() => {
|
|
153
175
|
if (active.el.focusTrap) {
|
|
154
176
|
active.el.focusTrap.activate();
|
|
@@ -182,6 +204,24 @@ function dispatch() {
|
|
|
182
204
|
display();
|
|
183
205
|
}
|
|
184
206
|
|
|
207
|
+
/**
|
|
208
|
+
* Global onClose handler
|
|
209
|
+
*
|
|
210
|
+
* @param {Function} cb
|
|
211
|
+
* @returns {number}
|
|
212
|
+
*/
|
|
213
|
+
export function onClose(cb) {
|
|
214
|
+
const index = globalOnCloseCallbacks.push(cb) - 1;
|
|
215
|
+
|
|
216
|
+
return () => {
|
|
217
|
+
globalOnCloseCallbacks.splice(index, 1);
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
function dispatchOnCloseHandlers(el, id) {
|
|
222
|
+
globalOnCloseCallbacks.forEach((cb) => cb(el, id));
|
|
223
|
+
}
|
|
224
|
+
|
|
185
225
|
/**
|
|
186
226
|
* Close currently active modal
|
|
187
227
|
* and dispatch next in queue.
|
|
@@ -194,6 +234,8 @@ function close() {
|
|
|
194
234
|
active.settings.onClose(active.id);
|
|
195
235
|
}
|
|
196
236
|
|
|
237
|
+
dispatchOnCloseHandlers(active.el, active.id);
|
|
238
|
+
|
|
197
239
|
document.removeEventListener('keyup', handleKeyUp);
|
|
198
240
|
|
|
199
241
|
if (active.el.focusTrap) {
|
|
@@ -19,6 +19,14 @@ $footer-font-size: 18px; // To ensure all footers on all sites have the same fon
|
|
|
19
19
|
z-index: z_index(foreground);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
@include m(row) {
|
|
23
|
+
display: flex;
|
|
24
|
+
flex-wrap: wrap;
|
|
25
|
+
max-width: none !important;
|
|
26
|
+
margin-right: math.div($grid-gutter-width, -2);
|
|
27
|
+
margin-left: math.div($grid-gutter-width, -2);
|
|
28
|
+
}
|
|
29
|
+
|
|
22
30
|
@include e(logotype) {
|
|
23
31
|
width: 100%;
|
|
24
32
|
max-width: 250px;
|
|
@@ -45,98 +53,17 @@ $footer-font-size: 18px; // To ensure all footers on all sites have the same fon
|
|
|
45
53
|
}
|
|
46
54
|
|
|
47
55
|
@include e(info) {
|
|
56
|
+
min-height: 445px;
|
|
48
57
|
background-color: $color-cyberspace;
|
|
49
58
|
color: $color-snow;
|
|
50
59
|
-webkit-font-smoothing: antialiased;
|
|
51
60
|
-moz-osx-font-smoothing: grayscale;
|
|
52
61
|
|
|
53
|
-
@include e(
|
|
54
|
-
padding: rhythm(4) rhythm(3);
|
|
55
|
-
border-bottom: 1px solid $color-black;
|
|
56
|
-
|
|
57
|
-
@include bp-up(xl) {
|
|
58
|
-
padding: rhythm(4) rhythm(6);
|
|
59
|
-
border-bottom: 0;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
@include e(contact) {
|
|
64
|
-
border-left: 1px solid $color-black;
|
|
65
|
-
font-size: 80%;
|
|
66
|
-
|
|
67
|
-
@include e(address) {
|
|
68
|
-
font-size: inherit;
|
|
69
|
-
|
|
70
|
-
@include e(li) {
|
|
71
|
-
font-size: #{($footer-font-size) - 3px};
|
|
72
|
-
line-height: 1.3;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
@include bp-up(xxl) {
|
|
77
|
-
padding-right: rhythm(1);
|
|
78
|
-
|
|
79
|
-
& + & {
|
|
80
|
-
padding-right: 0;
|
|
81
|
-
padding-left: rhythm(1);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
@include e(row-first) {
|
|
86
|
-
border-bottom: 1px solid $color-black;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
@include e(row-second) {
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
@include e(address1) {
|
|
94
|
-
padding: rhythm(3);
|
|
95
|
-
border-bottom: 1px solid $color-black;
|
|
96
|
-
|
|
97
|
-
@include bp-only(md) {
|
|
98
|
-
border-bottom: 0;
|
|
99
|
-
border-right: 1px solid $color-black;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
@include bp-up(xl) {
|
|
103
|
-
border-right: 1px solid $color-black;
|
|
104
|
-
border-bottom: 0;
|
|
105
|
-
padding: rhythm(3) rhythm(3) rhythm(3) rhythm(6);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
@include e(address2) {
|
|
110
|
-
padding: rhythm(3) 0 rhythm(3) rhythm(3);
|
|
111
|
-
|
|
112
|
-
@include bp-up(xl) {
|
|
113
|
-
padding-left: rhythm(6);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
@include e(ISO) {
|
|
118
|
-
border-right: 1px solid $color-black;
|
|
119
|
-
border-bottom: 1px solid $color-black;
|
|
62
|
+
@include e(inner) {
|
|
120
63
|
padding: rhythm(3);
|
|
121
|
-
display: flex;
|
|
122
|
-
align-items: center;
|
|
123
64
|
|
|
124
65
|
@include bp-up(md) {
|
|
125
|
-
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
@include bp-up(xl) {
|
|
129
|
-
padding: rhythm(3) rhythm(3) rhythm(3) rhythm(6);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
@include e(CC) {
|
|
134
|
-
padding: rhythm(3);
|
|
135
|
-
display: flex;
|
|
136
|
-
align-items: center;
|
|
137
|
-
|
|
138
|
-
@include bp-up(xl) {
|
|
139
|
-
padding-left: rhythm(6);
|
|
66
|
+
padding: rhythm(4) rhythm(5);
|
|
140
67
|
}
|
|
141
68
|
}
|
|
142
69
|
}
|
|
@@ -149,8 +76,6 @@ $footer-font-size: 18px; // To ensure all footers on all sites have the same fon
|
|
|
149
76
|
font-size: $footer-font-size;
|
|
150
77
|
|
|
151
78
|
a {
|
|
152
|
-
@extend %normalize-links;
|
|
153
|
-
|
|
154
79
|
color: $color-jade;
|
|
155
80
|
text-decoration: none;
|
|
156
81
|
|
|
@@ -160,10 +85,17 @@ $footer-font-size: 18px; // To ensure all footers on all sites have the same fon
|
|
|
160
85
|
text-decoration: underline;
|
|
161
86
|
}
|
|
162
87
|
}
|
|
88
|
+
}
|
|
163
89
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
max-width:
|
|
90
|
+
@include bp-down(md) {
|
|
91
|
+
@include e(paragraph) {
|
|
92
|
+
max-width: 70%;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@include bp-down(sm) {
|
|
97
|
+
@include e(paragraph) {
|
|
98
|
+
max-width: none;
|
|
167
99
|
}
|
|
168
100
|
}
|
|
169
101
|
|
|
@@ -171,6 +103,11 @@ $footer-font-size: 18px; // To ensure all footers on all sites have the same fon
|
|
|
171
103
|
max-width: 100%;
|
|
172
104
|
height: auto;
|
|
173
105
|
background-color: $color-snow;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@include e(grid-row) {
|
|
109
|
+
height: 100%;
|
|
110
|
+
overflow: hidden;
|
|
174
111
|
|
|
175
112
|
@include e(item) {
|
|
176
113
|
display: flex;
|
|
@@ -190,15 +127,15 @@ $footer-font-size: 18px; // To ensure all footers on all sites have the same fon
|
|
|
190
127
|
}
|
|
191
128
|
|
|
192
129
|
@include bp-up(md) {
|
|
193
|
-
flex-basis:
|
|
130
|
+
flex-basis: 33.333333%;
|
|
194
131
|
}
|
|
195
132
|
|
|
196
133
|
@include bp-up(lg) {
|
|
197
|
-
flex-basis:
|
|
134
|
+
flex-basis: 50%;
|
|
198
135
|
}
|
|
199
136
|
|
|
200
137
|
@include bp-up(xl) {
|
|
201
|
-
flex-basis:
|
|
138
|
+
flex-basis: 33.333333%;
|
|
202
139
|
}
|
|
203
140
|
|
|
204
141
|
@include e(link) {
|
|
@@ -263,15 +200,40 @@ $footer-font-size: 18px; // To ensure all footers on all sites have the same fon
|
|
|
263
200
|
display: inline-block;
|
|
264
201
|
max-width: 300px;
|
|
265
202
|
|
|
266
|
-
@include
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
203
|
+
@include bp-down(lg) {
|
|
204
|
+
@include plumber(
|
|
205
|
+
$font-size: 1.7,
|
|
206
|
+
$line-height: 2
|
|
207
|
+
);
|
|
208
|
+
}
|
|
270
209
|
}
|
|
271
210
|
}
|
|
272
211
|
}
|
|
273
212
|
}
|
|
274
213
|
|
|
214
|
+
@include e(contact) {
|
|
215
|
+
font-size: 80%;
|
|
216
|
+
|
|
217
|
+
@include e(address) {
|
|
218
|
+
margin-bottom: rhythm(2);
|
|
219
|
+
font-size: inherit;
|
|
220
|
+
|
|
221
|
+
@include e(li) {
|
|
222
|
+
font-size: #{($footer-font-size) - 3px};
|
|
223
|
+
line-height: 1.3;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
@include bp-up(xxl) {
|
|
228
|
+
padding-right: rhythm(1);
|
|
229
|
+
|
|
230
|
+
& + & {
|
|
231
|
+
padding-right: 0;
|
|
232
|
+
padding-left: rhythm(1);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
275
237
|
@include e(logo-link) {
|
|
276
238
|
display: flex;
|
|
277
239
|
justify-content: center;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
module.exports = {
|
|
2
|
-
status: '
|
|
2
|
+
status: 'ready',
|
|
3
3
|
|
|
4
4
|
context: {
|
|
5
5
|
id: '',
|
|
6
6
|
footer_text: '<p class="o-footer__paragraph"><a class="o-footer__link" href="https://internetstiftelsen.se">Internetstiftelsen</a> verkar för ett internet som bidrar positivt till människan och samhället. Vi är en oberoende organisation som säkerställer en stark och säker infrastruktur för internet i Sverige. Vårt mål är att alla ska våga och kunna använda internet. Vi finns i Sverige och ansvarar för den svenska toppdomänen .se och driften av toppdomänen .nu.</p>',
|
|
7
|
-
contact_1: '<ul class="u-list-clean o-
|
|
8
|
-
contact_2: '<ul class="u-list-clean o-
|
|
7
|
+
contact_1: '<ul class="u-list-clean o-footer__contact__address"><li class="o-footer__contact__address__li">Internetstiftelsen</li><li class="o-footer__contact__address__li">Hammarby Kaj 10D</li><li class="o-footer__contact__address__li">Box 92073</li><li class="o-footer__contact__address__li">120 07 Stockholm</li></ul>',
|
|
8
|
+
contact_2: '<ul class="u-list-clean o-footer__contact__address"><li class="o-footer__contact__address__li">E-post: <a class="o-footer__link" href="mailto:info@internetstiftelsen.se">info@internetstiftelsen.se</a></li><li class="o-footer__contact__address__li">Telefon: <a class="o-footer__link" href="tel:084523500">08-452 35 00</a></li><li class="o-footer__contact__address__li">Organisationsnummer: 802405-0190</li></ul>',
|
|
9
9
|
ISO_link: 'https://internetstiftelsen.se/docs/Certifikat_27001_UKAS_sv.pdf',
|
|
10
10
|
ISO_image: 'https://internetstiftelsen.se/app/themes/internetstiftelsen/images/ISO_27001_2013_black_TM.svg',
|
|
11
11
|
ISO_text: 'Certifierade enligt ISO/IEC<br>27001:2013',
|
|
@@ -21,6 +21,6 @@ module.exports = {
|
|
|
21
21
|
site_heading_5: 'Internetmuseum',
|
|
22
22
|
site_description_5: 'Internetmuseum är ett digitalt museum som byggts, och kureras av Internetstiftelsen',
|
|
23
23
|
site_heading_6: 'Digitala lektioner',
|
|
24
|
-
site_description_6: 'Digitala lektioner är en öppen digital lärresurs från Internetstiftelsen
|
|
24
|
+
site_description_6: 'Digitala lektioner är en öppen digital lärresurs från Internetstiftelsen. Du hittar färdiga lektioner inom olika ämnesområden för alla stadier i grundskolan',
|
|
25
25
|
}
|
|
26
26
|
}
|
|
@@ -1,131 +1,121 @@
|
|
|
1
1
|
<div class="wrapper-fluid">
|
|
2
|
-
<div class="o-footer" id="siteFooter">
|
|
3
|
-
<div class="
|
|
4
|
-
<div class="
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
<div class="o-footer--row o-footer" id="siteFooter">
|
|
3
|
+
<div class="grid-xl-7 grid-lg-9 grid-18 o-footer__info">
|
|
4
|
+
<div class="o-footer__info__inner">
|
|
5
|
+
{{{footer_text}}}
|
|
6
|
+
<div class="o-footer--row">
|
|
7
|
+
<div class="grid-xxl-9 grid-18 o-footer__contact">
|
|
8
|
+
{{{contact_1}}}
|
|
8
9
|
</div>
|
|
9
|
-
<div class="grid-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
<div class="grid-xxl-9 grid-18 o-footer__contact">
|
|
11
|
+
{{{contact_2}}}
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<div class="o-footer--row u-m-t-2 align-items-center">
|
|
15
|
+
<div class="o-footer-grid">
|
|
16
|
+
<a href="{{ISO_link}}" class="o-footer__link o-footer__external-link">
|
|
17
|
+
<img src="{{ISO_image}}" class="o-footer__external-logo" alt="Certifierade enligt ISO/IEC 27001:2013">
|
|
18
|
+
<span>{{{ISO_text}}}</span>
|
|
19
|
+
</a>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="o-footer-grid">
|
|
22
|
+
<a href="https://creativecommons.org/licenses/by/4.0/legalcode.sv" class="o-footer__link o-footer__external-link">
|
|
23
|
+
<img class="o-footer__external-logo" src="https://svenskarnaochinternet.se/app/uploads/2019/10/ccby.png" alt="{{CC_license}}">
|
|
24
|
+
<span>{{{CC_license}}}</span>
|
|
25
|
+
</a>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
<div class="grid-xl-11 grid-lg-9 grid-18 o-footer__logotypes">
|
|
31
|
+
<div class="o-footer--row o-footer__grid-row">
|
|
32
|
+
<div class="o-footer__grid-row__item">
|
|
33
|
+
<a href="https://svenskarnaochinternet.se" class="o-footer__grid-row__item__link">
|
|
34
|
+
<div class="o-footer__grid-row__item__inner">
|
|
35
|
+
<div class="o-footer__grid-row__item__front">
|
|
36
|
+
<img class="o-footer__logotype" alt="Svenskarna och internet" src="https://static.iis.se/images/logotypes/svenskarna-och-internet.svg">
|
|
13
37
|
</div>
|
|
14
|
-
<div class="
|
|
15
|
-
{{
|
|
38
|
+
<div class="o-footer__grid-row__item__back">
|
|
39
|
+
<h2>{{site_heading_1}}</h2>
|
|
40
|
+
<span>{{site_description_1}}</span>
|
|
16
41
|
</div>
|
|
17
42
|
</div>
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
43
|
+
</a>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="o-footer__grid-row__item">
|
|
46
|
+
<a href="https://internetdagarna.se" class="o-footer__grid-row__item__link">
|
|
47
|
+
<div class="o-footer__grid-row__item__inner">
|
|
48
|
+
<div class="o-footer__grid-row__item__front">
|
|
49
|
+
<img class="o-footer__logotype" alt="Internetdagarna" src="https://static.iis.se/images/logotypes/internetdagarna.svg">
|
|
24
50
|
</div>
|
|
25
|
-
<div class="
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
<span>{{{CC_license}}}</span>
|
|
29
|
-
</a>
|
|
51
|
+
<div class="o-footer__grid-row__item__back">
|
|
52
|
+
<h2>{{site_heading_2}}</h2>
|
|
53
|
+
<span>{{site_description_2}}</span>
|
|
30
54
|
</div>
|
|
31
55
|
</div>
|
|
32
|
-
</
|
|
56
|
+
</a>
|
|
33
57
|
</div>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
<div class="o-footer__logotypes__item">
|
|
40
|
-
<a href="https://svenskarnaochinternet.se" class="o-footer__logotypes__item__link">
|
|
41
|
-
<div class="o-footer__logotypes__item__inner">
|
|
42
|
-
<div class="o-footer__logotypes__item__front">
|
|
43
|
-
<img class="o-footer__logotype" alt="Svenskarna och internet" src="https://static.iis.se/images/logotypes/svenskarna-och-internet.svg">
|
|
44
|
-
</div>
|
|
45
|
-
<div class="o-footer__logotypes__item__back">
|
|
46
|
-
<h2>{{site_heading_1}}</h2>
|
|
47
|
-
<span>{{site_description_1}}</span>
|
|
48
|
-
</div>
|
|
58
|
+
<div class="o-footer__grid-row__item">
|
|
59
|
+
<a href="https://goto10.se" class="o-footer__grid-row__item__link">
|
|
60
|
+
<div class="o-footer__grid-row__item__inner">
|
|
61
|
+
<div class="o-footer__grid-row__item__front">
|
|
62
|
+
<img class="o-footer__logotype" alt="Goto10" src="https://static.iis.se/images/logotypes/goto-10.svg">
|
|
49
63
|
</div>
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<a href="https://internetdagarna.se" class="o-footer__logotypes__item__link">
|
|
54
|
-
<div class="o-footer__logotypes__item__inner">
|
|
55
|
-
<div class="o-footer__logotypes__item__front">
|
|
56
|
-
<img class="o-footer__logotype" alt="Internetdagarna" src="https://static.iis.se/images/logotypes/internetdagarna.svg">
|
|
57
|
-
</div>
|
|
58
|
-
<div class="o-footer__logotypes__item__back">
|
|
59
|
-
<h2>{{site_heading_2}}</h2>
|
|
60
|
-
<span>{{site_description_2}}</span>
|
|
61
|
-
</div>
|
|
64
|
+
<div class="o-footer__grid-row__item__back">
|
|
65
|
+
<h2>{{site_heading_3}}</h2>
|
|
66
|
+
<span>{{site_description_3}}</span>
|
|
62
67
|
</div>
|
|
63
|
-
</
|
|
64
|
-
</
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<div class="o-footer__logotypes__item__back">
|
|
72
|
-
<h2>{{site_heading_3}}</h2>
|
|
73
|
-
<span>{{site_description_3}}</span>
|
|
74
|
-
</div>
|
|
68
|
+
</div>
|
|
69
|
+
</a>
|
|
70
|
+
</div>
|
|
71
|
+
<div class="o-footer__grid-row__item">
|
|
72
|
+
<a href="https://bredbandskollen.se" class="o-footer__grid-row__item__link">
|
|
73
|
+
<div class="o-footer__grid-row__item__inner">
|
|
74
|
+
<div class="o-footer__grid-row__item__front">
|
|
75
|
+
<img class="o-footer__logotype" alt="Bredbandskollen" src="https://static.iis.se/images/logotypes/bredbandskollen.svg">
|
|
75
76
|
</div>
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
<a href="https://bredbandskollen.se" class="o-footer__logotypes__item__link">
|
|
80
|
-
<div class="o-footer__logotypes__item__inner">
|
|
81
|
-
<div class="o-footer__logotypes__item__front">
|
|
82
|
-
<img class="o-footer__logotype" alt="Bredbandskollen" src="https://static.iis.se/images/logotypes/bredbandskollen.svg">
|
|
83
|
-
</div>
|
|
84
|
-
<div class="o-footer__logotypes__item__back">
|
|
85
|
-
<h2>{{site_heading_4}}</h2>
|
|
86
|
-
<span>{{site_description_4}}</span>
|
|
87
|
-
</div>
|
|
77
|
+
<div class="o-footer__grid-row__item__back">
|
|
78
|
+
<h2>{{site_heading_4}}</h2>
|
|
79
|
+
<span>{{site_description_4}}</span>
|
|
88
80
|
</div>
|
|
89
|
-
</
|
|
90
|
-
</
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<div class="o-footer__logotypes__item__back">
|
|
98
|
-
<h2>{{site_heading_5}}</h2>
|
|
99
|
-
<span>{{site_description_5}}</span>
|
|
100
|
-
</div>
|
|
81
|
+
</div>
|
|
82
|
+
</a>
|
|
83
|
+
</div>
|
|
84
|
+
<div class="o-footer__grid-row__item">
|
|
85
|
+
<a href="https://internetmuseum.se" class="o-footer__grid-row__item__link">
|
|
86
|
+
<div class="o-footer__grid-row__item__inner">
|
|
87
|
+
<div class="o-footer__grid-row__item__front">
|
|
88
|
+
<img class="o-footer__logotype" alt="Internetmuseum" src="https://static.iis.se/images/logotypes/internetmuseum.svg">
|
|
101
89
|
</div>
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<a href="https://digitalalektioner.se" class="o-footer__logotypes__item__link">
|
|
106
|
-
<div class="o-footer__logotypes__item__inner">
|
|
107
|
-
<div class="o-footer__logotypes__item__front">
|
|
108
|
-
<img class="o-footer__logotype" alt="Digitala lektioner" src="https://static.iis.se/images/logotypes/digitala-lektioner.svg">
|
|
109
|
-
</div>
|
|
110
|
-
<div class="o-footer__logotypes__item__back">
|
|
111
|
-
<h2>{{site_heading_6}}</h2>
|
|
112
|
-
<span>{{site_description_6}}</span>
|
|
113
|
-
</div>
|
|
90
|
+
<div class="o-footer__grid-row__item__back">
|
|
91
|
+
<h2>{{site_heading_5}}</h2>
|
|
92
|
+
<span>{{site_description_5}}</span>
|
|
114
93
|
</div>
|
|
115
|
-
</
|
|
116
|
-
</
|
|
94
|
+
</div>
|
|
95
|
+
</a>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="o-footer__grid-row__item">
|
|
98
|
+
<a href="https://digitalalektioner.se" class="o-footer__grid-row__item__link">
|
|
99
|
+
<div class="o-footer__grid-row__item__inner">
|
|
100
|
+
<div class="o-footer__grid-row__item__front">
|
|
101
|
+
<img class="o-footer__logotype" alt="Digitala lektioner" src="https://static.iis.se/images/logotypes/digitala-lektioner.svg">
|
|
102
|
+
</div>
|
|
103
|
+
<div class="o-footer__grid-row__item__back">
|
|
104
|
+
<h2>{{site_heading_6}}</h2>
|
|
105
|
+
<span>{{site_description_6}}</span>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
</a>
|
|
117
109
|
</div>
|
|
118
110
|
</div>
|
|
119
111
|
</div>
|
|
120
|
-
<div class="
|
|
121
|
-
<
|
|
122
|
-
<
|
|
123
|
-
<
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
</nav>
|
|
128
|
-
</div>
|
|
112
|
+
<div class="u-p-y-1 o-footer__bottom-links">
|
|
113
|
+
<nav>
|
|
114
|
+
<ul class="u-list-clean display-flex">
|
|
115
|
+
<li class="u-p-x-1"><a href="https://internetstiftelsen.se/om-webbplatsen/" class="o-footer__link o-footer__about-link">Om webbplatsen</a></li>
|
|
116
|
+
<li class="u-p-x-1"><a href="https://internetstiftelsen.se/om-webbplatsen/cookies/" class="o-footer__link o-footer__about-link">Om cookies</a></li>
|
|
117
|
+
</ul>
|
|
118
|
+
</nav>
|
|
129
119
|
</div>
|
|
130
120
|
</div>
|
|
131
121
|
</div>
|
|
@@ -11,6 +11,11 @@ $fill-color: $color-black;
|
|
|
11
11
|
background-position: center center !important;
|
|
12
12
|
|
|
13
13
|
// Sizes
|
|
14
|
+
@include m(smallest) {
|
|
15
|
+
width: $icon-size-smallest !important;
|
|
16
|
+
height: $icon-size-smallest !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
@include m(small) {
|
|
15
20
|
width: $icon-size-small !important;
|
|
16
21
|
height: $icon-size-small !important;
|