Topic: Dental treatment during pregnancy — trimester-by-trimester safety guide Audience: professional Length: 5-15 pages Style: elegant Design Type: presentation Presentation Outlines: Slide 1: Hero — Dental Care During Pregnancy Description: - Brand: Smile 32 Multi-Speciality Dental Care - Handle: @smile32dental.nagpur - Headline: Dental Care During Pregnancy - Subheadline: Your complete trimester-by-trimester safety guide - Color: deep teal #0F6D73 - Font: Poppins 800 heading, 400 body - Tagline: What's safe, what to avoid & when to schedule Slide 2: The Problem — Why Most Moms Skip the Dentist Description: - Fear of X-rays, medications & procedures keeps expecting mothers away - Untreated dental disease poses real risks to mother and baby - Common myths to bust: - 'X-rays will harm my baby' - 'Skip the dentist for 9 months' - 'Bleeding gums are normal' - 'Anesthesia is unsafe during pregnancy' Slide 3: 1st Trimester — Weeks 1 to 12: Proceed with Caution Description: - Safe: Routine check-up and cleaning - Safe: Dental emergencies must be treated — infection risk > treatment risk - Postpone: Elective procedures — organogenesis phase, nausea risk - Avoid: Routine X-rays unless urgent — use thyroid collar if essential Slide 4: 2nd Trimester — Weeks 13 to 28: The Golden Window Description: - The safest trimester for most dental treatments - Safe: Fillings, extractions and root canals — lidocaine with epinephrine approved - Safe: Dental X-rays with lead apron and thyroid collar shielding - Safe: Scaling and periodontal treatment — pregnancy gingivitis peaks here - Postpone: Cosmetic work — whitening and veneers until after delivery Slide 5: 3rd Trimester — Weeks 29 to 40: Keep It Short and Essential Description: - Emergency treatment only — infection and acute pain must always be treated - Chair position: tilt to left side — avoid flat supine to prevent vena cava compression - Keep appointments under 20 minutes — fatigue and back pain increase significantly - Avoid all elective procedures — preterm labour risk is too high Slide 6: Safe Medications — Quick Reference Guide Description: - Safe medications during pregnancy: - Lidocaine (local anaesthetic) - Penicillin and Amoxicillin - Clindamycin - Paracetamol - Chlorhexidine mouth rinse - Medications to avoid: - Tetracycline (stains baby teeth) - Ibuprofen and NSAIDs - Nitrous oxide in 1st trimester - Metronidazole in 1st trimester - Always inform your dentist of exact trimester before treatment
ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace not found"
mkdir -p /home/daytona/workspace/smile32-dental-pptx
~/smile32-dental-pptx/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_WIDE"; // 13.3" x 7.5"
pres.title = "Dental Care During Pregnancy – Smile 32";
pres.author = "Smile 32 Multi-Speciality Dental Care";
// ── Palette ────────────────────────────────────────────────────────────────
const TEAL = "0F6D73"; // deep teal – primary brand
const TEAL_DARK = "094A4E"; // very dark teal
const TEAL_MID = "187A80"; // slightly lighter teal for accents
const TEAL_LIGHT = "D6F0F1"; // near-white teal tint – content bg
const GOLD = "D4A853"; // warm gold accent
const WHITE = "FFFFFF";
const OFF_WHITE = "F4FBFB"; // near white with teal undertone
const TEXT_DARK = "0D3D40"; // deep teal text
const TEXT_MED = "2A7177"; // medium teal text
const RED_WARN = "C0392B"; // danger / avoid
const GREEN_SAFE = "1D7A4A"; // safe
const AMBER_WAIT = "C07A10"; // postpone / caution
// ── Fonts ───────────────────────────────────────────────────────────────────
const HEADING = "Poppins";
const BODY = "Poppins";
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 1 – HERO
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
// Full dark teal background
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { color: TEAL_DARK }
});
// Decorative arc / large circle top-right
s.addShape(pres.ShapeType.ellipse, {
x: 8.5, y: -2.5, w: 7, h: 7,
fill: { color: TEAL_MID },
line: { color: TEAL_MID }
});
s.addShape(pres.ShapeType.ellipse, {
x: 9.2, y: -1.8, w: 5.8, h: 5.8,
fill: { color: TEAL },
line: { color: TEAL }
});
// Bottom decorative band
s.addShape(pres.ShapeType.rect, {
x: 0, y: 6.7, w: 13.3, h: 0.8,
fill: { color: GOLD },
line: { color: GOLD }
});
// Thin gold vertical accent bar
s.addShape(pres.ShapeType.rect, {
x: 0.55, y: 1.5, w: 0.06, h: 4.2,
fill: { color: GOLD },
line: { color: GOLD }
});
// Brand name
s.addText("Smile 32 Multi-Speciality Dental Care", {
x: 0.75, y: 1.4, w: 7.5, h: 0.45,
fontFace: BODY, fontSize: 13, color: GOLD,
bold: true, charSpacing: 2, margin: 0
});
// Handle
s.addText("@smile32dental.nagpur", {
x: 0.75, y: 1.82, w: 5, h: 0.3,
fontFace: BODY, fontSize: 10, color: "A8D8DA",
bold: false, margin: 0
});
// Main headline
s.addText("Dental Care\nDuring Pregnancy", {
x: 0.75, y: 2.3, w: 8.5, h: 2.2,
fontFace: HEADING, fontSize: 54, color: WHITE,
bold: true, lineSpacingMultiple: 1.1, margin: 0
});
// Sub-headline
s.addText("Your complete trimester-by-trimester safety guide", {
x: 0.75, y: 4.55, w: 8, h: 0.55,
fontFace: BODY, fontSize: 17, color: TEAL_LIGHT,
bold: false, italic: true, margin: 0
});
// Tagline strip
s.addShape(pres.ShapeType.rect, {
x: 0.75, y: 5.3, w: 7.5, h: 0.5,
fill: { color: TEAL_MID },
line: { color: TEAL_MID }
});
s.addText("What's safe, what to avoid & when to schedule", {
x: 0.85, y: 5.3, w: 7.3, h: 0.5,
fontFace: BODY, fontSize: 12.5, color: WHITE,
bold: false, valign: "middle", margin: 0
});
// Footer brand
s.addText("Smile 32 Dental Care | @smile32dental.nagpur", {
x: 0.75, y: 6.78, w: 11, h: 0.35,
fontFace: BODY, fontSize: 9, color: TEAL_DARK,
bold: false, valign: "middle", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 2 – THE PROBLEM
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
// Background
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { color: OFF_WHITE }
});
// Left teal sidebar
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 3.8, h: 7.5,
fill: { color: TEAL }
});
// Slide number
s.addText("02", {
x: 0.25, y: 0.2, w: 1.2, h: 0.55,
fontFace: HEADING, fontSize: 28, color: GOLD,
bold: true, margin: 0
});
// Side label
s.addText("THE PROBLEM", {
x: 0.2, y: 0.85, w: 3.3, h: 0.35,
fontFace: BODY, fontSize: 10, color: TEAL_LIGHT,
bold: true, charSpacing: 3, margin: 0
});
// Sidebar headline
s.addText("Why Most\nMoms Skip\nthe Dentist", {
x: 0.2, y: 1.35, w: 3.3, h: 2.6,
fontFace: HEADING, fontSize: 30, color: WHITE,
bold: true, lineSpacingMultiple: 1.15, margin: 0
});
// Gold divider line on sidebar
s.addShape(pres.ShapeType.line, {
x: 0.2, y: 4.05, w: 3.2, h: 0,
line: { color: GOLD, width: 2 }
});
// Sidebar body text
s.addText("Untreated dental disease poses real risks to both mother and baby — yet fear keeps many away.", {
x: 0.2, y: 4.2, w: 3.3, h: 1.3,
fontFace: BODY, fontSize: 11, color: TEAL_LIGHT,
margin: 0, lineSpacingMultiple: 1.4
});
// Main content area – title
s.addText("4 Myths Keeping Pregnant Women Away", {
x: 4.2, y: 0.5, w: 8.5, h: 0.55,
fontFace: HEADING, fontSize: 20, color: TEXT_DARK,
bold: true, margin: 0
});
// Gold underline
s.addShape(pres.ShapeType.rect, {
x: 4.2, y: 1.05, w: 4.5, h: 0.045,
fill: { color: GOLD }, line: { color: GOLD }
});
// Myth cards – 4 cards in 2x2 grid
const myths = [
{ icon: "☢", myth: "\"X-rays will harm my baby\"", fact: "Digital X-rays with lead apron + thyroid collar are safe. Radiation dose is negligible." },
{ icon: "📅", myth: "\"Skip the dentist for 9 months\"", fact: "Oral infections can worsen pregnancy outcomes. Regular check-ups are recommended." },
{ icon: "🩸", myth: "\"Bleeding gums are normal\"", fact: "Pregnancy gingivitis is common but needs treatment — it's linked to preterm birth." },
{ icon: "💉", myth: "\"Anaesthesia is unsafe in pregnancy\"", fact: "Lidocaine is FDA category B — safe at standard dental doses across all trimesters." },
];
const cols = [4.2, 8.85];
const rows = [1.4, 4.05];
const cw = 4.3, ch = 2.4;
myths.forEach((m, i) => {
const cx = cols[i % 2];
const cy = rows[Math.floor(i / 2)];
// Card background
s.addShape(pres.ShapeType.rect, {
x: cx, y: cy, w: cw, h: ch,
fill: { color: WHITE },
line: { color: "D0E8EA", width: 1 },
shadow: { type: "outer", color: "B0D4D6", blur: 6, offset: 2, angle: 45 }
});
// Left accent bar
s.addShape(pres.ShapeType.rect, {
x: cx, y: cy, w: 0.07, h: ch,
fill: { color: TEAL }, line: { color: TEAL }
});
// Icon
s.addText(m.icon, {
x: cx + 0.18, y: cy + 0.15, w: 0.5, h: 0.45,
fontFace: BODY, fontSize: 20, margin: 0
});
// Myth text
s.addText(m.myth, {
x: cx + 0.18, y: cy + 0.6, w: cw - 0.35, h: 0.5,
fontFace: BODY, fontSize: 12, color: RED_WARN,
bold: true, italic: true, margin: 0
});
// Fact text
s.addText(m.fact, {
x: cx + 0.18, y: cy + 1.15, w: cw - 0.35, h: 1.1,
fontFace: BODY, fontSize: 10.5, color: TEXT_DARK,
margin: 0, lineSpacingMultiple: 1.4
});
});
// Footer
s.addShape(pres.ShapeType.rect, {
x: 0, y: 7.2, w: 13.3, h: 0.3,
fill: { color: TEAL_DARK }, line: { color: TEAL_DARK }
});
s.addText("Smile 32 Multi-Speciality Dental Care | @smile32dental.nagpur", {
x: 0.3, y: 7.21, w: 12, h: 0.28,
fontFace: BODY, fontSize: 8.5, color: TEAL_LIGHT,
valign: "middle", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 3 – 1st TRIMESTER
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
// Background
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { color: TEAL_DARK }
});
// Decorative circle top-right
s.addShape(pres.ShapeType.ellipse, {
x: 10, y: -1.5, w: 5, h: 5,
fill: { color: TEAL_MID }, line: { color: TEAL_MID }
});
s.addShape(pres.ShapeType.ellipse, {
x: 10.5, y: -1, w: 4, h: 4,
fill: { color: TEAL }, line: { color: TEAL }
});
// Header band
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 1.35,
fill: { color: TEAL }, line: { color: TEAL }
});
// Trimester label
s.addText("1ST TRIMESTER", {
x: 0.4, y: 0.12, w: 5, h: 0.38,
fontFace: BODY, fontSize: 11, color: GOLD,
bold: true, charSpacing: 4, margin: 0
});
s.addText("Weeks 1–12 · Proceed with Caution", {
x: 0.4, y: 0.52, w: 9, h: 0.55,
fontFace: HEADING, fontSize: 24, color: WHITE,
bold: true, margin: 0
});
// Week badge
s.addShape(pres.ShapeType.rect, {
x: 11, y: 0.18, w: 1.9, h: 0.95,
fill: { color: GOLD }, line: { color: GOLD }
});
s.addText("W 1–12", {
x: 11, y: 0.18, w: 1.9, h: 0.95,
fontFace: HEADING, fontSize: 17, color: TEAL_DARK,
bold: true, align: "center", valign: "middle", margin: 0
});
// Content rows
const rows = [
{
status: "SAFE",
color: GREEN_SAFE,
bgColor: "E8F5EE",
icon: "✔",
title: "Routine check-up & cleaning",
body: "Dental examination and professional cleaning are safe and recommended. Inform your dentist of your pregnancy and current medications immediately."
},
{
status: "SAFE",
color: GREEN_SAFE,
bgColor: "E8F5EE",
icon: "✔",
title: "Dental emergencies — always treat",
body: "Untreated oral infections pose a greater risk to foetal development than treatment itself. Abscesses, acute pain and infection require immediate care."
},
{
status: "POSTPONE",
color: AMBER_WAIT,
bgColor: "FDF3DC",
icon: "⏸",
title: "Elective procedures",
body: "Organogenesis (organ formation) occurs in weeks 3–8. Postpone elective work — fillings, cosmetics, whitening — until the 2nd trimester."
},
{
status: "AVOID",
color: RED_WARN,
bgColor: "FDECEA",
icon: "✕",
title: "Routine X-rays",
body: "Avoid unless clinically urgent. If X-rays are essential, use a lead apron covering the abdomen AND a thyroid collar without exception."
},
];
rows.forEach((r, i) => {
const y = 1.55 + i * 1.4;
const rh = 1.25;
// Row background
s.addShape(pres.ShapeType.rect, {
x: 0.35, y, w: 12.6, h: rh,
fill: { color: r.bgColor },
line: { color: "E0E0E0", width: 0.5 }
});
// Status pill
s.addShape(pres.ShapeType.rect, {
x: 0.35, y, w: 1.1, h: rh,
fill: { color: r.color }, line: { color: r.color }
});
s.addText(r.icon + "\n" + r.status, {
x: 0.35, y, w: 1.1, h: rh,
fontFace: BODY, fontSize: 9.5, color: WHITE,
bold: true, align: "center", valign: "middle",
lineSpacingMultiple: 1.3, margin: 0
});
// Title
s.addText(r.title, {
x: 1.65, y: y + 0.15, w: 10.9, h: 0.38,
fontFace: HEADING, fontSize: 13.5, color: TEXT_DARK,
bold: true, margin: 0
});
// Body
s.addText(r.body, {
x: 1.65, y: y + 0.53, w: 10.9, h: 0.65,
fontFace: BODY, fontSize: 10.5, color: TEXT_DARK,
margin: 0, lineSpacingMultiple: 1.35
});
});
// Footer
s.addShape(pres.ShapeType.rect, {
x: 0, y: 7.2, w: 13.3, h: 0.3,
fill: { color: GOLD }, line: { color: GOLD }
});
s.addText("Smile 32 Multi-Speciality Dental Care | @smile32dental.nagpur", {
x: 0.3, y: 7.21, w: 12, h: 0.28,
fontFace: BODY, fontSize: 8.5, color: TEAL_DARK,
valign: "middle", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 4 – 2nd TRIMESTER (GOLDEN WINDOW)
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
// Light background
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { color: OFF_WHITE }
});
// Gold top accent bar
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 0.12,
fill: { color: GOLD }, line: { color: GOLD }
});
// Left header column
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0.12, w: 4.4, h: 7.38,
fill: { color: TEAL }
});
s.addText("04", {
x: 0.3, y: 0.3, w: 1.2, h: 0.55,
fontFace: HEADING, fontSize: 28, color: GOLD,
bold: true, margin: 0
});
s.addText("2ND TRIMESTER", {
x: 0.3, y: 0.92, w: 3.7, h: 0.35,
fontFace: BODY, fontSize: 10, color: TEAL_LIGHT,
bold: true, charSpacing: 3, margin: 0
});
s.addText("Weeks 13–28", {
x: 0.3, y: 1.35, w: 3.7, h: 0.52,
fontFace: HEADING, fontSize: 26, color: WHITE,
bold: true, margin: 0
});
// Golden window badge
s.addShape(pres.ShapeType.rect, {
x: 0.3, y: 2.0, w: 3.5, h: 0.7,
fill: { color: GOLD }, line: { color: GOLD }
});
s.addText("★ The Golden Window", {
x: 0.3, y: 2.0, w: 3.5, h: 0.7,
fontFace: BODY, fontSize: 13, color: TEAL_DARK,
bold: true, align: "center", valign: "middle", margin: 0
});
s.addText("The safest trimester for most dental treatments. Foetal organs are formed. Morning sickness has eased. The uterus is not yet large enough to restrict circulation.", {
x: 0.3, y: 2.85, w: 3.7, h: 2.3,
fontFace: BODY, fontSize: 11, color: TEAL_LIGHT,
margin: 0, lineSpacingMultiple: 1.5
});
// Tip box
s.addShape(pres.ShapeType.rect, {
x: 0.3, y: 5.4, w: 3.7, h: 1.6,
fill: { color: TEAL_DARK }, line: { color: GOLD, width: 1.5 }
});
s.addText("Clinical Tip", {
x: 0.45, y: 5.5, w: 3.3, h: 0.32,
fontFace: BODY, fontSize: 10, color: GOLD,
bold: true, charSpacing: 2, margin: 0
});
s.addText("Schedule ALL non-emergency procedures in weeks 14–20 for maximum safety and patient comfort.", {
x: 0.45, y: 5.85, w: 3.3, h: 0.95,
fontFace: BODY, fontSize: 10.5, color: WHITE,
margin: 0, lineSpacingMultiple: 1.4
});
// Right content – 5 procedure rows
const items2 = [
{ status: "SAFE", color: GREEN_SAFE, icon: "✔", title: "Fillings, extractions & root canals", body: "All essential restorative procedures can be performed safely. Lidocaine with epinephrine is FDA category B and approved at standard doses." },
{ status: "SAFE", color: GREEN_SAFE, icon: "✔", title: "Dental X-rays", body: "Permitted with lead apron covering abdomen AND thyroid collar. Digital radiography further minimises exposure." },
{ status: "SAFE", color: GREEN_SAFE, icon: "✔", title: "Scaling & periodontal treatment", body: "Pregnancy gingivitis peaks in this trimester due to elevated progesterone. Periodontal treatment reduces risk of preterm birth." },
{ status: "POSTPONE", color: AMBER_WAIT, icon: "⏸", title: "Cosmetic dentistry", body: "Whitening (hydrogen peroxide) and veneers are elective. Postpone until after delivery — no evidence of foetal safety." },
];
s.addText("What You Can & Cannot Do This Trimester", {
x: 4.8, y: 0.35, w: 8.1, h: 0.5,
fontFace: HEADING, fontSize: 18, color: TEXT_DARK,
bold: true, margin: 0
});
s.addShape(pres.ShapeType.rect, {
x: 4.8, y: 0.87, w: 4.5, h: 0.04,
fill: { color: GOLD }, line: { color: GOLD }
});
items2.forEach((r, i) => {
const y = 1.1 + i * 1.55;
const rh = 1.38;
s.addShape(pres.ShapeType.rect, {
x: 4.8, y, w: 8.1, h: rh,
fill: { color: WHITE },
line: { color: "D8ECEE", width: 1 },
shadow: { type: "outer", color: "C0DCDE", blur: 5, offset: 1.5, angle: 45 }
});
// Status pill left
s.addShape(pres.ShapeType.rect, {
x: 4.8, y, w: 1.0, h: rh,
fill: { color: r.color }, line: { color: r.color }
});
s.addText(r.icon + "\n" + r.status, {
x: 4.8, y, w: 1.0, h: rh,
fontFace: BODY, fontSize: 9, color: WHITE,
bold: true, align: "center", valign: "middle",
lineSpacingMultiple: 1.3, margin: 0
});
s.addText(r.title, {
x: 5.95, y: y + 0.15, w: 6.7, h: 0.4,
fontFace: HEADING, fontSize: 13, color: TEXT_DARK,
bold: true, margin: 0
});
s.addText(r.body, {
x: 5.95, y: y + 0.58, w: 6.7, h: 0.72,
fontFace: BODY, fontSize: 10, color: TEXT_DARK,
margin: 0, lineSpacingMultiple: 1.35
});
});
// Footer
s.addShape(pres.ShapeType.rect, {
x: 0, y: 7.2, w: 13.3, h: 0.3,
fill: { color: TEAL_DARK }, line: { color: TEAL_DARK }
});
s.addText("Smile 32 Multi-Speciality Dental Care | @smile32dental.nagpur", {
x: 0.3, y: 7.21, w: 12, h: 0.28,
fontFace: BODY, fontSize: 8.5, color: TEAL_LIGHT,
valign: "middle", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 5 – 3rd TRIMESTER
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
// Dark background
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { color: "0A3538" }
});
// Diagonal design element top-left
s.addShape(pres.ShapeType.rect, {
x: -0.5, y: -0.5, w: 5.5, h: 3.5,
fill: { color: TEAL_MID }, line: { color: TEAL_MID }
});
s.addShape(pres.ShapeType.rect, {
x: -0.5, y: -0.5, w: 4.5, h: 2.5,
fill: { color: TEAL }, line: { color: TEAL }
});
// Header
s.addText("05", {
x: 0.35, y: 0.2, w: 1.0, h: 0.52,
fontFace: HEADING, fontSize: 26, color: GOLD,
bold: true, margin: 0
});
s.addText("3RD TRIMESTER", {
x: 1.45, y: 0.22, w: 4, h: 0.35,
fontFace: BODY, fontSize: 10, color: TEAL_LIGHT,
bold: true, charSpacing: 3, margin: 0
});
s.addText("Weeks 29–40 · Keep It Short & Essential", {
x: 0.35, y: 0.65, w: 9.5, h: 0.62,
fontFace: HEADING, fontSize: 26, color: WHITE,
bold: true, margin: 0
});
// Gold divider
s.addShape(pres.ShapeType.rect, {
x: 0.35, y: 1.38, w: 12.5, h: 0.04,
fill: { color: GOLD }, line: { color: GOLD }
});
// 4 key-point cards
const cards3 = [
{
icon: "🚨",
heading: "Emergencies only",
body: "Treat infection, acute pain and dental trauma without delay — active infection carries a greater risk to the foetus than any required medication or procedure.",
color: RED_WARN,
bg: "1C1010"
},
{
icon: "🛋",
heading: "Chair positioning",
body: "Tilt the patient 15–30° to the left side. Avoid flat supine position — the uterus compresses the vena cava, reducing cardiac output and causing supine hypotension.",
color: GOLD,
bg: "1C1708"
},
{
icon: "⏱",
heading: "Short appointments",
body: "Keep treatment sessions under 20 minutes. Fatigue and lower back pain increase significantly in the 3rd trimester. Allow frequent position changes.",
color: TEXT_MED,
bg: "081C1D"
},
{
icon: "🚫",
heading: "No elective procedures",
body: "Risk of triggering preterm labour is elevated. Avoid all non-urgent dental work. Cosmetics, whitening, orthodontic adjustments and implants must wait.",
color: RED_WARN,
bg: "1C1010"
},
];
const cardW = 5.9, cardH = 2.35;
const cardPositions = [
{ x: 0.35, y: 1.6 },
{ x: 6.6, y: 1.6 },
{ x: 0.35, y: 4.2 },
{ x: 6.6, y: 4.2 },
];
cards3.forEach((c, i) => {
const { x, y } = cardPositions[i];
// Card background
s.addShape(pres.ShapeType.rect, {
x, y, w: cardW, h: cardH,
fill: { color: c.bg },
line: { color: c.color, width: 1 }
});
// Icon circle
s.addShape(pres.ShapeType.ellipse, {
x: x + 0.2, y: y + 0.2, w: 0.6, h: 0.6,
fill: { color: TEAL }, line: { color: TEAL }
});
s.addText(c.icon, {
x: x + 0.2, y: y + 0.2, w: 0.6, h: 0.6,
fontFace: BODY, fontSize: 14,
align: "center", valign: "middle", margin: 0
});
// Card heading
s.addText(c.heading, {
x: x + 0.95, y: y + 0.25, w: cardW - 1.1, h: 0.45,
fontFace: HEADING, fontSize: 14.5, color: WHITE,
bold: true, margin: 0
});
// Body
s.addText(c.body, {
x: x + 0.2, y: y + 0.82, w: cardW - 0.4, h: 1.4,
fontFace: BODY, fontSize: 10.5, color: "C5E0E2",
margin: 0, lineSpacingMultiple: 1.4
});
});
// Footer
s.addShape(pres.ShapeType.rect, {
x: 0, y: 7.22, w: 13.3, h: 0.28,
fill: { color: GOLD }, line: { color: GOLD }
});
s.addText("Smile 32 Multi-Speciality Dental Care | @smile32dental.nagpur", {
x: 0.3, y: 7.22, w: 12, h: 0.28,
fontFace: BODY, fontSize: 8.5, color: TEAL_DARK,
valign: "middle", margin: 0
});
}
// ══════════════════════════════════════════════════════════════════════════
// SLIDE 6 – SAFE MEDICATIONS
// ══════════════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
// Light teal tint background
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 7.5,
fill: { color: OFF_WHITE }
});
// Top header band
s.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: 13.3, h: 1.4,
fill: { color: TEAL }
});
s.addText("06", {
x: 0.35, y: 0.12, w: 0.9, h: 0.52,
fontFace: HEADING, fontSize: 26, color: GOLD,
bold: true, margin: 0
});
s.addText("MEDICATION GUIDE", {
x: 1.4, y: 0.15, w: 5, h: 0.35,
fontFace: BODY, fontSize: 10, color: TEAL_LIGHT,
bold: true, charSpacing: 3, margin: 0
});
s.addText("Safe Medications — Quick Reference Guide", {
x: 0.35, y: 0.55, w: 9, h: 0.65,
fontFace: HEADING, fontSize: 24, color: WHITE,
bold: true, margin: 0
});
// Warning badge top right
s.addShape(pres.ShapeType.rect, {
x: 10.5, y: 0.2, w: 2.5, h: 0.95,
fill: { color: GOLD }, line: { color: GOLD }
});
s.addText("Always inform\nyour dentist of\nexact trimester", {
x: 10.5, y: 0.2, w: 2.5, h: 0.95,
fontFace: BODY, fontSize: 8, color: TEAL_DARK,
bold: true, align: "center", valign: "middle",
lineSpacingMultiple: 1.3, margin: 0
});
// ─── SAFE column ───────────────────────────────────────────────────
s.addShape(pres.ShapeType.rect, {
x: 0.35, y: 1.6, w: 5.85, h: 5.4,
fill: { color: "EAF7EF" },
line: { color: "B8E0C7", width: 1 }
});
// Column header
s.addShape(pres.ShapeType.rect, {
x: 0.35, y: 1.6, w: 5.85, h: 0.6,
fill: { color: GREEN_SAFE }, line: { color: GREEN_SAFE }
});
s.addText("✔ SAFE TO USE", {
x: 0.35, y: 1.6, w: 5.85, h: 0.6,
fontFace: HEADING, fontSize: 14, color: WHITE,
bold: true, align: "center", valign: "middle", margin: 0
});
const safeItems = [
{ name: "Lidocaine (local anaesthetic)", note: "FDA Category B — standard dental doses safe in all trimesters" },
{ name: "Penicillin & Amoxicillin", note: "First-line antibiotics for dental infections — FDA Category B" },
{ name: "Clindamycin", note: "Second-line antibiotic for penicillin-allergic patients" },
{ name: "Paracetamol (Acetaminophen)", note: "Preferred analgesic — use lowest effective dose, shortest duration" },
{ name: "Chlorhexidine mouth rinse", note: "Safe topical antiseptic for gingivitis and infection control" },
];
safeItems.forEach((item, i) => {
const y = 2.4 + i * 0.82;
s.addShape(pres.ShapeType.rect, {
x: 0.5, y, w: 5.55, h: 0.72,
fill: { color: WHITE },
line: { color: "C8E8D4", width: 0.7 }
});
// Green left bar
s.addShape(pres.ShapeType.rect, {
x: 0.5, y, w: 0.07, h: 0.72,
fill: { color: GREEN_SAFE }, line: { color: GREEN_SAFE }
});
s.addText(item.name, {
x: 0.7, y: y + 0.05, w: 5.2, h: 0.3,
fontFace: BODY, fontSize: 11.5, color: TEXT_DARK,
bold: true, margin: 0
});
s.addText(item.note, {
x: 0.7, y: y + 0.37, w: 5.2, h: 0.3,
fontFace: BODY, fontSize: 9.5, color: "3A7A5A",
margin: 0
});
});
// ─── AVOID column ──────────────────────────────────────────────────
s.addShape(pres.ShapeType.rect, {
x: 6.6, y: 1.6, w: 6.35, h: 5.4,
fill: { color: "FEF0EE" },
line: { color: "F0C0BA", width: 1 }
});
// Column header
s.addShape(pres.ShapeType.rect, {
x: 6.6, y: 1.6, w: 6.35, h: 0.6,
fill: { color: RED_WARN }, line: { color: RED_WARN }
});
s.addText("✕ AVOID / RESTRICT", {
x: 6.6, y: 1.6, w: 6.35, h: 0.6,
fontFace: HEADING, fontSize: 14, color: WHITE,
bold: true, align: "center", valign: "middle", margin: 0
});
const avoidItems = [
{ name: "Tetracycline", note: "Causes permanent discolouration of baby teeth and bone — avoid throughout pregnancy" },
{ name: "Ibuprofen & NSAIDs", note: "Risk of premature closure of ductus arteriosus. Avoid especially in 3rd trimester" },
{ name: "Nitrous oxide", note: "Avoid in 1st trimester — potential teratogenic risk during organogenesis" },
{ name: "Metronidazole", note: "Avoid in 1st trimester — mutagenic in high doses; use after week 14 only if essential" },
];
avoidItems.forEach((item, i) => {
const y = 2.4 + i * 0.95;
s.addShape(pres.ShapeType.rect, {
x: 6.75, y, w: 6.05, h: 0.83,
fill: { color: WHITE },
line: { color: "F0C0BA", width: 0.7 }
});
// Red left bar
s.addShape(pres.ShapeType.rect, {
x: 6.75, y, w: 0.07, h: 0.83,
fill: { color: RED_WARN }, line: { color: RED_WARN }
});
s.addText(item.name, {
x: 6.95, y: y + 0.06, w: 5.7, h: 0.3,
fontFace: BODY, fontSize: 12, color: TEXT_DARK,
bold: true, margin: 0
});
s.addText(item.note, {
x: 6.95, y: y + 0.42, w: 5.7, h: 0.34,
fontFace: BODY, fontSize: 9.5, color: "8B2A20",
margin: 0
});
});
// Bottom disclaimer
s.addShape(pres.ShapeType.rect, {
x: 0.35, y: 7.08, w: 12.6, h: 0.12,
fill: { color: GOLD }, line: { color: GOLD }
});
s.addText("Smile 32 Multi-Speciality Dental Care | @smile32dental.nagpur | This guide is for professional reference only — individualise all clinical decisions.", {
x: 0.35, y: 7.22, w: 12.6, h: 0.25,
fontFace: BODY, fontSize: 7.5, color: TEXT_MED,
margin: 0, align: "center"
});
}
// ══════════════════════════════════════════════════════════════════════════
// WRITE FILE
// ══════════════════════════════════════════════════════════════════════════
pres.writeFile({ fileName: "/home/daytona/workspace/smile32-dental-pptx/Dental_Care_During_Pregnancy_Smile32.pptx" })
.then(() => console.log("✅ PPTX saved successfully."))
.catch(err => { console.error("ERROR:", err); process.exit(1); });
cd /home/daytona/workspace/smile32-dental-pptx && node build.js 2>&1
ls -lh /home/daytona/workspace/smile32-dental-pptx/
Dental Care During Pregnancy Smile32
Presentation · PPTX
#0F6D73) dark background with layered decorative circles, a warm gold bottom band and vertical accent bar. Poppins 800 headline at 54pt in white, gold sub-elements, and your brand name + Instagram handle positioned prominently on the left.Create a one-page summary or handout to accompany this presentation?
~/smile32-dental-pptx/build_handout.py
"""
Smile 32 – Dental Care During Pregnancy
One-page A4 handout (PDF) using ReportLab
"""
from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.lib.units import mm, cm
from reportlab.pdfgen import canvas
from reportlab.platypus import Table, TableStyle
from reportlab.lib.enums import TA_LEFT, TA_CENTER, TA_RIGHT
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
import os
# ── Output path ──────────────────────────────────────────────────────────────
OUT = "/home/daytona/workspace/smile32-dental-pptx/Dental_Care_During_Pregnancy_Handout.pdf"
# ── Palette (hex → ReportLab Color) ─────────────────────────────────────────
def hex2col(h):
h = h.lstrip("#")
return colors.Color(int(h[0:2],16)/255, int(h[2:4],16)/255, int(h[4:6],16)/255)
TEAL = hex2col("0F6D73")
TEAL_DARK = hex2col("094A4E")
TEAL_MID = hex2col("187A80")
TEAL_LIGHT = hex2col("D6F0F1")
GOLD = hex2col("D4A853")
WHITE = colors.white
OFF_WHITE = hex2col("F4FBFB")
TEXT_DARK = hex2col("0D3D40")
TEXT_MED = hex2col("2A7177")
GREEN_SAFE = hex2col("1D7A4A")
AMBER_WAIT = hex2col("C07A10")
RED_WARN = hex2col("C0392B")
LIGHT_GREEN= hex2col("E8F5EE")
LIGHT_AMBER= hex2col("FDF3DC")
LIGHT_RED = hex2col("FDECEA")
# ── Register Google Fonts (system fallback to Helvetica if absent) ───────────
# ReportLab has Helvetica built-in; we'll use it with aliases for now.
# For Poppins-style look, we'll use Helvetica-Bold / Helvetica.
HEADING_FONT = "Helvetica-Bold"
BODY_FONT = "Helvetica"
BODY_BOLD = "Helvetica-Bold"
BODY_OBL = "Helvetica-Oblique"
W, H = A4 # 595.28 x 841.89 pts
MAR = 14*mm
CW = W - 2*MAR # content width
c = canvas.Canvas(OUT, pagesize=A4)
c.setTitle("Dental Care During Pregnancy – Smile 32")
c.setAuthor("Smile 32 Multi-Speciality Dental Care")
c.setSubject("Trimester-by-trimester safety guide")
# ════════════════════════════════════════════════════════════════════════════
# HELPER FUNCTIONS
# ════════════════════════════════════════════════════════════════════════════
def filled_rect(x, y, w, h, fill_color, stroke_color=None, radius=0):
c.saveState()
c.setFillColor(fill_color)
if stroke_color:
c.setStrokeColor(stroke_color)
c.setLineWidth(0.5)
c.roundRect(x, y, w, h, radius, fill=1, stroke=1)
else:
c.setStrokeColor(fill_color)
c.roundRect(x, y, w, h, radius, fill=1, stroke=0)
c.restoreState()
def text_line(txt, x, y, font=BODY_FONT, size=9, color=TEXT_DARK, align="left"):
c.saveState()
c.setFont(font, size)
c.setFillColor(color)
if align == "center":
c.drawCentredString(x, y, txt)
elif align == "right":
c.drawRightString(x, y, txt)
else:
c.drawString(x, y, txt)
c.restoreState()
def wrapped_text(txt, x, y, max_width, font=BODY_FONT, size=8.5, color=TEXT_DARK, line_height=11):
"""Simple word-wrap text block. Returns final y (bottom)."""
from reportlab.pdfbase.pdfmetrics import stringWidth
c.saveState()
c.setFont(font, size)
c.setFillColor(color)
words = txt.split()
line = ""
cy = y
for word in words:
test = (line + " " + word).strip()
if stringWidth(test, font, size) <= max_width:
line = test
else:
c.drawString(x, cy, line)
cy -= line_height
line = word
if line:
c.drawString(x, cy, line)
cy -= line_height
c.restoreState()
return cy
# ════════════════════════════════════════════════════════════════════════════
# HEADER BAND
# ════════════════════════════════════════════════════════════════════════════
HEADER_H = 22*mm
header_y = H - HEADER_H
filled_rect(0, header_y, W, HEADER_H, TEAL_DARK)
# Gold bottom stripe of header
filled_rect(0, header_y, W, 1.5*mm, GOLD)
# Teal mid overlay circle (decorative)
filled_rect(W - 38*mm, header_y - 4*mm, 46*mm, 30*mm, TEAL_MID)
filled_rect(W - 32*mm, header_y - 2*mm, 36*mm, 26*mm, TEAL)
# Brand text
text_line("Smile 32 Multi-Speciality Dental Care", MAR, header_y + 14.5*mm,
font=BODY_BOLD, size=9.5, color=GOLD)
text_line("@smile32dental.nagpur", MAR, header_y + 9.5*mm,
font=BODY_FONT, size=8, color=TEAL_LIGHT)
# Main headline
text_line("DENTAL CARE DURING PREGNANCY", MAR, header_y + 4.5*mm,
font=HEADING_FONT, size=13, color=WHITE)
# Subheadline right-aligned area
text_line("Trimester-by-Trimester Safety Guide", W - MAR, header_y + 4.5*mm,
font=BODY_OBL, size=9, color=TEAL_LIGHT, align="right")
# ════════════════════════════════════════════════════════════════════════════
# SECTION: TRIMESTER OVERVIEW (3 columns)
# ════════════════════════════════════════════════════════════════════════════
SEC_TOP = header_y - 4*mm
COL_GAP = 3*mm
COL_W = (CW - 2*COL_GAP) / 3
PILL_H = 6.5*mm
ROW_H = 7*mm
def trimester_section(col_x, label, weeks, heading_color, bg_color,
safe_items, postpone_items, avoid_items, top_y):
"""Draw one trimester column. Returns bottom y."""
sec_h = 95*mm
# Column card background
filled_rect(col_x, top_y - sec_h, COL_W, sec_h, OFF_WHITE,
stroke_color=TEAL_LIGHT, radius=2)
# Header pill
filled_rect(col_x, top_y - PILL_H, COL_W, PILL_H, heading_color, radius=2)
text_line(label, col_x + COL_W/2, top_y - PILL_H + 1.8*mm,
font=HEADING_FONT, size=9, color=WHITE, align="center")
# Weeks badge
filled_rect(col_x + COL_W - 21*mm, top_y - PILL_H - 6*mm,
21*mm, 5.5*mm, TEAL_DARK, radius=1)
text_line(weeks, col_x + COL_W - 10.5*mm, top_y - PILL_H - 4.2*mm,
font=BODY_BOLD, size=7, color=GOLD, align="center")
cy = top_y - PILL_H - 7*mm
def item_row(items, status, pill_color, row_bg):
nonlocal cy
if not items:
return
# Status label
filled_rect(col_x + 2*mm, cy - 5*mm, 16*mm, 5*mm, pill_color, radius=1)
text_line(status, col_x + 2*mm + 8*mm, cy - 3.4*mm,
font=BODY_BOLD, size=6.5, color=WHITE, align="center")
cy -= 6*mm
for itm in items:
filled_rect(col_x + 2*mm, cy - ROW_H + 1*mm, COL_W - 4*mm, ROW_H - 1*mm, row_bg, radius=1)
# left accent bar
filled_rect(col_x + 2*mm, cy - ROW_H + 1*mm, 1.2*mm, ROW_H - 1*mm, pill_color)
# text
wrapped_text(itm, col_x + 5*mm, cy - 2.2*mm,
COL_W - 8*mm, font=BODY_FONT, size=7.2, color=TEXT_DARK, line_height=8.5)
cy -= ROW_H
item_row(safe_items, "SAFE", GREEN_SAFE, LIGHT_GREEN)
item_row(postpone_items, "POSTPONE", AMBER_WAIT, LIGHT_AMBER)
item_row(avoid_items, "AVOID", RED_WARN, LIGHT_RED)
return cy
# Trimester 1
t1_safe = [
"Routine check-up & cleaning",
"Dental emergencies — treat immediately",
]
t1_post = ["Elective procedures (organogenesis phase)"]
t1_avoid = ["Routine X-rays — use lead apron + thyroid collar if essential"]
# Trimester 2
t2_safe = [
"Fillings, extractions & root canals",
"X-rays with lead apron + thyroid collar",
"Scaling & periodontal treatment",
]
t2_post = ["Cosmetic work — whitening & veneers"]
t2_avoid = []
# Trimester 3
t3_safe = ["Emergencies & acute pain — always treat"]
t3_post = []
t3_avoid = [
"All elective procedures (preterm labour risk)",
"Flat supine — tilt chair 15–30° left",
"Appointments > 20 min (fatigue risk)",
]
col1_x = MAR
col2_x = MAR + COL_W + COL_GAP
col3_x = MAR + 2*(COL_W + COL_GAP)
TRI_TOP = SEC_TOP - 2*mm
trimester_section(col1_x, "1ST TRIMESTER", "Weeks 1–12",
TEAL_MID, OFF_WHITE, t1_safe, t1_post, t1_avoid, TRI_TOP)
trimester_section(col2_x, "2ND TRIMESTER — THE GOLDEN WINDOW", "Weeks 13–28",
GOLD, OFF_WHITE, t2_safe, t2_post, t2_avoid, TRI_TOP)
# For col2 header text, override with dark
# (already drawn above; gold header with teal text)
# Re-draw just the text in dark for gold header
c.saveState()
c.setFont(HEADING_FONT, 9)
c.setFillColor(TEAL_DARK)
c.drawCentredString(col2_x + COL_W/2, TRI_TOP - PILL_H + 1.8*mm, "2ND TRIMESTER · Golden Window")
c.restoreState()
trimester_section(col3_x, "3RD TRIMESTER", "Weeks 29–40",
TEAL_DARK, OFF_WHITE, t3_safe, t3_post, t3_avoid, TRI_TOP)
# ════════════════════════════════════════════════════════════════════════════
# DIVIDER
# ════════════════════════════════════════════════════════════════════════════
DIV_Y = TRI_TOP - 101*mm
filled_rect(MAR, DIV_Y, CW, 1*mm, GOLD)
# ════════════════════════════════════════════════════════════════════════════
# SECTION: MEDICATION REFERENCE TABLE
# ════════════════════════════════════════════════════════════════════════════
MED_TOP = DIV_Y - 3.5*mm
text_line("MEDICATION QUICK REFERENCE", MAR, MED_TOP,
font=HEADING_FONT, size=9, color=TEAL_DARK)
filled_rect(MAR, MED_TOP - 1.5*mm, 72*mm, 0.8*mm, GOLD)
# Two columns: safe | avoid
MCOL_W = (CW - 4*mm) / 2
med_left = MAR
med_right = MAR + MCOL_W + 4*mm
med_top_y = MED_TOP - 5*mm
# SAFE header
filled_rect(med_left, med_top_y - 6*mm, MCOL_W, 6*mm, GREEN_SAFE, radius=1)
text_line("✔ SAFE TO USE", med_left + MCOL_W/2, med_top_y - 4.2*mm,
font=BODY_BOLD, size=8, color=WHITE, align="center")
# AVOID header
filled_rect(med_right, med_top_y - 6*mm, MCOL_W, 6*mm, RED_WARN, radius=1)
text_line("✕ AVOID / RESTRICT", med_right + MCOL_W/2, med_top_y - 4.2*mm,
font=BODY_BOLD, size=8, color=WHITE, align="center")
safe_meds = [
("Lidocaine", "Local anaesthetic — FDA Cat. B, safe all trimesters"),
("Penicillin / Amoxicillin", "First-line antibiotic — FDA Cat. B"),
("Clindamycin", "Second-line — for penicillin-allergic patients"),
("Paracetamol", "Preferred analgesic — lowest dose, shortest duration"),
("Chlorhexidine rinse", "Safe topical antiseptic for gingivitis control"),
]
avoid_meds = [
("Tetracycline", "Permanent discolouration of baby teeth — avoid entire pregnancy"),
("Ibuprofen / NSAIDs", "Risk of premature closure of ductus arteriosus"),
("Nitrous oxide", "Avoid in 1st trimester — potential teratogenic risk"),
("Metronidazole", "Avoid in 1st trimester — use after week 14 only if essential"),
]
MED_ROW_H = 11.5*mm
cy_safe = med_top_y - 7.5*mm
cy_avoid = med_top_y - 7.5*mm
for name, note in safe_meds:
filled_rect(med_left, cy_safe - MED_ROW_H, MCOL_W, MED_ROW_H, LIGHT_GREEN,
stroke_color=hex2col("C8E8D4"), radius=1)
filled_rect(med_left, cy_safe - MED_ROW_H, 1.5*mm, MED_ROW_H, GREEN_SAFE)
text_line(name, med_left + 3.5*mm, cy_safe - 3.5*mm,
font=BODY_BOLD, size=7.8, color=TEXT_DARK)
wrapped_text(note, med_left + 3.5*mm, cy_safe - 8*mm,
MCOL_W - 6*mm, font=BODY_FONT, size=7, color=hex2col("3A7A5A"),
line_height=8.5)
cy_safe -= MED_ROW_H + 1*mm
for name, note in avoid_meds:
filled_rect(med_right, cy_avoid - MED_ROW_H, MCOL_W, MED_ROW_H, LIGHT_RED,
stroke_color=hex2col("F0C0BA"), radius=1)
filled_rect(med_right, cy_avoid - MED_ROW_H, 1.5*mm, MED_ROW_H, RED_WARN)
text_line(name, med_right + 3.5*mm, cy_avoid - 3.5*mm,
font=BODY_BOLD, size=7.8, color=TEXT_DARK)
wrapped_text(note, med_right + 3.5*mm, cy_avoid - 8*mm,
MCOL_W - 6*mm, font=BODY_FONT, size=7, color=hex2col("8B2A20"),
line_height=8.5)
cy_avoid -= MED_ROW_H + 1*mm
# ════════════════════════════════════════════════════════════════════════════
# KEY REMINDER BOX
# ════════════════════════════════════════════════════════════════════════════
# Position just below the medication columns
REM_TOP = min(cy_safe, cy_avoid) - 4*mm
REM_H = 14*mm
filled_rect(MAR, REM_TOP - REM_H, CW, REM_H, TEAL, radius=2)
# Gold left accent
filled_rect(MAR, REM_TOP - REM_H, 3*mm, REM_H, GOLD)
text_line("KEY REMINDERS", MAR + 6*mm, REM_TOP - 4*mm,
font=BODY_BOLD, size=8, color=GOLD)
reminders = [
"Always inform your dentist of your trimester and all current medications before any treatment.",
"Pregnancy gingivitis is NOT normal — schedule periodontal treatment in the 2nd trimester.",
"Untreated oral infection poses more risk to the foetus than appropriately chosen dental treatment.",
]
rem_y = REM_TOP - 7.5*mm
for r in reminders:
# bullet
c.saveState()
c.setFillColor(GOLD)
c.circle(MAR + 6.8*mm, rem_y + 1.2*mm, 1*mm, fill=1, stroke=0)
c.restoreState()
wrapped_text(r, MAR + 9*mm, rem_y,
CW - 12*mm, font=BODY_FONT, size=7.5, color=WHITE, line_height=9)
rem_y -= 5.5*mm
# ════════════════════════════════════════════════════════════════════════════
# FOOTER BAND
# ════════════════════════════════════════════════════════════════════════════
FOOT_H = 8*mm
filled_rect(0, 0, W, FOOT_H, TEAL_DARK)
filled_rect(0, FOOT_H, W, 1*mm, GOLD)
text_line("Smile 32 Multi-Speciality Dental Care | @smile32dental.nagpur",
MAR, 3*mm, font=BODY_BOLD, size=7.5, color=TEAL_LIGHT)
text_line("For professional reference only. Individualise all clinical decisions.",
W - MAR, 3*mm, font=BODY_OBL, size=7, color=hex2col("7BBFC2"), align="right")
# ════════════════════════════════════════════════════════════════════════════
c.save()
print(f"✅ Handout saved: {OUT}")
cd /home/daytona/workspace/smile32-dental-pptx && python build_handout.py 2>&1
ls -lh /home/daytona/workspace/smile32-dental-pptx/
Dental Care During Pregnancy Handout
PDF Document · PDF
instead of downloadable format provide all instructions
| Property | Value |
|---|---|
| Size | A4 (210 × 297 mm) |
| Orientation | Portrait |
| Margins | 14 mm all sides |
| Bleed | 3 mm (if printing professionally) |
| Color mode | CMYK for print / RGB for digital |
| Resolution | 300 dpi minimum |
| Element | Value |
|---|---|
| Primary font | Poppins (Google Fonts — free) |
| Heading weight | Poppins 700 Bold |
| Body weight | Poppins 400 Regular |
| Italic | Poppins 400 Italic |
| Name | Hex | Usage |
|---|---|---|
| Deep Teal | #0F6D73 | Primary brand, section headers |
| Teal Dark | #094A4E | Header band background, footer |
| Teal Mid | #187A80 | Secondary panels, pill headers |
| Teal Light | #D6F0F1 | Subtext on dark backgrounds, card borders |
| Warm Gold | #D4A853 | Accent bars, highlights, bullet points |
| Off White | #F4FBFB | Card backgrounds |
| Text Dark | #0D3D40 | All body text |
| Text Med | #2A7177 | Secondary body text |
| Safe Green | #1D7A4A | Safe status pills and bars |
| Amber Wait | #C07A10 | Postpone status pills |
| Danger Red | #C0392B | Avoid status pills |
| Light Green | #E8F5EE | Safe row backgrounds |
| Light Amber | #FDF3DC | Postpone row backgrounds |
| Light Red | #FDECEA | Avoid row backgrounds |
┌─────────────────────────────────────────────────────┐
│ ZONE 1 — HEADER BAND (~22 mm tall) │
├─────────────────────────────────────────────────────┤
│ ZONE 2 — TRIMESTER 3-COLUMN GRID (~95 mm tall) │
├─────────────────────────────────────────────────────┤
│ ZONE 3 — GOLD DIVIDER LINE (~1 mm tall) │
├─────────────────────────────────────────────────────┤
│ ZONE 4 — MEDICATION TABLE (~75 mm tall) │
├─────────────────────────────────────────────────────┤
│ ZONE 5 — KEY REMINDERS BOX (~14 mm tall) │
├─────────────────────────────────────────────────────┤
│ FOOTER BAND (~8 mm tall) │
└─────────────────────────────────────────────────────┘
#094A4E (Teal Dark)#D4A853 running full width at the bottom edge of the header#187A80, approx. 46 × 30 mm, positioned at the right edge, slightly overlapping the top#0F6D73, approx. 36 × 26 mm, offset 3 mm inward| Text | Font | Size | Color | Position from top of band |
|---|---|---|---|---|
| Smile 32 Multi-Speciality Dental Care | Poppins Bold | 9.5 pt | #D4A853 Gold | ~5 mm from top |
| @smile32dental.nagpur | Poppins Regular | 8 pt | #D6F0F1 Teal Light | ~10 mm from top |
| DENTAL CARE DURING PREGNANCY | Poppins Bold | 13 pt | White | ~17 mm from top |
#D6F0F1, right-aligned#094A4E Teal Dark#D4A853 Gold, centered#0D3D40, starting 5 mm from left edge of column, 2 mm vertical padding| Property | Value |
|---|---|
| Header color | #187A80 Teal Mid |
| Header text | 1ST TRIMESTER (White) |
| Weeks badge | Weeks 1–12 |
| Property | Value |
|---|---|
| Header color | #D4A853 Gold |
| Header text | 2ND TRIMESTER · Golden Window (Teal Dark #0D3D40) |
| Weeks badge | Weeks 13–28 |
| Property | Value |
|---|---|
| Header color | #094A4E Teal Dark |
| Header text | 3RD TRIMESTER (White) |
| Weeks badge | Weeks 29–40 |
#D4A853 Gold
Placed between the trimester grid and the medication section, with ~3.5 mm space above and below.#0D3D40#1D7A4A Safe Green, corner radius 1 mm, 6 mm tall#E8F5EE Light Green, border #C8E8D4, corner radius 1 mm#1D7A4A Safe Green#0D3D40, 3.5 mm from left edge, ~3.5 mm from top#3A7A5A, below drug name| Drug Name | Clinical Note |
|---|---|
| Lidocaine | Local anaesthetic — FDA Cat. B, safe all trimesters |
| Penicillin / Amoxicillin | First-line antibiotic — FDA Cat. B |
| Clindamycin | Second-line — for penicillin-allergic patients |
| Paracetamol | Preferred analgesic — lowest dose, shortest duration |
| Chlorhexidine rinse | Safe topical antiseptic for gingivitis control |
#C0392B Danger Red, corner radius 1 mm, 6 mm tall#FDECEA Light Red, border #F0C0BA, corner radius 1 mm#C0392B Danger Red#0D3D40#8B2A20| Drug Name | Clinical Note |
|---|---|
| Tetracycline | Permanent discolouration of baby teeth — avoid entire pregnancy |
| Ibuprofen / NSAIDs | Risk of premature closure of ductus arteriosus |
| Nitrous oxide | Avoid in 1st trimester — potential teratogenic risk |
| Metronidazole | Avoid in 1st trimester — use after week 14 only if essential |
#0F6D73 Deep Teal#D4A853 Gold (flush left edge of box)#D4A853 Gold#094A4E Teal Dark#D4A853, runs full width at the top edge of the footer#D6F0F1 Teal Light#7BBFC2, right-aligned| Element | Font | Size | Weight | Color |
|---|---|---|---|---|
| Header brand name | Poppins | 9.5 pt | Bold | #D4A853 |
| Header handle | Poppins | 8 pt | Regular | #D6F0F1 |
| Main page title | Poppins | 13 pt | Bold | White |
| Trimester column headers | Poppins | 9 pt | Bold | White or #0D3D40 |
| Weeks badge | Poppins | 7 pt | Bold | #D4A853 |
| Status pills (SAFE etc.) | Poppins | 6.5 pt | Bold | White |
| Item row text | Poppins | 7.2 pt | Regular | #0D3D40 |
| Section label | Poppins | 9 pt | Bold | #0D3D40 |
| Med column header | Poppins | 8 pt | Bold | White |
| Drug name | Poppins | 7.8 pt | Bold | #0D3D40 |
| Drug note | Poppins | 7 pt | Regular | Green or Red variant |
| Key reminders label | Poppins | 8 pt | Bold | #D4A853 |
| Key reminders text | Poppins | 7.5 pt | Regular | White |
| Footer left | Poppins | 7.5 pt | Bold | #D6F0F1 |
| Footer right | Poppins | 7 pt | Italic | #7BBFC2 |
#D4A853.Topic: Dental treatment during pregnancy — trimester-by-trimester safety guide Audience: professional Length: 5-15 pages Style: elegant Design Type: presentation Presentation Outlines: Slide 1: Hero — Dental Care During Pregnancy Description: - Brand: Smile 32 Multi-Speciality Dental Care - Handle: @smile32dental.nagpur - Headline: Dental Care During Pregnancy - Subheadline: Your complete trimester-by-trimester safety guide - Color: deep teal #0F6D73 - Font: Poppins 800 heading, 400 body - Tagline: What's safe, what to avoid & when to schedule Slide 2: The Problem — Why Most Moms Skip the Dentist Description: - Fear of X-rays, medications & procedures keeps expecting mothers away - Untreated dental disease poses real risks to mother and baby - Common myths to bust: - 'X-rays will harm my baby' - 'Skip the dentist for 9 months' - 'Bleeding gums are normal' - 'Anesthesia is unsafe during pregnancy' Slide 3: 1st Trimester — Weeks 1 to 12: Proceed with Caution Description: - Safe: Routine check-up and cleaning - Safe: Dental emergencies must be treated — infection risk > treatment risk - Postpone: Elective procedures — organogenesis phase, nausea risk - Avoid: Routine X-rays unless urgent — use thyroid collar if essential Slide 4: 2nd Trimester — Weeks 13 to 28: The Golden Window Description: - The safest trimester for most dental treatments - Safe: Fillings, extractions and root canals — lidocaine with epinephrine approved - Safe: Dental X-rays with lead apron and thyroid collar shielding - Safe: Scaling and periodontal treatment — pregnancy gingivitis peaks here - Postpone: Cosmetic work — whitening and veneers until after delivery Slide 5: 3rd Trimester — Weeks 29 to 40: Keep It Short and Essential Description: - Emergency treatment only — infection and acute pain must always be treated - Chair position: tilt to left side — avoid flat supine to prevent vena cava compression - Keep appointments under 20 minutes — fatigue and back pain increase significantly - Avoid all elective procedures — preterm labour risk is too high Slide 6: Safe Medications — Quick Reference Guide Description: - Safe medications during pregnancy: - Lidocaine (local anaesthetic) - Penicillin and Amoxicillin - Clindamycin - Paracetamol - Chlorhexidine mouth rinse - Medications to avoid: - Tetracycline (stains baby teeth) - Ibuprofen and NSAIDs - Nitrous oxide in 1st trimester - Metronidazole in 1st trimester - Always inform your dentist of exact trimester before treatment
| Property | Value |
|---|---|
| Slide size | 16:9 widescreen — 33.87 × 19.05 cm (or 1920 × 1080 px) |
| Primary font | Poppins (Google Fonts — free) |
| Heading weight | Poppins 800 ExtraBold |
| Body weight | Poppins 400 Regular |
| Base background | #0F6D73 Deep Teal or #F4FBFB Off-White (alternates per slide) |
| Name | Hex | Usage |
|---|---|---|
| Deep Teal | #0F6D73 | Primary brand color |
| Teal Dark | #094A4E | Dark backgrounds, footer bands |
| Teal Mid | #187A80 | Secondary panels, decorative shapes |
| Teal Light | #D6F0F1 | Subtext on dark bg, card borders |
| Warm Gold | #D4A853 | All accents, highlights, badges |
| Off White | #F4FBFB | Light slide backgrounds |
| Text Dark | #0D3D40 | All body text on light bg |
| Text Med | #2A7177 | Secondary text |
| Safe Green | #1D7A4A | SAFE status elements |
| Amber Wait | #C07A10 | POSTPONE status elements |
| Danger Red | #C0392B | AVOID status elements |
| Light Green | #E8F5EE | SAFE row backgrounds |
| Light Amber | #FDF3DC | POSTPONE row backgrounds |
| Light Red | #FDECEA | AVOID row backgrounds |
#094A4E Teal Dark| Shape | Color | Size | Position |
|---|---|---|---|
| Large circle | #187A80 Teal Mid | ~18.5 × 18.5 cm | Right edge, top — centre at approx. (30 cm, −3 cm) from slide top-left |
| Medium circle | #0F6D73 Deep Teal | ~15 × 15 cm | Offset inward ~2 cm from large circle centre |
#D4A853 Gold#D4A853 GoldSmile 32 Multi-Speciality Dental Care#D4A853 Gold@smile32dental.nagpur#D6F0F1 Teal LightDental Care
During Pregnancy
(two lines)#FFFFFF#D6F0F1 Teal Light#187A80 Teal Mid, ~20 cm wide × 1.3 cm tallWhat's safe, what to avoid & when to scheduleSmile 32 Dental Care | @smile32dental.nagpur#094A4E Teal Dark#F4FBFB Off-White#0F6D73 Deep Teal| Element | Content | Font | Size | Color |
|---|---|---|---|---|
| Slide number | 02 | Poppins 800 | 28 pt | #D4A853 Gold |
| Section label | THE PROBLEM | Poppins 700, letter-spacing +3 | 10 pt | #D6F0F1 |
| Sidebar headline | Why Most Moms Skip the Dentist | Poppins 800, 3 lines | 30 pt | White |
| Gold divider line | Full sidebar width, 2 pt thick | — | — | #D4A853 |
| Sidebar body | Untreated dental disease poses real risks to both mother and baby — yet fear keeps many away. | Poppins 400 | 11 pt | #D6F0F1 |
4 Myths Keeping Pregnant Women Away#0D3D40#D4A853#FFFFFF#D0E8EA#B0D4D6#0F6D73 Deep Teal| Element | Font | Size | Color |
|---|---|---|---|
| Icon (emoji) | — | 20 pt | — |
| Myth text (italic, in quotes) | Poppins 700 Italic | 12 pt | #C0392B Danger Red |
| Fact / rebuttal text | Poppins 400 | 10.5 pt | #0D3D40 Text Dark |
| # | Icon | Myth | Fact |
|---|---|---|---|
| 1 | ☢ | "X-rays will harm my baby" | Digital X-rays with lead apron + thyroid collar are safe. Radiation dose is negligible. |
| 2 | 📅 | "Skip the dentist for 9 months" | Oral infections can worsen pregnancy outcomes. Regular check-ups are recommended. |
| 3 | 🩸 | "Bleeding gums are normal" | Pregnancy gingivitis is common but needs treatment — it's linked to preterm birth. |
| 4 | 💉 | "Anaesthesia is unsafe in pregnancy" | Lidocaine is FDA Category B — safe at standard dental doses across all trimesters. |
#094A4E Teal Dark, flush to bottom edgeSmile 32 Multi-Speciality Dental Care | @smile32dental.nagpur#D6F0F1, left-aligned with margin#094A4E Teal Dark#187A80 Teal Mid, ~13 cm, partially cropped behind top-right corner#0F6D73 Deep Teal, ~10.5 cm, offset 2 cm inward#0F6D73 Deep Teal| Element | Text | Font | Size | Color |
|---|---|---|---|---|
| Trimester label | 1ST TRIMESTER | Poppins 700, letter-spacing +4 | 11 pt | #D4A853 Gold |
| Slide title | Weeks 1–12 · Proceed with Caution | Poppins 800 | 24 pt | White |
| Week badge (top-right of header) | W 1–12 | Poppins 800 | 17 pt | #094A4E on #D4A853 Gold rectangle |
#D4A853 Gold fill, text centered in #094A4E.✔ then SAFE)#0D3D40 Text Dark#0D3D40#1D7A4A | Row bg: #E8F5EE#1D7A4A | Row bg: #E8F5EE#C07A10 | Row bg: #FDF3DC#C0392B | Row bg: #FDECEA#D4A853 GoldSmile 32 Multi-Speciality Dental Care | @smile32dental.nagpur#094A4E Teal Dark#F4FBFB Off-White#D4A853, flush to very top edge#0F6D73 Deep Teal| Element | Content | Font | Size | Color |
|---|---|---|---|---|
| Slide number | 04 | Poppins 800 | 28 pt | #D4A853 Gold |
| Section label | 2ND TRIMESTER | Poppins 700, letter-spacing +3 | 10 pt | #D6F0F1 |
| Weeks | Weeks 13–28 | Poppins 800 | 26 pt | White |
| Golden Window badge | ★ The Golden Window | Poppins 700 | 13 pt | #094A4E on #D4A853 Gold rectangle |
| Badge dimensions | ~9.2 cm wide × 1.8 cm tall | — | — | — |
| Explanatory text | The safest trimester for most dental treatments. Foetal organs are formed. Morning sickness has eased. The uterus is not yet large enough to restrict circulation. | Poppins 400 | 11 pt | #D6F0F1 |
#094A4E Teal Dark#D4A853 GoldClinical Tip — Poppins 700, 10 pt, #D4A853, letter-spacing +2What You Can & Cannot Do This Trimester#0D3D40#D4A853#FFFFFF, border #D8ECEE, subtle drop shadow#0D3D40#0D3D40, line height 1.35×#1D7A4A, #E8F5EE bg)#1D7A4A, #E8F5EE bg)#1D7A4A, #E8F5EE bg)#C07A10, #FDF3DC bg)#094A4E Teal DarkSmile 32 Multi-Speciality Dental Care | @smile32dental.nagpur#D6F0F1#0A3538 (very deep teal, near-black)#187A80 Teal Mid, ~14.5 × 9.5 cm, cropped at slide edge#0F6D73 Deep Teal, ~11.8 × 6.6 cm| Element | Content | Font | Size | Color |
|---|---|---|---|---|
| Slide number | 05 | Poppins 800 | 26 pt | #D4A853 Gold |
| Section label | 3RD TRIMESTER | Poppins 700, letter-spacing +3 | 10 pt | #D6F0F1 |
| Slide title | Weeks 29–40 · Keep It Short & Essential | Poppins 800 | 26 pt | White |
#D4A853| Card | Hue | Left border color |
|---|---|---|
| Card 1 (emergencies) | #1C1010 near-black with red undertone | #C0392B Danger Red |
| Card 2 (chair position) | #1C1708 near-black with amber undertone | #D4A853 Gold |
| Card 3 (short appointments) | #081C1D very deep teal | #2A7177 Teal Med |
| Card 4 (no elective) | #1C1010 near-black with red undertone | #C0392B Danger Red |
#0F6D73 Deep Teal, top-left of card, contains emoji icon#C5E0E2 (pale teal-white), below the icon+heading row, full card width, line height 1.4×#D4A853 Gold, flush to bottomSmile 32 Multi-Speciality Dental Care | @smile32dental.nagpur#094A4E Teal Dark#F4FBFB Off-White#0F6D73 Deep Teal| Element | Content | Font | Size | Color |
|---|---|---|---|---|
| Slide number | 06 | Poppins 800 | 26 pt | #D4A853 Gold |
| Section label | MEDICATION GUIDE | Poppins 700, letter-spacing +3 | 10 pt | #D6F0F1 |
| Slide title | Safe Medications — Quick Reference Guide | Poppins 800 | 24 pt | White |
#D4A853 Gold fill#094A4E Teal Dark):
Always inform
your dentist of
exact trimester#1D7A4A Safe Green✔ SAFE TO USE — Poppins 700, 14 pt, White, centered#E8F5EE Light Green#C8E8D4#1D7A4A Safe Green#0D3D40, starting 10 mm from left#3A7A5A, below drug name| Drug Name | Clinical Note |
|---|---|
| Lidocaine (local anaesthetic) | FDA Category B — standard dental doses safe in all trimesters |
| Penicillin & Amoxicillin | First-line antibiotics for dental infections — FDA Category B |
| Clindamycin | Second-line antibiotic for penicillin-allergic patients |
| Paracetamol (Acetaminophen) | Preferred analgesic — use lowest effective dose, shortest duration |
| Chlorhexidine mouth rinse | Safe topical antiseptic for gingivitis and infection control |
#C0392B Danger Red✕ AVOID / RESTRICT — Poppins 700, 14 pt, White, centered#FDECEA Light Red#F0C0BA#C0392B Danger Red#0D3D40#8B2A20| Drug Name | Clinical Note |
|---|---|
| Tetracycline | Causes permanent discolouration of baby teeth and bone — avoid throughout entire pregnancy |
| Ibuprofen & NSAIDs | Risk of premature closure of ductus arteriosus. Avoid especially in 3rd trimester |
| Nitrous oxide | Avoid in 1st trimester — potential teratogenic risk during organogenesis |
| Metronidazole | Avoid in 1st trimester — mutagenic in high doses; use after week 14 only if essential |
#D4A853, placed ~5 mm above the footer textSmile 32 Multi-Speciality Dental Care | @smile32dental.nagpur | This guide is for professional reference only — individualise all clinical decisions.#2A7177, centeredkj