This commit is contained in:
Drath
2023-06-28 20:16:39 +02:00
commit 7eeb201f1f
26 changed files with 627 additions and 0 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

21
app/static/manifest.json Normal file
View File

@@ -0,0 +1,21 @@
{
"name": "Drath's website",
"short_name" : "Drath's website",
"start_url": "index.htm",
"scope" : "./",
"icons": [
{
"src": "./images/stocking.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "./images/stocking.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#f6f5f4",
"background_color": "#f6f5f4",
"display": "standalone"
}

View File

@@ -0,0 +1,40 @@
function addItem(url) {
getFileSize(url, insertRow);
}
async function getFileSize(url, myCallback) {
// needs proper cors config
var http = new XMLHttpRequest();
http.open('HEAD', url, true); // true = Asynchronous
http.onreadystatechange = function() {
if (this.readyState == this.DONE) {
if (this.status === 200) {
myCallback(url,parseInt(this.getResponseHeader('content-length')));
}
}
};
http.send();
}
function insertRow(url, size) {
let table = document.getElementById("table");
var newRow = table.insertRow(table.length);
let suffixes = ["B", "KB", "MB", "GB", "TB"];
var sindex = 0;
while(size > 1024) {
sindex+=1;
size/=1024;
}
newRow.insertCell(0).innerHTML = "<a href="+url+" download>"+url.split("/").pop()+"</a>";
newRow.insertCell(1).innerHTML = pRound(size) + " " + suffixes[sindex];
}
function pRound(num) {
// pretty round
mult = Math.ceil(Math.pow(10,3-String(num).split(".",1)[0].length));
return Math.round(num*mult)/mult;
}
// thoughts and prayers for everyone working in javascript

View File

@@ -0,0 +1,31 @@
function randImg() {
var arrayImg = new Array();
arrayImg.push("1605617441753.png");
arrayImg.push("1613916651677.png");
arrayImg.push("1624171748298.png");
arrayImg.push("1628050647008.webp");
arrayImg.push("20220301_152225.jpg");
arrayImg.push("20220308_211848.jpg");
arrayImg.push("20220404_132144.jpg");
arrayImg.push("20220404_132233.jpg");
arrayImg.push("20220430_093257.jpg");
arrayImg.push("20220502_103812.jpg");
arrayImg.push("20220509_142239.jpg");
arrayImg.push("EuyVfk9XYAEGA-x.jpg");
arrayImg.push("FECoZcOWQAQmwd9.jpeg");
arrayImg.push("FH5XkuZVkAI8VnL.jpg");
arrayImg.push("FHIyMT7X0AowdpZ.png");
arrayImg.push("FIQqCbOVcAIjZjY.jpg");
arrayImg.push("FSkGFVKacAA8Opl.jpg");
arrayImg.push("__kiryu_coco_and_bagpipe_hololive_and_1_more_drawn_by_chain_s__sample-a6b80c5333561d788a328239d51066dc.jpg");
arrayImg.push("ahp3YdbjFcPQgwPDiqu4Cg.png");
var img = arrayImg[ Math.floor( Math.random() * arrayImg.length ) ];
document.getElementById('randomImageGoesHere').src = "https://storage.googleapis.com/drath-public/rand/"+img;
}

View File

@@ -0,0 +1,16 @@
document.getElementById("precode").addEventListener("keyup",code);
function code() {
// lovingly stolen from https://github.com/kpym/autoradio-renault
var precode = document.getElementById("precode").value.toUpperCase();
if (!/^[A-Z]\d{3}$/.test(precode) || precode.startsWith("A0")) { return ''; }
x = precode.charCodeAt(1) + precode.charCodeAt(0) * 10 - 698;
y = precode.charCodeAt(3) + precode.charCodeAt(2) * 10 + x - 528;
z = (y*7) % 100;
code = Math.floor(z / 10) + (z % 10) * 10 + ((259 % x) % 100) * 100;
document.getElementById("code").value = code.toString().padStart(4,'0');
// document.getElementById('code').innerHTML = code.toString().padStart(4,'0');
}

View File

@@ -0,0 +1,25 @@
// we're **progressive** now
const ASSETS = [
"/resources/",
"/index.htm",
"/secrets/",
"/"
];
let cache_name = "SimiCart"; // The string used to identify our cache
self.addEventListener("install", event => {
console.log("installing...");
event.waitUntil(
caches
.open(cache_name)
.then(cache => {
return cache.addAll(assets);
})
.catch(err => console.log(err))
);
});
self.addEventListener("fetch", event => {
console.log("You fetched " + event.url);
});

View File

@@ -0,0 +1,15 @@
body {
max-width: 60rem !important;
}
a {
font-variation-settings: 'wght' 400 !important;
}
table {
width: 100%;
text-align: left;
font-size: 1.05rem;
line-height: 160%;
padding: 0.6rem 1.2rem;
}

View File

@@ -0,0 +1,20 @@
@font-face {
font-family: 'dejavu_serifbold';
src: url('DejaVuSerif-Bold-webfont.woff') format('woff');
}
@font-face {
font-family: 'dejavu_serif';
src: url('DejaVuSerif-webfont.woff') format('woff');
}
@font-face {
font-family: 'Cantarell vf';
font-weight: 100 900;
font-display: swap;
font-style: normal;
font-named-instance: 'Regular';
src: url('/static/fonts/Cantarell-VF.woff2') format('woff2'),
url('/static/fonts/Cantarell-VF.otf') format('opentype');
}

View File

@@ -0,0 +1,51 @@
:root {
--rounded-corner: 12px;
--gnomeblue: #1c71d8;
--blue1: rgb(153,193,241);
--blue2: rgb(98,160,234);
--blue3: rgb(53,132,228);
--blue4: rgb(28,113,216);
--blue5: rgb(26,95,180);
--green1: rgb(143,240,164);
--green2: rgb(87,227,137);
--green3: rgb(51,209,122);
--green4: rgb(46,194,126);
--green5: rgb(38,162,105);
--yellow1: rgb(249,240,107);
--yellow2: rgb(248,228,92);
--yellow3: rgb(246,211,45);
--yellow4: rgb(245,194,17);
--yellow5: rgb(229,165,10);
--orange1: rgb(255,190,111);
--orange2: rgb(255,163,72);
--orange3: rgb(255,120,0);
--orange4: rgb(230,97,0);
--orange5: rgb(198,70,0);
--red1: rgb(246,97,81);
--red2: rgb(237,51,59);
--red3: rgb(224,27,36);
--red4: rgb(192,28,40);
--red5: rgb(165,29,45);
--purple1: rgb(220,138,221);
--purple2: rgb(192,97,203);
--purple3: rgb(145,65,172);
--purple4: rgb(129,61,156);
--purple5: rgb(97,53,131);
--brown1: rgb(205,171,143);
--brown2: rgb(181,131,90);
--brown3: rgb(152,106,68);
--brown4: rgb(134,94,60);
--brown5: rgb(99,69,44);
--light1: rgb(255,255,255);
--light2: rgb(246,245,244);
--light3: rgb(222,221,218);
--light4: rgb(192,191,188);
--light5: rgb(154,153,150);
--dark1: rgb(119,118,123);
--dark2: rgb(94,92,100);
--dark3: rgb(61,56,70);
--dark4: rgb(36,31,49);
--dark5: rgb(0,0,0);
--text: #f6f5f4;
--maxwidth: 56rem;
}

102
app/static/styles/style.css Normal file
View File

@@ -0,0 +1,102 @@
:root {
--rounded-corner: 12px;
--shade: 220;
}
body {
color: hsl(var(--root-hue),80%,20%);
background-color: hsl(var(--root-hue),15%,90%);
font-size: 18px;
max-width: 40rem;
font: 1.2rem/1.6 'Cantarell vf', 'Cantarell', sans-serif;
padding: 1.5rem 1.1rem;
margin: 1rem auto;
}
header {
color: hsl(var(--root-hue),100%,20%);
}
a {
color: hsl(var(--root-hue),50%,35%);
text-decoration: none;
font-variation-settings: 'wght' 400;
transition: font-variation-settings 200ms, color 150ms;
}
a:hover {
color: hsl(var(--root-hue),75%,50%);
text-decoration: underline;
font-variation-settings: 'wght' 650;
}
@media (prefers-color-scheme: dark) {
body {
color: hsl(var(--root-hue),40%,85%);
background-color: hsl(var(--root-hue),8%,15%);
}
header {
color: hsl(var(--root-hue),90%,90%);
}
a {
color: hsl(var(--root-hue),30%,60%) !important;
}
a:hover {
color: hsl(var(--root-hue),70%,80%) !important;
}
}
h1 {
font-variation-settings: 'wght' 900;
font-size: 2rem;
line-height: 1.2;
}
section, aside, footer {
margin: 1.5rem auto;
}
img {
margin: 1.5rem auto;
}
@keyframes annoyingAnimation {
/* 0% { font-variation-settings: 'wght' 400; } */
50% {
font-variation-settings: 'wght' 650;
color: hsl(var(--root-hue),75%,50%);
}
100% {
font-variation-settings: 'wght' 400;
color: hsl(var(--root-hue),70%,35%);
}
}
.animate {
font-size: 1.4rem;
font-variation-settings: 'wght' 400;
animation: annoyingAnimation 1s linear infinite;
}
.center {
text-align: center;
}
.rounded {
border-radius: var(--rounded-corner);
}
.largeShadow {
--xTrans: 0px;
--yTrans: 7px;
--radius: 20px;
--spread: 3px;
--alpha: 0.3;
-webkit-box-shadow: var(--xTrans) var(--yTrans) var(--radius) var(--spread) hsla(var(--root-hue),35%,30%,var(--alpha));
-moz-box-shadow: var(--xTrans) var(--yTrans) var(--radius) var(--spread) hsla(var(--root-hue),35%,30%,var(--alpha));
box-shadow: var(--xTrans) var(--yTrans) var(--radius) var(--spread) hsla(var(--root-hue),35%,30%,var(--alpha));
}

View File

@@ -0,0 +1,47 @@
@import url("../resources/gnomecolors.css");
.button {
display: inline-block;
padding: 10px 20px;
font-size: 1.5rem;
font-variation-settings: 'wght' 420; /* heheh */
color: rgba(0,0,0,0.75);
border-radius: var(--rounded-corner);
background-color: rgba(255, 255, 255, 0.4);
border: solid rgba(0, 0, 0, 0.75);
border-width: 2px;
-webkit-backdrop-filter: blur(15px) saturate(1.4) contrast(1.3);
backdrop-filter: blur(15px) saturate(1.4) contrast(1.3);
-webkit-box-shadow: 0px 5px 15px 2px rgba(0,0,0,0.4);
box-shadow: 0px 5px 15px 2px rgba(0,0,0,0.4);
transition: font-variation-settings 150ms, border-width 150ms;
}
@media (prefers-color-scheme: dark) {
.button {
color: rgba(255,255,255,0.75);
background-color: rgba(0, 0, 0, 0.4);
border: solid rgba(255, 255, 255, 0.75);
}
}
.button:hover {
border-width: 4px;
font-variation-settings: 'wght' 700;
}
.container {
position: relative;
text-align: center;
}
.contCenter {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}