diff --git a/public/.well-known/matrix/client b/public/.well-known/matrix/client deleted file mode 100644 index 5369c59..0000000 --- a/public/.well-known/matrix/client +++ /dev/null @@ -1 +0,0 @@ -{"m.server":{"base_url":"https://matrix.functor.systems.com"},"m.homeserver":{"base_url":"https://matrix.functor.system"},"org.matrix.msc3575.proxy":{"url":"https://matrix.functor.systems"}} diff --git a/public/.well-known/matrix/server b/public/.well-known/matrix/server deleted file mode 100644 index ac2279c..0000000 --- a/public/.well-known/matrix/server +++ /dev/null @@ -1 +0,0 @@ -{"m.server":"matrix.functor.systems:443"} diff --git a/public/fonts/redaction-20-italic.woff2 b/public/fonts/redaction-20-italic.woff2 new file mode 100644 index 0000000..878d76c Binary files /dev/null and b/public/fonts/redaction-20-italic.woff2 differ diff --git a/public/fonts/redaction-italic.woff2 b/public/fonts/redaction-italic.woff2 new file mode 100644 index 0000000..e5e2643 Binary files /dev/null and b/public/fonts/redaction-italic.woff2 differ diff --git a/public/fonts/redaction.woff2 b/public/fonts/redaction.woff2 new file mode 100644 index 0000000..cb23251 Binary files /dev/null and b/public/fonts/redaction.woff2 differ diff --git a/public/leaves.png b/public/leaves.png new file mode 100644 index 0000000..cd8a236 Binary files /dev/null and b/public/leaves.png differ diff --git a/public/matrix.html b/public/matrix.html new file mode 100644 index 0000000..2272b32 --- /dev/null +++ b/public/matrix.html @@ -0,0 +1,194 @@ + + + + + + + functor.systems >> Matrix + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+ + + + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

matrix.functor.systems

+

+ A matrix homeserver operated by functor.systems. +

+

+ Matrix is an open, federated, and end-to-end encrypted messaging protocol. + matrix.functor.systems is our very + own homeserver, running the tuwunel Matrix + server implementation. +

+

+ Registration is currently restricted to friends of the functor.systems + community. However, you can make an account on any other Matrix homeserver, + and interact with any account on matrix.functor.systems without any + downside. This is what is meant when we say Matrix is federated. + The official matrix.org free public homeserver is + a good place to make your first account. +

