324 lines
5.9 KiB
SCSS
324 lines
5.9 KiB
SCSS
$navHeight: 4.5rem;
|
||
$mobileBreakPoint: 600px;
|
||
$menuBreakPoint: 800px;
|
||
|
||
.app {
|
||
&__navigation {
|
||
position: fixed;
|
||
display: flex;
|
||
flex-direction: column;
|
||
z-index: 2;
|
||
top: 0;
|
||
width: 100%;
|
||
max-height: 100vh;
|
||
backdrop-filter: blur(10px);
|
||
|
||
&::after {
|
||
content: '';
|
||
z-index: -1;
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
background-color: $colorWhite;
|
||
opacity: 0.8;
|
||
transform: translate3d(0,0,0);
|
||
pointer-events: none;
|
||
}
|
||
}
|
||
|
||
&__top-bar {
|
||
display: flex;
|
||
align-items: center;
|
||
flex: 0 0 auto;
|
||
height: $navHeight;
|
||
padding: 0 1rem;
|
||
|
||
@media (min-width: $menuBreakPoint) {
|
||
padding: 0 2rem;
|
||
}
|
||
}
|
||
|
||
&__menu {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
&__menu-item {
|
||
display: block;
|
||
overflow: hidden;
|
||
position: relative;
|
||
font-weight: 500;
|
||
|
||
@media (min-width: $menuBreakPoint) {
|
||
display: inline-flex;
|
||
margin-right: 1.5rem;
|
||
|
||
&:last-child {
|
||
margin-right: 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
&__content {
|
||
display: flex;
|
||
position: relative;
|
||
z-index: 1;
|
||
}
|
||
|
||
&__logo {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
font-weight: 600;
|
||
color: $colorBlack;
|
||
font-size: 1.5rem;
|
||
margin-right: auto;
|
||
|
||
@media (min-width: 500px) {
|
||
&::after {
|
||
content: '2.0 alpha';
|
||
display: block;
|
||
margin-left: 0.5rem;
|
||
font-size: 0.7rem;
|
||
font-weight: 700;
|
||
letter-spacing: 0.05rem;
|
||
text-transform: uppercase;
|
||
border-radius: 0.4rem;
|
||
border: 2px solid $colorBlack;
|
||
padding: 0 0.4em;
|
||
}
|
||
}
|
||
}
|
||
|
||
&__github {
|
||
display: block;
|
||
width: 1.75rem;
|
||
height: 1.75rem;
|
||
}
|
||
|
||
::v-deep .algolia-autocomplete {
|
||
display: block;
|
||
width: 100%;
|
||
}
|
||
|
||
&__search {
|
||
position: relative;
|
||
}
|
||
|
||
&__search-docsearch {
|
||
::v-deep > button {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
margin: 0;
|
||
padding: 0;
|
||
opacity: 0;
|
||
}
|
||
}
|
||
|
||
&__sidebar {
|
||
display: none;
|
||
|
||
@media (min-width: $menuBreakPoint) {
|
||
display: block;
|
||
width: 20rem;
|
||
flex: 0 0 auto;
|
||
position: sticky;
|
||
top: 0;
|
||
align-self: flex-start;
|
||
padding: 2rem;
|
||
padding-top: $navHeight + 2rem;
|
||
height: 100vh;
|
||
overflow-x: hidden;
|
||
overflow-y: auto;
|
||
-webkit-overflow-scrolling: touch;
|
||
overscroll-behavior: contain;
|
||
}
|
||
}
|
||
|
||
&__sidebar-menu {
|
||
margin-top: 1.5rem;
|
||
|
||
@media (min-width: $menuBreakPoint) {
|
||
margin-top: 0;
|
||
}
|
||
}
|
||
|
||
&__main {
|
||
flex: 1 1 auto;
|
||
min-width: 0;
|
||
padding-top: $navHeight;
|
||
}
|
||
|
||
&__menu-icon,
|
||
&__close-icon {
|
||
display: flex;
|
||
flex: 0 0 auto;
|
||
background: transparent;
|
||
border: 0;
|
||
color: $colorText;
|
||
margin-left: 1.5rem;
|
||
transition: color 0.2s $ease;
|
||
|
||
&:hover {
|
||
color: $colorBlack;
|
||
}
|
||
|
||
@media (min-width: $menuBreakPoint) {
|
||
display: none;
|
||
}
|
||
}
|
||
|
||
&__link-group {
|
||
margin-bottom: 1rem;
|
||
|
||
@media (min-width: $mobileBreakPoint) {
|
||
margin-bottom: 2rem;
|
||
}
|
||
}
|
||
|
||
&__link-group-title {
|
||
font-weight: 700;
|
||
letter-spacing: 0.025rem;
|
||
font-size: 0.75rem;
|
||
text-transform: uppercase;
|
||
margin-bottom: 0.5rem;
|
||
}
|
||
|
||
&__link-list {
|
||
list-style: none;
|
||
}
|
||
|
||
&__link-list &__link-list {
|
||
display: none;
|
||
padding-left: 1rem;
|
||
margin: 0.5rem 0;
|
||
}
|
||
|
||
&__mobile-menu &__link-list &__link-list {
|
||
display: block;
|
||
}
|
||
|
||
.app__link--active + &__link-list {
|
||
display: block;
|
||
}
|
||
|
||
&__mobile-menu &__menu-item {
|
||
margin-bottom: 1.5rem;
|
||
|
||
&:last-child {
|
||
margin-bottom: 0;
|
||
}
|
||
}
|
||
|
||
&__link {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
padding: 0.25rem 0.5rem;
|
||
border-radius: 0.4rem;
|
||
font-size: 0.85rem;
|
||
margin-left: -0.5rem;
|
||
white-space: nowrap;
|
||
|
||
&:hover {
|
||
color: $colorBlack;
|
||
}
|
||
|
||
&--exact {
|
||
font-weight: 700;
|
||
color: $colorBlack;
|
||
background-color: rgba($colorBlack, 0.05);
|
||
}
|
||
|
||
&--draft {
|
||
color: rgba($colorBlack, 0.4);
|
||
|
||
&::after {
|
||
content: 'DRAFT';
|
||
display: inline-flex;
|
||
align-items: center;
|
||
font-family: "JetBrainsMono", monospace;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
color: $colorGrey;
|
||
background-color: rgba($colorBlack, 0.05);
|
||
font-size: 0.75rem;
|
||
padding: 0 0.4rem;
|
||
border-radius: 0.4rem;
|
||
}
|
||
}
|
||
|
||
&--pro {
|
||
&::after {
|
||
content: "PRO";
|
||
display: inline-flex;
|
||
align-items: center;
|
||
font-family: "JetBrainsMono", monospace;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
color: $colorWhite;
|
||
background-color: $colorBlack;
|
||
font-size: 0.75rem;
|
||
padding: 0 0.4rem;
|
||
border-radius: 0.4rem;
|
||
}
|
||
}
|
||
|
||
&--new {
|
||
&::after {
|
||
content: 'NEW';
|
||
display: inline-flex;
|
||
align-items: center;
|
||
font-family: "JetBrainsMono", monospace;
|
||
font-weight: 700;
|
||
text-transform: uppercase;
|
||
color: $colorBlack;
|
||
background-color: $colorGreen;
|
||
font-size: 0.75rem;
|
||
padding: 0 0.4rem;
|
||
border-radius: 0.4rem;
|
||
}
|
||
}
|
||
|
||
&--sponsor {
|
||
&::after {
|
||
content: '♥️';
|
||
padding: 0 0.5em;
|
||
}
|
||
}
|
||
|
||
&--with-children::after {
|
||
content: '›';
|
||
font-weight: bold;
|
||
color: rgba($colorBlack, 0.2);
|
||
position: absolute;
|
||
margin-left: -1.5em;
|
||
}
|
||
}
|
||
|
||
&__mobile-menu &__link--with-children::after {
|
||
display: none;
|
||
}
|
||
|
||
&__mobile-menu {
|
||
padding: 1rem 0 1rem 1rem;
|
||
flex: 1 1 auto;
|
||
overflow-x: hidden;
|
||
overflow-y: auto;
|
||
-webkit-overflow-scrolling: touch;
|
||
overscroll-behavior: contain;
|
||
|
||
@media (min-width: $mobileBreakPoint) {
|
||
padding: 2rem 0;
|
||
}
|
||
}
|
||
|
||
&__footer {
|
||
border-top: 1px solid rgba($colorBlack, 0.1);
|
||
padding: 2rem;
|
||
}
|
||
}
|