paulnicoue/app.vue

156 lines
3.7 KiB
Vue
Raw Normal View History

2022-09-30 16:18:49 +02:00
<template>
<div class="app">
2023-01-06 15:46:20 +01:00
<NuxtPage class="app__main" />
<AppFooter class="app__footer" />
2022-09-30 16:18:49 +02:00
</div>
</template>
<script setup>
2023-01-06 15:46:20 +01:00
// --------------------------------------------------
// DATA
// --------------------------------------------------
const pageTitleChunk = useRoute().meta.pageTitleChunk;
// --------------------------------------------------
2022-09-30 16:18:49 +02:00
// HEAD
2023-01-06 15:46:20 +01:00
// --------------------------------------------------
useAppHead(pageTitleChunk);
2022-09-30 16:18:49 +02:00
</script>
<style lang="scss">
2023-01-06 15:46:20 +01:00
// --------------------------------------------------
2022-09-30 16:18:49 +02:00
// MODULES
2023-01-06 15:46:20 +01:00
// --------------------------------------------------
2022-09-30 16:18:49 +02:00
@use 'minireset.css';
@use '~/assets/styles/fonts';
@use '~/assets/styles/variables';
@use '~/assets/styles/animations';
2022-09-30 16:18:49 +02:00
2023-01-06 15:46:20 +01:00
// --------------------------------------------------
// FONTS AND COLORS
// --------------------------------------------------
2022-09-30 16:18:49 +02:00
body {
font-family: var(--text-font-family);
font-size: var(--text-font-size);
font-weight: var(--regular-font-weight);
2023-01-10 10:28:09 +01:00
line-height: var(--line-height);
color: var(--secondary-color);
background-color: var(--primary-color);
2022-09-30 16:18:49 +02:00
}
h1 {
font-family: var(--title-font-family);
font-size: var(--h1-font-size);
font-weight: var(--medium-font-weight);
2022-09-30 16:18:49 +02:00
}
h2 {
font-family: var(--title-font-family);
2022-09-30 16:18:49 +02:00
font-size: var(--h2-font-size);
margin: 0 0 4rem 0;
}
h3 {
font-family: var(--text-font-family);
font-size: var(--h3-font-size);
margin: 2rem 0 1rem 0;
}
strong {
font-weight: var(--bold-font-weight);
}
em {
font-style: italic;
}
2023-01-06 15:46:20 +01:00
// --------------------------------------------------
// LINK STYLE
// --------------------------------------------------
2022-09-30 16:18:49 +02:00
a {
2023-01-10 10:28:09 +01:00
color: var(--secondary-color);
text-decoration: underline var(--accent-color);
2022-09-30 16:18:49 +02:00
border-radius: 2px;
transition: color 200ms ease-in-out;
&:hover,
&:focus,
&:active {
2023-01-10 10:28:09 +01:00
color: var(--accent-color);
2022-09-30 16:18:49 +02:00
}
&:focus-visible {
2023-01-10 10:28:09 +01:00
outline: 1px dashed var(--accent-color);
2022-09-30 16:18:49 +02:00
outline-offset: 2px;
animation: expand-outline 200ms ease-in-out;
}
}
2023-01-10 10:28:09 +01:00
// --------------------------------------------------
// BUTTON STYLE
// --------------------------------------------------
button {
padding: 1rem 1.5rem;
color: var(--primary-color);
background-image: var(--button-gradient);
background-size: 100%;
background-position: right center;
border: none;
border-radius: 30px;
cursor: pointer;
font-family: var(--text-font-family);
font-size: var(--text-font-size);
font-weight: var(--semi-bold-font-weight);
line-height: var(--line-height);
text-align: center;
transition: background-size 200ms ease-in-out;
&:hover,
&:focus,
&:active {
background-size: 300%;
}
&:focus-visible {
outline: 1px dashed var(--accent-color);
outline-offset: 4px;
animation: expand-outline 200ms ease-in-out;
}
}
2023-01-06 15:46:20 +01:00
// --------------------------------------------------
// LAYOUT
// --------------------------------------------------
.app {
min-height: 100vh;
display: grid;
grid:
'app-main' 1fr
'app-footer' auto
/ 1fr;
place-items: center;
&__main {
grid-area: app-main;
}
&__footer {
grid-area: app-footer;
}
}
2022-09-30 16:18:49 +02:00
</style>