+ + [register for an account] + [functor.systems] +
+ + + diff --git a/public/sunlit.css b/public/sunlit.css new file mode 100644 index 0000000..ed8aa55 --- /dev/null +++ b/public/sunlit.css @@ -0,0 +1,269 @@ +article { + margin: 0 auto; + max-width: 800px; + padding: 25vh 12px; + + color: var(--dark); + isolation: isolate; +} + +article a { + color: var(--dark); +} + + +body { + --day: #fffdfa; + --evening: #fccc83; + --dusk: #db7a2a; + --night: #0f131c; + --dawn: #16132b; + --morning: #9fb3bf; + + + --light: var(--day); + --dark: var(--night); + --shadow: #1a1917; + --bounce-light: #f5d7a6; + --timing-fn: cubic-bezier(0.455, 0.190, 0.000, 0.985); + + margin: 0; + padding: 0; + height: 100%; + width: 100%; + background-color: var(--light); + + animation-duration: 0s; + animation-fill-mode: forwards; + animation-timing-function: linear; +} + +body.animation-ready { + animation-play-state: running; + animation-duration: 1s; + animation-name: sunrise; +} + +body.animation-ready.dark { + animation-duration: 1.7s; + animation-name: sunset; +} + +body.dark { + --light: var(--night); + --dark: var(--day); + --shadow: #030307; + --bounce-light: #1b293f; +} + +@keyframes sunrise { + 0% { + background-color: var(--night); + } + + 10% { + background-color: var(--dawn); + } + + 35% { + background-color: var(--morning); + } + + 100% { + background-color: var(--day); + } +} + +@keyframes sunset { + 0% { + background-color: var(--day); + } + + 30% { + background-color: var(--evening); + } + + 60% { + background-color: var(--dusk); + } + + 90% { + background-color: var(--dawn); + } + + 100% { + background-color: var(--night); + } +} + +#dappled-light { + pointer-events: none; + position: fixed; + height: 100vh; + width: 100vw; +} + +#progressive-blur { + position: absolute; + height: 100%; + width: 100%; +} + +#progressive-blur>div { + position: absolute; + height: 100%; + width: 100%; + inset: 0; + backdrop-filter: blur(var(--blur-amount)); + mask-image: linear-gradient(252deg, transparent, transparent var(--stop1), black var(--stop2), black); +} + +#progressive-blur>div:nth-child(1) { + --blur-amount: 6px; + --stop1: 0%; + --stop2: 0%; +} + +#progressive-blur>div:nth-child(2) { + --blur-amount: 12px; + --stop1: 40%; + --stop2: 80%; +} + +#progressive-blur>div:nth-child(3) { + --blur-amount: 48px; + --stop1: 40%; + --stop2: 70%; +} + +#progressive-blur>div:nth-child(4) { + --blur-amount: 96px; + --stop1: 70%; + --stop2: 80%; +} + +#glow { + position: absolute; + background: linear-gradient(309deg, var(--bounce-light), var(--bounce-light) 20%, transparent); + transition: background 1.0s var(--timing-fn); + height: 100%; + width: 100%; + opacity: 0.5; +} + +#glow-bounce { + content: ""; + position: absolute; + background: linear-gradient(355deg, var(--bounce-light) 0%, transparent 30%, transparent 100%); + transition: background 1.0s var(--timing-fn); + opacity: 0.5; + height: 100%; + width: 100%; + bottom: 0; +} + +.perspective { + position: absolute; + transition: transform 1.7s var(--timing-fn), opacity 4s ease; + top: -30vh; + right: 0; + width: 80vw; + height: 130vh; + opacity: 0.07; + background-blend-mode: darken; + transform-origin: top right; + transform-style: preserve-3d; + transform: matrix3d(0.7500, -0.0625, 0.0000, 0.0008, + 0.0000, 1.0000, 0.0000, 0.0000, + 0.0000, 0.0000, 1.0000, 0.0000, + 0.0000, 0.0000, 0.0000, 1.0000); +} + +.dark .perspective { + opacity: 0.3; + transform: matrix3d(0.8333, 0.0833, 0.0000, 0.0003, + 0.0000, 1.0000, 0.0000, 0.0000, + 0.0000, 0.0000, 1.0000, 0.0000, + 0.0000, 0.0000, 0.0000, 1.0000); +} + +#leaves { + position: absolute; + background-size: cover; + background-repeat: no-repeat; + bottom: -20px; + right: -700px; + width: 1600px; + height: 1400px; + background-image: url("./leaves.png"); + filter: url(#wind); + animation: billow 8s ease-in-out infinite; +} + +#blinds { + position: relative; + width: 100%; +} + +#blinds .shutter, +#blinds .bar { + background-color: var(--shadow); +} + +#blinds>.shutters { + display: flex; + flex-direction: column; + align-items: end; + gap: 60px; + transition: gap 1.0s var(--timing-fn); +} + +.dark #blinds>.shutters { + gap: 20px; +} + +#blinds>.vertical { + top: 0; + position: absolute; + height: 100%; + width: 100%; + display: flex; + justify-content: space-around; +} + +.vertical>.bar { + width: 5; + height: 100%; +} + +.shutter { + width: 100%; + height: 40px; + transition: height 1.0s var(--timing-fn); +} + +.dark .shutter { + height: 80px; +} + +@keyframes billow { + 0% { + transform: perspective(400px) rotateX(0deg) rotateY(0deg) scale(1); + } + + 25% { + transform: perspective(400px) rotateX(1deg) rotateY(2deg) scale(1.02); + } + + 50% { + transform: perspective(400px) rotateX(-4deg) rotateY(-2deg) scale(0.97); + } + + 75% { + transform: perspective(400px) rotateX(1deg) rotateY(-1deg) scale(1.04); + } + + 100% { + transform: perspective(400px) rotateX(0deg) rotateY(0deg) scale(1); + } +}