diff --git a/src/components/Article.vue b/src/components/Article.vue
index ccadb5ffde47b2cbf7be999d7f07d085d8aa0d65..b1fc1ac649e2d08f8f2e6f50a7c10dc2bc7906eb 100644
--- a/src/components/Article.vue
+++ b/src/components/Article.vue
@@ -1,28 +1,24 @@
 <template>
-  <article v-show="article.lemmas.length || article.error" :class="dictionary">
+  <article v-if="article" :class="dictionary">
     <Header :lemmas="article.lemmas" :dictionary="dictionary" :article_id="article.article_id" />
-    <section v-if="! article.error && article.body.pronunciation && article.body.pronunciation.length">
+    <section v-if="article.body.pronunciation && article.body.pronunciation.length">
       <h3>Uttale</h3>
         <ul>
           <DefElement v-for="(element, index) in article.body.pronunciation" :dictionary="dictionary" :key="index" :body='element' @article-click="article_link_click" />
         </ul>
     </section>
-    <section v-if="! article.error && article.body.etymology && article.body.etymology.length">
+    <section v-if="article.body.etymology && article.body.etymology.length">
       <h3>Etymologi</h3>
         <ul>
           <DefElement v-for="(element, index) in article.body.etymology" :dictionary="dictionary" :key="index" :body='element' @article-click="article_link_click" />
         </ul>
     </section>
-    <section v-if="! article.error">
+    <section>
       <h3>Definisjoner</h3>
       <ol>
         <Definition v-for="definition in article.body.definitions" :dictionary="dictionary" :level="1" :key="definition.id" :body='definition' @article-click="article_link_click" />
       </ol>
     </section>
-    <section v-if="article.error">
-      <h1>Ooops...</h1>
-      <p>{{article.error}}</p>
-    </section>
   </article>
 </template>
 
diff --git a/src/components/DictionaryView.vue b/src/components/DictionaryView.vue
index a06381e23b97799d1084734ce68c04127c7b4d07..f57101bfedaa26993bad567acdc5aad6dbff2385 100644
--- a/src/components/DictionaryView.vue
+++ b/src/components/DictionaryView.vue
@@ -1,5 +1,5 @@
 <template>
-  <main :class="(article.error || article.lemmas.length || search_results.length || waiting) ? '' : 'welcome  '">
+  <main :class="(article || waiting || error) ? '' : 'welcome  '">
     <div class="search_container">
       <div class="lang_select_container">
         <v-radio-group row v-model="lang">
@@ -13,12 +13,12 @@
           </v-radio>
           <v-radio value="bob" color="secondary">
             <template v-slot:label>
-              <span>bokmål</span>
+              <span><span class="verbose">bokmål (</span>bm<span class="verbose">)</span></span>
             </template>
           </v-radio>
           <v-radio value="nob" color="secondary">
             <template v-slot:label>
-              <span>nynorsk</span>
+              <span><span class="verbose">nynorsk (</span>nn<span class="verbose">)</span></span>
             </template>
           </v-radio>
         </v-radio-group>
@@ -26,14 +26,14 @@
       <Autocomplete @submit="select_result" :endpoint="api_pref">
       </Autocomplete>
     </div>
-    <div id="spinner">
-      <v-progress-circular indeterminate color="secondary" size="120" v-show="waiting"></v-progress-circular>
+    <div id="spinner" v-if="waiting">
+      <v-progress-circular indeterminate color="secondary" size="120"></v-progress-circular>
     </div>
-    <SearchResults :hits="search_results" :lang="lang" @article-click="article_link_click" v-show="! waiting" />
-    <div id="single_article_container">
+    <SearchResults :hits="search_results" :lang="lang" @article-click="article_link_click" v-if="! waiting" />
+    <div id="single_article_container" v-if="article">
       <Article :key="article_key" :article="article" @article-click="article_link_click" />
     </div>
-    <div class="welcome" v-show="! (article.error || article.lemmas.length || search_results.length || waiting)">
+    <div class="welcome" v-if="! (article || error || search_results.length || waiting)">
       <div class="monthly">
         <div>
           <Article :article="monthly_bm" @article-click="article_link_click" />
