From 639a560449b30837568af61d01ddd55623c48ac9 Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Wed, 6 May 2026 22:35:44 +0200 Subject: [PATCH] retro mode --- apps/frontend/src/layout/AppLayout.vue | 116 ++- apps/frontend/src/main.ts | 1 + apps/frontend/src/page/blog/BlogIndexPage.vue | 201 +++-- apps/frontend/src/page/blog/BlogShowPage.vue | 125 +-- .../src/page/catalog/CatalogIndexPage.vue | 148 ++-- .../src/page/catalog/CatalogShowPage.vue | 367 ++++---- apps/frontend/src/page/code/CodeIndexPage.vue | 195 ++--- .../frontend/src/page/contact/ContactPage.vue | 258 +++--- apps/frontend/src/page/home/HomePage.vue | 575 ++++++------ .../src/page/howtos/HowtosIndexPage.vue | 249 +++--- apps/frontend/src/page/team/TeamIndexPage.vue | 100 +-- apps/frontend/src/styles/global.css | 533 ++---------- apps/frontend/src/styles/retro.css | 823 ++++++++++++++++++ 13 files changed, 1929 insertions(+), 1762 deletions(-) create mode 100644 apps/frontend/src/styles/retro.css diff --git a/apps/frontend/src/layout/AppLayout.vue b/apps/frontend/src/layout/AppLayout.vue index da1f9fc..2017da4 100644 --- a/apps/frontend/src/layout/AppLayout.vue +++ b/apps/frontend/src/layout/AppLayout.vue @@ -1,39 +1,47 @@ @@ -41,60 +49,42 @@ import { ref, watch } from 'vue' import { RouterLink, useRoute } from 'vue-router' +function getCookie(name: string): string | null { + const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)')) + return match ? decodeURIComponent(match[1]) : null +} + +function setCookie(name: string, value: string, days = 365) { + const expires = new Date(Date.now() + days * 864e5).toUTCString() + document.cookie = `${name}=${encodeURIComponent(value)};expires=${expires};path=/` +} + const menuOpen = ref(false) const route = useRoute() +const isRetroMode = ref(getCookie('retro-mode') === '1') function toggleMenu() { menuOpen.value = !menuOpen.value } +function toggleRetroMode() { + isRetroMode.value = !isRetroMode.value + setCookie('retro-mode', isRetroMode.value ? '1' : '0') +} + watch(() => route.path, () => { menuOpen.value = false }) diff --git a/apps/frontend/src/main.ts b/apps/frontend/src/main.ts index ce61e4d..d4d617f 100644 --- a/apps/frontend/src/main.ts +++ b/apps/frontend/src/main.ts @@ -2,5 +2,6 @@ import { createApp } from 'vue' import { router } from './router/index.router' import App from './App.vue' import './styles/global.css' +import './styles/retro.css' createApp(App).use(router).mount('#app') diff --git a/apps/frontend/src/page/blog/BlogIndexPage.vue b/apps/frontend/src/page/blog/BlogIndexPage.vue index f620693..2820a5a 100644 --- a/apps/frontend/src/page/blog/BlogIndexPage.vue +++ b/apps/frontend/src/page/blog/BlogIndexPage.vue @@ -1,58 +1,75 @@ @@ -78,7 +95,7 @@ function getPermalink(path: string): string { function getCleanPreview(content: string): string { if (!content) return '' - return content.replace(/[#*`_\[\]()]/g, '').trim().slice(0, 250) + '...' + return content.replace(/[#*`_\[\]()]/g, '').trim().slice(0, 300) + '...' } onMounted(async () => { @@ -93,61 +110,69 @@ onMounted(async () => { diff --git a/apps/frontend/src/page/blog/BlogShowPage.vue b/apps/frontend/src/page/blog/BlogShowPage.vue index 8ae5938..8966a6c 100644 --- a/apps/frontend/src/page/blog/BlogShowPage.vue +++ b/apps/frontend/src/page/blog/BlogShowPage.vue @@ -1,48 +1,41 @@ @@ -76,32 +69,42 @@ onMounted(async () => { diff --git a/apps/frontend/src/page/catalog/CatalogIndexPage.vue b/apps/frontend/src/page/catalog/CatalogIndexPage.vue index 962a9a0..6968a2d 100644 --- a/apps/frontend/src/page/catalog/CatalogIndexPage.vue +++ b/apps/frontend/src/page/catalog/CatalogIndexPage.vue @@ -1,63 +1,63 @@ diff --git a/apps/frontend/src/page/catalog/CatalogShowPage.vue b/apps/frontend/src/page/catalog/CatalogShowPage.vue index a5a4480..8b83e25 100644 --- a/apps/frontend/src/page/catalog/CatalogShowPage.vue +++ b/apps/frontend/src/page/catalog/CatalogShowPage.vue @@ -1,170 +1,168 @@ @@ -192,6 +190,7 @@ const devReleases = computed(() => .sort((a, b) => new Date(b.UpdatedAt).getTime() - new Date(a.UpdatedAt).getTime()) ) +const allReleases = computed(() => [...stableReleases.value, ...devReleases.value]) const latestStable = computed(() => stableReleases.value[0] ?? null) onMounted(async () => { @@ -211,79 +210,11 @@ onMounted(async () => { diff --git a/apps/frontend/src/page/code/CodeIndexPage.vue b/apps/frontend/src/page/code/CodeIndexPage.vue index cd6235f..25a4e61 100644 --- a/apps/frontend/src/page/code/CodeIndexPage.vue +++ b/apps/frontend/src/page/code/CodeIndexPage.vue @@ -1,99 +1,61 @@ diff --git a/apps/frontend/src/page/contact/ContactPage.vue b/apps/frontend/src/page/contact/ContactPage.vue index fddd1f9..2e80468 100644 --- a/apps/frontend/src/page/contact/ContactPage.vue +++ b/apps/frontend/src/page/contact/ContactPage.vue @@ -1,99 +1,79 @@ diff --git a/apps/frontend/src/page/home/HomePage.vue b/apps/frontend/src/page/home/HomePage.vue index e88e1fd..5641986 100644 --- a/apps/frontend/src/page/home/HomePage.vue +++ b/apps/frontend/src/page/home/HomePage.vue @@ -1,179 +1,188 @@ @@ -284,204 +293,132 @@ onUnmounted(() => { diff --git a/apps/frontend/src/page/howtos/HowtosIndexPage.vue b/apps/frontend/src/page/howtos/HowtosIndexPage.vue index f8b10a0..35e21e4 100644 --- a/apps/frontend/src/page/howtos/HowtosIndexPage.vue +++ b/apps/frontend/src/page/howtos/HowtosIndexPage.vue @@ -1,66 +1,79 @@ @@ -90,110 +103,58 @@ onMounted(async () => { diff --git a/apps/frontend/src/page/team/TeamIndexPage.vue b/apps/frontend/src/page/team/TeamIndexPage.vue index 949df60..934ec40 100644 --- a/apps/frontend/src/page/team/TeamIndexPage.vue +++ b/apps/frontend/src/page/team/TeamIndexPage.vue @@ -1,36 +1,26 @@