Compare commits

...

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

26 changed files with 4103 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

1497
assets/css/style.css Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 MiB

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

BIN
assets/images/credly.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -1,9 +1,9 @@
<?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">
<g fill-rule="evenodd">
<rect width="800" height="120" fill="#fef433"/>
<rect width="800" height="120" y="120" fill="#ffffff"/>
<rect width="800" height="120" y="240" fill="#9a59cf"/>
<rect width="800" height="120" y="360" fill="#000000"/>
</g>
<?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">
<g fill-rule="evenodd">
<rect width="800" height="120" fill="#fef433"/>
<rect width="800" height="120" y="120" fill="#ffffff"/>
<rect width="800" height="120" y="240" fill="#9a59cf"/>
<rect width="800" height="120" y="360" fill="#000000"/>
</g>
</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/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
assets/images/github.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 882 B

BIN
assets/images/instagram.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
assets/images/linkedin.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
assets/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 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">
<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>
<g extraneous="self">
<g id="Ebene_1">
<rect fill="#4AAAE0" height="297.638" width="419.528" x="0.001" y="-0.569"/>
</g>
<g id="Ebene_2">
<rect fill="#FED905" height="198.425" width="419.528" x="0.002" y="0"/>
</g>
<g id="Ebene_3">
<rect fill="#E5318A" height="99.213" width="419.527"/>
</g>
</g>
</switch>
<?xml version="1.0" encoding="UTF-8"?>
<!-- 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">
<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>
<g extraneous="self">
<g id="Ebene_1">
<rect fill="#4AAAE0" height="297.638" width="419.528" x="0.001" y="-0.569"/>
</g>
<g id="Ebene_2">
<rect fill="#FED905" height="198.425" width="419.528" x="0.002" y="0"/>
</g>
<g id="Ebene_3">
<rect fill="#E5318A" height="99.213" width="419.527"/>
</g>
</g>
</switch>
</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>

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
assets/images/replit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 400">
<path fill="#5BCEFA" d="M0 0h800v400H0z"/>
<path fill="#F5A9B8" d="M0 80h800v240H0z"/>
<path fill="#FFF" d="M0 160h800v80H0z"/>
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 400">
<path fill="#5BCEFA" d="M0 0h800v400H0z"/>
<path fill="#F5A9B8" d="M0 80h800v240H0z"/>
<path fill="#FFF" d="M0 160h800v80H0z"/>
</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,177 @@
<!--
__ __
__ __ __ /_//_/ __ __
| | / /__ ____/ /__ ___ __ _____ / _/_ _____ ___ ____ / / ___ ___ ____ _
| |/ / -_) __/ '_// _ \/ // / _ \/ _/ // / _ \/ _ `(_-</ _ \/ _ `/ // / ' \
|___/\__/_/ /_/\_\/_//_/\_,_/ .__/_/ \_,_/_//_/\_, /___/_.__/\_,_/\_,_/_/_/_/
/_/ /___/
-->
<!DOCTYPE html>
<html lang="en-US">
<head> <!--TEST-->
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="YOUR DESCRIPTION HERE">
<title>Dalfuss - Verknüpfungsbaum 🌳🔗 </title>
<link rel="icon" href="./images/profile.jpg" type="image/x-icon">
<link rel="stylesheet" href="./css/style.css">
<!--
With sites.css you can give the button a different color
-->
<link rel="stylesheet" href="./css/sites.css">
<!--
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.
-->
<meta property="og:title" content="Sam Dalfuss - Verknüpfungsbaum 🌳🔗 ">
<meta property="og:type" content="website">
<meta property="og:image" content="./images/socialmediacard.webp">
<meta property="og:url" content="https://dalfuss.link">
<meta name="twitter:card" content="summary_large_image">
<meta property="og:description" content="send nudes">
<meta property="og:site_name" content="Dalfuss - Verknüpfungsbaum 🌳🔗">
<!--
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.
For Icon list see: https://forkaweso.me/Fork-Awesome/icons/
-->
<!-- <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"> -->
<script src="https://kit.fontawesome.com/14a35c233c.js" crossorigin="anonymous"></script>
</head>
<body>
<header aria-label="Header with profile image and description">
<div class="picture" role="img" aria-label="Profile picture">
<img src="./images/profilepicture.webp" alt="YOUR ALT TEXT">
</div>
<h1 class="user" tabindex="0" title="USERNAME">
Sam Dalfuss
</h1>
<p class="description">
<script>
var dob = new Date("08/21/1998");
//calculate month difference from current date in time
var month_diff = Date.now() - dob.getTime();
//convert the calculated difference in date format
var age_dt = new Date(month_diff);
//extract year from date
var year = age_dt.getUTCFullYear();
//now calculate the age of the user
var age = Math.abs(year - 1970);
//display the calculated age
document.write(age);
</script>
| they/them/dey/er | Heidelberg | Streamer | Gamer | "Musician" <br>
<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" />
</p>
<div class="links link_item">
<a class="link" href="https://dalfuss.net" target="_blank">
Dalfuss.net
</a>
</div>
</header>
<main id="main" aria-label="Main content with links">
<div class="link_container">
<h2 class="separator" title="Social Media / About Me">
Social Media / About Me
</h2>
<ul class="link_list" aria-label="Social Media Link List">
<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>
Mastodon / Fediverse
</a></li>
<li class="link_item"><a class="link twitch" href="https://dalfuss.live" target="_blank"><i class="fa fa-twitch" aria-hidden="true"></i>
Twitch
</a></li>
<li class="link_item"><a class="link instagram" href="https://dalfuss.link/insta" target="_blank"><i class="fa fa-instagram" aria-hidden="true"></i>
Instagram
</a></li>
<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>
Discord Server
</a></li>
<li class="link_item"><a class="link youtube" href="https://dalfuss.link/youtube" target="_blank"><i class="fa fa-youtube" aria-hidden="true"></i>
YouTube
</a></li>
<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>
TikTok
</a></li>
<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>
Anilist
</a></li>
<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>
Pronouns.page
</a></li>
</ul>
</div>
<div class="link_container">
<h2 class="separator" title="Projects">
Projects
</h2>
<ul class="link_list" aria-label="Project Link List">
<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>
Git
</a></li>
<li class="link_item"><a class="link elftwinks" href="https://elftwinks.gay" target="_blank"><i class="fa fa-link" aria-hidden="true"></i>
ElfTwinks.Gay
</a></li>
<li class="link_item"><a class="link colours" href="https://colours.dalfuss.link" target="_blank"><i class="fa fa-link" aria-hidden="true"></i>
colours.dalfuss.link
</a></li>
<li class="link_item"><a class="link oc" href="https://oc.dalfuss.link" target="_blank"><i class="fa fa-link" aria-hidden="true"></i>
OC Site
</a></li>
<li class="link_item"><a class="link Dave" href="https://cyber.ms/@dave" target="_blank"><i class="fa fa-link" aria-hidden="true"></i>
Dave
</a></li>
</ul>
</div>
<div class="link_container">
<h2 class="separator" title="Contact">
Contact
</h2>
<ul class="link_list" aria-label="Contact Link List">
<li class="link_item"><a class="link matrix-org" href="https://matrix.to/#/@dalfuss:catgirl.cloud" target="_blank">
Matrix
</a></li>
</ul>
</div>
</main>
<footer class="source" aria-label="Footer information">
<p>&copy; Sam Dalfuss
<script>document.write(new Date().getFullYear())</script>
- Created with <a href="https://github.com/revengeday/verknuepfungsbaum" target="_blank">Verknüpfungsbaum 🔗🌳</a></p>
</footer>
</body>
</html>
<!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/favicon.png" type="image/webp">
<link rel="apple-touch-icon" sizes="180x180" href="images/favicon.png">
<link rel="icon" href="assets/images/favicon.png" type="image/webp">
<title>dalfuss.link</title>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
<script src="https://kit.fontawesome.com/14a35c233c.js" crossorigin="anonymous"></script>
</head>
<body>
<!-- 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 -->
<div class="min-h-full flex-h-center" id="background_div">
<input type="hidden" value="https://bio.link" id="app-url">
<input type="hidden" value="null" id="is-featured">
<canvas id="bg-canvas" class="background-overlay"></canvas>
</input>
</input>
<div class="mt-48 page-full-wrap relative ">
<input type="hidden" value="creator-page" id="page-type">
<img class="display-image m-auto" data-src="assets/images/logo.png" src="assets/images/logo.png" alt="[Your photo alt]"/>
<h2 class="page-title page-text-color page-text-font mt-16 text-center">Sam Dalfuss</h2>
<p class="description">
<script>
var dob = new Date("08/21/1998");
//calculate month difference from current date in time
var month_diff = Date.now() - dob.getTime();
//convert the calculated difference in date format
var age_dt = new Date(month_diff);
//extract year from date
var year = age_dt.getUTCFullYear();
//now calculate the age of the user
var age = Math.abs(year - 1970);
//display the calculated age
document.write(age);
</script>
| they/them/dey/er | Heidelberg | Streamer | Gamer | "Musician" <br>
<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>
<div class="page-item-wrap relative dalfuss-net">
<div class="page-item flex-both-center absolute dalfuss-net"></div>
<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">
<i class="fa-brands fa-mastodon link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">dalfuss.net</span>
</a>
</div>
<h2 class="separator" title="Social Media / About Me">
Social Media / About Me
</h2>
<div class="mt-24">
<div class="page-item-wrap relative mastodon">
<div class="page-item flex-both-center absolute mastodon"></div>
<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">
<i class="fa-brands fa-mastodon link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">Mastodon/Fediverse</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 twitch" href="https://dalfuss.live" data-id="261685" data-type="page_item">
<i class="fa fa-twitch link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">Twitch</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 instagram" href="https://dalfuss.link/insta" data-id="261685" data-type="page_item">
<i class="fa fa-instagram link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">Instagram</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 discord" href="https://dalfuss.link/discord" data-id="261685" data-type="page_item">
<i class="fa-brands fa-discord link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">Discord Server</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 youtube" href="https://dalfuss.link/youtube" data-id="261685" data-type="page_item">
<i class="fa fa-youtube link-each-image" aria-hidden="true"></i>
<span class=" item-title text-center">YouTube</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 tiktok" href="https://dalfuss.link/tiktok" data-id="261685" data-type="page_item">
<i class="fa-brands fa-tiktok link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">TikTok</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 anilist" href="https://dalfuss.link/anilist" data-id="261685" data-type="page_item">
<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>
<span class="item-title text-center">Anilist</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 pronouns" href="https://dalfuss.link/anilist" data-id="261685" data-type="page_item">
<svg class="link-each-image" 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>
<span class="item-title text-center">Pronouns.page</span>
</a>
</div>
<h2 class="separator" title="Projects">
Projects
</h2>
<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 git" href="https://git.dalfuss.cloud/dalfuss" data-id="261685" data-type="page_item">
<i class="fa-brands fa-git-alt link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">Git</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 elftwinks" href="https://elftwinks.gay" data-id="261685" data-type="page_item">
<i class="fa fa-link link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">elftwinks.gay</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 colours" href="https://colours.dalfuss.link" data-id="261685" data-type="page_item">
<i class="fa fa-link link-each-image" aria-hidden="true"></i>
<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">
<i class="fa fa-link link-each-image" aria-hidden="true"></i>
<span class="item-title text-center">OC Site</span>
</a>
</div>
<h2 class="separator" title="Projects">
Contact
</h2>
<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>