aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--assets/_sass/_layout.scss171
-rw-r--r--assets/_sass/components/_page.scss174
-rw-r--r--assets/_sass/components/_pagination.scss20
-rw-r--r--assets/_sass/components/_post.scss445
-rw-r--r--assets/_sass/main.scss20
-rw-r--r--assets/_sass/partials/_burger-menu.scss68
-rw-r--r--assets/_sass/partials/_header-separator.scss27
-rw-r--r--assets/css/base/animations.css (renamed from assets/_sass/base/_animations.scss)0
-rw-r--r--assets/css/base/fonts.css (renamed from assets/_sass/base/_fonts.scss)0
-rw-r--r--assets/css/base/reset.css (renamed from assets/_sass/base/_reset.scss)0
-rw-r--r--assets/css/base/syntax.css (renamed from assets/_sass/base/_syntax.scss)0
-rw-r--r--assets/css/base/vars.css (renamed from assets/_sass/base/_vars.scss)0
-rw-r--r--assets/css/components/page.css197
-rw-r--r--assets/css/components/pagination.css22
-rw-r--r--assets/css/components/post.css413
-rw-r--r--assets/css/layout.css191
-rw-r--r--assets/css/pages/fourofour.css (renamed from assets/_sass/pages/_fourofour.scss)1
-rw-r--r--assets/css/partials/burger-menu.css69
-rw-r--r--assets/css/partials/header-separator.css28
-rw-r--r--assets/css/styles.css1582
-rw-r--r--compile-sass.dart8
-rw-r--r--pubspec.lock573
-rw-r--r--pubspec.yaml7
-rw-r--r--src/Main.hs25
-rw-r--r--templates/default.html3
26 files changed, 945 insertions, 3101 deletions
diff --git a/.gitignore b/.gitignore
index fb2e4f7..e54b73a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,4 @@
-.stack-work/
/var/
/dist-newstyle/
/dist/
/deployment.txt
-/.dart_tool/
diff --git a/assets/_sass/_layout.scss b/assets/_sass/_layout.scss
deleted file mode 100644
index a27b8a7..0000000
--- a/assets/_sass/_layout.scss
+++ /dev/null
@@ -1,171 +0,0 @@
-.site-header {
- display: grid;
- justify-content: center;
- padding: 0 20px;
- text-align: center;
-
- .site-header-wrapper {
- position: relative;
- overflow: hidden;
- background: var(--main-color);
- padding: 10px 25px 20px 25px;
- border-radius: 0 0 5px 5px;
- text-decoration: none;
-
- transition: background .2s ease;
-
- &:before {
- position: absolute;
- top: 0;
- left: -150%;
- content: "";
- width: 50%;
- height: 100%;
- background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .3) 100%);
- transform: skew(-45deg, 0);
- }
- &:hover {
- background: var(--main-color-hover);
- &:before {
- animation: headerShine .35s;
- }
- }
- .site-logo { display: block; margin: 0 0 10px;
- img {
- display: block;
- }
- }
- .site-subtitle {
- display: block;
- font-family: 'Bebas Neue', sans-serif;
- font-size: 11px;
- line-height: 14px;
- color: var(--grey-fc);
- }
- .site-title {
- display: block;
- font-family: 'Bebas Neue', sans-serif;
- font-size: 26px;
- line-height: 28px;
- color: var(--grey-fc);
- }
- }
-}
-
-.site-navigation {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-flow: row wrap;
- gap: 10px 40px;
- max-width: 800px;
- margin: 30px auto 0;
- padding: 0 20px;
- text-align: center;
-
- a, span {
- position: relative;
- text-decoration: none;
- color: var(--grey-555);
- padding: 0 0 2px;
- transition: color .2s ease;
- cursor: pointer;
-
- &:before {
- position: absolute;
- opacity: 0;
- left: 0;
- bottom: 0;
- width: 0%;
- border-bottom: 2px solid var(--grey-222);
-
- transition: width .18s ease, opacity .18s ease;
- content: "";
- }
-
- &:hover, &.active { color: var(--grey-222);
- &:before {
- width: 100%; opacity: 1;
- }
- }
- }
-}
-
-@media screen and (max-width: 800px) {
- .site-header {
- position: fixed;
- left: 0;
- top: 0;
- width: 100%;
- z-index: 9;
- background: var(--body-bg);
- box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
-
- .site-header-wrapper {
- display: flex;
- align-items: center;
- justify-content: center;
- flex-flow: row wrap;
- gap: 0 15px;
- border-radius: 0;
- padding: 20px;
- background: transparent;
-
- &:hover {
- background: transparent;
- }
- .site-logo,
- .site-subtitle {
- display: none;
- }
- .site-title {
- font-size: 32px;
- line-height: 36px;
- color: var(--main-color);
- }
- }
- }
-
- .site-navigation {
- position: fixed;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 100%;
- justify-content: flex-start;
- flex-flow: column nowrap;
- gap: 20px 0;
- transform: translate(0, -100%);
- transition: transform .25s ease-in-out;
- padding: 100px 20px 0;
- background: rgba(255, 255, 255, .9);
- z-index: 10;
-
- a, span {
- color: var(--grey-222);
- font-size: 30px;
- line-height: 40px;
- }
- }
-}
-
-.wrapper {
- max-width: 600px;
- margin: 0 auto;
- padding: 0 20px 35px;
- border-bottom: 1px solid var(--grey-eee);
-
- &.long {
- max-width: 800px;
- }
-}
-
-.site-footer {
- max-width: 800px;
- margin: 0 auto;
- padding: 40px 20px;
- font-size: 14px;
- line-height: 22px;
- color: var(--grey-ccc);
- text-align: center;
-}
diff --git a/assets/_sass/components/_page.scss b/assets/_sass/components/_page.scss
deleted file mode 100644
index 020e8b6..0000000
--- a/assets/_sass/components/_page.scss
+++ /dev/null
@@ -1,174 +0,0 @@
-.page {
- .page-title {
- margin: 0 0 25px;
- font-family: "PT Sans", sans-serif;
- font-size: 32px;
- line-height: 42px;
- font-weight: 700;
- color: var(--grey-222);
- }
- .page-content {
- abbr {
- border-bottom: 1px dotted var(--grey-555);
- text-decoration: none;
- cursor: help;
- }
- code,
- kbd,
- pre {
- margin: 0;
- font-family: monospace;
- word-wrap: break-word;
- word-break: break-word;
- white-space: pre-wrap;
- }
- address,
- cite,
- var {
- font-style: italic;
- }
- blockquote {
- margin: 40px 0;
- padding: 0 0 0 20px;
- border-left: 3px solid var(--grey-555);
- color: var(--grey-222);
- font-weight: 700;
- }
- em,
- strong {
- color: var(--grey-222);
- }
-
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- font-family: "PT Sans", sans-serif;
- margin: 40px 0 25px 0;
- color: var(--grey-222);
- }
- h4,
- h5,
- h6 {
- margin: 25px 0;
- }
- h1 {
- font-size: 28px;
- }
- h2 {
- font-size: 26px;
- }
- h3 {
- font-size: 22px;
- }
- h4 {
- font-size: 20px;
- }
- h5 {
- font-size: 18px;
- }
- h6 {
- font-size: 16px;
- }
-
- a {
- color: var(--main-color);
- &:hover {
- text-decoration: none;
- }
- }
-
- img {
- display: block;
- max-width: 100%;
- height: auto;
- }
-
- ul {
- list-style-type: disc;
- list-style-position: inside;
- }
-
- ul,
- ol {
- margin: 15px 0;
- padding: 0 0 0 20px;
- ul,
- ol {
- padding: 0 0 0 20px;
- }
- li {
- margin: 5px 0;
- & > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
- }
- }
- }
-
- dl {
- margin: 40px 0;
- dt {
- margin: 10px 0 0;
- font-weight: 700;
- }
- dd {
- margin: 5px 0;
- & > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
- }
- }
- }
-
- p {
- margin: 15px 0;
- & > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
- }
- }
-
- .alignleft {
- float: left;
- margin: 20px 30px 10px 0;
- }
- .alignright {
- float: right;
- margin: 20px 0 10px 20px;
- }
- .aligncenter {
- clear: both;
- margin: 0 auto 20px;
- }
-
- figcaption {
- font-size: 13px;
- font-style: italic;
- padding-top: 10px;
- }
-
- .iframe-wrapper {
- position: relative;
- padding-top: 56.25%;
- & > iframe {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- }
- }
- }
-}
diff --git a/assets/_sass/components/_pagination.scss b/assets/_sass/components/_pagination.scss
deleted file mode 100644
index 5387af8..0000000
--- a/assets/_sass/components/_pagination.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-.pagination {
- display: grid;
- grid-template-columns: 100px 1fr 100px;
- margin: 50px 0 0;
- font-size: 16px;
-
- .previous,
- .next {
- text-decoration: none;
- color: var(--grey-555);
-
- &:hover {
- text-decoration: underline;
- }
- }
- .page_number {
- text-align: center;
- color: var(--grey-ccc);
- }
-}
diff --git a/assets/_sass/components/_post.scss b/assets/_sass/components/_post.scss
deleted file mode 100644
index 5abeb15..0000000
--- a/assets/_sass/components/_post.scss
+++ /dev/null
@@ -1,445 +0,0 @@
-.post-lists-title {
- font-family: 'PT Sans', sans-serif;
- font-size: 24px;
- line-height: 42px;
- font-weight: 700;
- color: var(--grey-aaa);
- margin: 0 0 40px;
- text-align: center;
-
- span {
- color: var(--grey-222);
- }
-}
-
-.post-list {
- display: grid;
- gap: 100px 0;
-}
-
-.post {
- position: relative;
-
- .post-title {
- margin: 0 0 25px;
- font-family: 'PT Sans', sans-serif;
- font-size: 32px;
- line-height: 42px;
- font-weight: 700;
- color: var(--grey-222);
-
- a {
- color: var(--grey-222);
- text-decoration: none;
-
- &:hover {
- text-decoration: underline;
- }
- }
- }
-
- .post-author {
- position: absolute;
- top: 10px;
- left: -200px;
- width: 150px;
- text-align: right;
-
- .author-avatar {
- display: inline-block;
- width: 50px;
- height: 50px;
- border-radius: 50%;
- fill: currentColor;
- color: var(--grey-ddd);
- }
- .author-info {
- .author-name {
- display: block;
- margin: 10px 0 4px;
- font-family: 'PT Sans', sans-serif;
- font-size: 16px;
- line-height: 20px;
- font-weight: 700;
- color: var(--grey-222);
- text-transform: uppercase;
- }
- .author-title {
- display: block;
- font-size: 12px;
- line-height: 16px;
- font-style: italic;
- color: var(--grey-aaa);
- }
- }
-
- .post-meta {
- position: relative;
- margin: 15px 0 0;
- padding: 15px 0 0;
- line-height: 20px;
- font-size: 14px;
- color: var(--grey-aaa);
-
- &:before {
- position: absolute;
- top: 0;
- right: 0;
- width: 30px;
- height: 1px;
- background: var(--grey-ddd);
- content: "";
- }
-
- .post-date {
- position: relative;
- margin: 0 5px 0 0;
- padding: 0 10px 0 0;
-
- &:after {
- position: absolute;
- top: 50%;
- right: 0;
- width: 3px;
- height: 3px;
- border-radius: 50%;
- background: var(--grey-ccc);
- content: "";
- }
- }
- .post-categories {
- position: relative;
- display: flex;
- justify-content: flex-end;
- gap: 5px;
- margin: 8px 0 0;
-
- a {
- color: var(--main-color);
- text-decoration: none;
-
- &:hover {
- text-decoration: underline;
- }
- }
- }
- }
-}
-
-.post-content {
- abbr {
- border-bottom: 1px dotted var(--grey-555);
- text-decoration: none;
- cursor: help;
- }
- code, kbd, pre {
- margin: 0;
- font-family: monospace;
- word-wrap: break-word;
- word-break: break-word;
- white-space: pre-wrap;
- }
- address, cite, var {
- font-style: italic;
- }
- blockquote {
- margin: 40px 0;
- padding: 0 0 0 20px;
- border-left: 3px solid var(--grey-555);
- color: var(--grey-222);
- font-weight: 700;
- }
- em, strong {
- color: var(--grey-222);
- }
-
- h1, h2, h3, h4, h5, h6 {
- font-family: 'PT Sans', sans-serif;
- margin: 40px 0 25px 0;
- color: var(--grey-222);
- }
- h4, h5, h6 {
- margin: 25px 0;
- }
- h1 {
- font-size: 28px;
- }
- h2 {
- font-size: 26px;
- }
- h3 {
- font-size: 22px;
- }
- h4 {
- font-size: 20px;
- }
- h5 {
- font-size: 18px;
- }
- h6 {
- font-size: 16px;
- }
-
- a {
- color: var(--main-color);
-
- &:hover {
- text-decoration: none;
- }
- }
- img {
- display: block;
- max-width: 100%;
- height: auto;
- }
-
- ul {
- list-style-type: disc;
- list-style-position: inside;
- }
-
- ul, ol {
- margin: 15px 0;
- padding: 0 0 0 20px;
-
- ul, ol {
- padding: 0 0 0 20px;
- }
- li {
- margin: 5px 0;
-
- & > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
- }
- }
- }
-
- dl {
- margin: 40px 0;
-
- dt {
- margin: 10px 0 0;
- font-weight: 700;
- }
- dd {
- margin: 5px 0;
-
- & > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
- }
- }
- }
- p {
- margin: 15px 0;
-
- & > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
- }
- }
-
- .alignleft {
- float: left;
- margin: 20px 30px 10px 0;
- }
- .alignright {
- float: right;
- margin: 20px 0 10px 20px;
- }
- .aligncenter {
- clear: both;
- margin: 0 auto 20px;
- }
-
- figcaption {
- font-size: 13px;
- font-style: italic;
- padding-top: 10px;
- }
-
- .iframe-wrapper {
- position: relative;
- padding-top: 56.25%;
-
- & > iframe {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- }
- }
-
- .read-more-button {
- font-size: 16px;
- color: var(--grey-555);
- }
-}
-
-.post-footer {
- display: flex;
- justify-content: space-between;
- align-items: flex-start;
- gap: 0 20px;
- margin: 50px 0 0;
-
- .post-tags {
- display: flex;
- flex-flow: row wrap;
- flex: 9 1 auto;
- gap: 0 20px;
- list-style: none;
- margin: 0;
- padding: 0;
-
- li {
- a {
- font-size: 14px;
- font-family: 'PT Sans', sans-serif;
- color: var(--grey-ccc);
- text-decoration: none;
- transition: all .15s ease;
- &:hover {
- color: var(--grey-555);
- }
- }
- }
- }
- .post-share {
- position: relative;
- flex: 0 0 auto;
- border: 1px solid var(--grey-ddd);
- overflow: hidden;
-
- &:hover {
- & > span {
- margin-left: -100%;
- }
- & > ul {
- left: 0;
- }
- }
- span {
- display: block;
- width: 100%;
- padding: 0 15px;
- font-family: 'PT Sans', sans-serif;
- font-size: 12px;
- text-transform: uppercase;
- text-align: center;
- letter-spacing: .1em;
- color: var(--grey-aaa);
- cursor: pointer;
- transition: margin .2s ease;
- }
- ul {
- position: absolute;
- top: 0;
- left: 100%;
- width: 100%;
- height: 100%;
- display: flex;
- list-style: none;
- margin: 0;
- padding: 0;
- transition: left .2s ease;
-
- li {
- flex: 1 0 auto;
- cursor: pointer;
-
- &:last-child {
- border-left: 1px solid var(--grey-ddd);
- }
- a {
- display: flex;
- align-items: center;
- justify-content: center;
- height: 100%;
- color: var(--grey-ccc);
- &:hover {
- background: var(--grey-eee);
- }
- svg {
- fill: currentColor;
- }
- }
- }
- }
- }
- }
- .post-comments {
- position: relative;
- margin: 40px 0 0;
- padding: 20px 0 0;
- border-top: 1px solid var(--grey-ddd);
- }
-}
-
-
-@media screen and (max-width: 960px) {
- .post {
- .post-title {
- margin: 0 0 15px;
- }
- .post-author {
- display: flex;
- align-items: center;
- flex-flow: row wrap;
- gap: 15px;
- position: static;
- width: 100%;
- margin: 0 0 20px;
- text-align: left;
- .author-avatar {
- width: 36px;
- height: 36px;
- }
- .author-info {
- .author-name {
- margin: 0;
- color: var(--grey-555);
- text-transform: initial;
- }
- .author-title { display: none; }
- }
- .post-meta {
- display: flex;
- flex-flow: row wrap;
- margin: 0;
- margin-left: auto;
- padding: 0;
-
- &:before {
- content: none;
- }
- .post-categories {
- margin: 0 0 0 5px;
- padding: 0 0 0 10px;
-
- &:before {
- position: absolute;
- top: 50%;
- left: 0;
- width: 3px;
- height: 3px;
- border-radius: 50%;
- background: var(--grey-ccc);
- content: "";
- }
- }
- }
- }
- }
-}
diff --git a/assets/_sass/main.scss b/assets/_sass/main.scss
deleted file mode 100644
index 7215fc7..0000000
--- a/assets/_sass/main.scss
+++ /dev/null
@@ -1,20 +0,0 @@
-@import 'base/vars';
-@import 'base/reset';
-@import 'base/fonts';
-@import 'base/syntax';
-@import 'base/animations';
-
-/* Layout */
-@import 'layout';
-
-/* Pages */
-@import 'pages/fourofour';
-
-/* Components */
-@import 'components/post';
-@import 'components/page';
-@import 'components/pagination';
-
-/* Partials */
-@import 'partials/header-separator';
-@import 'partials/burger-menu';
diff --git a/assets/_sass/partials/_burger-menu.scss b/assets/_sass/partials/_burger-menu.scss
deleted file mode 100644
index 573e406..0000000
--- a/assets/_sass/partials/_burger-menu.scss
+++ /dev/null
@@ -1,68 +0,0 @@
-.toggleBurger {
- display: none;
-
- &:checked {
- & ~ .site-navigation {
- transform: translate(0, 0);
- }
- & ~ .toggleBurgerWrapper {
- span {
- background: transparent;
- &:before {
- top: 0;
- transform: rotate(135deg);
- }
- &:after {
- top: 0;
- transform: rotate(-135deg);
- }
- }
- }
- }
-}
-
-.toggleBurgerWrapper {
- display: none;
- position: fixed;
- top: 20px;
- left: 20px;
- width: 25px;
- height: 30px;
- cursor: pointer;
- z-index: 100;
- user-select: none;
-
- span {
- position: absolute;
- top: 50%;
- height: 2px;
- width: 100%;
- background: var(--grey-222);
-
- transition: all .3s ease;
- transform: translate(0, -50%);
-
- &:before,
- &:after {
- position: absolute;
- height: 2px;
- width: 100%;
- background: var(--grey-222);
- content: "";
-
- transition: all .3s ease;
- }
- &:before {
- top: -6px;
- }
- &:after {
- top: 6px;
- }
- }
-}
-
-@media screen and (max-width: 800px) {
- .toggleBurgerWrapper {
- display: block;
- }
-}
diff --git a/assets/_sass/partials/_header-separator.scss b/assets/_sass/partials/_header-separator.scss
deleted file mode 100644
index da5a007..0000000
--- a/assets/_sass/partials/_header-separator.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-.header-content-separator {
- position: relative;
- margin: 40px auto;
- width: 4px;
- height: 4px;
- border-radius: 50%;
- background: var(--grey-ccc);
-
- &:before {
- position: absolute;
- left: -8px;
- width: 4px;
- height: 4px;
- border-radius: 50%;
- background: var(--grey-ccc);
- content: "";
- }
- &:after {
- position: absolute;
- left: 8px;
- width: 4px;
- height: 4px;
- border-radius: 50%;
- background: var(--grey-ccc);
- content: "";
- }
-}
diff --git a/assets/_sass/base/_animations.scss b/assets/css/base/animations.css
index 9bbe938..9bbe938 100644
--- a/assets/_sass/base/_animations.scss
+++ b/assets/css/base/animations.css
diff --git a/assets/_sass/base/_fonts.scss b/assets/css/base/fonts.css
index 56be318..56be318 100644
--- a/assets/_sass/base/_fonts.scss
+++ b/assets/css/base/fonts.css
diff --git a/assets/_sass/base/_reset.scss b/assets/css/base/reset.css
index 8e0f0f3..8e0f0f3 100644
--- a/assets/_sass/base/_reset.scss
+++ b/assets/css/base/reset.css
diff --git a/assets/_sass/base/_syntax.scss b/assets/css/base/syntax.css
index 00d491f..00d491f 100644
--- a/assets/_sass/base/_syntax.scss
+++ b/assets/css/base/syntax.css
diff --git a/assets/_sass/base/_vars.scss b/assets/css/base/vars.css
index 06d5b8d..06d5b8d 100644
--- a/assets/_sass/base/_vars.scss
+++ b/assets/css/base/vars.css
diff --git a/assets/css/components/page.css b/assets/css/components/page.css
new file mode 100644
index 0000000..b1fbc18
--- /dev/null
+++ b/assets/css/components/page.css
@@ -0,0 +1,197 @@
+.page .page-title {
+ margin: 0 0 25px;
+ font-family: "PT Sans", sans-serif;
+ font-size: 32px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-222);
+}
+
+.page .page-content abbr {
+ border-bottom: 1px dotted var(--grey-555);
+ text-decoration: none;
+ cursor: help;
+}
+
+.page .page-content code,
+.page .page-content kbd,
+.page .page-content pre {
+ margin: 0;
+ font-family: monospace;
+ word-wrap: break-word;
+ word-break: break-word;
+ white-space: pre-wrap;
+}
+
+.page .page-content address,
+.page .page-content cite,
+.page .page-content var {
+ font-style: italic;
+}
+
+.page .page-content blockquote {
+ margin: 40px 0;
+ padding: 0 0 0 20px;
+ border-left: 3px solid var(--grey-555);
+ color: var(--grey-222);
+ font-weight: 700;
+}
+
+.page .page-content em,
+.page .page-content strong {
+ color: var(--grey-222);
+}
+
+.page .page-content h1,
+.page .page-content h2,
+.page .page-content h3,
+.page .page-content h4,
+.page .page-content h5,
+.page .page-content h6 {
+ font-family: "PT Sans", sans-serif;
+ margin: 40px 0 25px 0;
+ color: var(--grey-222);
+}
+
+.page .page-content h4,
+.page .page-content h5,
+.page .page-content h6 {
+ margin: 25px 0;
+}
+
+.page .page-content h1 {
+ font-size: 28px;
+}
+
+.page .page-content h2 {
+ font-size: 26px;
+}
+
+.page .page-content h3 {
+ font-size: 22px;
+}
+
+.page .page-content h4 {
+ font-size: 20px;
+}
+
+.page .page-content h5 {
+ font-size: 18px;
+ }
+
+.page .page-content h6 {
+ font-size: 16px;
+}
+
+.page .page-content a {
+ color: var(--main-color);
+}
+
+.page .page-content a:hover {
+ text-decoration: none;
+}
+
+.page .page-content img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+.page .page-content ul {
+ list-style-type: disc;
+ list-style-position: inside;
+}
+
+.page .page-content ul,
+.page .page-content ol {
+ margin: 15px 0;
+ padding: 0 0 0 20px;
+}
+
+.page .page-content ul ul,
+.page .page-content ul ol,
+.page .page-content ol ul,
+.page .page-content ol ol {
+ padding: 0 0 0 20px;
+}
+
+.page .page-content ul li,
+.page .page-content ol li {
+ margin: 5px 0;
+}
+
+.page .page-content ul li > code,
+.page .page-content ol li > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+
+.page .page-content dl {
+ margin: 40px 0;
+}
+
+.page .page-content dl dt {
+ margin: 10px 0 0;
+ font-weight: 700;
+}
+
+.page .page-content dl dd {
+ margin: 5px 0;
+}
+
+.page .page-content dl dd > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+
+.page .page-content p {
+ margin: 15px 0;
+}
+
+.page .page-content p > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+
+.page .page-content .alignleft {
+ float: left;
+ margin: 20px 30px 10px 0;
+}
+
+.page .page-content .alignright {
+ float: right;
+ margin: 20px 0 10px 20px;
+}
+
+.page .page-content .aligncenter {
+ clear: both;
+ margin: 0 auto 20px;
+}
+
+.page .page-content figcaption {
+ font-size: 13px;
+ font-style: italic;
+ padding-top: 10px;
+}
+
+.page .page-content .iframe-wrapper {
+ position: relative;
+ padding-top: 56.25%;
+}
+
+.page .page-content .iframe-wrapper > iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
diff --git a/assets/css/components/pagination.css b/assets/css/components/pagination.css
new file mode 100644
index 0000000..8ba927e
--- /dev/null
+++ b/assets/css/components/pagination.css
@@ -0,0 +1,22 @@
+.pagination {
+ display: grid;
+ grid-template-columns: 100px 1fr 100px;
+ margin: 50px 0 0;
+ font-size: 16px;
+}
+
+.pagination .previous,
+.pagination .next {
+ text-decoration: none;
+ color: var(--grey-555);
+}
+
+.pagination .previous:hover,
+.pagination .next:hover {
+ text-decoration: underline;
+}
+
+.pagination .page_number {
+ text-align: center;
+ color: var(--grey-ccc);
+}
diff --git a/assets/css/components/post.css b/assets/css/components/post.css
new file mode 100644
index 0000000..916ec29
--- /dev/null
+++ b/assets/css/components/post.css
@@ -0,0 +1,413 @@
+.post-lists-title {
+ font-family: 'PT Sans', sans-serif;
+ font-size: 24px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-aaa);
+ margin: 0 0 40px;
+ text-align: center;
+}
+
+.post-lists-title span {
+ color: var(--grey-222);
+}
+
+.post-list {
+ display: grid;
+ gap: 100px 0;
+}
+
+.post {
+ position: relative;
+}
+
+.post .post-title {
+ margin: 0 0 25px;
+ font-family: 'PT Sans', sans-serif;
+ font-size: 32px;
+ line-height: 42px;
+ font-weight: 700;
+ color: var(--grey-222);
+}
+
+.post .post-title a {
+ color: var(--grey-222);
+ text-decoration: none;
+}
+
+.post .post-title a:hover {
+ text-decoration: underline;
+}
+
+.post .post-author {
+ position: absolute;
+ top: 10px;
+ left: -200px;
+ width: 150px;
+ text-align: right;
+}
+
+.post .post-author .author-avatar {
+ display: inline-block;
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ fill: currentColor;
+ color: var(--grey-ddd);
+}
+
+.post .post-author .author-info .author-name {
+ display: block;
+ margin: 10px 0 4px;
+ font-family: 'PT Sans', sans-serif;
+ font-size: 16px;
+ line-height: 20px;
+ font-weight: 700;
+ color: var(--grey-222);
+ text-transform: uppercase;
+}
+
+.post .post-author .author-info .author-title {
+ display: block;
+ font-size: 12px;
+ line-height: 16px;
+ font-style: italic;
+ color: var(--grey-aaa);
+}
+
+.post .post-author .post-meta {
+ position: relative;
+ margin: 15px 0 0;
+ padding: 15px 0 0;
+ line-height: 20px;
+ font-size: 14px;
+ color: var(--grey-aaa);
+}
+
+.post .post-author .post-meta:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ width: 30px;
+ height: 1px;
+ background: var(--grey-ddd);
+ content: "";
+}
+
+.post .post-author .post-meta .post-date {
+ position: relative;
+ margin: 0 5px 0 0;
+ padding: 0 10px 0 0;
+}
+
+.post .post-author .post-meta .post-date:after {
+ position: absolute;
+ top: 50%;
+ right: 0;
+ width: 3px;
+ height: 3px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+}
+
+.post .post-author .post-meta .post-categories {
+ position: relative;
+ display: flex;
+ justify-content: flex-end;
+ gap: 5px;
+ margin: 8px 0 0;
+}
+
+.post .post-author .post-meta .post-categories a {
+ color: var(--main-color);
+ text-decoration: none;
+}
+
+.post .post-author .post-meta .post-categories a:hover {
+ text-decoration: underline;
+}
+
+.post .post-content abbr {
+ border-bottom: 1px dotted var(--grey-555);
+ text-decoration: none;
+ cursor: help;
+}
+
+.post .post-content code,
+.post .post-content kbd,
+.post .post-content pre {
+ margin: 0;
+ font-family: monospace;
+ word-wrap: break-word;
+ word-break: break-word;
+ white-space: pre-wrap;
+}
+
+.post .post-content address,
+.post .post-content cite,
+.post .post-content var {
+ font-style: italic;
+}
+
+.post .post-content blockquote {
+ margin: 40px 0;
+ padding: 0 0 0 20px;
+ border-left: 3px solid var(--grey-555);
+ color: var(--grey-222);
+ font-weight: 700;
+}
+
+.post .post-content em,
+.post .post-content strong {
+ color: var(--grey-222);
+}
+
+.post .post-content h1,
+.post .post-content h2,
+.post .post-content h3,
+.post .post-content h4,
+.post .post-content h5,
+.post .post-content h6 {
+ font-family: 'PT Sans', sans-serif;
+ margin: 40px 0 25px 0;
+ color: var(--grey-222);
+}
+
+.post .post-content h4,
+.post .post-content h5,
+.post .post-content h6 {
+ margin: 25px 0;
+}
+
+.post .post-content h1 {
+ font-size: 28px;
+}
+
+.post .post-content h2 {
+ font-size: 26px;
+}
+
+.post .post-content h3 {
+ font-size: 22px;
+}
+
+.post .post-content h4 {
+ font-size: 20px;
+}
+
+.post .post-content h5 {
+ font-size: 18px;
+}
+
+.post .post-content h6 {
+ font-size: 16px;
+}
+
+.post .post-content a {
+ color: var(--main-color);
+}
+
+.post .post-content a:hover {
+ text-decoration: none;
+}
+
+.post .post-content img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+.post .post-content ul {
+ list-style-type: disc;
+ list-style-position: inside;
+}
+
+.post .post-content ul,
+.post .post-content ol {
+ margin: 15px 0;
+ padding: 0 0 0 20px;
+}
+
+.post .post-content ul ul,
+.post .post-content ul ol,
+.post .post-content ol ul,
+.post .post-content ol ol {
+ padding: 0 0 0 20px;
+}
+
+.post .post-content ul li,
+.post .post-content ol li {
+ margin: 5px 0;
+}
+
+.post .post-content ul li > code,
+.post .post-content ol li > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+
+.post .post-content dl {
+ margin: 40px 0;
+}
+
+.post .post-content dl dt {
+ margin: 10px 0 0;
+ font-weight: 700;
+}
+
+.post .post-content dl dd {
+ margin: 5px 0;
+}
+
+.post .post-content dl dd > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+
+.post .post-content p {
+ margin: 15px 0;
+}
+
+.post .post-content p > code {
+ font-size: 14px;
+ padding: 3px 6px;
+ margin: 0 4px;
+ background: var(--grey-fa);
+ border: 1px solid var(--grey-ccc);
+}
+
+.post .post-content .alignleft {
+ float: left;
+ margin: 20px 30px 10px 0;
+}
+
+.post .post-content .alignright {
+ float: right;
+ margin: 20px 0 10px 20px;
+}
+
+.post .post-content .aligncenter {
+ clear: both;
+ margin: 0 auto 20px;
+}
+
+.post .post-content figcaption {
+ font-size: 13px;
+ font-style: italic;
+ padding-top: 10px;
+}
+
+.post .post-content .iframe-wrapper {
+ position: relative;
+ padding-top: 56.25%;
+}
+
+.post .post-content .iframe-wrapper > iframe {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+
+.post .post-content .read-more-button {
+ font-size: 16px;
+ color: var(--grey-555);
+}
+
+.post .post-footer {
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-start;
+ gap: 0 20px;
+ margin: 50px 0 0;
+}
+
+.post .post-footer .post-tags {
+ display: flex;
+ flex-flow: row wrap;
+ flex: 9 1 auto;
+ gap: 0 20px;
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.post .post-footer .post-tags li a {
+ font-size: 14px;
+ font-family: 'PT Sans', sans-serif;
+ color: var(--grey-ccc);
+ text-decoration: none;
+ transition: all .15s ease;
+}
+
+.post .post-footer .post-tags li a:hover {
+ color: var(--grey-555);
+}
+
+@media screen and (max-width: 960px) {
+ .post .post-title {
+ margin: 0 0 15px;
+ }
+
+ .post .post-author {
+ display: flex;
+ align-items: center;
+ flex-flow: row wrap;
+ gap: 15px;
+ position: static;
+ width: 100%;
+ margin: 0 0 20px;
+ text-align: left;
+ }
+
+ .post .post-author .author-avatar {
+ width: 36px;
+ height: 36px;
+ }
+
+ .post .post-author .author-info .author-name {
+ margin: 0;
+ color: var(--grey-555);
+ text-transform: initial;
+ }
+
+ .post .post-author .author-info .author-title {
+ display: none;
+ }
+
+ .post .post-author .post-meta {
+ display: flex;
+ flex-flow: row wrap;
+ margin: 0;
+ margin-left: auto;
+ padding: 0;
+ }
+
+ .post .post-author .post-meta:before {
+ content: none;
+ }
+
+ .post .post-author .post-meta .post-categories {
+ margin: 0 0 0 5px;
+ padding: 0 0 0 10px;
+ }
+
+ .post .post-author .post-meta .post-categories:before {
+ position: absolute;
+ top: 50%;
+ left: 0;
+ width: 3px;
+ height: 3px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+ }
+}
diff --git a/assets/css/layout.css b/assets/css/layout.css
new file mode 100644
index 0000000..60b662f
--- /dev/null
+++ b/assets/css/layout.css
@@ -0,0 +1,191 @@
+.site-header {
+ display: grid;
+ justify-content: center;
+ padding: 0 20px;
+ text-align: center;
+}
+
+.site-header .site-header-wrapper {
+ position: relative;
+ overflow: hidden;
+ background: var(--main-color);
+ padding: 10px 25px 20px 25px;
+ border-radius: 0 0 5px 5px;
+ text-decoration: none;
+ transition: background .2s ease;
+}
+
+.site-header .site-header-wrapper:before {
+ position: absolute;
+ top: 0;
+ left: -150%;
+ content: "";
+ width: 50%;
+ height: 100%;
+ background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .3) 100%);
+ transform: skew(-45deg, 0);
+}
+
+.site-header .site-header-wrapper:hover {
+ background: var(--main-color-hover);
+}
+
+.site-header .site-header-wrapper:hover:before {
+ animation: headerShine .35s;
+}
+
+.site-header .site-header-wrapper .site-logo {
+ display: block;
+ margin: 0 0 10px;
+}
+
+.site-header .site-header-wrapper .site-logo img {
+ display: block;
+}
+
+.site-header .site-header-wrapper .site-subtitle {
+ display: block;
+ font-family: 'Bebas Neue', sans-serif;
+ font-size: 11px;
+ line-height: 14px;
+ color: var(--grey-fc);
+}
+
+.site-header .site-header-wrapper .site-title {
+ display: block;
+ font-family: 'Bebas Neue', sans-serif;
+ font-size: 26px;
+ line-height: 28px;
+ color: var(--grey-fc);
+}
+
+.site-navigation {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-flow: row wrap;
+ gap: 10px 40px;
+ max-width: 800px;
+ margin: 30px auto 0;
+ padding: 0 20px;
+ text-align: center;
+}
+
+.site-navigation a,
+.site-navigation span {
+ position: relative;
+ text-decoration: none;
+ color: var(--grey-555);
+ padding: 0 0 2px;
+ transition: color .2s ease;
+ cursor: pointer;
+}
+
+.site-navigation a:before,
+.site-navigation span:before {
+ position: absolute;
+ opacity: 0;
+ left: 0;
+ bottom: 0;
+ width: 0%;
+ border-bottom: 2px solid var(--grey-222);
+ transition: width .18s ease, opacity .18s ease;
+ content: "";
+}
+
+.site-navigation a:hover,
+.site-navigation span:hover,
+.site-navigation a.active,
+.site-navigation span.active {
+ color: var(--grey-222);
+}
+
+.site-navigation a:hover:before,
+.site-navigation span:hover:before,
+.site-navigation a.active:before,
+.site-navigation span.active:before {
+ width: 100%;
+ opacity: 1;
+}
+
+@media screen and (max-width: 800px) {
+ .site-header {
+ position: fixed;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 9;
+ background: var(--body-bg);
+ box-shadow: 0 2px 5px rgba(0, 0, 0, .1);
+ }
+
+ .site-header .site-header-wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-flow: row wrap;
+ gap: 0 15px;
+ border-radius: 0;
+ padding: 20px;
+ background: transparent;
+ }
+
+ .site-header .site-header-wrapper:hover {
+ background: transparent;
+ }
+
+ .site-header .site-header-wrapper .site-logo,
+ .site-header .site-header-wrapper .site-subtitle {
+ display: none;
+ }
+
+ .site-header .site-header-wrapper .site-title {
+ font-size: 32px;
+ line-height: 36px;
+ color: var(--main-color);
+ }
+
+ .site-navigation {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ justify-content: flex-start;
+ flex-flow: column nowrap;
+ gap: 20px 0;
+ transform: translate(0, -100%);
+ transition: transform .25s ease-in-out;
+ padding: 100px 20px 0;
+ background: rgba(255, 255, 255, .9);
+ z-index: 10;
+ }
+
+ .site-navigation a,
+ .site-navigation span {
+ color: var(--grey-222);
+ font-size: 30px;
+ line-height: 40px;
+ }
+}
+
+.wrapper {
+ max-width: 600px;
+ margin: 0 auto;
+ padding: 0 20px 35px;
+ border-bottom: 1px solid var(--grey-eee);
+}
+
+.wrapper.long {
+ max-width: 800px;
+}
+
+.site-footer {
+ max-width: 800px;
+ margin: 0 auto;
+ padding: 40px 20px;
+ font-size: 14px;
+ line-height: 22px;
+ color: var(--grey-ccc);
+ text-align: center;
+}
diff --git a/assets/_sass/pages/_fourofour.scss b/assets/css/pages/fourofour.css
index c8cd137..32a0119 100644
--- a/assets/_sass/pages/_fourofour.scss
+++ b/assets/css/pages/fourofour.css
@@ -1,6 +1,7 @@
.page-not-found {
text-align: center;
}
+
.page-not-found svg {
fill: currentColor;
color: var(--grey-ddd);
diff --git a/assets/css/partials/burger-menu.css b/assets/css/partials/burger-menu.css
new file mode 100644
index 0000000..91e4101
--- /dev/null
+++ b/assets/css/partials/burger-menu.css
@@ -0,0 +1,69 @@
+.toggleBurger {
+ display: none;
+}
+
+.toggleBurger:checked ~ .site-navigation {
+ transform: translate(0, 0);
+}
+
+.toggleBurger:checked ~ .toggleBurgerWrapper span {
+ background: transparent;
+}
+
+.toggleBurger:checked ~ .toggleBurgerWrapper span:before {
+ top: 0;
+ transform: rotate(135deg);
+}
+
+.toggleBurger:checked ~ .toggleBurgerWrapper span:after {
+ top: 0;
+ transform: rotate(-135deg);
+}
+
+.toggleBurgerWrapper {
+ display: none;
+ position: fixed;
+ top: 20px;
+ left: 20px;
+ width: 25px;
+ height: 30px;
+ cursor: pointer;
+ z-index: 100;
+ user-select: none;
+}
+
+.toggleBurgerWrapper span {
+ position: absolute;
+ top: 50%;
+ height: 2px;
+ width: 100%;
+ background: var(--grey-222);
+
+ transition: all .3s ease;
+ transform: translate(0, -50%);
+}
+
+.toggleBurgerWrapper span:before,
+.toggleBurgerWrapper span:before:after {
+ position: absolute;
+ height: 2px;
+ width: 100%;
+ background: var(--grey-222);
+ content: "";
+
+ transition: all .3s ease;
+}
+
+.toggleBurgerWrapper span:before {
+ top: -6px;
+}
+
+.toggleBurgerWrapper span:after {
+ top: 6px;
+}
+
+@media screen and (max-width: 800px) {
+ .toggleBurgerWrapper {
+ display: block;
+ }
+}
diff --git a/assets/css/partials/header-separator.css b/assets/css/partials/header-separator.css
new file mode 100644
index 0000000..e1e5358
--- /dev/null
+++ b/assets/css/partials/header-separator.css
@@ -0,0 +1,28 @@
+.header-content-separator {
+ position: relative;
+ margin: 40px auto;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+}
+
+.header-content-separator:before {
+ position: absolute;
+ left: -8px;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+}
+
+.header-content-separator::after {
+ position: absolute;
+ left: 8px;
+ width: 4px;
+ height: 4px;
+ border-radius: 50%;
+ background: var(--grey-ccc);
+ content: "";
+}
diff --git a/assets/css/styles.css b/assets/css/styles.css
deleted file mode 100644
index ff69e63..0000000
--- a/assets/css/styles.css
+++ /dev/null
@@ -1,1582 +0,0 @@
-:root, [data-theme=light] {
- --body-bg: #fafafa;
- --main-color: #639f93;
- --main-color-hover: #5b9287;
- --form-success-bg: #d0f1cc;
- --form-success-text: #597755;
- --form-error-bg: #f1cccc;
- --form-error-text: #775555;
- --grey-222: #222;
- --grey-555: #555;
- --grey-aaa: #aaa;
- --grey-ccc: #ccc;
- --grey-ddd: #ddd;
- --grey-eee: #eee;
- --grey-fc: #fcfcfc;
- --grey-fa: #fafafa;
-}
-
-[data-theme=dark] {
- --body-bg: #050505;
- --main-color: #639f93;
- --main-color-hover: #5b9287;
- --form-success-bg: #d0f1cc;
- --form-success-text: #597755;
- --form-error-bg: #f1cccc;
- --form-error-text: #775555;
- --grey-222: #ddd;
- --grey-555: #ddd;
- --grey-aaa: #777;
- --grey-ccc: #666;
- --grey-ddd: #666;
- --grey-eee: #222;
- --grey-fc: #fcfcfc;
- --grey-fa: #151515;
-}
-
-* {
- box-sizing: border-box;
-}
-
-body {
- margin: 0;
- padding: 0;
- font-family: "PT Serif", serif;
- font-size: 18px;
- line-height: 30px;
- color: var(--grey-555);
- background: var(--body-bg);
-}
-
-header,
-nav,
-section,
-main,
-article,
-aside,
-figure,
-footer,
-iframe,
-object,
-svg {
- display: block;
- margin: 0;
-}
-
-@media screen and (max-width: 800px) {
- body {
- padding: 80px 0 0;
- }
-}
-/* latin-ext */
-@font-face {
- font-family: "Bebas Neue";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/BebasNeue-Regular.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "Bebas Neue";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/BebasNeue-Regular.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
- font-family: "PT Sans";
- font-style: italic;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptsansitalic.woff2) format("woff2");
- unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
- font-family: "PT Sans";
- font-style: italic;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptsansitalic.woff2) format("woff2");
- unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
- font-family: "PT Sans";
- font-style: italic;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptsansitalic.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "PT Sans";
- font-style: italic;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptsansitalic.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
- font-family: "PT Sans";
- font-style: italic;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptsansbolditalic.woff2) format("woff2");
- unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
- font-family: "PT Sans";
- font-style: italic;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptsansbolditalic.woff2) format("woff2");
- unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
- font-family: "PT Sans";
- font-style: italic;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptsansbolditalic.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "PT Sans";
- font-style: italic;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptsansbolditalic.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
- font-family: "PT Sans";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptsans.woff2) format("woff2");
- unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
- font-family: "PT Sans";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptsans.woff2) format("woff2");
- unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
- font-family: "PT Sans";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptsans.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "PT Sans";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptsans.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
- font-family: "PT Sans";
- font-style: normal;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptsansbold.woff2) format("woff2");
- unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
- font-family: "PT Sans";
- font-style: normal;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptsansbold.woff2) format("woff2");
- unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
- font-family: "PT Sans";
- font-style: normal;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptsansbold.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "PT Sans";
- font-style: normal;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptsansbold.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
- font-family: "PT Serif";
- font-style: italic;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptserifitalic.woff2) format("woff2");
- unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
- font-family: "PT Serif";
- font-style: italic;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptserifitalic.woff2) format("woff2");
- unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
- font-family: "PT Serif";
- font-style: italic;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptserifitalic.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "PT Serif";
- font-style: italic;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptserifitalic.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
- font-family: "PT Serif";
- font-style: italic;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptserifbolditalic.woff2) format("woff2");
- unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
- font-family: "PT Serif";
- font-style: italic;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptserifitalic.woff2) format("woff2");
- unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
- font-family: "PT Serif";
- font-style: italic;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptserifitalic.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "PT Serif";
- font-style: italic;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptserifitalic.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
- font-family: "PT Serif";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptserif.woff2) format("woff2");
- unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
- font-family: "PT Serif";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptserif.woff2) format("woff2");
- unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
- font-family: "PT Serif";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptserif.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "PT Serif";
- font-style: normal;
- font-weight: 400;
- font-display: swap;
- src: url(/assets/fonts/ptserif.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
- font-family: "PT Serif";
- font-style: normal;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptserifbold.woff2) format("woff2");
- unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
- font-family: "PT Serif";
- font-style: normal;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptserifbold.woff2) format("woff2");
- unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
- font-family: "PT Serif";
- font-style: normal;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptserifbold.woff2) format("woff2");
- unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
- font-family: "PT Serif";
- font-style: normal;
- font-weight: 700;
- font-display: swap;
- src: url(/assets/fonts/ptserifbold.woff2) format("woff2");
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-.highlight {
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
- padding: 30px;
-}
-
-.highlight .lineno {
- padding: 0 15px 0 0;
-}
-
-/* Comment */
-.highlight .c {
- color: #998;
- font-style: italic;
-}
-
-/* Error */
-.highlight .err {
- color: #a61717;
- background-color: #e3d2d2;
-}
-
-/* Keyword */
-.highlight .k {
- font-weight: bold;
-}
-
-/* Operator */
-.highlight .o {
- font-weight: bold;
-}
-
-/* Comment.Multiline */
-.highlight .cm {
- color: #998;
- font-style: italic;
-}
-
-/* Comment.Preproc */
-.highlight .cp {
- color: #999;
- font-weight: bold;
-}
-
-/* Comment.Single */
-.highlight .c1 {
- color: #998;
- font-style: italic;
-}
-
-/* Comment.Special */
-.highlight .cs {
- color: #999;
- font-weight: bold;
- font-style: italic;
-}
-
-/* Generic.Deleted */
-.highlight .gd {
- color: #000;
- background-color: #fdd;
-}
-
-/* Generic.Deleted.Specific */
-.highlight .gd .x {
- color: #000;
- background-color: #faa;
-}
-
-/* Generic.Emph */
-.highlight .ge {
- font-style: italic;
-}
-
-/* Generic.Error */
-.highlight .gr {
- color: #a00;
-}
-
-/* Generic.Heading */
-.highlight .gh {
- color: #999;
-}
-
-/* Generic.Inserted */
-.highlight .gi {
- color: #000;
- background-color: #dfd;
-}
-
-/* Generic.Inserted.Specific */
-.highlight .gi .x {
- color: #000;
- background-color: #afa;
-}
-
-/* Generic.Output */
-.highlight .go {
- color: #888;
-}
-
-/* Generic.Prompt */
-.highlight .gp {
- color: #555;
-}
-
-/* Generic.Strong */
-.highlight .gs {
- font-weight: bold;
-}
-
-/* Generic.Subheading */
-.highlight .gu {
- color: #aaa;
-}
-
-/* Generic.Traceback */
-.highlight .gt {
- color: #a00;
-}
-
-/* Keyword.Constant */
-.highlight .kc {
- font-weight: bold;
-}
-
-/* Keyword.Declaration */
-.highlight .kd {
- font-weight: bold;
-}
-
-/* Keyword.Pseudo */
-.highlight .kp {
- font-weight: bold;
-}
-
-/* Keyword.Reserved */
-.highlight .kr {
- font-weight: bold;
-}
-
-/* Keyword.Type */
-.highlight .kt {
- color: #458;
- font-weight: bold;
-}
-
-/* Literal.Number */
-.highlight .m {
- color: #099;
-}
-
-/* Literal.String */
-.highlight .s {
- color: #d14;
-}
-
-/* Name.Attribute */
-.highlight .na {
- color: #008080;
-}
-
-/* Name.Builtin */
-.highlight .nb {
- color: #0086B3;
-}
-
-/* Name.Class */
-.highlight .nc {
- color: #458;
- font-weight: bold;
-}
-
-/* Name.Constant */
-.highlight .no {
- color: #008080;
-}
-
-/* Name.Entity */
-.highlight .ni {
- color: #800080;
-}
-
-/* Name.Exception */
-.highlight .ne {
- color: #900;
- font-weight: bold;
-}
-
-/* Name.Function */
-.highlight .nf {
- color: #900;
- font-weight: bold;
-}
-
-/* Name.Namespace */
-.highlight .nn {
- color: #555;
-}
-
-/* Name.Tag */
-.highlight .nt {
- color: #000080;
-}
-
-/* Name.Variable */
-.highlight .nv {
- color: #008080;
-}
-
-/* Operator.Word */
-.highlight .ow {
- font-weight: bold;
-}
-
-/* Text.Whitespace */
-.highlight .w {
- color: #bbb;
-}
-
-/* Literal.Number.Float */
-.highlight .mf {
- color: #099;
-}
-
-/* Literal.Number.Hex */
-.highlight .mh {
- color: #099;
-}
-
-/* Literal.Number.Integer */
-.highlight .mi {
- color: #099;
-}
-
-/* Literal.Number.Oct */
-.highlight .mo {
- color: #099;
-}
-
-/* Literal.String.Backtick */
-.highlight .sb {
- color: #d14;
-}
-
-/* Literal.String.Char */
-.highlight .sc {
- color: #d14;
-}
-
-/* Literal.String.Doc */
-.highlight .sd {
- color: #d14;
-}
-
-/* Literal.String.Double */
-.highlight .s2 {
- color: #d14;
-}
-
-/* Literal.String.Escape */
-.highlight .se {
- color: #d14;
-}
-
-/* Literal.String.Heredoc */
-.highlight .sh {
- color: #d14;
-}
-
-/* Literal.String.Interpol */
-.highlight .si {
- color: #d14;
-}
-
-/* Literal.String.Other */
-.highlight .sx {
- color: #d14;
-}
-
-/* Literal.String.Regex */
-.highlight .sr {
- color: #009926;
-}
-
-/* Literal.String.Single */
-.highlight .s1 {
- color: #d14;
-}
-
-/* Literal.String.Symbol */
-.highlight .ss {
- color: #990073;
-}
-
-/* Name.Builtin.Pseudo */
-.highlight .bp {
- color: #999;
-}
-
-/* Name.Variable.Class */
-.highlight .vc {
- color: #008080;
-}
-
-/* Name.Variable.Global */
-.highlight .vg {
- color: #008080;
-}
-
-/* Name.Variable.Instance */
-.highlight .vi {
- color: #008080;
-}
-
-/* Literal.Number.Integer.Long */
-.highlight .il {
- color: #099;
-}
-
-@keyframes headerShine {
- 100% {
- left: 150%;
- }
-}
-@keyframes fadeIn {
- from {
- opacity: 0;
- }
- to {
- opacity: 1;
- }
-}
-@keyframes fadeOut {
- from {
- opacity: 1;
- }
- to {
- opacity: 0;
- }
-}
-@keyframes zoomIn {
- from {
- opacity: 0;
- transform: scale3d(0.3, 0.3, 0.3);
- }
- to {
- opacity: 1;
- }
-}
-@keyframes zoomOut {
- from {
- opacity: 1;
- }
- 50% {
- opacity: 0;
- transform: scale3d(0.3, 0.3, 0.3);
- }
- to {
- opacity: 0;
- }
-}
-/* Layout */
-.site-header {
- display: grid;
- justify-content: center;
- padding: 0 20px;
- text-align: center;
-}
-.site-header .site-header-wrapper {
- position: relative;
- overflow: hidden;
- background: var(--main-color);
- padding: 10px 25px 20px 25px;
- border-radius: 0 0 5px 5px;
- text-decoration: none;
- transition: background 0.2s ease;
-}
-.site-header .site-header-wrapper:before {
- position: absolute;
- top: 0;
- left: -150%;
- content: "";
- width: 50%;
- height: 100%;
- background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
- transform: skew(-45deg, 0);
-}
-.site-header .site-header-wrapper:hover {
- background: var(--main-color-hover);
-}
-.site-header .site-header-wrapper:hover:before {
- animation: headerShine 0.35s;
-}
-.site-header .site-header-wrapper .site-logo {
- display: block;
- margin: 0 0 10px;
-}
-.site-header .site-header-wrapper .site-logo img {
- display: block;
-}
-.site-header .site-header-wrapper .site-subtitle {
- display: block;
- font-family: "Bebas Neue", sans-serif;
- font-size: 11px;
- line-height: 14px;
- color: var(--grey-fc);
-}
-.site-header .site-header-wrapper .site-title {
- display: block;
- font-family: "Bebas Neue", sans-serif;
- font-size: 26px;
- line-height: 28px;
- color: var(--grey-fc);
-}
-
-.site-navigation {
- display: flex;
- justify-content: center;
- align-items: center;
- flex-flow: row wrap;
- gap: 10px 40px;
- max-width: 800px;
- margin: 30px auto 0;
- padding: 0 20px;
- text-align: center;
-}
-.site-navigation a, .site-navigation span {
- position: relative;
- text-decoration: none;
- color: var(--grey-555);
- padding: 0 0 2px;
- transition: color 0.2s ease;
- cursor: pointer;
-}
-.site-navigation a:before, .site-navigation span:before {
- position: absolute;
- opacity: 0;
- left: 0;
- bottom: 0;
- width: 0%;
- border-bottom: 2px solid var(--grey-222);
- transition: width 0.18s ease, opacity 0.18s ease;
- content: "";
-}
-.site-navigation a:hover, .site-navigation a.active, .site-navigation span:hover, .site-navigation span.active {
- color: var(--grey-222);
-}
-.site-navigation a:hover:before, .site-navigation a.active:before, .site-navigation span:hover:before, .site-navigation span.active:before {
- width: 100%;
- opacity: 1;
-}
-
-@media screen and (max-width: 800px) {
- .site-header {
- position: fixed;
- left: 0;
- top: 0;
- width: 100%;
- z-index: 9;
- background: var(--body-bg);
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
- }
- .site-header .site-header-wrapper {
- display: flex;
- align-items: center;
- justify-content: center;
- flex-flow: row wrap;
- gap: 0 15px;
- border-radius: 0;
- padding: 20px;
- background: transparent;
- }
- .site-header .site-header-wrapper:hover {
- background: transparent;
- }
- .site-header .site-header-wrapper .site-logo,
- .site-header .site-header-wrapper .site-subtitle {
- display: none;
- }
- .site-header .site-header-wrapper .site-title {
- font-size: 32px;
- line-height: 36px;
- color: var(--main-color);
- }
- .site-navigation {
- position: fixed;
- bottom: 0;
- left: 0;
- width: 100%;
- height: 100%;
- justify-content: flex-start;
- flex-flow: column nowrap;
- gap: 20px 0;
- transform: translate(0, -100%);
- transition: transform 0.25s ease-in-out;
- padding: 100px 20px 0;
- background: rgba(255, 255, 255, 0.9);
- z-index: 10;
- }
- .site-navigation a, .site-navigation span {
- color: var(--grey-222);
- font-size: 30px;
- line-height: 40px;
- }
-}
-.wrapper {
- max-width: 600px;
- margin: 0 auto;
- padding: 0 20px 35px;
- border-bottom: 1px solid var(--grey-eee);
-}
-.wrapper.long {
- max-width: 800px;
-}
-
-.site-footer {
- max-width: 800px;
- margin: 0 auto;
- padding: 40px 20px;
- font-size: 14px;
- line-height: 22px;
- color: var(--grey-ccc);
- text-align: center;
-}
-
-/* Pages */
-.page-not-found {
- text-align: center;
-}
-
-.page-not-found svg {
- fill: currentColor;
- color: var(--grey-ddd);
- margin: 0 auto;
-}
-
-/* Components */
-.post-lists-title {
- font-family: "PT Sans", sans-serif;
- font-size: 24px;
- line-height: 42px;
- font-weight: 700;
- color: var(--grey-aaa);
- margin: 0 0 40px;
- text-align: center;
-}
-.post-lists-title span {
- color: var(--grey-222);
-}
-
-.post-list {
- display: grid;
- gap: 100px 0;
-}
-
-.post {
- position: relative;
-}
-.post .post-title {
- margin: 0 0 25px;
- font-family: "PT Sans", sans-serif;
- font-size: 32px;
- line-height: 42px;
- font-weight: 700;
- color: var(--grey-222);
-}
-.post .post-title a {
- color: var(--grey-222);
- text-decoration: none;
-}
-.post .post-title a:hover {
- text-decoration: underline;
-}
-.post .post-author {
- position: absolute;
- top: 10px;
- left: -200px;
- width: 150px;
- text-align: right;
-}
-.post .post-author .author-avatar {
- display: inline-block;
- width: 50px;
- height: 50px;
- border-radius: 50%;
- fill: currentColor;
- color: var(--grey-ddd);
-}
-.post .post-author .author-info .author-name {
- display: block;
- margin: 10px 0 4px;
- font-family: "PT Sans", sans-serif;
- font-size: 16px;
- line-height: 20px;
- font-weight: 700;
- color: var(--grey-222);
- text-transform: uppercase;
-}
-.post .post-author .author-info .author-title {
- display: block;
- font-size: 12px;
- line-height: 16px;
- font-style: italic;
- color: var(--grey-aaa);
-}
-.post .post-author .post-meta {
- position: relative;
- margin: 15px 0 0;
- padding: 15px 0 0;
- line-height: 20px;
- font-size: 14px;
- color: var(--grey-aaa);
-}
-.post .post-author .post-meta:before {
- position: absolute;
- top: 0;
- right: 0;
- width: 30px;
- height: 1px;
- background: var(--grey-ddd);
- content: "";
-}
-.post .post-author .post-meta .post-date {
- position: relative;
- margin: 0 5px 0 0;
- padding: 0 10px 0 0;
-}
-.post .post-author .post-meta .post-date:after {
- position: absolute;
- top: 50%;
- right: 0;
- width: 3px;
- height: 3px;
- border-radius: 50%;
- background: var(--grey-ccc);
- content: "";
-}
-.post .post-author .post-meta .post-categories {
- position: relative;
- display: flex;
- justify-content: flex-end;
- gap: 5px;
- margin: 8px 0 0;
-}
-.post .post-author .post-meta .post-categories a {
- color: var(--main-color);
- text-decoration: none;
-}
-.post .post-author .post-meta .post-categories a:hover {
- text-decoration: underline;
-}
-.post .post-content abbr {
- border-bottom: 1px dotted var(--grey-555);
- text-decoration: none;
- cursor: help;
-}
-.post .post-content code, .post .post-content kbd, .post .post-content pre {
- margin: 0;
- font-family: monospace;
- word-wrap: break-word;
- word-break: break-word;
- white-space: pre-wrap;
-}
-.post .post-content address, .post .post-content cite, .post .post-content var {
- font-style: italic;
-}
-.post .post-content blockquote {
- margin: 40px 0;
- padding: 0 0 0 20px;
- border-left: 3px solid var(--grey-555);
- color: var(--grey-222);
- font-weight: 700;
-}
-.post .post-content em, .post .post-content strong {
- color: var(--grey-222);
-}
-.post .post-content h1, .post .post-content h2, .post .post-content h3, .post .post-content h4, .post .post-content h5, .post .post-content h6 {
- font-family: "PT Sans", sans-serif;
- margin: 40px 0 25px 0;
- color: var(--grey-222);
-}
-.post .post-content h4, .post .post-content h5, .post .post-content h6 {
- margin: 25px 0;
-}
-.post .post-content h1 {
- font-size: 28px;
-}
-.post .post-content h2 {
- font-size: 26px;
-}
-.post .post-content h3 {
- font-size: 22px;
-}
-.post .post-content h4 {
- font-size: 20px;
-}
-.post .post-content h5 {
- font-size: 18px;
-}
-.post .post-content h6 {
- font-size: 16px;
-}
-.post .post-content a {
- color: var(--main-color);
-}
-.post .post-content a:hover {
- text-decoration: none;
-}
-.post .post-content img {
- display: block;
- max-width: 100%;
- height: auto;
-}
-.post .post-content ul {
- list-style-type: disc;
- list-style-position: inside;
-}
-.post .post-content ul, .post .post-content ol {
- margin: 15px 0;
- padding: 0 0 0 20px;
-}
-.post .post-content ul ul, .post .post-content ul ol, .post .post-content ol ul, .post .post-content ol ol {
- padding: 0 0 0 20px;
-}
-.post .post-content ul li, .post .post-content ol li {
- margin: 5px 0;
-}
-.post .post-content ul li > code, .post .post-content ol li > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
-}
-.post .post-content dl {
- margin: 40px 0;
-}
-.post .post-content dl dt {
- margin: 10px 0 0;
- font-weight: 700;
-}
-.post .post-content dl dd {
- margin: 5px 0;
-}
-.post .post-content dl dd > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
-}
-.post .post-content p {
- margin: 15px 0;
-}
-.post .post-content p > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
-}
-.post .post-content .alignleft {
- float: left;
- margin: 20px 30px 10px 0;
-}
-.post .post-content .alignright {
- float: right;
- margin: 20px 0 10px 20px;
-}
-.post .post-content .aligncenter {
- clear: both;
- margin: 0 auto 20px;
-}
-.post .post-content figcaption {
- font-size: 13px;
- font-style: italic;
- padding-top: 10px;
-}
-.post .post-content .iframe-wrapper {
- position: relative;
- padding-top: 56.25%;
-}
-.post .post-content .iframe-wrapper > iframe {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
-}
-.post .post-content .read-more-button {
- font-size: 16px;
- color: var(--grey-555);
-}
-.post .post-footer {
- display: flex;
- justify-content: space-between;
- align-items: flex-start;
- gap: 0 20px;
- margin: 50px 0 0;
-}
-.post .post-footer .post-tags {
- display: flex;
- flex-flow: row wrap;
- flex: 9 1 auto;
- gap: 0 20px;
- list-style: none;
- margin: 0;
- padding: 0;
-}
-.post .post-footer .post-tags li a {
- font-size: 14px;
- font-family: "PT Sans", sans-serif;
- color: var(--grey-ccc);
- text-decoration: none;
- transition: all 0.15s ease;
-}
-.post .post-footer .post-tags li a:hover {
- color: var(--grey-555);
-}
-.post .post-footer .post-share {
- position: relative;
- flex: 0 0 auto;
- border: 1px solid var(--grey-ddd);
- overflow: hidden;
-}
-.post .post-footer .post-share:hover > span {
- margin-left: -100%;
-}
-.post .post-footer .post-share:hover > ul {
- left: 0;
-}
-.post .post-footer .post-share span {
- display: block;
- width: 100%;
- padding: 0 15px;
- font-family: "PT Sans", sans-serif;
- font-size: 12px;
- text-transform: uppercase;
- text-align: center;
- letter-spacing: 0.1em;
- color: var(--grey-aaa);
- cursor: pointer;
- transition: margin 0.2s ease;
-}
-.post .post-footer .post-share ul {
- position: absolute;
- top: 0;
- left: 100%;
- width: 100%;
- height: 100%;
- display: flex;
- list-style: none;
- margin: 0;
- padding: 0;
- transition: left 0.2s ease;
-}
-.post .post-footer .post-share ul li {
- flex: 1 0 auto;
- cursor: pointer;
-}
-.post .post-footer .post-share ul li:last-child {
- border-left: 1px solid var(--grey-ddd);
-}
-.post .post-footer .post-share ul li a {
- display: flex;
- align-items: center;
- justify-content: center;
- height: 100%;
- color: var(--grey-ccc);
-}
-.post .post-footer .post-share ul li a:hover {
- background: var(--grey-eee);
-}
-.post .post-footer .post-share ul li a svg {
- fill: currentColor;
-}
-.post .post-comments {
- position: relative;
- margin: 40px 0 0;
- padding: 20px 0 0;
- border-top: 1px solid var(--grey-ddd);
-}
-
-@media screen and (max-width: 960px) {
- .post .post-title {
- margin: 0 0 15px;
- }
- .post .post-author {
- display: flex;
- align-items: center;
- flex-flow: row wrap;
- gap: 15px;
- position: static;
- width: 100%;
- margin: 0 0 20px;
- text-align: left;
- }
- .post .post-author .author-avatar {
- width: 36px;
- height: 36px;
- }
- .post .post-author .author-info .author-name {
- margin: 0;
- color: var(--grey-555);
- text-transform: initial;
- }
- .post .post-author .author-info .author-title {
- display: none;
- }
- .post .post-author .post-meta {
- display: flex;
- flex-flow: row wrap;
- margin: 0;
- margin-left: auto;
- padding: 0;
- }
- .post .post-author .post-meta:before {
- content: none;
- }
- .post .post-author .post-meta .post-categories {
- margin: 0 0 0 5px;
- padding: 0 0 0 10px;
- }
- .post .post-author .post-meta .post-categories:before {
- position: absolute;
- top: 50%;
- left: 0;
- width: 3px;
- height: 3px;
- border-radius: 50%;
- background: var(--grey-ccc);
- content: "";
- }
-}
-.page .page-title {
- margin: 0 0 25px;
- font-family: "PT Sans", sans-serif;
- font-size: 32px;
- line-height: 42px;
- font-weight: 700;
- color: var(--grey-222);
-}
-.page .page-content abbr {
- border-bottom: 1px dotted var(--grey-555);
- text-decoration: none;
- cursor: help;
-}
-.page .page-content code,
-.page .page-content kbd,
-.page .page-content pre {
- margin: 0;
- font-family: monospace;
- word-wrap: break-word;
- word-break: break-word;
- white-space: pre-wrap;
-}
-.page .page-content address,
-.page .page-content cite,
-.page .page-content var {
- font-style: italic;
-}
-.page .page-content blockquote {
- margin: 40px 0;
- padding: 0 0 0 20px;
- border-left: 3px solid var(--grey-555);
- color: var(--grey-222);
- font-weight: 700;
-}
-.page .page-content em,
-.page .page-content strong {
- color: var(--grey-222);
-}
-.page .page-content h1,
-.page .page-content h2,
-.page .page-content h3,
-.page .page-content h4,
-.page .page-content h5,
-.page .page-content h6 {
- font-family: "PT Sans", sans-serif;
- margin: 40px 0 25px 0;
- color: var(--grey-222);
-}
-.page .page-content h4,
-.page .page-content h5,
-.page .page-content h6 {
- margin: 25px 0;
-}
-.page .page-content h1 {
- font-size: 28px;
-}
-.page .page-content h2 {
- font-size: 26px;
-}
-.page .page-content h3 {
- font-size: 22px;
-}
-.page .page-content h4 {
- font-size: 20px;
-}
-.page .page-content h5 {
- font-size: 18px;
-}
-.page .page-content h6 {
- font-size: 16px;
-}
-.page .page-content a {
- color: var(--main-color);
-}
-.page .page-content a:hover {
- text-decoration: none;
-}
-.page .page-content img {
- display: block;
- max-width: 100%;
- height: auto;
-}
-.page .page-content ul {
- list-style-type: disc;
- list-style-position: inside;
-}
-.page .page-content ul,
-.page .page-content ol {
- margin: 15px 0;
- padding: 0 0 0 20px;
-}
-.page .page-content ul ul,
-.page .page-content ul ol,
-.page .page-content ol ul,
-.page .page-content ol ol {
- padding: 0 0 0 20px;
-}
-.page .page-content ul li,
-.page .page-content ol li {
- margin: 5px 0;
-}
-.page .page-content ul li > code,
-.page .page-content ol li > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
-}
-.page .page-content dl {
- margin: 40px 0;
-}
-.page .page-content dl dt {
- margin: 10px 0 0;
- font-weight: 700;
-}
-.page .page-content dl dd {
- margin: 5px 0;
-}
-.page .page-content dl dd > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
-}
-.page .page-content p {
- margin: 15px 0;
-}
-.page .page-content p > code {
- font-size: 14px;
- padding: 3px 6px;
- margin: 0 4px;
- background: var(--grey-fa);
- border: 1px solid var(--grey-ccc);
-}
-.page .page-content .alignleft {
- float: left;
- margin: 20px 30px 10px 0;
-}
-.page .page-content .alignright {
- float: right;
- margin: 20px 0 10px 20px;
-}
-.page .page-content .aligncenter {
- clear: both;
- margin: 0 auto 20px;
-}
-.page .page-content figcaption {
- font-size: 13px;
- font-style: italic;
- padding-top: 10px;
-}
-.page .page-content .iframe-wrapper {
- position: relative;
- padding-top: 56.25%;
-}
-.page .page-content .iframe-wrapper > iframe {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
-}
-
-.pagination {
- display: grid;
- grid-template-columns: 100px 1fr 100px;
- margin: 50px 0 0;
- font-size: 16px;
-}
-.pagination .previous,
-.pagination .next {
- text-decoration: none;
- color: var(--grey-555);
-}
-.pagination .previous:hover,
-.pagination .next:hover {
- text-decoration: underline;
-}
-.pagination .page_number {
- text-align: center;
- color: var(--grey-ccc);
-}
-
-/* Partials */
-.header-content-separator {
- position: relative;
- margin: 40px auto;
- width: 4px;
- height: 4px;
- border-radius: 50%;
- background: var(--grey-ccc);
-}
-.header-content-separator:before {
- position: absolute;
- left: -8px;
- width: 4px;
- height: 4px;
- border-radius: 50%;
- background: var(--grey-ccc);
- content: "";
-}
-.header-content-separator:after {
- position: absolute;
- left: 8px;
- width: 4px;
- height: 4px;
- border-radius: 50%;
- background: var(--grey-ccc);
- content: "";
-}
-
-.toggleBurger {
- display: none;
-}
-.toggleBurger:checked ~ .site-navigation {
- transform: translate(0, 0);
-}
-.toggleBurger:checked ~ .toggleBurgerWrapper span {
- background: transparent;
-}
-.toggleBurger:checked ~ .toggleBurgerWrapper span:before {
- top: 0;
- transform: rotate(135deg);
-}
-.toggleBurger:checked ~ .toggleBurgerWrapper span:after {
- top: 0;
- transform: rotate(-135deg);
-}
-
-.toggleBurgerWrapper {
- display: none;
- position: fixed;
- top: 20px;
- left: 20px;
- width: 25px;
- height: 30px;
- cursor: pointer;
- z-index: 100;
- user-select: none;
-}
-.toggleBurgerWrapper span {
- position: absolute;
- top: 50%;
- height: 2px;
- width: 100%;
- background: var(--grey-222);
- transition: all 0.3s ease;
- transform: translate(0, -50%);
-}
-.toggleBurgerWrapper span:before, .toggleBurgerWrapper span:after {
- position: absolute;
- height: 2px;
- width: 100%;
- background: var(--grey-222);
- content: "";
- transition: all 0.3s ease;
-}
-.toggleBurgerWrapper span:before {
- top: -6px;
-}
-.toggleBurgerWrapper span:after {
- top: 6px;
-}
-
-@media screen and (max-width: 800px) {
- .toggleBurgerWrapper {
- display: block;
- }
-} \ No newline at end of file
diff --git a/compile-sass.dart b/compile-sass.dart
deleted file mode 100644
index f86799a..0000000
--- a/compile-sass.dart
+++ /dev/null
@@ -1,8 +0,0 @@
-import 'dart:io';
-import 'package:sass/sass.dart' as sass;
-
-void main(List<String> arguments) {
- final result = sass.compileToResult('assets/_sass/main.scss');
-
- new File('assets/css/styles.css').writeAsStringSync(result.css);
-}
diff --git a/pubspec.lock b/pubspec.lock
deleted file mode 100644
index 613aa06..0000000
--- a/pubspec.lock
+++ /dev/null
@@ -1,573 +0,0 @@
-# Generated by pub
-# See https://dart.dev/tools/pub/glossary#lockfile
-packages:
- _fe_analyzer_shared:
- dependency: transitive
- description:
- name: _fe_analyzer_shared
- sha256: f6526c100095fd63a916824e3da344bbbd50c25c8f56bcd52d13c59d35bbe422
- url: "https://pub.dev"
- source: hosted
- version: "104.0.0"
- analyzer:
- dependency: transitive
- description:
- name: analyzer
- sha256: "6c6d751533496152e78f71c46ad001260c5e74e0f9ec1f1cbc165a0467c086d6"
- url: "https://pub.dev"
- source: hosted
- version: "14.0.0"
- archive:
- dependency: transitive
- description:
- name: archive
- sha256: a96e8b390886ee8abb49b7bd3ac8df6f451c621619f52a26e815fdcf568959ff
- url: "https://pub.dev"
- source: hosted
- version: "4.0.9"
- args:
- dependency: transitive
- description:
- name: args
- sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04
- url: "https://pub.dev"
- source: hosted
- version: "2.7.0"
- async:
- dependency: transitive
- description:
- name: async
- sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37
- url: "https://pub.dev"
- source: hosted
- version: "2.13.1"
- boolean_selector:
- dependency: transitive
- description:
- name: boolean_selector
- sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.2"
- charcode:
- dependency: transitive
- description:
- name: charcode
- sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a
- url: "https://pub.dev"
- source: hosted
- version: "1.4.0"
- checked_yaml:
- dependency: transitive
- description:
- name: checked_yaml
- sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.4"
- cli_config:
- dependency: transitive
- description:
- name: cli_config
- sha256: ac20a183a07002b700f0c25e61b7ee46b23c309d76ab7b7640a028f18e4d99ec
- url: "https://pub.dev"
- source: hosted
- version: "0.2.0"
- cli_pkg:
- dependency: transitive
- description:
- name: cli_pkg
- sha256: "1b3915a8924e8a495ec24b8ee076c182211d0bd563699a2c8ed9af33bf296af8"
- url: "https://pub.dev"
- source: hosted
- version: "2.15.2"
- cli_repl:
- dependency: transitive
- description:
- name: cli_repl
- sha256: a2ee06d98f211cb960c777519cb3d14e882acd90fe5e078668e3ab4baab0ddd4
- url: "https://pub.dev"
- source: hosted
- version: "0.2.3"
- cli_util:
- dependency: transitive
- description:
- name: cli_util
- sha256: "5909d2c6b66817222779e1eedc19e0e28b76d1df7bd9856a4792ccb9881df358"
- url: "https://pub.dev"
- source: hosted
- version: "0.5.1"
- collection:
- dependency: transitive
- description:
- name: collection
- sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
- url: "https://pub.dev"
- source: hosted
- version: "1.19.1"
- convert:
- dependency: transitive
- description:
- name: convert
- sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68
- url: "https://pub.dev"
- source: hosted
- version: "3.1.2"
- coverage:
- dependency: transitive
- description:
- name: coverage
- sha256: "956a3de0725ca232ad353565a8290d3357592bf4250f6f298a185e2d949c5d3d"
- url: "https://pub.dev"
- source: hosted
- version: "1.15.1"
- crypto:
- dependency: transitive
- description:
- name: crypto
- sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf
- url: "https://pub.dev"
- source: hosted
- version: "3.0.7"
- ffi:
- dependency: transitive
- description:
- name: ffi
- sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.0"
- file:
- dependency: transitive
- description:
- name: file
- sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
- url: "https://pub.dev"
- source: hosted
- version: "7.0.1"
- fixnum:
- dependency: transitive
- description:
- name: fixnum
- sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
- url: "https://pub.dev"
- source: hosted
- version: "1.1.1"
- frontend_server_client:
- dependency: transitive
- description:
- name: frontend_server_client
- sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
- url: "https://pub.dev"
- source: hosted
- version: "4.0.0"
- glob:
- dependency: transitive
- description:
- name: glob
- sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de
- url: "https://pub.dev"
- source: hosted
- version: "2.1.3"
- grinder:
- dependency: transitive
- description:
- name: grinder
- sha256: "8c65fc6c0c0748c2d9080c1fb603d7a9640bf5a5eda29f35099bd351cc45093f"
- url: "https://pub.dev"
- source: hosted
- version: "0.10.0"
- http:
- dependency: transitive
- description:
- name: http
- sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412"
- url: "https://pub.dev"
- source: hosted
- version: "1.6.0"
- http_multi_server:
- dependency: transitive
- description:
- name: http_multi_server
- sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8
- url: "https://pub.dev"
- source: hosted
- version: "3.2.2"
- http_parser:
- dependency: transitive
- description:
- name: http_parser
- sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
- url: "https://pub.dev"
- source: hosted
- version: "4.1.2"
- io:
- dependency: transitive
- description:
- name: io
- sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b
- url: "https://pub.dev"
- source: hosted
- version: "1.0.5"
- js:
- dependency: transitive
- description:
- name: js
- sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
- url: "https://pub.dev"
- source: hosted
- version: "0.6.7"
- json_annotation:
- dependency: transitive
- description:
- name: json_annotation
- sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80"
- url: "https://pub.dev"
- source: hosted
- version: "4.12.0"
- logging:
- dependency: transitive
- description:
- name: logging
- sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61
- url: "https://pub.dev"
- source: hosted
- version: "1.3.0"
- matcher:
- dependency: transitive
- description:
- name: matcher
- sha256: "31bd099b47c10cd1aeb55146a2d46ce0277630ecef3f7dae54ad7873f36696cd"
- url: "https://pub.dev"
- source: hosted
- version: "0.12.20"
- meta:
- dependency: transitive
- description:
- name: meta
- sha256: "307249ce4ff29d58a18e97f6345f539382eb9c9c29ecda628900f31de0443dd9"
- url: "https://pub.dev"
- source: hosted
- version: "1.19.0"
- mime:
- dependency: transitive
- description:
- name: mime
- sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.0"
- native_stack_traces:
- dependency: transitive
- description:
- name: native_stack_traces
- sha256: d34cf916db87b14d39465b3e3b4b4a8ee1f304bde6ed7605571e34802e3d6a11
- url: "https://pub.dev"
- source: hosted
- version: "0.6.1"
- native_synchronization:
- dependency: transitive
- description:
- name: native_synchronization
- sha256: "047fa3665d611e178edc167e56166714f125750f064d20216892f1cca69d9d1d"
- url: "https://pub.dev"
- source: hosted
- version: "0.3.1"
- node_interop:
- dependency: transitive
- description:
- name: node_interop
- sha256: "4848ac408c0cdd0f70136b755df816a8e4c96c244e5377a3fb3b8f8950666150"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.0"
- node_preamble:
- dependency: transitive
- description:
- name: node_preamble
- sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db"
- url: "https://pub.dev"
- source: hosted
- version: "2.0.2"
- package_config:
- dependency: transitive
- description:
- name: package_config
- sha256: ffcf4cf3d6c0b74ac43708d9f56625506e8a68aa935abe9d267a7330f320eb5d
- url: "https://pub.dev"
- source: hosted
- version: "3.0.0"
- path:
- dependency: transitive
- description:
- name: path
- sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
- url: "https://pub.dev"
- source: hosted
- version: "1.9.1"
- petitparser:
- dependency: transitive
- description:
- name: petitparser
- sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675"
- url: "https://pub.dev"
- source: hosted
- version: "7.0.2"
- pool:
- dependency: transitive
- description:
- name: pool
- sha256: "978783255c543aa3586a1b3c21f6e9d720eb315376a915872c61ef8b5c20177d"
- url: "https://pub.dev"
- source: hosted
- version: "1.5.2"
- posix:
- dependency: transitive
- description:
- name: posix
- sha256: "185ef7606574f789b40f289c233efa52e96dead518aed988e040a10737febb07"
- url: "https://pub.dev"
- source: hosted
- version: "6.5.0"
- protobuf:
- dependency: transitive
- description:
- name: protobuf
- sha256: "75ec242d22e950bdcc79ee38dd520ce4ee0bc491d7fadc4ea47694604d22bf06"
- url: "https://pub.dev"
- source: hosted
- version: "6.0.0"
- pub_semver:
- dependency: transitive
- description:
- name: pub_semver
- sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585"
- url: "https://pub.dev"
- source: hosted
- version: "2.2.0"
- pubspec_parse:
- dependency: transitive
- description:
- name: pubspec_parse
- sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082"
- url: "https://pub.dev"
- source: hosted
- version: "1.5.0"
- retry:
- dependency: transitive
- description:
- name: retry
- sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc"
- url: "https://pub.dev"
- source: hosted
- version: "3.1.2"
- sass:
- dependency: "direct dev"
- description:
- name: sass
- sha256: b1a3e2c2e5d3cdb24d49fc1ec781e111298b44fbf0e8e34f2bdcc294841782e1
- url: "https://pub.dev"
- source: hosted
- version: "1.101.2"
- shelf:
- dependency: transitive
- description:
- name: shelf
- sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12
- url: "https://pub.dev"
- source: hosted
- version: "1.4.2"
- shelf_packages_handler:
- dependency: transitive
- description:
- name: shelf_packages_handler
- sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.2"
- shelf_static:
- dependency: transitive
- description:
- name: shelf_static
- sha256: c87c3875f91262785dade62d135760c2c69cb217ac759485334c5857ad89f6e3
- url: "https://pub.dev"
- source: hosted
- version: "1.1.3"
- shelf_web_socket:
- dependency: transitive
- description:
- name: shelf_web_socket
- sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925"
- url: "https://pub.dev"
- source: hosted
- version: "3.0.0"
- source_map_stack_trace:
- dependency: transitive
- description:
- name: source_map_stack_trace
- sha256: c0713a43e323c3302c2abe2a1cc89aa057a387101ebd280371d6a6c9fa68516b
- url: "https://pub.dev"
- source: hosted
- version: "2.1.2"
- source_maps:
- dependency: transitive
- description:
- name: source_maps
- sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812"
- url: "https://pub.dev"
- source: hosted
- version: "0.10.13"
- source_span:
- dependency: transitive
- description:
- name: source_span
- sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab"
- url: "https://pub.dev"
- source: hosted
- version: "1.10.2"
- stack_trace:
- dependency: transitive
- description:
- name: stack_trace
- sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
- url: "https://pub.dev"
- source: hosted
- version: "1.12.1"
- stream_channel:
- dependency: transitive
- description:
- name: stream_channel
- sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
- url: "https://pub.dev"
- source: hosted
- version: "2.1.4"
- stream_transform:
- dependency: transitive
- description:
- name: stream_transform
- sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- string_scanner:
- dependency: transitive
- description:
- name: string_scanner
- sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
- url: "https://pub.dev"
- source: hosted
- version: "1.4.1"
- term_glyph:
- dependency: transitive
- description:
- name: term_glyph
- sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
- url: "https://pub.dev"
- source: hosted
- version: "1.2.2"
- test:
- dependency: transitive
- description:
- name: test
- sha256: "0d5ba5602ec3baa28c8ce365e1efc5575969c765f45c554a3e167dc7945b9c30"
- url: "https://pub.dev"
- source: hosted
- version: "1.31.2"
- test_api:
- dependency: transitive
- description:
- name: test_api
- sha256: "475610b2aa23c19687cce2961e44b0cc57cafe220f67c2b80201231b2a07fbe7"
- url: "https://pub.dev"
- source: hosted
- version: "0.7.13"
- test_core:
- dependency: transitive
- description:
- name: test_core
- sha256: a39c204a4fc7a7ccb04a2b985e359fda3cc37e45e0b8ac61c3fb1a05aa832132
- url: "https://pub.dev"
- source: hosted
- version: "0.6.19"
- test_process:
- dependency: transitive
- description:
- name: test_process
- sha256: ea79c090deffc87d8276a5d28bb498d080a9873be6b1074d9dcfb82eb87e138e
- url: "https://pub.dev"
- source: hosted
- version: "2.1.1"
- typed_data:
- dependency: transitive
- description:
- name: typed_data
- sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006
- url: "https://pub.dev"
- source: hosted
- version: "1.4.0"
- vm_service:
- dependency: transitive
- description:
- name: vm_service
- sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360"
- url: "https://pub.dev"
- source: hosted
- version: "15.2.0"
- watcher:
- dependency: transitive
- description:
- name: watcher
- sha256: "1398c9f081a753f9226febe8900fce8f7d0a67163334e1c94a2438339d79d635"
- url: "https://pub.dev"
- source: hosted
- version: "1.2.1"
- web:
- dependency: transitive
- description:
- name: web
- sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a"
- url: "https://pub.dev"
- source: hosted
- version: "1.1.1"
- web_socket:
- dependency: transitive
- description:
- name: web_socket
- sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c"
- url: "https://pub.dev"
- source: hosted
- version: "1.0.1"
- web_socket_channel:
- dependency: transitive
- description:
- name: web_socket_channel
- sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8
- url: "https://pub.dev"
- source: hosted
- version: "3.0.3"
- webkit_inspection_protocol:
- dependency: transitive
- description:
- name: webkit_inspection_protocol
- sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572"
- url: "https://pub.dev"
- source: hosted
- version: "1.2.1"
- xml:
- dependency: transitive
- description:
- name: xml
- sha256: "67f0aff7be013d107995e9b75bf4e7f2c3ef2dfdb2c8e68024bba0a7fd5756a4"
- url: "https://pub.dev"
- source: hosted
- version: "7.0.1"
- yaml:
- dependency: transitive
- description:
- name: yaml
- sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
- url: "https://pub.dev"
- source: hosted
- version: "3.1.3"
-sdks:
- dart: ">=3.11.0 <4.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
deleted file mode 100644
index 552afcd..0000000
--- a/pubspec.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-name: flevum
-
-environment:
- sdk: ^3.6.0
-
-dev_dependencies:
- sass: ^1.101.0
diff --git a/src/Main.hs b/src/Main.hs
index 62fa761..c9a5137 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -29,6 +29,7 @@ import Hakyll.Core.Rules
, compile
, route
, match
+ , create
)
import Hakyll.Web.CompressCss (compressCssCompiler)
import Hakyll.Web.Html (demoteHeaders, withUrls)
@@ -260,6 +261,24 @@ createPaginatedPage rulesBuilder pagePattern prefix =
grouper :: [Identifier] -> Rules [[Identifier]]
grouper = fmap (paginateEvery 25) . sortRecentFirst
+-- The order of merging is significant.
+styles :: Compiler [Item String]
+styles = traverse load
+ [ "assets/css/base/vars.css"
+ , "assets/css/base/reset.css"
+ , "assets/css/base/fonts.css"
+ , "assets/css/base/syntax.css"
+ , "assets/css/base/animations.css"
+ , "assets/css/layout.css"
+ , "assets/css/pages/fourofour.css"
+ , "assets/css/components/post.css"
+ , "assets/css/components/page.css"
+ , "assets/css/components/pagination.css"
+ , "assets/css/partials/header-separator.css"
+ , "assets/css/partials/burger-menu.css"
+ , "assets/css/custom.css"
+ ]
+
--
-- Hakyll rules.
--
@@ -297,9 +316,11 @@ rules = do
copyMatchedFiles "assets/fonts/*.woff2"
copyMatchedFiles "assets/images/**"
- match "assets/css/*.css"
+ -- Styles.
+ match "assets/css/**.css" $ compile compressCssCompiler
+ create ["assets/css/styles.css"]
$ route idRoute
- >> compile compressCssCompiler
+ >> compile (styles >>= makeItem . concatMap itemBody)
main :: IO ()
main = hakyllWith configuration rules
diff --git a/templates/default.html b/templates/default.html
index 20c9147..a7f959e 100644
--- a/templates/default.html
+++ b/templates/default.html
@@ -7,8 +7,7 @@
<link rel="canonical" href="https://www.flevum.de$url$">
<link rel="icon" type="image/png" href="/assets/images/favicon.svg">
- <link href="/assets/css/styles.css?v=1" rel="stylesheet">
- <link href="/assets/css/custom.css?v=2" rel="stylesheet">
+ <link href="/assets/css/styles.css?v=2" rel="stylesheet">
</head>
<body>