Compare commits

..

3 commits

Author SHA1 Message Date
14f4ee86e5 feat: source page
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-05-28 07:13:40 +02:00
ed076c3edc feat: update navbar and add footer, we have global css files now 2025-05-28 07:13:06 +02:00
45c7311621 chore: ignore vscode settings 2025-05-28 07:12:27 +02:00
9 changed files with 250 additions and 39 deletions

3
.gitignore vendored
View file

@ -22,3 +22,6 @@ logs
.env .env
.env.* .env.*
!.env.example !.env.example
# Local settings
.vscode/

50
app.vue
View file

@ -1,14 +1,9 @@
<template> <template>
<nav id="navbar"> <div id="app">
<div id="navbar-left"> <Header />
<a href="/">Home</a>
</div>
<div id="navbar-right">
<NuxtLink href="/"><s>Register</s></NuxtLink>
<NuxtLink href="/"><s>Login</s></NuxtLink>
</div>
</nav>
<NuxtPage /> <NuxtPage />
<Footer />
</div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -18,42 +13,27 @@ const gorbBase = ref<string>(useAppConfig().gorbClientBaseURL);
</script> </script>
<style> <style>
html, html, body {
body {
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
box-sizing: border-box; box-sizing: border-box;
color: whitesmoke; color: var(--text-colour);
background-color: rgb(30, 30, 30); background-color: var(--background-colour);
height: 100%; height: 100%;
margin: 0; margin: 0;
} }
#app {
display: flex;
flex-direction: column;
min-height: 100vh;
}
#main { #main {
text-align: center; text-align: center;
margin-bottom: 32px;
} }
#navbar { .link, a {
display: flex;
justify-content: space-between;
margin-left: 3dvw;
margin-right: 3dvw;
margin-top: 2dvh;
padding-bottom: 2dvh;
border-bottom: 1px solid orange;
}
#navbar a {
text-decoration: none;
color: inherit;
}
#navbar-left,
#navbar-right {
display: flex;
gap: 2dvw;
}
.link {
color: inherit; color: inherit;
} }
</style> </style>

77
components/Footer.vue Normal file
View file

@ -0,0 +1,77 @@
<template>
<nav id="footer">
<div id="content">
<div id="source">
<a href="/source">SOURCE CODE</a>
</div>
<div id="socials">
<a href="https://docs.gorb.app" title="API Documentation">
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" fill="currentColor" class="bi bi-book" viewBox="0 0 16 16">
<path d="M1 2.828c.885-.37 2.154-.769 3.388-.893 1.33-.134 2.458.063 3.112.752v9.746c-.935-.53-2.12-.603-3.213-.493-1.18.12-2.37.461-3.287.811zm7.5-.141c.654-.689 1.782-.886 3.112-.752 1.234.124 2.503.523 3.388.893v9.923c-.918-.35-2.107-.692-3.287-.81-1.094-.111-2.278-.039-3.213.492zM8 1.783C7.015.936 5.587.81 4.287.94c-1.514.153-3.042.672-3.994 1.105A.5.5 0 0 0 0 2.5v11a.5.5 0 0 0 .707.455c.882-.4 2.303-.881 3.68-1.02 1.409-.142 2.59.087 3.223.877a.5.5 0 0 0 .78 0c.633-.79 1.814-1.019 3.222-.877 1.378.139 2.8.62 3.681 1.02A.5.5 0 0 0 16 13.5v-11a.5.5 0 0 0-.293-.455c-.952-.433-2.48-.952-3.994-1.105C10.413.809 8.985.936 8 1.783"/>
</svg>
</a>
<a href="https://git.gorb.app/gorb" title="Gorb's Forgejo">
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 24 24">
<path fill="currentColor" d="M16.777 0a2.9 2.9 0 1 1-2.529 4.322H12.91a4.266 4.266 0 0 0-4.265 4.195v2.118a7.076 7.076 0 0 1 4.147-1.42l.118-.002h1.338a2.9 2.9 0 0 1 5.43 1.422a2.9 2.9 0 0 1-5.43 1.422H12.91a4.266 4.266 0 0 0-4.265 4.195v2.319A2.9 2.9 0 0 1 7.222 24A2.9 2.9 0 0 1 5.8 18.57V8.589a7.109 7.109 0 0 1 6.991-7.108l.118-.001h1.338A2.9 2.9 0 0 1 16.778 0ZM7.223 19.905a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.389Zm9.554-10.464a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.39Zm0-7.735a1.194 1.194 0 1 0 0 2.389a1.194 1.194 0 0 0 0-2.389Z"/>
</svg>
</a>
</div>
</div>
</nav>
</template>
<script>
export default {
name: 'Header'
}
</script>
<style scoped>
#footer {
margin-top: auto;
padding: 2dvh 3.5dvh;
background-color: var(--background-secondary-colour);
border-top: 1px solid var(--secondary-colour);
color: var(--secondary-colour)
}
#content {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
#footer a {
text-decoration: none;
color: var(--secondary-colour)
}
#source {
display: flex;
font-weight: 300;
font-size: 90%;
margin-right: 4dvh;
}
#source a {
color: var(--accent-colour);
}
#socials {
display: flex;
gap: 2dvh;
margin-bottom: -1dvh;
}
svg {
width: 1.5em;
height: 1.5em;
shape-rendering: auto;
transition: filter 0.15s ease-in-out;
}
a:hover svg {
filter: brightness(140%);
}
</style>

47
components/Header.vue Normal file
View file

@ -0,0 +1,47 @@
<template>
<nav id="header">
<div id="header-left">
<a href="/">Home</a>
</div>
<div id="header-right">
<NuxtLink href="/"><s>Register</s></NuxtLink>
<NuxtLink href="/"><s>Login</s></NuxtLink>
</div>
</nav>
</template>
<script>
export default {
name: 'Header'
}
</script>
<style scoped>
#header {
--horizontal-padding: 25%;
padding: 2dvh var(--horizontal-padding);
display: flex;
justify-content: space-between;
position: sticky;
background-color: var(--background-secondary-colour);
color: var(--text-colour);
border-bottom: 1px solid var(--secondary-colour);
}
@media screen and (max-width: 1000px) {
#header {
--horizontal-padding: 5%;
}
}
#header a {
text-decoration: none;
color: inherit;
}
#header-left, #header-right {
display: flex;
gap: 2dvw;
}
</style>

View file

@ -3,6 +3,10 @@ export default defineNuxtConfig({
compatibilityDate: '2024-11-01', compatibilityDate: '2024-11-01',
devtools: { enabled: true }, devtools: { enabled: true },
modules: ['@nuxt/fonts', '@nuxt/image'], modules: ['@nuxt/fonts', '@nuxt/image'],
css: [
'@/public/variables.css',
'@/public/global.css'
],
app: { app: {
head: { head: {
title: 'Gorb - Open-Source Chat Platform', title: 'Gorb - Open-Source Chat Platform',

View file

@ -4,14 +4,13 @@
Welcome to <span id="gorb"> Welcome to <span id="gorb">
<span>G</span><span>O</span><span>R</span><span>B</span></span>!</h1> <span>G</span><span>O</span><span>R</span><span>B</span></span>!</h1>
<h2> <h2>
The <span id="open-source">Open-Source</span> and <span id="federated">Federated</span> The <span class="pansexual-gradient">Open-Source</span> and <span id="federated">Federated</span>
Chat Platform! Chat Platform!
</h2> </h2>
<NuxtLink class="link" href="/"><s>Go to web client</s></NuxtLink> <NuxtLink class="link" href="/"><s>Go to web client</s></NuxtLink>
<p id="not-exist">IT DOESN'T EXIST YET</p> <p id="not-exist">IT DOESN'T EXIST YET</p>
<p> <p>
BUT! Check out our <NuxtLink id="git-link" href="https://git.gorb.app/gorb">Git</NuxtLink> to check on our BUT! Check out our <NuxtLink id="git-link" href="https://git.gorb.app/gorb">Git</NuxtLink> to check on our progress!
progress!
</p> </p>
</div> </div>
</template> </template>

64
pages/source.vue Normal file
View file

@ -0,0 +1,64 @@
<template>
<div id="main">
<h2>
<span class="pansexual-gradient">Source Code</span>
</h2>
<div id="card-container">
<div class="card">
<a href="https://git.gorb.app/gorb/backend">
<h3>Backend</h3>
<p>Gorb's official backend</p>
</a>
</div>
<div class="card">
<a href="https://git.gorb.app/gorb/frontend">
<h3>Frontend</h3>
<p>Gorb's official frontend</p>
</a>
</div>
</div>
</div>
</template>
<script lang="ts" setup>
</script>
<style scoped>
#card-container {
--flex-direction: row;
display: flex;
flex-direction: var(--flex-direction);
justify-content: space-between;
gap: 48px;
width: fit-content;
max-width: 60vw;
margin: 48px auto;
}
@media screen and (max-width: 1000px) {
#card-container {
--flex-direction: column;
}
}
.card {
flex: 1;
padding: 32px;
border: 1px solid var(--accent-colour);
background-color: var(--primary-colour);
border-radius: 8px;
box-shadow: 0 8px 14px rgba(0, 0, 0, 0.15);
transition: background-color 0.3s ease-in-out;
cursor: pointer;
}
.card a {
text-decoration: none;
}
.card:hover {
background-color: var(--secondary-colour);
}
</style>

6
public/global.css Normal file
View file

@ -0,0 +1,6 @@
.pansexual-gradient {
background: linear-gradient(to right, #FE218C, #FED84E, #1CB3F7);
background-clip: text;
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}

31
public/variables.css Normal file
View file

@ -0,0 +1,31 @@
/* this file may want to be moved to a /styles folder, or /assets folder, or smth */
:root {
--text-colour: #141210;
--background-colour: #f4ebe0;
--background-secondary-colour: #efe4db;
--primary-colour: #f97635;
--secondary-colour: #cab39b;
--tertiary-colour: #e8ac84;
--accent-colour: #ed7a41;
}
@media (prefers-color-scheme: dark) {
:root {
--text-colour: #efedec;
--background-colour: #201d19;
--background-secondary-colour: #1d1915;
--primary-colour: #f97635;
--secondary-colour: #b35618;
--tertiary-colour: #7c4018;
--accent-colour: #cc764a;
}
}
/* unchanging no matter the theme */
:root {
--text-on-primary-colour: #fff;
--text-on-secondary-colour: #fff;
--text-on-accent-colour: #fff;
}