diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php
index 22289cad828c7a27ab621c1c9282239cdd9944cf..025be641dc3dff49d37d850274e470679da031fd 100644
--- a/app/Http/Controllers/MetaGerSearch.php
+++ b/app/Http/Controllers/MetaGerSearch.php
@@ -76,10 +76,21 @@ class MetaGerSearch extends Controller
             return response($responseContent);
         }
 
+        $quicktips = $metager->createQuicktips();
+        if (!empty($timings)) {
+            $timings["createQuicktips"] = microtime(true) - $time;
+        }
+
         # Suche für alle zu verwendenden Suchmaschinen als Job erstellen,
         # auf Ergebnisse warten und die Ergebnisse laden
         $metager->createSearchEngines($request, $timings);
 
+        # Versuchen die Ergebnisse der Quicktips zu laden
+        $quicktipResults = $quicktips->loadResults();
+        if (!empty($timings)) {
+            $timings["loadResults"] = microtime(true) - $time;
+        }
+
         $metager->startSearch($timings);
 
         $metager->waitForMainResults();
@@ -128,7 +139,7 @@ class MetaGerSearch extends Controller
         }
 
         # Die Ausgabe erstellen:
-        $resultpage = $metager->createView();
+        $resultpage = $metager->createView($quicktipResults);
         if ($spamEntry !== null) {
             try {
                 Cache::put('spam.' . $metager->getFokus() . "." . md5($spamEntry), $resultpage->render(), 604800);
diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php
index 0d0d52f7540da82bf734e811bf07c26db89bcb58..03b6629eb018cc996e9a76f2feee5cfde7fdb0fb 100644
--- a/app/Http/Controllers/SettingsController.php
+++ b/app/Http/Controllers/SettingsController.php
@@ -56,7 +56,7 @@ class SettingsController extends Controller
         $cookies = Cookie::get();
         $settingActive = false;
         foreach ($cookies as $key => $value) {
-            if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"]) || strpos($key, $fokus . '_blpage') === 0) {
+            if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"]) || strpos($key, $fokus . '_blpage') === 0 || $key === 'dark_mode') {
                 $settingActive = true;
             }
         }
@@ -209,23 +209,32 @@ class SettingsController extends Controller
         $fokus = $request->input('fokus', '');
         $url = $request->input('url', '');
         // Currently only the setting for quotes is supported
+
         $quotes = $request->input('zitate', '');
-        if (empty($fokus) || empty($quotes)) {
-            abort(404);
+        if(!empty($quotes)){
+            if($quotes === "off"){
+                $path = \Request::path();
+                $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+                Cookie::queue($fokus . "_setting_zitate", "off", 0, $cookiePath, null, false, false);
+            }elseif($quotes === "on") {
+                $path = \Request::path();
+                $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+                Cookie::queue($fokus . "_setting_zitate", "", 0, $cookiePath, null, false, false);
+            }
         }
 
-        if($quotes === "off"){
-            $path = \Request::path();
-            $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
-            Cookie::queue($fokus . "_setting_zitate", "off", 0, $cookiePath, null, false, false);
-        }elseif($quotes === "on") {
-            $path = \Request::path();
-            $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
-            Cookie::queue($fokus . "_setting_zitate", "", 0, $cookiePath, null, false, false);
-        }else{
-            abort(404);
+        $darkmode = $request->input('dm');
+        if(!empty($darkmode)){
+            if($darkmode === "off"){
+                Cookie::queue('dark_mode', '1', 0, '/', null, false, false);
+            }elseif($darkmode === "on") {
+                Cookie::queue('dark_mode', '2', 0, '/', null, false, false);
+            }elseif($darkmode === "system"){
+                Cookie::queue('dark_mode', '', 0, '/', null, false, false);
+            }
         }
 
+
         return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
     }
 
@@ -244,6 +253,10 @@ class SettingsController extends Controller
                 $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
                 Cookie::queue($key, "", 0, $cookiePath, null, false, false);
             }
+            if($key === 'dark_mode'){
+                Cookie::queue($key, "", 0, '/', null, false, false);
+            }
+
         }
         $this->clearBlacklist($request);
 
@@ -266,8 +279,11 @@ class SettingsController extends Controller
         $key = $request->input('key', '');
         $path = \Request::path();
         $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
-        Cookie::queue($key, "", 0, $cookiePath, null, false, false);
-
+        if($key === 'dark_mode'){
+            Cookie::queue($key, "", 0, '/', null, false, false);
+        }else{
+            Cookie::queue($key, "", 0, $cookiePath, null, false, false);
+        }
         return redirect($request->input('url', 'https://metager.de'));
 
     }
@@ -278,7 +294,11 @@ class SettingsController extends Controller
         $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
 
         foreach (Cookie::get() as $key => $value) {
-            Cookie::queue($key, "", 0, $cookiePath, null, false, false);
+            if($key === 'dark_mode'){
+                Cookie::queue($key, "", 0, '/', null, false, false);    
+            }else{
+                Cookie::queue($key, "", 0, $cookiePath, null, false, false);
+            }
         }
         return redirect($request->input('url', 'https://metager.de'));
     }
@@ -384,6 +404,9 @@ class SettingsController extends Controller
             if($blpage){
                 continue;
             }
+            if($key === 'dark_mode'){
+                Cookie::queue($key, $value, 0, '/', null, false, false);
+            }
             foreach($sumaFile['filter']['parameter-filter'] as $suma => $filter){
                 if($key === $suma && $value === $filter){
                     Cookie::queue($key, $value, 0, $cookiePath, null, false, false);
diff --git a/app/Http/Controllers/StartpageController.php b/app/Http/Controllers/StartpageController.php
index d38be544d90d51cdb86b1b06d9e010e43203914e..c5e4ff612abdbac0cd7e31dcf2ddcae4239d447e 100644
--- a/app/Http/Controllers/StartpageController.php
+++ b/app/Http/Controllers/StartpageController.php
@@ -3,6 +3,7 @@
 namespace App\Http\Controllers;
 
 use App;
+use Cookie;
 use Illuminate\Http\Request;
 use Jenssegers\Agent\Agent;
 use LaravelLocalization;
diff --git a/app/MetaGer.php b/app/MetaGer.php
index 0a3be40d6add9ba73c0a2c905d69706d27f83df3..5834d96dfaa63a70e56ccb76c8f80b00a1fee560 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -135,7 +135,7 @@ class MetaGer
     }
 
     # Erstellt aus den gesammelten Ergebnissen den View
-    public function createView()
+    public function createView($quicktipResults = [])
     {
         # Hiermit werden die evtl. ausgewählten SuMas extrahiert, damit die Input-Boxen richtig gesetzt werden können
         $focusPages = [];
@@ -175,7 +175,7 @@ class MetaGer
                         ->with('apiAuthorized', $this->apiAuthorized)
                         ->with('metager', $this)
                         ->with('browser', (new Agent())->browser())
-                        ->with('quicktips', action('MetaGerSearch@quicktips', ["search" => $this->eingabe]))
+                        ->with('quicktips', $quicktipResults)
                         ->with('focus', $this->fokus)
                         ->with('resultcount', count($this->results));
             }
@@ -248,7 +248,7 @@ class MetaGer
                         ->with('apiAuthorized', $this->apiAuthorized)
                         ->with('metager', $this)
                         ->with('browser', (new Agent())->browser())
-                        ->with('quicktips', action('MetaGerSearch@quicktips', ["search" => $this->eingabe, "quotes" => $this->sprueche]))
+                        ->with('quicktips', $quicktipResults)
                         ->with('resultcount', count($this->results))
                         ->with('focus', $this->fokus);
                     break;
@@ -1213,6 +1213,15 @@ class MetaGer
         }
     }
 
