<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>
JBOPGCFS200ML-config
In stock
Johnson's Baby Oil Pure and Gentle Care for Sensitive Skin 200ml
As low as
£1.91
Regular Price
£2.06
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;">Newborn skin loses moisture at a faster rate than older skin and once that moisture is gone, dryness and discomfort follow quickly. Johnson's Baby Oil Pure and Gentle Care is designed specifically to prevent that, forming a lightweight protective barrier on the skin's surface that locks in hydration and keeps delicate skin soft, smooth, and comfortable throughout the day and night.
</span></p>
<p><span style="color: #000000;">The formula is built around pure mineral oil, one of the most well-established, skin-safe ingredients in baby care, trusted for its ability to glide effortlessly onto skin and seal in moisture without clogging pores or causing irritation. Applied to damp skin immediately after bathing, when the skin's surface still holds water from the bath, it traps that hydration beneath a protective layer for significantly longer-lasting moisture than applying to dry skin alone.
</span></p>
<p><span style="color: #000000;">The light, non-heavy texture is one of its most practical qualities for daily use. It spreads easily and absorbs smoothly without leaving a thick, greasy film, which matters both for comfort and for practicality when dressing a baby straight after application. Despite its lightness, it performs genuinely well as a moisture-retaining barrier throughout the day.
</span></p><p><span style="color: #000000;">It's also an excellent choice for baby massage, the silky texture allows hands to move smoothly and comfortably across skin, making those post-bath massage sessions a calm, bonding experience that benefits both baby's skin and the connection between parent and child. Free from dyes, parabens, and phthalates, the hypoallergenic formula is dermatologist and paediatrician tested, pH balanced, and safe for use on newborns and sensitive skin from birth.
The compact 200ml bottle stores neatly on a bathroom shelf or in a nappy bag for use at home and while travelling.
</span></p>
<h4><span style="color: #46a74e;">BENEFITS</span></h4>
<ul>
<li>Pure mineral oil forms a protective barrier that locks in moisture effectively</li>
<li>Ideal applied to damp post-bath skin for maximum hydration retention</li>
<li>Light, non-greasy texture that absorbs smoothly without residue on skin or clothing</li>
<li>Perfect for baby massage, silky glide supports a calm, bonding post-bath routine</li>
<li>Free from dyes, parabens, and phthalates, clean and safe for newborn daily use</li>
<li>Hypoallergenic, pH-balanced formula minimises the risk of skin irritation
</li>
<li>Dermatologist and paediatrician tested for confident use on sensitive skin from birth</li><li>Compact 200ml bottle, practical for home use and travel
</li>
</ul>
<h4><span style="color: #46a74e;">DIRECTIONS</span></h4>
<p><span style="color: #000000;">Apply a small amount to damp skin after bathing or as needed. Massage gently until fully absorbed. For external use only.</span></p>
<h4><span style="color: #46a74e;">WARNINGS</span></h4>
<p><span style="color: #000000;">Keep out of reach of children. Avoid contact with eyes. Do not apply on broken or irritated skin. External use only.</span></p>
<p><span style="color: #000000;">Pure, gentle, and genuinely effective - a baby oil that keeps sensitive skin soft, protected, and comfortable from the very first use.</span></p>
| EAN | 3574669909594 |
|---|---|
| Brands | Johnsons |
| Formulation | Oil |
| Number of items | 1 |
| Scent | Mild Baby Scent |
| Color | Clear |
| Size | 200ml |
| Brand | Johnson's |
| Ingredients | Mineral oil, fragrance, aloe barbadensis leaf extract, tocopheryl acetate (vitamin E), water |
| Department | Baby |
| Unit Type | ML |
| Period After Opening (PAO) | 12 months |
| Skin Type | Sensitive, All Skin Types |
| Set Includes | 1 x Baby Oil 200ml |
| Body Area | Body, Legs, Arms |
| Product Line | Johnson's Baby Skincare |
| Features | Pure mineral oil |
| Safety Warning | Keep out of reach of children. Avoid contact with eyes. Do not apply on broken or irritated skin. External use only. |
| Main Purpose | Moisturizing and skin protection |
| Instructions for Use | Apply a small amount to damp skin after bathing or as needed. Massage gently until fully absorbed. For external use only. |
Write Your Own Review