Compare commits

..

No commits in common. "v1" and "main" have entirely different histories.
v1 ... main

19 changed files with 4131 additions and 1729 deletions

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
# Auto detect text files and perform LF normalization
* text=auto

24
.gitignore vendored Normal file
View File

@ -0,0 +1,24 @@
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*

21
LICENSE Normal file
View File

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2023 Vitor Antoni
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

47
README.md Normal file
View File

@ -0,0 +1,47 @@
# Linktree Template
### Presentation
Hi there. How are you? Hope you're fine. 😁
In this repository, I would like to make available a website template for people who wants to share your's most important links in any social media. It's very customizable, so you are able to make any changes that you wants.
If necessary, feel free for ask or suggest me about anything. Intend to monitor this repository every day.
## 🎯 Website demo
![Website Demo](https://github.com/vitor-antoni/linktree-template/blob/main/assets/gif-readme/gif-readme.gif)
## 💻 Somethings you can do
The `index.html` can imports two differents snowfall effects, but you must choose between one of these.
> Don't use both at the same time, it might seem a little strange.
If you want to keep default effect, don't change the lines where are this code:
```
<!-- Snowfall Background Animation -->
<section class="animated-background">
<div id="stars1"></div>
<div id="stars2"></div>
<div id="stars3"></div>
</section>
<!-- End of Snowfall Background Animation -->
```
But, if you want, comment this code above. After commenting the code above, go to the end of `index.html`, you may see a code code like that:
```
<!--
A different snowfall
<script src="snowfall.js"></script>
-->
```
Uncomment this code and press `ctrl+s` for see the updates in your website.
## 📑 Additional Information
This project was developed to contribute to the *open source* movement. Therefore, it doesn't have any complex code here.
I liked this project so much that I used it to develop a website for myself. You can see it [clicking here](https://links.vitor-antoni.com.br).
Furthermore, I must to give the credit to these people, that I got some pieces of code from their own projects to develop this.
[©️ johnggli](https://github.com/johnggli/linktree) <br>
[©️ SamirPaul1](https://github.com/SamirPaul1/links)
In case you are interested to follow or conected with me on LinkedIn, you can do it in this link: [LinkedIn](linkedin.com/in/vitor-silva-de-antoni/)

File diff suppressed because it is too large Load Diff

1496
assets/css/style.css Normal file

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 357 B

After

Width:  |  Height:  |  Size: 357 B

View File

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" width="800" height="480" viewBox="0 0 800 480"> <svg xmlns="http://www.w3.org/2000/svg" width="800" height="480" viewBox="0 0 800 480">
<g fill-rule="evenodd"> <g fill-rule="evenodd">
<rect width="800" height="120" fill="#fef433"/> <rect width="800" height="120" fill="#fef433"/>
<rect width="800" height="120" y="120" fill="#ffffff"/> <rect width="800" height="120" y="120" fill="#ffffff"/>
<rect width="800" height="120" y="240" fill="#9a59cf"/> <rect width="800" height="120" y="240" fill="#9a59cf"/>
<rect width="800" height="120" y="360" fill="#000000"/> <rect width="800" height="120" y="360" fill="#000000"/>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 422 B

After

Width:  |  Height:  |  Size: 414 B

BIN
assets/images/facebook.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
assets/images/instagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg enable-background="new 0 0 419.53 297.64" height="297.64px" version="1.1" viewBox="0 0 419.53 297.64" width="419.53px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"> <svg enable-background="new 0 0 419.53 297.64" height="297.64px" version="1.1" viewBox="0 0 419.53 297.64" width="419.53px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
<switch> <switch>
<g extraneous="self"> <g extraneous="self">
<g id="Ebene_1"> <g id="Ebene_1">
<rect fill="#4AAAE0" height="297.638" width="419.528" x="0.001" y="-0.569"/> <rect fill="#4AAAE0" height="297.638" width="419.528" x="0.001" y="-0.569"/>
</g> </g>
<g id="Ebene_2"> <g id="Ebene_2">
<rect fill="#FED905" height="198.425" width="419.528" x="0.002" y="0"/> <rect fill="#FED905" height="198.425" width="419.528" x="0.002" y="0"/>
</g> </g>
<g id="Ebene_3"> <g id="Ebene_3">
<rect fill="#E5318A" height="99.213" width="419.527"/> <rect fill="#E5318A" height="99.213" width="419.527"/>
</g> </g>
</g> </g>
</switch> </switch>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 816 B

After

Width:  |  Height:  |  Size: 797 B

View File

Before

Width:  |  Height:  |  Size: 7.3 MiB

After

Width:  |  Height:  |  Size: 7.3 MiB

View File

@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" id="Ebene_1" data-name="Ebene 1" viewBox="0 0 419.53 297.64"><defs><style>.cls-1{fill:#ee3124;}.cls-2{fill:#f57f29;}.cls-3{fill:#fff000;}.cls-4{fill:#58b947;}.cls-5{fill:#0054a6;}.cls-6{fill:#9f248f;}.cls-7{fill:#603917;}.cls-8{fill:#7cc0ea;}.cls-9{fill:#f498c0;}.cls-10{fill:#fff;}</style></defs><rect class="cls-1" x="-44.5" y="0.02" width="468.17" height="49.36"/><rect class="cls-2" x="-44.5" y="49.38" width="468.17" height="49.89"/><rect class="cls-3" x="-44.5" y="99.27" width="468.17" height="49.89"/><rect class="cls-4" x="-44.5" y="149.16" width="468.17" height="49.89"/><rect class="cls-5" x="-44.5" y="199.05" width="468.17" height="49.89"/><rect class="cls-6" x="-44.5" y="248.94" width="468.17" height="48.76"/><polygon points="-123.67 -190.44 -462.99 148.88 -126.49 488.08 212.83 148.76 -123.67 -190.44"/><polygon class="cls-7" points="179.93 148.76 -123.75 -157.63 -432.88 148.8 -126.49 455.18 179.93 148.76"/><polygon class="cls-8" points="147.04 148.76 -123.58 -124.55 -399.8 148.97 -126.49 422.29 147.04 148.76"/><polygon class="cls-9" points="116.84 148.76 -123.92 -92 -364.55 148.63 -126.49 389.39 116.84 148.76"/><polygon class="cls-10" points="83.94 148.76 -123.74 -58.93 -331.48 148.81 -126.49 356.49 83.94 148.76"/></svg> <svg xmlns="http://www.w3.org/2000/svg" id="Ebene_1" data-name="Ebene 1" viewBox="0 0 419.53 297.64"><defs><style>.cls-1{fill:#ee3124;}.cls-2{fill:#f57f29;}.cls-3{fill:#fff000;}.cls-4{fill:#58b947;}.cls-5{fill:#0054a6;}.cls-6{fill:#9f248f;}.cls-7{fill:#603917;}.cls-8{fill:#7cc0ea;}.cls-9{fill:#f498c0;}.cls-10{fill:#fff;}</style></defs><rect class="cls-1" x="-44.5" y="0.02" width="468.17" height="49.36"/><rect class="cls-2" x="-44.5" y="49.38" width="468.17" height="49.89"/><rect class="cls-3" x="-44.5" y="99.27" width="468.17" height="49.89"/><rect class="cls-4" x="-44.5" y="149.16" width="468.17" height="49.89"/><rect class="cls-5" x="-44.5" y="199.05" width="468.17" height="49.89"/><rect class="cls-6" x="-44.5" y="248.94" width="468.17" height="48.76"/><polygon points="-123.67 -190.44 -462.99 148.88 -126.49 488.08 212.83 148.76 -123.67 -190.44"/><polygon class="cls-7" points="179.93 148.76 -123.75 -157.63 -432.88 148.8 -126.49 455.18 179.93 148.76"/><polygon class="cls-8" points="147.04 148.76 -123.58 -124.55 -399.8 148.97 -126.49 422.29 147.04 148.76"/><polygon class="cls-9" points="116.84 148.76 -123.92 -92 -364.55 148.63 -126.49 389.39 116.84 148.76"/><polygon class="cls-10" points="83.94 148.76 -123.74 -58.93 -331.48 148.81 -126.49 356.49 83.94 148.76"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 400"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 400">
<path fill="#5BCEFA" d="M0 0h800v400H0z"/> <path fill="#5BCEFA" d="M0 0h800v400H0z"/>
<path fill="#F5A9B8" d="M0 80h800v240H0z"/> <path fill="#F5A9B8" d="M0 80h800v240H0z"/>
<path fill="#FFF" d="M0 160h800v80H0z"/> <path fill="#FFF" d="M0 160h800v80H0z"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 242 B

904
assets/js/snowfall.js Normal file
View File

@ -0,0 +1,904 @@
(() => {
var n = {
576: (n, t, r) => {
var e;
function i(n) {
return i = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(n) {
return typeof n
} : function(n) {
return n && "function" == typeof Symbol && n.constructor === Symbol && n !== Symbol.prototype ? "symbol" : typeof n
}, i(n)
}
n = r.nmd(n),
function() {
var u = "object" == ("undefined" == typeof self ? "undefined" : i(self)) && self.self === self && self || "object" == (void 0 === r.g ? "undefined" : i(r.g)) && r.g.global === r.g && r.g || this || {},
o = u._,
a = Array.prototype,
c = Object.prototype,
f = "undefined" != typeof Symbol ? Symbol.prototype : null,
l = a.push,
s = a.slice,
p = c.toString,
h = c.hasOwnProperty,
d = Array.isArray,
v = Object.keys,
y = Object.create,
g = function() {},
m = function n(t) {
return t instanceof n ? t : this instanceof n ? void(this._wrapped = t) : new n(t)
};
t.nodeType ? u._ = m : (!n.nodeType && n.exports && (t = n.exports = m), t._ = m), m.VERSION = "1.9.1";
var b, w = function(n, t, r) {
if (void 0 === t) return n;
switch (null == r ? 3 : r) {
case 1:
return function(r) {
return n.call(t, r)
};
case 3:
return function(r, e, i) {
return n.call(t, r, e, i)
};
case 4:
return function(r, e, i, u) {
return n.call(t, r, e, i, u)
}
}
return function() {
return n.apply(t, arguments)
}
},
j = function(n, t, r) {
return m.iteratee !== b ? m.iteratee(n, t) : null == n ? m.identity : m.isFunction(n) ? w(n, t, r) : m.isObject(n) && !m.isArray(n) ? m.matcher(n) : m.property(n)
};
m.iteratee = b = function(n, t) {
return j(n, t, 1 / 0)
};
var x = function(n, t) {
return t = null == t ? n.length - 1 : +t,
function() {
for (var r = Math.max(arguments.length - t, 0), e = Array(r), i = 0; i < r; i++) e[i] = arguments[i + t];
switch (t) {
case 0:
return n.call(this, e);
case 1:
return n.call(this, arguments[0], e);
case 2:
return n.call(this, arguments[0], arguments[1], e)
}
var u = Array(t + 1);
for (i = 0; i < t; i++) u[i] = arguments[i];
return u[t] = e, n.apply(this, u)
}
},
O = function(n) {
if (!m.isObject(n)) return {};
if (y) return y(n);
g.prototype = n;
var t = new g;
return g.prototype = null, t
},
A = function(n) {
return function(t) {
return null == t ? void 0 : t[n]
}
},
_ = function(n, t) {
return null != n && h.call(n, t)
},
S = function(n, t) {
for (var r = t.length, e = 0; e < r; e++) {
if (null == n) return;
n = n[t[e]]
}
return r ? n : void 0
},
k = Math.pow(2, 53) - 1,
E = A("length"),
F = function(n) {
var t = E(n);
return "number" == typeof t && t >= 0 && t <= k
};
m.each = m.forEach = function(n, t, r) {
var e, i;
if (t = w(t, r), F(n))
for (e = 0, i = n.length; e < i; e++) t(n[e], e, n);
else {
var u = m.keys(n);
for (e = 0, i = u.length; e < i; e++) t(n[u[e]], u[e], n)
}
return n
}, m.map = m.collect = function(n, t, r) {
t = j(t, r);
for (var e = !F(n) && m.keys(n), i = (e || n).length, u = Array(i), o = 0; o < i; o++) {
var a = e ? e[o] : o;
u[o] = t(n[a], a, n)
}
return u
};
var I = function(n) {
var t = function(t, r, e, i) {
var u = !F(t) && m.keys(t),
o = (u || t).length,
a = n > 0 ? 0 : o - 1;
for (i || (e = t[u ? u[a] : a], a += n); a >= 0 && a < o; a += n) {
var c = u ? u[a] : a;
e = r(e, t[c], c, t)
}
return e
};
return function(n, r, e, i) {
var u = arguments.length >= 3;
return t(n, w(r, i, 4), e, u)
}
};
m.reduce = m.foldl = m.inject = I(1), m.reduceRight = m.foldr = I(-1), m.find = m.detect = function(n, t, r) {
var e = (F(n) ? m.findIndex : m.findKey)(n, t, r);
if (void 0 !== e && -1 !== e) return n[e]
}, m.filter = m.select = function(n, t, r) {
var e = [];
return t = j(t, r), m.each(n, (function(n, r, i) {
t(n, r, i) && e.push(n)
})), e
}, m.reject = function(n, t, r) {
return m.filter(n, m.negate(j(t)), r)
}, m.every = m.all = function(n, t, r) {
t = j(t, r);
for (var e = !F(n) && m.keys(n), i = (e || n).length, u = 0; u < i; u++) {
var o = e ? e[u] : u;
if (!t(n[o], o, n)) return !1
}
return !0
}, m.some = m.any = function(n, t, r) {
t = j(t, r);
for (var e = !F(n) && m.keys(n), i = (e || n).length, u = 0; u < i; u++) {
var o = e ? e[u] : u;
if (t(n[o], o, n)) return !0
}
return !1
}, m.contains = m.includes = m.include = function(n, t, r, e) {
return F(n) || (n = m.values(n)), ("number" != typeof r || e) && (r = 0), m.indexOf(n, t, r) >= 0
}, m.invoke = x((function(n, t, r) {
var e, i;
return m.isFunction(t) ? i = t : m.isArray(t) && (e = t.slice(0, -1), t = t[t.length - 1]), m.map(n, (function(n) {
var u = i;
if (!u) {
if (e && e.length && (n = S(n, e)), null == n) return;
u = n[t]
}
return null == u ? u : u.apply(n, r)
}))
})), m.pluck = function(n, t) {
return m.map(n, m.property(t))
}, m.where = function(n, t) {
return m.filter(n, m.matcher(t))
}, m.findWhere = function(n, t) {
return m.find(n, m.matcher(t))
}, m.max = function(n, t, r) {
var e, u, o = -1 / 0,
a = -1 / 0;
if (null == t || "number" == typeof t && "object" != i(n[0]) && null != n)
for (var c = 0, f = (n = F(n) ? n : m.values(n)).length; c < f; c++) null != (e = n[c]) && e > o && (o = e);
else t = j(t, r), m.each(n, (function(n, r, e) {
((u = t(n, r, e)) > a || u === -1 / 0 && o === -1 / 0) && (o = n, a = u)
}));
return o
}, m.min = function(n, t, r) {
var e, u, o = 1 / 0,
a = 1 / 0;
if (null == t || "number" == typeof t && "object" != i(n[0]) && null != n)
for (var c = 0, f = (n = F(n) ? n : m.values(n)).length; c < f; c++) null != (e = n[c]) && e < o && (o = e);
else t = j(t, r), m.each(n, (function(n, r, e) {
((u = t(n, r, e)) < a || u === 1 / 0 && o === 1 / 0) && (o = n, a = u)
}));
return o
}, m.shuffle = function(n) {
return m.sample(n, 1 / 0)
}, m.sample = function(n, t, r) {
if (null == t || r) return F(n) || (n = m.values(n)), n[m.random(n.length - 1)];
var e = F(n) ? m.clone(n) : m.values(n),
i = E(e);
t = Math.max(Math.min(t, i), 0);
for (var u = i - 1, o = 0; o < t; o++) {
var a = m.random(o, u),
c = e[o];
e[o] = e[a], e[a] = c
}
return e.slice(0, t)
}, m.sortBy = function(n, t, r) {
var e = 0;
return t = j(t, r), m.pluck(m.map(n, (function(n, r, i) {
return {
value: n,
index: e++,
criteria: t(n, r, i)
}
})).sort((function(n, t) {
var r = n.criteria,
e = t.criteria;
if (r !== e) {
if (r > e || void 0 === r) return 1;
if (r < e || void 0 === e) return -1
}
return n.index - t.index
})), "value")
};
var M = function(n, t) {
return function(r, e, i) {
var u = t ? [
[],
[]
] : {};
return e = j(e, i), m.each(r, (function(t, i) {
var o = e(t, i, r);
n(u, t, o)
})), u
}
};
m.groupBy = M((function(n, t, r) {
_(n, r) ? n[r].push(t) : n[r] = [t]
})), m.indexBy = M((function(n, t, r) {
n[r] = t
})), m.countBy = M((function(n, t, r) {
_(n, r) ? n[r]++ : n[r] = 1
}));
var N = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;
m.toArray = function(n) {
return n ? m.isArray(n) ? s.call(n) : m.isString(n) ? n.match(N) : F(n) ? m.map(n, m.identity) : m.values(n) : []
}, m.size = function(n) {
return null == n ? 0 : F(n) ? n.length : m.keys(n).length
}, m.partition = M((function(n, t, r) {
n[r ? 0 : 1].push(t)
}), !0), m.first = m.head = m.take = function(n, t, r) {
return null == n || n.length < 1 ? null == t ? void 0 : [] : null == t || r ? n[0] : m.initial(n, n.length - t)
}, m.initial = function(n, t, r) {
return s.call(n, 0, Math.max(0, n.length - (null == t || r ? 1 : t)))
}, m.last = function(n, t, r) {
return null == n || n.length < 1 ? null == t ? void 0 : [] : null == t || r ? n[n.length - 1] : m.rest(n, Math.max(0, n.length - t))
}, m.rest = m.tail = m.drop = function(n, t, r) {
return s.call(n, null == t || r ? 1 : t)
}, m.compact = function(n) {
return m.filter(n, Boolean)
};
var P = function n(t, r, e, i) {
for (var u = (i = i || []).length, o = 0, a = E(t); o < a; o++) {
var c = t[o];
if (F(c) && (m.isArray(c) || m.isArguments(c)))
if (r)
for (var f = 0, l = c.length; f < l;) i[u++] = c[f++];
else n(c, r, e, i), u = i.length;
else e || (i[u++] = c)
}
return i
};
m.flatten = function(n, t) {
return P(n, t, !1)
}, m.without = x((function(n, t) {
return m.difference(n, t)
})), m.uniq = m.unique = function(n, t, r, e) {
m.isBoolean(t) || (e = r, r = t, t = !1), null != r && (r = j(r, e));
for (var i = [], u = [], o = 0, a = E(n); o < a; o++) {
var c = n[o],
f = r ? r(c, o, n) : c;
t && !r ? (o && u === f || i.push(c), u = f) : r ? m.contains(u, f) || (u.push(f), i.push(c)) : m.contains(i, c) || i.push(c)
}
return i
}, m.union = x((function(n) {
return m.uniq(P(n, !0, !0))
})), m.intersection = function(n) {
for (var t = [], r = arguments.length, e = 0, i = E(n); e < i; e++) {
var u = n[e];
if (!m.contains(t, u)) {
var o = void 0;
for (o = 1; o < r && m.contains(arguments[o], u); o++);
o === r && t.push(u)
}
}
return t
}, m.difference = x((function(n, t) {
return t = P(t, !0, !0), m.filter(n, (function(n) {
return !m.contains(t, n)
}))
})), m.unzip = function(n) {
for (var t = n && m.max(n, E).length || 0, r = Array(t), e = 0; e < t; e++) r[e] = m.pluck(n, e);
return r
}, m.zip = x(m.unzip), m.object = function(n, t) {
for (var r = {}, e = 0, i = E(n); e < i; e++) t ? r[n[e]] = t[e] : r[n[e][0]] = n[e][1];
return r
};
var R = function(n) {
return function(t, r, e) {
r = j(r, e);
for (var i = E(t), u = n > 0 ? 0 : i - 1; u >= 0 && u < i; u += n)
if (r(t[u], u, t)) return u;
return -1
}
};
m.findIndex = R(1), m.findLastIndex = R(-1), m.sortedIndex = function(n, t, r, e) {
for (var i = (r = j(r, e, 1))(t), u = 0, o = E(n); u < o;) {
var a = Math.floor((u + o) / 2);
r(n[a]) < i ? u = a + 1 : o = a
}
return u
};
var T = function(n, t, r) {
return function(e, i, u) {
var o = 0,
a = E(e);
if ("number" == typeof u) n > 0 ? o = u >= 0 ? u : Math.max(u + a, o) : a = u >= 0 ? Math.min(u + 1, a) : u + a + 1;
else if (r && u && a) return e[u = r(e, i)] === i ? u : -1;
if (i != i) return (u = t(s.call(e, o, a), m.isNaN)) >= 0 ? u + o : -1;
for (u = n > 0 ? o : a - 1; u >= 0 && u < a; u += n)
if (e[u] === i) return u;
return -1
}
};
m.indexOf = T(1, m.findIndex, m.sortedIndex), m.lastIndexOf = T(-1, m.findLastIndex), m.range = function(n, t, r) {
null == t && (t = n || 0, n = 0), r || (r = t < n ? -1 : 1);
for (var e = Math.max(Math.ceil((t - n) / r), 0), i = Array(e), u = 0; u < e; u++, n += r) i[u] = n;
return i
}, m.chunk = function(n, t) {
if (null == t || t < 1) return [];
for (var r = [], e = 0, i = n.length; e < i;) r.push(s.call(n, e, e += t));
return r
};
var z = function(n, t, r, e, i) {
if (!(e instanceof t)) return n.apply(r, i);
var u = O(n.prototype),
o = n.apply(u, i);
return m.isObject(o) ? o : u
};
m.bind = x((function(n, t, r) {
if (!m.isFunction(n)) throw new TypeError("Bind must be called on a function");
var e = x((function(i) {
return z(n, e, t, this, r.concat(i))
}));
return e
})), m.partial = x((function(n, t) {
var r = m.partial.placeholder;
return function e() {
for (var i = 0, u = t.length, o = Array(u), a = 0; a < u; a++) o[a] = t[a] === r ? arguments[i++] : t[a];
for (; i < arguments.length;) o.push(arguments[i++]);
return z(n, e, this, this, o)
}
})), m.partial.placeholder = m, m.bindAll = x((function(n, t) {
var r = (t = P(t, !1, !1)).length;
if (r < 1) throw new Error("bindAll must be passed function names");
for (; r--;) {
var e = t[r];
n[e] = m.bind(n[e], n)
}
})), m.memoize = function(n, t) {
var r = function r(e) {
var i = r.cache,
u = "" + (t ? t.apply(this, arguments) : e);
return _(i, u) || (i[u] = n.apply(this, arguments)), i[u]
};
return r.cache = {}, r
}, m.delay = x((function(n, t, r) {
return setTimeout((function() {
return n.apply(null, r)
}), t)
})), m.defer = m.partial(m.delay, m, 1), m.throttle = function(n, t, r) {
var e, i, u, o, a = 0;
r || (r = {});
var c = function() {
a = !1 === r.leading ? 0 : m.now(), e = null, o = n.apply(i, u), e || (i = u = null)
},
f = function() {
var f = m.now();
a || !1 !== r.leading || (a = f);
var l = t - (f - a);
return i = this, u = arguments, l <= 0 || l > t ? (e && (clearTimeout(e), e = null), a = f, o = n.apply(i, u), e || (i = u = null)) : e || !1 === r.trailing || (e = setTimeout(c, l)), o
};
return f.cancel = function() {
clearTimeout(e), a = 0, e = i = u = null
}, f
}, m.debounce = function(n, t, r) {
var e, i, u = function(t, r) {
e = null, r && (i = n.apply(t, r))
},
o = x((function(o) {
if (e && clearTimeout(e), r) {
var a = !e;
e = setTimeout(u, t), a && (i = n.apply(this, o))
} else e = m.delay(u, t, this, o);
return i
}));
return o.cancel = function() {
clearTimeout(e), e = null
}, o
}, m.wrap = function(n, t) {
return m.partial(t, n)
}, m.negate = function(n) {
return function() {
return !n.apply(this, arguments)
}
}, m.compose = function() {
var n = arguments,
t = n.length - 1;
return function() {
for (var r = t, e = n[t].apply(this, arguments); r--;) e = n[r].call(this, e);
return e
}
}, m.after = function(n, t) {
return function() {
if (--n < 1) return t.apply(this, arguments)
}
}, m.before = function(n, t) {
var r;
return function() {
return --n > 0 && (r = t.apply(this, arguments)), n <= 1 && (t = null), r
}
}, m.once = m.partial(m.before, 2), m.restArguments = x;
var B = !{
toString: null
}.propertyIsEnumerable("toString"),
q = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"],
D = function(n, t) {
var r = q.length,
e = n.constructor,
i = m.isFunction(e) && e.prototype || c,
u = "constructor";
for (_(n, u) && !m.contains(t, u) && t.push(u); r--;)(u = q[r]) in n && n[u] !== i[u] && !m.contains(t, u) && t.push(u)
};
m.keys = function(n) {
if (!m.isObject(n)) return [];
if (v) return v(n);
var t = [];
for (var r in n) _(n, r) && t.push(r);
return B && D(n, t), t
}, m.allKeys = function(n) {
if (!m.isObject(n)) return [];
var t = [];
for (var r in n) t.push(r);
return B && D(n, t), t
}, m.values = function(n) {
for (var t = m.keys(n), r = t.length, e = Array(r), i = 0; i < r; i++) e[i] = n[t[i]];
return e
}, m.mapObject = function(n, t, r) {
t = j(t, r);
for (var e = m.keys(n), i = e.length, u = {}, o = 0; o < i; o++) {
var a = e[o];
u[a] = t(n[a], a, n)
}
return u
}, m.pairs = function(n) {
for (var t = m.keys(n), r = t.length, e = Array(r), i = 0; i < r; i++) e[i] = [t[i], n[t[i]]];
return e
}, m.invert = function(n) {
for (var t = {}, r = m.keys(n), e = 0, i = r.length; e < i; e++) t[n[r[e]]] = r[e];
return t
}, m.functions = m.methods = function(n) {
var t = [];
for (var r in n) m.isFunction(n[r]) && t.push(r);
return t.sort()
};
var W = function(n, t) {
return function(r) {
var e = arguments.length;
if (t && (r = Object(r)), e < 2 || null == r) return r;
for (var i = 1; i < e; i++)
for (var u = arguments[i], o = n(u), a = o.length, c = 0; c < a; c++) {
var f = o[c];
t && void 0 !== r[f] || (r[f] = u[f])
}
return r
}
};
m.extend = W(m.allKeys), m.extendOwn = m.assign = W(m.keys), m.findKey = function(n, t, r) {
t = j(t, r);
for (var e, i = m.keys(n), u = 0, o = i.length; u < o; u++)
if (t(n[e = i[u]], e, n)) return e
};
var H, K, C = function(n, t, r) {
return t in r
};
m.pick = x((function(n, t) {
var r = {},
e = t[0];
if (null == n) return r;
m.isFunction(e) ? (t.length > 1 && (e = w(e, t[1])), t = m.allKeys(n)) : (e = C, t = P(t, !1, !1), n = Object(n));
for (var i = 0, u = t.length; i < u; i++) {
var o = t[i],
a = n[o];
e(a, o, n) && (r[o] = a)
}
return r
})), m.omit = x((function(n, t) {
var r, e = t[0];
return m.isFunction(e) ? (e = m.negate(e), t.length > 1 && (r = t[1])) : (t = m.map(P(t, !1, !1), String), e = function(n, r) {
return !m.contains(t, r)
}), m.pick(n, e, r)
})), m.defaults = W(m.allKeys, !0), m.create = function(n, t) {
var r = O(n);
return t && m.extendOwn(r, t), r
}, m.clone = function(n) {
return m.isObject(n) ? m.isArray(n) ? n.slice() : m.extend({}, n) : n
}, m.tap = function(n, t) {
return t(n), n
}, m.isMatch = function(n, t) {
var r = m.keys(t),
e = r.length;
if (null == n) return !e;
for (var i = Object(n), u = 0; u < e; u++) {
var o = r[u];
if (t[o] !== i[o] || !(o in i)) return !1
}
return !0
}, H = function(n, t, r, e) {
if (n === t) return 0 !== n || 1 / n == 1 / t;
if (null == n || null == t) return !1;
if (n != n) return t != t;
var u = i(n);
return ("function" === u || "object" === u || "object" == i(t)) && K(n, t, r, e)
}, K = function(n, t, r, e) {
n instanceof m && (n = n._wrapped), t instanceof m && (t = t._wrapped);
var u = p.call(n);
if (u !== p.call(t)) return !1;
switch (u) {
case "[object RegExp]":
case "[object String]":
return "" + n == "" + t;
case "[object Number]":
return +n != +n ? +t != +t : 0 == +n ? 1 / +n == 1 / t : +n == +t;
case "[object Date]":
case "[object Boolean]":
return +n == +t;
case "[object Symbol]":
return f.valueOf.call(n) === f.valueOf.call(t)
}
var o = "[object Array]" === u;
if (!o) {
if ("object" != i(n) || "object" != i(t)) return !1;
var a = n.constructor,
c = t.constructor;
if (a !== c && !(m.isFunction(a) && a instanceof a && m.isFunction(c) && c instanceof c) && "constructor" in n && "constructor" in t) return !1
}
e = e || [];
for (var l = (r = r || []).length; l--;)
if (r[l] === n) return e[l] === t;
if (r.push(n), e.push(t), o) {
if ((l = n.length) !== t.length) return !1;
for (; l--;)
if (!H(n[l], t[l], r, e)) return !1
} else {
var s, h = m.keys(n);
if (l = h.length, m.keys(t).length !== l) return !1;
for (; l--;)
if (s = h[l], !_(t, s) || !H(n[s], t[s], r, e)) return !1
}
return r.pop(), e.pop(), !0
}, m.isEqual = function(n, t) {
return H(n, t)
}, m.isEmpty = function(n) {
return null == n || (F(n) && (m.isArray(n) || m.isString(n) || m.isArguments(n)) ? 0 === n.length : 0 === m.keys(n).length)
}, m.isElement = function(n) {
return !(!n || 1 !== n.nodeType)
}, m.isArray = d || function(n) {
return "[object Array]" === p.call(n)
}, m.isObject = function(n) {
var t = i(n);
return "function" === t || "object" === t && !!n
}, m.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error", "Symbol", "Map", "WeakMap", "Set", "WeakSet"], (function(n) {
m["is" + n] = function(t) {
return p.call(t) === "[object " + n + "]"
}
})), m.isArguments(arguments) || (m.isArguments = function(n) {
return _(n, "callee")
});
var L = u.document && u.document.childNodes;
"object" != ("undefined" == typeof Int8Array ? "undefined" : i(Int8Array)) && "function" != typeof L && (m.isFunction = function(n) {
return "function" == typeof n || !1
}), m.isFinite = function(n) {
return !m.isSymbol(n) && isFinite(n) && !isNaN(parseFloat(n))
}, m.isNaN = function(n) {
return m.isNumber(n) && isNaN(n)
}, m.isBoolean = function(n) {
return !0 === n || !1 === n || "[object Boolean]" === p.call(n)
}, m.isNull = function(n) {
return null === n
}, m.isUndefined = function(n) {
return void 0 === n
}, m.has = function(n, t) {
if (!m.isArray(t)) return _(n, t);
for (var r = t.length, e = 0; e < r; e++) {
var i = t[e];
if (null == n || !h.call(n, i)) return !1;
n = n[i]
}
return !!r
}, m.noConflict = function() {
return u._ = o, this
}, m.identity = function(n) {
return n
}, m.constant = function(n) {
return function() {
return n
}
}, m.noop = function() {}, m.property = function(n) {
return m.isArray(n) ? function(t) {
return S(t, n)
} : A(n)
}, m.propertyOf = function(n) {
return null == n ? function() {} : function(t) {
return m.isArray(t) ? S(n, t) : n[t]
}
}, m.matcher = m.matches = function(n) {
return n = m.extendOwn({}, n),
function(t) {
return m.isMatch(t, n)
}
}, m.times = function(n, t, r) {
var e = Array(Math.max(0, n));
t = w(t, r, 1);
for (var i = 0; i < n; i++) e[i] = t(i);
return e
}, m.random = function(n, t) {
return null == t && (t = n, n = 0), n + Math.floor(Math.random() * (t - n + 1))
}, m.now = Date.now || function() {
return (new Date).getTime()
};
var U = {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"`": "&#x60;"
},
$ = m.invert(U),
J = function(n) {
var t = function(t) {
return n[t]
},
r = "(?:" + m.keys(n).join("|") + ")",
e = RegExp(r),
i = RegExp(r, "g");
return function(n) {
return n = null == n ? "" : "" + n, e.test(n) ? n.replace(i, t) : n
}
};
m.escape = J(U), m.unescape = J($), m.result = function(n, t, r) {
m.isArray(t) || (t = [t]);
var e = t.length;
if (!e) return m.isFunction(r) ? r.call(n) : r;
for (var i = 0; i < e; i++) {
var u = null == n ? void 0 : n[t[i]];
void 0 === u && (u = r, i = e), n = m.isFunction(u) ? u.call(n) : u
}
return n
};
var V = 0;
m.uniqueId = function(n) {
var t = ++V + "";
return n ? n + t : t
}, m.templateSettings = {
evaluate: /<%([\s\S]+?)%>/g,
interpolate: /<%=([\s\S]+?)%>/g,
escape: /<%-([\s\S]+?)%>/g
};
var G = /(.)^/,
Q = {
"'": "'",
"\\": "\\",
"\r": "r",
"\n": "n",
"\u2028": "u2028",
"\u2029": "u2029"
},
X = /\\|'|\r|\n|\u2028|\u2029/g,
Y = function(n) {
return "\\" + Q[n]
};
m.template = function(n, t, r) {
!t && r && (t = r), t = m.defaults({}, t, m.templateSettings);
var e, i = RegExp([(t.escape || G).source, (t.interpolate || G).source, (t.evaluate || G).source].join("|") + "|$", "g"),
u = 0,
o = "__p+='";
n.replace(i, (function(t, r, e, i, a) {
return o += n.slice(u, a).replace(X, Y), u = a + t.length, r ? o += "'+\n((__t=(" + r + "))==null?'':_.escape(__t))+\n'" : e ? o += "'+\n((__t=(" + e + "))==null?'':__t)+\n'" : i && (o += "';\n" + i + "\n__p+='"), t
})), o += "';\n", t.variable || (o = "with(obj||{}){\n" + o + "}\n"), o = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + o + "return __p;\n";
try {
e = new Function(t.variable || "obj", "_", o)
} catch (n) {
throw n.source = o, n
}
var a = function(n) {
return e.call(this, n, m)
},
c = t.variable || "obj";
return a.source = "function(" + c + "){\n" + o + "}", a
}, m.chain = function(n) {
var t = m(n);
return t._chain = !0, t
};
var Z = function(n, t) {
return n._chain ? m(t).chain() : t
};
m.mixin = function(n) {
return m.each(m.functions(n), (function(t) {
var r = m[t] = n[t];
m.prototype[t] = function() {
var n = [this._wrapped];
return l.apply(n, arguments), Z(this, r.apply(m, n))
}
})), m
}, m.mixin(m), m.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], (function(n) {
var t = a[n];
m.prototype[n] = function() {
var r = this._wrapped;
return t.apply(r, arguments), "shift" !== n && "splice" !== n || 0 !== r.length || delete r[0], Z(this, r)
}
})), m.each(["concat", "join", "slice"], (function(n) {
var t = a[n];
m.prototype[n] = function() {
return Z(this, t.apply(this._wrapped, arguments))
}
})), m.prototype.value = function() {
return this._wrapped
}, m.prototype.valueOf = m.prototype.toJSON = m.prototype.value, m.prototype.toString = function() {
return String(this._wrapped)
}, void 0 === (e = function() {
return m
}.apply(t, [])) || (n.exports = e)
}()
}
},
t = {};
function r(e) {
var i = t[e];
if (void 0 !== i) return i.exports;
var u = t[e] = {
id: e,
loaded: !1,
exports: {}
};
return n[e](u, u.exports, r), u.loaded = !0, u.exports
}
r.g = function() {
if ("object" == typeof globalThis) return globalThis;
try {
return this || new Function("return this")()
} catch (n) {
if ("object" == typeof window) return window
}
}(), r.nmd = n => (n.paths = [], n.children || (n.children = []), n), (() => {
function n(n) {
return function(n) {
if (Array.isArray(n)) return t(n)
}(n) || function(n) {
if ("undefined" != typeof Symbol && null != n[Symbol.iterator] || null != n["@@iterator"]) return Array.from(n)
}(n) || function(n, r) {
if (!n) return;
if ("string" == typeof n) return t(n, r);
var e = Object.prototype.toString.call(n).slice(8, -1);
"Object" === e && n.constructor && (e = n.constructor.name);
if ("Map" === e || "Set" === e) return Array.from(n);
if ("Arguments" === e || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)) return t(n, r)
}(n) || function() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")
}()
}
function t(n, t) {
(null == t || t > n.length) && (t = n.length);
for (var r = 0, e = new Array(t); r < t; r++) e[r] = n[r];
return e
}
function e(n, t) {
var r = Object.keys(n);
if (Object.getOwnPropertySymbols) {
var e = Object.getOwnPropertySymbols(n);
t && (e = e.filter((function(t) {
return Object.getOwnPropertyDescriptor(n, t).enumerable
}))), r.push.apply(r, e)
}
return r
}
function i(n) {
for (var t = 1; t < arguments.length; t++) {
var r = null != arguments[t] ? arguments[t] : {};
t % 2 ? e(Object(r), !0).forEach((function(t) {
u(n, t, r[t])
})) : Object.getOwnPropertyDescriptors ? Object.defineProperties(n, Object.getOwnPropertyDescriptors(r)) : e(Object(r)).forEach((function(t) {
Object.defineProperty(n, t, Object.getOwnPropertyDescriptor(r, t))
}))
}
return n
}
function u(n, t, r) {
return t in n ? Object.defineProperty(n, t, {
value: r,
enumerable: !0,
configurable: !0,
writable: !0
}) : n[t] = r, n
}
var o = r(576),
a = {
color: "orange",
radius: [.6, 5],
speed: [1, 3],
wind: [-1.5, 4]
},
c = function(t) {
var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null,
e = arguments.length > 2 ? arguments[2] : void 0,
u = i(i({}, a), e),
c = u.radius,
f = u.speed,
l = u.wind,
s = u.color,
p = {
color: s,
x: o.random(0, t.offsetWidth),
y: o.random(-t.offsetHeight, t.offsetHeight),
radius: o.random.apply(o, n(c)),
speed: o.random.apply(o, n(f)),
wind: o.random.apply(o, n(l)),
isResized: !1
},
h = t.getContext("2d"),
d = function() {
p.x = o.random(0, t.offsetWidth), p.y = o.random(-t.offsetHeight, 0)
},
v = function() {
return p.isResized = !0
},
y = function() {
h.beginPath(), h.arc(p.x, p.y, p.radius, 0, 2 * Math.PI), h.fillStyle = p.color, h.fill(), h.closePath()
},
g = r ? function() {
return r(h, p)
} : y,
m = function() {
p.y += p.speed, p.x += p.wind
},
b = function() {
p.y < t.offsetHeight || (p.isResized ? (d(), p.isResized = !1) : (p.y = 0, p.x = o.random(0, t.offsetWidth)))
},
w = function() {
m(), b()
};
return {
update: w,
resized: v,
draw: g
}
},
f = (document.getElementById("background_div"), document.querySelector("body"), document.getElementById("bg-canvas")),
l = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
! function(n, t, r) {
var e = n.getContext("2d"),
i = [],
u = function(t) {
return i.push(t(n))
},
a = function() {
e.canvas.width = n.offsetWidth, e.canvas.height = n.offsetHeight, o.forEach(i, (function(n) {
return n.resized()
}))
},
f = function t() {
e.clearRect(0, 0, n.offsetWidth, n.offsetHeight), o.forEach(i, (function(n) {
return n.draw()
})), o.forEach(i, (function(n) {
return n.update()
})), l(t)
};
o.times(t, (function() {
return u((function(n) {
return c(n, null, r)
}))
})), window.addEventListener("resize", a), f(), a()
}(f, 500, {
color: "white"
})
})()
})();

