Import theme

This commit is contained in:
DuN0z 2025-10-09 10:23:36 +02:00
parent 51769fa6be
commit c59ffbfeee
127 changed files with 13611 additions and 1 deletions

View file

@ -0,0 +1,18 @@
@use 'modules/config' as conf;
@charset "UTF-8";
* {
font-family: inherit;
}
body {
@include conf.ltr {
font-family: 'PingHei', 'PingFang SC', 'Helvetica Neue', 'Work Sans', 'Hiragino Sans GB', sans-serif;
font-size: 1.6rem;
}
@include conf.rtl {
font-family: 'Tajawal', sans-serif;
font-size: 1.5rem;
}
}

View file

@ -0,0 +1,36 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
a {
text-decoration: none;
@include color.themed() {
color: color.t('primary');
}
&:hover {
@include color.themed() {
color: color.t('info');
}
}
}
blockquote {
padding: 0 1em;
@include color.themed() {
color: color.t('primary');
@include conf.ltr {
border-left: color.t('border');
}
@include conf.rtl {
border-right: color.t('border');
}
}
}
p {
line-height: 1.9em;
}

View file

@ -0,0 +1,29 @@
@use 'modules/color_theme' as color;
.alert {
padding: 1rem;
border-style: solid;
border-radius: 0.25rem;
border-width: 2px;
margin-top: 1rem;
@include color.themed() {
border-color: color.t('alert');
}
&__indicator {
display: inline-block;
border-radius: 9999px;
padding: 0.5rem;
width: 2.5rem;
height: 2.5rem;
text-align: center;
font-weight: 800;
margin-right: 0.75rem;
@include color.themed() {
color: color.t('accent');
background-color: color.t('alert');
}
}
}

View file

@ -0,0 +1,52 @@
.animated {
transition: top 0.8s linear;
animation-duration: 1s;
-webkit-animation-duration: 1s;
-moz-animation-duration: 1s;
-ms-animation-duration: 1s;
-o-animation-duration: 1s;
-webkit-animation-name: fadeInDown;
-moz-animation-name: fadeInDown;
-o-animation-name: fadeInDown;
animation-name: fadeInDown;
@-webkit-keyframes fadeInDown {
0% {
-webkit-transform: translateY(-20px);
}
100% {
-webkit-transform: translateY(0);
}
}
@-moz-keyframes fadeInDown {
0% {
-moz-transform: translateY(-20px);
}
100% {
-moz-transform: translateY(0);
}
}
@-o-keyframes fadeInDown {
0% {
-o-transform: translateY(-20px);
}
100% {
-o-transform: translateY(0);
}
}
@keyframes fadeInDown {
0% {
transform: translateY(-20px);
}
100% {
transform: translateY(0);
}
}
}

View file

@ -0,0 +1,48 @@
@use 'modules/color_theme' as color;
.archive {
margin: 30px;
&__heading {
font-size: 2.4rem;
font-weight: 600;
line-height: 2.2em;
@include color.themed() {
color: color.t('primary');
}
}
&__list {
padding: 0;
&-item {
display: flex;
justify-content: space-between;
padding-bottom: 5px;
list-style-type: none;
}
&-date {
text-align: right;
@include color.themed() {
color: color.t('primary-light');
}
}
&-title {
display: inline-block;
flex: 0.96;
@include color.themed() {
color: color.t('primary');
}
&:hover {
@include color.themed() {
color: color.t('info');
}
}
}
}
}

View file

@ -0,0 +1,23 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
.category {
padding: 4px 6px;
border-radius: 2px;
display: inline-block;
font-size: 1.4rem;
@include color.themed() {
border: color.t('border');
background-color: color.t('primary-lighter');
color: color.t('primary') !important;
}
@include conf.ltr {
margin: 5px 8px 5px 0;
}
@include conf.rtl {
margin: 5px 0 5px 8px;
}
}

View file

@ -0,0 +1,6 @@
.comment {
margin: 30px;
.utterances {
max-width: unset;
}
}

View file

@ -0,0 +1,47 @@
@use 'modules/config' as conf;
.footer {
$font-size-footer: 1.4rem;
text-align: center;
margin: 0 auto;
bottom: 0;
width: 100%;
padding-bottom: 20px;
flex: 0;
position: relative;
&__list {
list-style: none;
padding: 0;
display: flex;
justify-content: center;
}
&__item {
font-size: $font-size-footer;
&:not(:first-of-type)::before {
content: '\00B7';
padding: 4px;
}
a {
font-size: $font-size-footer;
}
}
&__sidebar {
display: none;
@include conf.desktop {
display: inline-block;
}
}
&__base {
@include conf.desktop {
display: none;
}
}
}

