diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..6f3a291 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "liveServer.settings.port": 5501 +} \ No newline at end of file diff --git a/fonts.css b/fonts.css index 34218eb..a4e2166 100644 --- a/fonts.css +++ b/fonts.css @@ -124,4 +124,22 @@ font-family: 'special-issue-15-t'; src: url('fonts/Garamondt-Italic.woff') format('woff'); font-style: normal; +} + +@font-face { + font-family: "special-issue-16"; + src: url("fonts/pirelli-regular.woff2") format("woff2"), + url("fonts/Pirelli-Regular.woff") format("woff"); + font-weight: normal; + font-style: normal; + font-display: swap; +} + +@font-face { + font-family: "special-issue-16"; + src: url("fonts/pirelli-bolditalic.woff") format("woff2"), + url("fonts/pirelli-bolditalic.woff") format("woff"); + font-weight: bold; + font-style: italic; + font-display: swap; } \ No newline at end of file diff --git a/fonts/pirelli-bolditalic.woff b/fonts/pirelli-bolditalic.woff new file mode 100644 index 0000000..dbb17a9 Binary files /dev/null and b/fonts/pirelli-bolditalic.woff differ diff --git a/fonts/pirelli-bolditalic.woff2 b/fonts/pirelli-bolditalic.woff2 new file mode 100644 index 0000000..e712f5c Binary files /dev/null and b/fonts/pirelli-bolditalic.woff2 differ diff --git a/fonts/pirelli-regular.woff b/fonts/pirelli-regular.woff new file mode 100644 index 0000000..e614aa4 Binary files /dev/null and b/fonts/pirelli-regular.woff differ diff --git a/fonts/pirelli-regular.woff2 b/fonts/pirelli-regular.woff2 new file mode 100644 index 0000000..e6cc99a Binary files /dev/null and b/fonts/pirelli-regular.woff2 differ diff --git a/index.html b/index.html index b953664..220570c 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,9 @@ XPUB Special Issues + + + @@ -38,25 +41,68 @@ -
+
Special
Issue 17
January/April 2022
-
...
+
This box found you for a reason
-

...

+

Dear Player,

+

+ I found you for a reason. +

+ + +

+ + Welcome to my productive space. Here play meets work. Time is ordered in unusual ways and patterns unravel. Together, we mess with the boundaries between leisure and labour. +

+

+ + How are your boundaries? Maybe you shouldn't go to work tomorrow. But could you really follow your own schedule? Would you be more productive if you chose when to work? +

+ + +

+ Ål Nik (Alexandra Nikolova), Carmen Gray, Chaeyoung Kim, Emma Prato, Erica Gargaglione, Francesco Luzzana, Gersande Schellinx, Jian Haake, Kimberley Cosmilla, Miriam Schöb, Mitsa Chaida, Supisara Burapachaisri +

-
+ diff --git a/lib/spawnSticker.js b/lib/spawnSticker.js new file mode 100644 index 0000000..e7c85d5 --- /dev/null +++ b/lib/spawnSticker.js @@ -0,0 +1,46 @@ +// A lightweight sticker spawner to stick elements on your html page +const stickerSpawners = document.querySelectorAll("[data-sticker]"); +var throttleSpawn = throttle(spawnSticker, 400); + +Array.from(stickerSpawners).forEach((spawner) => { + spawner.addEventListener("mousemove", (e) => throttleSpawn(e)); +}); + +function spawnSticker(e) { + var rect = e.target.getBoundingClientRect(); + let position = { x: e.clientX - rect.left, y: e.clientY - rect.top }; + let content = e.target.dataset.sticker; + e.originalTarget.appendChild(createSticker(content, position)); +} + + +function createSticker(content, position) { + sticker = document.createElement("span"); + sticker.classList.add("sticker"); + sticker.innerHTML = content; + sticker.style.left = position.x + "px"; + sticker.style.top = position.y + "px"; + + sticker.style.transform = ` + translate(-50%, -50%) + rotate(${Math.random() * 40 - 20}deg) + `; + + return sticker; +} + + +// from https://stackoverflow.com/questions/27078285/simple-throttle-in-javascript + +function throttle (callback, limit) { + var waiting = false; // Initially, we're not waiting + return function () { // We return a throttled function + if (!waiting) { // If we're not waiting + callback.apply(this, arguments); // Execute users function + waiting = true; // Prevent future invocations + setTimeout(function () { // After a period of time + waiting = false; // And allow future invocations + }, limit); + } + } +} \ No newline at end of file diff --git a/sticker.css b/sticker.css new file mode 100644 index 0000000..0f46a47 --- /dev/null +++ b/sticker.css @@ -0,0 +1,12 @@ +.sticker { + position: absolute; + user-select: none; + border: 1px solid currentColor; + border-radius: 12px; + white-space: nowrap; + background-color: white; + font-size: 18px; + padding: 0 6px; + box-shadow: 2px 2px 2px 1px rgba(0, 0, 0, 0.2); + text-decoration: none; +} diff --git a/stylesheet.css b/stylesheet.css index 8e9eb66..c4265d1 100644 --- a/stylesheet.css +++ b/stylesheet.css @@ -16,6 +16,7 @@ @import 'fonts.css'; @import 'mobile.css' screen and (max-width: 900px); +@import 'sticker.css'; body{ min-width: 720px; @@ -127,6 +128,28 @@ section#issues{ font-family: 'special-issue-14'; } +.issue#special-issue-16{ + font-family: 'special-issue-16'; +} + +#special-issue-16 .issue-title { + font-weight: bold; + font-style: italic; +} + +#special-issue-16 .issue-title { + font-weight: bold; + font-style: italic; +} + +#special-issue-16 { + position: relative; +} + +#special-issue-16 * { + position: relative; +} + /* SECTIONS: INTRO + INFO */ section#intro.endpoint,