+     public function createQuicktips()
+    {
+        # Die quicktips werden als job erstellt und zur Abarbeitung freigegeben
+        $quicktips = new \App\Models\Quicktips\Quicktips($this->q, LaravelLocalization::getCurrentLocale(), $this->getTime());
+        return $quicktips;
+    }
+
+
+
     private function anonymizeIp($ip)
     {
         if (str_contains($ip, ":")) {
diff --git a/app/Models/Quicktips/Quicktips.php b/app/Models/Quicktips/Quicktips.php
index 1210568fe193be1f0f8295598e6249d8627d0fba..976e3d4cc18b3c73207d7139ab9056729d59aa51 100644
--- a/app/Models/Quicktips/Quicktips.php
+++ b/app/Models/Quicktips/Quicktips.php
@@ -3,53 +3,55 @@
 namespace App\Models\Quicktips;
 
 use Cache;
-use LaravelLocalization;
+use Illuminate\Foundation\Bus\DispatchesJobs;
+use Illuminate\Support\Facades\Redis;
 use Log;
 
 class Quicktips
 {
+    use DispatchesJobs;
 
     private $quicktipUrl = "/1.1/quicktips.xml";
-    private $results = [];
     const QUICKTIP_NAME = "quicktips";
-    const CACHE_DURATION = 60 * 60;
+    const CACHE_DURATION = 60;
 
     private $hash;
 
-    public function __construct($search, $quotes)
+    public function __construct($search, $locale, $max_time)
     {
-        $locale = LaravelLocalization::getCurrentLocale();
         if (env("APP_ENV") === "production") {
             $this->quicktipUrl = "https://quicktips.metager.de" . $this->quicktipUrl;
         } else {
             $this->quicktipUrl = "https://dev.quicktips.metager.de" . $this->quicktipUrl;
         }
-        $this->startSearch($search, $quotes, $locale);
+        $this->startSearch($search, $locale, $max_time);
     }
 
-    public function startSearch($search, $quotes, $locale)
+    public function startSearch($search, $locale, $max_time)
     {
-        $url = $this->quicktipUrl . "?search=" . $this->normalize_search($search) . "&locale=" . $locale . "&quotes=" . $quotes;
+        $url = $this->quicktipUrl . "?search=" . $this->normalize_search($search) . "&locale=" . $locale;
         $this->hash = md5($url);
 
-        $results = null;
+        if (!Cache::has($this->hash)) {
+            if (!Redis::exists($this->hash)) {
 
-        try {
-            if (!Cache::has($this->hash)) {
-                $results = file_get_contents($url);
-                Cache::put($this->hash, $results, Quicktips::CACHE_DURATION);
-            } else {
-                $results = Cache::get($this->hash);
-            }
-        } catch (\Exception $e) {
-            Log::error($e->getMessage());
-        }
+                // Queue this search
+                $mission = [
+                    "resulthash" => $this->hash,
+                    "url" => $url,
+                    "useragent" => "",
+                    "username" => null,
+                    "password" => null,
+                    "headers" => [],
+                    "cacheDuration" => self::CACHE_DURATION,
+                    "name" => "Quicktips",
+                ];
 
-        if ($results === null) {
-            $results = file_get_contents($url);
-        }
+                $mission = json_encode($mission);
 
-        $this->results = $this->loadResults($results);
+                Redis::rpush(\App\MetaGer::FETCHQUEUE_KEY, $mission);
+            }
+        }
     }
 
     /**
@@ -58,8 +60,9 @@ class Quicktips
      * 2. Parse the results
      * Returns an empty array if no results are found
      */
-    public function loadResults($resultsRaw)
+    public function loadResults()
     {
+        $resultsRaw = $this->retrieveResults($this->hash);
         if ($resultsRaw) {
             $results = $this->parseResults($resultsRaw);
             return $results;
@@ -72,8 +75,27 @@ class Quicktips
     {
         $body = null;
 
+        $startTime = microtime(true);
+
         if (Cache::has($this->hash)) {
-            $body = Cache::get($this->hash);
+            return Cache::get($this->hash, false);
+        }
+
+        while (microtime(true) - $startTime < 0.5) {
+            $body = Redis::rpoplpush($this->hash, $this->hash);
+            if ($body === false || $body === null) {
+                usleep(50 * 1000);
+            } else {
+                break;
+            }
+        }
+
+        if ($body === false) {
+            return false;
+        }
+
+        if ($body === "no-result") {
+            return false;
         }
 
         if ($body !== null) {
@@ -176,9 +198,4 @@ class Quicktips
     {
         return urlencode($search);
     }
-
-    public function getResults()
-    {
-        return $this->results;
-    }
 }
diff --git a/resources/lang/de/hilfe.php b/resources/lang/de/hilfe.php
index d7091d395166667733879fe21c56f0bbfd0a5675..4830f0e614255c6ef5c5871da6df1df18e6720ab 100644
--- a/resources/lang/de/hilfe.php
+++ b/resources/lang/de/hilfe.php
@@ -5,17 +5,19 @@ return [
     "title" => 'MetaGer - Hilfe',
 
     "title.2" => 'Benutzung der Suchmaschine',
+    "startpage.title" => 'Die Startseite',
+    "startpage.info" => 'Die Sartseite beinhaltet das Suchfeld, oben rechts einen Button zum Aufrufen des Menus und unter dem Suchfeld einen Link, mit dem Sie MetaGer zu Ihrem Browser hinzufügen können. Im unteren Bereich finden Sie Informationen zu MetaGer und dem Trägerverein SUMA-EV.',
     "searchfield.title" => 'Das Suchfeld',
     "searchfield.info" => 'Das Suchfeld besteht aus mehreren Teilen:',
-    "searchfield.memberkey" => 'Dem Schlüsselsymbol (nur für Vereinsmitglieder): Hier können die Mitglieder des SUMA-EV Ihren Schlüssel eingeben, um die werbefreie Suche nutzen zu können. Sie wollen das auch? Werden Sie Mitglied: <a href = "/beitritt/">Beitrittsantrag</a>',
-    "searchfield.slot" => 'Dem Suchfeld: Geben Sie hier Ihren Suchbegriff ein.',
-    "searchfield.search" => 'Der Lupe: Starten Sie die Suche.',
+    "searchfield.memberkey" => 'dem Schlüsselsymbol (nur für Vereinsmitglieder): Hier können die Mitglieder des SUMA-EV Ihren Schlüssel eingeben, um die werbefreie Suche nutzen zu können. Sie wollen das auch? Werden Sie Mitglied: <a href = "/beitritt/">Beitrittsantrag</a>',
+    "searchfield.slot" => 'dem Suchfeld: Geben Sie hier Ihren Suchbegriff ein.',
+    "searchfield.search" => 'der Lupe: Starten Sie hier die Suche mit einem Klick oder drücken Sie "Enter".',
 
     "resultpage.title" => 'Die Ergebnisseite',
-    "resultpage.foci" => 'Unter dem Suchfeld sehen Sie nun 6 verschiedene Suchfoki (Web, Bilder…...), denen intern auch spezifische Suchmaschinen zugeordnet sind.',
+    "resultpage.foci" => 'Unter dem Suchfeld sehen Sie nun 6 verschiedene Suchfoki (drei im englischsprachigen Bereich) (Web, Bilder…...), denen intern auch spezifische Suchmaschinen zugeordnet sind.',
     "resultpage.choice" => 'Darunter sehen Sie zwei Punkte: gegebenenfalls „Filter“ sowie „Einstellungen“',
     "resultpage.filter" => 'Filter: Sie haben hier die Möglichkeit, Filtermöglichkeiten ein- und auszublenden und Filter anzuwenden. In jedem Suchfokus haben Sie hier andere Auswahlmöglichkeiten.',
-    "resultpage.settings" => 'Einstellungen: Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im aktuellen Fokus vornehmen. Sie können auch Suchmaschinen, die dem Fokus zugeordnet sind, an- und abwählen. Ihre Einstellungen werden mithilfe eines nicht personenbeziehbaren Klartextcookies gespeichert. Unter dem Punkt „Hinweis“ finden Sie einen Link, der Ihnen Ihre gesamten Einstellungen zeigt. Hier können Sie diese auch wieder mit einem Klick löschen.',
+    "resultpage.settings" => 'Einstellungen: Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im aktuellen Fokus vornehmen. Sie können auch Suchmaschinen, die dem Fokus zugeordnet sind, an- und abwählen. Ihre Einstellungen werden mithilfe eines nicht personenbeziehbaren Klartextcookies gespeichert. Unter dem Punkt „Hinweis“ finden Sie einen Link, der Ihnen Ihre gesamten Einstellungen zeigt. Hier können Sie diese auch wieder mit einem Klick löschen. Hier finden Sie auch einen Link, den Sie kopieren und als Bookmark speichern können. Wenn Sie das Bookmark später aufrufen, sind Ihre Einstellungen wieder parat. Außerdem haben Sie hier die Möglichkeit, sich eine persönliche Blacklist zusammenzustellen; Sie können damit also nicht nur Suchmaschinen, sonden auch spezielle Domains ausfiltern und sich damit eigene Suchsettings produzieren. Zu guter Letzt können Sie hier die Anzeige der Zitate an- und ausschalten. Sie erreichen die Einstellungsseite auch direkt über das Menu.',
 
     "stopworte.title" => 'Stoppworte',
     "stopworte.1" => "Wenn Sie unter den MetaGer-Suchergebnissen solche ausschließen wollen, in denen bestimmte Worte (Ausschlussworte / Stoppworte) vorkommen, dann erreichen Sie das, indem Sie diese Worte mit einem Minus versehen.",
@@ -39,14 +41,14 @@ return [
 
     "result.title" => 'Ergebnisse',
     "result.info.1" => 'Alle Ergebnisse werden in folgender Form ausgegeben:<p><div class="image-container"><img src="/img/hilfe-php-resultpic-01.png"></div></p>',
-    "result.info.open" => '"ÖFFNEN": Klicken Sie auf die Überschrift, den darunter stehenden Link (die URL) oder auch auf den Button "ÖFFNEN", um das Ergebnis zu öffnen. Ihre Browsereinstellungen bestimmen, ob dafür ein neuer TAB verwendet wird.',
-    "result.info.newtab" => '"IN NEUEM TAB ÖFFNEN" öffnet das Ergebnis auf jeden Fall in einem neuen TAB.',
+    "result.info.open" => '"ÖFFNEN": Klicken Sie auf die Überschrift, den darunter stehenden Link (die URL) oder auch auf den Button "ÖFFNEN", um das Ergebnis im selben TAB zu öffnen.',
+    "result.info.newtab" => '"IN NEUEM TAB ÖFFNEN" öffnet das Ergebnis in einem neuen TAB.',
     "result.info.anonym" => '"ANONYM ÖFFNEN" bewirkt, dass das Ergebnis unter dem Schutz unseres Proxys geöffnet wird. Einige Infos dazu finden Sie weiter unten auf dieser Seite.',
     "result.info.more" => 'MEHR: Wenn Sie hier klicken, dann erhalten Sie neue Optionen; das Aussehen des Ergebnisses ändert sich:<p><div class="image-container"><img src="/img/hilfe-php-resultpic-02.png"></div></p>',
     "result.info.2" => 'Die neuen Optionen sind:',
     "result.info.saveresult" => '"Ergebnis speichern" (Nur Desktopversion): Dieses Ergebnis wird in einem Sammeltab gespeichert. Der TAB erscheint rechts und bleibt über beliebig viele Suchen aktiv. (siehe <a href="#searchinsearch"> Suche in der Suche</a>)',
     "result.info.domainnewsearch" => '"Auf dieser Domain neu suchen": Auf der Domain des Ergebnisses wird "genauer nachgesehen".',
-    "result.info.hideresult" => '"ausblenden": Hiermit blenden Sie Ergebnisse dieser Domain aus. Sie können diesen Schalter auch direkt hinter Ihr Suchwort schreiben und auch verketten; ebenso ist ein "*" als Wildcard erlaubt. Sie können das zum Beispiel nutzen, indem Sie sich ein Suchergebnis mit den von Ihnen gewünschten Einschränkungen zusammenstellen. Dieses "speichern" Sie als Bookmark. Wenn Sie dieses Bookmark aufrufen, dann haben Sie sogleich Ihre Einstellungen verfügbar und müssen nur noch vorne Ihren Suchbegriff ändern.',
+    "result.info.hideresult" => '"ausblenden": Hiermit blenden Sie Ergebnisse dieser Domain aus. Sie können diesen Schalter auch direkt hinter Ihr Suchwort schreiben und auch verketten; ebenso ist ein "*" als Wildcard erlaubt. Siehe auch "Einstellungen" für eine dauerhafte Lösung.',
     'urls.title' => 'URLs ausschließen',
     'urls.explanation' => 'Sie können Suchergebnisse ausschließen, deren Ergebnislinks bestimmte Worte enthalten, indem Sie in ihrer Suche "-url:" verwenden.',
     'urls.example.1' => 'Beispiel: Sie möchten keine Ergebnisse, bei denen im Ergebnislink das Wort "Hund" auftaucht:',
diff --git a/resources/lang/de/index.php b/resources/lang/de/index.php
index e2193a8b02b24e1b504b606ab5b5ba4816b1d718..ed588f41132cc30fbd1ec72a45b178164c584981 100644
--- a/resources/lang/de/index.php
+++ b/resources/lang/de/index.php
@@ -4,7 +4,7 @@ return [
     'foki.web' => 'Web',
     'foki.bilder' => 'Bilder',
     'foki.nachrichten' => 'News/Politik',
-    'foki.wissenschaft' => 'Wissenschaft',
+    'foki.science' => 'Wissenschaft',
     'foki.produkte' => 'Produkte',
     'foki.angepasst' => 'Angepasst',
     'foki.maps' => 'Maps.metager.de',
diff --git a/resources/lang/de/plugin-page.php b/resources/lang/de/plugin-page.php
index 5e2d5cc3f2566f06c472fc211a53230a3634bfeb..235f4dfc51354d7fcac95ba831838e5cf897a285 100644
--- a/resources/lang/de/plugin-page.php
+++ b/resources/lang/de/plugin-page.php
@@ -4,16 +4,16 @@ return [
     'open-modal' => 'MetaGer-Plugin hinzufügen',
     'open-modal.title' => 'MetaGer zu Ihrem Browser hinzufügen',
     'head.0' => 'Firefox installieren und MetaGer hinzufügen',
-    'head.1' => 'MetaGer zum Firefox hinzufügen',
-    'head.2' => 'MetaGer zum Chrome hinzufügen',
-    'head.3' => 'MetaGer zum Opera hinzufügen',
-    'head.4' => 'MetaGer zum Internet Explorer hinzufügen',
-    'head.5' => 'MetaGer zum Microsoft Edge hinzufügen',
-    'head.6' => 'MetaGer zum Safari hinzufügen',
-    'head.7' => 'MetaGer zum Vivaldi hinzufügen',
-    'head.8' => 'MetaGer zum Firefox Klar hinzufügen',
-    'head.9' => 'MetaGer zum UCBrowser hinzufügen',
-    'head.10' => 'Metager zum Samsung hinzufügen',
+    'head.1' => 'MetaGer zu Firefox hinzufügen',
+    'head.2' => 'MetaGer zu Chrome hinzufügen',
+    'head.3' => 'MetaGer zu Opera hinzufügen',
+    'head.4' => 'MetaGer zu Internet Explorer hinzufügen',
+    'head.5' => 'MetaGer zu Microsoft Edge hinzufügen',
+    'head.6' => 'MetaGer zu Safari hinzufügen',
+    'head.7' => 'MetaGer zu Vivaldi hinzufügen',
+    'head.8' => 'MetaGer zu Firefox Klar hinzufügen',
+    'head.9' => 'MetaGer zu UCBrowser hinzufügen',
+    'head.10' => 'Metager zu Samsung Internet hinzufügen',
 
     'browser-download' => 'Firefox herunterladen',
     'firefox-plugin' => 'MetaGer als Standardsuchmaschine mit Add-on einrichten',
diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php
index e0ba814efba9ab44714bd6bcac8de27b962771a7..a1b23f6e1102e655883d72213b155ccad658f4b9 100644
--- a/resources/lang/de/settings.php
+++ b/resources/lang/de/settings.php
@@ -26,6 +26,12 @@ return [
     'clear' => 'Blacklist leeren',
     'copy' => 'Kopieren',
 
+    'darkmode' => 'Dunklen Modus umschalten',
+    'darkmode-hint' => 'Die Einstellung für den dunklen Modus betrifft alle Fokusse und Unterseiten übergreifend!',
+    'system' => 'Systemstandard',
+    'dark' => 'Dunkel',
+    'light' => 'Hell',
+
     // Translations from the settings overview
     'noSettings' => 'Aktuell sind keine Einstellungen gesetzt!',
     'allSettings.header' => 'Auf :root gesetzte Einstellungen',
@@ -39,4 +45,5 @@ return [
     'key' => 'Ihr Schlüssel für die werbefreie Suche',
     'blentry' => 'Blacklisteintrag',
     'removeCookie' => 'Diesen Cookie entfernen',
+    'dm' => 'Dunkler Modus',
 ];
diff --git a/resources/lang/de/sidebar.php b/resources/lang/de/sidebar.php
index 5ecbe718f2fd152965785014368cab4e43733b75..04b457cedb31b2e70fbe2e7f15e89175ae8c02c7 100644
--- a/resources/lang/de/sidebar.php
+++ b/resources/lang/de/sidebar.php
@@ -25,6 +25,7 @@ return [
     'nav25' => 'MetaGer App',
     'nav26' => 'MetaGer-Fanshop',
     'nav27' => 'MetaGer Maps',
+    'nav28' => 'Einstellungen',
     'navigationToggle' => 'Navigation anzeigen',
     'titles.tips' => 'Tips',
     'plugin' => 'MetaGer Plugin',
diff --git a/resources/lang/en/hilfe.php b/resources/lang/en/hilfe.php
index 9fbdbf728ca4a2bc162194641525660d22d1993c..193ecaaac2004bc3d5db204fd1e0649670dbb573 100644
--- a/resources/lang/en/hilfe.php
+++ b/resources/lang/en/hilfe.php
@@ -5,6 +5,9 @@ return [
 
     "title.2" => 'Use of the search engine',
 
+    "startpage.title" => 'The start page',
+    "startpage.info" => 'The start page contains the search field and a menu button in the upper right corner. There is a link below the search field which let you add MetaGer to your web browser. At last, at the bottom of the page there is some information about MetaGer and its supporting association, the SUMA-EV.',
+
     "searchfield.title" => 'The search field',
     "searchfield.info" => 'The search field contains:',
     "searchfield.memberkey" => 'The key symbol (only SUMA-EV members): Members can enter a private key to use the "free-of-advertising" metager search. If you want this too, just become a member: <a href = "https://metager.org/beitritt">Membership form</a>',
@@ -12,10 +15,13 @@ return [
     "searchfield.search" => 'The magnifier: Start your search.',
 
     "resultpage.title" => 'The result page',
-    "resultpage.foci" => 'There are six different search focuses below the search field (Web, Pictures...). We assigned specific search engines to these focuses.',
+    "resultpage.foci" => 'There are three (six for the german branch) different search focuses below the search field (Web, Pictures and Shopping). We assigned specific search engines to these focuses.',
     "resultpage.choice" => 'Below these you have two links:',
     "resultpage.filter" => 'Filter: Toggle filters on / off and apply settings here. Each focus has its own assortment.',
-    "resultpage.settings" => 'Settings: Apply here your permanent settings for the current focus. You can select / unselect search engines here, too. Your settings are stored as non-personally identifiable cookies. Click "Overview" to see your settings. If settings have been stored you find a deletion button at the end of the page.',
+    "resultpage.settings" => 'Settings: Apply here your permanent settings for the current focus. You can select / unselect search engines here, too. Your settings are stored as non-personally identifiable cookies. Click "Overview" to see your settings. If settings have been stored you find a deletion button at the end of the page. The section "hints" offers a link to the cookie list and also a box with a link which is useful to copy and save as a bookmark. Using the bookmark you will have all settings working immediately. Further the section "Black List" let you exclude your entries from being used for searching. At last you may hide / unhide the citations here. There is also a menu entry to access the settings page.',
+
+
+
 
     "stopworte.title" => "Exclude single words",
     "stopworte.1" => "If you want to exclude words within the search result, you have to put a \"-\" in front of that word",
@@ -39,14 +45,14 @@ return [
 
     "result.title" => 'Results',
     "result.info.1" => 'All results will look like this:<p><div class="image-container"><img src="/img/hilfe-php-resultpic-en-01.png"></div></p>',
-    "result.info.open" => '"OPEN": Click the headline, the link below (URL) or the "OPEN" button to open the result. This will be in the same or a new TAB due to your browser settings.',
-    "result.info.newtab" => '"OPEN IN NEW TAB" will open the result in a new TAB in any case.',
+    "result.info.open" => '"OPEN": Click the headline, the link below (URL) or the "OPEN" button to open the result in the same TAB.',
+    "result.info.newtab" => '"OPEN IN NEW TAB" will open the result in a new TAB.',
     "result.info.anonym" => '"OPEN ANONYMOUSLY": the page will be opened under the proxy protection. There is some information about the proxy further down here.',
     "result.info.more" => '"MORE": you will get more options, the result changes its appearance to:<p><div class="image-container"><img src="/img/hilfe-php-resultpic-en-02.png"></div></p>',
     "result.info.2" => 'The new options are:',
     "result.info.saveresult" => '"Save result in TAB" (Only desktop): The result will be stored in a new TAB. It´ s used for collecting results out of several searches. This TAB appears on the right side of your screen. (info: <a href="#searchinsearch"> Search in search</a>)',
     "result.info.domainnewsearch" => '"Start a new search on this domain": search only on this domain.',
-    "result.info.hideresult" => '"Hide": hide results from this domain. You can use this filter directly after your search words (e.g. my search words -site:*.wikipedia.org), filters can be concatenated and the wildcard "*" is allowed. Do one search with a filter and store it as a bookmark. Next time -using the bookmark- you have your settings active immediately.',
+    "result.info.hideresult" => '"Hide": hide results from this domain. You can use this filter directly after your search words (e.g. my search words -site:*.wikipedia.org), filters can be concatenated and the wildcard "*" is allowed. See also "Settings"',
 
     "urls.title" => "Exclude URLs",
     "urls.explanation" => "Use \"-url:\" to exclude search results containing specified words.",
@@ -69,7 +75,7 @@ return [
     "plugin.title" => "Browser-Plugin",
     "plugin.1" => "There is a MetaGer Plugin for most of the common web browsers. The plugin provides easy search from the web browsers search field. Find out more: <a href=\"/en/plugin\" rel=\"noopener\">MetaGer Plugin</a>.",
 
-    "suchwortassoziator.title" => "Finding connotations to searchwords",
+    "suchwortassoziator.title" => "MetaGer-Web-Associator",
     "suchwortassoziator.1" => 'Ask the <a href="/en/asso/" target="_blank" rel="noopener">MetaGer-Web-Assoziator</a> (Tools / Associator) to find connotations in a subject area. The service doesn&apos;t append upon any language because it uses webdocuments as a source. Therefore, you find any connotations to your used language and vice-versa.',
     "suchwortassoziator.2" => "Example: you want to know more about \"tick bites\" and its dangers but you forgot the technical terms around this issue. The \"Assoziator\" presents \"Borreliose\" and \"fsme\" among others.",
     "suchwortassoziator.3" => "Please let us know if something unsuitable appears. Please use our <a href=\"/en/kontakt/\" target=\"_blank\" rel=\"noopener\">contact form</a>.",
diff --git a/resources/lang/en/index.php b/resources/lang/en/index.php
index d1fbd753c6462ee0f82196eaf1372f4af837f17a..24be41b871b7ef0ba886c7f7daf1ce79398d7be8 100644
--- a/resources/lang/en/index.php
+++ b/resources/lang/en/index.php
@@ -4,7 +4,7 @@ return [
     "foki.web" => "Web",
     "foki.bilder" => "Pictures",
     "foki.nachrichten" => "News/Politics",
-    "foki.wissenschaft" => "Science",
+    "foki.science" => "Science",
     "foki.produkte" => "Shopping",
     "foki.angepasst" => "Customized",
     "foki.maps" => "maps.metager.de",
diff --git a/resources/lang/en/plugin-page.php b/resources/lang/en/plugin-page.php
index 3d34d49efe7f1fa37c5d7120213c3aad4e7edc18..c70c0a794829a62b277018922508a6cb7be062c1 100644
--- a/resources/lang/en/plugin-page.php
+++ b/resources/lang/en/plugin-page.php
@@ -3,6 +3,7 @@
 return [
     'open-modal' => 'Install MetaGer-Plugin',
     'open-modal.title' => 'Add the MetaGer-Plugin to your browser',
+    'head.0' => 'Install Firefox and add MetaGer',
     "head.1" => "Add MetaGer to your Firefox",
     "head.2" => "Add MetaGer to your Chrome",
     "head.3" => "Add MetaGer to your Opera",
@@ -11,6 +12,8 @@ return [
     "head.6" => "Add MetaGer to your Safari",
     "head.7" => "Add Metager to your Vivaldi",
     "head.8" => "Add MetaGer to your Firefox Focus",
+    'head.9' => 'Add MetaGer to your UCBrowser',
+    'head.10' => 'Add MetaGer to your Samsung Internet',
 
     'browser-download' => 'Download Firefox',
     'firefox-plugin' => 'Set MetaGer as default search engine with add-on',
@@ -21,7 +24,7 @@ return [
     'desktop-unable' => 'The browser you use does not offer to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
     'mobile-unable' => 'The browser you use does not offer to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/mobile/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
 
-    'desktop-unlisted' => 'We are not aware if the browser you use offers to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
-    'mobile-unlisted' => 'We are not aware if the browser you use offers to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/mobile/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
+    'desktop-notlisted' => 'We are not aware if the browser you use offers to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
+    'mobile-notlisted' => 'We are not aware if the browser you use offers to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/mobile/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
 
     ];
diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php
index f1968e6af73debed4fd1ae0e8eb7b1765e4a3a2d..5bc3590ead6028d23dc7b25dc10958b545244fd5 100644
--- a/resources/lang/en/settings.php
+++ b/resources/lang/en/settings.php
@@ -26,6 +26,12 @@ return [
     'clear' => 'Clear black list',
     'copy' => 'Copy',
 
+    'darkmode' => 'Toggle dark mode',
+    'darkmode-hint' => 'The setting for dark mode affects all foci and sub-pages!',
+    'system' => 'System Default',
+    'dark' => 'Dark',
+    'light' => 'Light',
+
     // Translations from the settings overview
     'noSettings' => "Currently no settings are set!",
     'allSettings.header' => "Settings on :root",
@@ -39,4 +45,5 @@ return [
     'key' => "Your key to the ad-free search",
     'blentry' => 'Black list entry',
     'removeCookie' => "Remove this cookie",
+    'dm' => 'Dark mode',
 ];
diff --git a/resources/lang/en/sidebar.php b/resources/lang/en/sidebar.php
index 97d09990051efef75a3753448d9d0341e282b526..656d1a9244a4e10bdd98c393b29e2d81f663cfcc 100644
--- a/resources/lang/en/sidebar.php
+++ b/resources/lang/en/sidebar.php
@@ -25,6 +25,7 @@ return [
     "nav25" => "MetaGer App",
     'nav26' => 'MetaGer-Fanshop',
     'nav27' => 'MetaGer Maps',
+    'nav28' => 'Settings',
     "navigationToggle" => "show navigation",
     'titles.tips' => 'Tips',
     'plugin' => 'MetaGer Plugin',
diff --git a/resources/lang/es/app.php b/resources/lang/es/app.php
new file mode 100644
index 0000000000000000000000000000000000000000..0c5f4101f444d7432596715af367417fb88bc770
--- /dev/null
+++ b/resources/lang/es/app.php
@@ -0,0 +1,24 @@
+<?php
+
+return [
+    "head.1"	=>	"Aplicaciones MetaGer",
+    "disclaimer.1"	=>	"Actualmente solo podemos proporcionar nuestras aplicaciones para dispositivos Android. Desafortunadamente, Apple nos lo pone demasiado difícil. Rogamos su comprensión.",
+    "head.2"	=>	"Aplicación MetaGer",
+    "metager.1"	=>	"Con esta aplicación, obtiene toda la potencia de nuestro motor de búsqueda en su smartphone.\r\nBusque en Internet con solo deslizar un dedo mientras que mantiene su privacidad.",
+    "metager.2"	=>	"Puede instalar la aplicación para nuestra búsqueda a través de Google Playstore o instalarla manualmente desde nuestro servidor en su smartphone, protegida de datos.",
+    "metager.playstore"	=>	"Google Playstore",
+    "metager.manuell"	=>	"Instalación manual",
+    "head.3"	=>	"Aplicación Maps MetaGer",
+    "maps.playstore"	=>	"Google Playstore",
+    "maps.1"	=>	"Esta aplicación ofrece una integración nativa de <a href=\"https://maps.metager.de\" target=\"_blank\">  MetaGer Maps</a>(con tecnología de <a href = \"https: //www.openstreetmap.de/\" target =\" _ blank\"> Openstreetmap</a>) en su dispositivo móvil Android.",
+    "maps.2"	=>	"De este modo el servicio de mapas y navegación también funciona de manera óptima y rápida en su smartphone. La aplicación aumenta el rendimiento en comparación con el uso en el navegador móvil y ofrece algunas otras ventajas. ¡Intentalo!",
+    "maps.3"	=>	"Después del primer inicio, la aplicación solicita los siguientes permisos:",
+    "maps.list.1"	=>	"Acceso a datos de posición => Si el GPS está activado en su teléfono móvil, podemos mejorar sus resultados de búsqueda. Además habilita la función de navegación paso a paso.<b>Por supuesto, estos datos no se almacenan en ningún lugar y ciertamente no se transmiten a terceros.</b>",
+    "maps.list.2"	=>	"Acceso a fotos, medios y archivos en el dispositivo => Esta autorización es necesaria para que esta aplicación pueda actualizarse sola. Si hay una nueva versión de la aplicación disponible, puede guardarla en su directorio de descarga y luego instalarla automáticamente desde allí. Si no desea otorgar este permiso, deberá reinstalar manualmente la aplicación cada vez que haya una actualización disponible.",
+    "head.4"	=>	"Instalación",
+    "installation.1"	=>	"Si desea instalar nuestra aplicación directamente desde Google Playstore, no necesita considerar nada más. Simplemente haga clic en el enlace \"Google Playstore\" para ser redirigido al App Store y haga clic en \"Instalar\".",
+    "installation.2"	=>	"Si desea instalar nuestra aplicación manualmente (sin App Store), proceda de la siguiente manera:",
+    "list.1"	=>	"Abra el menú de configuración para permitir la instalación: Configuración => Sistema => Seguridad. Marque la casilla junto a \"Fuentes desconocidas\".",
+    "list.2"	=>	"Seleccione el enlace \"Instalación manual\" en esta página para descargar el archivo de instalación en su dispositivo móvil.",
+    "list.3"	=>	"Abra el archivo descargado en su dispositivo móvil. Esto iniciará el proceso de instalación."
+];
diff --git a/resources/lang/es/index.php b/resources/lang/es/index.php
index 0ed4438a345f54b9c25e5d6d2d6390d5c19b75e6..dc3830e9f31be92c6765a3a5672d36f20866a211 100644
--- a/resources/lang/es/index.php
+++ b/resources/lang/es/index.php
@@ -2,7 +2,7 @@
     "foki.web" => "Web",
     "foki.bilder" => "Imágenes",
     "foki.nachrichten" => "Informativos/Política",
-    "foki.wissenschaft" => "Ciencia",
+    "foki.science" => "Ciencia",
     "foki.produkte" => "Productos",
     "foki.angepasst" => "ajustado",
     "foki.maps" => "Maps.metager.de",
diff --git a/resources/lang/es/plugin-page.php b/resources/lang/es/plugin-page.php
index 7ed5dd103b0461ab728d64a85749df553bb2434b..ad1e386e4490d9824fd12ea9b28d231ab10d5564 100644
--- a/resources/lang/es/plugin-page.php
+++ b/resources/lang/es/plugin-page.php
@@ -8,48 +8,8 @@ return [
     "head.4" => "Añadir MetaGer a Internet Explorer",
     "head.5" => "Añadir MetaGer a Microsoft Edge",
     "head.6" => "Añadir MetaGer a Safari",
-    "firefox.1" => 'En su navegador, haga clic en "<i class =" fa fa-ellipsis-h "> </i>" en la esquina superior derecha de la barra de direcciones para abrir el menú de acción de la página y luego haga clic en "Agregar motor de búsqueda" ( ver foto)',
-    "firefox.2" => 'Abre la configuración de Firefox. Para esto, ingrese "about:preferences#search" en la barra de direcciones. En la sección "Motor de búsqueda predeterminado", seleccione MetaGer (ver imagen).',
-    "firefox.3" => "Instalar MetaGer como página de inico en el :browser",
-    "firefox.4" => "Hacer click arriba a la derecha en los tres barras horizontales en su navegador (Menú) y abre \"Preferencias\"",
-    "firefox.5" => "Introducir en el campo \"Pagina de inicio\" \"https:\\/\\/metager.de\"",
-    "chrome.1" => "Haga click en su Chrome arriba a la derecha <i class=\"fa fa-ellipsis-v\"></i> y en el subsecuente menú en \"Preferencias\", para abrir las preferencias de su Chrome.",
-    "chrome.2" => "In la área de la búsqueda hacer click en administrar motores de búsqueda ...",
-    "chrome.3" => "En la lista que se ve ahora, busca la entrada \"MetaGer\". Cloquease con el ratón sobre la entrada \"Establecer como predeterminado\"",
-    "chrome.4" => "Definir MetaGer como pagina de inicio en el :browser ",
-    "chrome.5" => "Hacer click arriba a la derecha en su navegador en <i class=\"fa fa-ellipsis-v\"></i> y abre  \"Configuración\"",
-    "chrome.6" => "En la sección  \"Al abrir el navegador ... \" seleccionar  \"Abrir una página especifica\" y haga click en \"Establecer páginas\"  ",
-    "chrome.7" => "Introduzca \"https:\\/\\/metager.de\" como URL en el campo \"Añadir una nueva página\" ",
-    "chrome.8" => "Nota: Todos los sitios web visibles aquí se abren ahora cuando inicia el navegador. Usted puede borrarlos, poniéndose con el ratón encima y hacer click en la \"x\" al lado derecha.",
-    "opera.1" => "Haga click <a href=\"/\" target=\"_blank\" rel=\"noopener\">a</a> para abrir MetaGer en una nueva pestaña.",
-    "opera.2" => "En la nueva pestaña haga click en la barra de la búsqueda con el botón derecha del ratón.",
-    "opera.3" => "Elige en el menú de contexto \"editar buscadores\" ",
-    "opera.4" => "En la ventana popup hacer click en \"Añadir buscador\"",
-    "opera.5" => "(Desafortunadamente ya no es posible en Opera poner buscadores nuevos como estandard, pero <a href=\"https://www.mozilla.org/de/firefox/new/\" target=\"_blank\" rel=\"noopener\">aquí</a>puede instalar un navegador de código abierto que soporta esto.)",
-    "opera.6" => "Hacer MetaGer la página de inicio en :browser",
-    "opera.7" => "Hacer click en el menú del navegador en \"Editar\"->\"Configuración\"",
-    "opera.8" => "En la sección  \"Inicio\" seleccione \"Abrir una página especifica\" y después  \"Definir página\"",
-    "opera.9" => "En el campo \"Introducir URL\" ponga \"https://metager.de\" y confirma con introducir",
-    "opera.10" => "Haga click en \"Confirmar\"",
-    "IE.1" => "Haga click en  <a href=\"javascript:window.external.addSearchProvider($('link[rel=search]').attr('href'));\"></a>, para añadir MetaGer como búscador",
-    "IE.4" => "Haga click en su navegador arriba derecha en Extras",
-    "IE.5" => "Escoge el punto del menú \"Administrar extensiones\"",
-    "IE.6" => "Busca Tipos de Extensiones y haga click en \"Máquinas de búsqueda\" y después al lado derecho click en \"MetaGer\"",
-    "IE.7" => "Escoge el botón \"Definir como predeterminado\"",
-    "IE.8" => "Definir MetaGer como página de inicio en :browser ",
-    "IE.9" => "Haga click arriba derecha en <i class=\"fa fa-cog\"></i> y abre \"Opciones de internet\"",
-    "IE.10" => "Si quiere definir MetaGer como única página de inicio, marca todo el texto en el campo del texto y reemplázalo por \"https://metager.de\"",
-    "IE.11" => "Haga click en \"Aceptar\"",
-    "edge.1" => "Haga click en su navegador arriba derecha en Extras (",
-    "edge.2" => ") y selecciona \"Configuración\"",
-    "edge.3" => "Haga scroll hacia abajo y haga click en \"Mostrar configuración avanzada\"",
-    "edge.4" => "Haga scroll de nuevo hacia abajo llegando al \"Buscar en la barra de direcciones con\" y haga click en  \"Cambiar\"",
-    "edge.5" => "Selecciona \"MetaGer: Sicher suchen & finden...\" y clickea en  \"Definir com predeterminado\"",
-    "edge.6" => "Hacer MetaGer la página de inicio en :browser",
-    "edge.7" => "Haga click arriba derecha en el navegador en <i class=\"fa fa-ellipsis-h\"></i> y abre  \"Configuraciones\"",
-    "edge.8" => "Selecciona en la sección \"Abrir con\" el ítem \"Página específica\"",
-    "edge.9" => "En el menú de cascada selecciona \"Definido por el usuario\"",
-    "edge.10" => "En la área abajo ponga \"https://metager.de\" en el campo \"Introducir URL\" y haga click en el símbolo \"+\"",
-    "edge.11" => "Borra todas las entradas, que no quiere abrir al inicio (p.ej. about:start), haciendo click en el pequeño \"x\" a la derecha.",
-    "safari.1" => "No pueden añadir otras motores de busqueda alternativas en Safari. \"OpenSearch for Safari\" y \"Glims\" soy terminado.",
+    "head.7" => "Añadir MetaGer a Vivaldi",
+    "head.8" => "Añadir MetaGer a Firefox Klar",
+    "head.9" => "Añadir MetaGer a UCBrowser",
+    "head.10" => "Añadir MetaGer a Samsung Internet",
 ];
diff --git a/resources/lang/es/results.php b/resources/lang/es/results.php
index 19b9de885ef3fdfe83e4878c863afcbac5f44072..3a8aac86f2f197c4a12e2c0e1823e634eb9b7c9a 100644
--- a/resources/lang/es/results.php
+++ b/resources/lang/es/results.php
@@ -1,9 +1,13 @@
 <?php
 
 return [
-    "redirect"       => "(con desviar)",
-    "weiter"         => "Continuar",
-    "zurueck"        => "Atrás",
-    "filter"         => "Resultados filtraban:  <strong>[:filter]</strong>. <a href=\":link\" target=\"_blank\">Desactivar filtro.</a>",
-    "filter.default" => "Recibís el interfaz del usuario en <strong>:langName</strong>, pero resultados en <strong>TODOS</strong> idiomas. Usan  <a href=\"/settings\" target=\"_blank\">adjustar</a> para seleccionar una idioma para los resultados.",
+    "redirect"	=>	"(con desviar)",
+    "weiter"	=>	"Continuar",
+    "zurueck"	=>	"Atrás",
+    "backtotop"	=>	"Volver al principio de la página",
+    "filter"	=>	"Los resultados de la búsqueda se filtraron: <strong>[:filter]</strong>. <a href=\":link\" target=\"_blank\">desactiva filtro.</a>",
+    "filter.default"	=>	"Obtiene la interfaz de usuario en <strong>: langName </strong>, pero los resultados en <strong> TODOS </strong> los idiomas. Para obtener resultados solo en alemán, puede ajustar \"Seleccionar idioma\" en <a href=\"/settings\" target=\"_blank\"> </a>.\r\n",
+    "produktanzeigen"	=>	"Anuncios de productos:",
+    "query.alteration"	=>	"Contiene resultados para <a href=\":link\">:alteration <i class=\"fa fa-search\"></i></a>",
+    "query.alteration.original"	=>	"En su lugar, busque <a href=\":link\">:original <i class=\"fa fa-search\"></i></a>"
 ];
diff --git a/resources/lang/fr/index.php b/resources/lang/fr/index.php
index 52c991bf5fafdf4da75f6c626936e04392b2c48e..1d4da057e4637faa53561c55dfc0d216b61d7854 100644
--- a/resources/lang/fr/index.php
+++ b/resources/lang/fr/index.php
@@ -4,7 +4,7 @@ return [
     "foki.web" => "Web",
     "foki.bilder" => "Images",
     "foki.nachrichten" => "News/Politique",
-    "foki.wissenschaft" => "Sciènces",
+    "foki.science" => "Sciènces",
     "foki.produkte" => "Produits",
     "foki.angepasst" => "ajusté(e)",
     "foki.maps" => "Maps.metager.de",
diff --git a/resources/lang/fr/plugin-page.php b/resources/lang/fr/plugin-page.php
index 5db072d7d2ac3d8ecc1998cb3fff1231b8760fa2..3a756324c5963ddd082f11cdc7743ee07b9cc9f0 100644
--- a/resources/lang/fr/plugin-page.php
+++ b/resources/lang/fr/plugin-page.php
@@ -7,7 +7,8 @@ return [
     "head.4"    => "Ajouter MetaGer à Internet Explorer",
     "head.5"    => "Ajouter MetaGer à Microsoft Edge",
     "head.6"    => "Ajouter MetaGer à Vivaldi",
-    "opera.10"  => "Cliquer sur \"ok\"",
-    "IE.11"     => "Cliquer sur \"ok\"",
-    "vivaldi.7" => "Cliquer sur \"ajouter\"",
+    "head.7"    => "Ajouter MetaGer à Vivaldi",
+    "head.8"    => "Ajouter MetaGer à Firefox Klar",
+    "head.9"    => "Ajouter MetaGer à UCBrowser",
+    "head.10"    => "Ajouter MetaGer à Samsung Internet",
 ];
diff --git a/resources/less/metager/bs-variables.less b/resources/less/metager/bs-variables.less
index 140426856f3387f4f97bbd694a65b6b400e3499f..96cbaff829b54e8103d7d04521b34ab29c65d2bc 100644
--- a/resources/less/metager/bs-variables.less
+++ b/resources/less/metager/bs-variables.less
@@ -169,12 +169,12 @@
 //##
 
 //** `<input>` background color
-@input-bg:                       #fff;
+@input-bg:                       @input-background;
 //** `<input disabled>` background color
 @input-bg-disabled:              @gray-lighter;
 
 //** Text color for `<input>`s
-@input-color:                    @gray;
+@input-color:                    @input-text;
 //** `<input>` border color
 @input-border:                   #ccc;
 
diff --git a/resources/less/metager/general/base.less b/resources/less/metager/general/base.less
index 50f241c54a097b85402b9b9d95eed55bf43bafff..2c542869ca80ecae0195bb30187f93a7f1192cb9 100644
--- a/resources/less/metager/general/base.less
+++ b/resources/less/metager/general/base.less
@@ -259,8 +259,8 @@ summary {
         top: 100%;
         left: 0;
         z-index: 1;
-        color: black;
-        background-color: white;
+        color: @text-color;
+        background-color: @body-background-color;
         border: 2px solid @metager-orange;
         border-radius: 6px;
         padding: 3px 8px;
diff --git a/resources/less/metager/general/forms.less b/resources/less/metager/general/forms.less
index 358e74a0fe3078cf90682e42fda85283e438dfa8..3c54e33cf2898bc4d5831988215a111936502063 100644
--- a/resources/less/metager/general/forms.less
+++ b/resources/less/metager/general/forms.less
@@ -105,6 +105,11 @@ output {
   color: @input-color;
 }
 
+textarea{
+  background-color: @input-bg;
+  color: @input-text;
+}
+
 
 // Common form controls
 //
diff --git a/resources/less/metager/metager-dark.less b/resources/less/metager/metager-dark.less
index df6cf7ab96bf9347d1396018bb713eacf5d7e46a..4d0d429c41226400042f0d8ae647b629fe3eb1b8 100644
--- a/resources/less/metager/metager-dark.less
+++ b/resources/less/metager/metager-dark.less
@@ -3,7 +3,6 @@
 
 // Variables
 @import "./bs-variables.less";
-@import "./variables.less";
 @import "./variables-dark.less";
 
 // General
diff --git a/resources/less/metager/pages/key-dark.less b/resources/less/metager/pages/key-dark.less
new file mode 100644
index 0000000000000000000000000000000000000000..7a84e3ad7e7d3ecd9f7edacc9297b3d380bbde70
--- /dev/null
+++ b/resources/less/metager/pages/key-dark.less
@@ -0,0 +1,27 @@
+// Variables
+@import "../variables-dark.less";
+@import "../general/cards.less";
+#key-site {
+    background-color:@background-color;
+    color:@text-color;
+    .section {
+        .card-medium;
+        margin: 8px 0;
+        .error {
+            color: red;
+            text-align: center;
+            font-weight: bold;
+        }
+    }
+    #form-wrapper {
+        margin-top: 8px;
+        form {
+            text-align: center;
+        }
+    }
+    
+    #back-link {
+        text-align: center;
+        margin-top: 16px;
+    }
+}
\ No newline at end of file
diff --git a/resources/less/metager/pages/key.less b/resources/less/metager/pages/key.less
index 79bde0cc3d84ea556d3481d17ce5ac8c3b438d21..c1367a3f85fcd2c64db80a0c7090b136d85e0030 100644
--- a/resources/less/metager/pages/key.less
+++ b/resources/less/metager/pages/key.less
@@ -2,6 +2,8 @@
 @import "../variables.less";
 @import "../general/cards.less";
 #key-site {
+    background-color:@background-color;
+    color:@text-color;
     .section {
         .card-medium;
         margin: 8px 0;
diff --git a/resources/less/metager/pages/resultpage.less b/resources/less/metager/pages/resultpage.less
index a2a703ea1965582827ae6a5a7ecdf2f0dc31a7ca..a7b8077d7c9338de645c5531361d6c94c52380fb 100644
--- a/resources/less/metager/pages/resultpage.less
+++ b/resources/less/metager/pages/resultpage.less
@@ -1,5 +1,6 @@
 @import "./resultpage/result-page.less";
 @import "./resultpage/result.less";
+@import "./resultpage/quicktips.less";
 @import "./resultpage/product.less";
 @import "./resultpage/result-saver.less";
 @import "./resultpage/keyboard-nav.less";
\ No newline at end of file
diff --git a/resources/less/metager/pages/resultpage/quicktips.less b/resources/less/metager/pages/resultpage/quicktips.less
index edddec3d475e5e2d67cc162a8242c0ce8076e359..7cfbf6e79ae6e8632d27bfd7ae4ecc6c1c524884 100644
--- a/resources/less/metager/pages/resultpage/quicktips.less
+++ b/resources/less/metager/pages/resultpage/quicktips.less
@@ -1,9 +1,7 @@
 /* Quicktips */
-@import "../../bs-variables.less";
-@import "../../variables.less";
-@import "../../mixins/mixins.less";
-@import "../../general/cards.less";
-@import "../../general/general.less";
+// @import "../../variables.less";
+// @import "../../general/cards.less";
+// @import "../../general/general.less";
 @quicktip-font-large: @result-font-large;
 @quicktip-font-medium: @result-font-medium;
 @quicktip-font-small: @result-font-small;
@@ -27,7 +25,7 @@
         }
         margin: 10px 0px;
         padding: 10px 10px 10px 10px;
-        border: 1px solid #ccc;
+        border: 1px solid #777;
         background-color: @quicktip-background-color;
         details:not([open=""]) {
             .quicktip-summary p {
@@ -79,7 +77,7 @@
                 .quicktip-hoster {
                     flex-grow: 0;
                     font-size: @quicktip-font-small;
-                    color: #808080;
+                    color: @text-color;
                     white-space: nowrap;
                 }
                 .quicktip-extender {
@@ -160,7 +158,7 @@
                     }
                 }
                 .author {
-                    color: #404040;
+                    color: @text-color;
                     font-size: 12px;
                     align-self: flex-end;
                 }
diff --git a/resources/less/metager/pages/resultpage/result-page.less b/resources/less/metager/pages/resultpage/result-page.less
index a54a8f2fdaa9545cad6577107cb2547f27d5394f..985b981aaee0b3f2c81775836b373f2f0ba9b6c2 100644
--- a/resources/less/metager/pages/resultpage/result-page.less
+++ b/resources/less/metager/pages/resultpage/result-page.less
@@ -142,7 +142,7 @@ nav .input-group {
 }
 
 #helpButton {
-    color: black;
+    color: @text-color;
 }
 
 a {
@@ -355,7 +355,8 @@ a {
         grid-area: searchbar;
         padding-top: @padding-small-default;
         background-color: @resultpage-background-color;
-        box-shadow: 0px 1px 3px 2px white, 1px 0px 1px 2px white;
+        border: solid @metager-orange;
+        border-width: 0px 0px 2px 0px;
         position: sticky;
     }
     #foki {
diff --git a/resources/less/metager/pages/settings.less b/resources/less/metager/pages/settings.less
index d4392c2febdb812e4e0f518e79d95a21d99da70d..9c319700f9b370e169bb8d42695355c5c4bd2dff 100644
--- a/resources/less/metager/pages/settings.less
+++ b/resources/less/metager/pages/settings.less
@@ -58,6 +58,8 @@
             #blacklist{
                 flex-grow:1;
                 width:100%;
+                background-color:@input-bg;
+                color:@input-text;
             }
             button{
                 width:200px;
@@ -92,6 +94,8 @@
         #loadSettings{
             flex-grow:1;
             width:100%;
+            background-color:@input-bg;
+            color:@input-text;
         }
     }
 }
\ No newline at end of file
diff --git a/resources/less/metager/parts/bitpay.less b/resources/less/metager/parts/bitpay.less
index e1ce9a01f2a45a768e22418951ca66ccb476c555..69baae7fb1456657f383081d7f6278ea3a0c5ae2 100644
--- a/resources/less/metager/parts/bitpay.less
+++ b/resources/less/metager/parts/bitpay.less
@@ -4,8 +4,8 @@
         border: 0;
     }
     .field-input {
-        color: #666;
-        background: #fff;
+        color: @input-text;
+        background: @input-bg;
         border: 1px solid #eee;
         height: 30px;
         box-sizing: border-box;
diff --git a/resources/less/metager/parts/button.less b/resources/less/metager/parts/button.less
index d3fe30e001b5e14cdf85376f7051ee233bc0cba1..8755c09f9dec2b5e0a9c98bef82dc6a3aab33b08 100644
--- a/resources/less/metager/parts/button.less
+++ b/resources/less/metager/parts/button.less
@@ -22,8 +22,8 @@
 // Alternative buttons
 
 .btn-default {
-color: #333;
-background-color: #ffffff;
+color: @input-text;
+background-color: @input-bg;
 border-color: #ccc;
 }
 
diff --git a/resources/less/metager/parts/scaffolding.less b/resources/less/metager/parts/scaffolding.less
index 6f7f55a9c2d76442b1c35769894b3ade14f9fc24..1d926a60700ab7423e3039dc2b4d5007a4f51522 100644
--- a/resources/less/metager/parts/scaffolding.less
+++ b/resources/less/metager/parts/scaffolding.less
@@ -11,8 +11,8 @@ body{
     font-family:"Helvetica Neue", Helvetica, Arial, sans-serif ;
     font-size: 1em;
     line-height:1.428571429 ;
-    color: black;
-    background-color:#fff ;
+    color:@text-color;
+    background-color:@background-color;
 
 }
 
diff --git a/resources/less/metager/parts/searchbar.less b/resources/less/metager/parts/searchbar.less
index c546cef27de039ab403bb874ec2e483013052a94..969bf687b6a2c1b5212053b988904d421c1ddd24 100644
--- a/resources/less/metager/parts/searchbar.less
+++ b/resources/less/metager/parts/searchbar.less
@@ -1,6 +1,5 @@
 @searchbar-border-color: #585858;
 @searchbar-border-color-light: #777777;
-@searchbar-background-color: white;
 .searchbar {
     display: -webkit-box;
     display: -moz-box;
@@ -69,6 +68,7 @@
                 -webkit-box-shadow: none;
                 box-shadow: none;
                 background-color: transparent;
+                color:@text-color;
             }
             #search-delete-btn {
                 position: absolute;
@@ -78,12 +78,14 @@
                 height: calc(100% - 4px);
                 margin: 2px 2px 2px 0;
                 border: none;
-                background-color: white;
+                background-color: transparent;
                 font-size: 1.8em;
                 font-weight: normal;
                 display: none;
+                filter: invert(@icon-color);
                 &:hover {
                     color: red;
+                    filter: invert(0);
                 }
             }
         }
@@ -95,6 +97,7 @@
                 background-color: transparent;
                 padding: 0;
                 color: #585858;
+                filter: invert(@icon-color);
             }
         }
     }
diff --git a/resources/less/metager/parts/sidebar.less b/resources/less/metager/parts/sidebar.less
index f80e03453ed624a72ae102981cf467d614e4714d..462a61df0ed5fb0fc5833de66e07f899363a40c0 100644
--- a/resources/less/metager/parts/sidebar.less
+++ b/resources/less/metager/parts/sidebar.less
@@ -47,6 +47,9 @@
                     text-align: center;
                     margin-right: 7px;
                 }
+                &>img {
+                    filter: invert(@icon-color);
+                }
             }
             &>label {
                 font-size: 1.1em;
diff --git a/resources/less/metager/startpage-only-dark.less b/resources/less/metager/startpage-only-dark.less
new file mode 100644
index 0000000000000000000000000000000000000000..cef1a570c44b02841570be259630658d44be05e3
--- /dev/null
+++ b/resources/less/metager/startpage-only-dark.less
@@ -0,0 +1,2 @@
+@import "./variables-dark.less";
+@import "./startpage-only.less";
\ No newline at end of file
diff --git a/resources/less/metager/startpage-only-light.less b/resources/less/metager/startpage-only-light.less
new file mode 100644
index 0000000000000000000000000000000000000000..d82aed9f68c676bd200a769f3e48008739733c0a
--- /dev/null
+++ b/resources/less/metager/startpage-only-light.less
@@ -0,0 +1,2 @@
+@import "./variables.less";
+@import "./startpage-only.less";
\ No newline at end of file
diff --git a/resources/less/metager/startpage-only.less b/resources/less/metager/startpage-only.less
index 8fa4db3dbabcd448a5f9a8b7d92989386f36f4a3..e5ac5557d39b9d6d92b2efe908c397a876eda36f 100644
--- a/resources/less/metager/startpage-only.less
+++ b/resources/less/metager/startpage-only.less
@@ -75,20 +75,21 @@ html {
     top: 0;
     z-index: 10;
 
+
     &>:nth-child(1) {
-        background-color: #EEEEEE;
+        background-color: @story-privacy-background;
     }
     &>:nth-child(2) {
-        background-color: #ffffff;
-        color: #AD1A00
+        background-color: @story-ngo-background;
+        color: @story-ngo-color;
     }
     &>:nth-child(3) {
-        background-color: #edfdff;
-        color: #0C4690;
+        background-color: @story-diversity-background;
+        color: @story-diversity-color;
     }
     &>:nth-child(4) {
-        background-color: #e3ffe9;
-        color: #0c621A;
+        background-color: @story-eco-background;
+        color: @story-eco-color;
     }
 
     &>a {
@@ -170,7 +171,7 @@ footer {
 #story-container > section > p { // sets all paragraphs for all sections
     grid-area: paragraph;
     font-size: 30px;
-    color: #474747;
+    color: @story-font-color;
     max-width: 1100px;
     padding-right: 50px;
 }
@@ -192,44 +193,47 @@ footer {
 // following lines set the background and heading color of each section
 #story-privacy {
     margin-bottom: 0;
-    background-color: #EEEEEE;
+    background-color: @story-privacy-background;
+    .story-icon{
+        filter: invert(@icon-color);
+    }
 }
 
 #story-ngo {
     grid-area: "icn-ngo";
-    background-color: #ffffff;
+    background-color: @story-ngo-background;
     clip-path: polygon(0 0, 40% 0, 50% @clippathHeight, 60% 0, 100% 0, 100% 100%, 0 100%);
 }
 
 #story-ngo > h1 {
-    color:#AD1A00;
+    color:@story-ngo-color;
 }
 
 #story-diversity {
     grid-area: "icn-diversity";
-    background-color: #edfdff;
+    background-color: @story-diversity-background;
     clip-path: polygon(0 0, 40% 0, 50% @clippathHeight, 60% 0, 100% 0, 100% 100%, 0 100%);
 }
 
 #story-diversity > h1 {
-    color: #0c4690;
+    color: @story-diversity-color;
 }
 
 #story-eco {
     grid-area: "icn-eco";
-    background-color: #e3ffe9;
+    background-color: @story-eco-background;
     clip-path: polygon(0 0, 40% 0, 50% @clippathHeight, 60% 0, 100% 0, 100% 100%, 0 100%);
 }
 
 #story-eco > h1 {
-    color:#0c621a;
+    color: @story-eco-color;
 }
 #story-container #story-plugin > h1 { 
     font-size:60px;
 }
 #story-container #story-plugin { 
     min-height: 60vh;
-    background-color: white;
+    background-color: @story-plugin-background;
     clip-path: polygon(0 0, 40% 0, 50% @clippathHeight, 60% 0, 100% 0, 100% 100%, 0 100%);
 }
 
diff --git a/resources/less/metager/variables-dark.less b/resources/less/metager/variables-dark.less
index 72a7ba33f57dd558731bba57f7753480ede196b5..3db77f7a009061a4b4e63050e5c36c6899c17689 100644
--- a/resources/less/metager/variables-dark.less
+++ b/resources/less/metager/variables-dark.less
@@ -5,7 +5,7 @@
 @background-color: @color-almost-black;
 @background-color-mobile: @color-almost-black;
 // General text color.
-@text-color: @color-white;
+@text-color: @color-almost-white;
 // Default textual link color.
 @link-color: #FF8000;
 // Sidebar styles
@@ -14,3 +14,21 @@
 @card-background-color: @color-strong-grey;
 // Default Borde Color 
 @border-color: #727272;
+
+// Story coloring
+@story-privacy-background: @color-strong-grey;
+@story-privacy-color: @color-almost-white;
+@story-ngo-background:#200000;
+@story-ngo-color:#ffaaaa;
+@story-diversity-background:#000020;
+@story-diversity-color:#aaaaff;
+@story-eco-background:#002000;
+@story-eco-color:#aaffaa;
+@story-plugin-background: @color-almost-black;
+@story-font-color: @color-almost-white;
+@icon-color:1;
+
+@searchbar-background-color: @color-almost-black;
+
+@input-background: @color-almost-black;
+@input-text: @color-almost-white;
\ No newline at end of file
diff --git a/resources/less/metager/variables.less b/resources/less/metager/variables.less
index 1541bf4acc6669dc8a4b0e598a86abcb4862ea36..91eaf06ca77fe24f9a90052eaa3920e4102fca14 100644
--- a/resources/less/metager/variables.less
+++ b/resources/less/metager/variables.less
@@ -62,3 +62,20 @@ sans-serif;
 @quicktip-background-color: @color-white;
 // Color of the Spruch author
 @spruch-author-color: @color-strong-grey;
+
+@story-privacy-background: @color-almost-white;
+@story-privacy-color:@color-almost-black;
+@story-ngo-background:white;
+@story-ngo-color:#AD1A00;
+@story-diversity-background:#edfdff;
+@story-diversity-color:#0c4690;
+@story-eco-background:#e3ffe9;
+@story-eco-color:#0c621a;
+@story-plugin-background:white;
+@story-font-color:#474747;
+@icon-color:0;
+
+@searchbar-background-color: white;
+
+@input-background:#fff;
+@input-text:#000;
\ No newline at end of file
diff --git a/resources/views/hilfe.blade.php b/resources/views/hilfe.blade.php
index 3cfe835b45524b3cb9bdbb13434a329f9c4481ed..2878b3ee9f5d70fc56dd6fb634f3e78a0b456e20 100644
--- a/resources/views/hilfe.blade.php
+++ b/resources/views/hilfe.blade.php
@@ -6,8 +6,10 @@
 	<div class="alert alert-warning" role="alert">{!! trans('hilfe.achtung') !!}</div>
 	<h1 class="page-title">{!! trans('hilfe.title') !!}</h1>
 
-	<section>
+	<section id="startpage">
 		<h2>{!! trans('hilfe.title.2') !!}</h2>
+		<h3>{!! trans('hilfe.startpage.title') !!}</h3>
+		<p>{!! trans('hilfe.startpage.info') !!}</p>
 		<h3>{!! trans('hilfe.searchfield.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.searchfield.info') !!}</p>
@@ -30,7 +32,7 @@
 			</ul>
 		</div>
 	</section>
-	<section>
+	<section id="results">
 		<h3>{!! trans('hilfe.result.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.result.info.1') !!}</p>
@@ -58,7 +60,7 @@
 			</ul>
 		</div>
 	</section>
-	<section>
+	<section id="severalwords">
 		<h3>{!! trans('hilfe.mehrwortsuche.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.mehrwortsuche.1') !!}</p>
@@ -72,7 +74,7 @@
 		</div>
 	</section>
 
-	<section>
+	<section id="capitalizationrules">
 		<h3>{!! trans('hilfe.grossklein.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.grossklein.1') !!}</p>
@@ -108,7 +110,7 @@
 	</section>
 	<h2 id="dienste">{!! trans('hilfe.dienste') !!}</h2>
 	<h3><i class="fa fa-angle-double-right"></i> {!! trans('hilfe.dienste.kostenlos') !!}</h3>
-	<section>
+	<section id="app">
 		<div id="mg-app" style="margin-top: -100px"></div>
 		<div style="margin-top: 100px"></div>
 		<h3>{!! trans('hilfe.app.title') !!}</h3>
@@ -116,13 +118,13 @@
 			<p>{!! trans('hilfe.app.1') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="plugin">
 		<h3>{!! trans('hilfe.plugin.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.plugin.1') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="asso">
 		<h3>{!! trans('hilfe.suchwortassoziator.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.suchwortassoziator.1') !!}</p>
@@ -130,49 +132,49 @@
 			<p>{!! trans('hilfe.suchwortassoziator.3') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="widget">
 		<h3>{!! trans('hilfe.widget.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.widget.1') !!}</p>
 		</div>
 	</section>
 	<h2>{!! trans('hilfe.datenschutz.title') !!}</h2>
-	<section>
+	<section id="factcheck">
 		<h3>{!! trans('hilfe.datenschutz.faktencheck.heading') !!}</h3>
 		<div>
 			<p>@lang('hilfe.datenschutz.faktencheck.body.1')</p>
 			<p>@lang('hilfe.datenschutz.faktencheck.body.2')</p>
 		</div>
 	</section>
-	<section>
+	<section id="tracking">
 		<h3>{!! trans('hilfe.datenschutz.1') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.datenschutz.2') !!}</p>
 			<p>{!! trans('hilfe.datenschutz.3') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="torhidden">
 		<h3>{!! trans('hilfe.tor.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.tor.1') !!}</p>
 			<p>{!! trans('hilfe.tor.2') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="proxy">
 		<h3>{!! trans('hilfe.proxy.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.proxy.1') !!}</p>
 		</div>
 	</section>
 
-	<section>
+	<section id="maps">
 		<h3>{!! trans('hilfe.maps.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.maps.1') !!}</p>
 			<p>{!! trans('hilfe.maps.2') !!}</p>
 			<p>{!! trans('hilfe.maps.3') !!}</p>
 		</div>
-	</section>
+	</section id="faq">
 	<h2>{!! trans('hilfe.faq.title') !!}</h2>
 	<section>
 		<h3>{!! trans('hilfe.metager.title') !!}</h3>
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index 5e080dacd9e22a41d34d7a453f0f9679de80ecb9..0458eebfc058db83f8312a6d9c13d7ab428915bb 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -1,4 +1,4 @@
-@extends('layouts.staticPages', ['page' => 'startpage', 'css' => [mix('css/themes/startpage-only.css')]])
+@extends('layouts.staticPages', ['page' => 'startpage'])
 
 @section('title', $title )
 
@@ -16,9 +16,9 @@
       @endif
 	    <div id="plugin-btn-div">
 		@if($agent->isMobile() && ($agent->browser() === "Chrome" || $agent->browser() === "Edge"))
-		<button type="submit" id="plugin-btn" form="searchForm" title="{{ trans('index.plugin-title') }}" name="chrome-plugin" value="true"><i class="fa fa-plug" aria-hidden="true"></i> {{ trans('index.plugin') }}</a>
+		<button type="submit" id="plugin-btn" form="searchForm" title="{{ trans('index.plugin-title') }}" name="chrome-plugin" value="true"><img src="public/img" alt="+"> {{ trans('index.plugin') }}</a>
 		@else
-		<a id="plugin-btn" href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/plugin") }}" title="{{ trans('index.plugin-title') }}"><i class="fa fa-plug" aria-hidden="true"></i> {{ trans('index.plugin') }}</a>
+		<a id="plugin-btn" href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/plugin") }}" title="{{ trans('index.plugin-title') }}"><img src="/img/plug-in.svg" alt="+"> {{ trans('index.plugin') }}</a>
 		@endif
 	</div>
     </div>
diff --git a/resources/views/key.blade.php b/resources/views/key.blade.php
index fe93f23679b7405c1398279435a54fb57c411f97..e1854db3aafc41a5979fcb314cce4cd2f43aa521 100644
--- a/resources/views/key.blade.php
+++ b/resources/views/key.blade.php
@@ -3,7 +3,15 @@
 @section('title', $title )
 
 @section('content')
-<link type="text/css" rel="stylesheet" href="{{ mix('/css/key.css') }}" />
+
+<link type="text/css" rel="stylesheet" href="{{ mix('css/key.css') }}"/>
+@if(Cookie::get('dark_mode') === "2")
+	<link type="text/css" rel="stylesheet" href="{{ mix('css/key-dark.css') }}"/>
+@elseif(Cookie::get('dark_mode') === "1")
+	<link type="text/css" rel="stylesheet" href="{{ mix('css/key.css') }}"/>
+@else
+    <link type="text/css" rel="stylesheet" media="(prefers-color-scheme:dark)" href="{{ mix('css/key-dark.css') }}"/>
+@endif
 <div id="key-site">
     <div class="section">
         <h1>{{ trans('key.h1')}}</h1>
diff --git a/resources/views/layouts/researchandtabs.blade.php b/resources/views/layouts/researchandtabs.blade.php
index 17a26ccd3eae3913021bea12859c68c075c6baac..b0c59b3a9de4ad8caeeb4b02d96dfe43085ec044 100644
--- a/resources/views/layouts/researchandtabs.blade.php
+++ b/resources/views/layouts/researchandtabs.blade.php
@@ -34,11 +34,11 @@
 	</div>
 	<div id="additions-container">
 		@include('layouts.keyboardNavBox')
+		<div id="quicktips">
 		@if( $metager->showQuicktips() )
-			<div id="quicktips">
-				<iframe src="{{ $quicktips }}" frameborder="0"></iframe>
-			</div>
+			@include('quicktips', ['quicktips', $quicktips])
 		@endif
+		</div>
 	</div>
 	@include('parts.footer', ['type' => 'resultpage', 'id' => 'resultPageFooter'])
 </div>
diff --git a/resources/views/layouts/resultPage.blade.php b/resources/views/layouts/resultPage.blade.php
index 6144841f2c4a558d9dfb7139adad61543887d35f..028449497fe60ec2a168bb965986fffbed3a6136 100644
--- a/resources/views/layouts/resultPage.blade.php
+++ b/resources/views/layouts/resultPage.blade.php
@@ -15,15 +15,23 @@
 		<link rel="apple-touch-icon" sizes="152x152" href="/img/apple/touch-icon-152.png">
 		<link rel="apple-touch-icon" sizes="180x180" href="/img/apple/touch-icon-180.png">
 		@if(empty(Cookie::get('key')))
-		<link rel="search" type="application/opensearchdescription+xml" title="{{ trans('staticPages.opensearch') }}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin')) }}">
+			<link rel="search" type="application/opensearchdescription+xml" title="{{ trans('staticPages.opensearch') }}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin')) }}">
 		@else
-		<link rel="search" type="application/opensearchdescription+xml" title="{{ trans('staticPages.opensearch') }}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin', ['key' => Cookie::get('key')])) }}">
+			<link rel="search" type="application/opensearchdescription+xml" title="{{ trans('staticPages.opensearch') }}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin', ['key' => Cookie::get('key')])) }}">
 		@endif
 		<link href="/fonts/liberationsans/stylesheet.css" rel="stylesheet">
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome.css') }}" />
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome-solid.css') }}" />
-		<link type="text/css" rel="stylesheet alternate" href="{{ mix('css/themes/metager-dark.css') }}" title="MetaGer Dark"/>
-		<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}" title="MetaGer"/>
+
+		<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}"/>
+		@if(Cookie::get('dark_mode') === "2")
+			<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager-dark.css') }}"/>	
+		@elseif(Cookie::get('dark_mode') === "1")
+			<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}"/>
+		@else
+		<link type="text/css" rel="stylesheet" media="(prefers-color-scheme:dark)" href="{{ mix('css/themes/metager-dark.css') }}"/>
+		@endif
+
 @endif
 		<title>{{ $eingabe }} - MetaGer</title>
 		<meta content="width=device-width, initial-scale=1.0, user-scalable=no" name="viewport" />
diff --git a/resources/views/layouts/resultpage/resources.blade.php b/resources/views/layouts/resultpage/resources.blade.php
index 05173510d86345b513576881f1fe15a0dc101004..df5f88b490c473b199c0f3c7cd3085e460704461 100644
--- a/resources/views/layouts/resultpage/resources.blade.php
+++ b/resources/views/layouts/resultpage/resources.blade.php
@@ -17,5 +17,13 @@
 	<link href="/fonts/liberationsans/stylesheet.css" rel="stylesheet">
 	<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome.css') }}" />
 	<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome-solid.css') }}" />
-	<link type="text/css" rel="stylesheet alternate" href="{{ mix('css/themes/metager-dark.css') }}" title="MetaGer Dark"/>
-	<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}" title="MetaGer"/>
+
+	<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}"/>
+	@if(Cookie::get('dark_mode') === "2")
+		<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager-dark.css') }}"/>
+	@elseif(Cookie::get('dark_mode') === "1")
+		<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}"/>
+	@else
+		<link type="text/css" rel="stylesheet" media="(prefers-color-scheme:dark)" href="{{ mix('css/themes/metager-dark.css') }}"/>
+	@endif
+	
diff --git a/resources/views/layouts/staticPages.blade.php b/resources/views/layouts/staticPages.blade.php
index 16e63d5957f11711d1c100340a03c2b48b6cc0aa..55eee8b1749c6c90d386dbc2ebb234224196d8c4 100644
--- a/resources/views/layouts/staticPages.blade.php
+++ b/resources/views/layouts/staticPages.blade.php
@@ -26,8 +26,27 @@
 		@else
 		<link rel="search" type="application/opensearchdescription+xml" title="{{ trans('staticPages.opensearch') }}" href="{{  LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), action('StartpageController@loadPlugin', ['key' => Cookie::get('key')])) }}">
 		@endif
-		<link type="text/css" rel="stylesheet alternate" href="{{ mix('css/themes/metager-dark.css') }}" title="MetaGer Dark"/>
-		<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}" title="MetaGer"/>
+
+		<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}"/>
+		@if(isset($page) && $page === 'startpage')
+			<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/startpage-only-light.css') }}"/>
+		@endif
+		@if(Cookie::get('dark_mode') === "2")
+			<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager-dark.css') }}"/>
+			@if(isset($page) && $page === 'startpage')
+				<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/startpage-only-dark.css') }}"/>
+			@endif
+		@elseif(Cookie::get('dark_mode') === "1")
+			<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/metager.css') }}"/>
+			@if(isset($page) && $page === 'startpage')
+				<link type="text/css" rel="stylesheet" href="{{ mix('css/themes/startpage-only-light.css') }}"/>
+			@endif
+		@else
+			<link type="text/css" rel="stylesheet" media="(prefers-color-scheme:dark)" href="{{ mix('css/themes/metager-dark.css') }}"/>
+			@if(isset($page) && $page === 'startpage')
+				<link type="text/css" rel="stylesheet" media="(prefers-color-scheme:dark)" href="{{ mix('css/themes/startpage-only-dark.css') }}"/>
+			@endif
+		@endif
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/utility.css') }}" />
 		<link href="/fonts/liberationsans/stylesheet.css" rel="stylesheet">
 		<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome.css') }}" />
diff --git a/resources/views/parts/sidebar.blade.php b/resources/views/parts/sidebar.blade.php
index 6f85855e60d9fc12b34b7917fd38f6dcbffdc463..1a0fd40802ce7375afcd95e0444503e94cd516c3 100644
--- a/resources/views/parts/sidebar.blade.php
+++ b/resources/views/parts/sidebar.blade.php
@@ -114,6 +114,31 @@
         </li>
       </ul>
     </li>
+    <li class="metager-dropdown">
+      <input id="settingsToggle" class="sidebarCheckbox" type="checkbox">
+      <label for="settingsToggle" class="metager-dropdown-toggle navigation-element" aria-haspopup="true" id="navigationEinstellung" tabindex=0>
+      <img src="/img/icon-settings.svg"alt="" aria-hidden="true" id="sidebar-img-language"> 
+        <span>{{ trans('sidebar.nav28') }}</span>
+        <span class="caret"></span>
+      </label>
+      <ul class="metager-dropdown-content">
+          <li>
+            <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/settings?fokus=web&url=" . urlencode(url()->full())) }}" >{{ trans('index.foki.web') }}</a>
+          </li>
+          <li>
+            <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/settings?fokus=bilder&url=" . urlencode(url()->full())) }}" >{{ trans('index.foki.bilder') }}</a>
+          </li>
+          <li>
+            <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/settings?fokus=produkte&url=" . urlencode(url()->full())) }}" >{{ trans('index.foki.produkte') }}</a>
+          </li>
+          <li>
+            <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/settings?fokus=nachrichten&url=" . urlencode(url()->full())) }}" >{{ trans('index.foki.nachrichten') }}</a>
+          </li>
+          <li>
+            <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/meta/settings?fokus=science&url=" . urlencode(url()->full())) }}" >{{ trans('index.foki.science') }}</a>
+          </li>
+        </ul>
+    </li>
     <li class="metager-dropdown">
       <input id="languagesToggle" class="sidebarCheckbox" type="checkbox">
       <label for="languagesToggle" class="metager-dropdown-toggle navigation-element" aria-haspopup="true" id="navigationSprache" tabindex=0>
diff --git a/resources/views/plugin-page.blade.php b/resources/views/plugin-page.blade.php
index c2a46a534c8ea90a8d738427fe2458d41546f2ce..f262fb346375e14fd7ec16e462b7c8eb23fb8b72 100644
--- a/resources/views/plugin-page.blade.php
+++ b/resources/views/plugin-page.blade.php
@@ -85,7 +85,7 @@
 
 	@elseif ($agent->isPhone())
 		@if ($browser === 'Firefox')
-			@if (version_compare($agent->version($agent->browser()), "80.0") <= 0))
+			@if (version_compare($agent->version($agent->browser()), '80.') >= 0))
 				@include ('plugin/mobile/firefox/v80')
 				@include ('plugin/mobile/firefox-klar/v8-8')
 			@else
diff --git a/resources/views/quicktips.blade.php b/resources/views/quicktips.blade.php
index 6fa679cf65fd25ab3e02af788260f55783900250..f354bda8b7ff7dadefffc7704e3bf4325b39b28b 100644
--- a/resources/views/quicktips.blade.php
+++ b/resources/views/quicktips.blade.php
@@ -1,19 +1,5 @@
-<!DOCTYPE html>
-<html lang="{{ LaravelLocalization::getCurrentLocale() }}">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>{{ $search }} - MetaGer Quicktips</title>
-  <link type="text/css" rel="stylesheet" href="{{ mix('css/quicktips.css') }}" />
-  <link href="/fonts/liberationsans/stylesheet.css" rel="stylesheet">
-	<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome.css') }}" />
-	<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome-solid.css') }}" />
-</head>
-<body id="quicktips">
 @foreach($quicktips as $quicktip)
   <div class="quicktip" type="{{ $quicktip->type }}">
     @include('parts.quicktip', ['quicktip' => $quicktip])
   </div>
-@endforeach
-</body>
-</html>
+@endforeach
\ No newline at end of file
diff --git a/resources/views/settings/allSettings.blade.php b/resources/views/settings/allSettings.blade.php
index 263ae46e4e720c35fc9abe16ef8e93df9adbe341..0eb677d10a271c88e8e853a6e6cb49a3e11df9d6 100644
--- a/resources/views/settings/allSettings.blade.php
+++ b/resources/views/settings/allSettings.blade.php
@@ -34,6 +34,8 @@
                         @lang('settings.key')
                         @elseif(strpos($key, "_blpage"))
                         @lang('settings.blentry')
+                        @elseif($key === 'dark_mode')
+                        @lang('settings.dm')
                         @endif
                         </td>
                         <td>
diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php
index e673165a34a4710b3e0f794881524cc4d7a91fdb..28b15877d6447e2c682595bbea6507e87a5c97ab 100644
--- a/resources/views/settings/index.blade.php
+++ b/resources/views/settings/index.blade.php
@@ -122,12 +122,22 @@
         @endif
     </div>
 
-    @if(LaravelLocalization::getCurrentLocale() === "de")
+    
         <div class="card-light">
             <h2>Weitere Einstellungen</h2>
             <form id="setting-form" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('enableSetting')) }}" method="post" class="form">
                 <input type="hidden" name="fokus" value="{{ $fokus }}">
                 <input type="hidden" name="url" value="{{ $url }}">