View File

@ -1,145 +0,0 @@
/*
__ __
__ __ __ /_//_/ __ __
| | / /__ ____/ /__ ___ __ _____ / _/_ _____ ___ ____ / / ___ ___ ____ _
| |/ / -_) __/ '_// _ \/ // / _ \/ _/ // / _ \/ _ `(_-</ _ \/ _ `/ // / ' \
|___/\__/_/ /_/\_\/_//_/\_,_/ .__/_/ \_,_/_//_/\_, /___/_.__/\_,_/\_,_/_/_/_/
/_/ /___/
*/
html,
body {
margin: 0;
height: 100%;
font-family: monospace;
}
html {
background-image: url('../images/background.webp');
background-color: black;
background-size: cover;
background-attachment: fixed;
}
body {
padding-top: 35px;
padding-bottom: 35px;
height: fit-content;
min-height: 100%;
}
:root {
--accentcolor: #fff;
--delay: .3s;
}
.description,
.source {
color: white;
text-align: center;
margin: 27px auto;
margin-top: 10px;
width: 90%;
max-width: 500px;
}
.separator {
font-size: 1.1rem;
font-weight: unset;
}
.separator, .source {
color: white;
text-align: center;
margin: 25px auto;
margin-top: 20px;
width: 90%;
max-width: 500px;
}
.source {
font-size: small;
margin-top: 50px;
}
.picture, .picture img {
position: relative;
width: 130px;
height: 130px;
display: block;
margin: 35px auto 20px;
border-radius: 50%;
}
.user {
color: var(--accentcolor);
font-size: x-large;
font-weight: bold;
line-height: 1.25;
display: block;
width: 100%;
text-align: center;
text-decoration: none;
}
.links, .link_list {
max-width: 675px;
width: auto;
display: block;
margin: 27px auto;
padding-inline-start: 0;
}
.link_item {
list-style: none;
}
.link {
position: relative;
background-color: rgba(0, 0, 0, 0.8);
color: var(--accentcolor);
border: solid var(--accentcolor) 2px;
border-radius: 5px;
font-size: 1rem;
text-align: center;
display: block;
margin-left: 10px;
margin-right: 10px;
margin-bottom: 10px;
padding: 10px;
text-decoration: none;
-webkit-tap-highlight-color: transparent;
}
footer a {
color: var(--accentcolor);
font-weight: bold;
text-decoration: none;
}
@media (hover: hover) {
.link:hover {
background-color: var(--accentcolor);
color: #000;
/* Fallback for older browsers */
color: rgba(0, 0, 0, 0.5);
}
}
.link:active {
background-color: var(--accentcolor);
color: #000;
/* Fallback for older browsers */
color: rgba(0, 0, 0, 0.5);
}
.flag {
width: 1em;
border-radius: 0.15em;
}
svg {
height: 1.1em;
width: auto;
}

