Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
9abd1a4
for each contribution, environment is created
MohamedRishard Aug 30, 2025
5dd6b7e
Merge branch 'hakimel:master' into New-Contribution
MohamedRishard Aug 30, 2025
e6cbaa4
Pie Charts Added
MohamedRishard Aug 31, 2025
023f32e
Update member3.txt
MohamedRishard Aug 31, 2025
7255a22
themes and playground[coding and terminal] added
MohamedRishard Sep 1, 2025
74ee419
pie charts
MohamedRishard Sep 1, 2025
e3530b3
bar chart
MohamedRishard Sep 1, 2025
bc4d0fa
more charts
MohamedRishard Sep 1, 2025
60c4585
roadmap, quiz, emebedded video player
MohamedRishard Sep 1, 2025
9ec2ddd
templates
DaniruJayangana Sep 2, 2025
867e8ad
Video player for youtube and local stoarge
MohamedRishard Sep 2, 2025
6a95005
Merge branch 'hakimel:master' into New-Contribution
MohamedRishard Sep 3, 2025
bb1d78b
Transition of Slides
HPriyaranga Sep 3, 2025
5cc1ee3
Merge branch 'hakimel:master' into New-Contribution
MohamedRishard Sep 5, 2025
2ec5fb6
changed file paths
MohamedRishard Sep 5, 2025
85fd701
changed file paths
MohamedRishard Sep 5, 2025
d3c49e1
Add multiple enhancements
DaniruJayangana Sep 6, 2025
520532e
Add User Guides & Templates folder with user manuals
Nivetha-2002-09-13 Sep 7, 2025
68cc920
Themes & Playground
TharsiniA Sep 7, 2025
9ac8834
Add multiple enhancements
DaniruJayangana Sep 8, 2025
1c90091
Templates updated
MohamedRishard Sep 8, 2025
78959e5
templates modified
MohamedRishard Sep 8, 2025
819cc6f
Themes & Playground
TharsiniA Sep 9, 2025
9695e37
Add files via upload
Nivetha-2002-09-13 Sep 9, 2025
8130694
Added interactive flipbook with sound and page counter
Segar-Dushanth Sep 10, 2025
8ce011c
Reorganized folder structure and added new interactive tools (FlipBoo…
Segar-Dushanth Sep 11, 2025
38a1e86
New motions added
MohamedRishard Sep 11, 2025
5fb74b7
Add Poll feature
DaniruJayangana Sep 12, 2025
90c4b21
No code reveal.js presentation creator
MohamedRishard Sep 13, 2025
7c44d34
Themes & Playground
TharsiniA Sep 13, 2025
2fe127f
added a paint slide, updated poll
DaniruJayangana Sep 15, 2025
7605541
Poll deployment
MohamedRishard Sep 15, 2025
55e8d2a
poll
MohamedRishard Sep 15, 2025
83279b9
poll manual
MohamedRishard Sep 15, 2025
4be511d
Update Poll.html
DaniruJayangana Sep 15, 2025
1a5383c
Update Poll.html
DaniruJayangana Sep 15, 2025
f7e3718
update poll to firebase
DaniruJayangana Sep 15, 2025
0f6e5cf
update Poll.html
DaniruJayangana Sep 16, 2025
d468c02
Added QNA interactive tools
Segar-Dushanth Sep 17, 2025
4048b5e
Themes & Playground
TharsiniA Sep 17, 2025
ec6cfa5
Merge branch 'hakimel:master' into New-Contribution
MohamedRishard Sep 17, 2025
ba8f910
update Drag and Block
DaniruJayangana Sep 22, 2025
7ac0d10
No Code environment modification
MohamedRishard Sep 25, 2025
9f9d6c1
added new features to elements and small modification to environment
MohamedRishard Sep 28, 2025
4941ec0
Add new templates, app.js, designs files, and remove old template
Nivetha-2002-09-13 Sep 29, 2025
6e2b188
creat poll
DaniruJayangana Sep 29, 2025
2af6b8d
updating
DaniruJayangana Oct 1, 2025
b701974
“New-Contribution”
HPriyaranga Oct 1, 2025
69de435
updating
DaniruJayangana Oct 2, 2025
7f5e59f
Add Interactive Quiz folder
Segar-Dushanth Oct 2, 2025
caca82b
Merge branch 'hakimel:master' into New-Contribution
MohamedRishard Oct 2, 2025
226ea6e
Improve the environment with image size,position & text size,style,co…
MohamedRishard Oct 2, 2025
d5339a2
uploading local chatbot
DaniruJayangana Oct 3, 2025
50d5b17
app.js
Nivetha-2002-09-13 Oct 3, 2025
ee7bdfa
Added my part of the project
Nivetha-2002-09-13 Oct 4, 2025
feb2c40
minor improvements for features
MohamedRishard Oct 4, 2025
abf03a0
quiz qr size adjusted
MohamedRishard Oct 4, 2025
51f50d7
update reveal.js
DaniruJayangana Oct 7, 2025
e7d578e
Themes & Playground
TharsiniA Oct 8, 2025
1b2b849
Merge branch 'master' into New-Contribution
MohamedRishard Nov 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ out/
log/*.log
tmp/**
node_modules/
.sass-cache
.sass-cache
# Local Netlify folder
.netlify
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Drag-and-Drop Blocks Demo (CDN)</title>
<!-- Reveal.js via CDN -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/reveal.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/theme/black.min.css" id="theme">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/monokai.min.css">
<style>
.canvas-area { position:relative; height:420px; background:rgba(255,255,255,.05); border-radius:12px; overflow:hidden; }
.node { position:absolute; padding:10px 14px; border-radius:10px; background:rgba(0,0,0,.6); color:#fff; user-select:none; touch-action:none; border:1px solid rgba(255,255,255,.15); }
.node:active { box-shadow:0 0 0 3px rgba(255,255,255,.2) inset; }
</style>
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h2>Drag-and-Drop Blocks</h2>
<p>Drag the blocks inside the canvas to arrange a diagram.</p>
<div class="canvas-area" id="dragArea">
<div class="node" style="left:20px;top:20px;">Start</div>
<div class="node" style="left:200px;top:60px;">Process</div>
<div class="node" style="left:380px;top:140px;">Decision?</div>
<div class="node" style="left:120px;top:260px;">Result</div>
</div>
</section>
</div>
</div>

<!-- Reveal.js scripts via CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/reveal.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/notes/notes.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/markdown/markdown.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/highlight/highlight.min.js"></script>
<script>
Reveal.initialize({
controls: true,
progress: true,
slideNumber: 'c/t',
hash: true,
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
});

const dragArea=document.getElementById('dragArea');
let dragTarget=null,dx=0,dy=0;
dragArea.querySelectorAll('.node').forEach(node=>{
node.addEventListener('pointerdown',e=>{
dragTarget=node; node.setPointerCapture(e.pointerId);
const rect=node.getBoundingClientRect();
dx=e.clientX-rect.left; dy=e.clientY-rect.top;
});
node.addEventListener('pointermove',e=>{
if(!dragTarget||dragTarget!==node)return;
const p=dragArea.getBoundingClientRect();
const x=Math.min(Math.max(0,e.clientX-p.left-dx),p.width-node.offsetWidth);
const y=Math.min(Math.max(0,e.clientY-p.top-dy),p.height-node.offsetHeight);
node.style.left=x+'px'; node.style.top=y+'px';
});
node.addEventListener('pointerup',()=>{ dragTarget=null; });
node.addEventListener('pointercancel',()=>{ dragTarget=null; });
});
</script>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Media Effects Demo (CDN)</title>
<!-- Reveal.js via CDN -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/reveal.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/theme/black.min.css" id="theme">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/monokai.min.css">
<style>
.fx-btn { padding:6px 10px; border-radius:8px; border:1px solid #444; background:#111; color:#fff; cursor:pointer; margin-right:6px; }
.effect-glitch{position:relative}
.effect-glitch::before,.effect-glitch::after{content:attr(data-glitch-text);position:absolute;inset:0;mix-blend-mode:screen;color:#fff;pointer-events:none}
.effect-glitch::before{text-shadow:-2px 0 #f0f;clip-path:polygon(0 2%,100% 2%,100% 44%,0 44%);animation:glitch 2s infinite linear alternate-reverse}
.effect-glitch::after{text-shadow:2px 0 #0ff;clip-path:polygon(0 56%,100% 56%,100% 98%,0 98%);animation:glitch 1.8s infinite linear alternate}
@keyframes glitch{0%{transform:translate(0,0)}20%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}60%{transform:translate(-1px,2px)}80%{transform:translate(1px,-2px)}100%{transform:translate(0,0)}}
.effect-vhs{position:relative;filter:contrast(1.1) saturate(1.2)}
.effect-vhs::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.08) 0 2px,rgba(0,0,0,0) 2px 4px);mix-blend-mode:overlay;pointer-events:none}
.effect-blurpulse{animation:blurPulse 2.5s ease-in-out infinite}
@keyframes blurPulse{0%,100%{filter:blur(0px) brightness(1)}50%{filter:blur(2px) brightness(1.1)}}
</style>
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h2>Media Effects (Glitch / VHS / BlurPulse)</h2>
<p>Click a button to apply effects to the media below.</p>
<div style="display:flex;gap:16px;flex-wrap:wrap;align-items:center;">

<video class="fx-target" src="https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" style="max-width:340px;border-radius:12px;" autoplay muted loop playsinline></video>
</div>
<div style="margin-top:12px;">
<button class="fx-btn" data-fx="none">None</button>
<button class="fx-btn" data-fx="glitch">Glitch</button>
<button class="fx-btn" data-fx="vhs">VHS</button>
<button class="fx-btn" data-fx="blurpulse">BlurPulse</button>
</div>
</section>
</div>
</div>

<!-- Reveal.js scripts via CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/reveal.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/notes/notes.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/markdown/markdown.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/highlight/highlight.min.js"></script>
<script>
Reveal.initialize({
controls: true,
progress: true,
slideNumber: 'c/t',
hash: true,
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
});

function setFx(mode){
const cur=Reveal.getCurrentSlide();
cur?.querySelectorAll('.fx-target').forEach(t=>{
t.classList.remove('effect-glitch','effect-vhs','effect-blurpulse');
if(mode==='glitch'){
if(/^H[1-6]$/.test(t.tagName)) t.setAttribute('data-glitch-text', t.textContent.trim());
t.classList.add('effect-glitch');
}
if(mode==='vhs'){ t.classList.add('effect-vhs'); }
if(mode==='blurpulse'){ t.classList.add('effect-blurpulse'); }
});
}
document.querySelectorAll('button[data-fx]').forEach(b=>b.onclick=()=>setFx(b.dataset.fx));
</script>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1" name="viewport"/>
<title>Reveal.js Feature Demos — Gallery</title>
<style>
:root { color-scheme: dark; }
body { margin: 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; background: #0b0d10; color: #e6e6e6; }
header { padding: 28px 20px; border-bottom: 1px solid #1c2127; background: linear-gradient(180deg, #10151a, #0b0d10); position: sticky; top: 0; }
h1 { margin: 0 0 6px 0; font-weight: 700; letter-spacing: .3px; }
p.sub { margin: 0; opacity: .8; }
.container { max-width: 1100px; margin: 0 auto; padding: 24px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.card { background: #0f141a; border: 1px solid #1c2127; border-radius: 16px; padding: 16px; transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease; }
.card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,.35); border-color: #2a323b; }
.title { font-size: 1.05rem; margin: 0 0 8px 0; display:flex; align-items:center; gap:8px; }
.desc { font-size: .95rem; opacity: .9; margin: 0 0 12px 0; min-height: 48px; }
.tags { display:flex; gap:6px; flex-wrap:wrap; }
.tag { font-size: .75rem; padding: 4px 8px; border-radius: 999px; background:#121920; border:1px solid #222b35; opacity:.95; }
a.btn { display:inline-block; margin-top: 6px; padding: 8px 12px; border-radius: 10px; background:#1a2330; border:1px solid #223043; color:#e6e6e6; text-decoration:none; }
a.btn:hover { background:#1f2a3a; }
footer { text-align:center; font-size:.9rem; opacity:.7; padding: 20px; border-top: 1px solid #1c2127; margin-top: 24px; }
.emoji { font-size: 1.15rem; }
</style>
</head>
<body>
<header>
<h1>Reveal.js Feature Demos — Gallery</h1>
<p class="sub">Open any demo. All are CDN-based and work from any folder.</p>
</header>
<div class="container">
<div class="grid">
<div class="card">
<div class="title"><span class="emoji">🖊️</span><strong>Whiteboard</strong></div>
<p class="desc">Draw on slides with a fullscreen canvas overlay; color/size controls + clear.</p>
<div class="tags"><span class="tag">overlay</span><span class="tag">canvas</span><span class="tag">interactive</span></div>
<a class="btn" href="Whiteboard.html">Open demo</a>
</div>
<div class="card">
<div class="title"><span class="emoji">🗺️</span><strong>Minimap</strong></div>
<p class="desc">Clickable dots for each slide. Jump instantly. Current slide highlighted.</p>
<div class="tags"><span class="tag">navigation</span><span class="tag">UX</span></div>
<a class="btn" href="Minimap.html">Open demo</a>
</div>

<div class="card">
<div class="title"><span class="emoji">✨</span><strong>Media Effects</strong></div>
<p class="desc">Glitch, VHS, and BlurPulse effects toggled via buttons, pure CSS + JS.</p>
<div class="tags"><span class="tag">visual</span><span class="tag">css</span></div>
<a class="btn" href="Effects.html">Open demo</a>
</div>
<div class="card">
<div class="title"><span class="emoji">🎨</span><strong>Slide Overlays</strong></div>
<p class="desc">Dark, grid, and dotted overlays, plus badges and ribbon captions.</p>
<div class="tags"><span class="tag">styling</span><span class="tag">layout</span></div>
<a class="btn" href="Overlays.html">Open demo</a>
</div>
<div class="card">
<div class="title"><span class="emoji">🧪</span><strong>Live Playground</strong></div>
<p class="desc">Edit HTML/CSS/JS and preview immediately in an iframe.</p>
<div class="tags"><span class="tag">education</span><span class="tag">live</span></div>
<a class="btn" href="Playground.html">Open demo</a>
</div>
<div class="card">
<div class="title"><span class="emoji">💻</span><strong>Terminal</strong></div>
<p class="desc">Scripted typing effect simulating CLI output for safe, repeatable demos.</p>
<div class="tags"><span class="tag">demo</span><span class="tag">animation</span></div>
<a class="btn" href="Terminal.html">Open demo</a>
</div>
<div class="card">
<div class="title"><span class="emoji">🎚️</span><strong>Filters</strong></div>
<p class="desc">Adjust blur, grayscale, hue, brightness, and contrast live.</p>
<div class="tags"><span class="tag">image</span><span class="tag">css</span></div>
<a class="btn" href="Filters.html">Open demo</a>
</div>
<div class="card">
<div class="title"><span class="emoji">🏷️</span><strong>Drag-and-Drop</strong></div>
<p class="desc">Move blocks inside a canvas area to build quick diagrams.</p>
<div class="tags"><span class="tag">interactive</span><span class="tag">pointer</span></div>
<a class="btn" href="Dragdrop.html">Open demo</a>
</div>
</div>
<footer>
Tip: Keep this gallery file in the same folder as the demos so links work directly.
</footer>
</div>
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Dynamic Media Filters Demo (CDN)</title>
<!-- Reveal.js via CDN -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/reveal.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/theme/black.min.css" id="theme">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/monokai.min.css">
<style>
.filter-controls { display:grid; grid-template-columns:max-content 1fr; gap:8px 12px; align-items:center; margin-top:10px; }
.filter-target { max-width:60%; border-radius:12px; }
</style>
</head>
<body>
<div class="reveal">
<div class="slides">
<section>
<h2>Dynamic Media Filters</h2>
<p>Use the sliders to apply CSS filters to the image below.</p>
<img id="filterTarget" class="filter-target" src="https://static.slid.es/reveal/image-placeholder.png" alt="sample">
<div class="filter-controls">
<label>Blur</label><input id="fBlur" type="range" min="0" max="10" step="0.5" value="0">
<label>Grayscale</label><input id="fGray" type="range" min="0" max="1" step="0.05" value="0">
<label>Hue</label><input id="fHue" type="range" min="0" max="360" step="1" value="0">
<label>Brightness</label><input id="fBright" type="range" min="0.5" max="1.5" step="0.05" value="1">
<label>Contrast</label><input id="fContrast" type="range" min="0.5" max="1.5" step="0.05" value="1">
</div>
</section>
</div>
</div>

<!-- Reveal.js scripts via CDN -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/reveal.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/notes/notes.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/markdown/markdown.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/reveal.js/4.3.1/plugin/highlight/highlight.min.js"></script>
<script>
Reveal.initialize({
controls: true,
progress: true,
slideNumber: 'c/t',
hash: true,
plugins: [ RevealMarkdown, RevealHighlight, RevealNotes ]
});

function apply(){
const img=document.getElementById('filterTarget');
const blur=fBlur.value, gray=fGray.value, hue=fHue.value, bri=fBright.value, con=fContrast.value;
img.style.filter=`blur(${blur}px) grayscale(${gray}) hue-rotate(${hue}deg) brightness(${bri}) contrast(${con})`;
}
['fBlur','fGray','fHue','fBright','fContrast'].forEach(id=>document.getElementById(id).addEventListener('input',apply));
apply();
</script>
</body>
</html>
Loading