Jess Barraclough- Favourite Products

🐴 Jess Barraclough – Age 19

🏁 Barrel Racer | Australia

Jess rides with grit and guts β€” and she expects her horse care to work just as hard. Between arena days, travel and recovery, she’s all about products that do the job, no fluff needed.

Her everyday favourites?

🧊 Cool It Gel – for post-run leg relief, muscle recovery and that icy-cool finish after a big ride.
🧴 Hoof It – because she knows strong, conditioned hooves are non-negotiable when you’re chasing speed.

Jess doesn’t compromise when it comes to her horses β€” and with Horse Queened in her kit, she doesn’t have to.

Loading products...
501 RESULTS
93% Off
Hoof It – Daily Hoof Conditioning Oil - Horse QueenedHoof It – Daily Hoof Conditioning Oil - Horse Queened

Hoof It – Daily Hoof Conditioning Oil

Supports softer, conditioned hooves in all seasons
Enhances natural hoof shine without heavy residue
Oil-rich formula that clings without dripping
250ml
$31.95
Cool It Gel – Refreshing Grooming Gel for Everyday Care - Horse QueenedCool It Gel – Refreshing Grooming Gel for Everyday Care - Horse Queened

Cool It Gel – Refreshing Grooming Gel for Everyday Care

Perfect for cooldown routines after exercise
Quick-dry formula for clean, easy application
Refreshing gel for post-work comfort
220ml
$39.95
1 of 1

UNLEASH YOUR HORSE'S BEST SHINE

Transform every grooming session into a spa-like experience, so your horse enjoys a healthy, glossy coat every day.

Premium Care Proven Results

Trusted by riders for stronger hooves and softer coats, this is the quality care your horse truly deserves.

/* Product zoom: mouse-follow + touch toggle Works with: product-zoom-element[data-magnify], .product-zoom--wrapper, .product-zoom--enlarged */ (() => { const ZOOM_ATTR = 'data-magnify'; const roots = Array.from(document.querySelectorAll(`product-zoom-element[${ZOOM_ATTR}]`)); if (!roots.length) return; roots.forEach(root => { // ensure root is focusable for keyboard access if (!root.hasAttribute('tabindex')) root.setAttribute('tabindex', '0'); const wrapper = root.querySelector('.product-zoom--wrapper'); const enlarged = root.querySelector('.product-zoom--enlarged'); if (!wrapper) return; const rawZoom = parseFloat(root.getAttribute('data-magnify')) || 1.7; let effectiveZoom = rawZoom; // may be increased if high-res image is larger let isZoomed = false; // compute effective zoom based on the natural size of the enlarged image (if available) function updateEffectiveZoom() { try { if (enlarged && enlarged.naturalWidth && root.offsetWidth) { const imageRatio = enlarged.naturalWidth / root.offsetWidth; // we want at least rawZoom but if enlarged image is bigger, allow larger zoom effectiveZoom = Math.max(rawZoom, imageRatio); } else { effectiveZoom = rawZoom; } } catch (err) { effectiveZoom = rawZoom; } } if (enlarged) { if (enlarged.complete) updateEffectiveZoom(); else enlarged.addEventListener('load', updateEffectiveZoom, { once: true }); // also update on window resize (image/container geometry changes) window.addEventListener('resize', () => { updateEffectiveZoom(); }); } // Utility: set transform-origin and scale for enlarged image function setOriginAndScale(clientX, clientY) { const rect = root.getBoundingClientRect(); // clamp values 0..100 const x = Math.min(100, Math.max(0, ((clientX - rect.left) / rect.width) * 100)); const y = Math.min(100, Math.max(0, ((clientY - rect.top) / rect.height) * 100)); if (enlarged) { enlarged.style.transformOrigin = `${x}% ${y}%`; enlarged.style.transform = `scale(${effectiveZoom})`; } // slight parallax: move wrapper transform-origin to follow cursor (subtle) wrapper.style.transformOrigin = `${x}% ${y}%`; } // Activate zoom (add class, set scale) function activateZoom(clientX, clientY) { updateEffectiveZoom(); root.classList.add('is-zoomed'); isZoomed = true; if (typeof clientX === 'number' && typeof clientY === 'number') { setOriginAndScale(clientX, clientY); } else { // center if no coordinates provided if (enlarged) { enlarged.style.transformOrigin = `50% 50%`; enlarged.style.transform = `scale(${effectiveZoom})`; } wrapper.style.transformOrigin = `50% 50%`; } } // Deactivate zoom (reset transforms) function deactivateZoom() { root.classList.remove('is-zoomed'); isZoomed = false; if (enlarged) { enlarged.style.transform = 'scale(1)'; enlarged.style.transformOrigin = '50% 50%'; } wrapper.style.transform = 'scale(1)'; wrapper.style.transformOrigin = '50% 50%'; } // Mouse handlers function onMouseMove(e) { if (!isZoomed) activateZoom(e.clientX, e.clientY); else setOriginAndScale(e.clientX, e.clientY); } function onMouseEnter(e) { // activate but don't force a jump β€” set origin from event activateZoom(e.clientX, e.clientY); } function onMouseLeave() { deactivateZoom(); } // Touch handlers (simple toggle on first tap; move origin while zoomed) let lastTouchEnd = 0; function onTouchStart(e) { if (e.touches.length > 1) { // ignore pinch for now β€” allow browser default return; } const t = e.touches[0]; // toggle on tap if (!isZoomed) { activateZoom(t.clientX, t.clientY); } else { // if already zoomed, just update origin (user may pan) setOriginAndScale(t.clientX, t.clientY); } } function onTouchMove(e) { if (!isZoomed || e.touches.length === 0) return; const t = e.touches[0]; setOriginAndScale(t.clientX, t.clientY); } function onTouchEnd(e) { // if touchend with no subsequent touches, keep zoom active; second tap will close. // implement a quick double-tap-to-close const now = Date.now(); if (now - lastTouchEnd < 300) { // double-tap detected -> close deactivateZoom(); } lastTouchEnd = now; } // Keyboard (Enter/Space toggles) function onKeyDown(e) { if (e.key === 'Enter' || e.key === ' ' || e.key === 'Spacebar') { e.preventDefault(); if (!isZoomed) activateZoom(root.getBoundingClientRect().left + root.offsetWidth / 2, root.getBoundingClientRect().top + root.offsetHeight / 2); else deactivateZoom(); } else if (e.key === 'Escape' && isZoomed) { deactivateZoom(); } } // Bind events root.addEventListener('mousemove', onMouseMove); root.addEventListener('mouseenter', onMouseEnter); root.addEventListener('mouseleave', onMouseLeave); // touch: use passive listeners where safe root.addEventListener('touchstart', onTouchStart, { passive: true }); root.addEventListener('touchmove', onTouchMove, { passive: true }); root.addEventListener('touchend', onTouchEnd, { passive: true }); root.addEventListener('keydown', onKeyDown); // Clean up in case element is removed (optional) // If you dynamically remove elements, consider removing listeners to avoid leaks. }); })();