workout: update 2026-04-22 with Gray's Anatomy muscle diagrams and muscle tags

This commit is contained in:
Ash
2026-04-22 14:44:34 +00:00
parent 80df58d2bf
commit d9bb7d418d
+243 -6
View File
@@ -16,7 +16,7 @@
justify-content: center;
padding: 40px 20px;
}
.container { max-width: 800px; width: 100%; }
.container { max-width: 1200px; width: 100%; }
h1 { font-size: 1.8rem; margin-bottom: 4px; color: #f97316; }
.breadcrumb { color: #666; margin-bottom: 24px; font-size: 0.85rem; }
.breadcrumb a { color: #888; text-decoration: none; }
@@ -30,6 +30,7 @@
border: 1px solid rgba(255,255,255,0.08);
border-radius: 12px;
overflow: hidden;
margin-bottom: 16px;
}
.table table { width: 100%; border-collapse: collapse; }
.table th { background: rgba(255,255,255,0.08); padding: 12px 16px; text-align: left; font-weight: 500; font-size: 0.85rem; color: #888; }
@@ -43,9 +44,133 @@
.note { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 12px; padding: 16px; margin-top: 16px; color: #888; font-size: 0.85rem; }
.back-link { display: inline-block; color: #f97316; text-decoration: none; font-size: 0.85rem; margin-top: 32px; }
.back-link:hover { color: #ff8c42; }
/* Anatomy Diagram Section */
.anatomy-section {
background: rgba(255,255,255,0.04);
border: 1px solid rgba(255,255,255,0.08);
border-radius: 12px;
padding: 20px;
margin-bottom: 24px;
}
.anatomy-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
flex-wrap: wrap;
gap: 12px;
}
.anatomy-title {
font-size: 1rem;
color: #f97316;
font-weight: 600;
}
.anatomy-hint {
font-size: 0.8rem;
color: #666;
}
.anatomy-diagrams {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
align-items: start;
}
.diagram-container {
background: #ffffff;
border-radius: 8px;
padding: 12px;
text-align: center;
position: relative;
transition: all 0.3s ease;
border: 2px solid transparent;
}
.diagram-container h3 {
font-size: 0.85rem;
color: #888;
margin-bottom: 12px;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.diagram-container img {
width: auto;
max-width: 100%;
height: auto;
max-height: 550px;
object-fit: contain;
filter: none;
transition: filter 0.3s, transform 0.3s;
display: block;
margin: 0 auto;
}
.diagram-container.highlighted {
box-shadow: 0 0 25px rgba(249, 115, 22, 0.6);
border-color: rgba(249, 115, 22, 0.8);
transform: scale(1.02);
}
.diagram-container.highlighted img {
filter: brightness(1.05) contrast(1.05);
}
.muscle-label {
font-size: 0.75rem;
color: #aaa;
margin-top: 8px;
font-style: italic;
}
/* Exercise muscle tags */
.exercise-muscles {
display: flex;
gap: 6px;
flex-wrap: wrap;
margin-top: 6px;
}
.muscle-tag {
font-size: 0.7rem;
padding: 3px 10px;
border-radius: 12px;
font-weight: 500;
cursor: pointer;
transition: all 0.2s;
border: 2px solid transparent;
user-select: none;
}
.muscle-tag:hover {
transform: scale(1.08);
filter: brightness(1.2);
}
.muscle-tag.active {
border-color: currentColor;
box-shadow: 0 0 12px currentColor;
transform: scale(1.1);
}
.muscle-tag.deltoid { background: rgba(100, 181, 246, 0.25); color: #64b5f6; }
.muscle-tag.pectoralis { background: rgba(229, 115, 115, 0.25); color: #e57373; }
.muscle-tag.trapezius { background: rgba(129, 199, 132, 0.25); color: #81c784; }
.muscle-tag.latissimus { background: rgba(129, 199, 132, 0.25); color: #81c784; }
.muscle-tag.triceps { background: rgba(255, 183, 77, 0.25); color: #ffb74d; }
.muscle-tag.biceps { background: rgba(255, 183, 77, 0.25); color: #ffb74d; }
.muscle-tag.rectus-abdominis { background: rgba(161, 136, 127, 0.25); color: #a1887f; }
.muscle-tag.obliques { background: rgba(161, 136, 127, 0.25); color: #a1887f; }
.muscle-tag.quadriceps { background: rgba(144, 164, 174, 0.25); color: #90a4ae; }
.muscle-tag.hamstrings { background: rgba(144, 164, 174, 0.25); color: #90a4ae; }
.muscle-tag.glutes { background: rgba(144, 164, 174, 0.25); color: #90a4ae; }
.muscle-tag.gastrocnemius { background: rgba(144, 164, 174, 0.25); color: #90a4ae; }
.muscle-tag.serratus { background: rgba(229, 115, 115, 0.25); color: #e57373; }
.muscle-tag.rhomboids { background: rgba(129, 199, 132, 0.25); color: #81c784; }
.muscle-tag.erector-spinae { background: rgba(161, 136, 127, 0.25); color: #a1887f; }
.muscle-tag.core { background: rgba(186, 104, 200, 0.25); color: #ba68c8; }
.muscle-tag.shoulders { background: rgba(100, 181, 246, 0.25); color: #64b5f6; }
@media (max-width: 768px) {
.anatomy-diagrams {
grid-template-columns: 1fr;
}
}
@media (min-width: 1200px) {
body { padding: 60px 40px; }
.container { max-width: 1100px; }
.container { max-width: 1400px; }
h1 { font-size: 2.8rem; }
h2 { font-size: 1.8rem; }
.date-header { font-size: 1.2rem; margin-bottom: 20px; }
@@ -71,18 +196,47 @@
<div class="date-header">Wednesday, April 22, 2026</div>
<div class="day-badge">Day B — Full-Body Circuit</div>
<!-- Anatomy Reference Section -->
<div class="section anatomy-section">
<div class="anatomy-header">
<div class="anatomy-title">📚 Muscle Anatomy Reference (Gray's Anatomy)</div>
<div class="anatomy-hint">Click muscle names below to locate on diagrams</div>
</div>
<div class="anatomy-diagrams">
<div class="diagram-container" id="diagram-anterior">
<h3>Anterior (Front)</h3>
<img src="muscles-anterior-labeled.png" alt="Labeled anterior muscle diagram from Gray's Anatomy">
<div class="muscle-label">Source: Gray's Anatomy (1918), public domain. Labels: Deltoid, Pectoralis major, Biceps brachii, Rectus abdominis, Quadriceps, etc.</div>
</div>
<div class="diagram-container" id="diagram-posterior">
<h3>Posterior (Back)</h3>
<img src="muscles-posterior-labeled.png" alt="Labeled posterior muscle diagram from Gray's Anatomy">
<div class="muscle-label">Source: Gray's Anatomy (1918), public domain. Labels: Trapezius, Latissimus dorsi, Triceps, Erector spinae, Hamstrings, Gastrocnemius, etc.</div>
</div>
</div>
</div>
<div class="note" style="margin-bottom:24px;"><strong>🎉 New gear:</strong> BowFlex SelectTech 840 adjustable KB (up to 40 lbs) arrived. Current workout uses fixed weights — feel free to dial up on the KB moves.</div>
<!-- Main workout table -->
<div class="section">
<h2>Main Workout</h2>
<div class="table">
<table>
<thead><tr><th>#</th><th>Exercise</th><th>Reps</th><th>Weight</th><th>Form Video</th></tr></thead>
<thead><tr><th>#</th><th>Exercise</th><th>Reps</th><th>Weight</th><th>Target Muscles</th><th>Form Video</th></tr></thead>
<tbody>
<tr>
<td>1</td>
<td class="exercise-name">KB Around the World</td>
<td class="reps">20 (10/dir)</td>
<td class="weight">20 lb KB</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag shoulders" data-muscle="shoulders">Shoulders</span>
<span class="muscle-tag core" data-muscle="core">Core</span>
<span class="muscle-tag forearms" data-muscle="forearms">Forearms</span>
</div>
</td>
<td><a href="https://www.youtube.com/watch?v=CNZcc7Nadwk" class="video-link">▶ Video</a></td>
</tr>
<tr>
@@ -90,6 +244,12 @@
<td class="exercise-name">DB Lateral Raises</td>
<td class="reps">15</td>
<td class="weight">5 lb pair → 10 lb</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag deltoid" data-muscle="deltoid">Lateral Deltoid</span>
<span class="muscle-tag trapezius" data-muscle="trapezius">Upper Trapezius</span>
</div>
</td>
<td><a href="https://www.youtube.com/watch?v=Y29xKcze8Ik" class="video-link">▶ Video</a></td>
</tr>
<tr>
@@ -97,6 +257,14 @@
<td class="exercise-name">KB Sumo Deadlift</td>
<td class="reps">10</td>
<td class="weight">25 lb KB</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag glutes" data-muscle="glutes">Glutes</span>
<span class="muscle-tag quadriceps" data-muscle="quadriceps">Quadriceps</span>
<span class="muscle-tag hamstrings" data-muscle="hamstrings">Hamstrings</span>
<span class="muscle-tag erector-spinae" data-muscle="erector-spinae">Erector Spinae</span>
</div>
</td>
<td><a href="https://www.youtube.com/watch?v=CQ4Jkm-yKnw" class="video-link">▶ Video</a></td>
</tr>
<tr>
@@ -104,6 +272,12 @@
<td class="exercise-name">DB Biceps Curls</td>
<td class="reps">10</td>
<td class="weight">10 lb pair → 12 lb</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag biceps" data-muscle="biceps">Biceps Brachii</span>
<span class="muscle-tag forearms" data-muscle="forearms">Forearms</span>
</div>
</td>
<td class="form-note">standard curl form</td>
</tr>
<tr>
@@ -111,6 +285,13 @@
<td class="exercise-name">Push-ups (on knees)</td>
<td class="reps">15</td>
<td class="weight">bodyweight</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag pectoralis" data-muscle="pectoralis">Pectoralis Major</span>
<span class="muscle-tag deltoid" data-muscle="deltoid">Anterior Deltoid</span>
<span class="muscle-tag triceps" data-muscle="triceps">Triceps</span>
</div>
</td>
<td class="form-note">progress to full push-ups</td>
</tr>
<tr>
@@ -118,6 +299,13 @@
<td class="exercise-name">DB Glute Bridge</td>
<td class="reps">12</td>
<td class="weight">15 lb on hips</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag glutes" data-muscle="glutes">Glutes</span>
<span class="muscle-tag hamstrings" data-muscle="hamstrings">Hamstrings</span>
<span class="muscle-tag core" data-muscle="core">Core</span>
</div>
</td>
<td class="form-note">lie on floor, feet flat, press hips up</td>
</tr>
</tbody>
@@ -131,13 +319,19 @@
<h2>Core Finisher</h2>
<div class="table">
<table>
<thead><tr><th>#</th><th>Exercise</th><th>Reps/Time</th><th>Weight</th><th>Form Video</th></tr></thead>
<thead><tr><th>#</th><th>Exercise</th><th>Reps/Time</th><th>Weight</th><th>Target Muscles</th><th>Form Video</th></tr></thead>
<tbody>
<tr>
<td>1</td>
<td class="exercise-name">Dead Bugs</td>
<td class="reps">10/side</td>
<td class="weight">bodyweight</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag rectus-abdominis" data-muscle="rectus-abdominis">Rectus Abdominis</span>
<span class="muscle-tag obliques" data-muscle="obliques">Obliques</span>
</div>
</td>
<td><a href="https://www.youtube.com/watch?v=g_BYB0R-4Ws" class="video-link">▶ Video</a></td>
</tr>
<tr>
@@ -145,6 +339,12 @@
<td class="exercise-name">Russian Twists</td>
<td class="reps">20 total</td>
<td class="weight">8 lb KB or 10 lb DB</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag obliques" data-muscle="obliques">Obliques</span>
<span class="muscle-tag rectus-abdominis" data-muscle="rectus-abdominis">Rectus Abdominis</span>
</div>
</td>
<td><a href="https://www.youtube.com/watch?v=wkD8rjkodUI" class="video-link">▶ Video</a></td>
</tr>
<tr>
@@ -152,6 +352,13 @@
<td class="exercise-name">Plank Hold</td>
<td class="reps">30-45s</td>
<td class="weight">bodyweight</td>
<td>
<div class="exercise-muscles">
<span class="muscle-tag rectus-abdominis" data-muscle="rectus-abdominis">Rectus Abdominis</span>
<span class="muscle-tag obliques" data-muscle="obliques">Obliques</span>
<span class="muscle-tag erector-spinae" data-muscle="erector-spinae">Erector Spinae</span>
</div>
</td>
<td><a href="https://www.youtube.com/watch?v=ASdvN_XEl_c" class="video-link">▶ Video</a></td>
</tr>
</tbody>
@@ -166,7 +373,37 @@
<div class="wake-locked" id="wakeLockStatus">Screen locked for workout</div>
<script>
// Wake Lock API — MUST use navigator.wakeLock, NOT window.WakeLock
// Muscle tag click handler - highlights diagrams when you click a muscle name
document.querySelectorAll('.muscle-tag').forEach(tag => {
tag.addEventListener('click', function(e) {
e.preventDefault();
// Remove active class from all tags
document.querySelectorAll('.muscle-tag').forEach(t => t.classList.remove('active'));
// Add active class to clicked tag
this.classList.add('active');
// Highlight both diagram containers
document.querySelectorAll('.diagram-container').forEach(container => {
container.classList.add('highlighted');
});
// Get muscle name for logging
const muscleName = this.textContent;
console.log('🔬 Muscle selected:', muscleName);
// Smooth scroll to anatomy section
document.querySelector('.anatomy-section').scrollIntoView({
behavior: 'smooth',
block: 'center'
});
// Remove highlight after 3 seconds
setTimeout(() => {
document.querySelectorAll('.diagram-container').forEach(container => {
container.classList.remove('highlighted');
});
this.classList.remove('active');
}, 3000);
});
});
// Wake Lock API
let wakeLock = null;
async function requestWakeLock() {
try {
@@ -194,4 +431,4 @@
}
</script>
</body>
</html>
</html>