@talentsoft-opensource/hylia
Version:
The Hylia design systems. Contains all the building blocks style rules for Talentsoft.
163 lines (139 loc) • 4.17 kB
text/less
@sidebar-default-size: 30rem;
@sidebar-medium-size: 60rem;
@sidebar-large-size: 90rem;
@sidebar-minimized: 5.4rem;
@sidebar-full-minimized: 1.8rem;
.Hylia-o-sidepanel {
overflow: hidden;
&__overlaid {
position: fixed;
top: 0;
left: 0;
z-index: 998;
width: 100%;
height: 100%;
visibility: hidden;
opacity: 0;
background-color: rgba(51, 51, 51, 0.4);
transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, visibility 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
}
&__sidebar {
position: fixed;
top: 0;
z-index: 1000;
width: 100%;
height: 100%;
padding: 1.5rem 2rem;
background-color: #fff;
transform: translate3d(0, 0, 0);
transition: transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms;
&:before {
content: "";
position: absolute;
top: 0;
width: 0.8rem;
height: 100%;
transition: opacity 225ms cubic-bezier(0, 0, 0.2, 1) 0ms;
}
//-- Sidebar sizes
.--default-size & {
max-width: @sidebar-default-size;
}
.--medium-size & {
max-width: @sidebar-medium-size;
}
.--large-size & {
max-width: @sidebar-large-size;
}
//-- Sidebar positions
.--right-position & {
right: 0;
left: auto;
&:before {
left: -0.8rem;
background: linear-gradient(90deg, rgba(238, 238, 238, 0) 0%, rgba(0, 0, 0, 0.1) 100%);
}
}
.--left-position & {
right: auto;
left: 0;
&:before {
right: -0.8rem;
background: linear-gradient(-90deg, rgba(238, 238, 238, 0) 0%, rgba(0, 0, 0, 0.1) 100%);
}
}
}
&__overlaid + &__sidebar {
&:before {
opacity: 0;
visibility: hidden;
}
.--closed &:before {
visibility: visible;
opacity: 1;
}
}
&__toggle-button {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
width: 2.4rem;
height: 2.4rem;
background-color: @stormtrooper;
border: 0.1rem solid #e1e3e5;
border-radius: 50%;
box-shadow: -0.4rem 0 0.6rem 0 rgba(0, 0, 0, 0.1);
transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
color: @smart;
cursor: pointer;
//-- Toggle positions
.--right-position & {
top: 3.5rem;
left: -1.2rem;
}
.--left-position & {
top: 0.6rem;
right: 0.6rem;
}
&:hover {
background-color: @smart;
border-color: @smart;
color: @stormtrooper;
}
&:focus {
animation: onPress 1s;
}
}
&:not(.--closed) {
.Hylia-o-sidepanel__overlaid {
opacity: 1;
visibility: visible;
}
}
&.--right-position.--closed {
&.--minimized .Hylia-o-sidepanel__sidebar {
transform: translate3d(~"calc(100% - @{sidebar-minimized})", 0, 0);
}
&.--full-minimized .Hylia-o-sidepanel__sidebar {
transform: translate3d(~"calc(100% - @{sidebar-full-minimized})", 0, 0);
}
}
&.--left-position.--closed {
.Hylia-o-sidepanel__sidebar,
&.--minimized .Hylia-o-sidepanel__sidebar,
&.--full-minimized .Hylia-o-sidepanel__sidebar {
transform: translate3d(-100%, 0, 0);
}
}
}
@keyframes onPress {
0% {
box-shadow: 0 0 0 0 @smart;
}
100% {
box-shadow: 0 0 0 0.6rem fade(@smart, 0);
}
}