59 lines
885 B
Vue
59 lines
885 B
Vue
<template>
|
|
<div class="layout">
|
|
<header class="header">
|
|
Header
|
|
</header>
|
|
|
|
<main class="main">
|
|
<div class="container">
|
|
<slot />
|
|
</div>
|
|
</main>
|
|
|
|
<footer class="footer">
|
|
Footer
|
|
</footer>
|
|
</div>
|
|
</template>
|
|
|
|
<style lang="scss" scoped>
|
|
@use '@/assets/scss/colors.scss' as colors;
|
|
@use '@/assets/scss/main.scss' as main;
|
|
@use '@/assets/scss/utils.scss' as utils;
|
|
|
|
.layout {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 100vh;
|
|
background: colors.$dark-grey;
|
|
}
|
|
|
|
.container {
|
|
max-width: 1000px;
|
|
margin: 48px auto 100px;
|
|
|
|
@media (max-width: 1280px) {
|
|
margin: 24px auto 52px;
|
|
padding: 0 24px;
|
|
}
|
|
}
|
|
|
|
.header {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 100;
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.main {
|
|
flex: 1;
|
|
margin-top: 64px;
|
|
}
|
|
|
|
.footer {
|
|
margin-top: auto;
|
|
}
|
|
</style>
|