Creative
Coding
Introduction CSS + JS
2025 - 2026
Creative
Coding ?
Plotting 100 curved lines of -exactly- 1m in length.
— ertdfgcvb 𓅰 𓅬 𓅭 𓅮 𓅯 (@andreasgysin) September 18, 2025
↓ pic.twitter.com/MGr0x5l1LH
Just played with R3F, Three.js, and shaders to create this dynamic texture-mapped ribbon. ✨
— Aashish Kumar lohra (@AashishLohra) September 18, 2025
Big thanks to Codrops for the amazing tutorials!#ThreeJS #R3F #React #WebDev #CreativeCoding pic.twitter.com/CEMa6NEA0j
Tried something fun. pic.twitter.com/f7GRvciDCQ
— Joshua Guo (@jshguo) September 18, 2025
New Day,
— Basit A. Khan (@basit_designs) September 18, 2025
New Project,
New Landing page.
Any thoughts? pic.twitter.com/ezzaQF0Jju
Spiked Sphere. Source code -> https://t.co/0wkh1OMF8D #openframeworks #programming #creativecoding #プログラミング pic.twitter.com/xCjXCBNadA
— JunKiyoshi (@junkiyoshi) September 17, 2025
🧋#p5js #creativecoding pic.twitter.com/hedAUfySAs
— M:PY (@M_Pierini) September 17, 2025
グラフィックをこねこね pic.twitter.com/MeCoXh7fTy
— レオル (@reoru) September 15, 2025
Geometric Animations / 250828#p5js #generative #creativecoding pic.twitter.com/QKsNd7Cnwk
— Saskia Freeke (@sasj_nl) August 28, 2025
#p5js pic.twitter.com/cY4iHuFnza
— ayat (@dn0t_) August 29, 2025
— Etienne Jacob (@etiennejcb) July 19, 2025
— zach lieberman (@zachlieberman) September 18, 2025
Idea
— Mario Carrillo (@marioecg.bsky.social) September 10, 2025 at 9:55 AM
[image or embed]
Le projet
Le deal
Avant de vous lancer dans le code, je vous demande de constituer un dossier d’inspirations:
- Rassemblez des images, vidéos, extraits artistiques ou références visuelles qui vous inspirent.
- Ce dossier servira à orienter vos choix créatifs (formes, couleurs, mouvements, ambiance, etc.).
C'est non
- particles.js
- Une librairie qui le fait a votre place
- IA (dans une certaine mesure)
Nos outils
- Codepen
- VS code
JS 101
Concepts basiques
Créer un
élement HTML
Générer un nombre aléatoire
// Retourne un nombre décimal entre 0 et 0.99999…
let randomNumber1 = Math.random();
// Retourne un nombre décimal entre 0 et 9.99999…
let randomNumber2 = Math.random() * 10;
Arrondir un nombre
Avoir un nombre décimal nous permet entre autre d'être précis. Dans certains cas il sera nécessaire d'avoir des nombres entiers.
Ex: accéder aux éléments d'un tableau, éviter les demi-pixels, améliorer les performances, etc.
Math.floor( 10.50 );
Math.floor( -3.65 ); // -4
Math.ceil( 10.50 ); // 11
Math.ceil( -3.65 ); // -3
Math.round( 10.50 ); // 11
Math.round( -3.50 ); // -3
Math.round( -3.65 ); // -4
Position aléatoire
Taille aléatoire
Boucle simple
for( let i = 0; i < 3; i++ ) {
console.log( i );
// 0 pour la première itération
// 1 pour la seconde
// 2 pour la dernière
}
Plus de particules
Récupérer un élément aléatoire dans un tableau
const getRandomElement = ( array ) => {
const randomIndex = Math.floor( Math.random() * array.length );
return array[ randomIndex ];
}
Plus de couleurs
CSS Keyframes
@keyframes toRight {
from {
transform: translate( 0%, 0% );
}
to {
transform: translate( 0, 100% );
}
}
.myElement{
animation: toRight .32s ease;
}
Animer les particules
Délais aléatoire
CSS Custom properties
Syntaxe
// Crée les variables de manière globale
:root{
--background: red;
}
.myElement{
background: var(--background);
}
En pratique
Récupération &
modification
Pointer custom
Normaliser un nombre
Cela permet de retranscrire un nombre entre 0 et 1, basé sur une valeur maximale. L'avantage est de pouvoir travailler avec n'importe quelle unité par la suite, que ce soit en pixel, en pourcentage, etc.
const mouseX = 643,
windowWidth = 1440;
const normalizedMouseX = mouseX / windowWidth;
// Retourne 0.446527777777778
You,
now