Bibliothèques JavaScript
Introduction
Une bibliothèque JavaScript est un fichier .js – rarement plusieurs – déjà codé qui met à disposition des méthodes et des fonctions pour l’ajoute de fonctionnalités dynamiques à une page HTML. Pour disposer de ces fonctionnalités, il est suffisant d’inclure la référence absolue ou relative au fichier externe à l’intérieur du tag script dans le code HTML de la page.
Il existe principalement deux types de bibliothèques JavaScript :
- Les bibliothèques de type « général » qui facilitent le développement en JavaScript de manière globale, c’est-à-dire une sorte de version alternative (simplifiée souvent) ou d’extension du langage original ;
- Les bibliothèques de type « spécifique » qui facilitent l’intégration d’une fonctionnalité plutôt précise, par exemple des graphiques créés dynamiquement, des carrousels d’images, l’inclusion de vidéos, etc.
La frontière entre les deux types de bibliothèques n’est cependant pas absolue, il existe des recouvrements. Par exemple il y a des bibliothèques qui mettent à disposition plusieurs fonctionnalités assez spécifiques. Les bibliothèques « générales » disposent également de « plugins » qui sont des fonctionnalités spécifiques développées en utilisant les méthodes de la bibliothèque elle-même.
Organisation de cette page
Cette page a comme objectif de présenter une liste de bibliothèques JavaScript qui pourraient être utiles pour des développeurs de différents niveaux. Pour ce faire, les bibliothèques sont organisées en différentes catégories et pour chaque bibliothèque les informations suivantes devraient idéalemement être affichées :
- Nom de la bibliothèque (avec lien interne s'il existe une page dans ce Wiki)
- Brève description
- Niveau nécessaire pour bien maîtriser la bibliothèque (Débutant, Intermédiaire ou Expert)
- Site web du projet ou de la bibliothèque
Quelles bibliothèques ajouter ?
Le web est plein de différentes bibliothèques/projects JavaScript qui sont souvent abandonnés ou ne plus maintenus. Pour cette raison il serait bien d'inclure dans cette pages des bibliothèques qui présente au moins l'une des caractèristiques suivantes :
- Sont dans une version stable (i.e. > 1.0, pas alpha ou béta)
- Sont maintenues par des institutions ou entreprises (e.g. Google, Adobe, etc.)
- Disposent d'une documentation exhaustive
Manipulation du DOM
Les bibliothèques qui permettent de manipuler le DOM facilitent les actions de sélection, insertion et modification d'éléments dans la page HTML.
Nom | Description | Niveau | Lien |
---|---|---|---|
jQuery | jQuery est une bibliothèque Javascript dont le but est de simplifier plusieurs opérations fastidieuses en Javascript "pur". En particulier elle rends la manipulation du DOM et l'ajout de transitions en HTML beaucoup plus simple. Il existe plusieurs plugin pour des fonctionnalités plus spécifiques. | Tout niveau | https://jquery.com/ |
MooTools | Ajoute des fonctionnalités pour des développeurs expérimentés. | Expert | http://mootools.net/ |
Prototype.js | Une des premières bibliothèques à fournir des éléments pour la manipulation du DOM. | Tout niveau | http://prototypejs.org/ |
Interface Utilisateur (User Interface)
Bibliothèques qui permettent de créer des interfaces interfactives, souvent intégrées avec des CSS.
Nom | Description | Niveau | Lien |
---|---|---|---|
Bootstrap | Framework front-end spécialement conçu pour le développement d'application web "responsive". | Débutant | http://getbootstrap.com/ |
jQuery UI | Extension de la bibliothéque jQuery, elle facilite des manipulations interactives telles que le Drag & Drop, etc. | Intermédiaire | https://jqueryui.com/ |
Foundation | Framework frontend avancé qui combine JavaScript et CSS pour créer des interfaces "responsive". | Intermédiaire | http://foundation.zurb.com/ |
Images
Bibliothèques pour la gestions d'images (zoom, carrousels, etc.)
Nom | Description | Niveau | Lien |
---|---|---|---|
Lightbox | Une des premières bibliothèques pour afficher des images agrandies | Débutant | http://lokeshdhakar.com/projects/lightbox2/ |
PhotoSwipe | Bibliothèque pour des galeries d'images qui ne nécessite pas d'autres bibliothèques | Débutant | http://photoswipe.com/ |
Audio/Vidéo
Bibliothèques qui permettent de gérer les éléments multimédia audio et vidéo à travers les API HTML5 ou avec fonction de fallback avec Flash.
Nom | Description | Niveau | Lien |
---|---|---|---|
LeanBack | Bibliothèque HTML5 audio/video avec fallback Flash pour utilisation non-commerciale | Débutant | http://www.leanbackplayer.com/ |
Video.js | Bibliothèque open-source pour les vidéos. | Débutant | http://videojs.com/ |
jPlayer | Bibliothèque open-source HTML5 audio/video pour jQuery | Intermédiaire | http://jplayer.org/ |
Animations
Bibliothèques qui sont spécialisées dans les animations (pour graphiques ou dessin voir plus bas).
Nom | Description | Niveau | Lien |
---|---|---|---|
Greensock | Bibliothèque d'animation pour HTML5 et Flash. Cela permet d'animer tout ce à quoi JavaScript peut accéder (propriétés CSS, SVG, objets de la bibliothèque canevas, objets génériques...). | Intermédiaire | http://greensock.com/ |
TweenJS | Bibliothèque qui fait partie de la suite CreateJS pour l'animations d'éléments. | Intermédiaire | http://createjs.com/tweenjs |
Dessins, Canvas, SVG
Bibliothèques qui permettent de générer et/ou manipuler des éléments graphiques (Canvas, SVG, ...).
Nom | Description | Niveau | Lien |
---|---|---|---|
p5.js | Bibliothèque qui fait partie du projet Processing et qui facilite surtout la création d'animation, mais d'autres fonctionnalités sont également disponibles. | Débutant | http://p5js.org/ |
Raphaël | Bibliothèque pour la création et manipulation d'éléments SVG dynamiques. | Intermédiaire | http://raphaeljs.com/ |
Snap.svg | Bibliothèque créée par Adobe pour la manipulation d'éléments SVG | Expert | http://snapsvg.io/ |
Fabric.js | Bibliothèque pour l'élément HTML5 canvas. | Débutant | http://fabricjs.com/ |
Three.js | Bibliothèque pour graphique 3D avec JavaScript | Expert | http://threejs.org/ |
EaselJS | Bibliothèque qui fait partie de la suite CreateJS pour la manipulation des HTML5 Canvas | Intermédiare | http://createjs.com/easeljs |
Visualization de données
Bibliothèques qui permettet de créer des graphiques ou des visualizations de données interactives.
Nom | Description | Niveau | Lien |
---|---|---|---|
D3.js | Bibliothèque pour la création de "data-driven document". | Expert | http://d3js.org/ |
Chart.js | Bibliothèque qui permet de créer différentes graphiques de manière assez simple. | Débutant | http://www.chartjs.org/ |
Dimple | Extension de D3.js pour la génération de graphiques. | Expert | http://dimplejs.org/ |
Applications
Bibliothèques qui permettent de structurer le code JavaScript pour faciliter le développement d'application complèxes.
Nom | Description | Niveau | Lien |
---|---|---|---|
Angular.js | Bibliothèque créée et maintenue par Google pour la création d'application selon le pattern Model-View-Controller. | Expert | https://angularjs.org/ |
Backbone.js | Bibliothèque qui facilite la création d'application en utilisant des modules. | Expert | http://backbonejs.org/ |
Utilités/Helper
Bibliothèques qui mettent à disposition des outils pour faciliter le développement des applications ou garantir leur compatibilité.
Nom | Description | Niveau | Lien |
---|---|---|---|
Underscore.js | Bibliothèque qui met à disposition plusieurs fonctions qui rend l'écriture du code plus vite et simple. | Débutant | http://underscorejs.org/ |
Modernizr | Bibliothèque qui facilite la compatibilité des applications avec des anciens navigateur. | Intermédiaire | https://modernizr.com/ |
Présentations
Bibliothèques pour la création de présentation (alternatives à power-point).
Nom | Description | Niveau | Lien |
---|---|---|---|
Impress.js | Impress.js est une technologie de présentation qui s'appuie sur les transformations et transitions CSS3 | Débutant | https://github.com/impress/impress.js |
Reveal.js | Bibliothèque pour créer des présentation avec HTML5. | Débutant | https://github.com/hakimel/reveal.js/ |
Moteurs de jeu (i.e. Game engine)
Bibliothèques qui facilitent le développement de jeux vidéo sans un outil auteur prédéfinit.
Nom | Description | Niveau | Lien |
---|---|---|---|
Quintus | HTML5 game engine. | Intermédiaire | http://www.html5quintus.com/ |
Voir https://html5gameengine.com/ pour une liste plus exhaustive.