<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>
V_JBOA300-3
In stock
Only 10 left
Johnson's Baby Aloe Vera Oil 300ml - Pack of 3
Special Price
£7.37
Regular Price
£9.04
Gently moisturizes and soothes delicate skin with aloe, providing a soft, smooth feel for babies and adults alike
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;">Baby skin loses moisture quickly and while lotions do a good job of topping it up, a well-formulated baby oil works differently, sealing in hydration at a level that creams simply can't match. Johnson's Baby Aloe Vera Oil locks in up to 10 times more moisture than lotion alone, making it one of the most effective everyday solutions for keeping delicate baby skin soft, smooth, and protected against dryness throughout the day and night.
</span></p>
<p><span style="color: #000000;">The addition of aloe vera takes the formula beyond standard mineral oil, bringing natural soothing and hydrating properties that work gently on sensitive skin. Aloe vera has a well-established reputation for calming dry, irritated skin and combined with Johnson's lightweight oil base, it delivers lasting moisture without the heavy, greasy feeling that puts many parents off using oils in the first place.
</span></p>
<p><span style="color: #000000;">One of the most popular uses for this oil is baby massage and for good reason. The lightweight texture glides smoothly across skin, making it ideal for gentle post-bath massage sessions that soothe, relax, and create a meaningful moment of calm between parent and baby. Applied consistently as part of a bedtime routine, that massage becomes a natural, comforting wind-down ritual that benefits both baby's skin and sleep.
</span></p>
<p><span style="color: #000000;">The mild, alcohol-free formula is dermatologist and paediatrician tested, making it a safe, gentle choice for sensitive newborn skin from the earliest weeks. It's also suitable for adults looking for a gentle, effective everyday skin oil - making the generous 300ml bottle practical for the whole family.
</span></p>
<h4><span style="color: #46a74e;">BENEFITS</span></h4>
<ul>
<li>Locks in up to 10 times more moisture than lotion for long-lasting skin hydration
</li>
<li>Enriched with soothing aloe vera to calm and nourish delicate baby skin
</li>
<li>Lightweight, non-heavy formula, moisturises effectively without a greasy finish
</li>
<li>Perfect for post-bath baby massage, creates a calming bonding experience
</li>
<li>Protects against dryness and keeps skin soft and smooth with regular use
</li>
<li>Alcohol-free and free from harsh chemicals, gentle enough for newborn skin
</li>
<li>Dermatologist and paediatrician tested for safe daily use from birth
</li><li>Suitable for adults as a gentle everyday body oil - great value at 300ml
</li>
</ul>
<h4><span style="color: #46a74e;">DIRECTIONS</span></h4>
<p><span style="color: #000000;">Pour a small amount into your hands and rub them together to warm the oil. Gently massage onto damp skin to lock in moisture. Ideal for use after bath time for soft, smooth skin. Can also be used for baby massages to promote relaxation.</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 thoroughly with water. Do not apply to broken or irritated skin. Store in a cool, dry place away from direct sunlight.</span></p>
<p><span style="color: #000000;">Nourishing, soothing, and genuinely effective - a baby oil that does far more than simply moisturise, and earns its place on the bathroom shelf from day one.</span></p>
| EAN | 3574660058833 |
|---|---|
| Brands | Johnsons |
| Size | 300ml |
| Number of items | 3 |
| Formulation Type | Oil |
| Scent | Aloe |
| Usage | Gently moisturizes and nourishes baby’s delicate skin, leaving it soft and smooth. |
| Pack of | Pack of 3 |
| Ingredients | Mineral Oil, Fragrance, Aloe Barbadensis Leaf Extract*, Tocopheryl Acetate* |
| Display Type | Bottle |
| Skin Type | Suitable for all skin types, including sensitive skin |
| Bottle Type | Flip-top plastic bottle |
| Tear Free | No |
| Tear Free | Yes |
| Recommended Age Range | From newborn onwards. |
| Bottle Material | Plastic |
| Bottle Features | Easy-to-use, leak-resistant, and travel-friendly. |
| Theme | Baby skincare and nourishment. |
| Safety Warning | For external use only. Keep out of reach of children. Avoid contact with eyes. If irritation occurs, discontinue use. |
| Features | Enriched with aloe vera for soothing and moisturizing properties. |
Write Your Own Review