+                <div class="form-group">
+                    <label for="dm">@lang('settings.darkmode')</label>
+                    <select name="dm" id="dm" class="form-control">
+                        <option value="system" {{ !Cookie::has('dark_mode') ? "disabled selected" : "" }}>@lang('settings.system')</option>
+                        <option value="off" {{ Cookie::get('dark_mode') === "1" ? "disabled selected" : "" }}>@lang('settings.light')</option>
+                        <option value="on" {{ Cookie::get('dark_mode') === "2" ? "disabled selected" : "" }}>@lang('settings.dark')</option>
+                    </select>
+                    <small>@lang('settings.darkmode-hint')</small>
+                </div>
+                @if(LaravelLocalization::getCurrentLocale() === "de")
                 <div class="form-group">
                     <label for="zitate">Zitate</label>
                     <select name="zitate" id="zitate" class="form-control">
@@ -135,10 +145,10 @@
                         <option value="off" {{ Cookie::get($fokus . "_setting_zitate") === "off" ? "disabled selected" : "" }}>Nicht Anzeigen</option>
                     </select>
                 </div>
+                @endif
                 <button type="submit" class="btn btn-default">@lang('settings.save')</button>
             </form>
         </div>
-    @endif
     <div class="card-light" id="actions">
         @if($settingActive)
         <div id="reset">
