switch to managing CSS and JS as assets
All checks were successful
Website build and deploy / build (push) Successful in 1m11s

This commit is contained in:
2025-03-21 11:01:49 +01:00
parent 615d6ba945
commit c6ad88c112
39 changed files with 77 additions and 48 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,47 @@
/*!
* SPDX-FileCopyrightText: 2020 Max Mehl <https://mehl.mx>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
function selectTag(tag) {
let li_tags = document.querySelectorAll('li.link');
for (i = 0; i < li_tags.length; i++) {
tags = li_tags[i].getAttribute('tags');
if (tags.indexOf(tag) !== -1) {
li_tags[i].style.display = "list-item";
} else {
li_tags[i].style.display = "none";
}
}
let a_tags = document.querySelectorAll('a.tag');
for (i = 0; i < a_tags.length; i++) {
tags = a_tags[i].getAttribute('tags');
if (tags.indexOf(tag) !== -1) {
a_tags[i].classList.add("active");
} else {
a_tags[i].classList.remove("active");
}
}
}
function selectAllTags() {
let li_tags = document.querySelectorAll('li.link');
for (i = 0; i < li_tags.length; i++) {
li_tags[i].style.display = "list-item";
}
let a_tags = document.querySelectorAll('a.tag');
for (i = 0; i < a_tags.length; i++) {
tags = a_tags[i].getAttribute('tags');
if (tags == "all") {
a_tags[i].classList.add("active");
} else {
a_tags[i].classList.remove("active");
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,145 @@
/* COLOURS */
html, body {
border-top: 3px solid #0D76EC;
}
div.footer {
border-bottom: 5px solid #0D76EC;
}
.container a {
color: #0D76EC;
}
.container a:hover {
color: #12437A;
}
.container .label-success {
background-color: rgba(92, 139, 184, 0.6);
color: #FFF;
}
.container a.label-success:hover,
.container a.label-success.active {
background-color: rgba(92, 139, 184, 0.9);
color: #FFF;
}
.container a.label-rss {
background-color: rgba(242, 101, 34, 0.8);
color: #FFF;
}
.container a.label-rss:hover {
background-color: rgba(242, 101, 34, 1);
}
.container h1 {
font-weight: bold;
color: #0D76EC;
}
.container h4 a {
color: #0D76EC;
}
.container h4 a:hover {
color: #0060CC;
}
/* Avoid scrollbar jumps in centering
* see https://css-tricks.com/eliminate-jumps-in-horizontal-centering-by-forcing-a-scroll-bar/
*/
div#wrap {
margin-left: calc(100vw - 100%);
}
div.avatar img {
max-height: 190px;
}
.panel {
box-shadow: none;
-webkit-box-shadow: none;
}
/* Site specific settings */
section#about p {
font-size: 18px;
margin-bottom: 20px;
}
div.contact p {
line-height: 1.5em;
margin-bottom: 30px;
}
/* transparency of tags */
/* Scale social icons with hovering */
.social-links {
display: flex;
justify-content: center;
}
.social-links li a {
font-size: 26px;
}
.social-links li a i {
transform: scale(0.8);
transition: transform .3s;
}
.social-links li a:hover i {
transform: scale(1);
}
/* BLOG */
.metadata-page {
font-size: 18px;
text-align: left;
margin: 3em 0 2em 0;
}
.metadata-page .row {
padding-bottom: 0;
}
.blog-summary {
padding-bottom: 1em;
}
.metadata-summary {
font-size: 0.8em;
opacity: 0.7;
}
.blogpost .header-image img {
width: 100%;
height: auto;
padding-bottom: 2px;
}
.blogpost .header-image p {
opacity: 0.7;
font-size: 0.8em;
text-align: center;
line-height: 1em;
margin-bottom: 1.5em;
}
a.learn-more {
font-size: 1.8em;
line-height: 0.8em;
font-weight: 700;
font-variant: small-caps;
text-transform: lowercase;
padding: 0 1em 0 .3em;
position: absolute;
}
a.learn-more::after {
position: absolute;
right: 0.3em;
content: " » ";
opacity: .8;
transition: all 150ms linear;
}
a.learn-more:hover::after {
right: 0;
opacity: 1;
}
/* HELPER CLASSES */
.vertical-align {
display: flex;
align-items: center;
}
/* CODE / SYNTAX */
pre code {
white-space:pre;
}

View File

