This 10-item self-report measure is designed to screen for symptoms of emotional distress during pregnancy and the postnatal period.
Important: The EPDS is a screening tool, not a diagnostic tool. It must always be used in conjunction with clinical assessment.
This scale asks about feelings over the past 7 days. It may need to be repeated later as clinically warranted.
Item 10: This question asks about thoughts of self-harm. If you score 1, 2, or 3 on this item (meaning you have had these thoughts), it is crucial to discuss this immediately with your GP, midwife, or healthcare provider to ensure your safety and the safety of your baby.
Please select the option that comes closest to how you have felt in the PAST SEVEN DAYS.
1
I have been able to laugh and see the funny side of things:
2
I have looked forward with enjoyment to things:
3
*I have blamed myself unnecessarily when things went wrong:
4
I have been anxious or worried for no good reason:
5
*I have felt scared or panicky for no very good reason:
6
*Things have been getting on top of me:
7
*I have been so unhappy that I have had difficulty sleeping:
8
*I have felt sad or miserable:
9
*I have been so unhappy that I have been crying:
10
*The thought of harming myself has occurred to me:
Your EPDS Score
IMPORTANT: Because you indicated having thoughts of harming yourself (Item 10), further evaluation is required immediately. Please tell your GP, midwife, or healthcare provider about these thoughts today to ensure your safety and the safety of your baby.
document.addEventListener('DOMContentLoaded', function() {
const form = document.getElementById('epds-form');
const calculateBtn = document.getElementById('calculate-score');
const resetBtn = document.getElementById('reset-form');
const resultsDiv = document.getElementById('epds-results');
const scoreSpan = document.getElementById('total-score');
const interpretationP = document.getElementById('score-interpretation');
const item10WarningDiv = document.getElementById('item10-warning');
const errorMessageDiv = document.getElementById('epds-error-message');
const totalQuestions = 10;calculateBtn.addEventListener('click', calculateAndShowScore);
resetBtn.addEventListener('click', resetScale);function calculateAndShowScore() {
let totalScore = 0;
let item10Score = -1; // Use -1 to indicate not answered yet
let allAnswered = true;errorMessageDiv.style.display = 'none'; // Hide previous errorsfor (let i = 1; i {
const radioChecked = qDiv.querySelector('input[type="radio"]:checked');
if(radioChecked || !allAnswered) { // Remove highlight if answered or if we haven't calculated yet
// qDiv.style.borderColor = '#eee'; // Reset border - maybe remove this line if :focus-within handles it better
}
});if (!allAnswered) {
errorMessageDiv.textContent = 'Please answer all 10 questions before calculating the score.';
errorMessageDiv.style.display = 'block';
resultsDiv.style.display = 'none'; // Hide results if shown previously
// Scroll to first unanswered? Optional.
const firstUnanswered = form.querySelector('input[type="radio"]:not(:checked)').closest('.epds-question');
if(firstUnanswered){
firstUnanswered.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
return;
}// Display score and interpretation
scoreSpan.textContent = totalScore;
resultsDiv.classList.remove('score-low', 'score-medium', 'score-high'); // Clear previous classesif (totalScore <= 9) {
interpretationP.innerHTML = `Score Range 0-9: Your score suggests you may be experiencing some symptoms of distress. These might be short-lived and are less likely to significantly interfere with your daily life. However, if these feelings persist for more than a week or two, further discussion with your healthcare provider is warranted.`;
resultsDiv.classList.add('score-low');
} else if (totalScore >= 10 && totalScore <= 12) {
interpretationP.innerHTML = `Score Range 10-12: Your score indicates the presence of symptoms of distress that may be causing discomfort. It's recommended to monitor your progress and consider repeating the scale in about 2 weeks. If your score increases or remains in this range, further assessment and potential referral should be considered. Discuss these feelings with your healthcare provider.`;
resultsDiv.classList.add('score-medium');
} else { // Score 13+
interpretationP.innerHTML = `Score Range 13+: Your score suggests a high likelihood of depression, requiring further assessment and appropriate management. It is important to seek help. Referral to a psychiatrist, psychologist, or mental health professional may be necessary. Please discuss this score and your feelings with your healthcare provider urgently.`;
resultsDiv.classList.add('score-high');
}// Handle Item 10 Warning - THIS OVERRIDES OTHER INTERPRETATIONS IN IMPORTANCE
if (item10Score >= 1 && item10Score <= 3) {
item10WarningDiv.style.display = 'block';
resultsDiv.classList.remove('score-low', 'score-medium'); // Remove styling conflict
resultsDiv.classList.add('score-high'); // Always treat as high concern
// Optional: Prepend a note to the main interpretation
interpretationP.innerHTML = `Note: Presence of self-harm thoughts requires immediate attention regardless of total score.
` + interpretationP.innerHTML;} else {
item10WarningDiv.style.display = 'none';
}resultsDiv.style.display = 'block';
// Scroll to results
resultsDiv.scrollIntoView({ behavior: 'smooth', block: 'start' });
}function resetScale() {
form.reset(); // Resets form inputs
resultsDiv.style.display = 'none'; // Hide results
item10WarningDiv.style.display = 'none'; // Hide warning
errorMessageDiv.style.display = 'none'; // Hide error
scoreSpan.textContent = '';
interpretationP.textContent = '';
resultsDiv.classList.remove('score-low', 'score-medium', 'score-high');
// Remove any leftover highlights from missing answers
form.querySelectorAll('.epds-question').forEach(qDiv => {
qDiv.style.borderColor = '#eee';
});// Scroll to top of the container
const container = document.querySelector('.epds-container');
if (container) {
container.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
}// Add visual feedback on selection (optional but nice)
form.querySelectorAll('.options-group input[type="radio"]').forEach(radio => {
radio.addEventListener('change', function() {
// Remove highlight from siblings in the same question
const questionDiv = this.closest('.epds-question');
if(questionDiv){
questionDiv.querySelectorAll('label').forEach(lbl => lbl.classList.remove('option-selected-visual'));
// Add highlight to the selected one's label
// This part is handled by the :checked + label CSS now, which is cleaner.
// Keeping the border reset logic in calculateAndShowScore is useful for missed questions.
// Reset border if previously marked as missing
if (questionDiv.style.borderColor === 'var(--epds-warning-color)') {
questionDiv.style.borderColor = '#eee';
}
}
});
});});/* --- EduLab 'All Scales' Button Styles (Refined Pathway) --- */
.edulab-button-container {
/* Centers the button horizontally */
text-align: center;
padding: 25px 0; /* Adds space above/below the button */
}.edulab-button.refined-pathway {
/* --- Fallback colors if CSS variables aren't available --- */
--accent-teal-bright-fb: #00f2ea;
--accent-lavender-soft-fb: #c8bfff;
--bg-deep-space-fb: #0a0f2e; /* Darkest background */
--bg-nebula-start-fb: #1a1f4b; /* Slightly lighter dark */
--text-primary-fb: #f0f0f5;
--font-main-fb: 'Poppins', sans-serif; /* Ensure this font is loaded on your site *//* --- Base Button Styling --- */
display: inline-block; /* Needed for centering via text-align */
position: relative;
padding: 15px 35px; /* Generous padding for visual presence */
margin: 10px 5px;
text-decoration: none;
font-family: var(--font-main, var(--font-main-fb));
font-weight: 600;
font-size: 1.1rem; /* Slightly larger font */
letter-spacing: 0.5px;
color: var(--accent-teal-bright, var(--accent-teal-bright-fb)); /* Bright teal text */
background-color: var(--bg-nebula-start, var(--bg-nebula-start-fb)); /* Dark base for contrast */
border: 2px solid var(--accent-teal-bright, var(--accent-teal-bright-fb));
border-radius: 10px; /* Softened corners */
overflow: hidden; /* Contains pseudo-elements */
cursor: pointer;
z-index: 1;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), /* Base shadow */
inset 0 0 8px rgba(0, 242, 234, 0.15); /* Subtle inner teal glow *//* --- Transitions --- */
transition: color 0.4s ease, background-color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease, transform 0.3s ease;
-webkit-backface-visibility: hidden; /* Smoother animations */
backface-visibility: hidden;
}/* --- Text Span --- */
.edulab-button.refined-pathway span {
position: relative;
z-index: 3; /* Always on top */
display: inline-block;
}/* --- Streaking Lines (Pseudo-elements) --- */
.edulab-button.refined-pathway::before,
.edulab-button.refined-pathway::after {
content: '';
position: absolute;
top: 0;
left: 0; /* Start from left edge */
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, var(--accent-teal-bright, var(--accent-teal-bright-fb)), transparent);
opacity: 0; /* Start hidden */
z-index: 2; /* Below text, above base background */
transform: skewX(-25deg) translateX(-150%); /* Start way off-screen */
transition: transform 0.6s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.4s ease;
}.edulab-button.refined-pathway::after {
background: linear-gradient(90deg, transparent, var(--accent-lavender-soft, var(--accent-lavender-soft-fb)), transparent);
transition-delay: 0.08s; /* Slightly adjusted stagger */
}/* --- Hover Effects --- */
.edulab-button.refined-pathway:hover {
color: var(--bg-deep-space, var(--bg-deep-space-fb)); /* Switch to dark text for HIGH CONTRAST */
background-color: var(--accent-teal-bright, var(--accent-teal-bright-fb)); /* Fill background with teal */
border-color: var(--accent-teal-bright, var(--accent-teal-bright-fb)); /* Border merges */
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25), /* Lifted shadow */
0 0 30px rgba(0, 242, 234, 0.75); /* Stronger teal glow */
transform: translateY(-3px); /* Slight lift */
}.edulab-button.refined-pathway:hover::before,
.edulab-button.refined-pathway:hover::after {
transform: skewX(-25deg) translateX(150%); /* Sweep across */
opacity: 0.6; /* Make streaks visible */
}
.edulab-button.refined-pathway:hover::after {
opacity: 0.4; /* Lavender streak slightly fainter */
}/* --- Active (Click) Effects --- */
.edulab-button.refined-pathway:active {
transform: translateY(-1px) scale(0.98); /* Push down effect */
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2), /* Reduced shadow */
0 0 20px rgba(0, 242, 234, 0.6); /* Slightly reduced glow */
}