diff --git a/resources/views/widget/sitesearch.blade.php b/resources/views/widget/sitesearch.blade.php
index 2fab7e6228008d8d477adec0e9f90929f13fd59d..57a5ccaa9ef242363834ee58af87a70b5b7dc659 100644
--- a/resources/views/widget/sitesearch.blade.php
+++ b/resources/views/widget/sitesearch.blade.php
@@ -19,6 +19,7 @@
 		<h2>{{ trans('sitesearch.generated.1') }}</h2>
 		{!! $template !!}
 	</div>
+	<div class="card-medium">
 		<h2>{{ trans('sitesearch.generated.5') }} <button id="copyButton" class="btn btn-default" type="button"><i class="fa fa-paperclip" aria-hidden="true"></i> {{ trans('websearch.head.copy') }}</button></h2>
 		<textarea id="codesnippet" readonly style="width:100%;height:500px">
 			{!! $template !!}
diff --git a/resources/views/widget/websearch.blade.php b/resources/views/widget/websearch.blade.php
index fbc3b06e4bfd49bdfb3c340b17038289da6bb682..0db062d0735f82a3fa4858eef83da4e03de4816e 100644
--- a/resources/views/widget/websearch.blade.php
+++ b/resources/views/widget/websearch.blade.php
@@ -9,9 +9,11 @@
 		<h2>{{ trans('websearch.head.3') }}</h2>
 		{!! $template !!}
 	</div>