@@ -0,0 +1,199 @@
/* Main page with stikky-footer */
html, body {
height: 100%;
background-color: #fff;
font-family: 'Source Sans Pro', sans-serif;
/* The html and body elements cannot have any padding or margin. */
border-top: 3px solid #27A822;
}
/* Wrapper for page content to push down footer */
#wrap {
padding-bottom: 50px;
min-height: 100%;
height: auto;
/* Negative indent footer by its height */
margin: 0 auto -65px;
/* Pad bottom by footer height */
/*padding: 0 0 60px;*/
}
/* Navbar */
.navbar-static-top {
margin-bottom: 10px;
}
.navbar-default {
background-color: #ffffff;
border-color: #ffffff;
}
.navbar-default .navbar-brand {
color: #6b6b6b;
}
.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
color: #6b6b6b;
}
.navbar-default .navbar-text {
color: #6b6b6b;
}
.navbar-default .navbar-nav > li > a {
color: #6b6b6b;
}
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
color: #6b6b6b;
}
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
color: #6b6b6b;
background-color: #ffffff;
}
.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {
color: #6b6b6b;
background-color: #ffffff;
}
.navbar-default .navbar-toggle {
border-color: #ffffff;
}
.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
background-color: #ffffff;
}
.navbar-default .navbar-toggle .icon-bar {
background-color: #6b6b6b;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
border-color: #6b6b6b;
}
.navbar-default .navbar-link {
color: #6b6b6b;
}
.navbar-default .navbar-link:hover {
color: #6b6b6b;
}
@media (max-width: 767px) {
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
color: #6b6b6b;
}
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
color: #6b6b6b;
}
.navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
color: #6b6b6b;
background-color: #ffffff;
}
}
/* Custom page CSS */
.container {
width: auto;
max-width: 800px;
text-align: center;
}
.container .text-muted {
margin: 20px 0;
}
.container a {
color: #27A822;
}
.container a:hover {
color: #267723;
}
.container p img, .img-responsive {
display: block;
height: auto;
margin: 2rem auto;
max-width: 100%;
}
.panel-default h4 {
text-align: left;
line-height: 24px;
font-size: 22px;
}
.panel-default h5 {
text-align: left;
line-height: 30px;
font-size: 18px;
}
.panel-default h6 {
font-size: 15px;
}
.panel-default h4 a, h5 a {
color: #27A822;
}
.panel-default h4 a:hover, h5 a:hover {
color: #267723;
}
.panel{
border-style: none;
}
.panel-body {
padding-top: -10px;
text-align: left;
}
.social-links {
display: block;
margin: 0 auto;
margin-top: 40px;
padding: 0px;
width: 100%;
text-align: center;
animation: fade 1s ease 1s both;
}
.social-links li {
display: inline-block;
padding: 5px;
padding-top: 0;
text-align: center;
}
.social-links li a {
font-size: 20px;
color: #000;
padding: 10px;
padding-bottom: 4px;
transition: all .4s ease;
}
.social-links li a:hover {
color: #000;
}
.avatar {
padding-top: 5%;
}
.blog-post{
padding-top: 15px;
}
.blog-title{
padding-top: 2px;
}
.label {
display: inline-block;
margin-bottom: 5px;
}
.related-posts h4 {
text-align: center;
}
.page-not-found {
padding-top: 20%;
}
.disqus {
padding-bottom: 15px;
}
.blogpost{
text-align: left;
line-height: 30px;
font-size: 18px;
}
/* Footer */
.footer {
text-decoration: none !important;
}
.text-muted {
color: #6b6b6b;
}
div.footer{
border-bottom: 5px solid #27A822;;
}
/* Set the fixed height of the footer here */
/*.footer {
height: 50px;
padding-bottom: 15px;
}*/

View File

