Import theme
This commit is contained in:
parent
51769fa6be
commit
c59ffbfeee
127 changed files with 13611 additions and 1 deletions
3
assets/css/custom.css
Normal file
3
assets/css/custom.css
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
.wrapper__main {
|
||||
max-width: 800px;
|
||||
}
|
||||
464
assets/css/markupHighlight.css
Normal file
464
assets/css/markupHighlight.css
Normal file
|
|
@ -0,0 +1,464 @@
|
|||
:root {
|
||||
/* Light -> monokailight */
|
||||
--chr-def-color: #272822;
|
||||
--chr-def-bg-color: #fafafa;
|
||||
--chr-err-color: #960050;
|
||||
--chr-err-bg-color: #960050;
|
||||
--chr-hl-bg-color: #ffffcc;
|
||||
--chr-lnt-color: #7f7f7f;
|
||||
--chr-ln-color: #7f7f7f;
|
||||
--chr-k-color: #00a8c8;
|
||||
--chr-kc-color: #00a8c8;
|
||||
--chr-kd-color: #00a8c8;
|
||||
--chr-kn-color: #f92672;
|
||||
--chr-kp-color: #00a8c8;
|
||||
--chr-kr-color: #00a8c8;
|
||||
--chr-kt-color: #00a8c8;
|
||||
--chr-na-color: #75af00;
|
||||
--chr-bp-color: #111111;
|
||||
--chr-nc-color: #75af00;
|
||||
--chr-no-color: #00a8c8;
|
||||
--chr-nd-color: #75af00;
|
||||
--chr-ni-color: #111111;
|
||||
--chr-ne-color: #75af00;
|
||||
--chr-nf-color: #75af00;
|
||||
--chr-fm-color: #111111;
|
||||
--chr-nl-color: #111111;
|
||||
--chr-nx-color: #75af00;
|
||||
--chr-py-color: #111111;
|
||||
--chr-nt-color: #f92672;
|
||||
--chr-vc-color: #111111;
|
||||
--chr-vg-color: #111111;
|
||||
--chr-vi-color: #111111;
|
||||
--chr-vm-color: #111111;
|
||||
--chr-l-color: #ae81ff;
|
||||
--chr-ld-color: #d88200;
|
||||
--chr-s-color: #d88200;
|
||||
--chr-sa-color: #d88200;
|
||||
--chr-sb-color: #d88200;
|
||||
--chr-sc-color: #d88200;
|
||||
--chr-dl-color: #d88200;
|
||||
--chr-sd-color: #d88200;
|
||||
--chr-s2-color: #d88200;
|
||||
--chr-se-color: #8045ff;
|
||||
--chr-sh-color: #d88200;
|
||||
--chr-si-color: #d88200;
|
||||
--chr-sx-color: #d88200;
|
||||
--chr-sr-color: #d88200;
|
||||
--chr-s1-color: #d88200;
|
||||
--chr-ss-color: #d88200;
|
||||
--chr-m-color: #ae81ff;
|
||||
--chr-mb-color: #ae81ff;
|
||||
--chr-mf-color: #ae81ff;
|
||||
--chr-mh-color: #ae81ff;
|
||||
--chr-mi-color: #ae81ff;
|
||||
--chr-il-color: #ae81ff;
|
||||
--chr-mo-color: #ae81ff;
|
||||
--chr-o-color: #f92672;
|
||||
--chr-ow-color: #f92672;
|
||||
--chr-p-color: #111111;
|
||||
--chr-c-color: #75715e;
|
||||
--chr-ch-color: #75715e;
|
||||
--chr-cm-color: #75715e;
|
||||
--chr-c1-color: #75715e;
|
||||
--chr-cs-color: #75715e;
|
||||
--chr-cp-color: #75715e;
|
||||
--chr-cpf-color: #75715e;
|
||||
}
|
||||
|
||||
:root.theme--dark {
|
||||
/* Dark -> monokai */
|
||||
--chr-def-color: #f8f8f2;
|
||||
--chr-def-bg-color: #272822;
|
||||
--chr-err-color: #960050;
|
||||
--chr-err-bg-color: #1e0010;
|
||||
--chr-hl-bg-color: #ffffcc;
|
||||
--chr-lnt-color: #7f7f7f;
|
||||
--chr-ln-color: #7f7f7f;
|
||||
--chr-k-color: #66d9ef;
|
||||
--chr-kc-color: #66d9ef;
|
||||
--chr-kd-color: #66d9ef;
|
||||
--chr-kn-color: #f92672;
|
||||
--chr-kp-color: #66d9ef;
|
||||
--chr-kr-color: #66d9ef;
|
||||
--chr-kt-color: #66d9ef;
|
||||
--chr-na-color: #a6e22e;
|
||||
--chr-nc-color: #a6e22e;
|
||||
--chr-no-color: #66d9ef;
|
||||
--chr-nd-color: #a6e22e;
|
||||
--chr-ne-color: #a6e22e;
|
||||
--chr-nf-color: #a6e22e;
|
||||
--chr-nx-color: #a6e22e;
|
||||
--chr-nt-color: #f92672;
|
||||
--chr-l-color: #ae81ff;
|
||||
--chr-ld-color: #e6db74;
|
||||
--chr-s-color: #e6db74;
|
||||
--chr-sa-color: #e6db74;
|
||||
--chr-sb-color: #e6db74;
|
||||
--chr-sc-color: #e6db74;
|
||||
--chr-dl-color: #e6db74;
|
||||
--chr-sd-color: #e6db74;
|
||||
--chr-s2-color: #e6db74;
|
||||
--chr-se-color: #ae81ff;
|
||||
--chr-sh-color: #e6db74;
|
||||
--chr-si-color: #e6db74;
|
||||
--chr-sx-color: #e6db74;
|
||||
--chr-sr-color: #e6db74;
|
||||
--chr-s1-color: #e6db74;
|
||||
--chr-ss-color: #e6db74;
|
||||
--chr-m-color: #ae81ff;
|
||||
--chr-mb-color: #ae81ff;
|
||||
--chr-mf-color: #ae81ff;
|
||||
--chr-mh-color: #ae81ff;
|
||||
--chr-mi-color: #ae81ff;
|
||||
--chr-il-color: #ae81ff;
|
||||
--chr-mo-color: #ae81ff;
|
||||
--chr-o-color: #f92672;
|
||||
--chr-ow-color: #f92672;
|
||||
--chr-p-color: #f8f8f2;
|
||||
--chr-c-color: #75715e;
|
||||
--chr-ch-color: #75715e;
|
||||
--chr-cm-color: #75715e;
|
||||
--chr-c1-color: #75715e;
|
||||
--chr-cs-color: #75715e;
|
||||
--chr-cp-color: #75715e;
|
||||
--chr-cpf-color: #75715e;
|
||||
--chr-gd-color: #f92672;
|
||||
--chr-gi-color: #a6e22e;
|
||||
--chr-gu-color: #75715e;
|
||||
}
|
||||
|
||||
/* Background */
|
||||
.chroma {
|
||||
direction: ltr;
|
||||
color: var(--chr-def-color);
|
||||
background-color: var(--chr-def-bg-color);
|
||||
}
|
||||
/* Other */
|
||||
.chroma .x {
|
||||
}
|
||||
/* Error */
|
||||
.chroma .err {
|
||||
color: var(--chr-err-color);
|
||||
background-color: var(--chr-err-bg-color);
|
||||
}
|
||||
/* LineTableTD */
|
||||
.chroma .lntd {
|
||||
vertical-align: top;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
/* LineTable */
|
||||
.chroma .lntable {
|
||||
border-spacing: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
width: auto;
|
||||
overflow: auto;
|
||||
display: block;
|
||||
}
|
||||
/* LineHighlight */
|
||||
.chroma .hl {
|
||||
display: block;
|
||||
width: 100%;
|
||||
background-color: var(--chr-hl-bg-color);
|
||||
}
|
||||
/* LineNumbersTable */
|
||||
.chroma .lnt {
|
||||
margin-right: 0.4em;
|
||||
padding: 0 0.4em 0 0.4em;
|
||||
color: var(--chr-lnt-color);
|
||||
}
|
||||
/* LineNumbers */
|
||||
.chroma .ln {
|
||||
margin-right: 0.4em;
|
||||
padding: 0 0.4em 0 0.4em;
|
||||
color: var(--chr-ln-color);
|
||||
}
|
||||
/* Keyword */
|
||||
.chroma .k {
|
||||
color: var(--chr-k-color);
|
||||
}
|
||||
/* KeywordConstant */
|
||||
.chroma .kc {
|
||||
color: var(--chr-kc-color);
|
||||
}
|
||||
/* KeywordDeclaration */
|
||||
.chroma .kd {
|
||||
color: var(--chr-kd-color);
|
||||
}
|
||||
/* KeywordNamespace */
|
||||
.chroma .kn {
|
||||
color: var(--chr-kn-color);
|
||||
}
|
||||
/* KeywordPseudo */
|
||||
.chroma .kp {
|
||||
color: var(--chr-kp-color);
|
||||
}
|
||||
/* KeywordReserved */
|
||||
.chroma .kr {
|
||||
color: var(--chr-kr-color);
|
||||
}
|
||||
/* KeywordType */
|
||||
.chroma .kt {
|
||||
color: var(--chr-kt-color);
|
||||
}
|
||||
/* Name */
|
||||
.chroma .n {
|
||||
color: var(--chr-n-color);
|
||||
}
|
||||
/* NameAttribute */
|
||||
.chroma .na {
|
||||
color: var(--chr-na-color);
|
||||
}
|
||||
/* NameBuiltin */
|
||||
.chroma .nb {
|
||||
color: var(--chr-nb-color);
|
||||
}
|
||||
/* NameBuiltinPseudo */
|
||||
.chroma .bp {
|
||||
color: var(--chr-bp-color);
|
||||
}
|
||||
/* NameClass */
|
||||
.chroma .nc {
|
||||
color: var(--chr-nc-color);
|
||||
}
|
||||
/* NameConstant */
|
||||
.chroma .no {
|
||||
color: var(--chr-no-color);
|
||||
}
|
||||
/* NameDecorator */
|
||||
.chroma .nd {
|
||||
color: var(--chr-nd-color);
|
||||
}
|
||||
/* NameEntity */
|
||||
.chroma .ni {
|
||||
color: var(--chr-ni-color);
|
||||
}
|
||||
/* NameException */
|
||||
.chroma .ne {
|
||||
color: var(--chr-ne-color);
|
||||
}
|
||||
/* NameFunction */
|
||||
.chroma .nf {
|
||||
color: var(--chr-nf-color);
|
||||
}
|
||||
/* NameFunctionMagic */
|
||||
.chroma .fm {
|
||||
color: var(--chr-fm-color);
|
||||
}
|
||||
/* NameLabel */
|
||||
.chroma .nl {
|
||||
color: var(--chr-nl-color);
|
||||
}
|
||||
/* NameNamespace */
|
||||
.chroma .nn {
|
||||
color: var(--chr-nn-color);
|
||||
}
|
||||
/* NameOther */
|
||||
.chroma .nx {
|
||||
color: var(--chr-nx-color);
|
||||
}
|
||||
/* NameProperty */
|
||||
.chroma .py {
|
||||
color: var(--chr-py-color);
|
||||
}
|
||||
/* NameTag */
|
||||
.chroma .nt {
|
||||
color: var(--chr-nt-color);
|
||||
}
|
||||
/* NameVariable */
|
||||
.chroma .nv {
|
||||
color: var(--chr-nv-color);
|
||||
}
|
||||
/* NameVariableClass */
|
||||
.chroma .vc {
|
||||
color: var(--chr-vc-color);
|
||||
}
|
||||
/* NameVariableGlobal */
|
||||
.chroma .vg {
|
||||
color: var(--chr-vg-color);
|
||||
}
|
||||
/* NameVariableInstance */
|
||||
.chroma .vi {
|
||||
color: var(--chr-vi-color);
|
||||
}
|
||||
/* NameVariableMagic */
|
||||
.chroma .vm {
|
||||
color: var(--chr-vm-color);
|
||||
}
|
||||
/* Literal */
|
||||
.chroma .l {
|
||||
color: var(--chr-l-color);
|
||||
}
|
||||
/* LiteralDate */
|
||||
.chroma .ld {
|
||||
color: var(--chr-ld-color);
|
||||
}
|
||||
/* LiteralString */
|
||||
.chroma .s {
|
||||
color: var(--chr-s-color);
|
||||
}
|
||||
/* LiteralStringAffix */
|
||||
.chroma .sa {
|
||||
color: var(--chr-sa-color);
|
||||
}
|
||||
/* LiteralStringBacktick */
|
||||
.chroma .sb {
|
||||
color: var(--chr-sb-color);
|
||||
}
|
||||
/* LiteralStringChar */
|
||||
.chroma .sc {
|
||||
color: var(--chr-sc-color);
|
||||
}
|
||||
/* LiteralStringDelimiter */
|
||||
.chroma .dl {
|
||||
color: var(--chr-dl-color);
|
||||
}
|
||||
/* LiteralStringDoc */
|
||||
.chroma .sd {
|
||||
color: var(--chr-sd-color);
|
||||
}
|
||||
/* LiteralStringDouble */
|
||||
.chroma .s2 {
|
||||
color: var(--chr-s2-color);
|
||||
}
|
||||
/* LiteralStringEscape */
|
||||
.chroma .se {
|
||||
color: var(--chr-se-color);
|
||||
}
|
||||
/* LiteralStringHeredoc */
|
||||
.chroma .sh {
|
||||
color: var(--chr-sh-color);
|
||||
}
|
||||
/* LiteralStringInterpol */
|
||||
.chroma .si {
|
||||
color: var(--chr-si-color);
|
||||
}
|
||||
/* LiteralStringOther */
|
||||
.chroma .sx {
|
||||
color: var(--chr-sx-color);
|
||||
}
|
||||
/* LiteralStringRegex */
|
||||
.chroma .sr {
|
||||
color: var(--chr-sr-color);
|
||||
}
|
||||
/* LiteralStringSingle */
|
||||
.chroma .s1 {
|
||||
color: var(--chr-s1-color);
|
||||
}
|
||||
/* LiteralStringSymbol */
|
||||
.chroma .ss {
|
||||
color: var(--chr-ss-color);
|
||||
}
|
||||
/* LiteralNumber */
|
||||
.chroma .m {
|
||||
color: var(--chr-m-color);
|
||||
}
|
||||
/* LiteralNumberBin */
|
||||
.chroma .mb {
|
||||
color: var(--chr-mb-color);
|
||||
}
|
||||
/* LiteralNumberFloat */
|
||||
.chroma .mf {
|
||||
color: var(--chr-mf-color);
|
||||
}
|
||||
/* LiteralNumberHex */
|
||||
.chroma .mh {
|
||||
color: var(--chr-mh-color);
|
||||
}
|
||||
/* LiteralNumberInteger */
|
||||
.chroma .mi {
|
||||
color: var(--chr-mi-color);
|
||||
}
|
||||
/* LiteralNumberIntegerLong */
|
||||
.chroma .il {
|
||||
color: var(--chr-il-color);
|
||||
}
|
||||
/* LiteralNumberOct */
|
||||
.chroma .mo {
|
||||
color: var(--chr-mo-color);
|
||||
}
|
||||
/* Operator */
|
||||
.chroma .o {
|
||||
color: var(--chr-o-color);
|
||||
}
|
||||
/* OperatorWord */
|
||||
.chroma .ow {
|
||||
color: var(--chr-ow-color);
|
||||
}
|
||||
/* Punctuation */
|
||||
.chroma .p {
|
||||
color: var(--chr-p-color);
|
||||
}
|
||||
/* Comment */
|
||||
.chroma .c {
|
||||
color: var(--chr-c-color);
|
||||
}
|
||||
/* CommentHashbang */
|
||||
.chroma .ch {
|
||||
color: var(--chr-ch-color);
|
||||
}
|
||||
/* CommentMultiline */
|
||||
.chroma .cm {
|
||||
color: var(--chr-cm-color);
|
||||
}
|
||||
/* CommentSingle */
|
||||
.chroma .c1 {
|
||||
color: var(--chr-c1-color);
|
||||
}
|
||||
/* CommentSpecial */
|
||||
.chroma .cs {
|
||||
color: var(--chr-cs-color);
|
||||
}
|
||||
/* CommentPreproc */
|
||||
.chroma .cp {
|
||||
color: var(--chr-cp-color);
|
||||
}
|
||||
/* CommentPreprocFile */
|
||||
.chroma .cpf {
|
||||
color: var(--chr-cpf-color);
|
||||
}
|
||||
/* Generic */
|
||||
.chroma .g {
|
||||
}
|
||||
/* GenericDeleted */
|
||||
.chroma .gd {
|
||||
}
|
||||
/* GenericEmph */
|
||||
.chroma .ge {
|
||||
font-style: italic;
|
||||
}
|
||||
/* GenericError */
|
||||
.chroma .gr {
|
||||
}
|
||||
/* GenericHeading */
|
||||
.chroma .gh {
|
||||
}
|
||||
/* GenericInserted */
|
||||
.chroma .gi {
|
||||
}
|
||||
/* GenericOutput */
|
||||
.chroma .go {
|
||||
}
|
||||
/* GenericPrompt */
|
||||
.chroma .gp {
|
||||
}
|
||||
/* GenericStrong */
|
||||
.chroma .gs {
|
||||
font-weight: bold;
|
||||
}
|
||||
/* GenericSubheading */
|
||||
.chroma .gu {
|
||||
}
|
||||
/* GenericTraceback */
|
||||
.chroma .gt {
|
||||
}
|
||||
/* GenericUnderline */
|
||||
.chroma .gl {
|
||||
}
|
||||
/* TextWhitespace */
|
||||
.chroma .w {
|
||||
}
|
||||
85
assets/css/spinner.css
Normal file
85
assets/css/spinner.css
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
:root {
|
||||
--sk-size: 40px;
|
||||
--sk-color: #333;
|
||||
}
|
||||
|
||||
body.theme--dark {
|
||||
--sk-color: rgb(169, 169, 179);
|
||||
}
|
||||
|
||||
.sk-wrapper {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding: 24px 0;
|
||||
}
|
||||
|
||||
.sk-fold {
|
||||
width: var(--sk-size);
|
||||
height: var(--sk-size);
|
||||
position: relative;
|
||||
transform: rotateZ(45deg);
|
||||
}
|
||||
|
||||
.sk-fold-cube {
|
||||
float: left;
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
position: relative;
|
||||
transform: scale(1.1);
|
||||
}
|
||||
|
||||
.sk-fold-cube:before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: var(--sk-color);
|
||||
animation: sk-fold 2.4s infinite linear both;
|
||||
transform-origin: 100% 100%;
|
||||
}
|
||||
|
||||
.sk-fold-cube:nth-child(2) {
|
||||
transform: scale(1.1) rotateZ(90deg);
|
||||
}
|
||||
|
||||
.sk-fold-cube:nth-child(4) {
|
||||
transform: scale(1.1) rotateZ(180deg);
|
||||
}
|
||||
|
||||
.sk-fold-cube:nth-child(3) {
|
||||
transform: scale(1.1) rotateZ(270deg);
|
||||
}
|
||||
|
||||
.sk-fold-cube:nth-child(2):before {
|
||||
animation-delay: 0.3s;
|
||||
}
|
||||
|
||||
.sk-fold-cube:nth-child(4):before {
|
||||
animation-delay: 0.6s;
|
||||
}
|
||||
|
||||
.sk-fold-cube:nth-child(3):before {
|
||||
animation-delay: 0.9s;
|
||||
}
|
||||
|
||||
@keyframes sk-fold {
|
||||
0%,
|
||||
10% {
|
||||
transform: perspective(140px) rotateX(-180deg);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
25%,
|
||||
75% {
|
||||
transform: perspective(140px) rotateX(0);
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
90%,
|
||||
100% {
|
||||
transform: perspective(140px) rotateY(180deg);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
165
assets/fontawesome/LICENSE.txt
Normal file
165
assets/fontawesome/LICENSE.txt
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
Fonticons, Inc. (https://fontawesome.com)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Font Awesome Free License
|
||||
|
||||
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||
commercial projects, open source projects, or really almost whatever you want.
|
||||
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||
|
||||
The Font Awesome Free download is licensed under a Creative Commons
|
||||
Attribution 4.0 International License and applies to all icons packaged
|
||||
as SVG and JS file types.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Fonts: SIL OFL 1.1 License
|
||||
|
||||
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||
packaged as web and desktop font files.
|
||||
|
||||
Copyright (c) 2024 Fonticons, Inc. (https://fontawesome.com)
|
||||
with Reserved Font Name: "Font Awesome".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
SIL OPEN FONT LICENSE
|
||||
Version 1.1 - 26 February 2007
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting — in part or in whole — any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||
|
||||
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||
non-icon files.
|
||||
|
||||
Copyright 2024 Fonticons, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Attribution
|
||||
|
||||
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||
Awesome Free files already contain embedded comments with sufficient
|
||||
attribution, so you shouldn't need to do anything additional when using these
|
||||
files normally.
|
||||
|
||||
We've kept attribution comments terse, so we ask that you do not actively work
|
||||
to remove them from files, especially code. They're a great way for folks to
|
||||
learn about Font Awesome.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Brand Icons
|
||||
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**
|
||||
9
assets/fontawesome/css/all.min.css
vendored
Normal file
9
assets/fontawesome/css/all.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
assets/fontawesome/css/brands.min.css
vendored
Normal file
6
assets/fontawesome/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
9
assets/fontawesome/css/fontawesome.min.css
vendored
Normal file
9
assets/fontawesome/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
assets/fontawesome/css/regular.min.css
vendored
Normal file
6
assets/fontawesome/css/regular.min.css
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
/*!
|
||||
* Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2024 Fonticons, Inc.
|
||||
*/
|
||||
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}
|
||||
6
assets/fontawesome/css/solid.min.css
vendored
Normal file
6
assets/fontawesome/css/solid.min.css
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
/*!
|
||||
* Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2024 Fonticons, Inc.
|
||||
*/
|
||||
:host,:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
||||
6
assets/fontawesome/css/svg-with-js.min.css
vendored
Normal file
6
assets/fontawesome/css/svg-with-js.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
assets/fontawesome/css/v4-font-face.min.css
vendored
Normal file
6
assets/fontawesome/css/v4-font-face.min.css
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
/*!
|
||||
* Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2024 Fonticons, Inc.
|
||||
*/
|
||||
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
||||
6
assets/fontawesome/css/v4-shims.min.css
vendored
Normal file
6
assets/fontawesome/css/v4-shims.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
assets/fontawesome/css/v5-font-face.min.css
vendored
Normal file
6
assets/fontawesome/css/v5-font-face.min.css
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
/*!
|
||||
* Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
* Copyright 2024 Fonticons, Inc.
|
||||
*/
|
||||
@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Free";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}
|
||||
11
assets/js/anatole-header.js
Normal file
11
assets/js/anatole-header.js
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0);
|
||||
const nav = document.querySelector('nav');
|
||||
if (navbarBurgers.length < 1) return;
|
||||
navbarBurgers.forEach((navbarBurger) => {
|
||||
navbarBurger.addEventListener('click', () => {
|
||||
navbarBurger.classList.toggle('nav--active');
|
||||
nav.classList.toggle('nav--active');
|
||||
});
|
||||
});
|
||||
});
|
||||
55
assets/js/anatole-theme-switcher.js
Normal file
55
assets/js/anatole-theme-switcher.js
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
const getStoredThemeStyle = () => localStorage.getItem('theme');
|
||||
|
||||
const setThemeStyle = (style) => {
|
||||
localStorage.setItem('theme', style);
|
||||
const html = document.documentElement;
|
||||
const prevTheme = [...html.classList].find((c) => c.match(/theme--(light|dark)/));
|
||||
if (prevTheme) {
|
||||
html.classList.remove(prevTheme);
|
||||
}
|
||||
html.classList.add(`theme--${style}`);
|
||||
};
|
||||
|
||||
const setDarkTheme = () => {
|
||||
setThemeStyle('dark');
|
||||
};
|
||||
const setLightTheme = () => {
|
||||
setThemeStyle('light');
|
||||
};
|
||||
|
||||
const switchTheme = () => {
|
||||
const currThemeStyle = getStoredThemeStyle();
|
||||
switch (currThemeStyle) {
|
||||
case 'light':
|
||||
setDarkTheme();
|
||||
break;
|
||||
case 'dark':
|
||||
setLightTheme();
|
||||
break;
|
||||
default:
|
||||
setLightTheme();
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener(
|
||||
'DOMContentLoaded',
|
||||
() => {
|
||||
const themeSwitcher = document.querySelector('.themeswitch');
|
||||
themeSwitcher.addEventListener('click', switchTheme, false);
|
||||
},
|
||||
false,
|
||||
);
|
||||
|
||||
window
|
||||
.matchMedia('(prefers-color-scheme: dark)')
|
||||
.addEventListener('change', (e) => (e.matches ? setDarkTheme() : setLightTheme()), false);
|
||||
|
||||
const currThemeStyle = getStoredThemeStyle();
|
||||
if (currThemeStyle) {
|
||||
setThemeStyle(currThemeStyle);
|
||||
} else if (window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
setDarkTheme();
|
||||
} else {
|
||||
setLightTheme();
|
||||
}
|
||||
507
assets/js/medium-zoom.js
Normal file
507
assets/js/medium-zoom.js
Normal file
|
|
@ -0,0 +1,507 @@
|
|||
/*!medium-zoom 1.0.5 | MIT License | https://github.com/francoischalifour/medium-zoom*/
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
? (module.exports = factory())
|
||||
: typeof define === 'function' && define.amd
|
||||
? define(factory)
|
||||
: ((global = global || self), (global.mediumZoom = factory()));
|
||||
})(this, function () {
|
||||
'use strict';
|
||||
var _extends =
|
||||
Object.assign ||
|
||||
function (target) {
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
var source = arguments[i];
|
||||
for (var key in source) {
|
||||
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
||||
target[key] = source[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
return target;
|
||||
};
|
||||
var isSupported = function isSupported(node) {
|
||||
return node.tagName === 'IMG';
|
||||
};
|
||||
var isNodeList = function isNodeList(selector) {
|
||||
return NodeList.prototype.isPrototypeOf(selector);
|
||||
};
|
||||
var isNode = function isNode(selector) {
|
||||
return selector && selector.nodeType === 1;
|
||||
};
|
||||
var isSvg = function isSvg(image) {
|
||||
var source = image.currentSrc || image.src;
|
||||
return source.substr(-4).toLowerCase() === '.svg';
|
||||
};
|
||||
var getImagesFromSelector = function getImagesFromSelector(selector) {
|
||||
try {
|
||||
if (Array.isArray(selector)) {
|
||||
return selector.filter(isSupported);
|
||||
}
|
||||
if (isNodeList(selector)) {
|
||||
return [].slice.call(selector).filter(isSupported);
|
||||
}
|
||||
if (isNode(selector)) {
|
||||
return [selector].filter(isSupported);
|
||||
}
|
||||
if (typeof selector === 'string') {
|
||||
return [].slice.call(document.querySelectorAll(selector)).filter(isSupported);
|
||||
}
|
||||
return [];
|
||||
} catch (err) {
|
||||
throw new TypeError(
|
||||
'The provided selector is invalid.\n' +
|
||||
'Expects a CSS selector, a Node element, a NodeList or an array.\n' +
|
||||
'See: https://github.com/francoischalifour/medium-zoom',
|
||||
);
|
||||
}
|
||||
};
|
||||
var createOverlay = function createOverlay() {
|
||||
var overlay = document.createElement('div');
|
||||
overlay.classList.add('medium-zoom-overlay');
|
||||
return overlay;
|
||||
};
|
||||
var cloneTarget = function cloneTarget(template) {
|
||||
var _template$getBounding = template.getBoundingClientRect(),
|
||||
top = _template$getBounding.top,
|
||||
left = _template$getBounding.left,
|
||||
width = _template$getBounding.width,
|
||||
height = _template$getBounding.height;
|
||||
var clone = template.cloneNode();
|
||||
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
|
||||
var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0;
|
||||
clone.removeAttribute('id');
|
||||
clone.style.position = 'absolute';
|
||||
clone.style.top = top + scrollTop + 'px';
|
||||
clone.style.left = left + scrollLeft + 'px';
|
||||
clone.style.width = width + 'px';
|
||||
clone.style.height = height + 'px';
|
||||
clone.style.transform = '';
|
||||
return clone;
|
||||
};
|
||||
var createCustomEvent = function createCustomEvent(type, params) {
|
||||
var eventParams = _extends(
|
||||
{
|
||||
bubbles: false,
|
||||
cancelable: false,
|
||||
detail: undefined,
|
||||
},
|
||||
params,
|
||||
);
|
||||
if (typeof window.CustomEvent === 'function') {
|
||||
return new CustomEvent(type, eventParams);
|
||||
}
|
||||
var customEvent = document.createEvent('CustomEvent');
|
||||
customEvent.initCustomEvent(type, eventParams.bubbles, eventParams.cancelable, eventParams.detail);
|
||||
return customEvent;
|
||||
};
|
||||
var mediumZoom = function mediumZoom(selector) {
|
||||
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
var Promise =
|
||||
window.Promise ||
|
||||
function Promise(fn) {
|
||||
function noop() {}
|
||||
|
||||
fn(noop, noop);
|
||||
};
|
||||
var _handleClick = function _handleClick(event) {
|
||||
var target = event.target;
|
||||
if (target === overlay) {
|
||||
close();
|
||||
return;
|
||||
}
|
||||
if (images.indexOf(target) === -1) {
|
||||
return;
|
||||
}
|
||||
toggle({
|
||||
target: target,
|
||||
});
|
||||
};
|
||||
var _handleScroll = function _handleScroll() {
|
||||
if (isAnimating || !active.original) {
|
||||
return;
|
||||
}
|
||||
var currentScroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
|
||||
if (Math.abs(scrollTop - currentScroll) > zoomOptions.scrollOffset) {
|
||||
setTimeout(close, 150);
|
||||
}
|
||||
};
|
||||
var _handleKeyUp = function _handleKeyUp(event) {
|
||||
var key = event.key || event.keyCode;
|
||||
if (key === 'Escape' || key === 'Esc' || key === 27) {
|
||||
close();
|
||||
}
|
||||
};
|
||||
var update = function update() {
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
var newOptions = options;
|
||||
if (options.container && options.container instanceof Object) {
|
||||
newOptions.container = _extends({}, zoomOptions.container, options.container);
|
||||
}
|
||||
if (options.template) {
|
||||
var template = isNode(options.template) ? options.template : document.querySelector(options.template);
|
||||
newOptions.template = template;
|
||||
}
|
||||
zoomOptions = _extends({}, zoomOptions, newOptions);
|
||||
images.forEach(function (image) {
|
||||
image.dispatchEvent(
|
||||
createCustomEvent('medium-zoom:update', {
|
||||
detail: {
|
||||
zoom: zoom,
|
||||
},
|
||||
}),
|
||||
);
|
||||
});
|
||||
return zoom;
|
||||
};
|
||||
var clone = function clone() {
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
return mediumZoom(_extends({}, zoomOptions, options));
|
||||
};
|
||||
var attach = function attach() {
|
||||
for (var _len = arguments.length, selectors = Array(_len), _key = 0; _key < _len; _key++) {
|
||||
selectors[_key] = arguments[_key];
|
||||
}
|
||||
var newImages = selectors.reduce(function (imagesAccumulator, currentSelector) {
|
||||
return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector));
|
||||
}, []);
|
||||
newImages
|
||||
.filter(function (newImage) {
|
||||
return images.indexOf(newImage) === -1;
|
||||
})
|
||||
.forEach(function (newImage) {
|
||||
images.push(newImage);
|
||||
newImage.classList.add('medium-zoom-image');
|
||||
});
|
||||
eventListeners.forEach(function (_ref) {
|
||||
var type = _ref.type,
|
||||
listener = _ref.listener,
|
||||
options = _ref.options;
|
||||
newImages.forEach(function (image) {
|
||||
image.addEventListener(type, listener, options);
|
||||
});
|
||||
});
|
||||
return zoom;
|
||||
};
|
||||
var detach = function detach() {
|
||||
for (var _len2 = arguments.length, selectors = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
||||
selectors[_key2] = arguments[_key2];
|
||||
}
|
||||
if (active.zoomed) {
|
||||
close();
|
||||
}
|
||||
var imagesToDetach =
|
||||
selectors.length > 0
|
||||
? selectors.reduce(function (imagesAccumulator, currentSelector) {
|
||||
return [].concat(imagesAccumulator, getImagesFromSelector(currentSelector));
|
||||
}, [])
|
||||
: images;
|
||||
imagesToDetach.forEach(function (image) {
|
||||
image.classList.remove('medium-zoom-image');
|
||||
image.dispatchEvent(
|
||||
createCustomEvent('medium-zoom:detach', {
|
||||
detail: {
|
||||
zoom: zoom,
|
||||
},
|
||||
}),
|
||||
);
|
||||
});
|
||||
images = images.filter(function (image) {
|
||||
return imagesToDetach.indexOf(image) === -1;
|
||||
});
|
||||
return zoom;
|
||||
};
|
||||
var on = function on(type, listener) {
|
||||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||
images.forEach(function (image) {
|
||||
image.addEventListener('medium-zoom:' + type, listener, options);
|
||||
});
|
||||
eventListeners.push({
|
||||
type: 'medium-zoom:' + type,
|
||||
listener: listener,
|
||||
options: options,
|
||||
});
|
||||
return zoom;
|
||||
};
|
||||
var off = function off(type, listener) {
|
||||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
||||
images.forEach(function (image) {
|
||||
image.removeEventListener('medium-zoom:' + type, listener, options);
|
||||
});
|
||||
eventListeners = eventListeners.filter(function (eventListener) {
|
||||
return !(
|
||||
eventListener.type === 'medium-zoom:' + type && eventListener.listener.toString() === listener.toString()
|
||||
);
|
||||
});
|
||||
return zoom;
|
||||
};
|
||||
var open = function open() {
|
||||
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
||||
target = _ref2.target;
|
||||
var _animate = function _animate() {
|
||||
var container = {
|
||||
width: document.documentElement.clientWidth,
|
||||
height: document.documentElement.clientHeight,
|
||||
left: 0,
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
};
|
||||
var viewportWidth = void 0;
|
||||
var viewportHeight = void 0;
|
||||
if (zoomOptions.container) {
|
||||
if (zoomOptions.container instanceof Object) {
|
||||
container = _extends({}, container, zoomOptions.container);
|
||||
viewportWidth = container.width - container.left - container.right - zoomOptions.margin * 2;
|
||||
viewportHeight = container.height - container.top - container.bottom - zoomOptions.margin * 2;
|
||||
} else {
|
||||
var zoomContainer = isNode(zoomOptions.container)
|
||||
? zoomOptions.container
|
||||
: document.querySelector(zoomOptions.container);
|
||||
var _zoomContainer$getBou = zoomContainer.getBoundingClientRect(),
|
||||
_width = _zoomContainer$getBou.width,
|
||||
_height = _zoomContainer$getBou.height,
|
||||
_left = _zoomContainer$getBou.left,
|
||||
_top = _zoomContainer$getBou.top;
|
||||
container = _extends({}, container, {
|
||||
width: _width,
|
||||
height: _height,
|
||||
left: _left,
|
||||
top: _top,
|
||||
});
|
||||
}
|
||||
}
|
||||
viewportWidth = viewportWidth || container.width - zoomOptions.margin * 2;
|
||||
viewportHeight = viewportHeight || container.height - zoomOptions.margin * 2;
|
||||
var zoomTarget = active.zoomedHd || active.original;
|
||||
var naturalWidth = isSvg(zoomTarget) ? viewportWidth : zoomTarget.naturalWidth || viewportWidth;
|
||||
var naturalHeight = isSvg(zoomTarget) ? viewportHeight : zoomTarget.naturalHeight || viewportHeight;
|
||||
var _zoomTarget$getBoundi = zoomTarget.getBoundingClientRect(),
|
||||
top = _zoomTarget$getBoundi.top,
|
||||
left = _zoomTarget$getBoundi.left,
|
||||
width = _zoomTarget$getBoundi.width,
|
||||
height = _zoomTarget$getBoundi.height;
|
||||
var scaleX = Math.min(naturalWidth, viewportWidth) / width;
|
||||
var scaleY = Math.min(naturalHeight, viewportHeight) / height;
|
||||
var scale = Math.min(scaleX, scaleY);
|
||||
var translateX = (-left + (viewportWidth - width) / 2 + zoomOptions.margin + container.left) / scale;
|
||||
var translateY = (-top + (viewportHeight - height) / 2 + zoomOptions.margin + container.top) / scale;
|
||||
var transform = 'scale(' + scale + ') translate3d(' + translateX + 'px, ' + translateY + 'px, 0)';
|
||||
active.zoomed.style.transform = transform;
|
||||
if (active.zoomedHd) {
|
||||
active.zoomedHd.style.transform = transform;
|
||||
}
|
||||
};
|
||||
return new Promise(function (resolve) {
|
||||
if (target && images.indexOf(target) === -1) {
|
||||
resolve(zoom);
|
||||
return;
|
||||
}
|
||||
var _handleOpenEnd = function _handleOpenEnd() {
|
||||
isAnimating = false;
|
||||
active.zoomed.removeEventListener('transitionend', _handleOpenEnd);
|
||||
active.original.dispatchEvent(
|
||||
createCustomEvent('medium-zoom:opened', {
|
||||
detail: {
|
||||
zoom: zoom,
|
||||
},
|
||||
}),
|
||||
);
|
||||
resolve(zoom);
|
||||
};
|
||||
if (active.zoomed) {
|
||||
resolve(zoom);
|
||||
return;
|
||||
}
|
||||
if (target) {
|
||||
active.original = target;
|
||||
} else if (images.length > 0) {
|
||||
var _images = images;
|
||||
active.original = _images[0];
|
||||
} else {
|
||||
resolve(zoom);
|
||||
return;
|
||||
}
|
||||
active.original.dispatchEvent(
|
||||
createCustomEvent('medium-zoom:open', {
|
||||
detail: {
|
||||
zoom: zoom,
|
||||
},
|
||||
}),
|
||||
);
|
||||
scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
|
||||
isAnimating = true;
|
||||
active.zoomed = cloneTarget(active.original);
|
||||
document.body.appendChild(overlay);
|
||||
if (zoomOptions.template) {
|
||||
var template = isNode(zoomOptions.template)
|
||||
? zoomOptions.template
|
||||
: document.querySelector(zoomOptions.template);
|
||||
active.template = document.createElement('div');
|
||||
active.template.appendChild(template.content.cloneNode(true));
|
||||
document.body.appendChild(active.template);
|
||||
}
|
||||
document.body.appendChild(active.zoomed);
|
||||
window.requestAnimationFrame(function () {
|
||||
document.body.classList.add('medium-zoom--opened');
|
||||
});
|
||||
active.original.classList.add('medium-zoom-image--hidden');
|
||||
active.zoomed.classList.add('medium-zoom-image--opened');
|
||||
active.zoomed.addEventListener('click', close);
|
||||
active.zoomed.addEventListener('transitionend', _handleOpenEnd);
|
||||
if (active.original.getAttribute('data-zoom-src')) {
|
||||
active.zoomedHd = active.zoomed.cloneNode();
|
||||
active.zoomedHd.removeAttribute('srcset');
|
||||
active.zoomedHd.removeAttribute('sizes');
|
||||
active.zoomedHd.src = active.zoomed.getAttribute('data-zoom-src');
|
||||
active.zoomedHd.onerror = function () {
|
||||
clearInterval(getZoomTargetSize);
|
||||
console.warn('Unable to reach the zoom image target ' + active.zoomedHd.src);
|
||||
active.zoomedHd = null;
|
||||
_animate();
|
||||
};
|
||||
var getZoomTargetSize = setInterval(function () {
|
||||
if (active.zoomedHd.complete) {
|
||||
clearInterval(getZoomTargetSize);
|
||||
active.zoomedHd.classList.add('medium-zoom-image--opened');
|
||||
active.zoomedHd.addEventListener('click', close);
|
||||
document.body.appendChild(active.zoomedHd);
|
||||
_animate();
|
||||
}
|
||||
}, 10);
|
||||
} else if (active.original.hasAttribute('srcset')) {
|
||||
active.zoomedHd = active.zoomed.cloneNode();
|
||||
active.zoomedHd.removeAttribute('sizes');
|
||||
var loadEventListener = active.zoomedHd.addEventListener('load', function () {
|
||||
active.zoomedHd.removeEventListener('load', loadEventListener);
|
||||
active.zoomedHd.classList.add('medium-zoom-image--opened');
|
||||
active.zoomedHd.addEventListener('click', close);
|
||||
document.body.appendChild(active.zoomedHd);
|
||||
_animate();
|
||||
});
|
||||
} else {
|
||||
_animate();
|
||||
}
|
||||
});
|
||||
};
|
||||
var close = function close() {
|
||||
return new Promise(function (resolve) {
|
||||
if (isAnimating || !active.original) {
|
||||
resolve(zoom);
|
||||
return;
|
||||
}
|
||||
var _handleCloseEnd = function _handleCloseEnd() {
|
||||
active.original.classList.remove('medium-zoom-image--hidden');
|
||||
document.body.removeChild(active.zoomed);
|
||||
if (active.zoomedHd) {
|
||||
document.body.removeChild(active.zoomedHd);
|
||||
}
|
||||
document.body.removeChild(overlay);
|
||||
active.zoomed.classList.remove('medium-zoom-image--opened');
|
||||
if (active.template) {
|
||||
document.body.removeChild(active.template);
|
||||
}
|
||||
isAnimating = false;
|
||||
active.zoomed.removeEventListener('transitionend', _handleCloseEnd);
|
||||
active.original.dispatchEvent(
|
||||
createCustomEvent('medium-zoom:closed', {
|
||||
detail: {
|
||||
zoom: zoom,
|
||||
},
|
||||
}),
|
||||
);
|
||||
active.original = null;
|
||||
active.zoomed = null;
|
||||
active.zoomedHd = null;
|
||||
active.template = null;
|
||||
resolve(zoom);
|
||||
};
|
||||
isAnimating = true;
|
||||
document.body.classList.remove('medium-zoom--opened');
|
||||
active.zoomed.style.transform = '';
|
||||
if (active.zoomedHd) {
|
||||
active.zoomedHd.style.transform = '';
|
||||
}
|
||||
if (active.template) {
|
||||
active.template.style.transition = 'opacity 150ms';
|
||||
active.template.style.opacity = 0;
|
||||
}
|
||||
active.original.dispatchEvent(
|
||||
createCustomEvent('medium-zoom:close', {
|
||||
detail: {
|
||||
zoom: zoom,
|
||||
},
|
||||
}),
|
||||
);
|
||||
active.zoomed.addEventListener('transitionend', _handleCloseEnd);
|
||||
});
|
||||
};
|
||||
var toggle = function toggle() {
|
||||
var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
||||
target = _ref3.target;
|
||||
if (active.original) {
|
||||
return close();
|
||||
}
|
||||
return open({
|
||||
target: target,
|
||||
});
|
||||
};
|
||||
var getOptions = function getOptions() {
|
||||
return zoomOptions;
|
||||
};
|
||||
var getImages = function getImages() {
|
||||
return images;
|
||||
};
|
||||
var getZoomedImage = function getZoomedImage() {
|
||||
return active.original;
|
||||
};
|
||||
var images = [];
|
||||
var eventListeners = [];
|
||||
var isAnimating = false;
|
||||
var scrollTop = 0;
|
||||
var zoomOptions = options;
|
||||
var active = {
|
||||
original: null,
|
||||
zoomed: null,
|
||||
zoomedHd: null,
|
||||
template: null,
|
||||
};
|
||||
if (Object.prototype.toString.call(selector) === '[object Object]') {
|
||||
zoomOptions = selector;
|
||||
} else if (selector || typeof selector === 'string') {
|
||||
attach(selector);
|
||||
}
|
||||
zoomOptions = _extends(
|
||||
{
|
||||
margin: 0,
|
||||
scrollOffset: 40,
|
||||
container: null,
|
||||
template: null,
|
||||
},
|
||||
zoomOptions,
|
||||
);
|
||||
var overlay = createOverlay();
|
||||
document.addEventListener('click', _handleClick);
|
||||
document.addEventListener('keyup', _handleKeyUp);
|
||||
document.addEventListener('scroll', _handleScroll);
|
||||
window.addEventListener('resize', close);
|
||||
var zoom = {
|
||||
open: open,
|
||||
close: close,
|
||||
toggle: toggle,
|
||||
update: update,
|
||||
clone: clone,
|
||||
attach: attach,
|
||||
detach: detach,
|
||||
on: on,
|
||||
off: off,
|
||||
getOptions: getOptions,
|
||||
getImages: getImages,
|
||||
getZoomedImage: getZoomedImage,
|
||||
};
|
||||
return zoom;
|
||||
};
|
||||
return mediumZoom;
|
||||
});
|
||||
|
||||
mediumZoom(document.querySelectorAll('div.post__content img'));
|
||||
29
assets/scss/main.scss
Normal file
29
assets/scss/main.scss
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
@use 'modules/variables' as *;
|
||||
@use 'modules/config';
|
||||
@use 'modules/color_theme';
|
||||
@use 'partials/hugo';
|
||||
@use 'partials/base';
|
||||
@use 'partials/layout/html';
|
||||
@use 'partials/layout/body';
|
||||
@use 'partials/layout/header';
|
||||
@use 'partials/layout/nav';
|
||||
@use 'partials/components/animated';
|
||||
@use 'partials/components/category';
|
||||
@use 'partials/components/tag';
|
||||
@use 'partials/components/wrapper';
|
||||
@use 'partials/components/sidebar';
|
||||
@use 'partials/components/footer';
|
||||
@use 'partials/components/pagination';
|
||||
@use 'partials/components/navbarburger';
|
||||
@use 'partials/components/comment';
|
||||
@use 'partials/components/optionswitch';
|
||||
@use 'partials/components/post';
|
||||
@use 'partials/components/alert';
|
||||
@use 'partials/components/portfolio';
|
||||
@use 'partials/components/page404';
|
||||
@use 'partials/components/archive';
|
||||
@use 'partials/components/notice';
|
||||
@use 'partials/vendors/mediumzoom';
|
||||
@use 'partials/vendors/contactform';
|
||||
@use 'partials/vendors/tableofcontents';
|
||||
@use 'partials/vendors/table';
|
||||
55
assets/scss/modules/_color_theme.scss
Normal file
55
assets/scss/modules/_color_theme.scss
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
@use 'modules/variables' as var;
|
||||
@use 'sass:map';
|
||||
|
||||
$themes: (
|
||||
light: (
|
||||
accent: var.$accent--lightmode,
|
||||
primary: var.$primary--lightmode,
|
||||
primary-light: var.$primary-light--lightmode,
|
||||
primary-lighter: var.$primary-lighter--lightmode,
|
||||
info: var.$info,
|
||||
shadow: var.$shadow--lightmode,
|
||||
border: 1px solid var.$primary-lighter--lightmode,
|
||||
alert: var.$warning,
|
||||
success: var.$success,
|
||||
warning: var.$warning,
|
||||
danger: var.$danger,
|
||||
),
|
||||
dark: (
|
||||
accent: var.$accent--darkmode,
|
||||
primary: var.$primary--darkmode,
|
||||
primary-light: var.$primary-light--darkmode,
|
||||
primary-lighter: var.$primary-lighter--darkmode,
|
||||
info: var.$info,
|
||||
shadow: var.$shadow--darkmode,
|
||||
border: 1px solid var.$primary-lighter--darkmode,
|
||||
alert: var.$warning,
|
||||
success: var.$success,
|
||||
warning: var.$warning,
|
||||
danger: var.$danger,
|
||||
),
|
||||
);
|
||||
|
||||
$theme-map: ();
|
||||
|
||||
@mixin themed() {
|
||||
@each $theme, $map in $themes {
|
||||
.theme--#{$theme} & {
|
||||
@each $key, $submap in $map {
|
||||
$value: map.get(map.get($themes, $theme), '#{$key}');
|
||||
$theme-map: map.merge(
|
||||
$theme-map,
|
||||
(
|
||||
$key: $value,
|
||||
)
|
||||
) !global;
|
||||
}
|
||||
@content;
|
||||
$theme-map: ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@function t($key) {
|
||||
@return map.get($theme-map, $key);
|
||||
}
|
||||
31
assets/scss/modules/_config.scss
Normal file
31
assets/scss/modules/_config.scss
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
@use 'hugo:vars' as hugo;
|
||||
|
||||
@mixin desktop {
|
||||
@media screen and (min-width: 961px) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin widescreen {
|
||||
@media screen and (min-width: 1921px) {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin print {
|
||||
@media print {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin ltr {
|
||||
@if hugo.$text-direction == ltr {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin rtl {
|
||||
@if hugo.$text-direction == rtl {
|
||||
@content;
|
||||
}
|
||||
}
|
||||
19
assets/scss/modules/_variables.scss
Normal file
19
assets/scss/modules/_variables.scss
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
$accent--lightmode: #fff;
|
||||
$primary--lightmode: #464646;
|
||||
$primary-light--lightmode: #9f9f9f;
|
||||
$primary-lighter--lightmode: #eeeeee;
|
||||
$shadow--lightmode: 0 8px 16px rgba(10, 10, 10, 0.1);
|
||||
|
||||
$accent--darkmode: #152028;
|
||||
$primary--darkmode: #eeeeee;
|
||||
$primary-light--darkmode: #9f9f9f;
|
||||
$primary-lighter--darkmode: #464646;
|
||||
$shadow--darkmode: 0 8px 16px rgba(226, 226, 226, 0.1);
|
||||
|
||||
$warning: #ffc107;
|
||||
$info: #6086b4;
|
||||
$success: #51d88a;
|
||||
$danger: #ef5753;
|
||||
|
||||
$thumbnail-height: 15em;
|
||||
$body-max-width: 1920px;
|
||||
18
assets/scss/partials/_base.scss
Normal file
18
assets/scss/partials/_base.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
36
assets/scss/partials/_hugo.scss
Normal file
36
assets/scss/partials/_hugo.scss
Normal 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;
|
||||
}
|
||||
29
assets/scss/partials/components/_alert.scss
Normal file
29
assets/scss/partials/components/_alert.scss
Normal 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');
|
||||
}
|
||||
}
|
||||
}
|
||||
52
assets/scss/partials/components/_animated.scss
Normal file
52
assets/scss/partials/components/_animated.scss
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
48
assets/scss/partials/components/_archive.scss
Normal file
48
assets/scss/partials/components/_archive.scss
Normal 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');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
assets/scss/partials/components/_category.scss
Normal file
23
assets/scss/partials/components/_category.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
6
assets/scss/partials/components/_comment.scss
Normal file
6
assets/scss/partials/components/_comment.scss
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
.comment {
|
||||
margin: 30px;
|
||||
.utterances {
|
||||
max-width: unset;
|
||||
}
|
||||
}
|
||||
47
assets/scss/partials/components/_footer.scss
Normal file
47
assets/scss/partials/components/_footer.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
43
assets/scss/partials/components/_navbarburger.scss
Normal file
43
assets/scss/partials/components/_navbarburger.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
48
assets/scss/partials/components/_notice.scss
Normal file
48
assets/scss/partials/components/_notice.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
84
assets/scss/partials/components/_optionswitch.scss
Normal file
84
assets/scss/partials/components/_optionswitch.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
4
assets/scss/partials/components/_page404.scss
Normal file
4
assets/scss/partials/components/_page404.scss
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
.page_404 {
|
||||
text-align: center;
|
||||
padding-top: 50px;
|
||||
}
|
||||
25
assets/scss/partials/components/_pagination.scss
Normal file
25
assets/scss/partials/components/_pagination.scss
Normal 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');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
188
assets/scss/partials/components/_portfolio.scss
Normal file
188
assets/scss/partials/components/_portfolio.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
234
assets/scss/partials/components/_post.scss
Normal file
234
assets/scss/partials/components/_post.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
81
assets/scss/partials/components/_sidebar.scss
Normal file
81
assets/scss/partials/components/_sidebar.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
23
assets/scss/partials/components/_tag.scss
Normal file
23
assets/scss/partials/components/_tag.scss
Normal 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: '#';
|
||||
}
|
||||
}
|
||||
4
assets/scss/partials/components/_themeswitch.scss
Normal file
4
assets/scss/partials/components/_themeswitch.scss
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
.themeswitch {
|
||||
margin-top: -5px;
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
59
assets/scss/partials/components/_wrapper.scss
Normal file
59
assets/scss/partials/components/_wrapper.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
11
assets/scss/partials/layout/_body.scss
Normal file
11
assets/scss/partials/layout/_body.scss
Normal 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');
|
||||
}
|
||||
}
|
||||
24
assets/scss/partials/layout/_header.scss
Normal file
24
assets/scss/partials/layout/_header.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
4
assets/scss/partials/layout/_html.scss
Normal file
4
assets/scss/partials/layout/_html.scss
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
.html {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-size: 62.5%;
|
||||
}
|
||||
77
assets/scss/partials/layout/_nav.scss
Normal file
77
assets/scss/partials/layout/_nav.scss
Normal 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;
|
||||
}
|
||||
}
|
||||
65
assets/scss/partials/vendors/_contactform.scss
vendored
Normal file
65
assets/scss/partials/vendors/_contactform.scss
vendored
Normal 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 */
|
||||
39
assets/scss/partials/vendors/_mediumzoom.scss
vendored
Normal file
39
assets/scss/partials/vendors/_mediumzoom.scss
vendored
Normal 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;
|
||||
}
|
||||
20
assets/scss/partials/vendors/_table.scss
vendored
Normal file
20
assets/scss/partials/vendors/_table.scss
vendored
Normal 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');
|
||||
}
|
||||
}
|
||||
25
assets/scss/partials/vendors/_tableofcontents.scss
vendored
Normal file
25
assets/scss/partials/vendors/_tableofcontents.scss
vendored
Normal 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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue