@kth/style 1.14.2 → 1.15.0-alpha.1

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 (109) hide show
  1. package/README.md +76 -4
  2. package/dist/backtotop.js +57 -0
  3. package/dist/cjs/index.js +276 -0
  4. package/dist/cjs/types/index.d.ts +2 -0
  5. package/dist/consent/klaro-no-css.js +6324 -0
  6. package/dist/consent/klaro.css +820 -0
  7. package/dist/consent/kth-klaro.scss +286 -0
  8. package/dist/esm/index.js +276 -0
  9. package/dist/icons/legacy/scss/_svg_data.scss +194 -0
  10. package/dist/icons/legacy/svg/arrow-back-black.svg +5 -0
  11. package/dist/icons/legacy/svg/arrow-back-blue.svg +5 -0
  12. package/dist/icons/legacy/svg/arrow-back-white.svg +5 -0
  13. package/dist/icons/legacy/svg/arrow-collapse-black.svg +1 -0
  14. package/dist/icons/legacy/svg/arrow-collapse-blue.svg +5 -0
  15. package/dist/icons/legacy/svg/arrow-collapse-white.svg +5 -0
  16. package/dist/icons/legacy/svg/arrow-expand-black.svg +5 -0
  17. package/dist/icons/legacy/svg/arrow-expand-blue.svg +5 -0
  18. package/dist/icons/legacy/svg/arrow-expand-white.svg +5 -0
  19. package/dist/icons/legacy/svg/arrow-maximize-blue.svg +5 -0
  20. package/dist/icons/legacy/svg/arrow-minimize-blue.svg +5 -0
  21. package/dist/icons/legacy/svg/arrow-next-black.svg +5 -0
  22. package/dist/icons/legacy/svg/arrow-next-white.svg +5 -0
  23. package/dist/icons/legacy/svg/arrow-up-down-black.svg +5 -0
  24. package/dist/icons/legacy/svg/arrow-up-down-white.svg +5 -0
  25. package/dist/icons/legacy/svg/asterisk-black.svg +5 -0
  26. package/dist/icons/legacy/svg/audio-blue.svg +5 -0
  27. package/dist/icons/legacy/svg/audio-white.svg +5 -0
  28. package/dist/icons/legacy/svg/back-to-top-blue.svg +6 -0
  29. package/dist/icons/legacy/svg/calculate-blue.svg +5 -0
  30. package/dist/icons/legacy/svg/check-black.svg +5 -0
  31. package/dist/icons/legacy/svg/close-black.svg +5 -0
  32. package/dist/icons/legacy/svg/close-white.svg +1 -0
  33. package/dist/icons/legacy/svg/code-blue.svg +5 -0
  34. package/dist/icons/legacy/svg/code-white.svg +5 -0
  35. package/dist/icons/legacy/svg/compressed-blue.svg +13 -0
  36. package/dist/icons/legacy/svg/compressed-white.svg +13 -0
  37. package/dist/icons/legacy/svg/copy-blue.svg +5 -0
  38. package/dist/icons/legacy/svg/date-black.svg +5 -0
  39. package/dist/icons/legacy/svg/date-blue.svg +5 -0
  40. package/dist/icons/legacy/svg/date-white.svg +5 -0
  41. package/dist/icons/legacy/svg/delete-blue.svg +5 -0
  42. package/dist/icons/legacy/svg/doc-blue.svg +5 -0
  43. package/dist/icons/legacy/svg/doc-white.svg +5 -0
  44. package/dist/icons/legacy/svg/download-blue.svg +5 -0
  45. package/dist/icons/legacy/svg/download-white.svg +5 -0
  46. package/dist/icons/legacy/svg/edit-blue.svg +5 -0
  47. package/dist/icons/legacy/svg/email-white.svg +5 -0
  48. package/dist/icons/legacy/svg/error-black.svg +5 -0
  49. package/dist/icons/legacy/svg/eye-black.svg +5 -0
  50. package/dist/icons/legacy/svg/eye-blue.svg +5 -0
  51. package/dist/icons/legacy/svg/eye-off-black.svg +5 -0
  52. package/dist/icons/legacy/svg/eye-off-blue.svg +5 -0
  53. package/dist/icons/legacy/svg/favorite-active-blue.svg +5 -0
  54. package/dist/icons/legacy/svg/favorite-blue.svg +5 -0
  55. package/dist/icons/legacy/svg/file-blue.svg +5 -0
  56. package/dist/icons/legacy/svg/file-white.svg +5 -0
  57. package/dist/icons/legacy/svg/filter-blue.svg +5 -0
  58. package/dist/icons/legacy/svg/folder-blue.svg +5 -0
  59. package/dist/icons/legacy/svg/folder-white.svg +5 -0
  60. package/dist/icons/legacy/svg/gallery-active-black.svg +5 -0
  61. package/dist/icons/legacy/svg/gallery-back-black.svg +5 -0
  62. package/dist/icons/legacy/svg/gallery-next-black.svg +5 -0
  63. package/dist/icons/legacy/svg/gallery-passive-black.svg +5 -0
  64. package/dist/icons/legacy/svg/gallery-pause-black.svg +5 -0
  65. package/dist/icons/legacy/svg/gallery-play-black.svg +5 -0
  66. package/dist/icons/legacy/svg/image-blue.svg +5 -0
  67. package/dist/icons/legacy/svg/image-white.svg +5 -0
  68. package/dist/icons/legacy/svg/information-black.svg +5 -0
  69. package/dist/icons/legacy/svg/language-black.svg +5 -0
  70. package/dist/icons/legacy/svg/language-white.svg +1 -0
  71. package/dist/icons/legacy/svg/link-black.svg +5 -0
  72. package/dist/icons/legacy/svg/link-blue.svg +1 -0
  73. package/dist/icons/legacy/svg/menu-black.svg +8 -0
  74. package/dist/icons/legacy/svg/message-white.svg +5 -0
  75. package/dist/icons/legacy/svg/notification-white.svg +5 -0
  76. package/dist/icons/legacy/svg/open-modal-blue.svg +5 -0
  77. package/dist/icons/legacy/svg/open-window-black.svg +5 -0
  78. package/dist/icons/legacy/svg/open-window-blue.svg +5 -0
  79. package/dist/icons/legacy/svg/open-window-white.svg +5 -0
  80. package/dist/icons/legacy/svg/page-first-black.svg +5 -0
  81. package/dist/icons/legacy/svg/page-last-black.svg +5 -0
  82. package/dist/icons/legacy/svg/pdf-blue.svg +6 -0
  83. package/dist/icons/legacy/svg/pdf-white.svg +6 -0
  84. package/dist/icons/legacy/svg/ppt-blue.svg +5 -0
  85. package/dist/icons/legacy/svg/ppt-white.svg +5 -0
  86. package/dist/icons/legacy/svg/print-blue.svg +5 -0
  87. package/dist/icons/legacy/svg/quote-black.svg +5 -0
  88. package/dist/icons/legacy/svg/quote-white.svg +5 -0
  89. package/dist/icons/legacy/svg/scale-blue.svg +5 -0
  90. package/dist/icons/legacy/svg/search-blue.svg +5 -0
  91. package/dist/icons/legacy/svg/settings-blue.svg +5 -0
  92. package/dist/icons/legacy/svg/sort-ascending-white.svg +5 -0
  93. package/dist/icons/legacy/svg/sort-descending-white.svg +5 -0
  94. package/dist/icons/legacy/svg/success-black.svg +5 -0
  95. package/dist/icons/legacy/svg/text-blue.svg +5 -0
  96. package/dist/icons/legacy/svg/text-white.svg +5 -0
  97. package/dist/icons/legacy/svg/thumb-down-blue.svg +5 -0
  98. package/dist/icons/legacy/svg/thumb-up-blue.svg +5 -0
  99. package/dist/icons/legacy/svg/upload-blue.svg +5 -0
  100. package/dist/icons/legacy/svg/upload-white.svg +5 -0
  101. package/dist/icons/legacy/svg/user-management-blue.svg +5 -0
  102. package/dist/icons/legacy/svg/video-blue.svg +5 -0
  103. package/dist/icons/legacy/svg/video-white.svg +5 -0
  104. package/dist/icons/legacy/svg/xls-blue.svg +5 -0
  105. package/dist/icons/legacy/svg/xls-white.svg +5 -0
  106. package/dist/menus.js +227 -0
  107. package/package.json +3 -1
  108. package/scss/components/backtotop.scss +24 -0
  109. package/scss/components/commonStyle.scss +91 -0
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="a"
3
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
4
+ <path d="M10,0l6,6v12c0,1.1-.9,2-2,2H2c-1.1,0-2-.9-2-2V2C0,.9,.9,0,2,0H10m4,18V7h-5V2H2V18H14m-6-8l4,4h-2.5v3h-3v-3h-2.5l4-4Z" style="fill:#006cb7;"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="a"
3
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
4
+ <path d="M10,0l6,6v12c0,1.1-.9,2-2,2H2c-1.1,0-2-.9-2-2V2C0,.9,.9,0,2,0H10m4,18V7h-5V2H2V18H14m-6-8l4,4h-2.5v3h-3v-3h-2.5l4-4Z" style="fill:#ffffff;"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="a"
3
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 14">
4
+ <path d="M13,6c1.66,0,3-1.34,3-3s-1.34-3-3-3-3,1.34-3,3,1.34,3,3,3m0-4c.55,0,1,.45,1,1s-.45,1-1,1-1-.45-1-1,.45-1,1-1m4.11,3.86c1.2-1.72,1.2-4,0-5.72,.29-.09,.59-.14,.89-.14,1.66,0,3,1.34,3,3s-1.34,3-3,3c-.3,0-.6-.05-.89-.14m-4.11,2.14c-6,0-6,4-6,4v2h12v-2s0-4-6-4m-4,4c0-.29,.32-2,4-2s3.94,1.56,4,2m7,0v2h-3v-2c-.05-1.5-.7-2.92-1.8-3.94,4.8,.49,4.8,3.94,4.8,3.94M8,7h-3v3H3v-3H0v-2H3V2h2v3h3v2Z" style="fill:#006cb7;"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="a"
3
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
4
+ <path d="M10,0l6,6v12c0,1.1-.9,2-2,2H2c-1.1,0-2-.9-2-2V2C0,.9,.9,0,2,0H10m4,18V7h-5V2H2V18H14m-2-2l-2.5-1.7v1.7H4v-5h5.5v1.7l2.5-1.7v5Z" style="fill:#006cb7;"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="a"
3
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
4
+ <path d="M10,0l6,6v12c0,1.1-.9,2-2,2H2c-1.1,0-2-.9-2-2V2C0,.9,.9,0,2,0H10m4,18V7h-5V2H2V18H14m-2-2l-2.5-1.7v1.7H4v-5h5.5v1.7l2.5-1.7v5Z" style="fill:#ffffff;"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="a"
3
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
4
+ <path d="M10,0H2C.89,0,0,.9,0,2V18c0,1.11,.89,2,2,2H14c1.11,0,2-.89,2-2V6L10,0m4,18H2V2h7V7h5v11m-5.1-5.5l2.9,4.5h-1.8l-2-3.4-2,3.4h-1.8l2.9-4.5-2.9-4.5h1.8l2,3.4,2-3.4h1.8l-2.9,4.5Z" style="fill:#006cb7;"/>
5
+ </svg>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg id="a"
3
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20">
4
+ <path d="M10,0H2C.89,0,0,.9,0,2V18c0,1.11,.89,2,2,2H14c1.11,0,2-.89,2-2V6L10,0m4,18H2V2h7V7h5v11m-5.1-5.5l2.9,4.5h-1.8l-2-3.4-2,3.4h-1.8l2.9-4.5-2.9-4.5h1.8l2,3.4,2-3.4h1.8l-2.9,4.5Z" style="fill:#ffffff;"/>
5
+ </svg>
package/dist/menus.js ADDED
@@ -0,0 +1,227 @@
1
+ (function () {
2
+ 'use strict';
3
+
4
+ /* eslint-disable no-var */ /* eslint-disable vars-on-top */ /* eslint-disable no-use-before-define */ function klaroOnload() {
5
+ var klaro = document.querySelector("#klaro div.klaro");
6
+ function noVisibleKlaro() {
7
+ return (
8
+ !klaro ||
9
+ window.getComputedStyle(klaro).display === "none" ||
10
+ klaro.querySelector("a") === null
11
+ );
12
+ }
13
+ if (noVisibleKlaro()) {
14
+ return;
15
+ }
16
+ if (klaro !== document.body.firstElementChild) {
17
+ document.body.insertBefore(klaro, document.body.firstElementChild);
18
+ }
19
+ const getNextFocusableElement = function _getNextFocusableElement(
20
+ element,
21
+ step,
22
+ ) {
23
+ var elements = Array.prototype.slice.call(
24
+ klaro.querySelectorAll(
25
+ "a:not([disabled]), button:not([disabled]), input:not([disabled])",
26
+ ),
27
+ );
28
+ if (!elements) return null;
29
+ elements = elements.filter(
30
+ (e) => window.getComputedStyle(e).display !== "none",
31
+ );
32
+ for (var i = 0; i < elements.length; i++) {
33
+ if (elements[i] === element) {
34
+ if (i < elements.length - step) {
35
+ return elements[i + step];
36
+ }
37
+ return elements[0];
38
+ }
39
+ }
40
+ return elements[0];
41
+ };
42
+ const resetActiveLI = function _resetActiveLI() {
43
+ var elements = Array.prototype.slice.call(
44
+ klaro.querySelectorAll("li.active"),
45
+ );
46
+ if (!elements) return;
47
+ elements.forEach((e) => e.classList.remove("active"));
48
+ }; // eslint-disable-next-line no-shadow
49
+ const handleKeydown = (event) => {
50
+ if (noVisibleKlaro()) {
51
+ window.removeEventListener("keydown", handleKeydown);
52
+ return;
53
+ }
54
+ if (event.key === "Tab") {
55
+ const nextElement = getNextFocusableElement(
56
+ event.target,
57
+ event.shiftKey ? -1 : 1,
58
+ );
59
+ if (nextElement) {
60
+ event.preventDefault();
61
+ nextElement.focus();
62
+ resetActiveLI();
63
+ if (nextElement.tagName === "INPUT") {
64
+ nextElement.parentElement.closest("li").classList.add("active");
65
+ }
66
+ }
67
+ } else if (event.key === "Escape") {
68
+ const closeButton = klaro.querySelector(
69
+ "div.klaro .cookie-modal button.hide",
70
+ );
71
+ if (closeButton) {
72
+ closeButton.click();
73
+ }
74
+ }
75
+ };
76
+ window.addEventListener("keydown", handleKeydown);
77
+ const config = { childList: true, subtree: true, attributes: true };
78
+ const callback = function _callback(mutationsList) {
79
+ for (const mutation of mutationsList) {
80
+ if (mutation.type === "childList") {
81
+ if (mutation.addedNodes.length > 0) {
82
+ for (const node of mutation.addedNodes) {
83
+ if (node.nodeType === 1) {
84
+ if (node.classList.contains("cookie-modal")) {
85
+ var inputs = Array.prototype.slice.call(
86
+ node.querySelectorAll("input"),
87
+ );
88
+ for (const input of inputs) {
89
+ input.setAttribute("tabindex", "0");
90
+ }
91
+ }
92
+ }
93
+ }
94
+ } else if (mutation.removedNodes.length > 0) {
95
+ for (const node of mutation.removedNodes) {
96
+ if (node.nodeType === 1) {
97
+ if (
98
+ node.classList.contains("cn-body") ||
99
+ node.classList.contains("cookie-modal")
100
+ ) {
101
+ window.removeEventListener("keydown", handleKeydown);
102
+ }
103
+ }
104
+ }
105
+ }
106
+ } else if (mutation.attributeName === "style") {
107
+ if (
108
+ window.getComputedStyle(klaro).getPropertyValue("display") === "none"
109
+ ) {
110
+ window.removeEventListener("keydown", handleKeydown);
111
+ }
112
+ }
113
+ }
114
+ };
115
+ const observer = new MutationObserver(callback);
116
+ observer.observe(klaro, config);
117
+ }
118
+ window.addEventListener("load", () => {
119
+ klaroOnload();
120
+ });
121
+ window.addEventListener("load", () => {
122
+ // If no mobile menu containers are present, skip it all togehter
123
+ if (
124
+ !document.getElementById("mobileMenuWrapper") ||
125
+ !document.getElementById("mobileMenuList") ||
126
+ !document.getElementById("mobileMenuContent") ||
127
+ !document.getElementById("nav-icon")
128
+ ) {
129
+ return;
130
+ }
131
+ var mainMenu = document.getElementById("mainMenu"); // Get main menu
132
+ var megaMenu = document.getElementById("megaMenu"); // Get mega menu
133
+ var secondaryMenu = document.querySelector(".secondaryMenu"); // Get secondary menu
134
+ if (!mainMenu && !megaMenu && !secondaryMenu) {
135
+ document.getElementById("mobileMenuWrapper").style.display = "none"; // Hide mobile menu wrapper/container if there is no menus
136
+ }
137
+ if (mainMenu) {
138
+ // For main menu items, copy a link if it exists, otherwise copy the link content
139
+ createMobileMenuItems(mainMenu.querySelectorAll("li"), true);
140
+ } else if (megaMenu) {
141
+ // For mega menu items, copy only the the first alinks
142
+ createMobileMenuItems(megaMenu.querySelectorAll("li"), false);
143
+ }
144
+ if (secondaryMenu) {
145
+ createMobileMenuItemsForSecondaryMenu(
146
+ secondaryMenu.querySelectorAll("li a"),
147
+ );
148
+ }
149
+ function createMobileMenuItems(menuItems, includeInline) {
150
+ for (var i = 0; i < menuItems.length; i++) {
151
+ var linkToCopy = menuItems[i].querySelector("a");
152
+ if (linkToCopy || includeInline) {
153
+ var listItem = document.createElement("li");
154
+ listItem.className =
155
+ menuItems[i].className !== "" ? menuItems[i].className : "nav-item";
156
+ if (linkToCopy) {
157
+ var link = document.createElement("a");
158
+ link.href = linkToCopy.href;
159
+ link.text = linkToCopy.text;
160
+ link.className = linkToCopy.className;
161
+ listItem.appendChild(link);
162
+ } else if (includeInline) {
163
+ listItem.innerHTML = menuItems[i].innerHTML;
164
+ }
165
+ document.getElementById("mobileMenuList").appendChild(listItem);
166
+ }
167
+ }
168
+ }
169
+ function createMobileMenuItemsForSecondaryMenu(menuItems) {
170
+ var secondaryMenuWrapper = document.createElement("li");
171
+ secondaryMenuWrapper.className = "secondaryMenuWrap";
172
+ var secondaryMenuContainer = document.createElement("ul");
173
+ secondaryMenuContainer.className = "secondaryMenuContainer";
174
+ for (var i = 0; i < menuItems.length; i++) {
175
+ var link = document.createElement("a");
176
+ link.className = "secondaryMenu";
177
+ link.href = menuItems[i].href;
178
+ link.text = menuItems[i].text;
179
+ if (menuItems[i].hreflang) {
180
+ link.hreflang = menuItems[i].hreflang;
181
+ }
182
+ var secondaryMenuListItem = document.createElement("li");
183
+ secondaryMenuListItem.className = "item nav-item secondaryItem";
184
+ secondaryMenuListItem.appendChild(link);
185
+ secondaryMenuContainer.appendChild(secondaryMenuListItem);
186
+ }
187
+ secondaryMenuWrapper.appendChild(secondaryMenuContainer);
188
+ document.getElementById("mobileMenuList").appendChild(secondaryMenuWrapper);
189
+ } // Mega menu icon toggler.
190
+ document.getElementById("nav-icon").onclick = function _onclick() {
191
+ if (document.body.style.overflow !== "hidden") {
192
+ document.body.style.overflow = "hidden";
193
+ } else {
194
+ document.body.style.overflow = "initial";
195
+ }
196
+ document.getElementById("mobileMenuContent").classList.toggle("show");
197
+ this.classList.toggle("open");
198
+ };
199
+ });
200
+ function stickyMainMenu() {
201
+ if (!document.querySelector("#mainMenu ul.nav.nav-list")) return;
202
+ function isInViewport(element) {
203
+ if (!element) return false;
204
+ const rect = element.getBoundingClientRect();
205
+ return (
206
+ rect.top >= 0 &&
207
+ rect.left >= 0 &&
208
+ rect.bottom <=
209
+ (window.innerHeight || document.documentElement.clientHeight) &&
210
+ rect.right <= (window.innerWidth || document.documentElement.clientWidth)
211
+ );
212
+ }
213
+ if (
214
+ isInViewport(
215
+ document.querySelector("#mainMenu ul.nav.nav-list:last-of-type")
216
+ ?.lastElementChild,
217
+ )
218
+ ) {
219
+ document.querySelector("#mainMenu").classList.add("sticky-menu");
220
+ } else {
221
+ document.querySelector("#mainMenu").classList.remove("sticky-menu");
222
+ }
223
+ }
224
+ window.addEventListener("load", stickyMainMenu);
225
+ window.addEventListener("resize", stickyMainMenu);
226
+
227
+ })();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kth/style",
3
- "version": "1.14.2",
3
+ "version": "1.15.0-alpha.1",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "./dist/cjs/types/index.d.ts",
@@ -10,6 +10,8 @@
10
10
  "require": "./dist/cjs/index.js"
