Help with interactive presentation on restoring pelvic floor muscles strength in women
What format should the interactive presentation be in? · Who is the target audience? · What depth of content do you need?
Can you please provide both Power point and html version A bit easy to explain.
Who is the target audience?
For online fitness clients
pelvic floor muscle strengthening exercises women fitness program
mkdir -p /home/daytona/workspace/pelvic-floor-presentation
~/pelvic-floor-presentation/build_pptx.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Restoring Pelvic Floor Muscle Strength";
pres.author = "Online Fitness Program";
// ─── COLOR PALETTE ───────────────────────────────────────────
const C = {
teal: "1A7A6E", // dominant – dark teal
tealLight: "26A699", // accent teal
cream: "F5F0E8", // light background
creamDark: "EAE3D2", // card bg
coral: "E05C4B", // highlight / accent
white: "FFFFFF",
dark: "1C2B2A", // near-black
midGrey: "6B7B7A",
};
// ─── HELPER: background fill ──────────────────────────────────
function bgRect(slide, color) {
slide.addShape(pres.ShapeType.rect, {
x: 0, y: 0, w: "100%", h: "100%",
fill: { color },
line: { type: "none" },
});
}
// ─── HELPER: accent bar ───────────────────────────────────────
function accentBar(slide, color, w = 1.2) {
slide.addShape(pres.ShapeType.rect, {
x: 0.55, y: 1.05, w, h: 0.07,
fill: { color },
line: { type: "none" },
});
}
// ─── HELPER: section pill ─────────────────────────────────────
function pill(slide, label, x, y) {
slide.addShape(pres.ShapeType.roundRect, {
x, y, w: 1.8, h: 0.38,
fill: { color: C.coral },
line: { type: "none" },
rectRadius: 0.15,
});
slide.addText(label, {
x, y, w: 1.8, h: 0.38,
fontSize: 11, bold: true, color: C.white,
align: "center", valign: "middle", margin: 0,
});
}
// ─── HELPER: icon circle ──────────────────────────────────────
function iconCircle(slide, emoji, x, y, size = 0.55, bgColor = C.tealLight) {
slide.addShape(pres.ShapeType.ellipse, {
x, y, w: size, h: size,
fill: { color: bgColor },
line: { type: "none" },
});
slide.addText(emoji, {
x, y, w: size, h: size,
fontSize: 20, align: "center", valign: "middle", margin: 0,
});
}
// ─── HELPER: exercise card ────────────────────────────────────
function exerciseCard(slide, emoji, title, steps, x, y, w = 4.1, h = 3.2) {
slide.addShape(pres.ShapeType.roundRect, {
x, y, w, h,
fill: { color: C.white },
line: { color: C.creamDark, pt: 1 },
shadow: { type: "outer", blur: 8, offset: 3, angle: 45, color: "00000015" },
rectRadius: 0.18,
});
// emoji header strip
slide.addShape(pres.ShapeType.roundRect, {
x, y, w, h: 0.72,
fill: { color: C.teal },
line: { type: "none" },
rectRadius: 0.18,
});
// cover bottom corners of header strip
slide.addShape(pres.ShapeType.rect, {
x, y: y + 0.54, w, h: 0.2,
fill: { color: C.teal },
line: { type: "none" },
});
slide.addText(emoji + " " + title, {
x: x + 0.12, y: y + 0.1, w: w - 0.24, h: 0.52,
fontSize: 13, bold: true, color: C.white,
align: "left", valign: "middle", margin: 0,
});
// steps
const stepItems = steps.map((s, i) => ({
text: `${i + 1}. ${s}`,
options: { breakLine: true, fontSize: 10, color: C.dark, bullet: false },
}));
stepItems[stepItems.length - 1].options.breakLine = false;
slide.addText(stepItems, {
x: x + 0.18, y: y + 0.82, w: w - 0.36, h: h - 0.98,
valign: "top", lineSpacingMultiple: 1.3,
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 1 – TITLE
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.teal);
// decorative circles
s.addShape(pres.ShapeType.ellipse, { x: 7.8, y: -0.8, w: 3.5, h: 3.5, fill: { color: "FFFFFF08" }, line: { type: "none" } });
s.addShape(pres.ShapeType.ellipse, { x: 8.6, y: 0.4, w: 2.0, h: 2.0, fill: { color: "FFFFFF0F" }, line: { type: "none" } });
s.addShape(pres.ShapeType.ellipse, { x: -0.8, y: 3.8, w: 2.2, h: 2.2, fill: { color: "FFFFFF0A" }, line: { type: "none" } });
s.addText("WOMEN'S FITNESS", {
x: 0.7, y: 1.2, w: 8, h: 0.45,
fontSize: 12, bold: true, color: C.tealLight, charSpacing: 5,
align: "left", margin: 0,
});
s.addText("Restoring\nPelvic Floor\nMuscle Strength", {
x: 0.7, y: 1.7, w: 8.5, h: 2.8,
fontSize: 44, bold: true, color: C.white,
align: "left", valign: "top", margin: 0,
});
s.addShape(pres.ShapeType.rect, {
x: 0.7, y: 4.6, w: 2.2, h: 0.06,
fill: { color: C.coral }, line: { type: "none" },
});
s.addText("Your step-by-step guide to rebuilding core pelvic strength — safely, confidently, at home.", {
x: 0.7, y: 4.78, w: 8.4, h: 0.6,
fontSize: 13, color: "FFFFFFCC", italic: true,
align: "left", margin: 0,
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 2 – WHAT IS THE PELVIC FLOOR?
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.cream);
pill(s, "FOUNDATIONS", 0.55, 0.25);
s.addText("What Is the Pelvic Floor?", {
x: 0.55, y: 0.72, w: 9, h: 0.6,
fontSize: 28, bold: true, color: C.dark, margin: 0,
});
accentBar(s, C.teal, 3.5);
// left text column
const facts = [
"A hammock-shaped group of muscles at the base of the pelvis",
"Supports the bladder, uterus, and bowel",
"Controls bladder and bowel openings (sphincter function)",
"Works with your core, diaphragm, and glutes — not in isolation",
"Can weaken from pregnancy, childbirth, ageing, or high-impact training",
];
const factItems = facts.map(f => ({
text: " " + f,
options: { breakLine: true, fontSize: 12.5, color: C.dark, bullet: { type: "bullet", code: "25B6", color: C.coral } },
}));
factItems[factItems.length - 1].options.breakLine = false;
s.addText(factItems, {
x: 0.55, y: 1.4, w: 5.5, h: 3.6,
valign: "top", lineSpacingMultiple: 1.6,
});
// right info box
s.addShape(pres.ShapeType.roundRect, {
x: 6.3, y: 1.35, w: 3.3, h: 3.7,
fill: { color: C.teal },
line: { type: "none" },
rectRadius: 0.2,
});
s.addText("KEY STATS", {
x: 6.3, y: 1.55, w: 3.3, h: 0.4,
fontSize: 11, bold: true, color: C.tealLight, charSpacing: 4,
align: "center", margin: 0,
});
const stats = [
["~32%", "of women experience pelvic floor dysfunction"],
["1 in 3", "women leak urine during exercise"],
["12 wks", "typical time to notice improvement with consistent training"],
];
let sy = 2.05;
for (const [num, label] of stats) {
s.addText(num, {
x: 6.45, y: sy, w: 3.0, h: 0.5,
fontSize: 26, bold: true, color: C.white, align: "center", margin: 0,
});
s.addText(label, {
x: 6.45, y: sy + 0.48, w: 3.0, h: 0.45,
fontSize: 10, color: "FFFFFFCC", align: "center", margin: 0,
});
sy += 1.05;
if (sy < 4.8) {
s.addShape(pres.ShapeType.rect, {
x: 6.7, y: sy - 0.1, w: 2.6, h: 0.03,
fill: { color: "FFFFFF22" }, line: { type: "none" },
});
}
}
}
// ════════════════════════════════════════════════════════════════
// SLIDE 3 – SIGNS OF A WEAK PELVIC FLOOR
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.cream);
pill(s, "AWARENESS", 0.55, 0.25);
s.addText("Signs Your Pelvic Floor Needs Attention", {
x: 0.55, y: 0.72, w: 9, h: 0.6,
fontSize: 26, bold: true, color: C.dark, margin: 0,
});
accentBar(s, C.coral, 4.0);
const signs = [
{ icon: "💧", title: "Leaking", desc: "Urine leaks when coughing, sneezing, laughing or jumping" },
{ icon: "🏃", title: "Exercise issues", desc: "Leaking or pressure during running, jumping jacks, or HIIT" },
{ icon: "🎯", title: "Poor control", desc: "Urgent need to urinate that's hard to hold back" },
{ icon: "⬇️", title: "Heaviness", desc: "Feeling of heaviness or bulging in the pelvic area" },
{ icon: "💔", title: "Discomfort", desc: "Pelvic or lower back pain that doesn't resolve" },
{ icon: "🔇", title: "Low awareness", desc: "Difficulty feeling or engaging pelvic floor muscles at all" },
];
let col = 0, row = 0;
for (const sign of signs) {
const x = 0.55 + col * 3.2;
const y = 1.55 + row * 1.75;
s.addShape(pres.ShapeType.roundRect, {
x, y, w: 3.0, h: 1.55,
fill: { color: C.white },
line: { color: C.creamDark, pt: 1 },
rectRadius: 0.15,
});
iconCircle(s, sign.icon, x + 0.15, y + 0.12, 0.48, C.teal + "22");
s.addText(sign.title, {
x: x + 0.72, y: y + 0.12, w: 2.1, h: 0.32,
fontSize: 12, bold: true, color: C.teal, margin: 0, valign: "middle",
});
s.addText(sign.desc, {
x: x + 0.12, y: y + 0.52, w: 2.76, h: 0.88,
fontSize: 10, color: C.midGrey, valign: "top", margin: 0,
});
col++;
if (col > 2) { col = 0; row++; }
}
}
// ════════════════════════════════════════════════════════════════
// SLIDE 4 – HOW TO FIND YOUR PELVIC FLOOR
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.dark);
s.addShape(pres.ShapeType.ellipse, { x: 7.5, y: -1.0, w: 4.0, h: 4.0, fill: { color: "FFFFFF05" }, line: { type: "none" } });
pill(s, "STEP 1", 0.55, 0.25);
s.addText("How to Find Your Pelvic Floor Muscles", {
x: 0.55, y: 0.72, w: 9, h: 0.6,
fontSize: 26, bold: true, color: C.white, margin: 0,
});
accentBar(s, C.tealLight, 3.8);
s.addText("Before you train it — find it.", {
x: 0.55, y: 1.28, w: 8, h: 0.45,
fontSize: 14, italic: true, color: C.tealLight, margin: 0,
});
const steps = [
{ n: "01", title: "Sit or lie comfortably", body: "Find a relaxed position — lying on your back with knees bent works well." },
{ n: "02", title: "Imagine stopping urine flow", body: "Gently squeeze as if stopping yourself mid-stream. That squeeze is your pelvic floor." },
{ n: "03", title: "Check: nothing else should move", body: "Your glutes, thighs, and belly should stay relaxed. Only the pelvic floor contracts." },
{ n: "04", title: "Breathe normally", body: "Never hold your breath. Breathe out as you squeeze, breathe in as you relax." },
];
let sy = 1.8;
for (const step of steps) {
s.addShape(pres.ShapeType.roundRect, {
x: 0.55, y: sy, w: 9.1, h: 0.82,
fill: { color: "FFFFFF08" },
line: { color: "FFFFFF15", pt: 1 },
rectRadius: 0.12,
});
s.addText(step.n, {
x: 0.7, y: sy, w: 0.7, h: 0.82,
fontSize: 20, bold: true, color: C.coral,
align: "center", valign: "middle", margin: 0,
});
s.addShape(pres.ShapeType.rect, {
x: 1.5, y: sy + 0.2, w: 0.03, h: 0.42,
fill: { color: "FFFFFF25" }, line: { type: "none" },
});
s.addText(step.title, {
x: 1.65, y: sy + 0.05, w: 3.5, h: 0.34,
fontSize: 12, bold: true, color: C.white, valign: "middle", margin: 0,
});
s.addText(step.body, {
x: 1.65, y: sy + 0.38, w: 7.5, h: 0.36,
fontSize: 10.5, color: "FFFFFFBB", valign: "top", margin: 0,
});
sy += 0.95;
}
}
// ════════════════════════════════════════════════════════════════
// SLIDE 5 – FOUNDATIONAL EXERCISES
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.cream);
pill(s, "EXERCISES", 0.55, 0.25);
s.addText("Foundational Exercises", {
x: 0.55, y: 0.72, w: 9, h: 0.6,
fontSize: 28, bold: true, color: C.dark, margin: 0,
});
accentBar(s, C.tealLight, 2.8);
exerciseCard(s, "🌟", "Kegel Hold",
["Lie or sit comfortably", "Squeeze pelvic floor & hold 5-10 sec", "Relax fully for 5 sec", "Repeat 10 times × 3 sets daily", "Build up gradually to 10-sec holds"],
0.35, 1.35, 4.35, 3.8);
exerciseCard(s, "⚡", "Quick Flicks",
["Same position as Kegel", "Squeeze tightly for 1 sec", "Release fully — this is key", "Do 10 quick contractions", "Rest 30 sec, repeat 3 sets"],
5.05, 1.35, 4.35, 3.8);
s.addText("💡 Always fully relax between contractions — the release is as important as the squeeze.", {
x: 0.35, y: 5.22, w: 9.3, h: 0.3,
fontSize: 10, color: C.coral, italic: true, margin: 0,
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 6 – FUNCTIONAL STRENGTH EXERCISES
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.cream);
pill(s, "BUILD STRENGTH", 0.55, 0.25);
s.addText("Functional Strength Exercises", {
x: 0.55, y: 0.72, w: 9, h: 0.6,
fontSize: 28, bold: true, color: C.dark, margin: 0,
});
accentBar(s, C.coral, 3.5);
const exercises = [
{
emoji: "🌉", title: "Glute Bridge",
steps: ["Lie on back, knees bent, feet hip-width", "Exhale & squeeze pelvic floor", "Lift hips to form a straight line", "Hold 3-5 sec, lower slowly", "10-15 reps × 3 sets"],
x: 0.35, y: 1.35,
},
{
emoji: "🧘", title: "Deep Squat",
steps: ["Stand feet shoulder-width apart", "Lower into a deep squat (3-5 sec)", "Feel pelvic floor lengthen/relax", "Drive up, squeezing pelvic floor", "8-12 reps × 3 sets"],
x: 3.45, y: 1.35,
},
{
emoji: "🐦", title: "Bird Dog",
steps: ["Start on all fours, neutral spine", "Exhale & gently engage pelvic floor", "Extend opposite arm & leg", "Hold 5 sec, alternate sides", "8-10 reps per side × 3 sets"],
x: 6.55, y: 1.35,
},
];
for (const ex of exercises) {
exerciseCard(s, ex.emoji, ex.title, ex.steps, ex.x, ex.y, 2.9, 3.85);
}
s.addText("Tip: Connect your breath to movement — exhale on effort, engage pelvic floor at the same time.", {
x: 0.35, y: 5.22, w: 9.3, h: 0.3,
fontSize: 10, color: C.midGrey, italic: true, margin: 0,
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 7 – PROGRESSIVE 4-WEEK PLAN
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.dark);
pill(s, "YOUR PLAN", 0.55, 0.25);
s.addText("4-Week Progressive Programme", {
x: 0.55, y: 0.72, w: 9, h: 0.6,
fontSize: 27, bold: true, color: C.white, margin: 0,
});
accentBar(s, C.coral, 3.4);
const weeks = [
{ w: "Week 1", label: "Awareness", color: C.tealLight, tasks: "Kegel holds × 5 sec / 10 reps • Quick flicks × 10 • 3×/day • Focus: finding the muscles" },
{ w: "Week 2", label: "Foundation", color: "4CC9B0", tasks: "Kegel holds × 8 sec / 10 reps • Quick flicks × 15 • Glute bridge 3×10 • 3×/day" },
{ w: "Week 3", label: "Integration", color: C.coral, tasks: "Kegel holds × 10 sec • Deep squat 3×10 • Bird dog 3×8/side • Combine with daily movement" },
{ w: "Week 4", label: "Challenge", color: "E8963C", tasks: "Full circuit: holds + flicks + bridge + squat + bird dog • Increase reps by 20% • Add resistance band" },
];
let wy = 1.45;
for (const wk of weeks) {
s.addShape(pres.ShapeType.roundRect, {
x: 0.55, y: wy, w: 9.1, h: 0.88,
fill: { color: "FFFFFF0A" },
line: { color: "FFFFFF12", pt: 1 },
rectRadius: 0.12,
});
s.addShape(pres.ShapeType.roundRect, {
x: 0.55, y: wy, w: 1.55, h: 0.88,
fill: { color: wk.color },
line: { type: "none" },
rectRadius: 0.12,
});
s.addShape(pres.ShapeType.rect, {
x: 0.9, y: wy, w: 0.65, h: 0.88,
fill: { color: wk.color },
line: { type: "none" },
});
s.addText(wk.w, {
x: 0.55, y: wy, w: 1.55, h: 0.42,
fontSize: 11, bold: true, color: C.white, align: "center", valign: "middle", margin: 0,
});
s.addText(wk.label.toUpperCase(), {
x: 0.55, y: wy + 0.42, w: 1.55, h: 0.46,
fontSize: 8.5, bold: true, color: "FFFFFFCC", charSpacing: 2,
align: "center", valign: "middle", margin: 0,
});
s.addText(wk.tasks, {
x: 2.25, y: wy + 0.1, w: 7.2, h: 0.68,
fontSize: 10.5, color: "FFFFFFDD", valign: "middle", margin: 0,
});
wy += 1.0;
}
s.addText("Rest days matter — aim for 3-5 sessions per week, not every day.", {
x: 0.55, y: 5.3, w: 9.1, h: 0.28,
fontSize: 10, color: C.tealLight, italic: true, margin: 0,
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 8 – BREATHING & CORE CONNECTION
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.cream);
pill(s, "PRO TIP", 0.55, 0.25);
s.addText("The Breathing-Core-Pelvic Floor Connection", {
x: 0.55, y: 0.72, w: 9.1, h: 0.65,
fontSize: 24, bold: true, color: C.dark, margin: 0,
});
accentBar(s, C.teal, 4.2);
// left diagram-style visual
const cycle = [
{ icon: "🫁", label: "INHALE", desc: "Diaphragm drops\nPelvic floor lengthens\n& softens downward" },
{ icon: "💨", label: "EXHALE", desc: "Diaphragm rises\nPelvic floor lifts\n& engages upward" },
{ icon: "💪", label: "EFFORT", desc: "Always exhale on\nexertion (lift, push,\nsqueeze)" },
];
let cx = 0.55;
for (const c of cycle) {
s.addShape(pres.ShapeType.roundRect, {
x: cx, y: 1.5, w: 2.7, h: 3.6,
fill: { color: C.teal },
line: { type: "none" },
rectRadius: 0.18,
});
s.addText(c.icon, { x: cx, y: 1.65, w: 2.7, h: 0.7, fontSize: 30, align: "center", valign: "middle", margin: 0 });
s.addText(c.label, {
x: cx + 0.1, y: 2.45, w: 2.5, h: 0.38,
fontSize: 12, bold: true, color: C.white, charSpacing: 3,
align: "center", valign: "middle", margin: 0,
});
s.addShape(pres.ShapeType.rect, { x: cx + 0.8, y: 2.88, w: 1.1, h: 0.04, fill: { color: C.coral }, line: { type: "none" } });
s.addText(c.desc, {
x: cx + 0.1, y: 2.98, w: 2.5, h: 1.8,
fontSize: 11, color: "FFFFFFDD", align: "center", valign: "top", margin: 0,
});
if (cx < 5.5) {
s.addText("→", { x: cx + 2.7, y: 2.9, w: 0.35, h: 0.5, fontSize: 22, color: C.coral, align: "center", valign: "middle", margin: 0 });
}
cx += 3.12;
}
s.addShape(pres.ShapeType.roundRect, {
x: 0.55, y: 5.12, w: 9.1, h: 0.38,
fill: { color: C.teal + "22" },
line: { color: C.teal, pt: 1 },
rectRadius: 0.1,
});
s.addText("360° Breathing Tip: As you inhale, feel your ribcage expand 360° — front, sides AND back. Avoid just lifting the chest.", {
x: 0.65, y: 5.12, w: 9.0, h: 0.38,
fontSize: 10, color: C.dark, valign: "middle", margin: 0,
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 9 – WHAT TO AVOID
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.cream);
pill(s, "SAFETY", 0.55, 0.25);
s.addText("What to Avoid & When to Seek Help", {
x: 0.55, y: 0.72, w: 9, h: 0.6,
fontSize: 27, bold: true, color: C.dark, margin: 0,
});
accentBar(s, C.coral, 3.8);
const avoids = [
{ icon: "🚫", text: "Overdoing Kegels — a tight pelvic floor is NOT a strong one; balance with relaxation" },
{ icon: "🚫", text: "Holding your breath during exercise — always breathe through movement" },
{ icon: "🚫", text: "Heavy lifting or high-impact exercise before re-establishing pelvic floor control" },
{ icon: "🚫", text: "Stopping mid-flow to 'test' pelvic floor — this can disrupt bladder muscle signals" },
{ icon: "🚫", text: "Pushing through pain — pelvic pain during exercise needs professional assessment" },
];
let ay = 1.42;
for (const av of avoids) {
s.addShape(pres.ShapeType.roundRect, {
x: 0.55, y: ay, w: 5.6, h: 0.62,
fill: { color: C.white },
line: { color: C.coral + "55", pt: 1 },
rectRadius: 0.1,
});
s.addText(av.icon, { x: 0.62, y: ay, w: 0.55, h: 0.62, fontSize: 16, align: "center", valign: "middle", margin: 0 });
s.addText(av.text, {
x: 1.22, y: ay, w: 4.8, h: 0.62,
fontSize: 10.5, color: C.dark, valign: "middle", margin: 0,
});
ay += 0.74;
}
// see a physio box
s.addShape(pres.ShapeType.roundRect, {
x: 6.45, y: 1.42, w: 3.2, h: 3.72,
fill: { color: C.teal },
line: { type: "none" },
rectRadius: 0.18,
});
s.addText("👩⚕️", { x: 6.45, y: 1.6, w: 3.2, h: 0.7, fontSize: 36, align: "center", valign: "middle", margin: 0 });
s.addText("See a Pelvic\nFloor Physio if:", {
x: 6.55, y: 2.38, w: 3.0, h: 0.65,
fontSize: 13, bold: true, color: C.white, align: "center", margin: 0,
});
const physioReasons = ["Symptoms persist > 3 months", "Pain during/after sex", "Symptoms worsening", "Post-surgery recovery", "Post-partum, any stage"];
const phItems = physioReasons.map((p, i) => ({
text: p,
options: { breakLine: i < physioReasons.length - 1, fontSize: 10.5, color: "FFFFFFDD", bullet: { type: "bullet", code: "25CF", color: C.coral } },
}));
s.addText(phItems, {
x: 6.7, y: 3.1, w: 2.8, h: 2.0,
valign: "top", lineSpacingMultiple: 1.45,
});
}
// ════════════════════════════════════════════════════════════════
// SLIDE 10 – DAILY HABITS
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.dark);
pill(s, "LIFESTYLE", 0.55, 0.25);
s.addText("Daily Habits for a Stronger Pelvic Floor", {
x: 0.55, y: 0.72, w: 9, h: 0.6,
fontSize: 26, bold: true, color: C.white, margin: 0,
});
accentBar(s, C.tealLight, 3.8);
const habits = [
{ icon: "💧", title: "Stay Hydrated", body: "Aim for 6-8 glasses of water daily. Concentrated urine irritates the bladder." },
{ icon: "🥗", title: "High-Fibre Diet", body: "Prevents constipation — straining is one of the top causes of pelvic floor damage." },
{ icon: "🧘", title: "Posture Awareness", body: "Sitting slumped collapses the pelvic floor. Sit tall, feet flat on the floor." },
{ icon: "🏋️", title: "Load Management", body: "Exhale and brace (not bear-down) when lifting anything heavy — shopping, kids, weights." },
{ icon: "😴", title: "Quality Sleep", body: "Rest and recovery allow muscle repair and hormonal regulation." },
{ icon: "📱", title: "Use a Reminder App", body: "Set 3 daily reminders for your pelvic floor exercises. Consistency beats intensity." },
];
let hcol = 0, hrow = 0;
for (const h of habits) {
const hx = 0.55 + hcol * 3.22;
const hy = 1.5 + hrow * 1.88;
s.addShape(pres.ShapeType.roundRect, {
x: hx, y: hy, w: 3.0, h: 1.68,
fill: { color: "FFFFFF0D" },
line: { color: "FFFFFF14", pt: 1 },
rectRadius: 0.15,
});
s.addText(h.icon, { x: hx + 0.12, y: hy + 0.12, w: 0.55, h: 0.55, fontSize: 22, align: "center", valign: "middle", margin: 0 });
s.addText(h.title, {
x: hx + 0.72, y: hy + 0.15, w: 2.15, h: 0.38,
fontSize: 11.5, bold: true, color: C.tealLight, valign: "middle", margin: 0,
});
s.addText(h.body, {
x: hx + 0.15, y: hy + 0.6, w: 2.72, h: 0.98,
fontSize: 10, color: "FFFFFFCC", valign: "top", margin: 0,
});
hcol++;
if (hcol > 2) { hcol = 0; hrow++; }
}
}
// ════════════════════════════════════════════════════════════════
// SLIDE 11 – CLOSING / CALL TO ACTION
// ════════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bgRect(s, C.teal);
s.addShape(pres.ShapeType.ellipse, { x: -1.0, y: -1.0, w: 4.0, h: 4.0, fill: { color: "FFFFFF08" }, line: { type: "none" } });
s.addShape(pres.ShapeType.ellipse, { x: 8.2, y: 3.2, w: 3.0, h: 3.0, fill: { color: "FFFFFF08" }, line: { type: "none" } });
s.addText("You've Got This. 💚", {
x: 0.7, y: 1.0, w: 8.5, h: 0.75,
fontSize: 38, bold: true, color: C.white, align: "center", margin: 0,
});
s.addShape(pres.ShapeType.rect, {
x: 3.8, y: 1.9, w: 2.4, h: 0.07,
fill: { color: C.coral }, line: { type: "none" },
});
s.addText("Your pelvic floor is trainable at any age. Start with awareness, build with consistency,\nand listen to your body every step of the way.", {
x: 0.7, y: 2.1, w: 8.5, h: 0.85,
fontSize: 13.5, color: "FFFFFFDD", align: "center", margin: 0,
});
const actions = ["🎯 Do your first 10 Kegels today", "📅 Book 3 sessions per week", "📲 Download a pelvic floor reminder app", "👩⚕️ See a physio if unsure where to start"];
const actItems = actions.map((a, i) => ({
text: a,
options: { breakLine: i < actions.length - 1, fontSize: 12, color: C.white, bullet: false },
}));
s.addShape(pres.ShapeType.roundRect, {
x: 2.2, y: 3.1, w: 5.5, h: 2.1,
fill: { color: "FFFFFF15" },
line: { color: "FFFFFF30", pt: 1 },
rectRadius: 0.2,
});
s.addText(actItems, {
x: 2.5, y: 3.2, w: 5.0, h: 1.9,
valign: "middle", lineSpacingMultiple: 1.65,
});
}
// ─── WRITE FILE ───────────────────────────────────────────────
pres.writeFile({ fileName: "/home/daytona/workspace/pelvic-floor-presentation/Pelvic_Floor_Strength.pptx" })
.then(() => console.log("PPTX saved successfully"))
.catch(err => { console.error(err); process.exit(1); });
~/pelvic-floor-presentation/pelvic_floor_presentation.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Restoring Pelvic Floor Muscle Strength</title>
<style>
:root {
--teal: #1A7A6E;
--teal-light: #26A699;
--cream: #F5F0E8;
--cream-dark: #EAE3D2;
--coral: #E05C4B;
--dark: #1C2B2A;
--mid-grey: #6B7B7A;
--white: #FFFFFF;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Segoe UI', system-ui, sans-serif;
background: var(--cream);
color: var(--dark);
overflow: hidden;
height: 100vh;
width: 100vw;
}
/* ─ SLIDE CONTAINER ─ */
.deck {
width: 100%; height: 100vh;
position: relative;
}
.slide {
position: absolute; inset: 0;
opacity: 0; pointer-events: none;
transition: opacity 0.45s ease, transform 0.45s ease;
transform: translateX(60px);
padding: clamp(24px, 4vw, 52px);
display: flex; flex-direction: column; justify-content: center;
overflow: hidden;
}
.slide.active {
opacity: 1; pointer-events: all;
transform: translateX(0);
}
.slide.exit {
opacity: 0; transform: translateX(-60px);
}
/* ─ BACKGROUNDS ─ */
.bg-teal { background: var(--teal); }
.bg-cream { background: var(--cream); }
.bg-dark { background: var(--dark); }
/* ─ DECORATION CIRCLES ─ */
.deco-circle {
position: absolute; border-radius: 50%;
pointer-events: none;
background: rgba(255,255,255,0.06);
}
/* ─ NAV ─ */
.nav {
position: fixed; bottom: 24px; left: 50%;
transform: translateX(-50%);
display: flex; align-items: center; gap: 16px;
z-index: 100;
background: rgba(28,43,42,0.75);
backdrop-filter: blur(10px);
border-radius: 50px;
padding: 10px 24px;
box-shadow: 0 4px 24px rgba(0,0,0,0.25);
}
.nav button {
background: none; border: none; cursor: pointer;
color: #fff; font-size: 18px; width: 32px; height: 32px;
border-radius: 50%; display: flex; align-items: center; justify-content: center;
transition: background 0.2s;
}
.nav button:hover { background: rgba(255,255,255,0.15); }
.nav button:disabled { opacity: 0.3; cursor: default; }
.nav .counter {
font-size: 13px; color: rgba(255,255,255,0.8); min-width: 50px; text-align: center;
}
.nav .dots {
display: flex; gap: 6px; align-items: center;
}
.nav .dots .dot {
width: 7px; height: 7px; border-radius: 50%;
background: rgba(255,255,255,0.35);
transition: all 0.25s; cursor: pointer;
}
.nav .dots .dot.active {
background: var(--teal-light); width: 18px; border-radius: 4px;
}
/* ─ PILL LABEL ─ */
.pill {
display: inline-block;
background: var(--coral);
color: #fff;
font-size: 11px; font-weight: 700;
letter-spacing: 2px;
padding: 4px 14px; border-radius: 20px;
margin-bottom: 12px;
width: fit-content;
}
/* ─ HEADINGS ─ */
h1 { font-size: clamp(28px, 5vw, 52px); line-height: 1.1; }
h2 { font-size: clamp(20px, 3vw, 32px); line-height: 1.2; }
h3 { font-size: 15px; }
.accent-bar {
height: 5px; width: 120px; background: var(--teal-light);
border-radius: 3px; margin: 10px 0 18px;
}
.accent-bar.coral { background: var(--coral); }
/* ─ CARDS ─ */
.cards-grid {
display: grid;
gap: 16px;
}
.card {
background: #fff;
border-radius: 16px;
overflow: hidden;
box-shadow: 0 4px 20px rgba(0,0,0,0.08);
display: flex; flex-direction: column;
}
.card-header {
background: var(--teal);
color: #fff;
padding: 12px 16px;
font-weight: 700; font-size: 14px;
display: flex; align-items: center; gap: 8px;
}
.card-body {
padding: 14px 16px;
flex: 1;
}
.card-body ol {
padding-left: 18px;
font-size: 13px;
line-height: 1.7;
color: var(--dark);
}
/* ─ STEP ROWS ─ */
.step-row {
background: rgba(255,255,255,0.07);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 12px;
padding: 12px 16px;
display: flex; align-items: flex-start; gap: 14px;
margin-bottom: 10px;
}
.step-num {
font-size: 22px; font-weight: 900;
color: var(--coral); min-width: 36px;
line-height: 1.1;
}
.step-title {
font-weight: 700; color: #fff; font-size: 13px;
margin-bottom: 4px;
}
.step-body { font-size: 12px; color: rgba(255,255,255,0.75); line-height: 1.5; }
/* ─ WEEK ROWS ─ */
.week-row {
background: rgba(255,255,255,0.07);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 12px;
margin-bottom: 10px;
display: flex; overflow: hidden;
align-items: stretch;
}
.week-label {
padding: 12px 18px;
display: flex; flex-direction: column;
align-items: center; justify-content: center;
color: #fff; min-width: 90px;
font-weight: 700; font-size: 13px; text-align: center;
}
.week-label span { font-size: 9px; letter-spacing: 2px; opacity: 0.85; margin-top: 3px; }
.week-tasks {
padding: 14px 18px;
font-size: 12.5px; color: rgba(255,255,255,0.85);
line-height: 1.6; display: flex; align-items: center;
}
/* ─ STAT BOX ─ */
.stat-box {
background: var(--teal);
border-radius: 16px;
padding: 20px 18px;
display: flex; flex-direction: column; gap: 14px;
}
.stat-item { text-align: center; }
.stat-item .num { font-size: 28px; font-weight: 900; color: #fff; line-height: 1; }
.stat-item .lbl { font-size: 11px; color: rgba(255,255,255,0.75); line-height: 1.4; margin-top: 4px; }
.stat-divider { height: 1px; background: rgba(255,255,255,0.15); }
/* ─ SIGN CARDS ─ */
.signs-grid {
display: grid; grid-template-columns: repeat(3, 1fr);
gap: 12px;
}
.sign-card {
background: #fff; border-radius: 14px;
padding: 14px;
border: 1px solid var(--cream-dark);
box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.sign-icon-wrap {
width: 40px; height: 40px; border-radius: 50%;
background: rgba(26,122,110,0.12);
display: flex; align-items: center; justify-content: center;
font-size: 18px; margin-bottom: 8px;
}
.sign-title { font-size: 12px; font-weight: 700; color: var(--teal); margin-bottom: 4px; }
.sign-desc { font-size: 11px; color: var(--mid-grey); line-height: 1.5; }
/* ─ HABIT CARDS ─ */
.habit-card {
background: rgba(255,255,255,0.08);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 14px;
padding: 14px;
display: flex; gap: 12px; align-items: flex-start;
}
.habit-icon { font-size: 22px; min-width: 28px; }
.habit-title { font-weight: 700; color: var(--teal-light); font-size: 13px; margin-bottom: 4px; }
.habit-body { font-size: 11.5px; color: rgba(255,255,255,0.8); line-height: 1.5; }
/* ─ AVOID ROWS ─ */
.avoid-row {
background: #fff;
border: 1px solid rgba(224,92,75,0.3);
border-radius: 12px;
padding: 10px 14px;
display: flex; align-items: center; gap: 12px;
margin-bottom: 8px;
font-size: 12px; color: var(--dark); line-height: 1.5;
}
.avoid-icon { font-size: 18px; }
/* ─ PHYSIO BOX ─ */
.physio-box {
background: var(--teal);
border-radius: 16px;
padding: 20px 18px; text-align: center; color: #fff;
}
.physio-box h3 { font-size: 14px; margin: 10px 0 8px; }
.physio-box ul { list-style: none; font-size: 12px; line-height: 1.8; color: rgba(255,255,255,0.85); }
.physio-box ul li::before { content: "◆ "; color: var(--coral); }
/* ─ BREATH CARDS ─ */
.breath-cards {
display: grid; grid-template-columns: repeat(3, 1fr);
gap: 14px;
}
.breath-card {
background: var(--teal);
border-radius: 16px;
padding: 24px 16px;
text-align: center; color: #fff;
}
.breath-emoji { font-size: 36px; }
.breath-label { font-size: 12px; font-weight: 700; letter-spacing: 3px; margin: 12px 0 8px; }
.breath-divider { height: 3px; width: 50px; background: var(--coral); margin: 0 auto 10px; border-radius: 2px; }
.breath-desc { font-size: 12px; color: rgba(255,255,255,0.85); line-height: 1.6; }
/* ─ TITLE SLIDE ─ */
.title-tagline {
font-size: clamp(12px, 1.5vw, 15px);
color: rgba(255,255,255,0.8); font-style: italic;
margin-top: 18px; max-width: 700px;
}
.title-divider {
height: 5px; width: 100px; background: var(--coral);
border-radius: 3px; margin: 16px 0;
}
/* ─ CTA SLIDE ─ */
.cta-actions {
background: rgba(255,255,255,0.12);
border: 1px solid rgba(255,255,255,0.25);
border-radius: 18px;
padding: 22px 30px;
margin: 0 auto;
max-width: 550px;
width: 100%;
}
.cta-actions li {
font-size: 14px; color: #fff; line-height: 2.0;
list-style: none;
}
/* ─ PROGRESS BAR ─ */
.progress-bar {
position: fixed; top: 0; left: 0;
height: 3px; background: var(--coral);
transition: width 0.4s ease;
z-index: 200;
}
/* ─ KEYBOARD HINT ─ */
.kb-hint {
position: fixed; bottom: 24px; right: 28px;
font-size: 11px; color: rgba(255,255,255,0.4);
z-index: 100;
}
/* ─ NOTE BOX ─ */
.note-box {
background: rgba(26,122,110,0.12);
border: 1px solid var(--teal);
border-radius: 10px;
padding: 10px 14px;
font-size: 11px; color: var(--dark);
margin-top: 12px;
}
.note-box-dark {
background: rgba(255,255,255,0.06);
border: 1px solid rgba(255,255,255,0.15);
border-radius: 10px;
padding: 10px 14px;
font-size: 11px; color: rgba(255,255,255,0.7);
margin-top: 14px;
}
/* ─ TWO-COL LAYOUT ─ */
.two-col { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: start; }
.three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.two-col-equal { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
/* ─ BULLET LIST ─ */
.fact-list { list-style: none; padding: 0; }
.fact-list li {
display: flex; align-items: flex-start; gap: 10px;
font-size: 13px; line-height: 1.6; color: var(--dark);
margin-bottom: 8px;
}
.fact-list li::before {
content: "▶"; color: var(--coral); font-size: 9px; margin-top: 4px; flex-shrink: 0;
}
/* ─ SLIDE-SPECIFIC TWEAKS ─ */
#slide-1 h1 { color: #fff; }
#slide-1 .pill { background: rgba(255,255,255,0.18); color: var(--teal-light); letter-spacing: 4px; }
.avoid-layout { display: grid; grid-template-columns: 1fr 240px; gap: 20px; align-items: start; }
@media (max-width: 768px) {
.signs-grid { grid-template-columns: repeat(2, 1fr); }
.three-col { grid-template-columns: 1fr 1fr; }
.two-col { grid-template-columns: 1fr; }
.avoid-layout { grid-template-columns: 1fr; }
.breath-cards { grid-template-columns: 1fr; }
.cards-grid { grid-template-columns: 1fr; }
}
</style>
</head>
<body>
<div class="progress-bar" id="progressBar"></div>
<div class="kb-hint">← → keys to navigate</div>
<div class="deck" id="deck">
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 1 – TITLE -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-teal active" id="slide-1">
<div class="deco-circle" style="width:380px;height:380px;right:-60px;top:-80px;"></div>
<div class="deco-circle" style="width:200px;height:200px;right:80px;top:60px;background:rgba(255,255,255,0.04);"></div>
<div class="deco-circle" style="width:240px;height:240px;left:-60px;bottom:-40px;"></div>
<div class="pill">WOMEN'S FITNESS</div>
<h1>Restoring<br>Pelvic Floor<br>Muscle Strength</h1>
<div class="title-divider"></div>
<p class="title-tagline">Your step-by-step guide to rebuilding core pelvic strength — safely, confidently, at home.</p>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 2 – WHAT IS THE PELVIC FLOOR? -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-cream" id="slide-2">
<div class="pill">FOUNDATIONS</div>
<h2>What Is the Pelvic Floor?</h2>
<div class="accent-bar"></div>
<div class="two-col">
<ul class="fact-list">
<li>A hammock-shaped group of muscles at the base of the pelvis</li>
<li>Supports the bladder, uterus, and bowel</li>
<li>Controls bladder and bowel openings (sphincter function)</li>
<li>Works with your core, diaphragm, and glutes — not in isolation</li>
<li>Can weaken from pregnancy, childbirth, ageing, or high-impact training</li>
<li>Overlapping sheets of muscle & connective tissue make it strong — but also vulnerable to damage</li>
</ul>
<div class="stat-box">
<div class="stat-item">
<div class="num">~32%</div>
<div class="lbl">of women experience pelvic floor dysfunction</div>
</div>
<div class="stat-divider"></div>
<div class="stat-item">
<div class="num">1 in 3</div>
<div class="lbl">women leak urine during exercise</div>
</div>
<div class="stat-divider"></div>
<div class="stat-item">
<div class="num">12 wks</div>
<div class="lbl">typical time to notice improvement with consistent training</div>
</div>
</div>
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 3 – SIGNS OF WEAKNESS -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-cream" id="slide-3">
<div class="pill">AWARENESS</div>
<h2>Signs Your Pelvic Floor Needs Attention</h2>
<div class="accent-bar coral"></div>
<div class="signs-grid">
<div class="sign-card">
<div class="sign-icon-wrap">💧</div>
<div class="sign-title">Leaking</div>
<div class="sign-desc">Urine leaks when coughing, sneezing, laughing, or jumping</div>
</div>
<div class="sign-card">
<div class="sign-icon-wrap">🏃</div>
<div class="sign-title">Exercise Issues</div>
<div class="sign-desc">Leaking or pressure during running, jumping jacks, or HIIT workouts</div>
</div>
<div class="sign-card">
<div class="sign-icon-wrap">🎯</div>
<div class="sign-title">Poor Control</div>
<div class="sign-desc">Urgent need to urinate that's difficult to hold back</div>
</div>
<div class="sign-card">
<div class="sign-icon-wrap">⬇️</div>
<div class="sign-title">Heaviness</div>
<div class="sign-desc">Feeling of heaviness or bulging sensation in the pelvic area</div>
</div>
<div class="sign-card">
<div class="sign-icon-wrap">💔</div>
<div class="sign-title">Discomfort</div>
<div class="sign-desc">Pelvic or lower back pain that doesn't resolve with rest</div>
</div>
<div class="sign-card">
<div class="sign-icon-wrap">🔇</div>
<div class="sign-title">Low Awareness</div>
<div class="sign-desc">Difficulty feeling or engaging pelvic floor muscles at all</div>
</div>
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 4 – FIND YOUR PELVIC FLOOR -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-dark" id="slide-4">
<div class="deco-circle" style="width:300px;height:300px;right:-40px;top:-60px;"></div>
<div class="pill">STEP 1</div>
<h2 style="color:#fff;">How to Find Your Pelvic Floor Muscles</h2>
<div class="accent-bar" style="background:var(--teal-light);"></div>
<p style="color:var(--teal-light);font-style:italic;font-size:14px;margin-bottom:16px;">Before you train it — find it.</p>
<div>
<div class="step-row">
<div class="step-num">01</div>
<div>
<div class="step-title">Sit or lie comfortably</div>
<div class="step-body">Find a relaxed position — lying on your back with knees bent works well for beginners.</div>
</div>
</div>
<div class="step-row">
<div class="step-num">02</div>
<div>
<div class="step-title">Imagine stopping urine flow</div>
<div class="step-body">Gently squeeze as if stopping yourself mid-stream. That squeeze is your pelvic floor contracting.</div>
</div>
</div>
<div class="step-row">
<div class="step-num">03</div>
<div>
<div class="step-title">Check: nothing else should move</div>
<div class="step-body">Your glutes, thighs, and belly should remain relaxed. Only the pelvic floor contracts — no bracing elsewhere.</div>
</div>
</div>
<div class="step-row">
<div class="step-num">04</div>
<div>
<div class="step-title">Breathe normally throughout</div>
<div class="step-body">Never hold your breath. Breathe out as you squeeze, breathe in as you fully relax and let go.</div>
</div>
</div>
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 5 – FOUNDATIONAL EXERCISES -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-cream" id="slide-5">
<div class="pill">EXERCISES</div>
<h2>Foundational Exercises</h2>
<div class="accent-bar" style="background:var(--teal-light);"></div>
<div class="two-col-equal">
<div class="card">
<div class="card-header">🌟 Kegel Hold</div>
<div class="card-body">
<ol>
<li>Lie or sit comfortably</li>
<li>Squeeze pelvic floor and hold 5-10 seconds</li>
<li>Relax fully for 5 seconds — this is just as important</li>
<li>Repeat 10 times × 3 sets daily</li>
<li>Build up gradually to 10-second holds over 2-3 weeks</li>
</ol>
</div>
</div>
<div class="card">
<div class="card-header">⚡ Quick Flicks</div>
<div class="card-body">
<ol>
<li>Start in the same relaxed position</li>
<li>Squeeze tightly and quickly for 1 second</li>
<li>Release fully — do not rush onto the next rep</li>
<li>Do 10 quick contractions in a row</li>
<li>Rest 30 seconds, then repeat 3 sets</li>
</ol>
</div>
</div>
</div>
<div class="note-box">
💡 <strong>Key reminder:</strong> Always fully relax between contractions. The release phase is as important as the squeeze for building a balanced, functional pelvic floor.
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 6 – FUNCTIONAL STRENGTH EXERCISES -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-cream" id="slide-6">
<div class="pill">BUILD STRENGTH</div>
<h2>Functional Strength Exercises</h2>
<div class="accent-bar coral"></div>
<div class="three-col">
<div class="card">
<div class="card-header">🌉 Glute Bridge</div>
<div class="card-body">
<ol>
<li>Lie on back, knees bent, feet hip-width apart</li>
<li>Exhale and squeeze pelvic floor</li>
<li>Lift hips to form a straight line shoulder to knee</li>
<li>Hold 3-5 seconds, lower slowly</li>
<li>10-15 reps × 3 sets</li>
</ol>
</div>
</div>
<div class="card">
<div class="card-header">🧘 Deep Squat</div>
<div class="card-body">
<ol>
<li>Stand feet shoulder-width apart</li>
<li>Lower slowly into a deep squat (3-5 seconds down)</li>
<li>Feel pelvic floor lengthen and relax at the bottom</li>
<li>Drive upward, squeezing pelvic floor as you rise</li>
<li>8-12 reps × 3 sets</li>
</ol>
</div>
</div>
<div class="card">
<div class="card-header">🐦 Bird Dog</div>
<div class="card-body">
<ol>
<li>Start on all fours, neutral spine</li>
<li>Exhale and gently engage pelvic floor</li>
<li>Extend opposite arm and leg simultaneously</li>
<li>Hold 5 seconds — no rotation in the hips</li>
<li>8-10 reps per side × 3 sets</li>
</ol>
</div>
</div>
</div>
<p style="font-size:11.5px;color:var(--mid-grey);font-style:italic;margin-top:12px;">
Tip: Connect your breath to every movement — exhale on effort and engage pelvic floor at the same time.
</p>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 7 – 4-WEEK PROGRAMME -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-dark" id="slide-7">
<div class="pill">YOUR PLAN</div>
<h2 style="color:#fff;">4-Week Progressive Programme</h2>
<div class="accent-bar coral"></div>
<div class="week-row">
<div class="week-label" style="background:#26A699;">Week 1<span>AWARENESS</span></div>
<div class="week-tasks">Kegel holds × 5 sec / 10 reps • Quick flicks × 10 • 3×/day • Focus: finding and feeling the muscles</div>
</div>
<div class="week-row">
<div class="week-label" style="background:#4CC9B0;">Week 2<span>FOUNDATION</span></div>
<div class="week-tasks">Kegel holds × 8 sec / 10 reps • Quick flicks × 15 • Glute bridge 3×10 • Continue 3×/day</div>
</div>
<div class="week-row">
<div class="week-label" style="background:#E05C4B;">Week 3<span>INTEGRATION</span></div>
<div class="week-tasks">Kegel holds × 10 sec • Deep squat 3×10 • Bird dog 3×8/side • Combine with daily movement patterns</div>
</div>
<div class="week-row">
<div class="week-label" style="background:#E8963C;">Week 4<span>CHALLENGE</span></div>
<div class="week-tasks">Full circuit: holds + flicks + bridge + squat + bird dog • Increase reps by 20% • Optional: add resistance band</div>
</div>
<div class="note-box-dark">
Rest days matter — aim for 3-5 sessions per week, not every single day. Recovery is when muscles actually get stronger.
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 8 – BREATHING & CORE CONNECTION -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-cream" id="slide-8">
<div class="pill">PRO TIP</div>
<h2>The Breathing-Core-Pelvic Floor Connection</h2>
<div class="accent-bar"></div>
<div class="breath-cards">
<div class="breath-card">
<div class="breath-emoji">🫁</div>
<div class="breath-label">INHALE</div>
<div class="breath-divider"></div>
<div class="breath-desc">Diaphragm drops<br>Pelvic floor lengthens<br>& softens downward</div>
</div>
<div class="breath-card">
<div class="breath-emoji">💨</div>
<div class="breath-label">EXHALE</div>
<div class="breath-divider"></div>
<div class="breath-desc">Diaphragm rises<br>Pelvic floor lifts<br>& engages upward</div>
</div>
<div class="breath-card">
<div class="breath-emoji">💪</div>
<div class="breath-label">EFFORT</div>
<div class="breath-divider"></div>
<div class="breath-desc">Always exhale on<br>exertion — lifting,<br>pushing, squeezing</div>
</div>
</div>
<div class="note-box" style="margin-top:16px;">
<strong>360° Breathing Tip:</strong> As you inhale, feel your ribcage expand in all directions — front, sides AND back. Avoid just lifting the chest. This activates the full pelvic floor system.
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 9 – WHAT TO AVOID -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-cream" id="slide-9">
<div class="pill">SAFETY</div>
<h2>What to Avoid & When to Seek Help</h2>
<div class="accent-bar coral"></div>
<div class="avoid-layout">
<div>
<div class="avoid-row"><span class="avoid-icon">🚫</span> Overdoing Kegels — a tight pelvic floor is NOT a strong one. Balance squeezing with full relaxation.</div>
<div class="avoid-row"><span class="avoid-icon">🚫</span> Holding your breath during exercise — always breathe continuously through all movements.</div>
<div class="avoid-row"><span class="avoid-icon">🚫</span> Heavy lifting or high-impact exercise before re-establishing pelvic floor control and pressure management.</div>
<div class="avoid-row"><span class="avoid-icon">🚫</span> Stopping mid-flow to "test" pelvic floor repeatedly — this can disrupt normal bladder muscle signals.</div>
<div class="avoid-row"><span class="avoid-icon">🚫</span> Pushing through pain — pelvic pain during exercise always needs professional assessment.</div>
</div>
<div class="physio-box">
<div style="font-size:40px;">👩⚕️</div>
<h3>See a Pelvic Floor Physio if:</h3>
<ul>
<li>Symptoms persist > 3 months</li>
<li>Pain during or after sex</li>
<li>Symptoms are worsening</li>
<li>Post-surgery recovery</li>
<li>Post-partum, any stage</li>
</ul>
</div>
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 10 – DAILY HABITS -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-dark" id="slide-10">
<div class="pill">LIFESTYLE</div>
<h2 style="color:#fff;">Daily Habits for a Stronger Pelvic Floor</h2>
<div class="accent-bar" style="background:var(--teal-light);"></div>
<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:12px;">
<div class="habit-card">
<div class="habit-icon">💧</div>
<div><div class="habit-title">Stay Hydrated</div><div class="habit-body">Aim for 6-8 glasses of water daily. Concentrated urine irritates the bladder wall.</div></div>
</div>
<div class="habit-card">
<div class="habit-icon">🥗</div>
<div><div class="habit-title">High-Fibre Diet</div><div class="habit-body">Prevents constipation — straining is one of the top causes of pelvic floor damage.</div></div>
</div>
<div class="habit-card">
<div class="habit-icon">🧘</div>
<div><div class="habit-title">Posture Awareness</div><div class="habit-body">Sitting slumped collapses the pelvic floor. Sit tall with feet flat on the floor.</div></div>
</div>
<div class="habit-card">
<div class="habit-icon">🏋️</div>
<div><div class="habit-title">Load Management</div><div class="habit-body">Exhale and brace (not bear down) when lifting anything heavy — shopping, kids, weights.</div></div>
</div>
<div class="habit-card">
<div class="habit-icon">😴</div>
<div><div class="habit-title">Quality Sleep</div><div class="habit-body">Rest and recovery allow muscle repair and healthy hormonal regulation.</div></div>
</div>
<div class="habit-card">
<div class="habit-icon">📱</div>
<div><div class="habit-title">Use a Reminder App</div><div class="habit-body">Set 3 daily reminders for your exercises. Consistency beats intensity every time.</div></div>
</div>
</div>
</div>
<!-- ══════════════════════════════════════════════════════ -->
<!-- SLIDE 11 – CLOSING -->
<!-- ══════════════════════════════════════════════════════ -->
<div class="slide bg-teal" id="slide-11">
<div class="deco-circle" style="width:320px;height:320px;left:-80px;top:-80px;"></div>
<div class="deco-circle" style="width:240px;height:240px;right:-40px;bottom:-40px;"></div>
<div style="text-align:center;">
<h1 style="color:#fff;">You've Got This. 💚</h1>
<div style="height:5px;width:120px;background:var(--coral);border-radius:3px;margin:16px auto 20px;"></div>
<p style="font-size:15px;color:rgba(255,255,255,0.85);max-width:640px;margin:0 auto 28px;line-height:1.7;">
Your pelvic floor is trainable at any age. Start with awareness, build with consistency,
and listen to your body every step of the way.
</p>
<div class="cta-actions">
<ul>
<li>🎯 Do your first 10 Kegels today</li>
<li>📅 Book 3 sessions per week in your calendar</li>
<li>📲 Download a pelvic floor reminder app</li>
<li>👩⚕️ See a physio if you're unsure where to start</li>
</ul>
</div>
</div>
</div>
</div><!-- end deck -->
<!-- ─── NAVIGATION ──────────────────────────────────────── -->
<nav class="nav" id="nav">
<button id="prevBtn" onclick="changeSlide(-1)" disabled>←</button>
<div class="dots" id="dots"></div>
<span class="counter" id="counter">1 / 11</span>
<button id="nextBtn" onclick="changeSlide(1)">→</button>
</nav>
<script>
const slides = document.querySelectorAll('.slide');
const total = slides.length;
let current = 0;
// Build dots
const dotsEl = document.getElementById('dots');
for (let i = 0; i < total; i++) {
const d = document.createElement('div');
d.className = 'dot' + (i === 0 ? ' active' : '');
d.addEventListener('click', () => goTo(i));
dotsEl.appendChild(d);
}
function goTo(n) {
slides[current].classList.remove('active');
slides[current].classList.add('exit');
setTimeout(() => slides[current - (n > current ? 0 : 0)].classList.remove('exit'), 450);
// remove exit class after transition
const prev = current;
setTimeout(() => slides[prev].classList.remove('exit'), 500);
current = n;
slides[current].classList.add('active');
// update dots
document.querySelectorAll('.dot').forEach((d, i) => d.classList.toggle('active', i === current));
// update counter
document.getElementById('counter').textContent = (current + 1) + ' / ' + total;
// update buttons
document.getElementById('prevBtn').disabled = current === 0;
document.getElementById('nextBtn').disabled = current === total - 1;
// update progress bar
document.getElementById('progressBar').style.width = ((current + 1) / total * 100) + '%';
}
function changeSlide(dir) {
const n = current + dir;
if (n >= 0 && n < total) goTo(n);
}
// Keyboard navigation
document.addEventListener('keydown', e => {
if (e.key === 'ArrowRight' || e.key === 'ArrowDown') changeSlide(1);
if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') changeSlide(-1);
});
// Touch/swipe support
let touchStartX = 0;
document.addEventListener('touchstart', e => { touchStartX = e.touches[0].clientX; });
document.addEventListener('touchend', e => {
const dx = e.changedTouches[0].clientX - touchStartX;
if (Math.abs(dx) > 50) changeSlide(dx < 0 ? 1 : -1);
});
// Init progress bar
document.getElementById('progressBar').style.width = (1 / total * 100) + '%';
</script>
</body>
</html>
cd /home/daytona/workspace/pelvic-floor-presentation && node build_pptx.js
transparency property instead.cd /home/daytona/workspace/pelvic-floor-presentation && node -e " const fs = require('fs'); let code = fs.readFileSync('build_pptx.js', 'utf8'); // Replace 8-digit hex (alpha) colors with proper 6-digit + transparency // Decorative overlay shapes: use solid color with high transparency code = code.replace(/\"FFFFFF08\"/g, '\"FFFFFF\", transparency: 90'); code = code.replace(/\"FFFFFF0F\"/g, '\"FFFFFF\", transparency: 85'); code = code.replace(/\"FFFFFF0A\"/g, '\"FFFFFF\", transparency: 92'); code = code.replace(/\"FFFFFF05\"/g, '\"FFFFFF\", transparency: 95'); // But these are inside fill:{color:X} objects, so we need a different approach console.log('checking pattern...'); const matches = code.match(/fill: \{ color: \"FFFFFF/g); console.log('fill FFFFFF matches:', matches ? matches.length : 0); " 2>&1 | head -20
cd /home/daytona/workspace/pelvic-floor-presentation && node -e " const fs = require('fs'); let code = fs.readFileSync('build_pptx.js', 'utf8'); // Replace 8-digit hex colors used in fill.color with 6-digit + transparency // For decorative circles with very low opacity code = code.replace(/fill: \{ color: \"FFFFFF08\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 92 }'); code = code.replace(/fill: \{ color: \"FFFFFF0F\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 85 }'); code = code.replace(/fill: \{ color: \"FFFFFF0A\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 92 }'); code = code.replace(/fill: \{ color: \"FFFFFF05\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 97 }'); code = code.replace(/fill: \{ color: \"FFFFFF15\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 85 }'); code = code.replace(/fill: \{ color: \"FFFFFF0D\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 90 }'); code = code.replace(/fill: \{ color: \"FFFFFF12\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 85 }'); code = code.replace(/fill: \{ color: \"FFFFFF14\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 85 }'); code = code.replace(/fill: \{ color: \"FFFFFF22\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 80 }'); code = code.replace(/fill: \{ color: \"FFFFFF25\" \}/g, 'fill: { color: \"FFFFFF\", transparency: 78 }'); // 1A7A6E22 (teal with alpha) -> use teal with transparency code = code.replace(/\"1A7A6E22\"/g, '\"1A7A6E\", transparency: 80'); // But it's in fill.color: code = code.replace(/fill: \{ color: \"1A7A6E\", transparency: 80 \}/g, 'fill: { color: \"C8E8E5\", transparency: 20 }'); // E05C4B55 (coral with alpha) -> use coral with transparency code = code.replace(/color: \"E05C4B55\"/g, 'color: \"E05C4B\", transparency: 65'); // FFFFFF30 -> white high transparency code = code.replace(/color: \"FFFFFF30\"/g, 'color: \"FFFFFF\", transparency: 75'); // For TEXT colors with alpha (FFFFFFCC, FFFFFFBB, FFFFFFDD) -> use plain white for text code = code.replace(/color: \"FFFFFFCC\"/g, 'color: \"E8F5F3\"'); code = code.replace(/color: \"FFFFFFBB\"/g, 'color: \"D0EDEA\"'); code = code.replace(/color: \"FFFFFFDD\"/g, 'color: \"F0FAF9\"'); fs.writeFileSync('build_pptx_fixed.js', code); console.log('Fixed file written'); " 2>&1
cd /home/daytona/workspace/pelvic-floor-presentation && node build_pptx_fixed.js 2>&1 | grep -v "is not a valid" | head -20
ls -lh /home/daytona/workspace/pelvic-floor-presentation/*.pptx /home/daytona/workspace/pelvic-floor-presentation/*.html 2>&1
Pelvic Floor Strength
Presentation · PPTX
pelvic floor presentation
HTML File · HTML
| Slide | Content |
|---|---|
| 1 | Title - bold dark-teal design |
| 2 | What Is the Pelvic Floor? - anatomy facts + key stats (32% of women affected) |
| 3 | Signs of Weakness - 6 visual cards (leaking, urgency, heaviness, etc.) |
| 4 | How to Find Your Muscles - 4-step numbered guide |
| 5 | Foundational Exercises - Kegel Hold + Quick Flicks with step-by-step instructions |
| 6 | Functional Strength - Glute Bridge, Deep Squat, Bird Dog |
| 7 | 4-Week Progressive Programme - colour-coded week-by-week plan |
| 8 | Breathing-Core-Pelvic Floor Connection - inhale/exhale/effort diagram |
| 9 | What to Avoid + When to See a Physio |
| 10 | Daily Habits - 6 lifestyle tips (hydration, posture, sleep, etc.) |
| 11 | Call to Action - motivating closing with 4 next steps |
Make ppt presentation only
ls -lh /home/daytona/workspace/pelvic-floor-presentation/*.pptx 2>&1
Pelvic Floor Strength
Presentation · PPTX
Heyy
Can you make a ppt on pelvic floor muscles strength, explaining whys it's important to strengthen and role in fitness,
pelvic floor muscles role in fitness performance core stability women importance
mkdir -p /home/daytona/workspace/pelvic-floor-v2
~/pelvic-floor-v2/build.js
const pptxgen = require("pptxgenjs");
const pres = new pptxgen();
pres.layout = "LAYOUT_16x9";
pres.title = "Pelvic Floor Muscle Strength";
// ─── PALETTE ────────────────────────────────────────────────
const C = {
purple: "4B2C8C", // dominant - deep purple
purpleMid: "6B46C1", // mid purple
purpleLight:"9B72E8", // light purple accent
gold: "F5A623", // warm gold accent
cream: "FAF8FF", // near-white background
creamCard: "F0ECF9", // card fill
white: "FFFFFF",
dark: "1A1030", // near black
grey: "6B6585",
green: "2ECC71", // positive/benefit
coral: "E05C4B",
};
// ─── HELPERS ────────────────────────────────────────────────
function bg(slide, color) {
slide.addShape(pres.ShapeType.rect, { x:0,y:0,w:"100%",h:"100%", fill:{color}, line:{type:"none"} });
}
function pill(slide, txt, x, y, bgColor, textColor) {
bgColor = bgColor || C.gold;
textColor = textColor || C.dark;
slide.addShape(pres.ShapeType.roundRect, { x,y,w:1.9,h:0.35, fill:{color:bgColor}, line:{type:"none"}, rectRadius:0.14 });
slide.addText(txt, { x,y,w:1.9,h:0.35, fontSize:10, bold:true, color:textColor, align:"center", valign:"middle", charSpacing:2, margin:0 });
}
function bar(slide, color, w) {
slide.addShape(pres.ShapeType.rect, { x:0.6,y:1.08,w:w||1.4,h:0.06, fill:{color}, line:{type:"none"} });
}
function card(slide, x, y, w, h, fillColor, radius) {
slide.addShape(pres.ShapeType.roundRect, { x,y,w,h, fill:{color:fillColor||C.creamCard}, line:{color:"DDD8F0",pt:1}, rectRadius:radius||0.16 });
}
function darkCard(slide, x, y, w, h) {
slide.addShape(pres.ShapeType.roundRect, { x,y,w,h, fill:{color:"FFFFFF12"}, line:{color:"FFFFFF18",pt:1}, rectRadius:0.14 });
}
function circle(slide, emoji, x, y, sz, bg2) {
slide.addShape(pres.ShapeType.ellipse, { x,y,w:sz||0.55,h:sz||0.55, fill:{color:bg2||C.purpleMid}, line:{type:"none"} });
slide.addText(emoji, { x,y,w:sz||0.55,h:sz||0.55, fontSize:18, align:"center", valign:"middle", margin:0 });
}
// ════════════════════════════════════════════════════════════
// SLIDE 1 — TITLE
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.purple);
// decorative circles
s.addShape(pres.ShapeType.ellipse, { x:7.6,y:-1.1,w:4.2,h:4.2, fill:{color:C.purpleMid, transparency:75}, line:{type:"none"} });
s.addShape(pres.ShapeType.ellipse, { x:8.5,y:0.5, w:2.4,h:2.4, fill:{color:C.purpleLight, transparency:80}, line:{type:"none"} });
s.addShape(pres.ShapeType.ellipse, { x:-0.6,y:4.0,w:2.5,h:2.5, fill:{color:C.purpleLight, transparency:80}, line:{type:"none"} });
s.addText("WOMEN'S FITNESS EDUCATION", {
x:0.7,y:1.1,w:8,h:0.42, fontSize:11, bold:true, color:C.purpleLight, charSpacing:5, align:"left", margin:0
});
s.addText("Pelvic Floor\nMuscle Strength", {
x:0.7,y:1.55,w:8.8,h:2.1, fontSize:48, bold:true, color:C.white, align:"left", valign:"top", margin:0
});
s.addShape(pres.ShapeType.rect, { x:0.7,y:3.72,w:2.8,h:0.07, fill:{color:C.gold}, line:{type:"none"} });
s.addText("Why it matters. How it works. Why every fitness client needs it.", {
x:0.7,y:3.9,w:8.5,h:0.55, fontSize:14, italic:true, color:"D8CCF8", align:"left", margin:0
});
s.addText("Understanding the foundation of every movement you make", {
x:0.7,y:4.55,w:8,h:0.4, fontSize:11.5, color:"B8A8E8", align:"left", margin:0
});
}
// ════════════════════════════════════════════════════════════
// SLIDE 2 — WHAT IS THE PELVIC FLOOR?
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.cream);
pill(s, "THE BASICS", 0.6, 0.22);
s.addText("What Is the Pelvic Floor?", { x:0.6,y:0.65,w:9,h:0.6, fontSize:30, bold:true, color:C.dark, margin:0 });
bar(s, C.purpleMid, 3.2);
// Left: definition text
s.addText("A bowl-shaped group of muscles, ligaments and connective tissue spanning the base of the pelvis — like a hammock supporting your pelvic organs.", {
x:0.6,y:1.28,w:5.4,h:0.85, fontSize:13, color:C.dark, margin:0, lineSpacingMultiple:1.4
});
const muscles = [
{ e:"🔴", t:"Levator Ani", d:"The primary muscle group — puborectalis, pubococcygeus, iliococcygeus" },
{ e:"🟠", t:"Coccygeus", d:"Supports coccyx and lower sacrum" },
{ e:"🟡", t:"Urogenital Diaphragm", d:"Deep transverse perineal + sphincter urethrae" },
{ e:"🟢", t:"External Sphincters", d:"Control bladder and bowel openings" },
];
let my = 2.2;
for (const m of muscles) {
card(s, 0.6, my, 5.5, 0.62, C.creamCard);
s.addText(m.e, { x:0.72,y:my,w:0.55,h:0.62, fontSize:17, align:"center", valign:"middle", margin:0 });
s.addText(m.t, { x:1.35,y:my+0.04,w:2.0,h:0.3, fontSize:11.5, bold:true, color:C.purpleMid, margin:0 });
s.addText(m.d, { x:1.35,y:my+0.3, w:4.6,h:0.28, fontSize:10, color:C.grey, margin:0 });
my += 0.72;
}
// Right: anatomy diagram box
card(s, 6.3, 1.22, 3.35, 4.0, C.purple, 0.2);
s.addText("ANATOMY AT A GLANCE", {
x:6.3,y:1.42,w:3.35,h:0.38, fontSize:10, bold:true, color:C.purpleLight, charSpacing:2, align:"center", margin:0
});
const parts = [
["🫀","Bladder","Sits above the pelvic floor"],
["🔁","Uterus","Supported by pelvic floor"],
["📦","Bowel / Rectum","Passes through pelvic floor"],
["⚙️","Urethra","Controlled by sphincters"],
];
let py = 1.92;
for (const [ic, nm, ds] of parts) {
s.addText(ic, { x:6.45,y:py,w:0.5,h:0.52, fontSize:16, align:"center", valign:"middle", margin:0 });
s.addText(nm, { x:7.0,y:py+0.02,w:1.6,h:0.24, fontSize:11, bold:true, color:C.white, margin:0 });
s.addText(ds, { x:7.0,y:py+0.25,w:2.5,h:0.22, fontSize:9.5, color:"C8B8F8", margin:0 });
py += 0.72;
if (py < 4.7) {
s.addShape(pres.ShapeType.rect, { x:6.6,y:py-0.1,w:2.9,h:0.02, fill:{color:"FFFFFF20"}, line:{type:"none"} });
}
}
}
// ════════════════════════════════════════════════════════════
// SLIDE 3 — WHY IT MATTERS: THE 6 BIG REASONS
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.cream);
pill(s, "WHY IT MATTERS", 0.6, 0.18, C.purple, C.white);
s.addText("6 Reasons Pelvic Floor Strength Is Non-Negotiable", {
x:0.6,y:0.62,w:9.1,h:0.6, fontSize:26, bold:true, color:C.dark, margin:0
});
bar(s, C.gold, 4.5);
const reasons = [
{ n:"01", icon:"🏋️", title:"Supports Your Entire Core",
body:"The pelvic floor is the bottom of your core 'box'. Without it, your core cannot generate or transfer force properly during any lift, sprint, or jump." },
{ n:"02", icon:"🎯", title:"Protects Your Spine & Hips",
body:"It stabilises the lumbopelvic region, reducing injury risk to the lower back, SIJ and hips during training and daily movement." },
{ n:"03", icon:"💧", title:"Prevents Incontinence",
body:"A weak pelvic floor causes leaking during exercise. 1 in 3 women experience this — but it is not normal and is fully treatable." },
{ n:"04", icon:"⚡", title:"Powers Athletic Performance",
body:"Anticipatory pelvic floor contractions happen before every powerful movement. Weak PF = power leaks in squats, deadlifts, running, and HIIT." },
{ n:"05", icon:"🧘", title:"Improves Posture & Breathing",
body:"The PF works in sync with the diaphragm and deep core. Dysfunction throws off breathing mechanics and posture alignment." },
{ n:"06", icon:"💞", title:"Supports Sexual & Hormonal Health",
body:"Strong pelvic floor muscles improve blood flow, sensation and function — linked to hormonal regulation and overall women's health." },
];
let col=0, row=0;
for (const r of reasons) {
const x = 0.45 + col*3.25;
const y = 1.42 + row*1.92;
card(s, x, y, 3.05, 1.72, C.white);
// number
s.addText(r.n, { x:x+0.14,y:y+0.1,w:0.5,h:0.5, fontSize:13, bold:true, color:C.purpleLight, align:"center", valign:"middle", margin:0 });
// icon + title
s.addText(r.icon+" "+r.title, { x:x+0.68,y:y+0.1,w:2.3,h:0.44, fontSize:11.5, bold:true, color:C.purple, margin:0, valign:"middle" });
s.addShape(pres.ShapeType.rect, { x:x+0.68,y:y+0.56,w:2.2,h:0.03, fill:{color:C.gold}, line:{type:"none"} });
s.addText(r.body, { x:x+0.14,y:y+0.68,w:2.78,h:0.95, fontSize:10, color:C.grey, valign:"top", margin:0, lineSpacingMultiple:1.3 });
col++;
if(col>2){col=0;row++;}
}
}
// ════════════════════════════════════════════════════════════
// SLIDE 4 — PELVIC FLOOR & FITNESS PERFORMANCE
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.dark);
s.addShape(pres.ShapeType.ellipse, { x:7.2,y:-0.8,w:4.5,h:4.5, fill:{color:C.purpleMid, transparency:80}, line:{type:"none"} });
pill(s, "FITNESS & PERFORMANCE", 0.6, 0.18, C.gold, C.dark);
s.addText("The Pelvic Floor–Fitness Connection", {
x:0.6,y:0.62,w:9,h:0.6, fontSize:29, bold:true, color:C.white, margin:0
});
bar(s, C.gold, 3.8);
// Left column: core box diagram
s.addText("THE CORE 'BOX'", {
x:0.6,y:1.28,w:4.6,h:0.38, fontSize:11, bold:true, color:C.gold, charSpacing:3, align:"center", margin:0
});
const boxItems = [
{ label:"DIAPHRAGM", pos:"TOP", color:C.purpleLight },
{ label:"ABDOMINALS", pos:"FRONT", color:"7EC8E3" },
{ label:"PARASPINALS / GLUTES",pos:"BACK", color:"98D8A8" },
{ label:"PELVIC FLOOR", pos:"BOTTOM", color:C.gold },
];
let bxy = 1.72;
for (const b of boxItems) {
s.addShape(pres.ShapeType.roundRect, { x:0.6,y:bxy,w:4.6,h:0.65, fill:{color:"FFFFFF10"}, line:{color:b.color,pt:1.5}, rectRadius:0.1 });
s.addShape(pres.ShapeType.roundRect, { x:0.6,y:bxy,w:0.9,h:0.65, fill:{color:b.color}, line:{type:"none"}, rectRadius:0.1 });
s.addShape(pres.ShapeType.rect, { x:1.1,y:bxy,w:0.4,h:0.65, fill:{color:b.color}, line:{type:"none"} });
s.addText(b.pos, { x:0.6,y:bxy,w:0.9,h:0.65, fontSize:8, bold:true, color:C.dark, align:"center", valign:"middle", margin:0, charSpacing:1 });
s.addText(b.label, { x:1.55,y:bxy,w:3.5,h:0.65, fontSize:12, bold:true, color:C.white, valign:"middle", margin:0 });
bxy += 0.75;
}
s.addText("Without a functioning pelvic floor at the base, the entire core box cannot pressurise or stabilise correctly.", {
x:0.6,y:4.8,w:4.6,h:0.55, fontSize:10.5, color:"C8B8E8", italic:true, margin:0, lineSpacingMultiple:1.3
});
// Right column: performance impacts
s.addText("WHAT HAPPENS IN FITNESS", {
x:5.6,y:1.28,w:4.0,h:0.38, fontSize:11, bold:true, color:C.purpleLight, charSpacing:3, margin:0
});
const impacts = [
{ move:"🏋️ Squats & Deadlifts", text:"PF co-contracts to stabilise lumbopelvic region and transmit force through the chain" },
{ move:"🏃 Running & Sprinting", text:"Repeated ground impact demands rapid PF reflex contractions to protect the spine" },
{ move:"🤸 HIIT & Jumping", text:"High intra-abdominal pressure spikes require PF to absorb and redirect force fast" },
{ move:"🧘 Yoga & Pilates", text:"PF is the anchor of all core-focused breathing and deep stabilisation work" },
];
let iy = 1.72;
for (const im of impacts) {
darkCard(s, 5.6, iy, 4.05, 0.78);
s.addText(im.move, { x:5.75,y:iy+0.06,w:3.8,h:0.3, fontSize:11.5, bold:true, color:C.gold, margin:0 });
s.addText(im.text, { x:5.75,y:iy+0.38,w:3.8,h:0.36, fontSize:10, color:"D8D0F8", margin:0, lineSpacingMultiple:1.25 });
iy += 0.9;
}
}
// ════════════════════════════════════════════════════════════
// SLIDE 5 — WHAT WEAKENS THE PELVIC FLOOR?
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.cream);
pill(s, "ROOT CAUSES", 0.6, 0.18, C.coral, C.white);
s.addText("What Weakens the Pelvic Floor?", {
x:0.6,y:0.62,w:9,h:0.58, fontSize:30, bold:true, color:C.dark, margin:0
});
bar(s, C.coral, 3.2);
s.addText("Understanding the causes helps clients own their rehab journey without shame.", {
x:0.6,y:1.25,w:9,h:0.38, fontSize:13, italic:true, color:C.grey, margin:0
});
const causes = [
{ icon:"🤰", title:"Pregnancy", body:"The growing uterus increases pelvic load by up to 20kg. Hormones like relaxin loosen ligaments, reducing structural support." },
{ icon:"🏥", title:"Childbirth", body:"Vaginal delivery stretches the levator ani up to 3x its resting length. Nerve and muscle damage can persist for months-years." },
{ icon:"🎂", title:"Ageing & Menopause", body:"Oestrogen decline reduces tissue elasticity and muscle fibre density. PF muscles atrophy if not regularly trained." },
{ icon:"🏃", title:"High-Impact Training", body:"Years of running, jumping, or heavy lifting with a weak PF creates cumulative micro-trauma and progressive dysfunction." },
{ icon:"⏱️", title:"Prolonged Sitting", body:"Desk-based lifestyles shorten hip flexors and switch off glutes, removing key synergists that assist the PF." },
{ icon:"🧠", title:"Poor Body Awareness", body:"Many women never learn to consciously engage — or relax — the pelvic floor, leaving it chronically over- or under-active." },
];
let cx=0, cy=0;
for (const c of causes) {
const x = 0.42 + cx*3.25;
const y = 1.72 + cy*1.85;
card(s, x, y, 3.05, 1.65, C.white);
s.addShape(pres.ShapeType.roundRect, { x,y,w:3.05,h:0.6, fill:{color:C.purple}, line:{type:"none"}, rectRadius:0.16 });
s.addShape(pres.ShapeType.rect, { x,y:y+0.42,w:3.05,h:0.2, fill:{color:C.purple}, line:{type:"none"} });
s.addText(c.icon+" "+c.title, { x:x+0.12,y,w:2.8,h:0.6, fontSize:13, bold:true, color:C.white, valign:"middle", margin:0 });
s.addText(c.body, { x:x+0.12,y:y+0.68,w:2.8,h:0.88, fontSize:10, color:C.grey, valign:"top", margin:0, lineSpacingMultiple:1.3 });
cx++;
if(cx>2){cx=0;cy++;}
}
}
// ════════════════════════════════════════════════════════════
// SLIDE 6 — SIGNS OF PELVIC FLOOR DYSFUNCTION
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.dark);
pill(s, "RECOGNISE IT", 0.6, 0.18, C.coral, C.white);
s.addText("Signs of Pelvic Floor Dysfunction", {
x:0.6,y:0.62,w:9,h:0.58, fontSize:30, bold:true, color:C.white, margin:0
});
bar(s, C.coral, 3.4);
s.addText("These are signs to look out for — not to be embarrassed about.", {
x:0.6,y:1.25,w:9,h:0.38, fontSize:12.5, italic:true, color:"C8B8E8", margin:0
});
const signs = [
{ icon:"💧", label:"Stress Incontinence", desc:"Leaking urine when coughing, sneezing, laughing or jumping" },
{ icon:"🚨", label:"Urgency", desc:"Sudden strong urge to urinate that is hard to hold back" },
{ icon:"⬇️", label:"Pelvic Heaviness", desc:"Bulging or pressure sensation in the vaginal or rectal area" },
{ icon:"💔", label:"Pelvic / Back Pain", desc:"Chronic lower back, sacral, or hip pain with no clear cause" },
{ icon:"🔇", label:"Low Awareness", desc:"Difficulty feeling or consciously contracting the PF muscles" },
{ icon:"🏃", label:"Exercise Leaking", desc:"Leaking during running, box jumps, HIIT or heavy squats" },
{ icon:"😣", label:"Painful Intercourse", desc:"Vaginismus or deep pelvic pain during or after sex" },
{ icon:"🔒", label:"Constipation", desc:"Difficulty emptying bowel — often linked to PF overactivity" },
];
let sc=0, sr=0;
for (const sg of signs) {
const x = 0.45 + sc*2.42;
const y = 1.72 + sr*1.72;
darkCard(s, x, y, 2.25, 1.55);
s.addText(sg.icon, { x,y:y+0.1,w:2.25,h:0.6, fontSize:26, align:"center", valign:"middle", margin:0 });
s.addText(sg.label, { x:x+0.12,y:y+0.7,w:2.0,h:0.3, fontSize:11, bold:true, color:C.gold, align:"center", margin:0 });
s.addText(sg.desc, { x:x+0.1,y:y+1.0, w:2.05,h:0.45, fontSize:9.5, color:"C8C0E8", align:"center", margin:0, lineSpacingMultiple:1.2 });
sc++;
if(sc>3){sc=0;sr++;}
}
}
// ════════════════════════════════════════════════════════════
// SLIDE 7 — THE PELVIC FLOOR–CORE–BREATH SYSTEM
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.cream);
pill(s, "HOW IT WORKS", 0.6, 0.18, C.purpleMid, C.white);
s.addText("The Pelvic Floor, Core & Breath — One System", {
x:0.6,y:0.62,w:9.1,h:0.6, fontSize:27, bold:true, color:C.dark, margin:0
});
bar(s, C.purpleLight, 4.2);
// Central system diagram
const system = [
{ color:C.purpleLight, icon:"🫁", title:"DIAPHRAGM", body:"Contracts on inhale → drops → pelvic floor descends and lengthens reflexively" },
{ color:C.gold, icon:"💪", title:"DEEP CORE (TA)", body:"Transversus abdominis & multifidus co-contract with PF to stiffen the spine" },
{ color:C.green, icon:"🍑", title:"GLUTES", body:"Gluteal muscles are key synergists — weak glutes force the PF to overwork" },
{ color:C.purple, icon:"🌀", title:"PELVIC FLOOR", body:"Contracts on exhale/exertion, relaxes fully on inhale — MUST do both equally well" },
];
let si = 0;
const positions = [ [0.5,1.35,4.45], [5.2,1.35,4.45], [0.5,3.2,4.45], [5.2,3.2,4.45] ];
for (const sys of system) {
const [x,y,w] = positions[si];
card(s, x, y, w, 1.7, C.white);
s.addShape(pres.ShapeType.roundRect, { x,y,w,h:0.58, fill:{color:sys.color}, line:{type:"none"}, rectRadius:0.16 });
s.addShape(pres.ShapeType.rect, { x,y:y+0.38,w,h:0.22, fill:{color:sys.color}, line:{type:"none"} });
s.addText(sys.icon+" "+sys.title, { x:x+0.12,y,w:w-0.2,h:0.58, fontSize:13, bold:true, color:C.white, valign:"middle", margin:0 });
s.addText(sys.body, { x:x+0.12,y:y+0.68,w:w-0.22,h:0.9, fontSize:11, color:C.grey, valign:"top", margin:0, lineSpacingMultiple:1.35 });
si++;
}
// centre connector arrows (simple text)
s.addText("⟺", { x:4.4,y:2.35,w:1.2,h:0.55, fontSize:22, color:C.purpleLight, align:"center", valign:"middle", margin:0 });
s.addText("⟺", { x:4.4,y:4.1, w:1.2,h:0.55, fontSize:22, color:C.purpleLight, align:"center", valign:"middle", margin:0 });
s.addText("⟺", { x:2.3,y:3.05,w:1.2,h:0.4, fontSize:18, color:C.gold, align:"center", valign:"middle", margin:0, rotate:90 });
s.addText("⟺", { x:7.0,y:3.05,w:1.2,h:0.4, fontSize:18, color:C.gold, align:"center", valign:"middle", margin:0, rotate:90 });
}
// ════════════════════════════════════════════════════════════
// SLIDE 8 — BENEFITS OF TRAINING THE PELVIC FLOOR
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.purple);
s.addShape(pres.ShapeType.ellipse, { x:-1.0,y:-1.2,w:4.0,h:4.0, fill:{color:C.purpleMid, transparency:78}, line:{type:"none"} });
s.addShape(pres.ShapeType.ellipse, { x:8.5, y:3.5, w:3.0,h:3.0, fill:{color:C.purpleLight, transparency:82}, line:{type:"none"} });
pill(s, "THE BENEFITS", 0.6, 0.18, C.gold, C.dark);
s.addText("What Clients Gain from Pelvic Floor Training", {
x:0.6,y:0.62,w:9,h:0.6, fontSize:27, bold:true, color:C.white, margin:0
});
bar(s, C.gold, 4.2);
const benefits = [
{ icon:"💪", cat:"PHYSICAL", title:"Stronger lifts & better form", body:"Improved intra-abdominal pressure management means more power output in every compound movement." },
{ icon:"🛡️", cat:"PROTECTION", title:"Fewer injuries", body:"Stable lumbopelvic base reduces strain on lower back, SI joint and hip during loading." },
{ icon:"💧", cat:"CONTROL", title:"No more leaking", body:"Proper PF training eliminates stress incontinence in 70–80% of cases within 12 weeks." },
{ icon:"🧘", cat:"POSTURE", title:"Better posture & alignment", body:"PF training corrects anterior pelvic tilt, reduces lumbar overload and improves stance." },
{ icon:"⚡", cat:"ENERGY", title:"More efficient movement", body:"When the core system works together, less energy is wasted compensating for instability." },
{ icon:"🌟", cat:"CONFIDENCE", title:"Train without fear or embarrassment", body:"Clients return to high-impact classes, sport and outdoor training with full confidence." },
];
let bc=0, br=0;
for (const b of benefits) {
const x = 0.45 + bc*3.25;
const y = 1.35 + br*1.9;
darkCard(s, x, y, 3.05, 1.72);
s.addShape(pres.ShapeType.roundRect, { x:x+0.12,y:y+0.1,w:0.7,h:0.28, fill:{color:C.gold}, line:{type:"none"}, rectRadius:0.1 });
s.addText(b.cat, { x:x+0.12,y:y+0.1,w:0.7,h:0.28, fontSize:8, bold:true, color:C.dark, align:"center", valign:"middle", margin:0, charSpacing:1 });
s.addText(b.icon+" "+b.title, { x:x+0.12,y:y+0.46,w:2.8,h:0.38, fontSize:11.5, bold:true, color:C.white, margin:0, valign:"middle" });
s.addText(b.body, { x:x+0.12,y:y+0.88,w:2.8,h:0.75, fontSize:10, color:"C8B8E8", margin:0, valign:"top", lineSpacingMultiple:1.3 });
bc++;
if(bc>2){bc=0;br++;}
}
}
// ════════════════════════════════════════════════════════════
// SLIDE 9 — PELVIC FLOOR ACROSS THE FITNESS SPECTRUM
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.cream);
pill(s, "FOR ALL FITNESS LEVELS", 0.6, 0.18, C.purple, C.white);
s.addText("Pelvic Floor in Every Type of Training", {
x:0.6,y:0.62,w:9.1,h:0.6, fontSize:28, bold:true, color:C.dark, margin:0
});
bar(s, C.purpleMid, 3.8);
const types = [
{ icon:"🏋️", type:"Strength Training", pf:"Stabilises lumbopelvis during squats, deadlifts & presses", tip:"Exhale and brace on the lift — never bear down" },
{ icon:"🏃", type:"Running / Cardio", pf:"Absorbs repetitive ground impact; prevents leaking & prolapse", tip:"Cadence, glute activation and PF training work together" },
{ icon:"🤸", type:"HIIT / CrossFit", pf:"Manages rapid pressure spikes during box jumps, burpees", tip:"Master PF control at low intensity before high-impact loads" },
{ icon:"🧘", type:"Yoga / Pilates", pf:"The anchor of every breathing and core exercise", tip:"Mula bandha (root lock) is essentially a PF contraction" },
{ icon:"🚴", type:"Cycling / Rowing", pf:"Maintains posture and spinal stability under sustained load", tip:"Saddle height and position significantly affect PF pressure" },
{ icon:"🤰", type:"Pre & Postnatal", pf:"PF training is medically recommended through all pregnancy stages", tip:"Return to high-impact training only after PF clearance" },
];
let tc=0, tr=0;
for (const t of types) {
const x = 0.42 + tc*3.25;
const y = 1.38 + tr*1.92;
card(s, x, y, 3.05, 1.75, C.white);
s.addText(t.icon, { x:x+0.12,y:y+0.1,w:0.55,h:0.55, fontSize:22, align:"center", valign:"middle", margin:0 });
s.addText(t.type, { x:x+0.72,y:y+0.1,w:2.25,h:0.38, fontSize:12.5, bold:true, color:C.purple, margin:0, valign:"middle" });
s.addText(t.pf, { x:x+0.12,y:y+0.68,w:2.85,h:0.55, fontSize:10.5, color:C.dark, margin:0, lineSpacingMultiple:1.3 });
s.addShape(pres.ShapeType.rect, { x:x+0.12,y:y+1.26,w:2.85,h:0.03, fill:{color:C.gold}, line:{type:"none"} });
s.addText("💡 "+t.tip, { x:x+0.12,y:y+1.32,w:2.85,h:0.35, fontSize:9.5, color:C.grey, italic:true, margin:0 });
tc++;
if(tc>2){tc=0;tr++;}
}
}
// ════════════════════════════════════════════════════════════
// SLIDE 10 — KEY TRAINING PRINCIPLES
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.dark);
s.addShape(pres.ShapeType.ellipse, { x:8.0,y:-0.5,w:3.8,h:3.8, fill:{color:C.purple, transparency:70}, line:{type:"none"} });
pill(s, "TRAINING PRINCIPLES", 0.6, 0.18, C.purpleLight, C.dark);
s.addText("How to Train the Pelvic Floor Correctly", {
x:0.6,y:0.62,w:9,h:0.58, fontSize:28, bold:true, color:C.white, margin:0
});
bar(s, C.purpleLight, 4.0);
const principles = [
{ n:"01", icon:"🔓", title:"Train BOTH contraction AND relaxation",
body:"A tight pelvic floor is not a strong one. Over-training causes hypertonicity — pain, urgency and dysfunction. Balance is everything." },
{ n:"02", icon:"💨", title:"Connect breath to every exercise",
body:"Exhale on effort, inhale to release. The diaphragm and PF work as one unit — you cannot separate them." },
{ n:"03", icon:"📈", title:"Progressive overload applies here too",
body:"Start with awareness (Kegels at rest), progress to functional integration (squats, bridges, then loaded movements)." },
{ n:"04", icon:"🔁", title:"Consistency beats intensity",
body:"3-5 sessions per week for 12 weeks produces measurable strength gains. Daily 5-minute sessions outperform weekly marathon sessions." },
{ n:"05", icon:"🧠", title:"Neuromuscular awareness first",
body:"Many clients cannot locate the PF initially. Spend time on body mapping before adding load — it unlocks everything else." },
{ n:"06", icon:"👩⚕️", title:"Refer when needed",
body:"Persistent symptoms, post-natal recovery and pelvic pain warrant a pelvic floor physiotherapist alongside fitness training." },
];
let pc=0, pr=0;
for (const p of principles) {
const x = 0.45 + pc*3.25;
const y = 1.35 + pr*1.9;
darkCard(s, x, y, 3.05, 1.72);
s.addText(p.n, { x:x+0.14,y:y+0.1,w:0.48,h:0.48, fontSize:14, bold:true, color:C.gold, align:"center", valign:"middle", margin:0 });
s.addText(p.icon+" "+p.title, { x:x+0.66,y:y+0.12,w:2.3,h:0.42, fontSize:10.5, bold:true, color:C.purpleLight, margin:0, valign:"middle" });
s.addText(p.body, { x:x+0.14,y:y+0.65,w:2.8,h:0.98, fontSize:10, color:"C0B8E0", margin:0, valign:"top", lineSpacingMultiple:1.3 });
pc++;
if(pc>2){pc=0;pr++;}
}
}
// ════════════════════════════════════════════════════════════
// SLIDE 11 — CLOSING / CALL TO ACTION
// ════════════════════════════════════════════════════════════
{
const s = pres.addSlide();
bg(s, C.purple);
s.addShape(pres.ShapeType.ellipse, { x:-1.2,y:-1.2,w:4.5,h:4.5, fill:{color:C.purpleMid, transparency:78}, line:{type:"none"} });
s.addShape(pres.ShapeType.ellipse, { x:8.0, y:3.5, w:3.5,h:3.5, fill:{color:C.purpleLight, transparency:82}, line:{type:"none"} });
s.addText("The Pelvic Floor\nIs the Foundation\nof Everything. 💜", {
x:0.7,y:0.7,w:9,h:2.2, fontSize:38, bold:true, color:C.white, align:"center", margin:0
});
s.addShape(pres.ShapeType.rect, { x:3.8,y:2.95,w:2.5,h:0.07, fill:{color:C.gold}, line:{type:"none"} });
s.addText("Ignore it and it holds your clients back.\nTrain it and it unlocks everything else.", {
x:0.7,y:3.1,w:8.6,h:0.72, fontSize:14.5, color:"D8CCF8", italic:true, align:"center", margin:0
});
const actions = [
"✅ Include pelvic floor education in every new client onboarding",
"✅ Assess for symptoms before programming high-impact exercise",
"✅ Integrate PF cues into breathing, lifting and functional training",
"✅ Refer to a pelvic physio for clinical symptoms — it's a partnership",
];
s.addShape(pres.ShapeType.roundRect, {
x:1.8,y:3.95,w:6.5,h:1.5, fill:{color:"FFFFFF14"}, line:{color:"FFFFFF30",pt:1}, rectRadius:0.2
});
const aItems = actions.map((a,i)=>({
text:a, options:{ breakLine:i<actions.length-1, fontSize:11, color:C.white, bullet:false }
}));
s.addText(aItems, { x:2.1,y:4.05,w:6.0,h:1.3, valign:"middle", lineSpacingMultiple:1.6 });
}
// ─── WRITE ──────────────────────────────────────────────────
pres.writeFile({ fileName:"/home/daytona/workspace/pelvic-floor-v2/Pelvic_Floor_Muscle_Strength.pptx" })
.then(()=>console.log("DONE"))
.catch(e=>{console.error(e);process.exit(1);});
cd /home/daytona/workspace/pelvic-floor-v2 && node build.js 2>&1 | grep -v "is not a valid"
ls -lh /home/daytona/workspace/pelvic-floor-v2/*.pptx
Pelvic Floor Muscle Strength
Presentation · PPTX
| # | Slide | What it covers |
|---|---|---|
| 1 | Title | Eye-catching opening with tagline |
| 2 | What Is the Pelvic Floor? | Anatomy of the muscles + organs it supports |
| 3 | 6 Reasons It's Non-Negotiable | Core support, spine protection, incontinence, performance, breathing, hormonal health |
| 4 | The Fitness-Performance Connection | The core "box" diagram + how PF works in squats, running, HIIT, yoga |
| 5 | What Weakens It? | Pregnancy, childbirth, ageing, high-impact training, sitting, poor awareness |
| 6 | Signs of Dysfunction | 8 signs to recognise - no shame, just awareness |
| 7 | The PF-Core-Breath System | How PF, diaphragm, deep core and glutes work as one unit |
| 8 | Benefits of Training It | Stronger lifts, fewer injuries, no leaking, better posture, more confidence |
| 9 | PF Across All Training Styles | Strength, running, HIIT, yoga, cycling, pre/postnatal - with tips per type |
| 10 | Key Training Principles | Contraction + relaxation, breath connection, progressive overload, consistency |
| 11 | Closing / Call to Action | 4 action steps for fitness professionals |
contraindications for 1 finger Diastasis recti gap in 4 months postpartum women starting workouts?
"diastasis recti" AND "postpartum" AND exercise
diastasis recti 1 finger gap 4 months postpartum exercise contraindications return to exercise guidelines
PMID: 39694630
peer closed connection without sending complete message body (incomplete chunked read)
We encountered an error while processing your request. Please try again or reach out to us for help.
?
| Exercise | Why It's Contraindicated |
|---|---|
| Crunches / sit-ups / curl-ups | Rapidly spikes intra-abdominal pressure, forces the gap open, causes "doming" of the linea alba |
| Full planks (front plank) | Sustained high load through the anterior abdominal wall before linea alba tension is restored |
| Leg raises (bilateral) | Extreme load demand on the lower linea alba before deep core is re-established |
| Double-leg lowering | Same mechanism as leg raises - excessive tensile force through the midline |
| Traditional push-ups | Loads the anterior abdominal wall in a way similar to planks |
| Heavy deadlifts / Olympic lifts | Valsalva manoeuvre + extreme intra-abdominal pressure - contraindicated until cleared |
| Box jumps / plyometrics | High-impact landing generates sudden pressure spikes through the pelvic floor and abdominal wall |
| Twisting movements (Russian twists, oblique crunches) | Shear forces across the linea alba stress the gap asymmetrically |
| Boat pose (Navasana in yoga) | Prolonged combined hip flexion + trunk flexion = high rectus strain |
The doming/coning test is your real contraindication guide - if the midline protrudes or the abdomen ridges upward during any movement, that movement is currently contraindicated.
| Verdict | |
|---|---|
| Gap width (1 finger) | Within normal range - not a contraindication by itself |
| Main contraindication trigger | Doming/coning during movement |
| Priority tissue to restore | Linea alba tension + deep core + pelvic floor coordination |
| High-impact & heavy loading | Hold until 3+ months postpartum AND load criteria are met |
| Estimated safe return to full exercise | Typically 4-6 months with appropriate rehab progression |
Bottom line: With a 1-finger gap and good tissue tension at 4 months, this client is likely safe to begin a structured progressive programme - but any exercise that produces visible midline doming, increases symptoms, or requires Valsalva bracing is contraindicated until tissue capacity catches up.
alternate workout?
| Exercise | Sets x Reps | Cue |
|---|---|---|
| Diaphragmatic breathing | 2 × 10 breaths | Breathe 360° — ribs expand sideways, pelvic floor softens on inhale, lifts on exhale |
| Cat-cow (slow) | 2 × 8 | No forced arching - gentle only |
| Hip circles on all fours | 1 × 10 each side | Keep core gently on |
| Exercise | Sets x Reps | Notes |
|---|---|---|
| TA activation (belly draw-in) | 3 × 10 holds (5 sec) | Gentle "zip up" from pubic bone upward, NOT sucking in |
| Glute bridge | 3 × 12 | Exhale to lift, hold 2 sec at top, slow lower |
| Clamshell | 3 × 12 each side | Band optional, keep pelvis stacked |
| Dead bug (arm only) | 3 × 8 each arm | Extend one arm only, back stays flat |
| Heel slide | 3 × 10 each leg | Slide heel out on exhale, draw back on inhale |
| Side-lying leg raise | 2 × 12 each side | Keeps load away from linea alba |
| Exercise | Sets x Reps | Notes |
|---|---|---|
| Single-leg glute bridge | 3 × 10 each side | Only if double-leg bridge is solid with no doming |
| Dead bug (opposite arm + leg) | 3 × 8 each side | SLOW - low back stays glued to floor |
| Banded lateral walk | 3 × 12 steps each way | Band just above knees, slight hip hinge |
| Bodyweight squat | 3 × 12 | Exhale on rise, cue pelvic floor lift at top |
| Modified side plank (on knees) | 3 × 20 sec each side | Only if no doming - progress hold time |
| Standing hip hinge / Romanian deadlift | 3 × 10 (light DB) | Hinge at hips, brace gently - no Valsalva |
| Wall push-up | 3 × 12 | Easier anterior load - safer than floor push-up |
| Exercise | Sets x Reps | Notes |
|---|---|---|
| Goblet squat (light-moderate KB) | 3 × 10 | Hold KB at chest, elbows in, exhale on rise |
| KB Romanian deadlift | 3 × 10 | Build load progressively week by week |
| Step-up (box or stair) | 3 × 10 each leg | Drive through heel, exhale on step up |
| Resistance band row | 3 × 12 | Upper back work - supports posture for feeding/carrying |
| Incline push-up (hands on bench) | 3 × 10 | Progression from wall; watch for any doming |
| Split squat / reverse lunge | 3 × 8 each leg | Single-leg strength without high IAP |
| Pallof press | 3 × 10 each side | Anti-rotation core - safe and highly effective |
| Dead bug with full extension | 3 × 8 each side | Full opposite arm-leg if doming-free |
| Day | Session |
|---|---|
| Monday | Phase workout (main block) |
| Tuesday | 20-30 min walk + pelvic floor exercises |
| Wednesday | Phase workout |
| Thursday | Rest or gentle yoga / mobility |
| Friday | Phase workout |
| Saturday | Walk or swim (low-impact cardio) |
| Sunday | Full rest / recovery |
| Activity | Notes |
|---|---|
| Walking | Best early cardio - start 20 min, build to 45-60 min |
| Swimming | Excellent full-body option - wait until 6-8 weeks if C-section |
| Cycling (stationary) | Low-impact, no ground reaction force |
| Low-impact aerobics | No jumping, no twisting |
| Aqua aerobics | Water supports pelvic organs - ideal for early return |
valsalva manoeuvre
Valsalva maneuver blood pressure heart rate phases diagram
"Forced expiration against a closed glottis: the Valsalva maneuver. Valsalva maneuvers occur regularly during coughing, defecation, and heavy lifting."
- Ganong's Review of Medical Physiology (26th ed.)
| Phase | What Happens | BP | Heart Rate |
|---|---|---|---|
| Phase I - Strain onset | Intrathoracic pressure rises → transmitted directly to aorta | ↑ Transient rise | Normal |
| Phase II - Sustained strain | High intrathoracic pressure compresses veins → ↓ venous return → ↓ stroke volume → ↓ cardiac output | ↓ Falls | ↑ Reflex tachycardia (baroreceptors inhibited) |
| Phase III - Release | Glottis opens; intrathoracic pressure drops suddenly → further transient BP fall as blood rushes into pulmonary circuit | ↓ Brief further drop | Variable |
| Phase IV - Overshoot | Venous return restored → cardiac output rises into a still-vasoconstricted peripheral circuit → BP overshoots above baseline | ↑↑ Overshoot | ↓ Reflex bradycardia (baroreceptors stimulated) |

STRAIN (glottis closed + forced expiration)
↓
↑ Intrathoracic pressure
↓
Phase I: Pressure added to aortic blood → brief BP rise
↓
Phase II: Veins compressed → ↓ venous return → ↓ CO → BP falls
→ Baroreceptors detect fall → inhibited → sympathetic ↑, vagal ↓
→ Reflex TACHYCARDIA + peripheral vasoconstriction
↓
RELEASE (glottis opens)
↓
Phase III: Intrathoracic pressure drops → brief further BP dip
↓
Phase IV: Venous return restored → CO rises → blood pumped into
vasoconstricted circuit → BP OVERSHOOTS
→ Baroreceptors stimulated → sympathetic ↓, vagal ↑
→ Reflex BRADYCARDIA → BP returns to normal
| Application | How Valsalva Helps |
|---|---|
| Terminate SVT (supraventricular tachycardia) | Phase II/IV vagal stimulation slows SA and AV node conduction |
| Cardiac auscultation | Differentiates systolic murmurs - MVP and HOCM get louder; AS gets quieter |
| Autonomic function testing | Absent tachycardia in Phase II = autonomic dysfunction, beta-blockade, or high left-sided filling pressures |
| Hernia/varicocele examination | Increases intra-abdominal pressure to make occult hernias or varicoceles visible/palpable |
| ENT - Eustachian tube testing | Forces air up the Eustachian tube to equalise middle ear pressure |
| Ophthalmic | Valsalva retinopathy - sudden venous pressure rise ruptures perifoveal capillaries |
| Murmur | Phase II Response | Why |
|---|---|---|
| Most murmurs | ↓ Softer | ↓ Stroke volume reduces flow turbulence |
| MVP (mitral valve prolapse) | ↑ Louder + click moves earlier | ↓ LV size → leaflets prolapse more |
| HOCM | ↑ Louder | ↓ LV cavity → greater outflow obstruction |
| Phase IV | All murmurs ↑ louder | Restored + augmented flow |
| Condition | Abnormality |
|---|---|
| Autonomic neuropathy / insufficiency | Absent Phase II tachycardia AND absent Phase IV BP overshoot |
| Primary hyperaldosteronism | Absent tachycardia and absent BP overshoot (normalises after tumour removal) |
| High left-sided filling pressures (heart failure) | Phase II tachycardia absent - useful diagnostic sign |
| Beta-blocker use | Blunted tachycardia in Phase II |
in simple words
Like squeezing a water balloon — the pressure has to go somewhere.
Less blood can flow back to the heart. Your blood pressure drops. Your heart beats faster to compensate — like a pump working harder when the supply is reduced.
Suddenly the pressure drops. Blood rushes back to the heart all at once.
The heart pumps all that blood out into still-tight blood vessels → BP shoots up briefly → your body slows the heart back down to normal.
| Action | What it's like |
|---|---|
| You hold your breath & push | You kink the hose — pressure builds before the kink |
| Blood flow drops to heart | Less water gets through |
| You release the breath | You unkink it suddenly — water rushes through all at once |
| BP overshoots briefly | Water sprays hard before settling |
| Situation | What they do |
|---|---|
| Fast heartbeat (SVT) | Ask you to bear down — it slows the heart naturally via the vagus nerve |
| Heart murmur | Listen to the murmur during straining — it changes in a way that helps identify what's wrong |
| Check for hernia | Ask you to push down — the hernia pops out and becomes visible |
| Ear pressure | You hold your nose and push gently — it pops your ears on a plane ✈️ |
"Breathe OUT on the hard part — never hold your breath."
The Valsalva manoeuvre = holding your breath while pushing, which causes a big pressure spike inside your body — useful medically, but harmful for postpartum tummies and pelvic floors.