✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush
✨Curl Define Styling Brush

✨Curl Define Styling Brush

''This brush has changed the whole game. It's so much more efficient and my hair dried into such nice little ringlets.'' - Helen, USA
Sale
Please select a sale
Price
$0.00
$22.00
Save  0%
Quantity
Free worldwide shipping
Free returns
Sustainably made
Secure payments
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

This innovative 3-in-1 brush effortlessly smoothes your hair but also helps Defining Hairbrush / Styling Brush, It also keeps it frizzy-free.

Its ergonomic handle and strategically placed bristles define, shape, and detangle curls effortlessly.

Gentle bristles stop breakage and damage on all hair types and curl patterns.

Define curls with ease

Curl brush effortlessly smoothes your hair and creates well-defined clumps while preventing frizz. The unique lateral edges of the brush play a significant role in effortlessly separating and smoothing curls for a remarkable styling experience.

• rounded tips for precise and controlled styling
• strategically placed bristles
 

Achieve consistent results every time

Vegan boar style bristles create enough tension to really smooth down the curls and define them while distributing the product super well. Jounce brush is designed to cater to various hair textures and patterns, including fine, medium, and coarse, as well as wavy, curly, and coily hair.

• define, shape, and detangle effortlessly

Make your routine more efficient!

Our brush is specifically designed to enhance your waves, define curls and create elegant ringlets by wrapping your hair around the lateral edges, resulting in consistently elegant coils every time. 

• handle can be used for coiling & sectioning

Don't miss out! Buy now and enjoy that new look today!

9500+ Happy Customers

97% customers reported brush as a ''game changer''
94% customers reported getting consistent results
91% customers reported very impressed by the edges of the brush