11
11
  },
12
12
  "./scss/*": "./scss/*",
13
+ "./consent/*": "./dist/consent/*",
14
+ "./icons/*": "./dist/icons/*",
13
15
  "./assets/*": "./assets/*",
14
16
  "./package.json": "./package.json"
15
17
  },
@@ -0,0 +1,24 @@
1
+ #back-to-top {
2
+ width: 50px;
3
+ height: 50px;
4
+ position: fixed;
5
+ bottom: 10px;
6
+ right: 10px;
7
+ z-index: 11;
8
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iYSIKICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyIDQyIj4KICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI0MiIgaGVpZ2h0PSI0MiIgcng9IjIwLjk3IiByeT0iMjAuOTciIHN0eWxlPSJmaWxsOiNmY2ZjZmM7Ii8+CiAgICA8cGF0aCBkPSJNMjIuNSwzMC4wMWgtM3YtMTIuMDFsLTUuMjUsNS4yNS0yLjEzLTIuMTMsOC44OC04Ljg4LDguODgsOC44OC0yLjEzLDIuMTMtNS4yNS01LjI1djEyLjAxbS0xLjUtMjQuMDFjOC4yOSwwLDE1LDYuNzIsMTUsMTVzLTYuNzIsMTUtMTUsMTUtMTUtNi43Mi0xNS0xNVMxMi43Miw2LDIxLDZtMCwzYy02LjYzLDAtMTIuMDEsNS4zOC0xMi4wMSwxMi4wMXM1LjM4LDEyLjAxLDEyLjAxLDEyLjAxLDEyLjAxLTUuMzgsMTIuMDEtMTIuMDEtNS4zOC0xMi4wMS0xMi4wMS0xMi4wMVoiIHN0eWxlPSJmaWxsOiMwMDQ3OTE7Ii8+Cjwvc3ZnPg==")
9
+ 100% 100% no-repeat transparent;
10
+ background-size: 50px 50px;
11
+ text-indent: -10000px;
12
+ cursor: pointer;
13
+ outline: none;
14
+ visibility: hidden;
15
+ opacity: 0.1;
16
+ transition:
17
+ visibility 0.4s,
18
+ opacity 0.4s linear;
19
+
20
+ &.show {
21
+ visibility: visible;
22
+ opacity: 1;
23
+ }
24
+ }
@@ -0,0 +1,91 @@
1
+ // This file have been moved from soon to be deprecated kth-style
2
+
3
+ // To override personal menu top margin in print.
4
+ html {
5
+ body {
6
+ @media print {
7
+ margin-top: 0 !important;
8
+ }
9
+ }
10
+ }
11
+
12
+ body {
13
+ .container {
14
+ &.withMainMenu {
15
+ > .row {
16
+ width: 100%;
17
+ padding: 0;
18
+ margin: 0;
19
+
20
+ &:first-of-type {
21
+ flex-flow: row-reverse nowrap;
22
+ }
23
+ }
24
+ }
25
+
26
+ &.main {
27
+ margin: 0 auto;
28
+
29
+ @media (width >= 1258px) {
30
+ max-width: 1228px;
31
+ margin: 0 auto;
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ .lead {
38
+ margin: 0 0 22px;
39
+ }
40
+
41
+ /* stylelint-disable selector-class-pattern, no-descending-specificity */
42
+ .paragraphs {
43
+ p:not(.calendar) {
44
+ // @include t12(false);
45
+ margin: 0 0 27px;
46
+ max-width: 730px;
47
+ }
48
+ }
49
+
50
+ p {
51
+ &.AlignLeft {
52
+ text-align: left;
53
+ }
54
+
55
+ &.AlignCenter {
56
+ text-align: center;
57
+ }
58
+
59
+ &.AlignRight {
60
+ text-align: right;
61
+ }
62
+
63
+ &.AlignJustify {
64
+ text-align: justify;
65
+ }
66
+ }
67
+ /* stylelint-enable selector-class-pattern, no-descending-specificity */
68
+
69
+ a {
70
+ &.skipToMainContent {
71
+ left: -999px;
72
+ position: absolute;
73
+ top: auto;
74
+ width: 1px;
75
+ height: 1px;
76
+ overflow: hidden;
77
+ z-index: -999;
78
+
79
+ &:focus,
80
+ &:active {
81
+ left: 0;
82
+ top: 0;
83
+ width: auto;
84
+ height: auto;
85
+ overflow: auto;
86
+ padding: 5px;
87
+ font-size: 1rem;
88
+ z-index: 99999;
89
+ }
90
+ }
91
+ }