1247 lines
33 KiB
SCSS
1247 lines
33 KiB
SCSS
|
{{ $colors := .Site.Data.colors | default dict }}
|
||
|
|
||
|
$dark_bg: {{ $colors.dark.bg | default "#242629" }};
|
||
|
$dark_hl_bg: {{ $colors.dark.hl_bg | default "#34363b" }};
|
||
|
$dark_fg: {{ $colors.dark.fg | default "white" }};
|
||
|
$dark_dim_fg: {{ $colors.dark.dim_fg | default "#bababa" }};
|
||
|
$dark_stroke: {{ $colors.dark.stroke | default "#4f4f4f" }};
|
||
|
$dark_accent: {{ $colors.dark.accent | default "#db5793" }};
|
||
|
$dark_sidebar_bg: {{ $colors.dark.sidebar.bg | default "#34363b" }};
|
||
|
$dark_sidebar_fg: {{ $colors.dark.sidebar.fg | default "white" }};
|
||
|
|
||
|
$light_bg: {{ $colors.light.bg | default "#f5f5f5" }};
|
||
|
$light_hl_bg: {{ $colors.light.hl_bg | default "#e6e6e6" }};
|
||
|
$light_fg: {{ $colors.light.fg | default "#262625" }};
|
||
|
$light_dim_fg: {{ $colors.light.dim_fg | default "#40403e" }};
|
||
|
$light_stroke: {{ $colors.light.stroke | default "#575754" }};
|
||
|
$light_accent: {{ $colors.light.accent | default "#db5793" }};
|
||
|
$light_sidebar_bg: {{ $colors.light.sidebar.bg | default "#e6e6e6" }};
|
||
|
$light_sidebar_fg: {{ $colors.light.sidebar.fg | default "#121211" }};
|
||
|
|
||
|
:root {
|
||
|
--dark_bg: #{$dark_bg};
|
||
|
--dark_hl_bg: #{$dark_hl_bg};
|
||
|
--dark_fg: #{$dark_fg};
|
||
|
--dark_dim_fg: #{$dark_dim_fg};
|
||
|
--dark_stroke: #{$dark_stroke};
|
||
|
--dark_accent: #{$dark_accent};
|
||
|
--dark_sidebar_bg: #{$dark_sidebar_bg};
|
||
|
--dark_sidebar_fg: #{$dark_sidebar_fg};
|
||
|
|
||
|
--light_bg: #{$light_bg};
|
||
|
--light_hl_bg: #{$light_hl_bg};
|
||
|
--light_fg: #{$light_fg};
|
||
|
--light_dim_fg: #{$light_dim_fg};
|
||
|
--light_stroke: #{$light_stroke};
|
||
|
--light_accent: #{$light_accent};
|
||
|
--light_sidebar_bg: #{$light_sidebar_bg};
|
||
|
--light_sidebar_fg: #{$light_sidebar_fg};
|
||
|
|
||
|
{{ if eq .Site.Data.colors.default "light" }}
|
||
|
--default_bg: #{$light_bg};
|
||
|
--default_hl_bg: #{$light_hl_bg};
|
||
|
--default_fg: #{$light_fg};
|
||
|
--default_dim_fg: #{$light_dim_fg};
|
||
|
--default_stroke: #{$light_stroke};
|
||
|
--default_accent: #{$light_accent};
|
||
|
--default_sidebar_bg: #{$light_sidebar_bg};
|
||
|
--default_sidebar_fg: #{$light_sidebar_fg};
|
||
|
{{ else }}
|
||
|
--default_bg: #{$dark_bg};
|
||
|
--default_hl_bg: #{$dark_hl_bg};
|
||
|
--default_fg: #{$dark_fg};
|
||
|
--default_dim_fg: #{$dark_dim_fg};
|
||
|
--default_stroke: #{$dark_stroke};
|
||
|
--default_accent: #{$dark_accent};
|
||
|
--default_sidebar_bg: #{$dark_sidebar_bg};
|
||
|
--default_sidebar_fg: #{$dark_sidebar_fg};
|
||
|
{{ end }}
|
||
|
}
|
||
|
|
||
|
{{ if ($colors.auto_switch | default false) }}
|
||
|
@media (prefers-color-scheme: dark) {
|
||
|
:root {
|
||
|
--default_bg: #{$dark_bg};
|
||
|
--default_hl_bg: #{$dark_hl_bg};
|
||
|
--default_fg: #{$dark_fg};
|
||
|
--default_dim_fg: #{$dark_dim_fg};
|
||
|
--default_stroke: #{$dark_stroke};
|
||
|
--default_accent: #{$dark_accent};
|
||
|
--default_sidebar_bg: #{$dark_sidebar_bg};
|
||
|
--default_sidebar_fg: #{$dark_sidebar_fg};
|
||
|
}
|
||
|
}
|
||
|
@media (prefers-color-scheme: light) {
|
||
|
:root {
|
||
|
--default_bg: #{$light_bg};
|
||
|
--default_hl_bg: #{$light_hl_bg};
|
||
|
--default_fg: #{$light_fg};
|
||
|
--default_dim_fg: #{$light_dim_fg};
|
||
|
--default_stroke: #{$light_stroke};
|
||
|
--default_accent: #{$light_accent};
|
||
|
--default_sidebar_bg: #{$light_sidebar_bg};
|
||
|
--default_sidebar_fg: #{$light_sidebar_fg};
|
||
|
}
|
||
|
}
|
||
|
{{ end }}
|
||
|
|
||
|
|
||
|
$main_font: {{ .Site.Params.fontFamily | default "JetBrains Mono" }};
|
||
|
$title_font: {{ .Site.Params.titleFontFamily | default "$main_font" }};
|
||
|
$mono_font: {{ .Site.Params.monospaceFontFamily | default "JetBrains Mono" }};
|
||
|
$symbols_font: "Symbols Nerd Font";
|
||
|
$content_width: {{ .Site.Params.contentWidth | default "1000px" }};
|
||
|
$border_radius: 10px;
|
||
|
$margin: 15px;
|
||
|
|
||
|
$base_font_size: 16px;
|
||
|
$title_font_mult: {{ .Site.Params.titleFontSizeMultiplier | default 1.0 }};
|
||
|
$main_font_mult: {{ .Site.Params.mainFontSizeMultiplier | default 1.0 }};
|
||
|
$mono_font_mult: {{ .Site.Params.monoFontSizeMultiplier | default 1.0 }};
|
||
|
|
||
|
{{ if (.Site.Params.enableShadow | default false) }}
|
||
|
$shadow: 0 0 5px 0 rgba(0, 0, 0, .2);
|
||
|
{{ else }}
|
||
|
$shadow: 0 0 0 0 transparent;
|
||
|
{{ end }}
|
||
|
|
||
|
::selection, ::-moz-selection {
|
||
|
background: var(--default_accent);
|
||
|
color: var(--default_fg);
|
||
|
}
|
||
|
|
||
|
body, html {
|
||
|
font-family: $symbols_font, $main_font, monospace;
|
||
|
font-size: $base_font_size * $main_font_mult;
|
||
|
margin: 0;
|
||
|
padding: 0;
|
||
|
background-color: var(--default_bg);
|
||
|
color: var(--default_fg);
|
||
|
}
|
||
|
|
||
|
body {
|
||
|
min-height: 100vh;
|
||
|
}
|
||
|
|
||
|
@mixin linkLike {
|
||
|
color: var(--default_fg);
|
||
|
text-decoration: none;
|
||
|
background-color: transparent;
|
||
|
border-radius: 0;
|
||
|
border-bottom: 2px solid currentcolor;
|
||
|
&:hover, &:focus {
|
||
|
&, &:not([disabled]) {
|
||
|
border-color: var(--default_accent) !important;
|
||
|
background-color: transparent;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@mixin roundButtonLike {
|
||
|
display: inline-block;
|
||
|
border-radius: $border_radius;
|
||
|
background-color: var(--default_hl_bg);
|
||
|
color: var(--default_fg);
|
||
|
padding: ($margin / 2);
|
||
|
margin: ($margin / 6) 0;
|
||
|
transition: background-color .15s ease-in-out !important;
|
||
|
border-bottom: none;
|
||
|
&:hover, &:focus {
|
||
|
background-color: var(--default_accent);
|
||
|
}
|
||
|
box-shadow: $shadow;
|
||
|
}
|
||
|
|
||
|
@mixin buttonLike {
|
||
|
{{ if eq (site.Params.navtype | default "standard") "circles" }}
|
||
|
@include roundButtonLike;
|
||
|
{{ else }}
|
||
|
@include linkLike;
|
||
|
{{ end }}
|
||
|
font-size: #{1.2 * $base_font_size};
|
||
|
}
|
||
|
|
||
|
a {
|
||
|
@include linkLike;
|
||
|
}
|
||
|
|
||
|
a.unstyledLink {
|
||
|
border: none;
|
||
|
text-decoration: none;
|
||
|
color: var(--default_fg);
|
||
|
}
|
||
|
|
||
|
@mixin limitWidth {
|
||
|
max-width: $content_width;
|
||
|
margin-left: auto;
|
||
|
margin-right: auto;
|
||
|
}
|
||
|
|
||
|
#content {
|
||
|
@include limitWidth;
|
||
|
padding: $margin;
|
||
|
}
|
||
|
|
||
|
footer {
|
||
|
color: var(--default_dim_fg);
|
||
|
a {
|
||
|
color: var(--default_dim_fg);
|
||
|
}
|
||
|
hr {
|
||
|
margin-top: (2 * $margin);
|
||
|
}
|
||
|
.footerColumns {
|
||
|
font-size: .9 * $base_font_size * $main_font_mult;
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
flex-wrap: wrap;
|
||
|
ul {
|
||
|
margin: ($margin / 2);
|
||
|
list-style-type: none;
|
||
|
padding: 0;
|
||
|
li > strong {
|
||
|
font-size: 1rem * $main_font_mult;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#links {
|
||
|
padding: 5px 0;
|
||
|
}
|
||
|
|
||
|
article, .articlePreview {
|
||
|
img {
|
||
|
margin: auto;
|
||
|
display: block;
|
||
|
max-width: 100%;
|
||
|
}
|
||
|
|
||
|
pre, code {
|
||
|
overflow: auto;
|
||
|
}
|
||
|
pre {
|
||
|
padding: $margin;
|
||
|
border: 1px solid var(--default_stroke);
|
||
|
border-radius: 3px;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
code {
|
||
|
font-family: $symbols_font, $mono_font, monospace;
|
||
|
font-size: $base_font_size * .8 * $mono_font_mult;
|
||
|
border: 1px solid var(--default_stroke);
|
||
|
border-radius: 3px
|
||
|
}
|
||
|
code, table {
|
||
|
padding: 2px;
|
||
|
}
|
||
|
|
||
|
pre code {
|
||
|
border: none;
|
||
|
border-radius: none;
|
||
|
padding: 0
|
||
|
}
|
||
|
|
||
|
table {
|
||
|
border-collapse: collapse;
|
||
|
overflow-x: auto;
|
||
|
display: block;
|
||
|
td, th {
|
||
|
padding: 6px;
|
||
|
border: 1px solid var(--default_stroke);
|
||
|
}
|
||
|
th, tr:nth-child(even) {
|
||
|
filter: brightness(105%);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
blockquote {
|
||
|
margin: 0;
|
||
|
padding-left: ($margin * 2);
|
||
|
border-left: 2px solid currentcolor;
|
||
|
}
|
||
|
|
||
|
.date, .date a {
|
||
|
color: var(--default_dim_fg);
|
||
|
border-color: var(--default_dim_fg);
|
||
|
font-size: .9em;
|
||
|
}
|
||
|
|
||
|
#pageNavigation, .nerdlink, nav:not(#TableOfContents) {
|
||
|
a {
|
||
|
border-bottom: none;
|
||
|
&:hover {
|
||
|
border-bottom: none;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#pageNavigation {
|
||
|
text-align: right;
|
||
|
a {
|
||
|
color: var(--default_accent);
|
||
|
}
|
||
|
a, span {
|
||
|
// appropriately sized tap targets
|
||
|
display: inline-block;
|
||
|
padding: 6px;
|
||
|
}
|
||
|
&.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: unset;
|
||
|
border-radius: 100%;
|
||
|
transition: background-color .15s ease-in-out;
|
||
|
background-color: var(--default_hl_bg);
|
||
|
color: var(--default_fg);
|
||
|
box-shadow: $shadow;
|
||
|
}
|
||
|
span {
|
||
|
background-color: var(--default_accent);
|
||
|
}
|
||
|
a:hover {
|
||
|
background-color: var(--default_accent);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
h1, h2, h3, h4, h5, h6 {
|
||
|
font-family: $symbols_font, $title_font;
|
||
|
a {
|
||
|
color: var(--default_accent);
|
||
|
{{ if not (.Site.Params.underlineTitleLinks | default false) }}
|
||
|
border-bottom: none;
|
||
|
{{ end }}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
h1 {font-size: 2.0 * $base_font_size * $title_font_mult;}
|
||
|
h2 {font-size: 1.5 * $base_font_size * $title_font_mult;}
|
||
|
h3 {font-size: 1.3 * $base_font_size * $title_font_mult;}
|
||
|
h4 {font-size: 1.0 * $base_font_size * $title_font_mult;}
|
||
|
h5 {font-size: 0.8 * $base_font_size * $title_font_mult;}
|
||
|
h6 {font-size: 0.7 * $base_font_size * $title_font_mult;}
|
||
|
|
||
|
.nerd {
|
||
|
font-family: $symbols_font, $main_font;
|
||
|
font-size: 1.2 * $base_font_size;
|
||
|
margin: 5px;
|
||
|
display: inline-block;
|
||
|
}
|
||
|
|
||
|
.nerdlink {
|
||
|
@extend .nerd;
|
||
|
color: var(--default_fg);
|
||
|
border-bottom: none;
|
||
|
position: relative;
|
||
|
width: 1em;
|
||
|
height: 1.2em;
|
||
|
display: inline-flex;
|
||
|
align-items: center;
|
||
|
justify-content: center;
|
||
|
.pseudofont {
|
||
|
fill: var(--default_fg);
|
||
|
display: inline;
|
||
|
position: relative;
|
||
|
top: 1px;
|
||
|
}
|
||
|
span {
|
||
|
position: absolute;
|
||
|
top: 1.5em;
|
||
|
left: 50%;
|
||
|
transform: translateX(-50%);
|
||
|
padding: 2px;
|
||
|
border: 1px solid var(--default_stroke);
|
||
|
border-radius: 3px;
|
||
|
color: var(--default_fg);
|
||
|
display: none;
|
||
|
background-color: var(--default_bg);
|
||
|
z-index: 900;
|
||
|
text-align: center;
|
||
|
}
|
||
|
&:hover {
|
||
|
.pseudofont {
|
||
|
fill: var(--default_accent);
|
||
|
}
|
||
|
color: var(--default_accent);
|
||
|
text-decoration: none;
|
||
|
border-bottom: none;
|
||
|
span {
|
||
|
display: block;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.card {
|
||
|
display: block;
|
||
|
padding-bottom: $margin;
|
||
|
|
||
|
{{ if (.Site.Params.paperCards | default false) }}
|
||
|
background-color: var(--default_hl_bg);
|
||
|
border-radius: $border_radius;
|
||
|
box-shadow: $shadow;
|
||
|
padding: $margin;
|
||
|
padding-top: 1px;
|
||
|
{{ end }}
|
||
|
|
||
|
&.single {
|
||
|
{{ if (.Site.Params.bigArticleTitle | default false) }}
|
||
|
h1 {
|
||
|
font-size: #{2.2 * $base_font_size * $title_font_mult};
|
||
|
}
|
||
|
{{ end }}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.postlist {
|
||
|
display: grid;
|
||
|
grid-gap: $margin;
|
||
|
margin-bottom: $margin;
|
||
|
grid-template-columns: 1fr;
|
||
|
&.gridView {
|
||
|
grid-template-columns: repeat(auto-fit, minmax(325px, 1fr));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// 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
|
||
|
{{ if (.Site.Params.paperCards | default false) }}
|
||
|
.postlistitem.card {
|
||
|
hr { display: none; }
|
||
|
}
|
||
|
{{ end}}
|
||
|
|
||
|
.postlistitem.card div {
|
||
|
img {
|
||
|
height: 250px;
|
||
|
{{ if (.Site.Params.paperCards | default false) }}
|
||
|
min-width: calc(100% + #{2*$margin});
|
||
|
margin: 0 #{-$margin};
|
||
|
{{ else }}
|
||
|
min-width: 100%;
|
||
|
{{ end }}
|
||
|
object-fit:
|
||
|
{{ if .Site.Params.FitImageInArticlePreview }}
|
||
|
contain
|
||
|
{{ else }}
|
||
|
cover
|
||
|
{{ end }};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ul {
|
||
|
li {
|
||
|
margin: 5px 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ul.list {
|
||
|
.date {
|
||
|
display: inline-block;
|
||
|
min-width: 100px;
|
||
|
}
|
||
|
> li > div {
|
||
|
display: grid;
|
||
|
grid-template-columns: 100px auto;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#commento {
|
||
|
margin-top: $margin;
|
||
|
color: var(--default_fg);
|
||
|
font-family: $symbols_font, $main_font, monospace;
|
||
|
textarea, #commento-markdown-help-root {
|
||
|
background: rgba(255, 255, 255, .05);
|
||
|
color: var(--default_fg);
|
||
|
border-radius: 0;
|
||
|
border: none;
|
||
|
td, td>*, td>*>* {
|
||
|
color: var(--default_fg);
|
||
|
pre {
|
||
|
font-family: $symbols_font, $mono_font, monospace;
|
||
|
color: var(--default_dim_fg);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
#commento-submit-button-root {
|
||
|
background: var(--default_accent);
|
||
|
color: var(--default_fg);
|
||
|
}
|
||
|
.commento-name {
|
||
|
color: var(--default_dim_fg);
|
||
|
}
|
||
|
.commento-sort-policy-buttons {
|
||
|
a {
|
||
|
border-bottom: none;
|
||
|
}
|
||
|
.commento-sort-policy-button-selected {
|
||
|
color: var(--default_accent);
|
||
|
}
|
||
|
}
|
||
|
.commento-card {
|
||
|
border-top: none;
|
||
|
margin: 25px 0;
|
||
|
}
|
||
|
.commento-body {
|
||
|
>*, *>*, >*>*>*, >*>*>*>*, >*>*>*>*>* {
|
||
|
color: var(--default_fg);
|
||
|
font-family: $symbols_font, $main_font, monospace;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.search {
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
flex-wrap: nowrap;
|
||
|
align-items: center;
|
||
|
margin: $margin 0;
|
||
|
.nerdlink {
|
||
|
display: inline-block;
|
||
|
cursor: pointer;
|
||
|
padding: 0 6px; // appropriately sized tap targets
|
||
|
}
|
||
|
#searchbar {
|
||
|
width: 100%;
|
||
|
min-width: 150px;
|
||
|
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: $margin;
|
||
|
&, h2, .date {color: white;}
|
||
|
h2 {
|
||
|
margin: 0;
|
||
|
}
|
||
|
.date {
|
||
|
margin: 0;
|
||
|
}
|
||
|
}
|
||
|
{{ if (.Site.Params.paperCards | default false) }}
|
||
|
border-radius: $border_radius;
|
||
|
padding: 0;
|
||
|
{{ end }}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.loadMoreButton {
|
||
|
text-align: center;
|
||
|
font-size: 1.2em;
|
||
|
font-weight: bold;
|
||
|
&.buttonLike {
|
||
|
a {
|
||
|
@include roundButtonLike;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.relatedArticlesContainer {
|
||
|
margin: $margin 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.6 * $base_font_size * $title_font_mult;
|
||
|
margin: 0;
|
||
|
{{ if site.Params.logoRightOfTitle }}
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
flex-wrap: wrap;
|
||
|
align-items: center;
|
||
|
> a {
|
||
|
margin-right: 12px;
|
||
|
}
|
||
|
{{ end }}
|
||
|
}
|
||
|
|
||
|
img {
|
||
|
margin-right: ($margin / 2);
|
||
|
margin-top: 7px;
|
||
|
align-self: flex-start;
|
||
|
width: 50px;
|
||
|
max-height: 50px;
|
||
|
border-radius: 5px;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
nav:not(#TableOfContents), #links {
|
||
|
ul {
|
||
|
list-style-type: none;
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
flex-wrap: wrap;
|
||
|
padding: 0;
|
||
|
margin: 0;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
header {
|
||
|
@include limitWidth;
|
||
|
padding: $margin;
|
||
|
margin-bottom: $margin;
|
||
|
.rightOfLogo {
|
||
|
width: 100%;
|
||
|
.titleAndHamburger {
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
flex-wrap: nowrap;
|
||
|
align-items: flex-start;
|
||
|
justify-content: space-between;
|
||
|
}
|
||
|
}
|
||
|
nav:not(#TableOfContents) {
|
||
|
font-size: .9em;
|
||
|
ul {
|
||
|
li {
|
||
|
{{ if eq .Site.Params.menuStyle "buttons" }}
|
||
|
margin: 5px 2px;
|
||
|
margin-right: 5px;
|
||
|
&:last-child {
|
||
|
margin-right: none;
|
||
|
}
|
||
|
a {
|
||
|
{{ if eq (site.Params.navtype | default "standard") "circles" }}
|
||
|
@include roundButtonLike;
|
||
|
{{ else }}
|
||
|
font-family: $symbols_font, $main_font;
|
||
|
background-color: var(--default_hl_bg);
|
||
|
transition: background-color .15s ease-in-out;
|
||
|
&:hover, &:active {
|
||
|
background-color: var(--default_accent);
|
||
|
}
|
||
|
{{ end }}
|
||
|
box-sizing: border-box;
|
||
|
color: var(--default_fg);
|
||
|
margin: 0;
|
||
|
padding: #{$margin/2} $margin;
|
||
|
}
|
||
|
{{ else }}
|
||
|
border-right: 1px solid var(--default_accent);
|
||
|
&:last-child {
|
||
|
border-right: none;
|
||
|
}
|
||
|
a {
|
||
|
padding: 2px $margin;
|
||
|
color: var(--default_accent);
|
||
|
&:hover {
|
||
|
text-decoration: underline;
|
||
|
}
|
||
|
}
|
||
|
{{ end }}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.articleTagsContainer {
|
||
|
margin: $margin 0;
|
||
|
}
|
||
|
|
||
|
a.buttonTag {
|
||
|
@include roundButtonLike;
|
||
|
}
|
||
|
|
||
|
.cactus-button, .cactus-login-buttons > button {
|
||
|
font-family: $main_font;
|
||
|
padding: 0;
|
||
|
margin: 5px 0 5px $margin !important;
|
||
|
@include buttonLike;
|
||
|
transition-property: border-color, background-color !important;
|
||
|
transition-duration: .15s;
|
||
|
transition-timing-function: ease-in-out;
|
||
|
opacity: 1 !important;
|
||
|
&[disabled] {
|
||
|
opacity: .5 !important;
|
||
|
border-color: transparent !important;
|
||
|
background-color: transparent !important;
|
||
|
box-shadow: none;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.shareBtn, button {
|
||
|
@include buttonLike;
|
||
|
cursor: pointer;
|
||
|
}
|
||
|
|
||
|
input, textarea, textarea.cactus-editor-textarea {
|
||
|
{{ if (eq (site.Params.inputStyle | default "standard") "buttons") }}
|
||
|
@include buttonLike;
|
||
|
{{ else }}
|
||
|
border-radius: 0 !important;
|
||
|
{{ end }}
|
||
|
box-sizing: border-box;
|
||
|
font-family: $symbols_font, $main_font;
|
||
|
background-color: var(--default_hl_bg) !important;
|
||
|
color: var(--default_fg);
|
||
|
max-width: 100%;
|
||
|
min-width: 10px;
|
||
|
padding: 12px;
|
||
|
border: 2px solid transparent !important;
|
||
|
border-color: transparent;
|
||
|
transition: border-color .15s ease-in-out !important;
|
||
|
&:focus, &:active {
|
||
|
border-color: var(--default_accent) !important;
|
||
|
outline: none;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
.cactus-editor-name {
|
||
|
box-sizing: border-box;
|
||
|
max-width: 100%;
|
||
|
min-width: 10px;
|
||
|
}
|
||
|
|
||
|
.cactus-login-form {
|
||
|
{{ if (eq (site.Params.inputStyle | default "standard") "buttons") }}
|
||
|
border-radius: $border_radius;
|
||
|
{{ else }}
|
||
|
border-radius: 0;
|
||
|
{{ end }}
|
||
|
{{ if (.Site.Params.enableShadow | default false) }}
|
||
|
box-shadow: $shadow;
|
||
|
{{ else }}
|
||
|
box-shadow: none;
|
||
|
border: 2px solid var(--default_stroke);
|
||
|
{{ end }}
|
||
|
max-width: 600px;
|
||
|
min-width: 200px;
|
||
|
width: 100%;
|
||
|
margin: 0 auto;
|
||
|
box-sizing: border-box;
|
||
|
transform: none;
|
||
|
top: #{$margin*2};
|
||
|
left: 0; right: 0;
|
||
|
background-color: var(--default_bg) !important;
|
||
|
color: var(--default_fg) !important;
|
||
|
z-index: 9999;
|
||
|
> a { // "Use a Matrix client" button
|
||
|
@include buttonLike;
|
||
|
align-self: flex-end;
|
||
|
> button {
|
||
|
background-color: transparent !important;
|
||
|
border: none !important;
|
||
|
box-shadow: none !important;
|
||
|
margin: 0 !important;
|
||
|
padding: 0 !important;
|
||
|
}
|
||
|
}
|
||
|
.cactus-login-buttons {
|
||
|
margin: 0;
|
||
|
justify-content: flex-end;
|
||
|
> button {
|
||
|
flex-grow: 0;
|
||
|
white-space: nowrap; // otherwise labels go 1 line per word
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#fediInstanceDialog {
|
||
|
display: none;
|
||
|
position: fixed;
|
||
|
top: 0; bottom: 0; left: 0; right: 0;
|
||
|
|
||
|
.dialog {
|
||
|
{{ if (.Site.Params.enableShadow | default false) }}
|
||
|
box-shadow: $shadow;
|
||
|
{{ else }}
|
||
|
box-shadow: none;
|
||
|
border: 2px solid var(--default_stroke);
|
||
|
{{ end }}
|
||
|
box-sizing: border-box;
|
||
|
position: absolute;
|
||
|
display: flex; flex-direction: column;
|
||
|
top: #{$margin*2};
|
||
|
left: 50%; transform: translateX(-50%);
|
||
|
z-index: 9999;
|
||
|
background-color: var(--default_bg);
|
||
|
width: 450px;
|
||
|
max-width: 100%;
|
||
|
padding: $margin;
|
||
|
{{ if (eq (site.Params.inputStyle | default "standard") "buttons") }}
|
||
|
border-radius: $border_radius;
|
||
|
{{ end }}
|
||
|
h1, h2, h3, h4 {
|
||
|
margin: 0;
|
||
|
}
|
||
|
h2 {
|
||
|
margin-bottom: 24px;
|
||
|
}
|
||
|
input {
|
||
|
display: block;
|
||
|
}
|
||
|
.buttons {
|
||
|
margin: $margin 0;
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
justify-content: end;
|
||
|
> * {
|
||
|
margin: 5px 0 5px $margin;
|
||
|
display: block;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
.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 {
|
||
|
.titleAndSearchContainer {
|
||
|
z-index: 9999999 !important;
|
||
|
}
|
||
|
#hamburger-menu {
|
||
|
display: block !important;
|
||
|
font-size: 1.2em;
|
||
|
cursor: pointer;
|
||
|
text-align: center;
|
||
|
margin: 0;
|
||
|
padding: ($margin / 4);
|
||
|
align-self: center;
|
||
|
}
|
||
|
nav:not(#TableOfContents) {
|
||
|
ul#main-nav {
|
||
|
&, li, li a {text-shadow: none !important;}
|
||
|
display: none;
|
||
|
position: absolute;
|
||
|
z-index: 99999;
|
||
|
right: $margin;
|
||
|
padding: 2px 5px;
|
||
|
width: 120px;
|
||
|
{{ if eq .Site.Params.navtype "circles" }}
|
||
|
border-radius: $border_radius;
|
||
|
{{ end }}
|
||
|
border: 2px solid var(--default_stroke);
|
||
|
background-color: var(--default_hl_bg);
|
||
|
flex-direction: column;
|
||
|
li {
|
||
|
border-right: none !important;
|
||
|
display: block;
|
||
|
text-align: center;
|
||
|
margin: 0;
|
||
|
a {
|
||
|
box-shadow: none;
|
||
|
box-sizing: border-box;
|
||
|
display: block;
|
||
|
width: 100%;
|
||
|
padding: 10px;
|
||
|
margin: 3px 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
#main-nav-toggler:checked ~ #main-nav {
|
||
|
display: flex;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
{{ end }}
|
||
|
|
||
|
{{ if and
|
||
|
(.Site.Params.enableJumbotron | default false)
|
||
|
.Site.Data.jumbotron
|
||
|
}}
|
||
|
{{
|
||
|
$jumbo_fullscreen := (or
|
||
|
(.Site.Data.jumbotron.fullscreen | default false)
|
||
|
(.Site.Data.jumbotron.backgroundVideo)
|
||
|
)
|
||
|
}}
|
||
|
header {
|
||
|
.jumbotron { display: none; }
|
||
|
max-width: 100%;
|
||
|
> * {
|
||
|
@include limitWidth;
|
||
|
}
|
||
|
}
|
||
|
header.jumbotronContainer {
|
||
|
{{ if (.Site.Data.jumbotron.whiteText | default false) }}
|
||
|
&, *, > * {
|
||
|
color: white !important;
|
||
|
}
|
||
|
#searchbar {
|
||
|
color: var(--default_fg) !important;
|
||
|
}
|
||
|
#main-nav a, .nerdlink:hover {
|
||
|
color: var(--default_fg) !important;
|
||
|
}
|
||
|
.nerdlink span {
|
||
|
color: var(--default_fg) !important;
|
||
|
text-shadow: none;
|
||
|
}
|
||
|
.arrow {
|
||
|
border-color: white !important;
|
||
|
svg , svg * {
|
||
|
fill: white !important;
|
||
|
}
|
||
|
&:hover, &:focus, &:active {
|
||
|
background-color: rgba(0, 0, 0, .7);
|
||
|
svg, svg * {
|
||
|
fill: white !important;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
{{ end }}
|
||
|
{{ if (.Site.Data.jumbotron.textShadow | default false) }}
|
||
|
&, * {
|
||
|
text-shadow: 0 0 5px transparentize($light_fg, .3);
|
||
|
}
|
||
|
{{ end }}
|
||
|
> *:first-child {
|
||
|
padding-top: $margin;
|
||
|
}
|
||
|
padding-bottom: 0;
|
||
|
padding-top: 0;
|
||
|
.jumbotron { display: flex; }
|
||
|
{{ if and
|
||
|
.Site.Data.jumbotron.background
|
||
|
(not .Site.Data.jumbotron.backgroundVideo)
|
||
|
}}
|
||
|
background:
|
||
|
linear-gradient(
|
||
|
transparentize($dark_bg, 0.2),
|
||
|
transparentize($dark_bg, 0.2)
|
||
|
),
|
||
|
url({{ .Site.Data.jumbotron.background }});
|
||
|
background-size: cover;
|
||
|
background-position: center;
|
||
|
background-repeat: no-repeat;
|
||
|
{{ else if .Site.Data.jumbotron.backgroundVideo }}
|
||
|
background: transparent;
|
||
|
> * {
|
||
|
position: relative;
|
||
|
z-index: 9999;
|
||
|
}
|
||
|
overflow: hidden;
|
||
|
.video_container {
|
||
|
overflow: hidden;
|
||
|
position: absolute;
|
||
|
min-height: 100%;
|
||
|
min-width: 100%;
|
||
|
top: 0; bottom: 0; left: 0; right: 0;
|
||
|
z-index: 0;
|
||
|
background-color: black;
|
||
|
.jumbotron_video {
|
||
|
opacity: {{ .Site.Data.jumbotron.videoOpacity | default 1.0 }};
|
||
|
position: absolute;
|
||
|
z-index: 0;
|
||
|
left: 50%;
|
||
|
top: 50%;
|
||
|
transform: translate(-50%, -50%);
|
||
|
overflow: hidden;
|
||
|
min-height: 100%;
|
||
|
min-width: 100%;
|
||
|
height: 100vh;
|
||
|
}
|
||
|
}
|
||
|
{{ else }}
|
||
|
background-color: rgba(0, 0, 0, .3);
|
||
|
{{ end }}
|
||
|
{{ if $jumbo_fullscreen }}
|
||
|
height: 100vh;
|
||
|
{{ if (.Site.Data.jumbotron.downArrow | default false) }}
|
||
|
margin-bottom: 100px;
|
||
|
.arrow {
|
||
|
position: absolute;
|
||
|
bottom: 24px;
|
||
|
left: 50%; transform: translateX(-50%);
|
||
|
cursor: pointer;
|
||
|
&, svg {
|
||
|
height: 64px;
|
||
|
width: 64px;
|
||
|
}
|
||
|
opacity: .7;
|
||
|
border-radius: 100%;
|
||
|
border: 2px solid var(--default_fg);
|
||
|
padding: 3px;
|
||
|
// display: flex; flex-direction: row; justify-content: center;
|
||
|
background-color: transparent;
|
||
|
transition: background-color .15s ease-in-out;
|
||
|
svg {
|
||
|
margin-top: 5px;
|
||
|
&, * {
|
||
|
fill: var(--default_fg);
|
||
|
transition: fill .15s ease-in-out;
|
||
|
}
|
||
|
@keyframes bounce {
|
||
|
0% {
|
||
|
transform: translateY(3px);
|
||
|
}
|
||
|
100% {
|
||
|
transform: translateY(-3px);
|
||
|
}
|
||
|
}
|
||
|
animation: bounce 2s infinite ease-in-out alternate both;
|
||
|
|
||
|
}
|
||
|
&:hover, &:focus, &:active {
|
||
|
background-color: var(--default_fg);
|
||
|
svg, svg * {
|
||
|
fill: var(--default_bg);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
{{ end }}
|
||
|
{{ end }}
|
||
|
}
|
||
|
.jumbotron {
|
||
|
width: 100%;
|
||
|
{{ if $jumbo_fullscreen }}
|
||
|
height: 80vh;
|
||
|
{{ else }}
|
||
|
min-height: 40vh;
|
||
|
{{ end }}
|
||
|
flex-wrap: no-wrap;
|
||
|
text-align: center;
|
||
|
justify-content: center;
|
||
|
align-items: center;
|
||
|
align-content: center;
|
||
|
{{ $jumbotronImagePosition := (
|
||
|
.Site.Data.jumbotron.imagePosition | default "left"
|
||
|
) }}
|
||
|
{{ if (eq $jumbotronImagePosition "left") }}
|
||
|
flex-direction: row;
|
||
|
{{ else if (eq $jumbotronImagePosition "right") }}
|
||
|
flex-direction: row-reverse;
|
||
|
{{ else if (eq $jumbotronImagePosition "top") }}
|
||
|
flex-direction: column;
|
||
|
{{ else if (eq $jumbotronImagePosition "bottom") }}
|
||
|
flex-direction: column-reverse;
|
||
|
{{ end }}
|
||
|
.main_box {
|
||
|
display: flex;
|
||
|
flex-direction: column;
|
||
|
text-align: center;
|
||
|
justify-content: center;
|
||
|
align-items: center;
|
||
|
flex-basis: 55%;
|
||
|
flex-grow: 1;
|
||
|
}
|
||
|
img {
|
||
|
flex-basis: 45%;
|
||
|
flex-grow: 1;
|
||
|
max-width: 100vw;
|
||
|
min-width: 200px;
|
||
|
}
|
||
|
h2 {
|
||
|
font-weight: 300;
|
||
|
&.huge {
|
||
|
font-size: 4 * $base_font_size * $title_font_mult;
|
||
|
}
|
||
|
}
|
||
|
h2, h3 {
|
||
|
margin: 12px;
|
||
|
}
|
||
|
ul {
|
||
|
list-style: none;
|
||
|
padding: 0;
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
flex-wrap: wrap;
|
||
|
justify-content: center;
|
||
|
li {
|
||
|
margin: 3px;
|
||
|
a {
|
||
|
&.huge {
|
||
|
font-size: 1.5em;
|
||
|
}
|
||
|
{{ if eq .Site.Params.navtype "circles" }}
|
||
|
@include roundButtonLike;
|
||
|
background-color: transparent;
|
||
|
border: 2px solid var(--default_accent);
|
||
|
{{ end }}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
@media only screen and (max-width: 520px) {
|
||
|
.jumbotron {
|
||
|
flex-wrap: wrap;
|
||
|
h1.huge {
|
||
|
font-size: 3 * $base_font_size * $title_font_mult !important;
|
||
|
}
|
||
|
h2, h3 {
|
||
|
margin: 6px;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
@media only screen and (max-height: 800px) {
|
||
|
.jumbotron {
|
||
|
height: auto;
|
||
|
img {
|
||
|
max-height: 120px;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
{{ end }}
|
||
|
|
||
|
{{ if .Site.Params.enableSidebarLayout | default false }}
|
||
|
$sidebar_width: 350px;
|
||
|
|
||
|
header {
|
||
|
#sidebar_nav, .sidebarToc {
|
||
|
display: none;
|
||
|
}
|
||
|
#wide_nav {
|
||
|
display: block;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@media only screen and (min-width: 950px) {
|
||
|
html{{if .Site.Params.enableJumbotron}}:not(.home){{end}} {
|
||
|
position: fixed; top: 0; bottom: 0; left: 0; right: 0;
|
||
|
color: var(--default_sidebar_fg);
|
||
|
#baseContainer {
|
||
|
display: flex;
|
||
|
flex-direction: row;
|
||
|
flex-wrap: nowrap;
|
||
|
max-height: 100vh;
|
||
|
header {
|
||
|
margin-left: unset; margin-right: unset;
|
||
|
background-color: var(--default_sidebar_bg);
|
||
|
max-width: $sidebar_width;
|
||
|
min-width: $sidebar_width;
|
||
|
height: 100vh;
|
||
|
display: block;
|
||
|
overflow: auto;
|
||
|
margin-bottom: 0;
|
||
|
padding: 0 $margin;
|
||
|
box-shadow: $shadow;
|
||
|
> *:first-child {
|
||
|
padding-bottom: $margin;
|
||
|
padding-top: $margin;
|
||
|
}
|
||
|
.rightOfLogo {
|
||
|
align-self: center;
|
||
|
}
|
||
|
#sidebar_nav {
|
||
|
display: block;
|
||
|
margin: $margin 0;
|
||
|
width: 100%;
|
||
|
nav:not(#TableOfContents) {
|
||
|
font-size: 1.1em;
|
||
|
ul#main-nav {
|
||
|
flex-direction: column;
|
||
|
li {
|
||
|
border-right: none;
|
||
|
a {
|
||
|
display: block;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
#wide_nav {
|
||
|
display: none;
|
||
|
}
|
||
|
.sidebarToc {
|
||
|
display: block;
|
||
|
nav#TableOfContents {
|
||
|
ul {
|
||
|
padding-left: 24px;
|
||
|
a:not(:hover) {
|
||
|
border-color: transparent;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
#contentContainer {
|
||
|
flex-grow: 1;
|
||
|
overflow-y: auto;
|
||
|
}
|
||
|
}
|
||
|
.articleToc {
|
||
|
display: none;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
{{ end }}
|
||
|
|
||
|
|
||
|
// transitions at the end so that loading css doens't cause animations
|
||
|
|
||
|
a {
|
||
|
transition-property: color, border-color;
|
||
|
transition-duration: .15s;
|
||
|
transition-timing-function: ease-in-out;
|
||
|
}
|
||
|
|
||
|
.nerdlink {
|
||
|
&, .pseudofond {
|
||
|
transition: all .15s ease-in-out;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
input {
|
||
|
transition: .15s border ease-in-out;
|
||
|
}
|