datat.fi/_sass/basically-basic/_sidebar.scss

167 lines
2.9 KiB
SCSS
Raw Normal View History

/* ==========================================================================
Sidebar
========================================================================== */
2017-03-07 23:12:17 +02:00
2017-03-16 20:34:29 +02:00
.sidebar {
2017-03-07 23:12:17 +02:00
position: fixed;
top: 0;
2017-03-16 20:34:29 +02:00
left: 0;
2017-03-07 23:12:17 +02:00
width: 100%;
height: 100%;
z-index: 150;
@include breakpoint($sidebar-width) {
width: $sidebar-width;
}
@include breakpoint($large) {
width: (1.5 * $sidebar-width);
2017-03-07 23:12:17 +02:00
}
li {
2017-03-16 20:34:29 +02:00
transform: translateX(-1rem);
transition: all 0.5s;
opacity: 0;
&.is--moved {
transform: translateX(0);
opacity: 1;
}
/* line hover effect */
2017-03-07 23:12:17 +02:00
a {
position: relative;
color: $base-color;
2017-03-16 20:34:29 +02:00
&::before {
2017-03-07 23:12:17 +02:00
display: block;
position: absolute;
top: 50%;
left: -3rem;
width: 0;
2017-03-16 20:34:29 +02:00
height: 1px;
2017-03-07 23:12:17 +02:00
transition: width 0.3s cubic-bezier(0, 0, 0.3, 1);
2017-03-16 20:34:29 +02:00
background-color: $base-color;
content: '';
2017-03-07 23:12:17 +02:00
}
&:hover {
color: $accent-color;
}
2017-03-16 20:34:29 +02:00
&:hover::before {
2017-03-07 23:12:17 +02:00
width: 2.5rem;
}
}
}
&.is--visible {
2017-03-16 20:34:29 +02:00
transform: translateX(0);
2017-03-07 23:12:17 +02:00
> .inner {
2017-03-16 20:34:29 +02:00
transform: none;
2017-03-07 23:12:17 +02:00
}
2017-03-16 21:39:17 +02:00
&.is--animatable > .inner {
transition: all 330ms ease-out;
}
2017-03-07 23:12:17 +02:00
}
&.is--animatable > .inner {
transition: all 130ms ease-in;
}
> .inner {
position: relative;
width: 100%;
max-width: $sidebar-width;
height: 100%;
2017-03-16 20:34:29 +02:00
padding: 1.5em;
transform: translateX(-1 * $sidebar-width);
2017-03-07 23:12:17 +02:00
background-color: $sidebar-background-color;
z-index: 160;
2017-03-16 20:34:29 +02:00
will-change: transform;
overflow-x: hidden;
2017-03-07 23:12:17 +02:00
@include breakpoint($medium) {
padding: 3rem;
}
@include breakpoint(max-width $medium) {
box-shadow: 0 0 5em 0 rgba(0, 0, 0, 0.125);
}
2017-03-07 23:12:17 +02:00
@include breakpoint($large) {
2017-03-16 21:13:21 +02:00
max-width: (1.5 * $sidebar-width);
2017-03-16 20:34:29 +02:00
transform: translateX(-1.5 * $sidebar-width);
2017-03-07 23:12:17 +02:00
}
}
.menu {
2017-03-16 20:34:29 +02:00
@include fluid-type($min-vw, $max-vw, 24px, 48px);
2017-03-07 23:12:17 +02:00
position: relative;
margin-bottom: 1.5rem;
padding-bottom: 0.5rem;
font-weight: bold;
line-height: 1;
a {
display: block;
}
/* divider line */
2017-03-16 20:34:29 +02:00
&::after {
2017-03-07 23:12:17 +02:00
position: absolute;
bottom: 0;
width: 1.5em;
height: 1px;
background-color: $base-color;
2017-03-16 20:34:29 +02:00
content: '';
2017-03-07 23:12:17 +02:00
}
li {
margin-bottom: 1.5rem;
}
}
.contact-list {
2017-03-16 21:13:21 +02:00
@include fluid-type($min-vw, $max-vw, 18px, 24px);
2017-03-07 23:12:17 +02:00
margin-top: 0.5rem;
padding-top: 0.5rem;
li:not(:last-child) {
margin-bottom: 0.5rem;
}
a {
display: block;
color: $base-color;
text-decoration: none;
}
}
}
2017-03-16 20:34:29 +02:00
.sidebar-toggle-wrapper {
2017-03-07 23:12:17 +02:00
position: fixed;
2017-03-13 21:22:26 +02:00
top: 0.675rem;
2017-03-07 23:12:17 +02:00
right: 0;
cursor: pointer;
z-index: 10000;
.toggle {
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
color: inherit;
text-decoration: none;
}
}
.sidebar-toggle-label {
-ms-flex-order: 2;
order: 2;
margin-left: 0.5rem;
font-weight: bold;
2017-03-16 20:34:29 +02:00
}