Can you make a ppt on Caution COVID! Prevention measures.
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace not found"
mkdir -p /home/daytona/workspace/covid-ppt
~/covid-ppt/covid_prevention.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Caution COVID! Prevention Measures";
pres.author = "Health Awareness";
// ─── COLOR PALETTE ───────────────────────────────────────────────
const C = {
darkNavy: "0A1628", // dominant dark bg
navy: "0D2137", // secondary dark
teal: "00B4D8", // primary accent
tealLight: "90E0EF", // soft accent
orange: "FF6B35", // warning accent
white: "FFFFFF",
offWhite: "E8F4F8",
gray: "8EAFC0",
red: "E63946",
green: "4CAF50",
cardBg: "122C42", // card backgrounds
};
// ─── HELPER: add a decorative top bar ────────────────────────────
function topBar(slide, color = C.teal) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: 0.08,
fill: { color }, line: { color },
});
}
// ─── HELPER: section label pill ──────────────────────────────────
function pill(slide, label, x, y, bgColor = C.teal) {
slide.addShape(pres.ShapeType.roundRect, {
x, y, w: 1.7, h: 0.32, rectRadius: 0.16,
fill: { color: bgColor }, line: { color: bgColor },
});
slide.addText(label, {
x, y, w: 1.7, h: 0.32,
fontSize: 9, bold: true, color: C.darkNavy,
align: "center", valign: "middle", margin: 0,
});
}
// ═══════════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE SLIDE
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
// Full-bleed dark background
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
// Big decorative circle (background detail)
sl.addShape(pres.ShapeType.ellipse, {
x: 6.5, y: -1.5, w: 6, h: 6,
fill: { color: C.navy }, line: { color: C.teal, width: 2 },
});
sl.addShape(pres.ShapeType.ellipse, {
x: 7.2, y: -0.8, w: 4.6, h: 4.6,
fill: { color: C.cardBg }, line: { color: C.tealLight, width: 1 },
});
// Virus icon circles decoration (bottom left)
sl.addShape(pres.ShapeType.ellipse, {
x: -0.8, y: 3.8, w: 3, h: 3,
fill: { color: C.navy }, line: { color: C.orange, width: 1.5 },
});
// Top accent bar
topBar(sl, C.teal);
// Bottom accent bar
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 5.55, w: "100%", h: 0.08,
fill: { color: C.orange }, line: { color: C.orange },
});
// CAUTION label
sl.addShape(pres.ShapeType.roundRect, {
x: 0.6, y: 0.9, w: 1.8, h: 0.38, rectRadius: 0.19,
fill: { color: C.orange }, line: { color: C.orange },
});
sl.addText("⚠ CAUTION", {
x: 0.6, y: 0.9, w: 1.8, h: 0.38,
fontSize: 11, bold: true, color: C.white,
align: "center", valign: "middle", margin: 0,
});
// Main title
sl.addText("COVID-19", {
x: 0.6, y: 1.4, w: 7, h: 1.3,
fontSize: 72, bold: true, color: C.teal,
align: "left", valign: "middle", charSpacing: 4, margin: 0,
});
// Subtitle
sl.addText("Prevention Measures", {
x: 0.6, y: 2.65, w: 7, h: 0.65,
fontSize: 28, bold: false, color: C.white,
align: "left", valign: "middle", charSpacing: 2, margin: 0,
});
// Divider line
sl.addShape(pres.ShapeType.rect, {
x: 0.6, y: 3.4, w: 4.5, h: 0.05,
fill: { color: C.tealLight }, line: { color: C.tealLight },
});
// Tagline
sl.addText("Stay Safe. Stay Informed. Protect Each Other.", {
x: 0.6, y: 3.55, w: 7, h: 0.5,
fontSize: 14, italic: true, color: C.gray,
align: "left", valign: "middle", margin: 0,
});
// Virus emoji decoration on circle
sl.addText("🦠", {
x: 8.0, y: 0.2, w: 2, h: 2,
fontSize: 80, align: "center", valign: "middle", margin: 0,
});
// Date
sl.addText("June 2026", {
x: 0.6, y: 5.1, w: 3, h: 0.35,
fontSize: 11, color: C.gray, align: "left", valign: "middle", margin: 0,
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 2 — WHAT IS COVID-19?
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
topBar(sl);
// Left panel
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0.08, w: 3.8, h: 5.545,
fill: { color: C.navy }, line: { color: C.navy },
});
pill(sl, "OVERVIEW", 0.25, 0.3, C.teal);
sl.addText("What is\nCOVID-19?", {
x: 0.25, y: 0.75, w: 3.2, h: 1.6,
fontSize: 30, bold: true, color: C.white,
align: "left", valign: "top", margin: 0,
});
sl.addText("🦠", {
x: 0.5, y: 2.5, w: 2.8, h: 2.5,
fontSize: 100, align: "center", valign: "middle", margin: 0,
});
// Right panel — info cards
const facts = [
{ icon: "🔬", title: "The Virus", body: "Caused by SARS-CoV-2, a coronavirus first detected in Wuhan, China in late 2019." },
{ icon: "🌍", title: "Global Pandemic", body: "Declared a pandemic by the WHO on March 11, 2020, affecting millions worldwide." },
{ icon: "💨", title: "Transmission", body: "Spreads primarily via respiratory droplets and aerosols from infected individuals." },
{ icon: "😷", title: "Symptoms", body: "Fever, cough, fatigue, loss of taste/smell, shortness of breath, and more." },
];
facts.forEach((f, i) => {
const row = Math.floor(i / 2);
const col = i % 2;
const cx = 4.0 + col * 2.95;
const cy = 0.4 + row * 2.4;
sl.addShape(pres.ShapeType.roundRect, {
x: cx, y: cy, w: 2.7, h: 2.1, rectRadius: 0.15,
fill: { color: C.cardBg }, line: { color: C.teal, width: 1 },
});
sl.addText(f.icon, {
x: cx + 0.1, y: cy + 0.1, w: 0.7, h: 0.5,
fontSize: 22, align: "center", valign: "middle", margin: 0,
});
sl.addText(f.title, {
x: cx + 0.1, y: cy + 0.6, w: 2.5, h: 0.38,
fontSize: 13, bold: true, color: C.teal,
align: "left", valign: "middle", margin: 0,
});
sl.addText(f.body, {
x: cx + 0.1, y: cy + 0.95, w: 2.5, h: 1.05,
fontSize: 10, color: C.offWhite,
align: "left", valign: "top", margin: 0,
});
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 3 — MASK UP
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
topBar(sl, C.orange);
pill(sl, "PREVENTION 1 / 6", 0.4, 0.18, C.orange);
sl.addText("😷 Wear a Mask", {
x: 0.4, y: 0.6, w: 9.2, h: 0.8,
fontSize: 34, bold: true, color: C.white,
align: "left", valign: "middle", margin: 0,
});
sl.addShape(pres.ShapeType.rect, {
x: 0.4, y: 1.45, w: 9.2, h: 0.05,
fill: { color: C.orange }, line: { color: C.orange },
});
const points = [
{ icon: "✅", text: "Wear a well-fitting mask that covers nose and mouth completely." },
{ icon: "✅", text: "N95 / KN95 respirators offer the highest protection against aerosols." },
{ icon: "✅", text: "Surgical masks are effective for everyday community settings." },
{ icon: "✅", text: "Change or wash reusable masks daily; dispose of single-use masks properly." },
{ icon: "⚠️", text: "Masks with exhalation valves do NOT protect others — avoid them in public." },
{ icon: "✅", text: "Double-masking (cloth over surgical) provides additional filtration." },
];
points.forEach((p, i) => {
sl.addText(p.icon + " " + p.text, {
x: 0.5, y: 1.65 + i * 0.6,
w: 9.0, h: 0.55,
fontSize: 13.5, color: p.icon === "⚠️" ? C.orange : C.offWhite,
align: "left", valign: "middle", margin: 0,
});
});
// Bottom tip box
sl.addShape(pres.ShapeType.roundRect, {
x: 0.4, y: 5.05, w: 9.2, h: 0.42, rectRadius: 0.12,
fill: { color: C.cardBg }, line: { color: C.teal, width: 1 },
});
sl.addText("💡 Tip: Put your mask on BEFORE entering crowded or enclosed spaces.", {
x: 0.5, y: 5.05, w: 9.0, h: 0.42,
fontSize: 11.5, italic: true, color: C.tealLight,
align: "left", valign: "middle", margin: 0,
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 4 — HAND HYGIENE
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
topBar(sl, C.teal);
pill(sl, "PREVENTION 2 / 6", 0.4, 0.18, C.teal);
sl.addText("🧼 Hand Hygiene", {
x: 0.4, y: 0.6, w: 9.2, h: 0.8,
fontSize: 34, bold: true, color: C.white,
align: "left", valign: "middle", margin: 0,
});
sl.addShape(pres.ShapeType.rect, {
x: 0.4, y: 1.45, w: 9.2, h: 0.05,
fill: { color: C.teal }, line: { color: C.teal },
});
// Steps row
const steps = [
{ n: "01", emoji: "💦", label: "Wet hands", desc: "Use clean, running water (warm or cold)." },
{ n: "02", emoji: "🧴", label: "Apply soap", desc: "Lather backs, between fingers, under nails." },
{ n: "03", emoji: "⏱", label: "Scrub 20s", desc: "Sing 'Happy Birthday' twice as a timer." },
{ n: "04", emoji: "🚿", label: "Rinse well", desc: "Rinse under running water completely." },
{ n: "05", emoji: "🤲", label: "Dry hands", desc: "Use a clean towel or air dry thoroughly." },
];
steps.forEach((s, i) => {
const cx = 0.15 + i * 1.95;
sl.addShape(pres.ShapeType.roundRect, {
x: cx, y: 1.65, w: 1.8, h: 2.8, rectRadius: 0.18,
fill: { color: C.cardBg }, line: { color: C.teal, width: 1 },
});
sl.addText(s.n, {
x: cx, y: 1.75, w: 1.8, h: 0.4,
fontSize: 11, bold: true, color: C.teal,
align: "center", valign: "middle", margin: 0, charSpacing: 2,
});
sl.addText(s.emoji, {
x: cx, y: 2.2, w: 1.8, h: 0.85,
fontSize: 38, align: "center", valign: "middle", margin: 0,
});
sl.addText(s.label, {
x: cx + 0.1, y: 3.1, w: 1.6, h: 0.38,
fontSize: 12, bold: true, color: C.white,
align: "center", valign: "middle", margin: 0,
});
sl.addText(s.desc, {
x: cx + 0.1, y: 3.5, w: 1.6, h: 0.85,
fontSize: 10, color: C.gray,
align: "center", valign: "top", margin: 0,
});
});
// Sanitizer note
sl.addShape(pres.ShapeType.roundRect, {
x: 0.4, y: 4.65, w: 9.2, h: 0.75, rectRadius: 0.14,
fill: { color: C.navy }, line: { color: C.tealLight, width: 1 },
});
sl.addText("🧪 No soap? Use hand sanitizer with at least 60% alcohol. Apply to all surfaces of hands and rub until dry.", {
x: 0.6, y: 4.65, w: 9.0, h: 0.75,
fontSize: 12, color: C.tealLight,
align: "left", valign: "middle", margin: 0,
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 5 — SOCIAL DISTANCING
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
topBar(sl, C.orange);
pill(sl, "PREVENTION 3 / 6", 0.4, 0.18, C.orange);
sl.addText("↔️ Social Distancing", {
x: 0.4, y: 0.6, w: 9.2, h: 0.8,
fontSize: 34, bold: true, color: C.white,
align: "left", valign: "middle", margin: 0,
});
sl.addShape(pres.ShapeType.rect, {
x: 0.4, y: 1.45, w: 9.2, h: 0.05,
fill: { color: C.orange }, line: { color: C.orange },
});
// Big distance visual
sl.addShape(pres.ShapeType.ellipse, {
x: 0.5, y: 1.7, w: 0.8, h: 0.8,
fill: { color: C.teal }, line: { color: C.tealLight },
});
sl.addText("👤", { x: 0.5, y: 1.7, w: 0.8, h: 0.8, fontSize: 20, align: "center", valign: "middle", margin: 0 });
sl.addShape(pres.ShapeType.rect, {
x: 1.4, y: 2.05, w: 2.5, h: 0.06,
fill: { color: C.orange }, line: { color: C.orange },
});
sl.addText("At least 6 feet (2 meters)", {
x: 1.3, y: 1.75, w: 2.7, h: 0.38,
fontSize: 11, bold: true, color: C.orange,
align: "center", valign: "middle", margin: 0,
});
sl.addShape(pres.ShapeType.ellipse, {
x: 4.0, y: 1.7, w: 0.8, h: 0.8,
fill: { color: C.gray }, line: { color: C.gray },
});
sl.addText("👤", { x: 4.0, y: 1.7, w: 0.8, h: 0.8, fontSize: 20, align: "center", valign: "middle", margin: 0 });
const rules = [
{ icon: "🏠", text: "Avoid crowded indoor spaces; prefer outdoor activities when possible." },
{ icon: "🚪", text: "Keep 6 feet (2 m) distance from people outside your household." },
{ icon: "🎭", text: "Avoid gatherings, parties, and large events especially indoors." },
{ icon: "📦", text: "Use curbside pickup, delivery, or drive-through services when available." },
{ icon: "🏢", text: "Work from home if your role allows it; stagger schedules if not." },
{ icon: "🚇", text: "Avoid peak-hour public transit; choose off-peak travel if possible." },
];
rules.forEach((r, i) => {
sl.addText(r.icon + " " + r.text, {
x: 0.5, y: 2.7 + i * 0.49,
w: 9.0, h: 0.46,
fontSize: 13, color: C.offWhite,
align: "left", valign: "middle", margin: 0,
});
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 6 — VENTILATION & INDOOR SAFETY
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
topBar(sl, C.teal);
pill(sl, "PREVENTION 4 / 6", 0.4, 0.18, C.teal);
sl.addText("🌬️ Ventilation & Indoor Safety", {
x: 0.4, y: 0.6, w: 9.2, h: 0.8,
fontSize: 34, bold: true, color: C.white,
align: "left", valign: "middle", margin: 0,
});
sl.addShape(pres.ShapeType.rect, {
x: 0.4, y: 1.45, w: 9.2, h: 0.05,
fill: { color: C.teal }, line: { color: C.teal },
});
const cards = [
{ icon: "🪟", title: "Open Windows", body: "Open windows and doors to allow fresh air circulation whenever possible." },
{ icon: "💨", title: "Use HEPA Filters", body: "HEPA air purifiers capture airborne particles including viral aerosols." },
{ icon: "🌀", title: "Run HVAC", body: "Set HVAC systems to increase fresh air intake and improve filtration ratings." },
{ icon: "🏗", title: "CO₂ Monitoring", body: "CO₂ > 1000 ppm signals poor ventilation — a risk factor for viral spread." },
{ icon: "🚫", title: "Avoid AC Recirculation", body: "In cars and buildings, avoid recirculating interior air without fresh air input." },
{ icon: "⏰", title: "Short Exposures", body: "Limit time spent in poorly ventilated indoor spaces; take outdoor breaks." },
];
cards.forEach((c, i) => {
const col = i % 3;
const row = Math.floor(i / 3);
const cx = 0.3 + col * 3.2;
const cy = 1.65 + row * 1.9;
sl.addShape(pres.ShapeType.roundRect, {
x: cx, y: cy, w: 3.0, h: 1.7, rectRadius: 0.14,
fill: { color: C.cardBg }, line: { color: C.teal, width: 1 },
});
sl.addText(c.icon + " " + c.title, {
x: cx + 0.15, y: cy + 0.12, w: 2.7, h: 0.42,
fontSize: 13.5, bold: true, color: C.teal,
align: "left", valign: "middle", margin: 0,
});
sl.addText(c.body, {
x: cx + 0.15, y: cy + 0.55, w: 2.7, h: 1.05,
fontSize: 10.5, color: C.offWhite,
align: "left", valign: "top", margin: 0,
});
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 7 — VACCINATION
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
topBar(sl, C.green);
pill(sl, "PREVENTION 5 / 6", 0.4, 0.18, C.green);
sl.addText("💉 Get Vaccinated", {
x: 0.4, y: 0.6, w: 9.2, h: 0.8,
fontSize: 34, bold: true, color: C.white,
align: "left", valign: "middle", margin: 0,
});
sl.addShape(pres.ShapeType.rect, {
x: 0.4, y: 1.45, w: 9.2, h: 0.05,
fill: { color: C.green }, line: { color: C.green },
});
// Stats row
const stats = [
{ val: "90%+", label: "Reduction in severe disease & hospitalization" },
{ val: "Free", label: "Available at no cost in most countries" },
{ val: "Safe", label: "Rigorously tested through clinical trials" },
];
stats.forEach((s, i) => {
const cx = 0.35 + i * 3.2;
sl.addShape(pres.ShapeType.roundRect, {
x: cx, y: 1.6, w: 3.0, h: 1.35, rectRadius: 0.16,
fill: { color: C.cardBg }, line: { color: C.green, width: 2 },
});
sl.addText(s.val, {
x: cx, y: 1.65, w: 3.0, h: 0.7,
fontSize: 30, bold: true, color: C.green,
align: "center", valign: "middle", margin: 0,
});
sl.addText(s.label, {
x: cx + 0.1, y: 2.35, w: 2.8, h: 0.55,
fontSize: 11, color: C.offWhite,
align: "center", valign: "middle", margin: 0,
});
});
const vaxPoints = [
{ icon: "💉", text: "Complete the full vaccine series (primary doses + boosters) as recommended." },
{ icon: "🔄", text: "Boosters maintain protection as virus variants evolve over time." },
{ icon: "👶", text: "Vaccines are recommended for eligible children, adults, and seniors alike." },
{ icon: "🤰", text: "Safe and recommended for pregnant and breastfeeding individuals." },
{ icon: "📋", text: "Keep your vaccination record updated; carry it to travel and appointments." },
];
vaxPoints.forEach((p, i) => {
sl.addText(p.icon + " " + p.text, {
x: 0.5, y: 3.1 + i * 0.49,
w: 9.0, h: 0.46,
fontSize: 13, color: C.offWhite,
align: "left", valign: "middle", margin: 0,
});
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 8 — STAY HOME WHEN SICK / TEST & TRACE
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
topBar(sl, C.red);
pill(sl, "PREVENTION 6 / 6", 0.4, 0.18, C.red);
sl.addText("🏠 Stay Home When Sick", {
x: 0.4, y: 0.6, w: 9.2, h: 0.8,
fontSize: 34, bold: true, color: C.white,
align: "left", valign: "middle", margin: 0,
});
sl.addShape(pres.ShapeType.rect, {
x: 0.4, y: 1.45, w: 9.2, h: 0.05,
fill: { color: C.red }, line: { color: C.red },
});
// Two column layout
const leftItems = [
{ icon: "🤒", title: "Isolate Immediately", body: "If you have symptoms or a positive test, isolate from others in your home." },
{ icon: "🧪", title: "Get Tested", body: "Use a rapid antigen test or PCR test. Test on day 1, and again on day 3-5 if negative." },
{ icon: "📞", title: "Contact Tracing", body: "Notify close contacts so they can test and quarantine if necessary." },
];
const rightItems = [
{ icon: "🏥", title: "Seek Medical Help", body: "If you experience difficulty breathing, chest pain, or confusion — call your doctor or 911." },
{ icon: "💊", title: "Antivirals", body: "Antivirals (e.g. Paxlovid) are available for high-risk individuals — consult a doctor quickly." },
{ icon: "✅", title: "When to Return", body: "Return when fever-free for 24h without medication and symptoms are improving." },
];
[...leftItems, ...rightItems].forEach((item, i) => {
const col = i < 3 ? 0 : 1;
const row = i % 3;
const cx = 0.35 + col * 4.9;
const cy = 1.65 + row * 1.27;
sl.addShape(pres.ShapeType.roundRect, {
x: cx, y: cy, w: 4.55, h: 1.15, rectRadius: 0.12,
fill: { color: C.cardBg }, line: { color: col === 0 ? C.red : C.orange, width: 1 },
});
sl.addText(item.icon + " " + item.title, {
x: cx + 0.12, y: cy + 0.08, w: 4.2, h: 0.38,
fontSize: 12.5, bold: true, color: col === 0 ? C.red : C.orange,
align: "left", valign: "middle", margin: 0,
});
sl.addText(item.body, {
x: cx + 0.12, y: cy + 0.45, w: 4.2, h: 0.63,
fontSize: 10.5, color: C.offWhite,
align: "left", valign: "top", margin: 0,
});
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 9 — DO's & DON'Ts
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
topBar(sl, C.teal);
pill(sl, "QUICK REFERENCE", 0.4, 0.18, C.teal);
sl.addText("COVID-19 Do's & Don'ts", {
x: 0.4, y: 0.55, w: 9.2, h: 0.75,
fontSize: 30, bold: true, color: C.white,
align: "left", valign: "middle", margin: 0,
});
sl.addShape(pres.ShapeType.rect, {
x: 0.4, y: 1.3, w: 9.2, h: 0.05,
fill: { color: C.teal }, line: { color: C.teal },
});
// DO column
sl.addShape(pres.ShapeType.roundRect, {
x: 0.3, y: 1.45, w: 4.5, h: 0.5, rectRadius: 0.14,
fill: { color: C.green }, line: { color: C.green },
});
sl.addText("✅ DO", {
x: 0.3, y: 1.45, w: 4.5, h: 0.5,
fontSize: 16, bold: true, color: C.white,
align: "center", valign: "middle", margin: 0,
});
const dos = [
"Wear a mask in crowded or enclosed spaces",
"Wash hands frequently for 20+ seconds",
"Maintain 6-feet distance from others",
"Get vaccinated and get your boosters",
"Ventilate indoor spaces",
"Stay home if feeling unwell",
"Get tested if exposed or symptomatic",
"Follow official health authority guidance",
];
dos.forEach((d, i) => {
sl.addText("✔ " + d, {
x: 0.4, y: 2.05 + i * 0.41,
w: 4.3, h: 0.38,
fontSize: 11.5, color: C.offWhite,
align: "left", valign: "middle", margin: 0,
});
});
// DON'T column
sl.addShape(pres.ShapeType.roundRect, {
x: 5.2, y: 1.45, w: 4.5, h: 0.5, rectRadius: 0.14,
fill: { color: C.red }, line: { color: C.red },
});
sl.addText("🚫 DON'T", {
x: 5.2, y: 1.45, w: 4.5, h: 0.5,
fontSize: 16, bold: true, color: C.white,
align: "center", valign: "middle", margin: 0,
});
const donts = [
"Touch eyes, nose, or mouth with unwashed hands",
"Go out when you are sick or symptomatic",
"Attend large indoor gatherings without precautions",
"Ignore symptoms or delay getting tested",
"Spread unverified health information online",
"Reuse single-use masks",
"Skip vaccines or boosters",
"Dismiss others' safety precautions",
];
donts.forEach((d, i) => {
sl.addText("✖ " + d, {
x: 5.3, y: 2.05 + i * 0.41,
w: 4.3, h: 0.38,
fontSize: 11.5, color: C.offWhite,
align: "left", valign: "middle", margin: 0,
});
});
// Vertical divider
sl.addShape(pres.ShapeType.rect, {
x: 4.85, y: 1.5, w: 0.05, h: 3.9,
fill: { color: C.gray }, line: { color: C.gray },
});
})();
// ═══════════════════════════════════════════════════════════════════
// SLIDE 10 — CLOSING / CALL TO ACTION
// ═══════════════════════════════════════════════════════════════════
(function() {
const sl = pres.addSlide();
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color: C.darkNavy }, line: { color: C.darkNavy },
});
// Background circle
sl.addShape(pres.ShapeType.ellipse, {
x: 2.5, y: -1, w: 8, h: 8,
fill: { color: C.navy }, line: { color: C.teal, width: 1.5 },
});
sl.addShape(pres.ShapeType.ellipse, {
x: 3.5, y: -0.1, w: 6, h: 6,
fill: { color: C.cardBg }, line: { color: C.tealLight, width: 0.5 },
});
topBar(sl, C.teal);
sl.addShape(pres.ShapeType.rect, {
x: 0, y: 5.55, w: "100%", h: 0.08,
fill: { color: C.orange }, line: { color: C.orange },
});
sl.addText("🛡️", {
x: 3.5, y: 0.3, w: 3, h: 1.5,
fontSize: 70, align: "center", valign: "middle", margin: 0,
});
sl.addText("Together, We Stop COVID-19", {
x: 0.5, y: 1.9, w: 9, h: 0.9,
fontSize: 32, bold: true, color: C.white,
align: "center", valign: "middle", charSpacing: 1, margin: 0,
});
sl.addShape(pres.ShapeType.rect, {
x: 2.5, y: 2.88, w: 5, h: 0.05,
fill: { color: C.teal }, line: { color: C.teal },
});
sl.addText("Every small action protects your loved ones, your community,\nand the world. Mask up, wash hands, get vaccinated.", {
x: 0.8, y: 3.0, w: 8.4, h: 1.0,
fontSize: 15, color: C.gray,
align: "center", valign: "middle", margin: 0,
});
// Action pills
const actions = ["😷 Mask Up", "🧼 Wash Hands", "💉 Get Vaccinated", "🏠 Stay Home If Sick"];
actions.forEach((a, i) => {
sl.addShape(pres.ShapeType.roundRect, {
x: 0.4 + i * 2.35, y: 4.15, w: 2.15, h: 0.52, rectRadius: 0.2,
fill: { color: C.teal }, line: { color: C.teal },
});
sl.addText(a, {
x: 0.4 + i * 2.35, y: 4.15, w: 2.15, h: 0.52,
fontSize: 10.5, bold: true, color: C.darkNavy,
align: "center", valign: "middle", margin: 0,
});
});
sl.addText("Stay safe. Protect each other. 💙", {
x: 0.5, y: 4.85, w: 9, h: 0.45,
fontSize: 13, italic: true, color: C.tealLight,
align: "center", valign: "middle", margin: 0,
});
})();
// ─── WRITE FILE ───────────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/covid-ppt/Caution_COVID_Prevention.pptx" })
.then(() => console.log("✅ Presentation saved successfully!"))
.catch(err => console.error("❌ Error:", err));
cd /home/daytona/workspace/covid-ppt && node covid_prevention.js
ls -lh /home/daytona/workspace/covid-ppt/
Caution COVID Prevention
Presentation · PPTX
| # | Slide | Highlights |
|---|---|---|
| 1 | Title Slide | Bold "Caution COVID-19" design with warning pill badge |
| 2 | What is COVID-19? | 4 info cards - virus facts, transmission, symptoms, pandemic history |
| 3 | Wear a Mask | 6 mask-wearing guidelines with color-coded caution tips |
| 4 | Hand Hygiene | Step-by-step 5-card wash routine + hand sanitizer tip |
| 5 | Social Distancing | Distance visual + 6 practical rules |
| 6 | Ventilation & Indoor Safety | 6 tips on airflow, HEPA filters, CO2 monitoring |
| 7 | Get Vaccinated | Stats (90%+ protection), booster guidance, who should vaccinate |
| 8 | Stay Home When Sick | Test & trace, antivirals, when it's safe to return |
| 9 | Do's & Don'ts | Side-by-side green/red comparison list |
| 10 | Call to Action | Closing with 4 action pills and motivational message |