{{ props.user.display_name }} @@ -38,17 +38,17 @@ const props = defineProps<{ flex-direction: column; } -#cover-colour { +#cover-color { border-radius: 12px 12px 0 0; min-height: 60px; - background-color: #442505; + background-color: var(--primary-color); } #main-body { border-radius: 0 0 12px 12px; padding: 12px; min-height: 280px; - background-color: #4b3018; + background-color: var(--accent-color); overflow-wrap: break-word; hyphens: manual; } @@ -75,7 +75,7 @@ const props = defineProps<{ } #about-me { - background-color: #34200f; + background-color: var(--secondary-color); border-radius: 12px; margin-top: 32px; diff --git a/layouts/client.vue b/layouts/client.vue index 0f79cbf..e49fc15 100644 --- a/layouts/client.vue +++ b/layouts/client.vue @@ -55,12 +55,13 @@ const guilds: GuildResponse[] | undefined = await fetchWithApi("/me/guilds"); display: flex; justify-content: space-evenly; align-items: center; + background-color: var(--topbar-background-color); padding-left: 5dvw; padding-right: 5dvw; } #client-root>div:nth-child(-n+4) { - border-bottom: 1px solid rgb(70, 70, 70); + border-bottom: 1px solid var(--padding-color); } #__nuxt { @@ -93,18 +94,19 @@ const guilds: GuildResponse[] | undefined = await fetchWithApi("/me/guilds"); gap: 2dvh; padding-left: .5dvw; padding-right: .5dvw; - border-right: 1px solid rgb(70, 70, 70); + border-right: 1px solid var(--padding-color); + background-color: var(--sidebar-background-color); padding-top: 1.5dvh; } #middle-left-column { padding-left: 1dvw; padding-right: 1dvw; - border-right: 1px solid rgb(70, 70, 70); + border-right: 1px solid var(--padding-color); } #home-button { - border-bottom: 1px solid rgb(70, 70, 70); + border-bottom: 1px solid var(--padding-color); padding-bottom: 1dvh; } diff --git a/pages/servers/[serverId]/channels/[channelId].vue b/pages/servers/[serverId]/channels/[channelId].vue index c9aa8d2..f0e3e08 100644 --- a/pages/servers/[serverId]/channels/[channelId].vue +++ b/pages/servers/[serverId]/channels/[channelId].vue @@ -85,14 +85,15 @@ function toggleInvitePopup(e: Event) { #middle-left-column { padding-left: 1dvw; padding-right: 1dvw; - border-right: 1px solid rgb(70, 70, 70); + border-right: 1px solid var(--padding-color); + background-color: var(--sidebar-background-color); } #members-container { padding-top: 1dvh; padding-left: 1dvw; padding-right: 1dvw; - border-left: 1px solid rgb(70, 70, 70); + border-left: 1px solid var(--padding-color); } #members-list { diff --git a/pages/settings.vue b/pages/settings.vue index 5db18fe..96944ba 100644 --- a/pages/settings.vue +++ b/pages/settings.vue @@ -98,8 +98,8 @@ function selectCategory(page: Page) { #sidebar { min-width: 25dvw; max-width: 25dvw; - background-color: #2f3136; - color: white; + background-color: var(--sidebar-background-color); + color: var(--text-color); padding: 1dvh 1dvw; margin-left: auto; @@ -127,11 +127,11 @@ function selectCategory(page: Page) { } .sidebar-focus { - background-color: #383B41; + background-color: var(--sidebar-highlighted-background-color); } #sidebar li:hover { - background-color: #40444b; + background-color: var(--sidebar-highlighted-background-color); } #sub-page { @@ -149,7 +149,7 @@ function selectCategory(page: Page) { height: 0.2dvh; display: block; margin: 0.8dvh 1dvw; - background-color: #2c2e32; + background-color: var(--spacing-color); } /* applies to child pages too */ diff --git a/public/themes/dark.css b/public/themes/dark.css new file mode 100644 index 0000000..8245724 --- /dev/null +++ b/public/themes/dark.css @@ -0,0 +1,19 @@ +:root { + --text-color: #f7eee8; + --secondary-text-color: #f0e8e4; + + --chat-background-color: #1f1e1d; + --chat-highlighted-background-color: #2f2b28; + --sidebar-background-color: #2e2a27; + --sidebar-highlighted-background-color: #36322b; + --topbar-background-color: #2a2723; + + --padding-color: #484848; + + --primary-color: #f4741f; + --primary-highlighted-color: #f68a3f; + --secondary-color: #7c4018; + --secondary-highlighted-color: #8f5b2c; + --accent-color: #b35719; + --accent-highlighted-color: #c76a2e; +} \ No newline at end of file diff --git a/public/themes/default-themes.json b/public/themes/default-themes.json new file mode 100644 index 0000000..fb9478d --- /dev/null +++ b/public/themes/default-themes.json @@ -0,0 +1,4 @@ +[ + "dark.css", + "light.css" +] \ No newline at end of file diff --git a/public/themes/light.css b/public/themes/light.css new file mode 100644 index 0000000..cb51d8c --- /dev/null +++ b/public/themes/light.css @@ -0,0 +1,19 @@ +:root { + --text-color: #170f08; + --secondary-text-color: #2f2b28; + + --chat-background-color: #f0ebe8; + --chat-highlighted-background-color: #e8e4e0; + --sidebar-background-color: #dbd8d4; + --sidebar-highlighted-background-color: #d4d0ca; + --topbar-background-color: #dfdbd6; + + --padding-color: #484848; + + --primary-color: #df5f0b; + --primary-highlighted-color: #ef6812; + --secondary-color: #e8ac84; + --secondary-highlighted-color: #f8b68a; + --accent-color: #e68b4e; + --accent-highlighted-color: #f69254; +} \ No newline at end of file