View file

@ -0,0 +1,43 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
.navbar-burger {
cursor: pointer;
display: block;
height: 3.25rem;
position: relative;
width: 3.25rem;
margin-left: auto;
padding: 6px;
&__line {
display: block;
height: 1px;
left: calc(50% - 8px);
position: absolute;
transform-origin: center;
transition-duration: 86ms;
transition-property: background-color, opacity, transform;
transition-timing-function: ease-out;
width: 16px;
@include color.themed() {
background-color: color.t('primary');
}
&:nth-child(1) {
top: calc(50% - 6px);
}
&:nth-child(2) {
top: calc(50% - 1px);
}
&:nth-child(3) {
top: calc(50% + 4px);
}
}
@include conf.desktop {
display: none;
}
}

View file

@ -0,0 +1,48 @@
@use 'sass:color' as color;
@use 'modules/color_theme' as colorTheme;
@use 'modules/variables' as var;
.notice {
display: flex;
flex-direction: column;
@include colorTheme.themed() {
background-color: color.mix(colorTheme.t('info'), colorTheme.t('accent'), 40%);
}
&--update {
@include colorTheme.themed() {
background-color: color.mix(colorTheme.t('success'), colorTheme.t('accent'), 40%);
}
}
&--warning {
@include colorTheme.themed() {
background-color: color.mix(colorTheme.t('danger'), colorTheme.t('accent'), 40%);
}
}
&__title {
background-color: colorTheme.t('info');
align-self: flex-end;
font-weight: 300;
letter-spacing: 0.025em;
padding: 0.2rem 0.5rem 0.2rem 0.5rem;
@include colorTheme.themed() {
color: colorTheme.t('accent');
}
&--update {
background-color: colorTheme.t('success');
}
&--warning {
background-color: colorTheme.t('danger');
}
}
&__content {
padding: 8px 8px 1rem 1rem;
}
}

View file

@ -0,0 +1,84 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
.optionswitch {
position: relative;
&__label {
cursor: pointer;
white-space: nowrap;
}
&__list {
display: none;
list-style: none;
padding: 0;
position: relative;
@include conf.desktop {
border-radius: 5px;
position: absolute;
top: 32px;
@include color.themed() {
background: color.t('primary-lighter');
box-shadow: color.t('shadow');
}
}
&-item {
background: transparent;
display: block;
line-height: 1;
bottom: 0;
text-align: center;
white-space: nowrap;
padding-top: 24px;
@include color.themed() {
color: color.t('primary');
}
@include conf.desktop {
padding: 12px;
}
}
}
&__triangle {
display: none;
&::before {
content: '';
border-radius: 2px 0px 0px 0px;
height: 14px;
left: calc(50% / 2);
overflow: hidden;
position: absolute;
transform: rotate(45deg) translateY(0px) translatex(10px);
width: 14px;
@include color.themed() {
background: color.t('primary-lighter');
box-shadow: color.t('shadow');
border-color: color.t('primary-lighter');
}
}
}
&__picker {
&:checked {
~ .optionswitch {
&__list {
display: block;
}
&__triangle {
@include conf.desktop {
display: block;
}
}
}
}
}
}

View file

@ -0,0 +1,4 @@
.page_404 {
text-align: center;
padding-top: 50px;
}

View file

@ -0,0 +1,25 @@
@use 'modules/color_theme' as color;
.pagination {
margin: 30px;
padding: 0px 0 56px 0;
text-align: center;
&__list {
list-style: none;
margin: 0;
padding: 0;
height: 13px;
&-item {
margin: 0 2px 0 2px;
display: inline;
line-height: 1;
text-decoration: none;
@include color.themed() {
color: color.t('primary');
}
}
}
}

View file

