-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.vue
102 lines (99 loc) · 2.6 KB
/
app.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<script lang="ts" setup>
import paths from '~/paths';
import SiteHeader from '~/components/SiteHeader.vue';
import ContactCTA from '~/components/ContactCTA.vue';
const prismic = usePrismic();
const navLinks = useAsyncData(
'$site_navigation',
() => prismic.client.getSingle('main_navigation')
).data;
</script>
<template>
<SiteHeader />
<NuxtPage />
<ContactCTA />
<footer class="SiteFooter--wrapper">
<div class="SiteFooter dhd--layout-wrapper">
<div class="brand-wrapper">
<NuxtLink :to="paths.home" class="brand">Dan Hiester</NuxtLink>
</div>
<nav class="nav-wrapper">
<PrismicLink
v-for="item in navLinks?.data.links"
:key="item.label + '_link'"
:field="item.link"
class="nav-link"
>
{{ item.label }}
</PrismicLink>
</nav>
</div>
</footer>
</template>
<style lang="scss" scoped>
.SiteFooter--wrapper {
--footer-text-color: oklch(94.2% 0.032 183.3);
background-color: oklch(34.6% 0.051 222.4);
color: var(--footer-text-color);
padding-top: var(--spatial-scale-9);
padding-bottom: var(--spatial-scale-12);
@media (min-width: $breakpoint-medium) {
padding-top: var(--spatial-scale-5);
padding-bottom: var(--spatial-scale-8);
}
}
.SiteFooter {
display: grid;
grid-template-columns: repeat(15, 1fr);
@media (min-width: $breakpoint-royale) {
grid-template-columns: repeat(17, 1fr);
}
}
a {
color: var(--footer-text-color);
text-decoration: none;
}
.brand-wrapper {
margin-bottom: var(--spatial-scale-3);
grid-column: 1 / span 8;
@media (min-width: $breakpoint-small) {
grid-column: 1 / span 7;
}
@media (min-width: $breakpoint-medium) {
grid-column: 1 / span 5;
}
@media (min-width: $breakpoint-large) {
grid-column: 1 / span 3;
}
@media (min-width: $breakpoint-royale) {
grid-column: 1 / span 3;
}
}
.brand {
font-family: var(--font-heading);
font-weight: 600;
font-size: var(--type-scale-3);
line-height: var(--spatial-scale-3);
}
.nav-wrapper {
display: flex;
flex-direction: column;
gap: var(--spatial-scale-00);
grid-column: 10 / span 7;
@media (min-width: $breakpoint-small) {
grid-column: 9 / span 5;
}
@media (min-width: $breakpoint-medium) {
grid-column: 6 / span 5;
}
@media (min-width: $breakpoint-large) {
grid-column: 4 / span 5;
}
@media (min-width: $breakpoint-royale) {
grid-column: 4 / span 5;
}
}
.nav-link {
display: inline-block;
}
</style>