-	<h2>{{ trans('websearch.head.7') }} <button id="copyButton" class="btn btn-default" type="button"><i class="fa fa-paperclip" aria-hidden="true"></i> {{ trans('websearch.head.copy') }}</button></h2>
-	<textarea id="codesnippet" readonly style="width:100%;height:500px">
-		{{ $template }}
-	</textarea>
-	<script src="{{ mix('js/widgets.js') }}"></script>
+	<div class="card-medium">
+		<h2>{{ trans('websearch.head.7') }} <button id="copyButton" class="btn btn-default" type="button"><i class="fa fa-paperclip" aria-hidden="true"></i> {{ trans('websearch.head.copy') }}</button></h2>
+		<textarea id="codesnippet" readonly style="width:100%;height:500px">
+			{{ $template }}
+		</textarea>
+		<script src="{{ mix('js/widgets.js') }}"></script>
+	</div>
 @endsection
diff --git a/tests/Browser/Pages/App.php b/tests/Browser/Pages/App.php
index c28c9a7039fed75cb5955bc0af2f1457df1e7a05..e1c50cf24d5f6200f5a56344e46d23a8e05b5b99 100644
--- a/tests/Browser/Pages/App.php
+++ b/tests/Browser/Pages/App.php
@@ -31,7 +31,7 @@ class App extends Page
             ->waitForText("This App brings the full Metager power to your smartphone.")
             ->assertTitle("Apps - MetaGer")
             ->switchLanguage("Español")