@@ -43,6 +43,10 @@
         </div>
       </div>
     </div>
+    <div class="error" v-if="error">
+      <h1>Oooops...</h1>
+      {{error}}
+    </div>
   </main>
 </template>
 
@@ -67,24 +71,19 @@ function navigate_to_article(self, source) {
   .then(function(response){
     self.article = Object.assign(response.data, {'dictionary': self.$route.params.lang})
     self.search_results = []
+    self.error = null
   })
   .catch(function(error){
     if (error.response && error.response.status == 404) {
-      self.article = {
-        lemmas: [],
-        error: "Vi har ingen artikkel med id " + self.$route.params.id
-      }
+      self.error = "Vi har ingen artikkel med id " + self.$route.params.id
     } else {
-      self.article = {
-        lemmas: [],
-        error: "Noe gikk galt..."
-      }
+      self.error = "Noe gikk galt..."
       console.log(error)
     }
   })
   .then(function(response){
     self.waiting_for_articles = false
-    history.replaceState({article: self.article, search_results: [], lang: self.lang}, '')
+    history.replaceState({article: self.article, search_results: [], lang: self.lang, error: self.error}, '')
     if (source) {
       self.$plausible.trackEvent('internal link incoming', {props: {origin: source}})
     }
@@ -96,33 +95,23 @@ function navigate_to_search(self, query) {
   .then(function(response){
     self.search_results = response.data
     if (! self.search_results.length) {
-      self.article = {
-        lemmas: [],
-        error: "Vi fant ingen resultater for '" + decodeURIComponent(query) + "'. (Søkeforlag kommer i en senere oppatering av Ordbøkene)"
-      }
+      self.error = "Vi fant ingen resultater for '" + decodeURIComponent(query) + "'. (Søkeforlag kommer i en senere oppatering av Ordbøkene)"
+    } else {
+      self.error = null
     }
   })
   .catch(function(error){
     if (error.response && error.response.status == 400) {
-      self.article = {
-        lemmas: [],
-        error: "Søkeuttrykket inneholder feil"
-      }
+      self.error = "Søkeuttrykket inneholder feil"
     } else if (error.response) {
-      self.article = {
-        lemmas: [],
-        error: "Noe gikk galt på serversiden"
-      }
+      self.error = "Noe gikk galt på serversiden"
     } else {
-      self.article = {
-        lemmas: [],
-        error: "Nettverksproblemer, prøv igjen"
-      }
+      self.error = "Nettverksproblemer, prøv igjen"
     }
   })
   .then(function(_){
     self.waiting_for_articles = false
-    history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang}, '')
+    history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang, error: self.error}, '')
   })
 }
 
@@ -131,28 +120,21 @@ function navigate_to_word(self, word) {
   .then(function(response){
     self.search_results = response.data.filter(result => result.match.length == word.length)
     if (! self.search_results.length) {
-      self.article = {
-        lemmas: [],
-        error: "Ordet '" + decodeURIComponent(word) + "' finnes ikke i ordbøkene"
-      }
+      self.error = "Ordet '" + decodeURIComponent(word) + "' finnes ikke i ordbøkene"
+    } else {
+      self.error = null
     }
   })
   .catch(function(error){
     if (error.response) {
-      self.article = {
-        lemmas: [],
-        error: "Noe gikk galt på serversiden"
-      }
+      self.error = "Noe gikk galt på serversiden"
     } else {
-      self.article = {
-        lemmas: [],
-        error: "Nettverksproblemer, prøv igjen"
-      }
+      self.error = "Nettverksproblemer, prøv igjen"
     }
   })
   .then(function(_){
     self.waiting_for_articles = false
-    history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang}, '')
+    history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang, error: self.error}, '')
   })
 }
 
