Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
Ruby - Elegant Velvet Blouse
1 / 5

Ruby - Elegant Velvet Blouse

Size
Please select a size
Price
$39.99
$0.00

Quantity

/** @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);

Effortless Elegance, Everyday Versatility

Experience timeless style with the Cassy Blouse—effortlessly chic and endlessly adaptable. This refined design, featuring graceful ruched detailing, combines sophistication and comfort for any occasion. Whether you're heading to the office, a casual outing, or a night on the town, this blouse ensures you’ll look and feel your best. Style it with jeans, skirts, or tailored pants for an effortlessly polished ensemble.

Why Customers Adore the Cassy Blouse

  • Flattering Fit: The ruched detailing enhances your silhouette for a sleek, tailored look.
  • Versatile Style: Seamlessly transitions from casual days to elegant evenings.
  • Premium Fabric: Made from a breathable, stretchy blend for all-day comfort.
  • Timeless Design: Easy to maintain and perfect for a polished wardrobe staple.

Specifications

  • Sleeve: Long
  • Collar: Swing-style
  • Fit: Regular
  • Sizes: S, M, L, XL