Initial commit

This commit is contained in:
Amanda Graven 2025-02-10 09:34:10 +01:00
commit 560f88949f
10 changed files with 5623 additions and 0 deletions

BIN
assets/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

116
assets/icon.svg Normal file
View file

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
viewBox="0 0 16.933333 16.933333"
version="1.1"
id="svg5"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="icon.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="false"
showguides="true"
inkscape:zoom="14.638496"
inkscape:cx="27.940029"
inkscape:cy="29.20382"
inkscape:window-width="2560"
inkscape:window-height="1371"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1">
<inkscape:grid
type="xygrid"
id="grid4448" />
<sodipodi:guide
position="8.4666662,8.4666668"
orientation="1,0"
id="guide6706"
inkscape:locked="false" />
<sodipodi:guide
position="8.4666664,8.4666666"
orientation="0,-1"
id="guide6708"
inkscape:locked="false" />
<sodipodi:guide
position="5.0270834,11.90625"
orientation="0,-1"
id="guide6710"
inkscape:locked="false" />
<sodipodi:guide
position="5.0270834,11.90625"
orientation="1,0"
id="guide6712"
inkscape:locked="false" />
<sodipodi:guide
position="11.90625,11.90625"
orientation="1,0"
id="guide6714"
inkscape:locked="false" />
<sodipodi:guide
position="5.0270834,5.027083"
orientation="0,-1"
id="guide6716"
inkscape:locked="false" />
</sodipodi:namedview>
<defs
id="defs2" />
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.5875;stroke-dasharray:none;stroke-opacity:1"
id="rect1877"
width="15.345833"
height="15.345833"
x="0.79374999"
y="0.79374999"
ry="3.175" />
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5875;stroke-dasharray:none;stroke-opacity:1"
id="path2394"
cx="5.0270834"
cy="5.0270834"
r="1.5875" />
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5875;stroke-dasharray:none;stroke-opacity:1"
id="path2394-3"
cx="5.0270834"
cy="11.90625"
r="1.5875" />
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5875;stroke-dasharray:none;stroke-opacity:1"
id="path2394-6"
cx="8.4666662"
cy="8.4666662"
r="1.5875" />
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5875;stroke-dasharray:none;stroke-opacity:1"
id="path2394-7"
cx="11.90625"
cy="11.90625"
r="1.5875" />
<circle
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5875;stroke-dasharray:none;stroke-opacity:1"
id="path2394-5"
cx="11.90625"
cy="5.0270834"
r="1.5875" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

39
assets/main.css Normal file
View file

@ -0,0 +1,39 @@
/* App-wide styling */
body {
background-color: #efeffc;
color: #000000;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
margin: 20px;
}
main {
margin: auto;
max-width: 40rem;
justify-content: center;
display: flex;
flex-direction: column;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
tr {
border: 1px solid gray;
}
td {
border: 1px solid gray;
text-align: center;
}
.number {
width: 1rem;
animation: 1s ease-in-out 1s backwards number-scale;
}
@keyframes number-scale {
from { font-size: xx-large; }
to { font-size: initial; }
}

149
assets/snow.css Normal file
View file

@ -0,0 +1,149 @@
/* https://pajasevi.github.io/CSSnowflakes/ */
.snowflake {
color: #fff;
font-size: 1em;
font-family: Arial, sans-serif;
text-shadow: 0 0 5px #000;
}
.snowflake,
.snowflake .inner {
animation-iteration-count: infinite;
animation-play-state: running
}
@keyframes snowflakes-fall {
0% {
transform: translateY(0)
}
100% {
transform: translateY(110vh)
}
}
@keyframes snowflakes-shake {
0%,
100% {
transform: translateX(0)
}
50% {
transform: translateX(80px)
}
}
.snowflake {
position: fixed;
top: -10%;
z-index: 9999;
-webkit-user-select: none;
user-select: none;
cursor: default;
animation-name: snowflakes-shake;
animation-duration: 3s;
animation-timing-function: ease-in-out
}
.snowflake .inner {
animation-duration: 10s;
animation-name: snowflakes-fall;
animation-timing-function: linear
}
.snowflake:nth-of-type(0) {
left: 1%;
animation-delay: 0s
}
.snowflake:nth-of-type(0) .inner {
animation-delay: 0s
}
.snowflake:first-of-type {
left: 10%;
animation-delay: 1s
}
.snowflake:first-of-type .inner,
.snowflake:nth-of-type(8) .inner {
animation-delay: 1s
}
.snowflake:nth-of-type(2) {
left: 20%;
animation-delay: .5s
}
.snowflake:nth-of-type(2) .inner,
.snowflake:nth-of-type(6) .inner {
animation-delay: 6s
}
.snowflake:nth-of-type(3) {
left: 30%;
animation-delay: 2s
}
.snowflake:nth-of-type(11) .inner,
.snowflake:nth-of-type(3) .inner {
animation-delay: 4s
}
.snowflake:nth-of-type(4) {
left: 40%;
animation-delay: 2s
}
.snowflake:nth-of-type(10) .inner,
.snowflake:nth-of-type(4) .inner {
animation-delay: 2s
}
.snowflake:nth-of-type(5) {
left: 50%;
animation-delay: 3s
}
.snowflake:nth-of-type(5) .inner {
animation-delay: 8s
}
.snowflake:nth-of-type(6) {
left: 60%;
animation-delay: 2s
}
.snowflake:nth-of-type(7) {
left: 70%;
animation-delay: 1s
}
.snowflake:nth-of-type(7) .inner {
animation-delay: 2.5s
}
.snowflake:nth-of-type(8) {
left: 80%;
animation-delay: 0s
}
.snowflake:nth-of-type(9) {
left: 90%;
animation-delay: 1.5s
}
.snowflake:nth-of-type(9) .inner {
animation-delay: 3s
}
.snowflake:nth-of-type(10) {
left: 25%;
animation-delay: 0s
}
.snowflake:nth-of-type(11) {
left: 65%;
animation-delay: 2.5s
}