new_site/_sass/_base.scss

1128 lines
19 KiB
SCSS

/*******************************************************************************
* Styles for the base elements of the theme.
******************************************************************************/
// Typography
p,
h1,
h2,
h3,
h4,
h5,
h6,
em,
div,
li,
span,
strong {
color: var(--global-text-color);
}
hr {
border-top: 1px solid var(--global-divider-color);
}
table {
td,
th {
font-size: 1rem;
}
th {
font-weight: bold;
}
}
a,
table.table a {
color: var(--global-theme-color);
&:hover {
color: var(--global-theme-color);
text-decoration: underline;
}
&:hover:after :not(.nav-item.dropdown) {
width: 100%;
}
}
.table-dark {
background-color: transparent;
&.table-bordered {
border: 1px solid var(--global-divider-color) !important;
}
}
blockquote {
background: var(--global-bg-color);
border-left: 5px solid var(--global-theme-color);
margin: 1.5em 0;
padding: 1em;
font-size: 1.2rem;
p {
margin-bottom: 0;
}
/* Tips, warnings, and dangers blockquotes */
&.block-tip {
border-color: var(--global-tip-block);
background-color: var(--global-tip-block-bg);
p {
color: var(--global-tip-block-text);
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: var(--global-tip-block-title);
}
}
&.block-warning {
border-color: var(--global-warning-block);
background-color: var(--global-warning-block-bg);
p {
color: var(--global-warning-block-text);
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: var(--global-warning-block-title);
}
}
&.block-danger {
border-color: var(--global-danger-block);
background-color: var(--global-danger-block-bg);
p {
color: var(--global-danger-block-text);
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: var(--global-danger-block-title);
}
}
}
// Checklist
ul.task-list {
list-style-type: none; /* Remove bullets from all levels */
}
ul.task-list > li ul {
/* Nested lists within .task-list */
padding-inline-start: 1.5rem;
}
ul.task-list input[type="checkbox"] {
margin: 0.275rem 0.5rem 0.5rem -1rem;
vertical-align: middle;
}
// Math
.equation {
margin-bottom: 1rem;
text-align: center;
}
// Caption
.caption {
font-size: 0.875rem;
margin-top: 0.75rem;
margin-bottom: 1.5rem;
text-align: center;
}
// Card
.card {
background-color: var(--global-card-bg-color);
.card-img {
width: 100%;
padding-top: 1.25rem;
}
.card-title {
color: var(--global-text-color);
}
.card-body {
padding: 1.25rem 1.25rem 1.25rem 1.25rem;
}
}
// Citation
.citation,
.citation-number {
color: var(--global-theme-color);
}
// Profile
.profile {
width: 100%;
.more-info {
margin-bottom: 5px;
margin-top: 5px;
font-family: monospace;
p {
display: inline-block;
margin: 0;
}
}
}
.profile.float-right {
margin-left: 1rem;
}
.profile.float-left {
margin-right: 1rem;
}
@media (min-width: 576px) {
.profile {
width: 30%;
.address {
p {
display: block;
}
}
}
}
.post-description {
margin-bottom: 2rem;
font-size: 0.875rem;
a {
color: inherit;
&:hover {
color: var(--global-theme-color);
text-decoration: none;
}
}
}
// Navbar customization
.navbar {
box-shadow: none;
border-bottom: 1px solid var(--global-divider-color);
background-color: var(--global-bg-color);
opacity: 0.95;
}
.navbar .dropdown-menu {
background-color: var(--global-bg-color);
border: 1px solid var(--global-divider-color);
a:not(.active) {
color: var(--global-text-color);
}
a:hover {
color: var(--global-hover-color);
}
.dropdown-divider {
border-top: 1px solid var(--global-divider-color) !important;
}
}
.dropdown-item {
color: var(--global-text-color);
&:hover {
color: var(--global-hover-color);
background-color: var(--global-bg-color);
}
}
.navbar.navbar-light {
a {
&:hover {
text-decoration: none;
}
}
.navbar-brand {
color: var(--global-text-color);
}
.navbar-nav .nav-item .nav-link {
color: var(--global-text-color);
&:hover {
color: var(--global-hover-color);
}
}
.navbar-nav .nav-item.active > .nav-link {
background-color: inherit;
font-weight: bolder;
color: var(--global-theme-color);
&:hover {
color: var(--global-hover-color);
}
}
.navbar-brand.social {
padding-bottom: 0;
padding-top: 0;
font-size: 1.7rem;
a {
i::before {
color: var(--global-text-color);
transition-property: all 0.2s ease-in-out;
}
&:hover {
i::before {
color: var(--global-theme-color);
}
}
}
}
}
.navbar-toggler {
.icon-bar {
display: block;
width: 22px;
height: 2px;
background-color: var(--global-text-color);
border-radius: 1px;
margin-bottom: 4px;
transition: all 0.2s;
}
.top-bar {
transform: rotate(45deg);
transform-origin: 10% 10%;
}
.middle-bar {
opacity: 0;
}
.bottom-bar {
transform: rotate(-45deg);
transform-origin: 10% 90%;
}
}
.navbar-toggler.collapsed {
.top-bar {
transform: rotate(0);
}
.middle-bar {
opacity: 1;
}
.bottom-bar {
transform: rotate(0);
}
}
#light-toggle,
#search-toggle {
padding: 0;
border: 0;
background-color: inherit;
color: var(--global-text-color);
&:hover {
color: var(--global-hover-color);
}
}
// Social (bottom)
.social {
text-align: center;
.contact-icons {
font-size: 4rem;
a {
i::before {
color: var(--global-text-color);
transition-property: all 0.2s ease-in-out;
}
&:hover {
i::before {
color: var(--global-theme-color);
}
}
}
}
.contact-note {
font-size: 0.8rem;
}
}
.wechat-modal {
display: none;
position: fixed;
z-index: 1;
padding-top: 100px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgb(0, 0, 0);
background-color: rgba(0, 0, 0, 0.8);
}
.wechat-modal > img {
display: block;
position: relative;
top: 50%;
left: 50%;
width: 33%;
max-width: 400px;
transform: translate(-50%, -50%);
}
@media only screen and (max-width: 400px) {
.wechat-modal > img {
width: 100%;
}
}
// Footer
footer.fixed-bottom {
background-color: var(--global-footer-bg-color);
font-size: 0.75rem;
.container {
color: var(--global-footer-text-color);
padding-top: 9px;
padding-bottom: 8px;
text-align: center;
}
a {
color: var(--global-footer-link-color);
&:hover {
color: var(--global-theme-color);
text-decoration: none;
}
}
}
footer.sticky-bottom {
border-top: 1px solid var(--global-divider-color);
padding-top: 40px;
padding-bottom: 40px;
font-size: 0.9rem;
.container {
text-align: center;
}
}
// CV
.cv {
margin-bottom: 40px;
.card {
background-color: var(--global-card-bg-color);
border: 1px solid var(--global-divider-color);
.list-group-item {
background-color: inherit;
border-color: var(--global-divider-color);
.badge {
color: var(--global-card-bg-color) !important;
background-color: var(--global-theme-color) !important;
}
}
}
}
.table-cv-map {
background-color: transparent;
border: none;
color: var(--global-text-color);
}
// Repositories
@media (min-width: 768px) {
.repo {
max-width: 50%;
}
}
// Blog
.header-bar {
border-bottom: 1px solid var(--global-divider-color);
text-align: center;
padding-top: 2rem;
padding-bottom: 3rem;
h1 {
color: var(--global-theme-color);
font-size: 5rem;
}
}
.tag-category-list {
border-bottom: 1px solid var(--global-divider-color);
text-align: center;
padding-top: 1rem;
ul {
justify-content: center;
display: flow-root;
p,
li {
list-style: none;
display: inline-block;
padding: 1rem 0.5rem;
color: var(--global-text-color-light);
}
}
}
.post-title {
mjx-container[jax="CHTML"][display="true"] {
display: unset;
}
}
.post-list {
margin: 0;
margin-bottom: 40px;
padding: 0;
li {
border-bottom: 1px solid var(--global-divider-color);
list-style: none;
padding-top: 2rem;
padding-bottom: 2rem;
.post-meta {
color: var(--global-text-color-light);
font-size: 0.875rem;
margin-bottom: 0;
}
.post-tags {
color: var(--global-text-color-light);
font-size: 0.875rem;
padding-top: 0.25rem;
padding-bottom: 0;
}
a {
color: var(--global-text-color);
text-decoration: none;
&:hover {
color: var(--global-theme-color);
}
}
mjx-container[jax="CHTML"][display="true"] {
display: unset;
}
}
}
.pagination {
.page-item {
.page-link {
color: var(--global-text-color);
&:hover {
color: $black-color;
}
}
&.active .page-link {
color: $white-color;
background-color: var(--global-theme-color);
&:hover {
background-color: var(--global-theme-color);
}
}
}
}
// Distill
.distill {
a:hover {
border-bottom-color: var(--global-theme-color);
text-decoration: none;
}
}
// Projects
.projects {
a {
text-decoration: none;
&:hover {
.card-title {
color: var(--global-theme-color);
}
}
}
.card {
img {
width: 100%;
}
}
.grid-sizer,
.grid-item {
width: 250px;
margin-bottom: 10px;
}
h2.category {
color: var(--global-divider-color);
border-bottom: 1px solid var(--global-divider-color);
padding-top: 0.5rem;
margin-top: 2rem;
margin-bottom: 1rem;
text-align: right;
}
}
// Publications
.publications {
margin-top: 2rem;
h1 {
color: var(--global-theme-color);
font-size: 2rem;
text-align: center;
margin-top: 1em;
margin-bottom: 1em;
}
h2 {
margin-bottom: 1rem;
span {
font-size: 1.5rem;
}
}
h2.bibliography {
color: var(--global-divider-color);
border-top: 1px solid var(--global-divider-color);
padding-top: 1rem;
margin-top: 2rem;
text-align: right;
}
ol.bibliography {
list-style: none;
padding: 0;
margin-top: 0;
li {
margin-bottom: 1rem;
.preview {
}
.abbr {
margin-bottom: 0.5rem;
abbr {
display: inline-block;
background-color: var(--global-theme-color);
margin-bottom: 0.5rem;
a {
color: white;
&:hover {
text-decoration: none;
}
}
}
.award {
color: var(--global-theme-color) !important;
border: 1px solid var(--global-theme-color);
}
}
.title {
font-weight: bolder;
}
.author {
a {
border-bottom: 1px dashed var(--global-theme-color);
&:hover {
border-bottom-style: solid;
text-decoration: none;
}
}
> em {
border-bottom: 1px solid;
font-style: normal;
}
> span.more-authors {
color: var(--global-text-color-light);
border-bottom: 1px dashed var(--global-text-color-light);
cursor: pointer;
&:hover {
color: var(--global-text-color);
border-bottom: 1px dashed var(--global-text-color);
}
}
}
.links {
a.btn {
color: var(--global-text-color);
border: 1px solid var(--global-text-color);
padding-left: 1rem;
padding-right: 1rem;
padding-top: 0.25rem;
padding-bottom: 0.25rem;
margin-left: 0;
&:hover {
color: var(--global-theme-color);
border-color: var(--global-theme-color);
}
}
a.award.btn {
border-color: var(--global-highlight-color);
}
}
.badges {
padding-bottom: 0.5rem;
span {
display: inline-block;
color: $black-color;
height: 100%;
padding-right: 0.5rem;
vertical-align: middle;
&:hover {
text-decoration: underline;
}
}
}
.hidden {
font-size: 0.875rem;
max-height: 0px;
overflow: hidden;
text-align: justify;
transition-property: 0.15s ease;
-moz-transition: 0.15s ease;
-ms-transition: 0.15s ease;
-o-transition: 0.15s ease;
transition: all 0.15s ease;
p {
line-height: 1.4em;
margin: 10px;
}
pre {
font-size: 1em;
line-height: 1.4em;
padding: 10px;
}
}
.hidden.open {
max-height: 100em;
transition-property: 0.15s ease;
-moz-transition: 0.15s ease;
-ms-transition: 0.15s ease;
-o-transition: 0.15s ease;
transition: all 0.15s ease;
}
div.abstract.hidden {
border: dashed 1px var(--global-bg-color);
}
div.abstract.hidden.open {
border-color: var(--global-text-color);
}
}
div.award.hidden {
border: dashed 1px var(--global-bg-color);
}
div.award.hidden.open {
border-color: var(--global-highlight-color);
}
}
}
// Rouge Color Customization
figure.highlight {
margin: 0 0 1rem;
}
pre {
color: var(--global-theme-color);
background-color: var(--global-code-bg-color);
border-radius: 6px;
padding: 6px 12px;
pre,
code {
background-color: transparent;
border-radius: 0;
margin-bottom: 0;
padding: 0;
}
}
code {
color: var(--global-theme-color);
background-color: var(--global-code-bg-color);
border-radius: 3px;
padding: 3px 3px;
}
// Transitioning Themes
html.transition,
html.transition *,
html.transition *:before,
html.transition *:after {
transition: all 750ms !important;
transition-delay: 0 !important;
}
// Extra Markdown style (post Customization)
.post {
.post-meta {
color: var(--global-text-color-light);
font-size: 0.875rem;
margin-bottom: 0;
}
.post-tags {
color: var(--global-text-color-light);
font-size: 0.875rem;
padding-top: 0.25rem;
padding-bottom: 1rem;
a {
color: var(--global-text-color-light);
text-decoration: none;
&:hover {
color: var(--global-theme-color);
}
}
}
}
progress {
/* Positioning */
position: fixed;
left: 0;
top: 56px;
z-index: 10;
/* Dimensions */
width: 100%;
height: 1px;
/* Reset the appearance */
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
/* Get rid of the default border in Firefox/Opera. */
border: none;
/* Progress bar container for Firefox/IE10 */
background-color: transparent;
/* Progress bar value for IE10 */
color: var(--global-theme-color);
}
progress::-webkit-progress-bar {
background-color: transparent;
}
progress::-webkit-progress-value {
background-color: var(--global-theme-color);
}
progress::-moz-progress-bar {
background-color: var(--global-theme-color);
}
.progress-container {
width: 100%;
background-color: transparent;
position: fixed;
top: 56px;
left: 0;
height: 5px;
display: block;
}
.progress-bar {
background-color: var(--global-theme-color);
width: 0%;
display: block;
height: inherit;
}
/* Copy button */
.code-display-wrapper {
position: relative;
.copy {
background: var(--global-card-bg-color);
border-color: var(--global-bg-color);
border-radius: 0.3rem;
border-style: none;
color: var(--global-text-color);
font-size: medium;
opacity: 0;
position: absolute;
right: 0.2rem;
top: 0.2rem;
}
&:active .copy,
&:focus .copy,
&:hover .copy {
color: var(--global-hover-color);
opacity: 1;
}
}
.btn-group.dropdown {
.btn {
box-shadow: none;
-webkit-box-shadow: none;
}
.btn-secondary.dropdown-toggle {
border: 1px solid var(--global-divider-color);
.page-size {
color: inherit;
}
&:not(.active) {
background-color: var(--global-bg-color) !important;
color: var(--global-text-color);
}
&:hover {
background-color: var(--global-hover-color) !important;
color: var(--global-hover-text-color) !important;
}
}
.dropdown-menu {
background-color: var(--global-bg-color);
}
.dropdown-item {
background-color: var(--global-bg-color);
color: var(--global-text-color);
&:hover {
color: var(--global-hover-color);
}
}
.dropdown-item.active,
.dropdown-item:active {
background-color: var(--global-hover-color);
color: var(--global-hover-text-color) !important;
&:hover {
color: var(--global-hover-text-color);
}
}
}
/* Table of Contents */
nav[data-toggle="toc"] {
top: 5rem;
.nav .nav > li > a {
font-size: 0.75rem;
}
.nav > li > a {
color: var(--global-text-color);
font-size: 0.75rem;
&:hover {
color: var(--global-hover-color);
border-left-color: var(--global-hover-color);
}
}
.nav-link.active {
color: var(--global-theme-color);
border-left-color: var(--global-theme-color);
font-size: 0.75rem;
&:hover {
color: var(--global-hover-color);
border-left-color: var(--global-hover-color);
}
}
}
/* small screens */
@media (max-width: 576px) {
/* override stickyness so that the navigation does not follow scrolling */
nav[data-toggle="toc"] {
visibility: hidden;
height: 0;
top: 0;
}
}
.featured-posts {
a {
color: var(--global-text-color-light);
text-decoration: none;
.card-text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
&:hover {
color: var(--global-theme-color);
.card-title {
color: var(--global-theme-color);
}
}
}
.post-meta {
color: var(--global-text-color-light);
font-size: 0.875rem;
margin-bottom: 0;
padding-top: 0.5rem;
}
}
.unloaded {
display: none !important;
}
.medium-zoom-overlay,
.medium-zoom-image--opened {
z-index: 999;
}
#toc-sidebar {
z-index: 1;
}
.echarts {
height: 400px;
width: 100%;
}
.map {
height: 400px;
width: 100%;
}
swiper-container {
--swiper-navigation-color: var(--global-theme-color);
--swiper-pagination-color: var(--global-theme-color);
--swiper-pagination-bullet-inactive-color: var(--global-text-color);
}
.ps-root {
.ps-algorithm {
margin: 0.8em 0;
border-top: 3px solid var(--global-text-color);
border-bottom: 2px solid var(--global-text-color);
}
.ps-algorithm.with-caption > .ps-line:first-child {
border-bottom: 2px solid var(--global-text-color);
}
}
// Ninja Keys
// for more options, check https://github.com/ssleptsov/ninja-keys?tab=readme-ov-file#css-variables
ninja-keys {
--ninja-accent-color: var(--global-theme-color);
--ninja-icon-size: 0px;
--ninja-modal-background: var(--global-bg-color);
--ninja-z-index: 1031;
}
ninja-keys::part(ninja-input) {
color: var(--ninja-selected-text-color);
}
ninja-keys::part(ninja-input-wrapper) {
background: var(--global-bg-color);
}