Kleine Animationen mit JavaScript und Inkscape
Wenn es darum geht, kreativ zu werden und visuell ansprechende Webinhalte zu kreieren, sind meine Lieblingstools JavaScript und Inkscape. Wir verwenden dazu Pfade, Blur-Effekte und ein wenig JavaScript/HTML Code. Bist du bereit? Dann los!
Erste Schritte mit Inkscape
Inkscape, eine Open-Source-Vektorgrafiksoftware, bietet viele Optionen zur Erstellung und Bearbeitung von Vektorbildern. Wir beginnen damit, zwei Pfade in Inkscape zu erstellen. Dazu verwenden wir das Werkzeug “Zeichnen” (Bézier-Kurven), das sich in der linken Menüleiste befindet. Wir können die Linien so ziehen, dass sie eine beliebige Form darstellen. In meinem Beispiel zeichne ich eine Wolke und einen Mond. Das sind Pfad 1 und 2. Mit ein wenig Übung klappt das ganz gut.

Nun kommt der spannende Teil! Wir erstellen Pfad drei und vier.. Dazu klicken wir auf unseren Mond/die Wolke und erstellen jeweils ein Duplikat. Diese Pfade werden später unsere “glühenden” Neonpfade sein. Hierfür aktivieren wir die Option “Gaussian Blur” im Menü “Filtereffekte”. Wir justieren den Unschärfe-Grad nach Belieben, um die Illusion des Leuchtens zu erzeugen.
Jetzt müssen wir noch die Pfade benennen. Unter Objekte / Layer und Objekte können wir die Objekteigenschaften des jeweiligen Pfades öffnen und die ID ändern. Im Screenshot sehr ihr die IDs, die ich verwendet habe.
Animieren mit AnimeJS
Nachdem wir unsere SVG-Datei erstellt und abgespeichert haben, ist es an der Zeit, uns JavaScript zuzuwenden. AnimeJS ist eine leichte JavaScript-Bibliothek für Animationen, die wir verwenden werden, um unserem Neonlicht Leben einzuhauchen.
Erstellen wir zuerst eine neue HTML-Datei namens “index.html”. In dieser Datei fügen wir unseren SVG-Code ein und verlinken unsere JavaScript-Datei “app.js”. Es sieht folgendermaßen aus:
Anschließend erstellen wir eine JavaScript-Datei namens “app.js”. In dieser Datei nutzen wir AnimeJS, um unseren Neonpfaden eine animierte Ausstrahlung zu geben.
window.onload = function () {
config = {
"moon_dark": "#4a1d00",
"moon_bright": "#ffc645",
"cloud_dark": "#002626",
"cloud_bright": "#0ffdff",
}
function turn_bright(id, delay, dark, bright) {
setTimeout(() => {
anime({
targets: id,
stroke: [bright, dark, bright],
strokeWidth: [0.3],
duration: 100,
delay: delay,
easing: 'linear',
});
anime({
targets: id + '_blur',
stroke: [bright, dark, bright, dark, dark, bright],
opacity: [0.2, 0, 0.2, 0, 0, 0.2],
strokeWidth: [2],
duration: 200,
delay: delay + 100,
easing: 'linear',
});
}, Math.random() * 3000);
}
turn_bright("#moon", 100, config.moon_dark, config.moon_bright);
turn_bright("#cloud", 100, config.cloud_dark, config.cloud_bright);
setInterval(() => {
turn_bright("#moon", 100, config.moon_dark, config.moon_bright);
} , 2000);
setInterval(() => {
turn_bright("#cloud", 100, config.cloud_dark, config.cloud_bright);
}, 1000);
}
In diesem Code fügen wir eine Farbverlaufsanimation zu unserem Pfad hinzu, die von voller zu halber Sättigung und wieder zurück wechselt, um das typische Flackern eines Neonlichts zu erzeugen. Die Animation dauert 2 Sekunden und wiederholt sich in einer Endlosschleife.
Zuletzt noch ein paar kleine Styles, damit das Logo mittig sitzt und der Hintergrund dunkel ist. Dazu erstellen wir eine styles.css Datei mit folgendem Inhalt.
body {
background-color: #161a1d;
}
.logo-container {
display: flex;
justify-content: center;
align-items: center;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
}
svg {
width: 100vw;
}
Und voilà! Nun haben wir eine einfache, aber eindrucksvolle Neonlicht-Animation, die vollständig in JavaScript und Inkscape erstellt wurde. Ich hoffe, diese Anleitung hat dir einen Einblick gegeben, wie man diese Tools verwenden kann, um spannende und dynamische Webinhalte zu erstellen. Lass deiner Kreativität freien Lauf und viel Spaß beim Ausprobieren!
Von Joni, Juli 2024