diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..35d6175 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module Homelab/Errorpages + +go 1.19 diff --git a/main.go b/main.go new file mode 100644 index 0000000..e029191 --- /dev/null +++ b/main.go @@ -0,0 +1,17 @@ +package main + +import ( + "fmt" + "log" + "net/http" +) + +func handler(w http.ResponseWriter, r *http.Request) { + // url path: r.URL.Path[1:] + +} + +func main() { + http.HandleFunc("/", handler) + log.Fatal(http.ListenAndServe("127.0.0.1:8000", nil)) +} diff --git a/web/master.css b/web/master.css new file mode 100644 index 0000000..4f00211 --- /dev/null +++ b/web/master.css @@ -0,0 +1,166 @@ +@font-face { + font-family: Mont; + src: url("res/font/Mont-Heavy.otf"); +} + +html, body, * { + margin: 0; + padding: 0; + + color: #f2f3f4; + background-color: #333333; + + font-family: Mont, sans-serif; + text-align: center; +} + +h1 { + position: relative; + top: -1rem; + + background: transparent; + + font-weight: normal; + font-size: 3rem; + line-height: 3rem; +} + +h2 { + position: relative; + top: -1rem; + + font-weight: bold; + font-size: 9rem; + line-height: 9rem; + + color: transparent; + + opacity: 1; + background: repeating-linear-gradient(45deg, #f2f3f4, #f2f3f4 8px, rgba(242, 244, 245, 0.7) 8px, rgba(242, 244, 245, 0.7) 16px); + background-clip: text; + -webkit-background-clip: text; + background-size: 200% 200%; + animation: barberpole 50s linear infinite; +} + +@keyframes barberpole { + 100% { + background-position: 100% 100%; + } +} + +h3 { + position: relative; + top: -1rem; + + font-family: sans-serif; + font-weight: normal; + font-size: 1.5rem; + padding-bottom: 1.5rem; + + width: calc(min(80%, 40rem)); + margin-left: auto; + margin-right: auto; +} + +#mountain { + width: 100%; + max-height: 30rem; + background-color: #4682b4; + + border-top: 2rem solid #4682b4; +} + +#rocks { + width: 100%; + height: 0.5rem; + position: relative; + top: -0.75rem; + + background: transparent url("res/svg/rocks.svg") repeat-x; + background-size: contain; +} + +.subtle { + padding-top: 2rem; + font-weight: normal; + font-family: sans-serif; + opacity: 0.5; +} + +hr { + margin-top: 2.5rem; + width: calc(min(20rem, 80%)); + margin-right: auto; + margin-left: auto; + opacity: 0.5; +} + +a { + text-decoration: none; + background: #f2f3f4; + color: #333333; + border-radius: 0.5rem; + padding: 0.75rem; +} + +div { + line-height: 1.5rem; +} + +#cloud1 { + position: absolute; + top: 1rem; + width: 100%; + height: 4rem; + + background: transparent url("res/svg/cloud.svg") no-repeat center; + background-size: contain; + opacity: 0.5; + background-position-x: -8rem; + animation: cloud-motion-1 30s linear infinite; +} + +@keyframes cloud-motion-1 { + 100% { + background-position: calc(100% + 8rem) 0; + } +} + +#cloud2 { + position: absolute; + top: 10rem; + width: 100%; + height: 4rem; + + background: transparent url("res/svg/cloud.svg") no-repeat center; + background-size: contain; + opacity: 0.5; + background-position-x: -8rem; + animation: cloud-motion-1 30s 15s linear infinite; +} + +@keyframes cloud-motion-2 { + 100% { + background-position: calc(100% + 8rem) 0; + } +} + +#cloud3 { + top: 4rem; + position: absolute; + width: 100%; + height: 4rem; + + background: transparent url("res/svg/cloud.svg") no-repeat center; + background-size: contain; + opacity: 0.5; + background-position-x: -8rem; + animation: cloud-motion-1 30s 20s linear infinite; +} + +@keyframes cloud-motion-3 { + 100% { + background-position: calc(100% + 8rem) 0; + } +} diff --git a/web/page.html b/web/page.html new file mode 100644 index 0000000..2f3ff34 --- /dev/null +++ b/web/page.html @@ -0,0 +1,30 @@ + + + + + + + Montehaselino - Automatic Status Response + + + +
+
+
+
+ +
+

ERROR

+

404

+

Page ot found

+ Go Back +
+
+ This is an automatically generated error response page.
+ Please contact administration if you feel this shouldn't be here. +
+
+ + +