@@ -165,9 +147,10 @@ export default {
       lang: 'bob,nob',
       waiting_for_articles: true,
       waiting_for_metadata: true,
-      article: {lemmas: [], body:{pronunciation: [], definitions: [], etymology: []}},
-      monthly_bm: {lemmas: [], body:{pronunciation: [], definitions: [], etymology: []}},
-      monthly_nn: {lemmas: [], body:{pronunciation: [], definitions: [], etymology: []}}
+      article: null,
+      error: null,
+      monthly_bm: null,
+      monthly_nn: null
     }
   },
   computed: {
@@ -188,21 +171,22 @@ export default {
       if(event.articles){
         this.$router.push('/' + this.lang + '/w/' + event.word)
         this.search_results = event.articles
-        this.article = {lemmas: [], body:{pronunciation: [], definitions: [], etymology: []}}
-        history.replaceState({article: this.article, search_results: this.search_results, lang: this.lang}, '')
+        this.article = null
+        this.error = null
+        history.replaceState({article: this.article, search_results: this.search_results, lang: this.lang, error: this.error}, '')
         this.$plausible.trackEvent('dropdown selection', {props: {query: event.label, match: event.match}})
       }else{
         this.waiting_for_articles = true
-        this.article = {lemmas: [], body:{pronunciation: [], definitions: [], etymology: []}}
+        this.article = null
         this.$router.push(`/${this.lang}/search/${event.q}`)
         navigate_to_search(this, event.q)
         this.$plausible.trackEvent('dropdown selection', {props: {query: event.label, match: '<fritekstsøk>'}})
       }
     },
     article_link_click: function(item) {
-      if (this.article.article_id == item.article_id){
+      if (this.article && this.article.article_id == item.article_id){
         this.article_key++
-        history.replaceState({article: this.article, search_results: this.search_results, lang: this.lang}, '')
+        history.replaceState({article: this.article, search_results: this.search_results, lang: this.lang, error: this.error}, '')
       }else{
         this.article = {lemmas: [], body:{pronunciation: [], definitions: [], etymology: []}}
         this.waiting_for_articles = true
@@ -239,7 +223,7 @@ export default {
       else {
         self.lang = self.$route.params.lang || 'bob,nob'
         self.waiting_for_articles = false
-        history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang}, '')
+        history.replaceState({article: self.article, search_results: self.search_results, lang: self.lang, error: self.error}, '')
       }
 
       // words of the month
@@ -251,10 +235,7 @@ export default {
         self.monthly_nn = Object.assign(response.data, {dictionary: 'nob'})
       })
     }).catch(function(_){
-      self.article = {
-        lemmas: [],
-        error: "Et nettverksproblem hindret lasting av siden. Prøv å laste siden på nytt"
-      }
+      self.error = "Et nettverksproblem hindret lasting av siden. Prøv å laste siden på nytt"
       self.waiting_for_metadata = false
       self.waiting_for_articles = false
     })
@@ -271,6 +252,7 @@ export default {
         self.article = event.state.article
         self.search_results = event.state.search_results
         self.lang = event.state.lang
+        self.error = event.state.error
       }
     }
 
@@ -279,8 +261,6 @@ export default {
 </script>
 
 <style>
-
-
 main {
   padding-bottom: 20px;
   flex: 1 0 auto;
@@ -293,7 +273,7 @@ main.welcome {
   background-attachment: fixed;
 }
 
-#search_results, #spinner, #single_article_container, div.welcome, div.search_container {
+#search_results, #spinner, #single_article_container, div.welcome, div.search_container, .error {
   padding-left: calc((100vw - 1000px) / 2);
   padding-right: calc((100vw - 1000px) / 2);
 }
@@ -324,7 +304,7 @@ div.monthly article.nob .dict-label::before {
 
 
 .search_container {
-  max-width: 1400px;
+  max-width: 1500px;
   padding-top: 50px;
 }
 
diff --git a/src/plugins/vuetify.js b/src/plugins/vuetify.js
index 888f40673ab87b2441c460c06e5115804d676c63..935b46e0c31a5d3f77cec8dcd988d736aaef3569 100644
--- a/src/plugins/vuetify.js
+++ b/src/plugins/vuetify.js
@@ -14,7 +14,8 @@ export default new Vuetify({
         primary: '#560027',
         secondary: '#BC477B',
         tertiary: '#FDF4F5',
-        anchor: '#560027'
+        anchor: '#560027',
+        error: '#FDF4F5'
       }
     }
    },