@ -0,0 +1,188 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
.portfolio {
position: relative;
padding-left: 0px;
padding-right: 0px;
padding-bottom: 0px;
padding-top: 48px;
@include conf.desktop {
padding: 48px;
}
&::before {
content: '';
position: absolute;
top: 10%;
left: 10%;
bottom: 10%;
right: 10%;
background: transparent;
border-radius: 0.5em;
@include conf.desktop {
@include color.themed() {
border: color.t('border');
}
}
}
&__title {
letter-spacing: 1px;
font-size: 2.6rem;
line-height: 1;
font-weight: 600;
}
&__image {
max-width: 100%;
min-width: 100%;
box-shadow: color.t('shadow');
overflow: hidden;
transition: box-shadow 0.3s ease;
object-fit: cover;
border-bottom: 0px;
display: block;
position: relative;
&-wrapper {
display: block;
background-color: #fff;
position: relative;
overflow: hidden;
&--right,
&--left {
margin-right: auto;
margin-left: auto;
width: calc(100% - 64px);
padding: 32px 32px 0px 32px;
max-width: inherit;
@include color.themed() {
background-color: color.t('accent');
}
@include conf.desktop {
width: 60%;
object-fit: contain;
max-width: none;
border-radius: 0.5em;
padding: 0;
}
}
&--left {
@include conf.desktop {
margin-right: auto;
margin-left: 0;
}
}
&--right {
@include conf.desktop {
margin-right: 0;
margin-left: auto;
}
}
}
}
&__description {
padding: 32px;
position: relative;
@include color.themed() {
background-color: color.t('accent');
}
@include conf.desktop {
padding: 48px;
border-radius: 0.5em;
@include color.themed() {
box-shadow: color.t('shadow');
}
}
&--left,
&--right {
margin-top: -24px;
@include color.themed() {
border-bottom: color.t('border');
}
@include conf.desktop {
@include color.themed() {
background: color.t('primary-lighter');
}
border-bottom: 0px;
width: 60%;
margin-top: -48px;
}
}
&--right {
@include conf.desktop {
margin-left: auto;
}
}
}
&__meta {
display: flex;
flex-wrap: wrap;
list-style: none;
padding: 0;
row-gap: 0.8rem;
&-item {
&:not(:last-child) {
margin-right: 1.25rem;
}
}
}
&__button {
font-weight: 400;
display: inline-block;
position: relative;
outline: 0;
background: transparent;
text-align: center;
text-decoration: none;
cursor: pointer;
white-space: nowrap;
font-style: normal;
border-radius: 999em;
padding: 10px;
@include color.themed() {
border: 1px solid color.t('primary-light');
color: color.t('info');
}
&:hover {
display: inline-block;
position: relative;
outline: 0px;
background: transparent;
text-align: center;
text-decoration: none;
cursor: pointer;
white-space: nowrap;
font-weight: 400;
font-style: normal;
border-radius: 999em;
}
&-wrapper {
padding-bottom: 1em;
}
}
}

View file

