diff --git a/src/js/events/message.js b/src/js/events/message.js index 50cd3b5..ad885ff 100644 --- a/src/js/events/message.js +++ b/src/js/events/message.js @@ -85,6 +85,18 @@ function postProcessElements(element) { if (color) n.style.color = color if (bgColor) n.style.backgroundColor = bgColor }) + + element.querySelectorAll("[data-mx-spoiler]").forEach(spoiler => { + spoiler.classList.add("mx-spoiler") + spoiler.setAttribute("tabindex", 0) + function toggle() { + spoiler.classList.toggle("mx-spoiler--shown") + } + spoiler.addEventListener("click", toggle) + spoiler.addEventListener("keydown", event => { + if (event.key === "Enter") toggle() + }) + }) } diff --git a/src/js/sync/sync.js b/src/js/sync/sync.js index 90c92b9..b445253 100644 --- a/src/js/sync/sync.js +++ b/src/js/sync/sync.js @@ -11,7 +11,7 @@ function sync() { room: { // pulling more from the timeline massively increases download size timeline: { - limit: 5 + limit: 1 }, // members are not currently needed state: { diff --git a/src/sass/base.sass b/src/sass/base.sass index a649cce..dfb9f7a 100644 --- a/src/sass/base.sass +++ b/src/sass/base.sass @@ -52,7 +52,7 @@ select:-moz-focusring text-shadow: 0 0 0 #ddd body.show-focus - a, select, button, input, video + a, select, button, input, video, div, span outline-color: #fff &:focus diff --git a/src/sass/components/chat-banner.sass b/src/sass/components/chat-banner.sass index ba7a94d..f17acce 100644 --- a/src/sass/components/chat-banner.sass +++ b/src/sass/components/chat-banner.sass @@ -9,9 +9,12 @@ margin-right: 12px outline-color: #000 opacity: 0 + transform: translateY(-40px) + transition: transform 0.2s ease, opacity 0.2s ease-out &--active opacity: 1 + transform: translateY(0px) &__inner display: grid diff --git a/src/sass/components/read-marker.sass b/src/sass/components/read-marker.sass index 7e45910..7e1c572 100644 --- a/src/sass/components/read-marker.sass +++ b/src/sass/components/read-marker.sass @@ -18,6 +18,9 @@ @at-root .c-message:last-child & top: 11px + @at-root .c-message-event & + top: 7px + &__text position: absolute right: -14px diff --git a/src/sass/components/spoilers.sass b/src/sass/components/spoilers.sass new file mode 100644 index 0000000..e8a1784 --- /dev/null +++ b/src/sass/components/spoilers.sass @@ -0,0 +1,8 @@ +.mx-spoiler + color: #331911 + background-color: #331911 + outline-color: #fff !important + cursor: pointer + + &--shown + color: inherit diff --git a/src/sass/main.sass b/src/sass/main.sass index 7134edf..c050148 100644 --- a/src/sass/main.sass +++ b/src/sass/main.sass @@ -10,3 +10,4 @@ @use "./components/highlighted-code" @use "./components/read-marker" @use "./components/chat-banner" +@use "./components/spoilers"