Compare commits

..

2 Commits
38c3 ... main

Author SHA1 Message Date
63d769ca13 small changes 2024-09-27 18:58:16 +02:00
ff33edc7cf made footer links customizable 2024-09-05 14:02:50 +02:00
5 changed files with 81 additions and 40 deletions

View File

@ -56,7 +56,7 @@
}, },
{ {
"name": "Matrix", "name": "Matrix",
"href": "https://brulijam.com/mtrx/#/@brulijam:brulijam.com?web-instance[element.io]=app.element.io&client=element.io", "href": "https://brulijam.com/mtrx/#/@brulijam:brulijam.com?web-instance[element.io]=app.element.io",
"icon": "https://simpleicons.org/icons/matrix.svg", "icon": "https://simpleicons.org/icons/matrix.svg",
"group": 1 "group": 1
}, },
@ -125,6 +125,31 @@
"href": "https://youtube.com/@brulijam", "href": "https://youtube.com/@brulijam",
"icon": "https://simpleicons.org/icons/youtube.svg", "icon": "https://simpleicons.org/icons/youtube.svg",
"group": 2 "group": 2
},
{
"name": "source code",
"href": "https://git.brulijam.com/brulijam/introduction-website",
"group": "footer"
},
{
"name": "links json",
"href": "content/links.json",
"group": "footer"
},
{
"name": "status",
"href": "https://status.brulijam.com/status/brulijam",
"group": "footer"
},
{
"name": "files",
"href": "https://brulijam.com/files",
"group": "footer"
},
{
"name": "music",
"href": "https://brulijam.com/music",
"group": "footer"
} }
], ],
"groupNames": { "groupNames": {

View File

@ -82,22 +82,31 @@ h2 {
} }
} }
.text-link::before {
content: "[";
}
.text-link::after {
content: "]";
}
.text-link { .text-link {
color: var(--secondary-color); color: var(--secondary-color);
text-decoration: underline solid var(--secondary-color2) 1px; text-decoration: none;
position: relative; position: relative;
padding: 0 2px; padding: 5px;
white-space: nowrap;
display: inline-block;
} }
.text-link:hover { .text-link:hover {
text-decoration: underline solid var(--secondary-color) 1px;
filter: drop-shadow(0 0 5px var(--secondary-color2)) brightness(1.02); filter: drop-shadow(0 0 5px var(--secondary-color2)) brightness(1.02);
top: -2px; top: -2px;
} }
/* Links Container */ /* Links Container */
.links { .links {
padding: 10px; padding: 0 10px;
} }
/* Link Group */ /* Link Group */
@ -163,7 +172,7 @@ h2 {
} }
.links:hover .hoverHighlight:not(:hover) { .links:hover .hoverHighlight:not(:hover) {
@media only screen and (min-width: 480px) { @media only screen and (min-width: 480px) {
filter: brightness(0.5); filter: brightness(0.8);
} }
} }

View File

@ -23,20 +23,13 @@
<br> <br>
<section class="description"> <section class="description">
<p>css is pain and I used way too much math to implement that fuzzy search.</p> <p>css is pain and I used way too much math to implement that fuzzy search.</p>
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et <p>One day I will write something meaningful in this paragraph.</p>
dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
takimata sanctus est Lorem ipsum dolor sit
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
labore et dolore magna aliquyam erat, sed
diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
takimata sanctus est Lorem ipsum dolor sit
amet.</p>
</section> </section>
<br><br> <br>
<section class="fuzzysearch"> <section class="fuzzysearch">
<input type="text" id="link-search" placeholder="fuzzy search"> <input type="text" id="link-search" placeholder="fuzzy search">
</section> </section>
<br>
<section class="links"> <section class="links">
<noscript> <noscript>
<p>javascript is not available. You can still see a list of my links <a class="text-link" href="content/links.json">here</a>.</p> <p>javascript is not available. You can still see a list of my links <a class="text-link" href="content/links.json">here</a>.</p>
@ -61,13 +54,7 @@
</noscript> </noscript>
</section> </section>
<br> <br>
<footer> <footer></footer>
<a class="text-link" href="https://git.brulijam.com/brulijam/introduction-website" target="_blank">source code</a>
<a class="text-link" href="content/links.json" target="_blank">links.json</a>
<a class="text-link" href="https://status.brulijam.com/status/brulijam">status</a>
<a class="text-link" href="https://brulijam.com/files" target="_blank">files</a>
<a class="text-link" href="https://brulijam.com/music" target="_blank">music</a>
</footer>
</main> </main>
</body> </body>
</html> </html>

View File

@ -13,12 +13,31 @@ function createLinkDiv(link) {
return linkDiv; return linkDiv;
} }
function createFooterLink(link) {
const footerLink = document.createElement('a');
footerLink.className = 'text-link';
footerLink.href = link.href;
footerLink.target = '_blank';
footerLink.textContent = link.name;
return footerLink;
}
function createGroups(linksData, groupNames) { function createGroups(linksData, groupNames) {
const container = document.querySelector('.links'); const container = document.querySelector('.links');
const footer = document.querySelector('footer');
const groups = [...new Set(linksData.map(link => link.group))].sort((a, b) => a - b); const groups = [...new Set(linksData.map(link => link.group))].sort((a, b) => a - b);
groups.forEach((group, index) => { groups.forEach((group, index) => {
if (group === "footer") {
linksData
.filter(link => link.group === "footer")
.forEach(link => {
const footerLink = createFooterLink(link);
footer.appendChild(footerLink);
});
} else {
// Handle regular links
const groupContainer = document.createElement('div'); const groupContainer = document.createElement('div');
groupContainer.className = 'linkGroup'; groupContainer.className = 'linkGroup';
@ -39,6 +58,7 @@ function createGroups(linksData, groupNames) {
const br = document.createElement('br'); const br = document.createElement('br');
container.appendChild(br); container.appendChild(br);
} }
}
}); });
} }

View File

@ -1,12 +1,12 @@
let hue = Math.floor(Math.random() * 360); let hue = Math.floor(Math.random() * 360);
const colorChangeInterval = 100; const colorChangeInterval = 150;
function setRainbowColor() { function setRainbowColor() {
const color = `hsl(${hue}, 80%, 80%)`; const color = `hsl(${hue}, 80%, 80%)`;
document.documentElement.style.setProperty('--secondary-color', color); document.documentElement.style.setProperty('--secondary-color', color);
document.documentElement.style.setProperty('--secondary-color2', `hsl(${hue}, 40%, 40%)`); document.documentElement.style.setProperty('--secondary-color2', `hsl(${hue}, 40%, 40%)`);
document.documentElement.style.setProperty('--secondary-color-bg', `hsl(${hue}, 40%, 5%)`); document.documentElement.style.setProperty('--secondary-color-bg', `hsl(${hue}, 20%, 5%)`);
hue = (hue + 1) % 360; hue = (hue + 1) % 360;
} }