@ -0,0 +1,234 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
@use 'modules/variables' as var;
.post {
margin: 30px;
@include color.themed() {
background-color: color.t('accent');
}
&__meta {
display: flex;
list-style: none;
padding: 0;
&-item {
&:not(:last-child) {
margin-right: 1.25rem;
}
}
&-icon {
@include conf.ltr {
margin-right: 2px;
}
@include conf.rtl {
margin-left: 2px;
}
}
&-text {
&:not(:last-child) {
@include conf.ltr {
margin-right: 4px;
}
@include conf.rtl {
margin-left: 4px;
}
}
}
}
&__thumbnail {
width: 100%;
height: var.$thumbnail-height;
object-fit: cover;
display: block;
&-wrapper {
border-radius: 2px;
width: 100%;
margin-bottom: 1em;
overflow: hidden;
transition: box-shadow 0.3s ease;
@include color.themed() {
box-shadow: color.t('shadow');
}
}
}
&__content {
a {
@include color.themed() {
color: color.t('info');
}
}
.chroma {
@include color.themed() {
background-color: color.t('primary-lighter');
display: block;
border-bottom: 1px solid color.t('primary-lighter');
}
}
code {
font-family: monospace;
}
pre {
padding: 5px;
overflow-x: auto;
@include color.themed() {
background-color: color.t('primary-lighter');
}
}
h1 {
$font-size-h1: 3.6rem;
font-size: $font-size-h1;
letter-spacing: 1px;
line-height: 1;
a {
font-size: $font-size-h1;
@include color.themed() {
color: color.t('primary');
}
}
}
h2 {
$font-size-h2: 2.4rem;
font-size: $font-size-h2;
font-weight: 600;
letter-spacing: 1px;
line-height: 1;
a {
font-size: $font-size-h2;
@include color.themed() {
color: color.t('primary');
}
}
}
h3 {
$font-size-h3: 2rem;
font-size: $font-size-h3;
font-weight: 600;
letter-spacing: 1px;
line-height: 1;
a {
font-size: $font-size-h3;
@include color.themed() {
color: color.t('primary');
}
}
}
ul,
ol {
line-height: 1.9em;
font-weight: 400;
word-wrap: break-word;
}
img {
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
figure {
max-width: 100%;
height: auto;
margin: 0 auto;
text-align: center;
&.big {
max-width: 87.5%;
}
&.medium {
max-width: 75%;
}
&.small {
max-width: 50%;
}
&.tiny {
max-width: 25%;
}
&.right {
@include conf.desktop {
max-width: 50%;
@include conf.ltr {
float: right;
margin: 0 0 0 1.5em;
}
@include conf.rtl {
float: left;
margin: 0 1.5em 0 0;
}
}
}
&.left {
@include conf.desktop {
max-width: 50%;
@include conf.ltr {
float: left;
margin-right: 1.5em;
}
@include conf.rtl {
float: right;
margin-left: 1.5em;
}
}
}
}
}
&__footer {
padding: 12px 0;
@include color.themed() {
border-bottom: color.t('border');
}
&-date {
font-size: 1.4rem;
@include conf.ltr {
margin-right: 10px;
margin-left: 5px;
}
@include conf.rtl {
margin-left: 10px;
margin-right: 5px;
}
}
}
}

View file

@ -0,0 +1,81 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
.sidebar {
margin-top: 40px;
@include conf.desktop {
z-index: 2;
position: fixed;
height: 100%;
margin-top: 0;
width: inherit;
display: flex;
flex-direction: column;
@include color.themed() {
@include conf.ltr {
margin-right: 4px;
border-right: color.t('border');
}
@include conf.rtl {
margin-left: 4px;
border-left: color.t('border');
}
}
}
&__content {
@include conf.desktop {
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: center;
}
}
&__list {
list-style: none;
padding: 0;
text-align: center;
&-item {
display: inline;
padding: 0 4px;
line-height: 0;
}
}
&__introduction {
top: 40%;
text-align: center;
&-description {
margin: 0 1em;
}
&-profileimage {
width: 127px;
height: 127px;
border-radius: 50%;
}
&-title {
text-transform: uppercase;
font-weight: bold;
letter-spacing: 2px;
line-height: 1;
margin: 1em;
a {
font-size: 3.2rem;
}
h1 {
margin: 0;
}
}
}
}

View file

@ -0,0 +1,23 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
.tag {
display: inline-block;
font-size: 1.4rem;
@include color.themed() {
color: color.t('primary-light');
}
@include conf.ltr {
margin: 5px 8px 5px 0;
}
@include conf.rtl {
margin: 5px 0 5px 8px;
}
&::before {
content: '#';
}
}

View file

@ -0,0 +1,4 @@
.themeswitch {
margin-top: -5px;
font-size: 1.75rem;
}

View file

@ -0,0 +1,59 @@
@use 'hugo:vars' as hugo;
@use 'modules/config' as conf;
@use 'modules/variables' as var;
.wrapper {
display: flex;
flex-direction: column;
@include conf.desktop {
flex-direction: row;
}
@include conf.widescreen {
justify-content: center;
}
&__main {
width: 100%;
@include conf.desktop {
width: hugo.$content-ratio;
}
@include conf.widescreen {
width: hugo.$content-ratio-wide;
}
&--fullscreen {
margin-top: 20px;
@include conf.desktop {
width: 100%;
margin-top: 0px;
}
@include conf.widescreen {
width: var.$body-max-width;
}
}
}
&__sidebar {
width: 100%;
padding: 16px 0;
@include conf.desktop {
width: hugo.$sidebar_ratio;
padding: 0;
}
@include conf.widescreen {
width: hugo.$sidebar_ratio_wide;
}
&--hidden {
display: none;
}
}
}

View file

@ -0,0 +1,11 @@
@use 'modules/color_theme' as color;
.body {
width: 100%;
margin: 0 auto;
// work around to style body
@include color.themed() {
color: color.t('primary');
background-color: color.t('accent');
}
}

View file

@ -0,0 +1,24 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
.header {
@include color.themed() {
background-color: color.t('accent');
}
width: 100%;
position: fixed;
z-index: 1;
top: 0;
@include conf.desktop {
position: sticky;
@include color.themed() {
border-bottom: color.t('border');
}
}
@include conf.print {
display: none;
}
}

View file

@ -0,0 +1,4 @@
.html {
-webkit-font-smoothing: antialiased;
font-size: 62.5%;
}

View file

@ -0,0 +1,77 @@
@use 'modules/color_theme' as color;
@use 'modules/config' as conf;
.nav {
$py-desktop: 24px;
display: none;
@include conf.desktop {
display: flex;
justify-content: space-between;
align-items: center;
box-shadow: none;
}
&__list {
margin: 0;
list-style: none;
padding: 0;
width: 100%;
@include color.themed() {
background-color: color.t('primary-lighter');
}
@include conf.desktop {
display: flex;
padding: $py-desktop 30px;
@include color.themed() {
background-color: color.t('accent');
}
&--end {
flex-shrink: 1;
justify-content: flex-end;
}
}
&-item {
padding: 16px 0;
text-transform: uppercase;
text-align: center;
white-space: nowrap;
@include conf.desktop {
padding-top: 0;
padding-bottom: 0;
&:not(:last-child) {
@include conf.ltr {
padding-right: 20px;
}
@include conf.rtl {
padding-left: 20px;
}
}
}
}
}
&__link {
&--active {
padding-bottom: $py-desktop;
@include conf.desktop {
@include color.themed() {
border-bottom: 1px solid color.t('primary');
}
}
}
}
&--active {
display: block;
}
}

View file

@ -0,0 +1,65 @@
/* (CONTACT) FORM */
@use 'modules/color_theme' as color;
.contact-form {
margin-top: 30px;
}
.form-style {
width: 100%;
}
.form-style ul {
padding: 0;
margin: 0;
list-style: none;
}
.form-style ul li {
@include color.themed() {
background-color: color.t('accent');
color: color.t('primary');
}
display: block;
margin-bottom: 10px;
min-height: 35px;
}
.form-style ul li .field-style {
@include color.themed() {
border: color.t('border');
background-color: color.t('accent');
color: color.t('primary');
}
box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
padding: 8px;
outline: none;
font-family: inherit;
}
.form-style ul li .field-style:focus {
box-shadow: 0 0 5px;
border: 1px solid;
}
.form-style ul li .field-split {
width: 49%;
}
.form-style ul li .field-full {
width: 100%;
}
.form-style ul li input.align-left {
float: left;
}
.form-style ul li input.align-right {
float: right;
}
.form-style ul li textarea {
width: 100%;
height: auto;
}
.form-style ul li input[type='button'],
.form-style ul li input[type='submit'] {
display: inline-block;
cursor: pointer;
text-decoration: none;
width: 100%;
}
/* (CONTACT) FORM END */

View file

@ -0,0 +1,39 @@
@use 'modules/color_theme' as color;
.medium-zoom-overlay {
@include color.themed() {
background: color.t('accent');
}
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
opacity: 0;
transition: opacity 300ms;
will-change: opacity;
}
.medium-zoom--opened .medium-zoom-overlay {
cursor: pointer;
cursor: zoom-out;
opacity: 1;
}
.medium-zoom-image {
cursor: pointer;
cursor: zoom-in;
transition: transform 300ms cubic-bezier(0.2, 0, 0.2, 1) !important;
z-index: 100;
}
.medium-zoom-image--hidden {
visibility: hidden;
}
.medium-zoom-image--opened {
position: relative;
cursor: pointer;
cursor: zoom-out;
will-change: transform;
}

View file

@ -0,0 +1,20 @@
@use 'modules/color_theme' as color;
table {
display: table;
width: 80%;
border-collapse: collapse;
}
tr {
display: table-row;
}
th,
td {
display: table-cell;
padding: 8px;
@include color.themed() {
border: color.t('border');
}
}

View file

@ -0,0 +1,25 @@
@use 'modules/variables' as var;
#TableOfContents {
display: block;
background: transparent;
}
#TableOfContents ul {
list-style: none;
line-height: 1.9em;
margin: 0;
}
#TableOfContents > ul {
padding-left: 0;
}
#TableOfContents li a {
display: inherit;
color: var.$info;
}
#TableOfContents li a:hover {
display: inherit;
}