From 0bd8fabb85e33eb8a91b105ebac405608c36ebe8 Mon Sep 17 00:00:00 2001 From: Corentin Thomasset Date: Sat, 17 Dec 2022 14:32:57 +0100 Subject: [PATCH] refactor(home): improved landing page ui --- src/App.vue | 2 +- src/assets/hero-gradient.svg | 4 +- src/components/MenuLayout.vue | 7 -- src/layouts/base.layout.vue | 84 ++++---------- src/layouts/index.ts | 2 + src/layouts/navbar.layout.vue | 174 +++++++++++++++++++++++++++++ src/layouts/tool.layout.vue | 35 +++--- src/pages/Home.page.vue | 48 ++++---- src/pages/home/components/hero.vue | 110 ++++++++++++++++++ src/router.ts | 1 + 10 files changed, 353 insertions(+), 114 deletions(-) create mode 100644 src/layouts/navbar.layout.vue create mode 100644 src/pages/home/components/hero.vue diff --git a/src/App.vue b/src/App.vue index 4c83a13f..a69bacc9 100644 --- a/src/App.vue +++ b/src/App.vue @@ -7,7 +7,7 @@ import { layouts } from './layouts'; import { useStyleStore } from './stores/style.store'; const route = useRoute(); -const layout = computed(() => route?.meta?.layout ?? layouts.base); +const layout = computed(() => route?.meta?.layout ?? layouts.navbar); const styleStore = useStyleStore(); const theme = computed(() => (styleStore.isDarkTheme ? darkTheme : null)); diff --git a/src/assets/hero-gradient.svg b/src/assets/hero-gradient.svg index 8d7c624e..3090a1c4 100644 --- a/src/assets/hero-gradient.svg +++ b/src/assets/hero-gradient.svg @@ -1,4 +1,4 @@ - + @@ -20,4 +20,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/components/MenuLayout.vue b/src/components/MenuLayout.vue index 177de2b0..95b50ff1 100644 --- a/src/components/MenuLayout.vue +++ b/src/components/MenuLayout.vue @@ -39,13 +39,6 @@ const siderPosition = computed(() => (isSmallScreen.value ? 'absolute' : 'static cursor: pointer; } -.content { - // background-color: #f1f5f9; - ::v-deep(.n-layout-scroll-container) { - padding: 26px; - } -} - .n-layout { height: 100vh; } diff --git a/src/layouts/base.layout.vue b/src/layouts/base.layout.vue index aa7ef8f0..2ad3aa4c 100644 --- a/src/layouts/base.layout.vue +++ b/src/layouts/base.layout.vue @@ -1,6 +1,6 @@ diff --git a/src/layouts/index.ts b/src/layouts/index.ts index 8f52b625..19bf719e 100644 --- a/src/layouts/index.ts +++ b/src/layouts/index.ts @@ -1,7 +1,9 @@ import BaseLayout from './base.layout.vue'; +import NavbarLayout from './navbar.layout.vue'; import ToolLayout from './tool.layout.vue'; export const layouts = { base: BaseLayout, toolLayout: ToolLayout, + navbar: NavbarLayout, }; diff --git a/src/layouts/navbar.layout.vue b/src/layouts/navbar.layout.vue new file mode 100644 index 00000000..7e28ffc5 --- /dev/null +++ b/src/layouts/navbar.layout.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/src/layouts/tool.layout.vue b/src/layouts/tool.layout.vue index bb3665ea..de3bfcec 100644 --- a/src/layouts/tool.layout.vue +++ b/src/layouts/tool.layout.vue @@ -4,7 +4,9 @@ import { useHead } from '@vueuse/head'; import type { HeadObject } from '@vueuse/head'; import { computed } from 'vue'; import { useThemeVars } from 'naive-ui'; -import BaseLayout from './base.layout.vue'; +import FavoriteButton from '@/components/FavoriteButton.vue'; +import type { Tool } from '@/tools/tools.types'; +import NavbarLayout from './navbar.layout.vue'; const route = useRoute(); const theme = useThemeVars(); @@ -14,11 +16,11 @@ const head = computed(() => ({ meta: [ { name: 'description', - content: route.meta.description, + content: route.meta?.description as string, }, { name: 'keywords', - content: route.meta.keywords, + content: ((route.meta.keywords ?? []) as string[]).join(','), }, ], })); @@ -26,25 +28,21 @@ useHead(head); diff --git a/src/router.ts b/src/router.ts index f16b418c..9625f46a 100644 --- a/src/router.ts +++ b/src/router.ts @@ -24,6 +24,7 @@ const router = createRouter({ path: '/', name: 'home', component: HomePage, + meta: { layout: layouts.base }, }, { path: '/about',