From e729d9605986bde7cab77bfc6824c09eceddbbfc Mon Sep 17 00:00:00 2001 From: Vrifox Date: Tue, 29 Sep 2020 19:37:50 +0200 Subject: [PATCH] removed font; sorted scss alphabetically --- .gitignore | 3 +- assets/_default/list.scss | 32 ++++----- assets/_default/single.scss | 44 ++++++------ assets/errorpages.scss | 2 +- assets/index.scss | 60 ++++++++-------- assets/partials/_footer.scss | 26 +++---- assets/partials/_main.scss | 16 ++--- assets/partials/_nav.scss | 30 ++++---- assets/projects/list.scss | 30 ++++---- static/fonts/OFL.txt | 94 -------------------------- static/fonts/PoppinsLatin-Regular.otf | Bin 21188 -> 0 bytes 11 files changed, 121 insertions(+), 216 deletions(-) delete mode 100644 static/fonts/OFL.txt delete mode 100644 static/fonts/PoppinsLatin-Regular.otf diff --git a/.gitignore b/.gitignore index c8067b3..c7063b5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,8 +5,7 @@ /resources/* # ignored files -deploy -git-deploy +deploy.sh .directory # not ignored directories diff --git a/assets/_default/list.scss b/assets/_default/list.scss index 1621d73..9a4a6b4 100644 --- a/assets/_default/list.scss +++ b/assets/_default/list.scss @@ -11,53 +11,53 @@ header { } .section-articles { - margin: 20px 0; display: grid; - grid-template-columns: repeat(2, 1fr); grid-gap: 1rem; + grid-template-columns: repeat(2, 1fr); + margin: 20px 0; a { color: rgb(255, 255, 255); text-decoration: none; } article { background: rgb(60, 60, 90); - color: rgb(255, 255, 255); - padding: 20px; + border: 1px solid rgb(60, 60, 90); border-radius: 5px; + color: rgb(255, 255, 255); display: flex; flex-flow: column; height: max-content; + padding: 20px; transition: background .2s; - border: 1px solid rgb(60, 60, 90); + &:hover { + background: rgb(70, 70, 105); + } img { - order: -1; - max-width: calc(100% + 40px); + background: rgb(80, 80, 120); border-radius: 5px 5px 0px 0px; margin: -20px -20px 20px -20px; - background: rgb(80, 80, 120); - object-fit: cover; max-height: 250px; + max-width: calc(100% + 40px); + object-fit: cover; + order: -1; } h1 { margin-top: 0px; } a { color: rgb(255, 255, 255); - } - a:hover { - text-decoration: underline; + &:hover { + text-decoration: underline; + } } .meta { margin: 0; } .author { - font-style: italic; color: rgb(200, 200, 230); + font-style: italic; } } - article:hover { - background: rgb(70, 70, 105); - } } @media (max-width: 600px) { .section-articles { diff --git a/assets/_default/single.scss b/assets/_default/single.scss index 6d4aad3..2dc5a14 100644 --- a/assets/_default/single.scss +++ b/assets/_default/single.scss @@ -3,8 +3,8 @@ .section-article { article { - max-width: 720px; margin: 80px auto; + max-width: 720px; .meta { color: rgb(180, 180, 220); } @@ -13,18 +13,18 @@ margin-top: 20px; } img { - max-width: 100%; - margin-bottom: 15px; - border-radius: 5px; border: 1px solid rgb(60, 60, 90); + border-radius: 5px; + margin-bottom: 15px; + max-width: 100%; } a { background: rgb(60, 60, 90); + border-radius: 5px; color: rgb(240, 240, 250); - transition: background .2s, color .2s; margin: -5px 0; padding: 5px 5px; - border-radius: 5px; + transition: background .2s, color .2s; &:hover { background: rgb(255, 130, 130); color: rgb(255, 255, 255); @@ -41,8 +41,8 @@ li { a { color: rgb(180, 180, 220); - padding: 10px; margin-left: 10px; + padding: 10px; &:hover { background: rgb(70, 70, 105); } @@ -54,38 +54,38 @@ } .section-articles { - margin: 20px auto -50px auto; display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1rem; + margin: 20px auto -50px auto; max-width: 720px; + &::after { + background: rgb(50, 50, 75); + content: ''; + height: 210px; + left: 0; + position: absolute; + width: 100vw; + z-index: -10; + } article { - color: rgb(255, 255, 255); - margin: 20px 0; border-radius: 5px; + color: rgb(255, 255, 255); display: flex; flex-flow: column; height: max-content; + margin: 20px 0; transition: background .2s; a { margin: 10px 0; - } - a:hover { - text-decoration: underline; + &:hover { + text-decoration: underline; + } } } .previous-article { text-align: right; } } -.section-articles::after { - content: ''; - position: absolute; - width: 100vw; - background: rgb(50, 50, 75); - height: 230px; - left: 0; - z-index: -10; -} @import '../partials/footer'; diff --git a/assets/errorpages.scss b/assets/errorpages.scss index dc77a36..2c66b94 100644 --- a/assets/errorpages.scss +++ b/assets/errorpages.scss @@ -2,8 +2,8 @@ @import 'partials/nav'; header { - text-align: center; margin: 150px 0; + text-align: center; h1 { font-size: 2em; } diff --git a/assets/index.scss b/assets/index.scss index f26e564..3f27f38 100644 --- a/assets/index.scss +++ b/assets/index.scss @@ -2,59 +2,59 @@ @import 'partials/nav'; header { - text-align: center; margin: 100px 0; + text-align: center; h1 { font-size: 2em; } } .section-articles { - margin: 20px 0; display: grid; grid-template-columns: repeat(2, 1fr); grid-gap: 1rem; + margin: 20px 0; a { color: rgb(255, 255, 255); text-decoration: none; } article { background: rgb(60, 60, 90); - color: rgb(255, 255, 255); - padding: 20px; + border: 1px solid rgb(60, 60, 90); border-radius: 5px; + color: rgb(255, 255, 255); display: grid; - height: max-content; - grid-template-columns: 120px 1fr; grid-template-areas: "img h1" "img p"; + grid-template-columns: 120px 1fr; + height: max-content; + padding: 20px; transition: background .2s; - border: 1px solid rgb(60, 60, 90); + &:hover { + background: rgb(70, 70, 105); + } img { - object-fit: cover; - height: 180px; - width: 120px; - border-radius: 5px 0px 0px 5px; border: 0px solid rgb(40, 40, 60); + border-radius: 5px 0px 0px 5px; grid-area: img; + height: 180px; margin: -20px; + object-fit: cover; + width: 120px; } h1 { - margin: 0px; grid-area: h1; + margin: 0px; } .meta { - margin: 0; grid-area: p; + margin: 0; } .author { - font-style: italic; color: rgb(200, 200, 230); + font-style: italic; } } - article:hover { - background: rgb(70, 70, 105); - } } @media (max-width: 900px) { .section-articles { @@ -63,32 +63,35 @@ header { } .section-projects { - margin: 20px 0; display: grid; - grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; + grid-template-columns: repeat(3, 1fr); + margin: 20px 0; a { color: rgb(255, 255, 255); text-decoration: none; } article { background: rgb(60, 60, 90); - color: rgb(255, 255, 255); - padding: 20px; + border: 1px solid rgb(60, 60, 90); border-radius: 5px; + color: rgb(255, 255, 255); display: flex; flex-flow: column; height: max-content; + padding: 20px; transition: background .2s; - border: 1px solid rgb(60, 60, 90); + &:hover { + background: rgb(70, 70, 105); + } img { - order: -1; - max-width: calc(100% + 40px); + background: rgb(80, 80, 120); border-radius: 5px 5px 0px 0px; margin: -20px -20px 20px -20px; - background: rgb(80, 80, 120); - object-fit: cover; max-height: 170px; + max-width: calc(100% + 40px); + object-fit: cover; + order: -1; } h1 { margin-top: 0; @@ -97,13 +100,10 @@ header { margin: 0; } .status { - font-style: italic; color: rgb(200, 200, 230); + font-style: italic; } } - article:hover { - background: rgb(70, 70, 105); - } } @media (max-width: 900px) { .section-projects { diff --git a/assets/partials/_footer.scss b/assets/partials/_footer.scss index 0d7a3a4..8562d68 100644 --- a/assets/partials/_footer.scss +++ b/assets/partials/_footer.scss @@ -2,11 +2,21 @@ footer { background: rgb(30, 30, 45); color: rgb(200, 200, 230); margin-top: 100px; - white-space: nowrap; overflow-x: auto; + overflow-y: hidden; + white-space: nowrap; + &::after { + background: rgb(30, 30, 45); + content: ''; + height: 10000px; + overflow: hidden; + position: fixed; + width: 100vw; + } .container { - display: flex; align-items: center; + display: flex; + height: 64px; .website-subnav { margin-left: auto; ul { @@ -15,7 +25,7 @@ footer { } li { list-style-type: none; - padding: 10px 0 10px 30px; + padding: 4px 0 4px 30px; } a { color: rgb(200, 200, 230); @@ -23,14 +33,6 @@ footer { } } } -footer::after { - content: ''; - background: rgb(30, 30, 45); - position: fixed; - height: 10000px; - width: 100vw; - overflow: hidden; -} @media (max-width: 600px) { footer { @@ -42,7 +44,7 @@ footer::after { } .website-subnav { li { - padding: 10px 30px 10px 0; + padding: 4px 30px 4px 0; } } } diff --git a/assets/partials/_main.scss b/assets/partials/_main.scss index 14767a0..f6c1350 100644 --- a/assets/partials/_main.scss +++ b/assets/partials/_main.scss @@ -1,23 +1,19 @@ * { box-sizing: border-box; } -@font-face { - font-family: PoppinsLatin; - src: url(/fonts/PoppinsLatin-Regular.otf); -} html { - scrollbar-width: thin; scrollbar-color: rgb(255, 130, 130) rgb(60, 60, 90); + scrollbar-width: thin; overflow-x: hidden; overflow-y: scroll; } body { background: rgb(40, 40, 60); color: rgb(240, 240, 255); - margin: 0; - font-family: PoppinsLatin, Monaco, Lucida Console, monospace; - font-display: block; display: grid; + font-family: monospace, 'Lucida Console', 'Monaco'; + line-height: 1.8; + margin: 0; } a { color: rgb(255, 130, 130); @@ -28,9 +24,9 @@ a { } .container { - width: calc(100% - 40px); - max-width: 1140px; margin: 0 auto; + max-width: 1140px; + width: calc(100% - 40px); } main { diff --git a/assets/partials/_nav.scss b/assets/partials/_nav.scss index 4f72d77..ca6fbcd 100644 --- a/assets/partials/_nav.scss +++ b/assets/partials/_nav.scss @@ -1,43 +1,45 @@ nav { background: rgb(60, 60, 90); - white-space: nowrap; overflow-x: auto; + overflow-y: hidden; + white-space: nowrap; .container { - display: flex; align-items: center; + display: flex; + height: 64px; .website-name { a { color: rgb(245, 245, 245); - text-decoration: none; - padding: 20px 30px; display: block; + padding: 20px 30px; + text-decoration: none; transition: background .2s; - } - a:hover { - background: rgb(50, 50, 75); + &:hover { + background: rgb(50, 50, 75); + } } } .website-nav { margin-left: auto; ul { display: flex; - padding: 0; margin: 0; + padding: 0; li { list-style-type: none; a { color: rgb(245, 245, 245); - text-decoration: none; - padding: 20px 30px; display: block; + text-decoration: none; transition: background .2s; - } - a:hover { - background: rgb(50, 50, 75); + padding: 20px 30px; + &:hover { + background: rgb(50, 50, 75); + } } .seperator { - padding: 20px 10px; display: block; + padding: 20px 10px; } } } diff --git a/assets/projects/list.scss b/assets/projects/list.scss index b9eb88f..2457053 100644 --- a/assets/projects/list.scss +++ b/assets/projects/list.scss @@ -2,41 +2,44 @@ @import '../partials/nav'; header { - text-align: center; margin: 100px 0; + text-align: center; h1 { font-size: 2em; } } .section-articles { - margin: 20px 0; display: grid; - grid-template-columns: repeat(3, 1fr); grid-gap: 1rem; + grid-template-columns: repeat(3, 1fr); + margin: 20px 0; a { color: rgb(255, 255, 255); text-decoration: none; } article { background: rgb(60, 60, 90); - color: rgb(255, 255, 255); - padding: 20px; + border: 1px solid rgb(60, 60, 90); border-radius: 5px; + color: rgb(255, 255, 255); display: flex; flex-flow: column; - max-width: 562px; height: max-content; + max-width: 562px; + padding: 20px; transition: background .2s; - border: 1px solid rgb(60, 60, 90); + &:hover { + background: rgb(70, 70, 105); + } img { - order: -1; - max-width: calc(100% + 40px); + background: rgb(80, 80, 120); border-radius: 5px 5px 0px 0px; margin: -20px -20px 20px -20px; - background: rgb(80, 80, 120); - object-fit: cover; max-height: 170px; + max-width: calc(100% + 40px); + object-fit: cover; + order: -1; } h1 { margin-top: 0; @@ -45,13 +48,10 @@ header { margin: 0; } .status { - font-style: italic; color: rgb(200, 200, 230); + font-style: italic; } } - article:hover { - background: rgb(70, 70, 105); - } } @media (max-width: 900px) { .section-articles { diff --git a/static/fonts/OFL.txt b/static/fonts/OFL.txt deleted file mode 100644 index 9f5f77d..0000000 --- a/static/fonts/OFL.txt +++ /dev/null @@ -1,94 +0,0 @@ -Copyright 2014-2019 Indian Type Foundry (info@indiantypefoundry.com) - -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. - diff --git a/static/fonts/PoppinsLatin-Regular.otf b/static/fonts/PoppinsLatin-Regular.otf deleted file mode 100644 index 7a1156b05c257fa4f67af309f17fb3c47e2d1a37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21188 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