Get those lesson notes

Swedie

Free

  • Tons of audio lessons
  • 3 vocabulary lists
  • Lesson notes and extras for the first lesson in every course

Premium

99,00 kr 49,50 kr first month

  • 15% off all ebooks and merch
  • Complete lesson archive
  • Accompanying lesson notes
  • Vocabulary lists with audio
  • Videos & Live Streams
  • Exclusive Alumni merch
  • Secret Discord chat
  • Mitoki AI × Say it in Swedish – Practice Swedish with AI scenarios and get real-time feedback
/** * Dark Mode * @version 1.0.2 * @description This script adds dark mode to your Fourthwall website. */ const useCustomScheme = false; const scheme = { mode: "dark", selectors: [":root", "#fw-section-header"], vars: { "color-primary": "#000", "color-on-primary": "#fff", "color-background": "#000", "color-on-background": "#fff", "color-product-image-background": "rgba(51, 51, 51, 0.1)", "color-primary-rgb": "0, 0, 0", "color-on-primary-rgb": "255, 255, 255", "color-background-rgb": "0, 0, 0", "color-on-background-rgb": "51, 51, 51", "color-background-brightness": "248", } }; const icons = { lightbulbOn: ``, lightbulbOff: ``, }; const toggleElement = (() => { const toggleElement = document.createElement("a"); toggleElement.id = "scheme-toggle"; toggleElement.style = "cursor: pointer;"; const listItem = document.createElement("li"); listItem.className = "header__list-item"; listItem.append(toggleElement); const section = document.querySelector(".header__icons > .header__list"); section?.append(listItem); return toggleElement; })(); const styleElement = (() => { const styleElement = document.createElement("style"); let css; if(useCustomScheme) { css = scheme.selectors.join(","); css += "{"; Object.entries(scheme.vars).map((variable) => { const [key, value] = variable; css += `--${key}: ${value};`; }); css += "}"; } else { css = "html{filter: invert(1) hue-rotate(180deg);} img{filter: invert(1) hue-rotate(180deg);}"; } styleElement.innerText = css; return styleElement; })(); const getUserMode = () => localStorage.getItem("fw_color_scheme"); const setUserMode = (scheme) => localStorage.setItem("fw_color_scheme", scheme); const toggleIcon = () => { const mode = detectScheme(); toggleElement.innerHTML = mode === "dark" ? icons.lightbulbOn : icons.lightbulbOff; } const detectScheme = () => { const defaultMode = window.matchMedia('(prefers-color-scheme: dark)').matches ? "dark" : "light"; const userMode = getUserMode(); if (userMode) { return userMode; } else { setUserMode(defaultMode); return defaultMode; } }; const toggleScheme = () => { const mode = detectScheme(); setUserMode(mode === "dark" ? "light" : "dark"); toggleIcon(); if (scheme.mode !== mode) { document.body.append(styleElement); } else { styleElement.remove(); } }; const initSchemeState = () => { const mode = detectScheme(); if(scheme.mode === mode) { toggleScheme(); } toggleElement.addEventListener("click", toggleScheme); }; initSchemeState();