Visualization Libraries Showcase
Type |
Library |
Description |
Use Cases |
Demo |
`
},
{
type: "Charts & Graphs",
name: "D3.js",
url: "https://d3js.org/d3.v7.min.js",
description: "Low-level control of SVG/DOM; powerful data binding",
useCases: "Custom graphing, network diagrams",
demo: `
`
},
{
type: "Animations",
name: "Animate.css",
url: "https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css",
description: "CSS animations triggered via class names",
useCases: "Revealing charts, hover effects",
demo: `Bounce!
`
},
{
type: "Physics-Based",
name: "Matter.js",
url: "https://cdn.jsdelivr.net/npm/matter-js",
description: "2D rigid body physics engine (JS-driven)",
useCases: "Physics simulations, educational visualizations",
demo: `
`
}
];
const tableBody = document.getElementById('lib-table');
libraries.forEach((lib, i) => {
const tr = document.createElement('tr');
tr.innerHTML = `
${lib.type} |
${lib.name} |
${lib.description} |
${lib.useCases} |
|
`;
tableBody.appendChild(tr);
});
function openDemo(index) {
const lib = libraries[index];
const modal = document.getElementById("demo-modal");
const content = document.getElementById("modal-content");
const title = document.getElementById("modal-title");
title.textContent = `${lib.name} Demo`;
// Clear & inject
content.innerHTML = '';
const style = lib.url.endsWith('.css')
? ``
: ``;
content.innerHTML = style + lib.demo;
modal.classList.add("active");
}
document.getElementById("close-modal").addEventListener("click", () => {
document.getElementById("demo-modal").classList.remove("active");
});