View File

@ -1,164 +1,201 @@
<!-- <!DOCTYPE html>
__ __ <html lang="en">
__ __ __ /_//_/ __ __ <head>
| | / /__ ____/ /__ ___ __ _____ / _/_ _____ ___ ____ / / ___ ___ ____ _ <meta charset="utf-8">
| |/ / -_) __/ '_// _ \/ // / _ \/ _/ // / _ \/ _ `(_-</ _ \/ _ `/ // / ' \ <link href="assets/css/style.css" rel="stylesheet">
|___/\__/_/ /_/\_\/_//_/\_,_/ .__/_/ \_,_/_//_/\_, /___/_.__/\_,_/\_,_/_/_/_/ <link href="assets/css/sites.css" rel="stylesheet">
/_/ /___/ <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0'>
<link rel="shortcut icon" href="assets/images/jax_favicon.ico" type="image/webp">
--> <link rel="apple-touch-icon" sizes="180x180" href="images/favicon.png">
<!DOCTYPE html> <link rel="icon" href="assets/images/jax_favicon.ico" type="image/webp">
<html lang="en-US"> <title>dalfuss.link</title>
<head> <!--TEST--> <link href="https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
<meta charset="UTF-8"> <script src="https://kit.fontawesome.com/14a35c233c.js" crossorigin="anonymous"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> </head>
<meta name="description" content="YOUR DESCRIPTION HERE"> <body>
<title>Dalfuss - Verknüpfungsbaum 🌳🔗 </title> <!-- Snowfall Background Animation -->
<link rel="icon" href="./images/profile.jpg" type="image/x-icon"> <section class="animated-background">
<link rel="stylesheet" href="./css/style.css"> <div id="stars1"></div>
<!-- <div id="stars2"></div>
With sites.css you can give the button a different color <div id="stars3"></div>
--> </section>
<link rel="stylesheet" href="./css/sites.css"> <!-- End of Snowfall Background Animation -->
<!--
This script is designed to optimize the display of meta tags when sharing content on social media. By using this script, you can ensure that your content looks its best when it's shared on platforms like Mastodon, Diaspora, and Friendica (and the other pages from corpos!). The script is easy to use and can be customized to fit the specific needs of your website or social media campaign. <div class="min-h-full flex-h-center" id="background_div">
--> <div class="mt-48 page-full-wrap relative ">
<meta property="og:title" content="Sam Dalfuss - Verknüpfungsbaum 🌳🔗 "> <input type="hidden" value="creator-page" id="page-type">
<meta property="og:type" content="website"> <img class="display-image m-auto" data-src="assets/images/profilepicture.webp" src="assets/images/profilepicture.webp" alt="A digital drawing of a person (me) with long wavy hair, transitioning from blonde to pink. They have blue eyes, glasses, a beard, piercings in the nose and lip, and earrings. They are smiling slightly and wearing a black top."/>
<meta property="og:image" content="./images/socialmediacard.webp"> <h2 class="page-title page-text-color page-text-font mt-16 text-center">Sam Dalfuss</h2>
<meta property="og:url" content="https://dalfuss.link"> <p class="description">
<meta name="twitter:card" content="summary_large_image"> <script>
<meta property="og:description" content="send nudes"> var dob = new Date("08/21/1998");
<meta property="og:site_name" content="Dalfuss - Verknüpfungsbaum 🌳🔗"> //calculate month difference from current date in time
<!-- var month_diff = Date.now() - dob.getTime();
This script is designed to include the ForkAwesome icon font in your Verknüpfungsbaum. ForkAwesome is a popular icon font that includes hundreds of customizable icons for a variety of purposes.
//convert the calculated difference in date format
For Icon list see: https://forkaweso.me/Fork-Awesome/icons/ var age_dt = new Date(month_diff);
-->
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fork-awesome@1.2.0/css/fork-awesome.min.css" integrity="sha256-XoaMnoYC5TH6/+ihMEnospgm0J1PM/nioxbOUdnM8HY=" crossorigin="anonymous"> --> //extract year from date
<script src="https://kit.fontawesome.com/14a35c233c.js" crossorigin="anonymous"></script> var year = age_dt.getUTCFullYear();
</head>
<body> //now calculate the age of the user
<header aria-label="Header with profile image and description"> var age = Math.abs(year - 1970);
<div class="picture" role="img" aria-label="Profile picture">
<img src="./images/profilepicture.webp" alt="YOUR ALT TEXT"> //display the calculated age
</div> document.write(age);
<h1 class="user" tabindex="0" title="USERNAME"> </script>
Sam Dalfuss | they/them/dey/er | Heidelberg | Streamer | Gamer | "Musician" <br>
</h1> <img class="flag" src="./assets/images/pansexual.svg" /> <img class="flag" src="./assets/images/enby.svg" /> <img class="flag" src="./assets/images/trans.svg" /> <img class="flag" src="./assets/images/prog.svg" />
<p class="description"> </p>
<script> <div class="page-item-wrap relative dalfuss-net">
var dob = new Date("08/21/1998"); <div class="page-item flex-both-center absolute dalfuss-net"></div>
//calculate month difference from current date in time <a target="_blank" class="page-item-each py-10 flex-both-center dalfuss-net" href="https://dalfuss.net" data-id="261652" data-type="page_item">
var month_diff = Date.now() - dob.getTime(); <span class="item-title text-center">dalfuss.net</span>
</a>
//convert the calculated difference in date format </div>
var age_dt = new Date(month_diff); <a id="socials">
<h2 class="separator" title="Social Media / About Me">
//extract year from date Social Media / About Me
var year = age_dt.getUTCFullYear(); </h2>
</a>
//now calculate the age of the user <div class="mt-24">
var age = Math.abs(year - 1970); <div class="page-item-wrap relative mastodon">
<div class="page-item flex-both-center absolute mastodon"></div>
//display the calculated age <a target="_blank" class="page-item-each py-10 flex-both-center mastodon" href="https://dalfuss24.de/@sam" data-id="261652" data-type="page_item">
document.write(age); <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54a102.5 102.5 0 0 1 -.9-13.9c85.6 20.9 158.7 9.1 178.8 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H90.2c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"/></svg>
</script> <span class="item-title text-center">Mastodon/Fediverse</span>
| they/them/dey/er | Heidelberg | Streamer | Gamer | "Musician" <br> </a>
<img class="flag" src="./images/pansexual.svg" /> <img class="flag" src="./images/enby.svg" /> <img class="flag" src="./images/trans.svg" /> <img class="flag" src="./images/prog.svg" /> </div>
</p> <div class="page-item-wrap relative">
<div class="links link_item"> <div class="page-item flex-both-center absolute"></div>
<a class="link" href="https://dalfuss.net" target="_blank"> <a target="_blank" class="page-item-each py-10 flex-both-center twitch" href="https://jaxoff.tv" data-id="261685" data-type="page_item">
Dalfuss.net <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M391.2 103.5H352.5v109.7h38.6zM285 103H246.4V212.8H285zM120.8 0 24.3 91.4V420.6H140.1V512l96.5-91.4h77.3L487.7 256V0zM449.1 237.8l-77.2 73.1H294.6l-67.6 64v-64H140.1V36.6H449.1z"/></svg>
</a> <span class="item-title text-center">Twitch</span>
</div> </a>
</header> </div>
<main id="main" aria-label="Main content with links"> <div class="page-item-wrap relative">
<div class="link_container"> <div class="page-item flex-both-center absolute"></div>
<h2 class="separator" title="Social Media / About Me"> <a target="_blank" class="page-item-each py-10 flex-both-center instagram" href="https://dalfuss.link/insta" data-id="261685" data-type="page_item">
Social Media / About Me <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"/></svg>
</h2> <span class="item-title text-center">Instagram</span>
<ul class="link_list" aria-label="Social Media Link List"> </a>
<li class="link_item"><a class="link mastodon" rel="me" href="https://dalfuss24.de/@sam" target="_blank"><i class="fa-brands fa-mastodon" aria-hidden="true"></i> </div>
Mastodon / Fediverse <div class="page-item-wrap relative">
</a></li> <div class="page-item flex-both-center absolute"></div>
<a target="_blank" class="page-item-each py-10 flex-both-center discord" href="https://dalfuss.link/discord" data-id="261685" data-type="page_item">
<li class="link_item"><a class="link twitch" href="https://dalfuss.live" target="_blank"><i class="fa fa-twitch" aria-hidden="true"></i> <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M524.5 69.8a1.5 1.5 0 0 0 -.8-.7A485.1 485.1 0 0 0 404.1 32a1.8 1.8 0 0 0 -1.9 .9 337.5 337.5 0 0 0 -14.9 30.6 447.8 447.8 0 0 0 -134.4 0 309.5 309.5 0 0 0 -15.1-30.6 1.9 1.9 0 0 0 -1.9-.9A483.7 483.7 0 0 0 116.1 69.1a1.7 1.7 0 0 0 -.8 .7C39.1 183.7 18.2 294.7 28.4 404.4a2 2 0 0 0 .8 1.4A487.7 487.7 0 0 0 176 479.9a1.9 1.9 0 0 0 2.1-.7A348.2 348.2 0 0 0 208.1 430.4a1.9 1.9 0 0 0 -1-2.6 321.2 321.2 0 0 1 -45.9-21.9 1.9 1.9 0 0 1 -.2-3.1c3.1-2.3 6.2-4.7 9.1-7.1a1.8 1.8 0 0 1 1.9-.3c96.2 43.9 200.4 43.9 295.5 0a1.8 1.8 0 0 1 1.9 .2c2.9 2.4 6 4.9 9.1 7.2a1.9 1.9 0 0 1 -.2 3.1 301.4 301.4 0 0 1 -45.9 21.8 1.9 1.9 0 0 0 -1 2.6 391.1 391.1 0 0 0 30 48.8 1.9 1.9 0 0 0 2.1 .7A486 486 0 0 0 610.7 405.7a1.9 1.9 0 0 0 .8-1.4C623.7 277.6 590.9 167.5 524.5 69.8zM222.5 337.6c-29 0-52.8-26.6-52.8-59.2S193.1 219.1 222.5 219.1c29.7 0 53.3 26.8 52.8 59.2C275.3 311 251.9 337.6 222.5 337.6zm195.4 0c-29 0-52.8-26.6-52.8-59.2S388.4 219.1 417.9 219.1c29.7 0 53.3 26.8 52.8 59.2C470.7 311 447.5 337.6 417.9 337.6z"/></svg>
Twitch <span class="item-title text-center">Discord Server</span>
</a></li> </a>
</div>
<li class="link_item"><a class="link instagram" href="https://dalfuss.link/insta" target="_blank"><i class="fa fa-instagram" aria-hidden="true"></i> <div class="page-item-wrap relative">
Instagram <div class="page-item flex-both-center absolute"></div>
</a></li> <a target="_blank" class="page-item-each py-10 flex-both-center youtube" href="https://dalfuss.link/youtube" data-id="261685" data-type="page_item">
<svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z"/></svg>
<li class="link_item"><a class="link discord" href="https://dalfuss.link/discord" target="_blank"><i class="fa-brands fa-discord" aria-hidden="true"></i> <span class=" item-title text-center">YouTube</span>
Discord Server </a>
</a></li> </div>
<div class="page-item-wrap relative">
<li class="link_item"><a class="link youtube" href="https://dalfuss.link/youtube" target="_blank"><i class="fa fa-youtube" aria-hidden="true"></i> <div class="page-item flex-both-center absolute"></div>
YouTube <a target="_blank" class="page-item-each py-10 flex-both-center tiktok" href="https://dalfuss.link/tiktok" data-id="261685" data-type="page_item">
</a></li> <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M448 209.9a210.1 210.1 0 0 1 -122.8-39.3V349.4A162.6 162.6 0 1 1 185 188.3V278.2a74.6 74.6 0 1 0 52.2 71.2V0l88 0a121.2 121.2 0 0 0 1.9 22.2h0A122.2 122.2 0 0 0 381 102.4a121.4 121.4 0 0 0 67 20.1z"/></svg>
<span class="item-title text-center">TikTok</span>
<li class="link_item"><a class="link tiktok" href="https://dalfuss.link/titok" target="_blank"><i class="fa-brands fa-tiktok" aria-hidden="true"></i> </a>
TikTok </div>
</a></li> <div class="page-item-wrap relative">
<div class="page-item flex-both-center absolute"></div>
<li class="link_item"><a class="link anilist" href="https://dalfuss.link/anilist" target="_blank"><svg fill="currentColor" width="800px" height="800px" viewBox="0 0 24 24" role="img" xmlns="http://www.w3.org/2000/svg"><path d="M6.361 2.943 0 21.056h4.942l1.077-3.133H11.4l1.052 3.133H22.9c.71 0 1.1-.392 1.1-1.101V17.53c0-.71-.39-1.101-1.1-1.101h-6.483V4.045c0-.71-.392-1.102-1.101-1.102h-2.422c-.71 0-1.101.392-1.101 1.102v1.064l-.758-2.166zm2.324 5.948 1.688 5.018H7.144z"/></svg> <a target="_blank" class="page-item-each py-10 flex-both-center anilist" href="https://dalfuss.link/anilist" data-id="261685" data-type="page_item">
Anilist <svg class="link-each-image" fill="currentColor" width="800px" height="800px" viewBox="0 0 24 24" role="img" xmlns="http://www.w3.org/2000/svg"><path d="M6.361 2.943 0 21.056h4.942l1.077-3.133H11.4l1.052 3.133H22.9c.71 0 1.1-.392 1.1-1.101V17.53c0-.71-.39-1.101-1.1-1.101h-6.483V4.045c0-.71-.392-1.102-1.101-1.102h-2.422c-.71 0-1.101.392-1.101 1.102v1.064l-.758-2.166zm2.324 5.948 1.688 5.018H7.144z"/></svg>
</a></li> <span class="item-title text-center">Anilist</span>
</a>
<li class="link_item"><a class="link pronouns" href="https://pronouns.page/@dalfuss" target="_blank"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 650 650"><path d="M396.52 174.35c1.35-2.4.21-4.35-2.54-4.35l-48.2.03c-2.75 0-6.15 1.94-7.54 4.31l-118.1 199.77c-16.48 27.15-39.48 33.15-61.58 30.47-37.94-4.6-58.34-32.45-58.34-69.54 0-37.25 30.31-67.56 67.56-67.56h75c2.75 0 6.12-1.95 7.48-4.34l27.03-47.2c1.37-2.39.23-4.34-2.52-4.34h-107c-68.06 0-123.44 55.37-123.44 123.44 0 32.89 12.85 68.36 36.22 91.54 23.03 22.84 53.8 31.21 86.64 31.89 18.54.21 69.46-.21 93.33-42.68 26.73-47.57 136-241.44 136-241.44zM571.94 244.44c-23.03-22.84-53.8-31.21-86.64-31.89-18.54-.21-69.46.21-93.33 42.68-26.72 47.55-136 241.42-136 241.42-1.35 2.4-.21 4.35 2.54 4.35l48.2-.03c2.75 0 6.15-1.94 7.54-4.31l118.1-199.77c16.48-27.15 39.48-33.15 61.58-30.47 37.94 4.6 58.34 32.45 58.34 69.54 0 37.25-30.31 67.56-67.56 67.56h-75c-2.75 0-6.12 1.95-7.48 4.34l-27.03 47.2c-1.37 2.39-.23 4.34 2.52 4.34h107c68.06 0 123.44-55.37 123.44-123.44 0-32.87-12.85-68.34-36.22-91.52z" fill="#F8F9FA"/></svg> </div>
Pronouns.page <div class="page-item-wrap relative">
</a></li> <div class="page-item flex-both-center absolute"></div>
<a target="_blank" class="page-item-each py-10 flex-both-center pronouns" href="https://pronouns.page/@dalfuss" data-id="261685" data-type="page_item">
</ul> <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 650 650"><path d="M396.52 174.35c1.35-2.4.21-4.35-2.54-4.35l-48.2.03c-2.75 0-6.15 1.94-7.54 4.31l-118.1 199.77c-16.48 27.15-39.48 33.15-61.58 30.47-37.94-4.6-58.34-32.45-58.34-69.54 0-37.25 30.31-67.56 67.56-67.56h75c2.75 0 6.12-1.95 7.48-4.34l27.03-47.2c1.37-2.39.23-4.34-2.52-4.34h-107c-68.06 0-123.44 55.37-123.44 123.44 0 32.89 12.85 68.36 36.22 91.54 23.03 22.84 53.8 31.21 86.64 31.89 18.54.21 69.46-.21 93.33-42.68 26.73-47.57 136-241.44 136-241.44zM571.94 244.44c-23.03-22.84-53.8-31.21-86.64-31.89-18.54-.21-69.46.21-93.33 42.68-26.72 47.55-136 241.42-136 241.42-1.35 2.4-.21 4.35 2.54 4.35l48.2-.03c2.75 0 6.15-1.94 7.54-4.31l118.1-199.77c16.48-27.15 39.48-33.15 61.58-30.47 37.94 4.6 58.34 32.45 58.34 69.54 0 37.25-30.31 67.56-67.56 67.56h-75c-2.75 0-6.12 1.95-7.48 4.34l-27.03 47.2c-1.37 2.39-.23 4.34 2.52 4.34h107c68.06 0 123.44-55.37 123.44-123.44 0-32.87-12.85-68.34-36.22-91.52z"/></svg>
</div> <span class="item-title text-center">Pronouns.page</span>
<div class="link_container"> </a>
<h2 class="separator" title="Projects"> </div>
Projects <a id="stream">
</h2> <h2 class="separator" title="Stream Notifications">
<ul class="link_list" aria-label="Project Link List"> Stream Notifications
</h2>
<li class="link_item"><a class="link git" href="https://git.cyberwa.re/dalfuss" target="_blank"><i class="fa-brands fa-git-alt" aria-hidden="true"></i> </a>
Git <div class="page-item-wrap relative mastodon">
</a></li> <div class="page-item flex-both-center absolute mastodon"></div>
<a target="_blank" rel="me" class="page-item-each py-10 flex-both-center mastodon" href="https://dalfuss24.de/@live" data-id="261652" data-type="page_item">
<li class="link_item"><a class="link elftwinks" href="https://elftwinks.gay" target="_blank"><i class="fa fa-link" aria-hidden="true"></i> <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54a102.5 102.5 0 0 1 -.9-13.9c85.6 20.9 158.7 9.1 178.8 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H90.2c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"/></svg>
ElfTwinks.Gay <span class="item-title text-center">Mastodon/Fediverse</span>
</a></li> </a>
</div>
<li class="link_item"><a class="link colours" href="https://colours.dalfuss.link" target="_blank"><i class="fa fa-link" aria-hidden="true"></i> <div class="page-item-wrap relative">
colours.dalfuss.link <div class="page-item flex-both-center absolute"></div>
</a></li> <a target="_blank" class="page-item-each py-10 flex-both-center bluesky" href="https://bsky.app/profile/dalfuss.live" data-id="261685" data-type="page_item">
<svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"/></svg> <span class="item-title text-center">Bluesky</span>
<li class="link_item"><a class="link oc" href="https://oc.dalfuss.link" target="_blank"><i class="fa fa-link" aria-hidden="true"></i> </a>
OC Site </div>
</a></li> <div class="page-item-wrap relative">
<div class="page-item flex-both-center absolute"></div>
<li class="link_item"><a class="link Dave" href="https://cyber.ms/@dave" target="_blank"><i class="fa fa-link" aria-hidden="true"></i> <a target="_blank" class="page-item-each py-10 flex-both-center twitch" href="https://dalfuss.live/schedule" data-id="261685" data-type="page_item">
Dave <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M391.2 103.5H352.5v109.7h38.6zM285 103H246.4V212.8H285zM120.8 0 24.3 91.4V420.6H140.1V512l96.5-91.4h77.3L487.7 256V0zM449.1 237.8l-77.2 73.1H294.6l-67.6 64v-64H140.1V36.6H449.1z"/></svg>
</a></li> <span class="item-title text-center">Twitch Schedule</span>
</a>
</ul> </div>
</div> <a id="projects">
<h2 class="separator" title="Projects">
<div class="link_container"> Projects
<h2 class="separator" title="Contact"> </h2>
Contact </a>
</h2> <div class="page-item-wrap relative">
<ul class="link_list" aria-label="Contact Link List"> <div class="page-item flex-both-center absolute"></div>
<a target="_blank" class="page-item-each py-10 flex-both-center git" href="https://git.dalfuss.cloud/dalfuss" data-id="261685" data-type="page_item">
<li class="link_item"><a class="link matrix-org" href="https://matrix.to/#/@dalfuss:catgirl.cloud" target="_blank"> <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M439.6 236.1L244 40.5a28.9 28.9 0 0 0 -40.8 0l-40.7 40.6 51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3L240.2 199v121.9c25.3 12.5 22.3 41.9 9.1 55a34.3 34.3 0 0 1 -48.6 0c-17.6-17.6-11.1-46.9 11.3-56v-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1a28.9 28.9 0 0 0 0 40.8l195.6 195.6a28.9 28.9 0 0 0 40.8 0l194.7-194.7a28.9 28.9 0 0 0 0-40.8z"/></svg>
Matrix <span class="item-title text-center">Git</span>
</a></li> </a>
</div>
</ul> <div class="page-item-wrap relative">
</div> <div class="page-item flex-both-center absolute"></div>
</main> <a target="_blank" class="page-item-each py-10 flex-both-center elftwinks" href="https://elftwinks.gay" data-id="261685" data-type="page_item">
<footer class="source" aria-label="Footer information"> <svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>
<p>&copy; Sam Dalfuss <span class="item-title text-center">elftwinks.gay</span>
<script>document.write(new Date().getFullYear())</script> </a>
- Created with <a href="https://github.com/revengeday/verknuepfungsbaum" target="_blank">Verknüpfungsbaum 🔗🌳</a></p> </div>
</footer> <div class="page-item-wrap relative">
</body> <div class="page-item flex-both-center absolute"></div>
</html> <a target="_blank" class="page-item-each py-10 flex-both-center colours" href="https://colours.dalfuss.link" data-id="261685" data-type="page_item">
<svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>
<span class="item-title text-center">colours.dalfuss.link</span>
</a>
</div>
<div class="page-item-wrap relative">
<div class="page-item flex-both-center absolute"></div>
<a target="_blank" class="page-item-each py-10 flex-both-center oc" href="https://oc.dalfuss.link" data-id="261685" data-type="page_item">
<svg class="link-each-image" fill="currentColor" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d="M579.8 267.7c56.5-56.5 56.5-148 0-204.5c-50-50-128.8-56.5-186.3-15.4l-1.6 1.1c-14.4 10.3-17.7 30.3-7.4 44.6s30.3 17.7 44.6 7.4l1.6-1.1c32.1-22.9 76-19.3 103.8 8.6c31.5 31.5 31.5 82.5 0 114L422.3 334.8c-31.5 31.5-82.5 31.5-114 0c-27.9-27.9-31.5-71.8-8.6-103.8l1.1-1.6c10.3-14.4 6.9-34.4-7.4-44.6s-34.4-6.9-44.6 7.4l-1.1 1.6C206.5 251.2 213 330 263 380c56.5 56.5 148 56.5 204.5 0L579.8 267.7zM60.2 244.3c-56.5 56.5-56.5 148 0 204.5c50 50 128.8 56.5 186.3 15.4l1.6-1.1c14.4-10.3 17.7-30.3 7.4-44.6s-30.3-17.7-44.6-7.4l-1.6 1.1c-32.1 22.9-76 19.3-103.8-8.6C74 372 74 321 105.5 289.5L217.7 177.2c31.5-31.5 82.5-31.5 114 0c27.9 27.9 31.5 71.8 8.6 103.9l-1.1 1.6c-10.3 14.4-6.9 34.4 7.4 44.6s34.4 6.9 44.6-7.4l1.1-1.6C433.5 260.8 427 182 377 132c-56.5-56.5-148-56.5-204.5 0L60.2 244.3z"/></svg>
<span class="item-title text-center">OC Site</span>
</a>
</div>
<a id="contact">
<h2 class="separator" title="Contact">
Contact
</h2>
</a>
<div class="page-item-wrap relative">
<div class="page-item flex-both-center absolute"></div>
<a target="_blank" class="page-item-each py-10 flex-both-center matrix-org" href="https://matrix.to/#/@dalfuss:catgirl.cloud" data-id="261685" data-type="page_item">
<span class="item-title text-center">Matrix</span>
</a>
</div>
</div>
</div>
</div>
<footer class="source" aria-label="Footer information">
<p>&copy; Sam Dalfuss
<script>document.write(new Date().getFullYear())</script>
</p>
</footer>
</body>
<!--
A different snowfall
<script src="assets/js/snowfall.js"></script>
-->
</html>