diff --git a/src/App.vue b/src/App.vue
index 55bb82c9ac7f56b397714e4c36c79718e5fede89..87236c353a7556c8295152ad9d2c2353faf8fa78 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -8,6 +8,7 @@ import { RouterLink, RouterView } from 'vue-router'
         <RouterLink to="/sparemaal">Sparemål</RouterLink>
         <RouterLink to="/spareutfordringer">Spareutfordringer</RouterLink>
         <RouterLink to="/profil">Profil</RouterLink>
+        <RouterLink to="/konfigurasjonSteg1">Konfigurasjon</RouterLink>
     </nav>
 
     <main>
diff --git a/src/assets/base.css b/src/assets/base.css
index da22042ddd2a38d0e7a76daebdd628ff252a5388..97ddcffedbe66a706b0c51ac50bd51809447e682 100644
--- a/src/assets/base.css
+++ b/src/assets/base.css
@@ -3,6 +3,7 @@
 :root {
     --black: #363739;
     --white: #ffffff;
+    --green: #95e35d;
 
     --bright: #f7da7c;
 
diff --git a/src/assets/head.png b/src/assets/head.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e6edb76b40cb4f25b9fa7eef99734d0d7bb90d3
Binary files /dev/null and b/src/assets/head.png differ
diff --git a/src/assets/litt.png b/src/assets/litt.png
new file mode 100644
index 0000000000000000000000000000000000000000..6add972367e016606dbea3a785abd0cc8b398134
Binary files /dev/null and b/src/assets/litt.png differ
diff --git a/src/assets/nose.png b/src/assets/nose.png
new file mode 100644
index 0000000000000000000000000000000000000000..2845ed5555b18c3c03e97d1c193dad506bc63852
Binary files /dev/null and b/src/assets/nose.png differ
diff --git a/src/assets/passe.png b/src/assets/passe.png
new file mode 100644
index 0000000000000000000000000000000000000000..7ce43e9f28288fe4b8d8a2c9372d9cf8e8269fb7
Binary files /dev/null and b/src/assets/passe.png differ
diff --git a/src/assets/pig.png b/src/assets/pig.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a10f0f9dabc23d2d2db0654c465448024bd9a66
Binary files /dev/null and b/src/assets/pig.png differ
diff --git a/src/assets/store.png b/src/assets/store.png
new file mode 100644
index 0000000000000000000000000000000000000000..54bfd38639ed5e7b57f220bf7330750b08e74544
Binary files /dev/null and b/src/assets/store.png differ
diff --git a/src/components/ContinueButtonComponent.vue b/src/components/ContinueButtonComponent.vue
new file mode 100644
index 0000000000000000000000000000000000000000..6b42981605e2a775d79af5c241188a6a8b11b2b7
--- /dev/null
+++ b/src/components/ContinueButtonComponent.vue
@@ -0,0 +1,30 @@
+<template>
+    <button class="continue-button" @click="onClick">Fortsett</button>
+</template>
+
+<script lang="ts">
+import { defineComponent } from 'vue'
+
+export default defineComponent({
+    name: 'ContinueButtonComponent',
+    emits: {
+        click: (event: Event) => true
+    },
+    setup(props, { emit }) {
+        const onClick = (event: Event) => {
+            emit('click', event)
+        }
+
+        return {
+            onClick
+        }
+    }
+})
+</script>
+
+<style>
+.continue-button {
+    @apply p-3 px-20 text-lg rounded-lg cursor-pointer transition-all font-bold
+    text-black bg-[var(--green)] hover:brightness-90 active:brightness-75;
+}
+</style>
diff --git a/src/router/index.ts b/src/router/index.ts
index 752bb2814616045a6b2b7f9dc19c280b7c08e3ec..cd6c196327186ffb6a352f60494349d2fb4f39b9 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -33,6 +33,26 @@ const router = createRouter({
             path: '/:pathMatch(.*)*',
             name: 'not-found',
             component: () => import('../views/NotFoundView.vue')
+        },
+        {
+            path: '/konfigurasjonSteg1',
+            name: 'configurations1',
+            component: () => import('../views/ConfigHabitChangeView.vue')
+        },
+        {
+            path: '/konfigurasjonSteg2',
+            name: 'configurations2',
+            component: () => import('../views/ConfigFamiliarWithSavingsView.vue')
+        },
+        {
+            path: '/konfigurasjonSteg3',
+            name: 'configurations3',
+            component: () => import('../views/ConfigSpendingItemsView.vue')
+        },
+        {
+            path: '/konfigurasjonSteg4',
+            name: 'configurations4',
+            component: () => import('../views/ConfigSpendingItemsAmountView.vue')
         }
     ]
 })
