diff --git a/src/assets/scss/main.scss b/src/assets/scss/main.scss
index 57c656e..a1ee153 100644
--- a/src/assets/scss/main.scss
+++ b/src/assets/scss/main.scss
@@ -62,6 +62,12 @@ input {
   &:focus-visible {
     @apply outline-2 outline-cyan;
   }
+  &.inactive {
+    @apply bg-gray-600/50 hover:cursor-not-allowed;
+    &::placeholder {
+      @apply text-gray-300/50;
+    }
+  }
 }
 
 .form-field-full {
diff --git a/src/components/gui/UserPanel.vue b/src/components/gui/UserPanel.vue
index 2340446..1e70f24 100644
--- a/src/components/gui/UserPanel.vue
+++ b/src/components/gui/UserPanel.vue
@@ -7,7 +7,7 @@
           <button @click.stop="userPanelScreen = 'inventory'" :class="{ 'active': userPanelScreen === 'inventory' }" class="btn-cyan py-1.5 px-4 min-w-24">Inventory</button>
           <button @click.stop="userPanelScreen = 'equipment'" :class="{ 'active': userPanelScreen === 'equipment' }" class="btn-cyan py-1.5 px-4 min-w-24">Equipment</button>
           <button @click.stop="userPanelScreen = 'characterScreen'" :class="{ 'active': userPanelScreen === 'characterScreen' }" class="btn-cyan py-1.5 px-4 min-w-24">Character</button>
-          <button class="btn-cyan py-1.5 px-4 min-w-24">Settings</button>
+          <button @click.stop="userPanelScreen = 'settings'" :class="{ 'active': userPanelScreen === 'settings' }" class="btn-cyan py-1.5 px-4 min-w-24">Settings</button>
         </div>
         <div class="flex gap-2.5">
           <button class="w-5 h-5 m-0 p-0 relative hover:rotate-180 transition-transform duration-300 ease-in-out" @click="gameStore.toggleUserPanel">
@@ -18,12 +18,13 @@
           <button @click.stop="userPanelScreen = 'inventory'" :class="{ 'active': userPanelScreen === 'inventory' }" class="btn-cyan py-1.5 px-4 min-w-24">Inventory</button>
           <button @click.stop="userPanelScreen = 'equipment'" :class="{ 'active': userPanelScreen === 'equipment' }" class="btn-cyan py-1.5 px-4 min-w-24">Equipment</button>
           <button @click.stop="userPanelScreen = 'characterScreen'" :class="{ 'active': userPanelScreen === 'characterScreen' }" class="btn-cyan py-1.5 px-4 min-w-24">Character</button>
-          <button class="btn-cyan py-1.5 px-4 min-w-24">Settings</button>
+          <button @click.stop="userPanelScreen = 'settings'" :class="{ 'active': userPanelScreen === 'settings' }" class="btn-cyan py-1.5 px-4 min-w-24">Settings</button>
         </div>
       </div>
       <Inventory v-show="userPanelScreen === 'inventory'" />
       <Equipment v-show="userPanelScreen === 'equipment'" />
       <CharacterScreen v-show="userPanelScreen === 'characterScreen'" />
+      <Settings v-show="userPanelScreen === 'settings'" />
     </div>
   </div>
 </template>
@@ -34,6 +35,7 @@ import { useGameStore } from '@/stores/game';
 import Inventory from '@/components/gui/partials/Inventory.vue';
 import Equipment from '@/components/gui/partials/Equipment.vue';
 import CharacterScreen from '@/components/gui/partials/CharacterScreen.vue';
+import Settings from '@/components/gui/partials/Settings.vue';
 
 const gameStore = useGameStore()
 let userPanelScreen = ref('inventory')
diff --git a/src/components/gui/partials/Settings.vue b/src/components/gui/partials/Settings.vue
new file mode 100644
index 0000000..564c20c
--- /dev/null
+++ b/src/components/gui/partials/Settings.vue
@@ -0,0 +1,40 @@
+<template>
+    <div class="flex h-full w-full relative">
+        <div class="w-2/12 flex flex-col relative">
+            <!-- Settings Categories -->
+            <div class="relative p-2.5">
+                <h3>Settings</h3>
+                <div class="absolute left-0 bottom-0 w-full h-px bg-cyan-200"></div>
+            </div>
+            <a class="relative p-2.5 hover:cursor-pointer" :class="{ 'bg-cyan/80': settingCategory === 'character' }" @click.stop="settingCategory = 'character'">
+                <span>Character</span>
+                <div class="absolute left-0 bottom-0 w-full h-px bg-cyan-200"></div>
+            </a>
+            <a class="relative p-2.5 hover:cursor-pointer" :class="{ 'bg-cyan/80': settingCategory === 'account' }" @click.stop="settingCategory = 'account'">
+                <span>Account</span>
+                <div class="absolute left-0 bottom-0 w-full h-px bg-cyan-200"></div>
+            </a>
+            <a class="relative p-2.5 hover:cursor-pointer" :class="{ 'bg-cyan/80': settingCategory === 'audio' }" @click.stop="settingCategory = 'audio'">
+                <span>Audio</span>
+                <div class="absolute left-0 bottom-0 w-full h-px bg-cyan-200"></div>
+            </a>
+            <a class="relative p-2.5 hover:cursor-pointer" :class="{ 'bg-cyan/80': settingCategory === 'video' }" @click.stop="settingCategory = 'video'">
+                <span>Video</span>
+                <div class="absolute left-0 bottom-0 w-full h-px bg-cyan-200"></div>
+            </a>
+        </div>
+        <div class="absolute w-px bg-cyan-200 h-full top-0 left-1/6"></div>
+
+        <!-- Assets list -->
+        <div class="overflow-auto h-full w-10/12 flex flex-col relative">
+            <CharacterSettings v-show="settingCategory == 'character'" />
+        </div>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue';
+import CharacterSettings from '@/components/gui/partials/settings/CharacterSettings.vue'
+
+let settingCategory = ref('character')
+</script>
\ No newline at end of file
diff --git a/src/components/gui/partials/settings/CharacterSettings.vue b/src/components/gui/partials/settings/CharacterSettings.vue
new file mode 100644
index 0000000..ce31a35
--- /dev/null
+++ b/src/components/gui/partials/settings/CharacterSettings.vue
@@ -0,0 +1,29 @@
+<template>
+    <div class="h-full overflow-auto">
+        <div class="relative p-2.5 flex flex-col gap-5 h-72">
+            <h3>Character details</h3>
+            <button @click="toggle" class="btn-cyan px-4 py-1.5 w-24">Edit</button>
+            <form class="flex gap-2.5 flex-wrap">
+                <div class="form-field-half max-w-[300px]">
+                    <label for="name">Name</label>
+                    <input class="input-cyan" :class="{'inactive': !editCharacter}" type="text" name="name" placeholder="Ethereal" disabled />
+                </div>
+                <div class="form-field-half max-w-[300px]">
+                    <label for="class">Class</label>
+                    <input class="input-cyan" :class="{'inactive': !editCharacter}" type="text" name="class" placeholder="Knight" disabled />
+                </div>
+                <button v-if="editCharacter" @click="toggle" class="btn-cyan px-4 py-1.5 min-w-24" type="submit">Save</button>
+            </form>
+        </div>
+    </div>
+</template>
+
+<script setup lang="ts">
+import { ref } from 'vue'
+
+const editCharacter = ref(false)
+
+const toggle = () => {
+    editCharacter.value = !editCharacter.value
+}
+</script>
\ No newline at end of file
diff --git a/tailwind.config.js b/tailwind.config.js
index cfa7345..6389f61 100644
--- a/tailwind.config.js
+++ b/tailwind.config.js
@@ -79,7 +79,8 @@ export default {
           100: '#7f7f7f',
           200: '#696969',
           300: '#313638',
-          500: '#778899'
+          500: '#778899',
+          600: '#B1B2B5'
         }
       }
     },