website/assets/scss/style.scss

675 lines
14 KiB
SCSS

$bg_color: {{ .Site.Params.backgroundColor | default "#242629" }};
$fg_color: {{ .Site.Params.foregroundColor | default "white" }};
$dim_fg_color: {{ .Site.Params.dimForegroundColor | default "#bababa" }};
$stroke_color: {{ .Site.Params.strokeColor | default "#4f4f4f" }};
$accent_color: {{ .Site.Params.accentColor | default "#db5793" }};
$main_font: {{ .Site.Params.fontFamily | default "JetBrains Mono" }};
$title_font: {{ .Site.Params.titleFontFamily | default "$main_font" }};
$mono_font: {{ .Site.Params.monospaceFontFamily | default "JetBrains Mono" }};
$highlight_bg_color: {{ .Site.Params.highlightBgColor | default "#34363b" }};
$content_width: {{ .Site.Params.contentWidth | default "1000px" }};
$border_radius: 10px;
$content_spacing: 25px;
::selection, ::-moz-selection {
background: $accent_color;
color: $fg_color;
}
a {
transition: all .15s ease-in-out;
}
body, html {
font-family: "Symbols Nerd Font", $main_font, monospace;
margin: 0;
padding: 0;
background-color: $bg_color;
color: $fg_color;
}
body {
min-height: 100vh;
}
a {
color: $fg_color;
text-decoration: none;
border-bottom: 2px solid $fg_color;
&:hover, &:focus {
border-color: $accent_color !important;
}
}
@mixin limitWidth {
max-width: $content_width;
margin-left: auto;
margin-right: auto;
}
#content {
@include limitWidth;
padding: 15px;
}
footer {
color: $dim_fg_color;
a {
color: $dim_fg_color;
}
hr {
margin-top: (2 * $content_spacing);
}
.footerColumns {
font-size: .9rem;
display: flex;
flex-direction: row;
flex-wrap: wrap;
ul {
margin: ($content_spacing / 2);
list-style-type: none;
padding: 0;
li > strong {
font-size: 1rem;
}
}
}
}
#links {
padding: 5px 0;
}
article, .articlePreview {
img {
margin: auto;
display: block;
max-width: 100%;
}
pre, code {
overflow: auto;
}
pre {
padding: 20px;
border: 1px solid $stroke_color;
border-radius: 3px;
}
}
code {
font-family: $mono_font, monospace;
font-size: .8em;
padding: 2px;
border: 1px solid $stroke_color;
border-radius: 3px;
}
pre code {
border: none;
border-radius: none;
padding: 0
}
.date, .date a {
color: $dim_fg_color;
border-color: $dim_fg_color;
font-size: .9em;
}
#pageNavigation, .nerdlink, nav {
a {
border-bottom: none;
&:hover {
border-bottom: none;
}
}
}
#pageNavigation {
text-align: right;
a {
color: $accent_color;
}
&.nav-circles {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: flex-end;
align-items: center;
a, span {
margin: 5px;
text-align: center;
display: inline-block;
width: 40px;
height: 40px;
line-height: 40px;
padding: auto;
border-radius: 100%;
background-color: $highlight_bg_color;
color: $fg_color;
}
span {
background-color: $accent_color;
}
a:hover {
background-color: $accent_color;
}
}
}
h1, h2, h3, h4, h5, h6 {
font-family: $title_font;
a {
color: $accent_color;
border-bottom: none;
}
}
.nerd {
font-family: "Symbols Nerd Font", $mono_font;
font-size: 1.2em;
margin: 5px;
display: inline-block;
}
.nerdlink {
transition: all .15s ease-in-out;
@extend .nerd;
color: $fg_color;
border-bottom: none;
position: relative;
width: 1em;
height: 1.2em;
display: inline-flex;
align-items: center;
justify-content: center;
.pseudofont {
transition: all .15s ease-in-out;
fill: $fg_color;
display: inline;
position: relative;
top: 1px;
}
span {
position: absolute;
top: 1.5em;
left: 50%;
transform: translateX(-50%);
padding: 2px;
border: 1px solid $stroke_color;
border-radius: 3px;
color: $fg_color;
display: none;
background-color: $bg_color;
z-index: 900;
text-align: center;
}
&:hover {
.pseudofont {
fill: $accent_color;
}
color: $accent_color;
text-decoration: none;
border-bottom: none;
span {
display: block;
}
}
}
.card {
display: block;
padding-bottom: 25px;
&.discrete {
background-color: $highlight_bg_color;
border-radius: $border_radius;
padding: 20px;
padding-top: 1px;
}
&.single {
{{ if (.Site.Params.bigArticleTitle | default false) }}
h1 {
font-size: 2.2em;
}
{{ end }}
}
}
.postlist {
display: grid;
grid-gap: 25px;
margin-bottom: $content_spacing;
grid-template-columns: 1fr;
&.gridView {
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
.card {
&.discrete {
}
}
}
}
// only hide hr in cards if they are in the article list
// cards in list are divs, cards as in full-blown articles use the article tag
.postlistitem.card.discrete {
hr { display: none; }
}
.postlistitem.card div {
img {
height: 250px;
min-width: 100%;
object-fit:
{{ if .Site.Params.FitImageInArticlePreview }}
contain
{{ else }}
cover
{{ end }};
}
}
ul {
li {
margin: 5px 0;
}
}
ul.list {
.date {
display: inline-block;
min-width: 100px;
}
}
#commento {
margin-top: 25px;
color: $fg_color;
font-family: $main_font, monospace;
textarea, #commento-markdown-help-root {
background: rgba(255, 255, 255, .05);
color: $fg_color;
border-radius: 0;
border: none;
td, td>*, td>*>* {
color: $fg_color;
pre {
font-family: $mono_font, monospace;
color: $dim_fg_color;
}
}
}
#commento-submit-button-root {
background: $accent_color;
color: $fg_color;
}
.commento-name {
color: $dim_fg_color;
}
.commento-sort-policy-buttons {
a {
border-bottom: none;
}
.commento-sort-policy-button-selected {
color: $accent_color;
}
}
.commento-card {
border-top: none;
margin: 25px 0;
}
.commento-body {
>*, *>*, >*>*>*, >*>*>*>*, >*>*>*>*>* {
color: $fg_color;
font-family: $main_font, monospace;
}
}
}
.search {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
margin: 12px 0;
.nerdlink {
display: inline-block;
cursor: pointer;
}
#searchbar {
@extend a;
width: 100%;
display: inline-block;
background-color: transparent;
border-top: none;
border-left: none;
border-right: none;
padding: 6px 0;
font-family: $main_font;
font-size: 1.3em;
outline: none;
}
}
.titleAndSearchContainer {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
#titleContainer {
flex-grow: 99;
}
.search {
flex-grow: 1;
&, #searchbar {font-size: 1em;}
}
}
.featuredCardLink {
border: none;
padding: 0;
.featuredCard {
@extend .card;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
position: relative;
height: 250px;
.contentArea {
position: absolute;
bottom: 0;
padding: 15px;
&, h2, .date {color: white;}
h2 {
margin: 0;
}
.date {
margin: 0;
}
}
&.discrete {
border-radius: $border_radius;
padding: 0;
}
}
}
@mixin buttonLikeLink {
display: inline-block;
border-radius: $border_radius;
background-color: $highlight_bg_color;
padding: ($content_spacing / 2);
margin: ($content_spacing / 6) 0;
border-bottom: none;
&:hover, &:focus {
background-color: $accent_color;
}
}
.loadMoreButton {
text-align: center;
font-size: 1.2rem;
font-weight: bold;
&.buttonLike {
a {
@include buttonLikeLink;
}
}
}
.relatedArticlesContainer {
margin: $content_spacing 0;
#relatedArticles .postlistitem {
@extend .featuredCard;
}
}
#titleContainer {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: flex-start;
align-self: flex-start;
h1 {
font-weight: normal;
font-size: 1.6em;
margin: 0;
}
img {
margin-right: ($content_spacing / 2);
margin-top: 7px;
align-self: flex-start;
width: 50px;
max-height: 50px;
border-radius: 5px;
}
}
nav, #links {
ul {
list-style-type: none;
display: flex;
flex-direction: row;
flex-wrap: wrap;
padding: 0;
margin: 0;
}
}
header {
@include limitWidth;
padding: 15px;
margin-bottom: $content_spacing;
.titleAndHamburger {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: flex-start;
justify-content: space-between;
}
nav {
font-size: .9em;
ul {
li {
border-right: 1px solid $accent_color;
&:last-child {
border-right: none;
}
a {
padding: 2px 20px;
color: $accent_color;
&:hover {
text-decoration: underline;
}
}
}
}
}
}
.articleTagsContainer {
margin: $content_spacing 0;
}
a.discreteTag {
@include buttonLikeLink;
}
.shareBtn {
{{ if eq (site.Params.navType | default "standard") "circles" }}
@include buttonLikeLink;
{{ end }}
font-size: 1.2em;
cursor: pointer;
}
input {
{{ if or (site.Params.discreteCards | default false) (eq (site.Params.navType | default "standard") "circles") }}
@include buttonLikeLink;
&:hover, &:focus, &:active {
background-color: $highlight_bg_color;
}
{{ end }}
font-family: $main_font;
background-color: $highlight_bg_color;
padding: 12px;
color: $fg_color;
border: 2px solid transparent;
transition: .15s border ease-in-out;
&:focus, &:active {
border: 2px solid $accent_color;
outline: none;
}
}
#fediInstanceDialog {
display: none;
position: fixed;
top: 0; bottom: 0; left: 0; right: 0;
.dialog {
position: absolute;
display: flex; flex-direction: column;
top: 24px;
left: 50%; transform: translateX(-50%);
z-index: 9999;
background-color: $bg_color;
width: 450px;
max-width: 100%;
padding: 24px;
{{ if site.Params.discreteCards }}
border-radius: $border_radius;
{{ end }}
h1, h2, h3, h4 {
margin: 0;
}
h2 {
margin-bottom: 24px;
}
input {
display: block;
}
.buttons {
margin: 12px 0;
display: flex;
flex-direction: row;
justify-content: end;
> * {
margin-left: 24px;
}
}
}
.bg {
z-index: 99;
position: absolute;
top: 0; bottom: 0; left: 0; right: 0;
background-color: rgba(0, 0, 0, .4);
cursor: pointer;
}
&.open {
display: block;
}
}
{{ if .Site.Params.mobileHamburgerNav | default false }}
header {
#hamburger-menu {
@extend .nerdlink;
display: none !important;
}
#main-nav-toggler {
display: none;
}
}
@media only screen and (max-width: 520px) {
header {
#hamburger-menu {
display: block !important;
font-size: 1.2rem;
cursor: pointer;
text-align: center;
margin: 0;
padding: ($content_spacing / 4);
align-self: center;
}
nav {
ul#main-nav {
display: none;
flex-direction: column;
li {
border-right: none !important;
display: block;
text-align: right;
a {
padding-left: 0;
padding-right: ($content_spacing / 4);
}
}
}
#main-nav-toggler:checked ~ #main-nav {
display: flex;
}
}
}
}
{{ end }}
{{ if (and (.Site.Params.enableJumbotron | default false) .Site.Data.jumbotron) }}
header {
.jumbotron { display: none; }
max-width: 100%;
> * {
@include limitWidth;
}
}
header.jumbotronContainer {
.jumbotron { display: flex; }
{{ if .Site.Data.jumbotron.background }}
background:
linear-gradient(
transparentize($bg_color, 0.2),
transparentize($bg_color, 0.2)
),
url({{ .Site.Data.jumbotron.background }});
background-size: cover;
background-position: center;
background-repeat: no-repeat;
{{ else }}
background-color: rgba(0, 0, 0, .3);
{{ end }}
}
.jumbotron {
width: 100%;
min-height: 40vh;
flex-direction: column;
text-align: center;
justify-content: center;
align-items: center;
h1 {
font-weight: 300;
}
ul {
list-style: none;
padding: 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
li {
margin: 3px;
a {
{{ if eq .Site.Params.navType "circles" }}
@include buttonLikeLink;
background-color: transparentize($highlight_bg_color, .3);
{{ end }}
}
}
}
}
{{ end }}