Boho Western Washed Denim Zipper Midi Dress With Asymmetric Frayed Hem
Boho Western Washed Denim Zipper Midi Dress With Asymmetric Frayed Hem
Boho Western Washed Denim Zipper Midi Dress With Asymmetric Frayed Hem
Boho Western Washed Denim Zipper Midi Dress With Asymmetric Frayed Hem
Boho Western Washed Denim Zipper Midi Dress With Asymmetric Frayed Hem
Boho Western Washed Denim Zipper Midi Dress With Asymmetric Frayed Hem

Boho Western Washed Denim Zipper Midi Dress With Asymmetric Frayed Hem

Price

$0.00 $34.09
🎉 Queen Rewards Event | Spend $80 → Save 25% | Spend $110 → Save 40% | Spend $130 → Save 50% | Spend $160 → Save 65%

color

Please select a color

size

Please select a size

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);

Product Description

Bring effortless Western charm to your wardrobe with this washed denim midi dress. Designed with a relaxed boho spirit, the dress combines a timeless denim look with a front zipper detail and an eye-catching asymmetric frayed hem for a modern, free-spirited finish.

Product Features

  • Washed denim fabric creates a soft, lived-in look with casual Western appeal.
  • Midi length offers versatile coverage and an easy everyday silhouette.
  • Front zipper detail adds practical function and a contemporary touch.
  • Asymmetric frayed hem brings movement, texture, and distinctive boho character.
  • Easy-to-style design that transitions naturally from casual daytime outfits to relaxed weekend looks.
  • Denim construction makes it a dependable seasonal piece for repeated wear.

Styling Suggestions

Pair it with ankle boots, Western boots, or chunky sandals for an effortlessly rustic look. Add a wide-brim hat, turquoise-inspired jewelry, and a leather belt to emphasize its bohemian Western character. For cooler weather, layer it over a lightweight knit top or under a cropped jacket, and complete the outfit with a crossbody bag or fringed shoulder bag.

Summary

This boho Western washed denim midi dress is a distinctive everyday essential with plenty of personality. Its practical zipper design, relaxed denim texture, and asymmetric frayed hem create a stylish balance of rugged charm and contemporary fashion, making it an easy choice for casual outings, weekend adventures, and seasonal streetwear looks.