diff --git a/src/views/ConfigFamiliarWithSavingsView.vue b/src/views/ConfigFamiliarWithSavingsView.vue
new file mode 100644
index 0000000000000000000000000000000000000000..76d60f4a520fa4a1c14af9f4a3710f0a4067a9eb
--- /dev/null
+++ b/src/views/ConfigFamiliarWithSavingsView.vue
@@ -0,0 +1,60 @@
+<template>
+    <div class="flex flex-col items-center justify-center min-h-screen px-4 text-center">
+        <h1 class="mb-16 text-4xl font-bold lg:mb-20">Hvor kjent er du med sparing fra før?</h1>
+        <div class="grid grid-cols-1 gap-14 mb-20 md:grid-cols-3">
+            <div
+                :class="{
+                    'border-[var(--green)] border-4': selectedOption === 'litt',
+                    'border-gray-300 border-2': selectedOption !== 'litt'
+                }"
+                class="flex flex-col items-center justify-center w-64 h-64 p-2.5 cursor-pointer transition-colors rounded-lg hover:border-[var(--green)]-500"
+                @click="selectOption('litt')"
+            >
+                <img src="@/assets/nose.png" alt="Litt kjent" class="h-16 md:h-20" />
+                <p class="mt-2 text-lg font-bold">Litt kjent</p>
+            </div>
+            <div
+                :class="{
+                    'border-[var(--green)] border-4': selectedOption === 'noe',
+                    'border-gray-300 border-2': selectedOption !== 'noe'
+                }"
+                class="flex flex-col items-center justify-center w-64 h-64 p-2.5 cursor-pointer transition-colors rounded-lg hover:border-[var(--green)]"
+                @click="selectOption('noe')"
+            >
+                <img src="@/assets/head.png" alt="Noe kjent" class="h-16 md:h-20" />
+                <p class="mt-2 text-lg font-bold">Noe kjent</p>
+            </div>
+            <div
+                :class="{
+                    'border-[var(--green)] border-4': selectedOption === 'godt',
+                    'border-gray-300 border-2': selectedOption !== 'godt'
+                }"
+                class="flex flex-col items-center justify-center w-64 h-64 p-2.5 cursor-pointer transition-colors rounded-lg hover:border-[var(--green)]"
+                @click="selectOption('godt')"
+            >
+                <img src="@/assets/pig.png" alt="Godt kjent" class="h-16 md:h-20" />
+                <p class="mt-2 text-lg font-bold">Godt kjent</p>
+            </div>
+        </div>
+        <ContinueButtonComponent
+            @click="onButtonClick"
+            class="px-10 py-3 text-2xl font-bold self-end"
+        ></ContinueButtonComponent>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+import ContinueButtonComponent from '@/components/ContinueButtonComponent.vue'
+import router from '@/router'
+
+const selectedOption = ref<string | null>(null)
+
+const selectOption = (option: string) => {
+    selectedOption.value = option
+}
+
+const onButtonClick = () => {
+    router.push('/konfigurasjonSteg3')
+}
+</script>
diff --git a/src/views/ConfigHabitChangeView.vue b/src/views/ConfigHabitChangeView.vue
new file mode 100644
index 0000000000000000000000000000000000000000..55080b49f42201a755844efdc213a5ef7c7e0c23
--- /dev/null
+++ b/src/views/ConfigHabitChangeView.vue
@@ -0,0 +1,62 @@
+<script setup lang="ts">
+import { ref } from 'vue'
+import ContinueButtonComponent from '@/components/ContinueButtonComponent.vue'
+import router from '@/router'
+
+const selectedOption = ref<string | null>(null)
+
+const selectOption = (option: string) => {
+    selectedOption.value = option
+}
+
+const onButtonClick = () => {
+    router.push('/konfigurasjonSteg2')
+}
+</script>
+
+<template>
+    <div class="flex flex-col items-center justify-center min-h-screen px-4 text-center">
+        <h1 class="mb-16 text-4xl font-bold lg:mb-20">
+            Hvor store vaneedringer er du villig til å gjøre?
+        </h1>
+        <div class="grid grid-cols-1 gap-14 mb-20 md:grid-cols-3">
+            <div
+                :class="{
+                    'border-[var(--green)] border-4': selectedOption === 'litt',
+                    'border-gray-300 border-2': selectedOption !== 'litt'
+                }"
+                class="flex flex-col items-center justify-center w-64 h-64 p-2.5 cursor-pointer transition-colors rounded-lg hover:border-[var(--green)]"
+                @click="selectOption('litt')"
+            >
+                <img src="@/assets/litt.png" alt="litt" class="object-contain h-1/3" />
+                <p class="text-lg font-bold mt-2">Litt</p>
+            </div>
+            <div
+                :class="{
+                    'border-[var(--green)] border-4': selectedOption === 'passe',
+                    'border-gray-300 border-2': selectedOption !== 'passe'
+                }"
+                class="flex flex-col items-center justify-center w-64 h-64 p-2.5 cursor-pointer transition-colors rounded-lg hover:border-[var(--green)]"
+                @click="selectOption('passe')"
+            >
+                <img src="@/assets/passe.png" alt="passe" class="object-contain h-1/3" />
+                <p class="text-lg font-bold mt-2">Passe</p>
+            </div>
+            <div
+                :class="{
+                    'border-[var(--green)] border-4': selectedOption === 'store',
+                    'border-gray-300 border-2': selectedOption !== 'store'
+                }"
+                class="flex flex-col items-center justify-center w-64 h-64 p-2.5 cursor-pointer transition-colors rounded-lg hover:border-[var(--green)]"
+                @click="selectOption('store')"
+            >
+                <img src="@/assets/store.png" alt="store" class="object-contain h-1/3" />
+                <p class="text-lg font-bold mt-2">Store</p>
+            </div>
+        </div>
+        <ContinueButtonComponent
+            @click="onButtonClick"
+            class="px-10 py-3 text-2xl font-bold self-end"
+        ></ContinueButtonComponent>
+    </div>
+</template>
diff --git a/src/views/ConfigSpendingItemsAmountView.vue b/src/views/ConfigSpendingItemsAmountView.vue
new file mode 100644
index 0000000000000000000000000000000000000000..a0f7dc530c8bf2987f1b79c0395a13e726f28c6a
--- /dev/null
+++ b/src/views/ConfigSpendingItemsAmountView.vue
@@ -0,0 +1,50 @@
+<script setup lang="ts">
+import { ref } from 'vue'
+import ContinueButtonComponent from '@/components/ContinueButtonComponent.vue'
+
+interface Option {
+    name: string
+    amount: number | null
+}
+
+const options = ref<Option[]>([
+    { name: 'Snus', amount: null },
+    { name: 'Kaffe', amount: null },
+    { name: 'Kantina', amount: null }
+])
+
+const onButtonClick = () => {}
+</script>
+
+<template>
+    <div class="flex flex-col items-center justify-center min-h-screen px-4 text-center">
+        <h1 class="mb-8 lg:mb-12 text-4xl font-bold">Hvor mye penger per kjøp bruker du på ...</h1>
+        <div class="flex flex-col gap-2 mb-6">
+            <div
+                v-for="(option, index) in options"
+                :key="index"
+                :class="{
+                    'border-[var(--green)] border-4': option.amount !== null && option.amount >= 0,
+                    'border-gray-300 border-2': !(option.amount !== null && option.amount >= 0)
+                }"
+                class="flex justify-between items-center w-72 p-2 cursor-pointer transition-colors bg-white rounded-lg my-4"
+            >
+                <p class="text-xl font-bold">{{ option.name }}</p>
+                <div class="flex items-center">
+                    <input
+                        type="number"
+                        v-model="option.amount"
+                        class="w-20 h-10 p-1 rounded-md text-right text-lg"
+                        placeholder="Beløp"
+                        min="0"
+                    />
+                    <p class="ml-2 font-bold">kr</p>
+                </div>
+            </div>
+        </div>
+        <ContinueButtonComponent
+            @click="onButtonClick"
+            class="px-10 py-3 text-2xl self-end mt-12 mb-0"
+        ></ContinueButtonComponent>
+    </div>
+</template>
diff --git a/src/views/ConfigSpendingItemsView.vue b/src/views/ConfigSpendingItemsView.vue
new file mode 100644
index 0000000000000000000000000000000000000000..2b8b0c60381abbf0f1dca5d7c3d1a49d3ed6d7e6
--- /dev/null
+++ b/src/views/ConfigSpendingItemsView.vue
@@ -0,0 +1,54 @@
+<template>
+    <div class="flex flex-col items-center justify-center min-h-screen px-4 text-center">
+        <h1 class="mb-16 text-4xl font-bold lg:mb-20">Hva bruker du mye penger på?</h1>
+        <div class="flex flex-col gap-8 mb-6">
+            <div
+                v-for="(option, index) in options"
+                :key="index"
+                class="flex flex-col items-center justify-center w-72 h-18 p-2.5 cursor-pointer transition-colors bg-white rounded-lg"
+                :class="{
+                    'border-[var(--green)] border-4': option.selected,
+                    'border-gray-300 border-2': !option.selected
+                }"
+                @click="toggleOption(index)"
+            >
+                <p class="text-lg font-bold mt-2">{{ option.name }}</p>
+            </div>
+        </div>
+        <ContinueButtonComponent
+            @click="onButtonClick"
+            class="px-10 py-3 text-2xl self-end mt-16 mb-0"
+        ></ContinueButtonComponent>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+import ContinueButtonComponent from '@/components/ContinueButtonComponent.vue'
+import router from '@/router'
+
+interface Option {
+    name: string
+    selected: boolean
+}
+
+const options = ref<Option[]>([
+    { name: 'Snus', selected: false },
+    { name: 'Kaffe', selected: false },
+    { name: 'Kantina', selected: false }
+])
+
+const toggleOption = (index: number) => {
+    options.value[index].selected = !options.value[index].selected
+}
+
+const onButtonClick = () => {
+    const selectedOptions = options.value.filter((option) => option.selected)
+    if (selectedOptions.length <= 3) {
+        const selectedOptionNames = selectedOptions.map((option) => option.name)
+        router.push('/konfigurasjonSteg4')
+    } else {
+        console.error('Please select between 1 and 3 options.')
+    }
+}
+</script>