@@ -0,0 +1,27 @@
/* source-sans-pro-200 - latin */
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 200;
src: url('../webfonts/source-sans-pro-v11-latin-200.eot'); /* IE9 Compat Modes */
src: local('Source Sans Pro ExtraLight'), local('SourceSansPro-ExtraLight'),
url('../webfonts/source-sans-pro-v11-latin-200.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../webfonts/source-sans-pro-v11-latin-200.woff2') format('woff2'), /* Super Modern Browsers */
url('../webfonts/source-sans-pro-v11-latin-200.woff') format('woff'), /* Modern Browsers */
url('../webfonts/source-sans-pro-v11-latin-200.ttf') format('truetype'), /* Safari, Android, iOS */
url('../webfonts/source-sans-pro-v11-latin-200.svg#SourceSansPro') format('svg'); /* Legacy iOS */
}
/* source-sans-pro-regular - latin */
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 400;
src: url('../webfonts/source-sans-pro-v11-latin-regular.eot'); /* IE9 Compat Modes */
src: local('Source Sans Pro Regular'), local('SourceSansPro-Regular'),
url('../webfonts/source-sans-pro-v11-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../webfonts/source-sans-pro-v11-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
url('../webfonts/source-sans-pro-v11-latin-regular.woff') format('woff'), /* Modern Browsers */
url('../webfonts/source-sans-pro-v11-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('../webfonts/source-sans-pro-v11-latin-regular.svg#SourceSansPro') format('svg'); /* Legacy iOS */
}

View File

@@ -0,0 +1,264 @@
/*
* SPDX-FileCopyrightLicense: 2017 Balazs Saros
* SPDX-FileCopyrightLicense: 2019 Max Mehl
* SPDX-License-Identifier: MIT
*/
.luxbar-default {
width: 100%;
position: relative;
margin-bottom: 10px;
}
.luxbar-static {
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
width: 100%;
position: absolute;
top: 0;
left: 0
}
.luxbar-static .luxbar-checkbox:checked ~ .luxbar-menu {
position: absolute
}
.luxbar-fixed {
width: 100%;
position: fixed;
top: 0;
left: 0;
z-index: 1000;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)
}
.luxbar-fixed-bottom {
width: 100%;
position: fixed;
bottom: 0;
left: 0;
z-index: 1000;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)
}
.luxbar-hamburger span,
.luxbar-hamburger span::before,
.luxbar-hamburger span::after {
display: block;
height: 2px;
width: 26px;
transition: 0.6s ease
}
.luxbar-checkbox:checked ~ .luxbar-menu li .luxbar-hamburger span {
background-color: transparent
}
.luxbar-checkbox:checked ~ .luxbar-menu li .luxbar-hamburger span::before,
.luxbar-checkbox:checked ~ .luxbar-menu li .luxbar-hamburger span::after {
margin-top: 0
}
.luxbar-header {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
height: 58px
}
.luxbar-menu-left .luxbar-navigation,
.luxbar-menu-left .luxbar-header {
justify-content: flex-start
}
.luxbar-menu-right .luxbar-hamburger {
margin-left: auto
}
.luxbar-brand {
font-size: 1.5em;
padding: 18px 24px 18px 24px
}
.luxbar-menu {
min-height: 58px;
transition: 0.6s ease;
width: auto;
max-width: 800px;
text-align: center;
margin-left: auto;
margin-right: auto;
}
.luxbar-navigation {
display: flex;
flex-direction: column;
list-style: none;
padding-left: 0;
margin: 0
}
.luxbar-menu a,
.luxbar-item a {
text-decoration: none;
color: #6b6b6b;
cursor: pointer;
font-size: 16px;
}
.luxbar-item {
height: 58px
}
.luxbar-item a {
padding: 18px 20px 18px 20px;
display: block
}
.luxbar-hamburger {
padding: 18px 24px 18px 24px;
position: relative;
cursor: pointer
}
.luxbar-hamburger span::before,
.luxbar-hamburger span::after {
content: '';
position: absolute
}
.luxbar-hamburger span::before {
margin-top: -8px
}
.luxbar-hamburger span::after {
margin-top: 8px
}
.luxbar-checkbox {
display: none
}
.luxbar-checkbox:not(:checked) ~ .luxbar-menu {
overflow: hidden;
height: 58px
}
.luxbar-checkbox:checked ~ .luxbar-menu {
transition: height 0.6s ease;
height: 50vh;
overflow: auto
}
.dropdown {
position: relative;
height: auto;
min-height: 58px
}
.dropdown:hover>ul {
position: relative;
display: block;
min-width: 100%
}
.dropdown>a::after {
position: absolute;
content: '';
right: 10px;
top: 25px;
border-width: 5px 5px 0;
border-color: transparent;
border-style: solid
}
.dropdown>ul {
display: block;
overflow-x: hidden;
list-style: none;
padding: 0
}
.dropdown>ul .luxbar-item {
min-width: 100%;
height: 29px;
padding: 5px 10px 5px 40px
}
.dropdown>ul .luxbar-item a {
min-height: 29px;
line-height: 29px;
padding: 0
}
@media screen and (min-width: 768px) {
.luxbar-navigation {
flex-flow: row;
justify-content: flex-end
}
.luxbar-hamburger {
display: none
}
.luxbar-checkbox:not(:checked) ~ .luxbar-menu {
overflow: visible
}
.luxbar-checkbox:checked ~ .luxbar-menu {
height: 58px
}
.luxbar-menu .luxbar-item {
border-top: 0
}
.luxbar-menu-right .luxbar-header {
margin-right: auto
}
.dropdown {
height: 58px
}
.dropdown:hover>ul {
position: absolute;
left: 0;
top: 58px;
padding: 0
}
.dropdown>ul {
display: none
}
.dropdown>ul .luxbar-item {
padding: 5px 10px
}
.dropdown>ul .luxbar-item a {
white-space: nowrap
}
}
.luxbar-checkbox:checked+.luxbar-menu .luxbar-hamburger-doublespin span::before {
transform: rotate(225deg)
}
.luxbar-checkbox:checked+.luxbar-menu .luxbar-hamburger-doublespin span::after {
transform: rotate(-225deg)
}
.luxbar-checkbox:checked+.luxbar-menu .luxbar-hamburger-spin span::before {
transform: rotate(45deg)
}
.luxbar-checkbox:checked+.luxbar-menu .luxbar-hamburger-spin span::after {
transform: rotate(-45deg)
}
.luxbar-menu-light,
.luxbar-menu-light .dropdown ul {
background-color: transparent;
color: #212121
}
.luxbar-menu-light .active {
font-weight: 700;
}
.luxbar-menu-light .luxbar-hamburger span,
.luxbar-menu-light .luxbar-hamburger span::before,
.luxbar-menu-light .luxbar-hamburger span::after {
background-color: #212121
}

View File

@@ -0,0 +1,4 @@
@import "default";
@import "fonts";
@import "luxbar";
@import "custom";