eduproj/web/src/routes/__layout.svelte

175 lines
3.7 KiB
Svelte

<div id="app">
<div class="content-wrap">
<div class="container">
<header class="header">
<div class="brand"><a href="/">Edu</a></div>
<nav class="header-nav">
<ul class="list list-reset">
<li><a href="/about">About</a></li>
<li><a href="/learn">Learn</a></li>
<li><a href="/browse">Browse</a></li>
<li><a href="/contribute">Contribute</a></li>
</ul>
</nav>
</header>
<slot></slot>
</div>
<footer class="footer">
<div class="container">
<div class="footer-blocks">
<div class="footer-block">
<div class="footer-block-title">Eduproj</div>
<ul class="list-reset">
<li><a href="https://git.mzhang.io/michael/eduproj" target="_blank">Source Code</a></li>
</ul>
</div>
<div class="footer-block">
<div class="footer-block-title">For Students</div>
<ul class="list-reset">
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
<li><a href="/about">Edu</a></li>
</ul>
</div>
<div class="footer-block">
<div class="footer-block-title">About Us</div>
<ul class="list-reset">
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
<li><a href="/about">About Me</a></li>
</ul>
</div>
</div>
</div>
</footer>
</div>
</div>
<style lang="scss" scoped>
$footer-height: 180px;
#app {
font-family: Heebo, sans-serif;
position: relative;
min-height: 100vh;
.content-wrap {
border-top: 10px solid #c00;
padding-bottom: $footer-height;
> .container {
padding-bottom: 36px;
}
}
}
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
@media (min-width: 768px) {
.container {
width: 750px;
}
}
@media (min-width: 992px) {
.container {
width: 970px;
}
}
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
.list-reset {
list-style: none;
padding: 0;
justify-content: flex-end;
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
height: 80px;
.brand {
margin-right: 32px;
a {
color: black;
font-weight: bold;
text-decoration: none;
font-size: 1.5em;
}
}
.header-nav {
flex-grow: 1;
.list {
display: flex;
align-items: center;
flex-grow: 1;
white-space: nowrap;
margin-bottom: 0;
li {
margin: 0;
box-sizing: inherit;
a {
display: block;
text-decoration: none;
color: black;
padding: 0 32px;
}
}
}
}
}
.footer {
background-color: #eee;
position: absolute;
bottom: 0;
width: 100%;
height: $footer-height;
padding-top: 24px;
.footer-blocks {
display: flex;
flex-wrap: wrap;
margin-right: -24px;
margin-left: -24px;
margin-top: -12px;
.footer-block {
flex-grow: 1;
flex-basis: 160px;
box-sizing: content-box;
padding: 12px 24px;
.footer-block-title {
text-transform: uppercase;
font-weight: bold;
line-height: 22px;
}
a {
color: lighten(black, 20%);
text-decoration: none;
}
}
}
}
</style>