diff options
Diffstat (limited to 'src/layouts/tool.layout.vue')
-rw-r--r-- | src/layouts/tool.layout.vue | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/layouts/tool.layout.vue b/src/layouts/tool.layout.vue new file mode 100644 index 0000000..01c8cc1 --- /dev/null +++ b/src/layouts/tool.layout.vue @@ -0,0 +1,68 @@ +<script lang="ts" setup> +import { useRoute } from 'vue-router'; +import BaseLayout from './base.layout.vue'; +import { useHead } from '@vueuse/head' +import type { HeadObject } from '@vueuse/head' +import { reactive } from 'vue'; + +const route = useRoute() + +const head = reactive<HeadObject>({ + title: `${route.meta.name} - IT Tools`, + meta: [ + { + name: 'description', + content: route.meta.description + }, + { + name: 'keywords', + content: route.meta.keywords + } + ] +}) +useHead(head) +</script> + +<template> + <base-layout> + <div class="tool-layout"> + <div class="tool-header"> + <n-h1>{{ route.meta.name }}</n-h1> + <div class="separator" /> + <div class="description">{{ route.meta.description }}</div> + </div> + + <slot /> + </div> + </base-layout> +</template> + +<style lang="less" scoped> +.tool-layout { + max-width: 700px; + margin: 0 auto; + box-sizing: border-box; + + .tool-header { + padding: 40px 0; + .n-h1 { + opacity: 0.9; + font-size: 40px; + font-weight: 400; + margin: 0; + } + .separator { + width: 200px; + height: 2px; + background: rgb(161, 161, 161); + + margin-bottom: 10px; + } + .description { + margin: 0; + + opacity: 0.7; + } + } +} +</style>
\ No newline at end of file |