-            ->waitForText("Diese App bringt die volle Power unserer Suchmaschine auf ihr Smartphone.")
+            ->waitForText("Con esta aplicación, obtiene toda la potencia de nuestro motor de búsqueda en su smartphone.")
             ->assertTitle("Aplicaciones - MetaGer")
             ->switchLanguage("Deutsch");
 
diff --git a/tests/Browser/Pages/Plugin.php b/tests/Browser/Pages/Plugin.php
index e47cea91d3efb62ec460b346cb9ad3c45e9862a8..8e4810d0a29d79f958b0a3c94d74dd879822ac38 100644
--- a/tests/Browser/Pages/Plugin.php
+++ b/tests/Browser/Pages/Plugin.php
@@ -25,7 +25,7 @@ class Plugin extends Page
     public function assert(Browser $browser)
     {
         $browser->assertPathIs($this->url())
-            ->waitForText("MetaGer zum Firefox hinzufügen")
+            ->waitForText("MetaGer zu Firefox hinzufügen")
             ->assertTitle("Plugin - MetaGer")
             ->switchLanguage("English")
             ->waitForText("Add MetaGer to your Firefox")
diff --git a/webpack.mix.js b/webpack.mix.js
index 5efff061f2901b8db391adffa5e57df9d8dac112..85676019d600dfc381508f425f300acbd8bbf93f 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -22,13 +22,13 @@ mix
   .less("resources/less/metager/metager.less", "public/css/themes/metager.css", {
     strictMath: true
   })
-  .less("resources/less/metager/startpage-only.less", "public/css/themes/startpage-only.css", {
+  .less("resources/less/metager/startpage-only-light.less", "public/css/themes/startpage-only-light.css", {
     strictMath: true
   })
-  .less("resources/less/metager/metager-dark.less", "public/css/themes/metager-dark.css", {
+  .less("resources/less/metager/startpage-only-dark.less", "public/css/themes/startpage-only-dark.css", {
     strictMath: true
   })
-  .less("resources/less/metager/pages/resultpage/quicktips.less", "public/css/quicktips.css", {
+  .less("resources/less/metager/metager-dark.less", "public/css/themes/metager-dark.css", {
     strictMath: true
   })
   .less("resources/less/font-awesome/fontawesome.less", "public/css/fontawesome.css", {
@@ -37,12 +37,12 @@ mix
   .less("resources/less/font-awesome/solid.less", "public/css/fontawesome-solid.css", {
     strictMath: true
   })
-  .less(
-    "resources/less/metager/pages/key.less",
-    "public/css/key.css", {
+  .less("resources/less/metager/pages/key.less", "public/css/key.css", {
     strictMath: true
-  }
-  )
+  })
+  .less("resources/less/metager/pages/key-dark.less", "public/css/key-dark.css", {
+    strictMath: true
+  })
   .less("resources/less/utility.less", "public/css/utility.css", {
     strictMath: true
   })