webapp/src/components/TableOfContents/TableOfContents.module.scss
2023-10-18 01:53:29 +03:00

186 lines
3.0 KiB
SCSS

.TableOfContentsFixedWrapper {
min-height: 100%;
position: relative;
top: 0;
@include media-breakpoint-down(xl) {
background: #000;
bottom: 0;
color: #fff;
font-size: 1.6rem;
left: 0;
min-height: auto;
max-height: 50vh;
position: fixed;
top: auto;
width: 100%;
.TableOfContentsHeading {
text-transform: capitalize;
}
.TableOfContentsHeading,
button {
&,
&:hover {
color: #fff;
}
}
.TableOfContentsHeadingsItem {
font-size: 1.6rem;
margin-top: 1.6rem;
}
}
&:not(.TableOfContentsFixedWrapperLefted) {
margin-top: -0.2em;
.TableOfContentsPrimaryButton {
transform: rotate(180deg);
}
}
}
.TableOfContentsFixedWrapperLefted {
margin-top: -2em;
right: auto;
left: 70px;
.TableOfContentsPrimaryButton {
left: auto;
right: 40px;
&:hover {
filter: invert(1);
}
}
.TableOfContentsPrimaryButtonLefted {
left: 0;
right: auto;
}
}
.TableOfContentsContainer {
top: 100px;
right: 20px;
display: flex;
width: 100%;
overflow: auto;
align-items: flex-start;
background-color: transparent;
@include media-breakpoint-up(xl) {
flex-direction: column;
height: calc(100vh - 120px);
position: sticky;
.TableOfContentsFixedWrapperLefted & {
height: calc(100vh - 250px);
}
}
}
.TableOfContentsContainerInner {
@include media-breakpoint-down(xl) {
flex: 1 100%;
max-height: 50vh;
overflow: auto;
padding: 1.4rem 2rem;
}
}
.TableOfContentsHeader {
width: 100%;
display: flex;
justify-content: space-between;
}
.TableOfContentsHeading {
margin: 0;
color: #000;
font-size: 22px;
font-style: normal;
font-weight: 700;
line-height: 24px;
}
.TableOfContentsPrimaryButton {
position: absolute;
right: 0;
top: 0;
display: flex;
align-items: center;
justify-content: center;
background: transparent;
border: none;
cursor: pointer;
@include media-breakpoint-down(xl) {
background: #fff;
border: 1px solid #000;
border-radius: 100%;
bottom: 1rem;
height: 40px;
position: fixed;
right: 1rem;
top: auto;
width: 40px;
}
&:hover {
filter: invert(1);
}
}
.TableOfContentsCloseButton {
height: 2.4rem;
position: absolute;
top: 1.4rem;
right: 1.4rem;
width: 2.4rem;
}
.TableOfContentsHeadingsList {
position: relative;
display: flex;
flex-direction: column;
list-style-type: none;
margin: 0;
padding: 0 38px 0 0;
width: 100%;
}
.TableOfContentsHeadingsItem {
margin-top: 20px;
color: #000;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 1.8rem;
text-align: left;
vertical-align: bottom;
&:hover {
color: rgb(0 0 0 / 50%);
}
&.active {
font-weight: 700 !important;
}
}
.TableOfContentsHeadingsItemH3,
.TableOfContentsHeadingsItemH4 {
margin-top: 8px;
}
.TableOfContentsHeadingsItemH3 {
padding-left: 8px;
}
.TableOfContentsHeadingsItemH4 {
padding-left: 16px;
}