diff --git a/components/boardMemberCard.jsx b/components/boardMemberCard.jsx index 1df87de0d4f3ef557cb6df3413731382c01fff9f..a5a6c3fe586fb6725b43d3d2ca5aa3e04727bb73 100644 --- a/components/boardMemberCard.jsx +++ b/components/boardMemberCard.jsx @@ -4,6 +4,8 @@ import { Avatar, Button, Paper, Text, useMantineTheme } from "@mantine/core"; import { Icon, ICONS } from "vseth-canine-ui"; +import { getAccentColor } from "../utilities/colors"; + export default function BoardMemberCard({ entry }) { const theme = useMantineTheme(); const { locale } = useRouter(); @@ -36,7 +38,9 @@ export default function BoardMemberCard({ entry }) { <div> <a href={"mailto:" + entry.mail} style={{ textDecoration: "none" }}> <Button - leftIcon={<Icon icon={ICONS.EMAIL} color="black" />} + leftIcon={ + <Icon icon={ICONS.EMAIL} color={getAccentColor(theme)} /> + } variant="default" fullWidth mt="md" diff --git a/components/header.jsx b/components/header.jsx index d395666b3e1841a88203819e519d36525ebc9f1c..9a92477ea95248d537e7d451dfcecb60fdf49833 100644 --- a/components/header.jsx +++ b/components/header.jsx @@ -1,7 +1,13 @@ import { useRouter } from "next/router"; import Image from "next/image"; -import { ActionIcon, Grid, MediaQuery, Space } from "@mantine/core"; +import { + ActionIcon, + Grid, + MediaQuery, + Space, + useMantineTheme, +} from "@mantine/core"; import { Icon, ICONS } from "vseth-canine-ui"; @@ -14,6 +20,7 @@ import tux from "../public/images/tux.png"; export default function Header() { const { locale } = useRouter(); + const theme = useMantineTheme(); return ( <div @@ -28,7 +35,11 @@ export default function Header() { <Grid.Col xs={12} md={6}> <div> <Image - src="/images/logo.svg" + src={ + theme.colorScheme === "dark" + ? "https://static.vseth.ethz.ch/assets/vseth-0522-thealt/logo-inv.svg" + : "/images/logo.svg" + } width={0} height={0} sizes="100vw" @@ -63,7 +74,7 @@ export default function Header() { style={{ marginLeft: "auto", marginRight: "auto" }} size="3rem" > - <Icon icon={ICONS.DOWN} color={getAccentColor()} size="2rem" /> + <Icon icon={ICONS.DOWN} color={getAccentColor(theme)} size="2rem" /> </ActionIcon> </a> </div> diff --git a/components/loginButton.jsx b/components/loginButton.jsx index 6b6603407e3bae68ab0f0aa81a1fcf2a44b16ae0..56b5845495726e620b583759608d6a0533bdc1c1 100644 --- a/components/loginButton.jsx +++ b/components/loginButton.jsx @@ -4,6 +4,8 @@ import { Button, useMantineTheme } from "@mantine/core"; import { Icon, ICONS } from "vseth-canine-ui"; +import { getAccentColor } from "../utilities/colors"; + const LoginButton = () => { const { data: session } = useSession(); const theme = useMantineTheme(); @@ -11,7 +13,7 @@ const LoginButton = () => { if (session) { return ( <Button - leftIcon={<Icon icon={ICONS.LEAVE} color="#4f2a17" />} + leftIcon={<Icon icon={ICONS.LEAVE} color={getAccentColor(theme)} />} variant="light" onClick={() => signOut()} > diff --git a/components/map.jsx b/components/map.jsx index 7882fcfcc2838088c76231948473d053f5225e60..5cb5680c062cee442d25127627c4320558e9f4b3 100644 --- a/components/map.jsx +++ b/components/map.jsx @@ -99,9 +99,11 @@ export default function OfficeMap() { marginBottom: "10px", }} > - <b>TheAlternative</b> + <b style={{ color: "black" }}>TheAlternative</b> {about.address.map((line, i) => ( - <p key={i}>{line}</p> + <p key={i} style={{ color: "black" }}> + {line} + </p> ))} </div> </Box> diff --git a/components/navbar.jsx b/components/navbar.jsx index 9b60ba0b1e5b2383423bf837406364b0831e17c1..4982547eafa928492df3865f60529f9f925afcb2 100644 --- a/components/navbar.jsx +++ b/components/navbar.jsx @@ -1,10 +1,11 @@ -import React, { ReactNode, useState } from "react"; +import React, { ReactNode, useState, useEffect } from "react"; import Link from "next/link"; import { useRouter } from "next/router"; import { useTranslation } from "next-i18next"; import { useSession } from "next-auth/react"; +import { ColorSchemeProvider, Group, MediaQuery } from "@mantine/core"; import { NotificationsProvider } from "@mantine/notifications"; import { ApolloProvider } from "@apollo/client"; @@ -20,6 +21,7 @@ import { import hasAccess from "../utilities/hasAccess"; import LoginButton from "../components/loginButton"; +import ThemeSwitcher from "../components/themeSwitcher"; export default function Navbar(props) { const router = useRouter(); @@ -30,6 +32,11 @@ export default function Navbar(props) { const theme = makeVsethTheme(); const [selectedLanguage, setSelectedLanguage] = React.useState(locale); + const [colorScheme, setColorScheme] = useState("dark"); + const toggleColorScheme = (value) => + setColorScheme(value || (colorScheme === "dark" ? "light" : "dark")); + theme.colorScheme = colorScheme; + /* * VSETH Colors: See https://s.aschoch.ch/canine-colors * theme.colors.vsethMain[7] is #009fe3 (cyan) @@ -52,6 +59,23 @@ export default function Navbar(props) { "#f28a20", ]; + // NOTE: This is a hack, as colors are hardcoded in vseth-canine + useEffect(() => { + const footerDiv = document.querySelector("footer>div"); + const footerLogo = document.querySelector("footer img"); + const selectItems = document.querySelector("header a"); + + if (colorScheme == "dark") { + footerDiv.classList.add("vseth-footer-dark"); + footerLogo.classList.add("vseth-logo-dark"); + if (selectItems) selectItems.classList.add("vseth-text-dark"); + } else { + footerDiv.classList.remove("vseth-footer-dark"); + footerLogo.classList.remove("vseth-logo-dark"); + if (selectItems) selectItems.classList.remove("vseth-text-dark"); + } + }, [colorScheme]); + const { data } = useConfig( "https://static.vseth.ethz.ch/assets/vseth-0522-thealt/config.json" ); @@ -73,44 +97,73 @@ export default function Navbar(props) { return ( <React.StrictMode> - <VSETHThemeProvider theme={theme}> - <VSETHExternalApp - selectedLanguage={selectedLanguage} - onLanguageSelect={(lang) => { - setSelectedLanguage(lang); - router.push({ pathname, query }, asPath, { locale: lang }); - }} - languages={data?.languages} - title={"TheAlternative"} - appNav={customDemoNav} - organizationNav={data.externalNav} - makeWrapper={(url, child) => ( - <Link - href={url} - style={{ textDecoration: "none", color: "inherit" }} - > - {child} - </Link> - )} - privacyPolicy={data?.privacy} - disclaimer={data?.copyright} - //activeHref is the current active url path. Required to style the active page in the Nav - activeHref={"/"} - socialMedia={data?.socialMedia} - logo={ - "https://static.vseth.ethz.ch/assets/vseth-0522-thealt/logo-inv.svg" - } - loginButton={<LoginButton />} - signet={ - "https://static.vseth.ethz.ch/assets/vseth-0522-thealt/signet-inv.svg" - } - size="xl" - > - <ApolloProvider client={apolloClient}> - <NotificationsProvider>{props.children}</NotificationsProvider> - </ApolloProvider> - </VSETHExternalApp> - </VSETHThemeProvider> + <ColorSchemeProvider + colorScheme={colorScheme} + toggleColorScheme={toggleColorScheme} + > + <VSETHThemeProvider theme={theme}> + <VSETHExternalApp + selectedLanguage={selectedLanguage} + onLanguageSelect={(lang) => { + setSelectedLanguage(lang); + router.push({ pathname, query }, asPath, { locale: lang }); + }} + languages={data?.languages} + title={"TheAlternative"} + appNav={customDemoNav} + organizationNav={data.externalNav} + makeWrapper={(url, child) => ( + <> + <MediaQuery smallerThan="md" styles={{ display: "none" }}> + <Link + href={url} + style={{ + textDecoration: "none", + color: + theme.colorScheme == "light" ? "#333333b3" : "#C1C2C5", + }} + > + {child} + </Link> + </MediaQuery> + <MediaQuery largerThan="md" styles={{ display: "none" }}> + <Link + href={url} + style={{ + textDecoration: "none", + color: "#C1C2C5", + }} + > + {child} + </Link> + </MediaQuery> + </> + )} + privacyPolicy={data?.privacy} + disclaimer={data?.copyright} + //activeHref is the current active url path. Required to style the active page in the Nav + activeHref={"/"} + socialMedia={data?.socialMedia} + logo={ + "https://static.vseth.ethz.ch/assets/vseth-0522-thealt/logo-inv.svg" + } + loginButton={ + <Group> + <ThemeSwitcher /> + <LoginButton /> + </Group> + } + signet={ + "https://static.vseth.ethz.ch/assets/vseth-0522-thealt/signet-inv.svg" + } + size="xl" + > + <ApolloProvider client={apolloClient}> + <NotificationsProvider>{props.children}</NotificationsProvider> + </ApolloProvider> + </VSETHExternalApp> + </VSETHThemeProvider> + </ColorSchemeProvider> </React.StrictMode> ); } diff --git a/components/themeSwitcher.jsx b/components/themeSwitcher.jsx new file mode 100644 index 0000000000000000000000000000000000000000..ed29c7e465d807aeae9cdd8a94df160091138dbe --- /dev/null +++ b/components/themeSwitcher.jsx @@ -0,0 +1,28 @@ +import { Switch, useMantineTheme, useMantineColorScheme } from "@mantine/core"; + +import { Icon, ICONS } from "vseth-canine-ui"; + +export default function ThemeSwitcher() { + const theme = useMantineTheme(); + const { colorScheme, toggleColorScheme } = useMantineColorScheme(); + const dark = colorScheme === "dark"; + + return ( + <Switch + size="md" + color="vsethMain" + offLabel={ + <Icon + icon={ICONS.SUN} + size={16} + color={theme.colors[theme.primaryColor][theme.primaryShade]} + /> + } + onLabel={<Icon icon={ICONS.MOON} size={16} color="#ffffff" />} + checked={dark} + onChange={() => { + toggleColorScheme(); + }} + /> + ); +} diff --git a/public/images/vseth-inv.svg b/public/images/vseth-inv.svg new file mode 100755 index 0000000000000000000000000000000000000000..a0f302df6c2e77c18f75fe833434d20f11ff2d5e --- /dev/null +++ b/public/images/vseth-inv.svg @@ -0,0 +1,140 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg + width="344.50601" + height="64.655998" + viewBox="0 0 344.50601 64.655998" + version="1.1" + xml:space="preserve" + style="clip-rule:evenodd;fill-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421" + id="svg45" + sodipodi:docname="vseth-inv.svg" + inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><defs + id="defs45" /><sodipodi:namedview + id="namedview45" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:zoom="1.4931818" + inkscape:cx="173.12025" + inkscape:cy="37.838661" + inkscape:window-width="1920" + inkscape:window-height="1011" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g45" /><g + id="g45" + transform="translate(-46.646,-40.293)"><path + d="m 175.77,70.484 c -1.219,-2.697 -3.741,-4.697 -7.571,-4.697 -3.828,0 -6.349,2 -7.568,4.697 -0.695,1.654 -0.957,2.871 -1.045,4.873 h 17.228 c -0.087,-2.002 -0.349,-3.219 -1.044,-4.873 z m -16.184,12.615 c 0,5.83 3.568,10.094 9.92,10.094 4.959,0 7.394,-1.393 10.265,-4.264 l 6.874,6.7 c -4.612,4.611 -9.047,7.134 -17.227,7.134 -10.701,0 -20.969,-4.873 -20.969,-23.23 0,-14.791 8.006,-23.143 19.75,-23.143 12.617,0 19.75,9.223 19.75,21.664 v 5.045 z" + style="fill:#ffffff;fill-rule:nonzero" + id="path1" /><path + d="m 212.568,102.242 c -9.222,0 -13.138,-6.525 -13.138,-12.965 V 66.83 h -4.785 v -8.613 h 4.785 V 44.818 h 11.31 v 13.399 h 8.006 v 8.613 h -8.006 v 21.752 c 0,2.609 1.219,4.09 3.916,4.09 h 4.09 v 9.57 z" + style="fill:#ffffff;fill-rule:nonzero" + id="path2" /><path + d="M 255.023,102.242 V 74.574 c 0,-6.004 -3.828,-8.004 -7.394,-8.004 -3.569,0 -7.309,2.088 -7.309,8.004 v 27.668 H 229.01 V 40.293 h 11.31 v 20.795 c 3.045,-3.133 6.873,-4.698 10.875,-4.698 9.918,0 15.139,6.959 15.139,16.53 v 29.322 z" + style="fill:#ffffff;fill-rule:nonzero" + id="path3" /><path + d="M 71.929,100.839 H 63.156 L 46.646,56.035 h 11.781 l 9.115,27.691 9.03,-27.691 h 11.782 z" + style="fill:#ffffff;fill-rule:nonzero" + id="path4" /><path + d="m 115.763,51.367 c -14.774,0 -26.794,12.11 -26.794,26.996 0,12.459 8.422,22.968 19.831,26.066 v -0.047 c 1.611,0.391 3.347,0.567 5.068,0.567 3.65,0 7.234,-0.791 9.4,-1.999 3.405,-1.9 5.704,-4.468 6.832,-7.635 1.208,-3.393 1.083,-6.737 -0.376,-9.937 -0.764,-1.668 -1.971,-3.376 -3.594,-5.079 l -3.399,-3.557 c -3.402,-3.553 -4.615,-5.223 -5.048,-6.022 -0.497,-0.88 -0.991,-2.206 -0.526,-3.513 0.26,-0.732 1.045,-2.111 3.381,-3.139 1.365,-0.6 2.113,-0.723 2.414,-0.745 l 0.754,-2.944 c -4.119,-1.227 -12.647,-1.104 -16.506,7.928 -1.139,2.659 -1.191,5.556 -0.156,8.377 0.912,2.49 2.851,5.272 5.93,8.503 l 2.931,3.084 c 2.131,2.227 2.916,3.363 3.195,3.917 0.538,1.081 0.575,2.234 0.116,3.527 -0.426,1.193 -1.045,1.937 -2.209,2.652 -0.647,0.396 -4.106,2.304 -8.848,0.935 v 10e-4 C 99.385,96.175 93.098,87.815 93.098,77.968 c 0,-12.517 10.147,-22.664 22.665,-22.664 12.517,0 22.664,10.147 22.664,22.664 0,4.342 -1.223,8.397 -3.34,11.844 l 3.107,3.291 c 2.755,-4.242 4.364,-9.303 4.364,-14.74 0,-14.886 -12.021,-26.996 -26.795,-26.996 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path5" /><path + d="m 295.412,57.294 h -1.881 l -2.706,8.547 -2.706,-8.547 h -1.848 l 3.861,11.748 h 1.386 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path16" /><path + d="m 303.609,65.346 v -0.743 c 0,-2.376 -1.303,-4.026 -3.547,-4.026 -2.145,0 -3.548,1.568 -3.548,4.274 0,3.184 1.667,4.29 3.762,4.29 1.469,0 2.277,-0.446 3.135,-1.304 l -1.072,-1.006 c -0.594,0.594 -1.089,0.858 -2.03,0.858 -1.369,0 -2.128,-0.908 -2.128,-2.343 z m -1.666,-1.172 h -3.762 c 0.016,-0.511 0.049,-0.759 0.214,-1.138 0.264,-0.627 0.875,-1.056 1.667,-1.056 0.792,0 1.386,0.429 1.65,1.056 0.165,0.379 0.214,0.627 0.231,1.138 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path17" /><path + d="m 312.28,61.369 c -0.578,-0.577 -1.188,-0.792 -1.997,-0.792 -0.94,0 -1.798,0.413 -2.227,1.007 v -0.908 h -1.65 v 8.366 h 1.683 V 63.96 c 0,-1.155 0.759,-1.881 1.666,-1.881 0.578,0 0.875,0.181 1.254,0.561 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path18" /><path + d="m 321.385,64.851 c 0,-1.271 -0.099,-2.69 -0.941,-3.531 -0.462,-0.462 -1.188,-0.743 -2.029,-0.743 -0.891,0 -1.584,0.215 -2.195,0.941 v -4.224 h -1.683 v 11.748 h 1.65 v -0.891 c 0.627,0.759 1.304,0.99 2.211,0.99 0.842,0 1.584,-0.281 2.046,-0.743 0.842,-0.841 0.941,-2.277 0.941,-3.547 z m -1.683,0 c 0,1.485 -0.215,2.788 -1.733,2.788 -1.518,0 -1.749,-1.303 -1.749,-2.788 0,-1.485 0.231,-2.772 1.749,-2.772 1.518,0 1.733,1.287 1.733,2.772 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path19" /><path + d="m 330.537,69.042 v -5.594 c 0,-1.897 -1.155,-2.871 -3.449,-2.871 -1.386,0 -2.211,0.281 -3.003,1.205 l 1.106,1.039 c 0.462,-0.594 0.907,-0.808 1.831,-0.808 1.304,0 1.832,0.511 1.832,1.567 v 0.594 h -2.211 c -1.914,0 -2.888,1.007 -2.888,2.409 0,0.71 0.231,1.353 0.66,1.799 0.512,0.511 1.205,0.759 2.244,0.759 1.04,0 1.617,-0.248 2.228,-0.858 v 0.759 z m -1.683,-3.02 c 0,0.594 -0.116,0.99 -0.363,1.238 -0.446,0.429 -0.924,0.478 -1.568,0.478 -1.056,0 -1.534,-0.429 -1.534,-1.188 0,-0.759 0.511,-1.204 1.501,-1.204 h 1.964 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path20" /><path + d="m 340.469,69.042 v -5.346 c 0,-0.941 -0.198,-1.733 -0.842,-2.36 -0.495,-0.478 -1.204,-0.759 -2.062,-0.759 -0.842,0 -1.65,0.314 -2.228,0.941 v -0.842 h -1.65 v 8.366 h 1.683 v -5.099 c 0,-1.287 0.792,-1.864 1.733,-1.864 0.94,0 1.683,0.561 1.683,1.864 v 5.099 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path21" /><path + d="M 350.143,69.042 V 57.294 h -1.683 v 4.224 c -0.611,-0.726 -1.304,-0.941 -2.195,-0.941 -0.841,0 -1.567,0.281 -2.029,0.743 -0.842,0.841 -0.941,2.26 -0.941,3.531 0,1.27 0.099,2.706 0.941,3.547 0.462,0.462 1.204,0.743 2.046,0.743 0.907,0 1.584,-0.231 2.211,-0.99 v 0.891 z m -1.683,-4.191 c 0,1.485 -0.215,2.788 -1.733,2.788 -1.518,0 -1.749,-1.303 -1.749,-2.788 0,-1.485 0.231,-2.772 1.749,-2.772 1.518,0 1.733,1.287 1.733,2.772 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path22" /><path + d="M 364.547,69.042 V 57.294 h -1.683 v 4.224 c -0.611,-0.726 -1.304,-0.941 -2.195,-0.941 -0.841,0 -1.567,0.281 -2.029,0.743 -0.842,0.841 -0.941,2.26 -0.941,3.531 0,1.27 0.099,2.706 0.941,3.547 0.462,0.462 1.204,0.743 2.046,0.743 0.907,0 1.584,-0.231 2.211,-0.99 v 0.891 z m -1.683,-4.191 c 0,1.485 -0.215,2.788 -1.733,2.788 -1.518,0 -1.749,-1.303 -1.749,-2.788 0,-1.485 0.231,-2.772 1.749,-2.772 1.518,0 1.733,1.287 1.733,2.772 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path23" /><path + d="m 374.47,65.346 v -0.743 c 0,-2.376 -1.303,-4.026 -3.547,-4.026 -2.145,0 -3.548,1.568 -3.548,4.274 0,3.184 1.667,4.29 3.762,4.29 1.469,0 2.277,-0.446 3.135,-1.304 L 373.2,66.831 c -0.594,0.594 -1.089,0.858 -2.03,0.858 -1.369,0 -2.128,-0.908 -2.128,-2.343 z m -1.666,-1.172 h -3.762 c 0.016,-0.511 0.049,-0.759 0.214,-1.138 0.264,-0.627 0.875,-1.056 1.667,-1.056 0.792,0 1.386,0.429 1.65,1.056 0.165,0.379 0.214,0.627 0.231,1.138 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path24" /><path + d="m 383.141,61.369 c -0.578,-0.577 -1.188,-0.792 -1.997,-0.792 -0.94,0 -1.798,0.413 -2.227,1.007 v -0.908 h -1.65 v 8.366 h 1.683 V 63.96 c 0,-1.155 0.759,-1.881 1.666,-1.881 0.578,0 0.875,0.181 1.254,0.561 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path25" /><path + d="m 295.066,82.692 c 0,-1.006 -0.314,-1.848 -0.957,-2.409 -0.495,-0.445 -1.106,-0.709 -2.195,-0.874 l -1.336,-0.198 c -0.545,-0.083 -1.023,-0.281 -1.32,-0.545 -0.314,-0.28 -0.446,-0.66 -0.446,-1.089 0,-1.039 0.759,-1.831 2.145,-1.831 0.99,0 1.832,0.214 2.558,0.907 l 1.138,-1.122 c -1.006,-0.94 -2.095,-1.336 -3.646,-1.336 -2.442,0 -3.927,1.402 -3.927,3.448 0,0.957 0.28,1.7 0.858,2.244 0.511,0.479 1.27,0.809 2.227,0.941 l 1.386,0.198 c 0.693,0.099 0.99,0.214 1.287,0.495 0.314,0.28 0.462,0.709 0.462,1.221 0,1.138 -0.891,1.798 -2.425,1.798 -1.205,0 -2.145,-0.264 -3.003,-1.122 l -1.188,1.172 c 1.122,1.138 2.392,1.551 4.158,1.551 2.458,0 4.224,-1.287 4.224,-3.449 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path26" /><path + d="m 301.195,86.042 v -1.436 h -0.693 c -0.627,0 -0.924,-0.363 -0.924,-0.973 v -4.521 h 1.617 v -1.287 h -1.617 v -2.541 h -1.683 v 2.541 h -0.957 v 1.287 h 0.957 v 4.603 c 0,1.205 0.726,2.327 2.293,2.327 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path27" /><path + d="m 310.569,86.042 v -8.366 h -1.683 v 5.099 c 0,1.287 -0.792,1.864 -1.733,1.864 -0.94,0 -1.683,-0.561 -1.683,-1.864 v -5.099 h -1.683 v 5.346 c 0,0.941 0.198,1.733 0.842,2.36 0.495,0.478 1.204,0.759 2.062,0.759 0.842,0 1.65,-0.314 2.228,-0.941 v 0.842 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path28" /><path + d="M 320.324,86.042 V 74.294 h -1.683 v 4.224 c -0.611,-0.726 -1.304,-0.941 -2.195,-0.941 -0.841,0 -1.567,0.281 -2.029,0.743 -0.842,0.841 -0.941,2.26 -0.941,3.531 0,1.27 0.099,2.706 0.941,3.547 0.462,0.462 1.204,0.743 2.046,0.743 0.907,0 1.584,-0.231 2.211,-0.99 v 0.891 z m -1.683,-4.191 c 0,1.485 -0.215,2.788 -1.733,2.788 -1.518,0 -1.749,-1.303 -1.749,-2.788 0,-1.485 0.231,-2.772 1.749,-2.772 1.518,0 1.733,1.287 1.733,2.772 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path29" /><path + d="m 325.214,86.042 v -8.366 h -1.683 v 8.366 z m 0.05,-10.016 v -1.782 h -1.782 v 1.782 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path30" /><path + d="m 335.096,82.346 v -0.743 c 0,-2.376 -1.303,-4.026 -3.547,-4.026 -2.145,0 -3.548,1.568 -3.548,4.274 0,3.184 1.667,4.29 3.762,4.29 1.469,0 2.277,-0.446 3.135,-1.304 l -1.072,-1.006 c -0.594,0.594 -1.089,0.858 -2.03,0.858 -1.369,0 -2.128,-0.908 -2.128,-2.343 z m -1.666,-1.172 h -3.762 c 0.016,-0.511 0.049,-0.759 0.214,-1.138 0.264,-0.627 0.875,-1.056 1.667,-1.056 0.792,0 1.386,0.429 1.65,1.056 0.165,0.379 0.214,0.627 0.231,1.138 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path31" /><path + d="m 343.767,78.369 c -0.578,-0.577 -1.188,-0.792 -1.997,-0.792 -0.94,0 -1.798,0.413 -2.227,1.007 v -0.908 h -1.65 v 8.366 h 1.683 V 80.96 c 0,-1.155 0.759,-1.881 1.666,-1.881 0.578,0 0.875,0.181 1.254,0.561 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path32" /><path + d="m 352.4,82.346 v -0.743 c 0,-2.376 -1.304,-4.026 -3.548,-4.026 -2.145,0 -3.547,1.568 -3.547,4.274 0,3.184 1.666,4.29 3.762,4.29 1.468,0 2.277,-0.446 3.135,-1.304 l -1.073,-1.006 c -0.594,0.594 -1.089,0.858 -2.029,0.858 -1.37,0 -2.129,-0.908 -2.129,-2.343 z m -1.667,-1.172 h -3.762 c 0.017,-0.511 0.05,-0.759 0.215,-1.138 0.264,-0.627 0.874,-1.056 1.666,-1.056 0.792,0 1.386,0.429 1.65,1.056 0.165,0.379 0.215,0.627 0.231,1.138 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path33" /><path + d="m 361.978,86.042 v -5.346 c 0,-0.941 -0.198,-1.733 -0.842,-2.36 -0.495,-0.478 -1.204,-0.759 -2.062,-0.759 -0.842,0 -1.65,0.314 -2.228,0.941 v -0.842 h -1.65 v 8.366 h 1.683 v -5.099 c 0,-1.287 0.792,-1.864 1.733,-1.864 0.94,0 1.683,0.561 1.683,1.864 v 5.099 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path34" /><path + d="M 371.651,86.042 V 74.294 h -1.683 v 4.224 c -0.61,-0.726 -1.303,-0.941 -2.194,-0.941 -0.842,0 -1.568,0.281 -2.03,0.743 -0.841,0.841 -0.94,2.26 -0.94,3.531 0,1.27 0.099,2.706 0.94,3.547 0.462,0.462 1.205,0.743 2.046,0.743 0.908,0 1.584,-0.231 2.211,-0.99 v 0.891 z m -1.683,-4.191 c 0,1.485 -0.214,2.788 -1.732,2.788 -1.518,0 -1.749,-1.303 -1.749,-2.788 0,-1.485 0.231,-2.772 1.749,-2.772 1.518,0 1.732,1.287 1.732,2.772 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path35" /><path + d="m 381.574,82.346 v -0.743 c 0,-2.376 -1.303,-4.026 -3.547,-4.026 -2.145,0 -3.548,1.568 -3.548,4.274 0,3.184 1.667,4.29 3.762,4.29 1.469,0 2.277,-0.446 3.135,-1.304 l -1.072,-1.006 c -0.594,0.594 -1.089,0.858 -2.03,0.858 -1.369,0 -2.128,-0.908 -2.128,-2.343 z m -1.666,-1.172 h -3.762 c 0.016,-0.511 0.049,-0.759 0.214,-1.138 0.264,-0.627 0.875,-1.056 1.667,-1.056 0.792,0 1.386,0.429 1.65,1.056 0.165,0.379 0.214,0.627 0.231,1.138 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path36" /><path + d="m 391.152,86.042 v -5.346 c 0,-0.941 -0.198,-1.733 -0.841,-2.36 -0.495,-0.478 -1.205,-0.759 -2.063,-0.759 -0.841,0 -1.65,0.314 -2.227,0.941 v -0.842 h -1.65 v 8.366 h 1.683 v -5.099 c 0,-1.287 0.792,-1.864 1.732,-1.864 0.941,0 1.683,0.561 1.683,1.864 v 5.099 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path37" /><path + d="m 293.68,102.041 v -5.593 c 0,-1.898 -1.155,-2.871 -3.449,-2.871 -1.386,0 -2.211,0.28 -3.003,1.204 l 1.106,1.04 c 0.462,-0.594 0.907,-0.809 1.831,-0.809 1.304,0 1.832,0.512 1.832,1.568 v 0.594 h -2.211 c -1.914,0 -2.888,1.006 -2.888,2.409 0,0.709 0.231,1.353 0.66,1.798 0.512,0.512 1.205,0.759 2.244,0.759 1.04,0 1.617,-0.247 2.228,-0.858 v 0.759 z m -1.683,-3.019 c 0,0.594 -0.116,0.99 -0.363,1.237 -0.446,0.429 -0.924,0.479 -1.568,0.479 -1.056,0 -1.534,-0.429 -1.534,-1.188 0,-0.759 0.511,-1.205 1.501,-1.205 h 1.964 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path38" /><path + d="m 303.611,102.042 v -5.346 c 0,-0.941 -0.198,-1.733 -0.841,-2.36 -0.495,-0.478 -1.205,-0.759 -2.063,-0.759 -0.841,0 -1.65,0.314 -2.227,0.941 v -0.842 h -1.65 v 8.366 h 1.683 v -5.099 c 0,-1.287 0.792,-1.864 1.732,-1.864 0.941,0 1.683,0.561 1.683,1.864 v 5.099 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path39" /><path + d="M 317.933,102.042 V 90.294 h -1.683 v 4.224 c -0.61,-0.726 -1.303,-0.941 -2.194,-0.941 -0.842,0 -1.568,0.281 -2.03,0.743 -0.841,0.841 -0.94,2.26 -0.94,3.531 0,1.27 0.099,2.706 0.94,3.547 0.462,0.462 1.205,0.743 2.046,0.743 0.908,0 1.584,-0.231 2.211,-0.99 v 0.891 z m -1.683,-4.191 c 0,1.485 -0.214,2.788 -1.732,2.788 -1.518,0 -1.749,-1.303 -1.749,-2.788 0,-1.485 0.231,-2.772 1.749,-2.772 1.518,0 1.732,1.287 1.732,2.772 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path40" /><path + d="m 327.856,98.346 v -0.743 c 0,-2.376 -1.303,-4.026 -3.547,-4.026 -2.145,0 -3.548,1.568 -3.548,4.274 0,3.184 1.667,4.29 3.762,4.29 1.469,0 2.277,-0.446 3.135,-1.304 l -1.072,-1.006 c -0.594,0.594 -1.089,0.858 -2.03,0.858 -1.369,0 -2.128,-0.908 -2.128,-2.343 z m -1.666,-1.172 h -3.762 c 0.016,-0.511 0.049,-0.759 0.214,-1.138 0.264,-0.627 0.875,-1.056 1.667,-1.056 0.792,0 1.386,0.429 1.65,1.056 0.165,0.379 0.214,0.627 0.231,1.138 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path41" /><path + d="m 336.526,94.369 c -0.577,-0.577 -1.188,-0.792 -1.996,-0.792 -0.941,0 -1.799,0.413 -2.228,1.007 v -0.908 h -1.65 v 8.366 h 1.683 V 96.96 c 0,-1.155 0.759,-1.881 1.667,-1.881 0.577,0 0.874,0.181 1.254,0.561 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path42" /><path + d="m 350.881,102.042 v -1.601 h -5.725 V 96.91 h 4.884 v -1.584 h -4.884 v -3.432 h 5.725 v -1.6 h -7.507 v 11.748 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path43" /><path + d="m 361.537,91.894 v -1.6 h -8.25 v 1.6 h 3.234 v 10.148 h 1.782 V 91.894 Z" + style="fill:#009fe3;fill-rule:nonzero" + id="path44" /><path + d="M 372.585,102.042 V 90.294 h -1.782 v 5.016 h -4.768 v -5.016 h -1.782 v 11.748 h 1.782 V 96.91 h 4.768 v 5.132 z" + style="fill:#009fe3;fill-rule:nonzero" + id="path45" /></g></svg> diff --git a/styles/globals.css b/styles/globals.css index e6ebb2c04931bfc1d9ae045a5feba26bc72ba39a..35dcb789f2118b157aaf9130923b334428d34840 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -125,6 +125,7 @@ body { .ol-attribution { background-color: white; opacity: 0.8; + color: black; } .header-section-number { @@ -144,3 +145,15 @@ body { .bash-guide p>code { color: #888888; } + +.vseth-footer-dark { + background-color: #1A1B1E !important; +} + +.vseth-logo-dark { + content: url("/images/vseth-inv.svg"); +} + +.mantine-wvcbqp { + color: inherit !important; +} diff --git a/utilities/colors.js b/utilities/colors.js index 4b9b410b2ceb2a9e714109edc86cbb6fd20f4c3c..0a08ce9cc9177dbf1c737155584dd666ef6b0323 100644 --- a/utilities/colors.js +++ b/utilities/colors.js @@ -1,3 +1,3 @@ -export function getAccentColor() { - return "#244471"; +export function getAccentColor(theme) { + return theme.colorScheme === "dark" ? "white" : "#244471"; }