<style>
/* ================== OVERLAY WRAPPER ================== */
#delivery-overlay {
position: fixed;
right: 24px;
bottom: 24px;
width: 100%;
max-width: 36rem;
z-index: 9999;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s ease;
font-family: inherit;
}
#delivery-overlay {
z-index: 10;
}
/* ================== CARD ================== */
#delivery-overlay .card {
position: relative;
display: flex;
gap: 16px;
padding: 16px 40px 16px 16px;
border-radius: 16px;
background: rgba(255,255,255,0.9);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border: 1px solid #e5e7eb;
box-shadow: 0 20px 40px rgba(0,0,0,.15);
overflow: hidden;
}
/* decorative blur */
#delivery-overlay .blur-bg {
position: absolute;
top: -40px;
right: -40px;
width: 96px;
height: 96px;
background: rgba(59,130,246,0.12);
border-radius: 50%;
filter: blur(32px);
pointer-events: none;
}
/* ================== ICON ================== */
#delivery-overlay .icon-wrap {
flex-shrink: 0;
background: #dbeafe;
color: #2563eb;
padding: 10px;
border-radius: 999px;
}
/* ================== TEXT ================== */
#delivery-overlay .content {
display: flex;
flex-direction: column;
gap: 6px;
}
#delivery-overlay h3 {
margin: 0;
font-size: 1.4rem;
font-weight: 700;
color: #111827;
display: flex;
align-items: center;
gap: 8px;
}
#delivery-overlay p {
margin: 0;
font-size: 1.4rem;
color: #4b5563;
line-height: 1.4;
}
#delivery-overlay .bold {
font-weight: 700;
color: #111827;
}
/* badge */
#delivery-overlay .badge {
font-size: 10px;
font-weight: 700;
background: #2563eb;
color: #fff;
padding: 2px 6px 0;
border-radius: 999px;
text-transform: uppercase;
letter-spacing: .08em;
}
/* timer row */
#delivery-overlay .timer {
display: flex;
align-items: center;
gap: 6px;
margin-top: 4px;
font-size: 1rem;
color: #6b7280;
}
/* ================== CLOSE BUTTON ================== */
#delivery-overlay .close-btn {
position: absolute;
top: 8px;
right: 8px;
width: 28px;
height: 28px;
border-radius: 999px;
border: none;
background: transparent;
cursor: pointer;
color: #9ca3af;
display: flex;
align-items: center;
justify-content: center;
}
#delivery-overlay .close-btn:hover {
background: #f3f4f6;
color: #4b5563;
}
/* ================== ANIMATIONS ================== */
@keyframes slideIn {
from { transform: translateX(100%); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
@keyframes fadeOut {
from { opacity: 1; }
to { opacity: 0; }
}
#delivery-overlay.show {
opacity: 1;
pointer-events: auto;
}
#delivery-overlay.slide-in {
animation: slideIn .5s cubic-bezier(.16,1,.3,1) forwards;
}
#delivery-overlay.fade-out {
animation: fadeOut .3s ease forwards;
}
/* ================== MOBILE ================== */
@media (max-width: 480px) {
#delivery-overlay {
right: 12px;
left: 12px;
max-width: none;
}
}
</style>
<!-- ================== HTML ================== -->
<div id="delivery-overlay">
<div class="card">
<div class="blur-bg"></div>
<div class="icon-wrap">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2"/>
<path d="M15 18H9"/>
<path d="M19 18h2a1 1 0 0 0 1-1v-5l-4-4h-3v10a1 1 0 0 0 1 1Z"/>
<circle cx="7" cy="18" r="2"/>
<circle cx="17" cy="18" r="2"/>
</svg>
</div>
<div class="content">
<h3>
Fast Delivery
<span class="badge">Next Day</span>
</h3>
<p>
All orders placed before <span class="bold">5:00 PM</span> are delivered Next Day.
</p>
<div class="timer" style="display: none;">
<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="10"/>
<polyline points="12 6 12 12 16 14"/>
</svg>
<span id="delivery-timer">Time remaining: --h --m --s</span>
</div>
</div>
</div>
</a>
<button class="close-btn" id="close-overlay" aria-label="Close">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 6 6 18"/>
<path d="m6 6 12 12"/>
</svg>
</button>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
const overlay = document.getElementById('delivery-overlay');
const closeBtn = document.getElementById('close-overlay');
const timerEl = document.getElementById('delivery-timer');
if (!overlay || !closeBtn || !timerEl) return;
// -------- show overlay --------
setTimeout(() => {
overlay.classList.add('show', 'slide-in');
}, 1500);
closeBtn.addEventListener('click', () => {
overlay.classList.remove('slide-in');
overlay.classList.add('fade-out');
setTimeout(() => overlay.style.display = 'none', 300);
});
// -------- UK TIME COUNTDOWN --------
function getUKNow() {
const parts = new Intl.DateTimeFormat('en-GB', {
timeZone: 'Europe/London',
year: 'numeric', month: 'numeric', day: 'numeric',
hour: 'numeric', minute: 'numeric', second: 'numeric',
hour12: false
}).formatToParts(new Date());
const g = t => parts.find(p => p.type === t).value;
return new Date(g('year'), g('month') - 1, g('day'), g('hour'), g('minute'), g('second'));
}
function updateTimer() {
const now = getUKNow();
const cutoff = new Date(now);
cutoff.setHours(17, 30, 0, 0); // 5:30 PM UK
if (now >= cutoff) cutoff.setDate(cutoff.getDate() + 1);
const diff = cutoff - now;
if (diff <= 0) return;
const s = Math.floor(diff / 1000);
const h = Math.floor(s / 3600);
const m = Math.floor((s % 3600) / 60);
const sec = s % 60;
timerEl.textContent =
`Time remaining: ${String(h).padStart(2,'0')}h ` +
`${String(m).padStart(2,'0')}m ` +
`${String(sec).padStart(2,'0')}s`;
}
updateTimer();
setInterval(updateTimer, 1000);
});
</script>
T7-CXKI-621V-config
In stock
Johnson's Baby Bath 300ml
As low as
£1.55
Regular Price
£1.66
Johnson's Baby Bath, 300ml, provides gentle cleansing for your little one, keeping their skin soft and smooth.
ORDER WITHIN:
FREE DELIVERY OVER £29.99
Only applicable to Mainland UK
<h4><span style="color: #46a74e;">DESCRIPTION</span></h4>
<p><span style="color: #000000;">Some products earn their place through decades of consistent, quiet reliability and Johnson's Baby Bath is exactly that. A trusted staple in family bathrooms across the UK for generations, this gentle, mild baby bath is specially formulated to cleanse a baby's delicate skin thoroughly and lovingly, without causing the dryness, irritation, or tears that harsher washes can bring.
</span></p>
<p><span style="color: #000000;">The tear-free formula is at the heart of what makes bath time so much more enjoyable for both baby and parent. Knowing that a little product near the eyes won't cause stinging or distress removes one of the most common sources of bath time anxiety, leaving you free to focus on making it a warm, positive experience that your baby genuinely looks forward to.
</span></p>
<p><span style="color: #000000;">The hypoallergenic, pH-balanced formula has been developed with the mildest possible approach to baby skin care, cleansing gently and effectively without stripping the natural moisture that delicate newborn skin relies on. It nourishes as it cleanses, leaving skin feeling soft, smooth, and comfortable after every bath rather than tight or dry.
</span></p>
<p><span style="color: #000000;">Paediatrician and dermatologist tested, it's suitable for use from birth and gentle enough for the most sensitive newborn skin, making it a confident, reassuring choice for daily use as part of a consistent bath time routine. The familiar, comforting Johnson's fragrance adds a gentle sensory warmth to bath time, soft and clean without being overpowering, and instantly recognisable to parents who grew up with it themselves.
</span></p>
<h4><span style="color: #46a74e;">BENEFITS</span></h4>
<ul>
<li>Tear-free formula keeps bath time calm and comfortable for baby and parent
</li>
<li>Hypoallergenic and pH-balanced, developed with the mildest approach to baby skin
</li>
<li>Gently cleanses and nourishes delicate skin without causing dryness
</li>
<li>Suitable for newborns and sensitive skin from the very first bath
</li>
<li>Paediatrician and dermatologist tested for confident daily use from birth
</li>
<li>Leaves skin feeling soft, smooth, and comfortably moisturised after rinsing
</li>
<li>Free from ingredients that could irritate or strip natural moisture from delicate skin
</li>
<li>300ml bottle - a practical everyday size for regular daily bath time use
</li>
</ul>
<h4><span style="color: #46a74e;">DIRECTIONS</span></h4>
<p><span style="color: #000000;">Pour Johnson's Baby Bath into warm water and swirl to create a gentle foam. Gently wash baby's skin and hair with your hand or a washcloth. Rinse thoroughly.</span></p>
<h4><span style="color: #46a74e;">WARNINGS</span></h4>
<p><span style="color: #000000;">For external use only. Keep out of reach of children. Avoid contact with eyes. If contact occurs, rinse with water.</span></p>
<p><span style="color: #000000;">Gentle, trusted, and time-tested - a baby bath that has been part of bedtime routines across the UK for very good reason.</span></p>
| EAN | 3574661730783 |
|---|---|
| Brands | Johnsons |
| Size | 300ml |
| Formulation Type | Liquid |
| Scent | Fresh |
| Usage | Used for gentle cleansing during baby baths, suitable for sensitive baby skin. |
| Ingredients | Water, Cocamidopropyl Betaine, PEG-80 Sorbitan Laurate, PEG-150 Pentaerythrityl Tetrastearate, PPG-2 Hydroxyethyl Cocamide, Decyl Glucoside, Phenoxyethanol, Sodium Methyl Cocoyl Taurate, Sodium Benzoate, Fragrance, Citric Acid, Ethylhexylglycerin |
| Tear Free | No |
Write Your Own Review
<div class="element products-slider see-also-div" style="max-width: 1440px; margin: auto;">
</div>





