{"product_id":"ruby-j-s-vibrant-ankara-tie-shoulder-mini-dress","title":"Ruby J’s Vibrant Ankara Tie-Shoulder Mini Dress","description":"\u003cdiv class=\"relative basis-auto flex-col -mb-(--composer-overlap-px) pb-(--composer-overlap-px) [--composer-overlap-px:28px] grow flex\"\u003e\n\u003cdiv class=\"flex min-h-0 grow flex-col text-sm\"\u003e\n\u003cdiv class=\"qMYqUG_convSearchResultHighlightRoot\"\u003e\n\u003cdiv class=\"\"\u003e\n\u003csection class=\"text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [\u0026amp;:has([data-writing-block])\u0026gt;*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\"\u003e\n\u003cdiv class=\"text-base my-auto mx-auto pb-8 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\"\u003e\n\u003cdiv class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\"\u003e\n\u003cdiv class=\"flex max-w-full flex-col gap-4 grow\"\u003e\n\u003cdiv dir=\"auto\" class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+\u0026amp;]:mt-1\" tabindex=\"0\"\u003e\n\u003cdiv class=\"flex w-full flex-col gap-1 empty:hidden\"\u003e\n\u003cdiv class=\"markdown prose dark:prose-invert wrap-break-word w-full light markdown-new-styling\"\u003e\n\u003cp class=\"PDq2pG_selectionAnchorContainer\"\u003e\u003cstrong\u003ePlayful color. Effortless comfort. Unmistakably African.\u003c\/strong\u003e\u003cspan class=\"PDq2pG_selectionAnchor\"\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eRuby J’s Vibrant Ankara Tie-Shoulder Mini Dress\u003c\/strong\u003e is a fun, easy-to-wear piece designed for women who love bold African prints and relaxed style.\u003c\/p\u003e\n\u003cp\u003eMade from \u003cstrong\u003e100% Ankara cotton fabric\u003c\/strong\u003e, this dress features a vibrant mix of blue, green, red and black throughout the print. The gathered neckline and statement tie-shoulder straps add a feminine touch, while the loose, flared silhouette provides comfortable movement and an easy fit.\u003c\/p\u003e\n\u003cp\u003ePair it with sneakers for a casual daytime look, sandals for vacation, or heels and accessories when you want to dress it up.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eProduct Details\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e100% Ankara cotton fabric\u003c\/li\u003e\n\u003cli\u003eVibrant multicolor African print\u003c\/li\u003e\n\u003cli\u003eAdjustable tie-shoulder straps\u003c\/li\u003e\n\u003cli\u003eGathered neckline\u003c\/li\u003e\n\u003cli\u003eRelaxed A-line silhouette\u003c\/li\u003e\n\u003cli\u003eShort\/mini length\u003c\/li\u003e\n\u003cli\u003eLightweight and breathable cotton\u003c\/li\u003e\n\u003cli\u003eEasy pull-on styling\u003c\/li\u003e\n\u003cli\u003eComfortable relaxed fit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePerfect for:\u003c\/strong\u003e brunch, vacations, summer outings, festivals, casual dates, birthdays, cultural events and everyday wear.\u003c\/p\u003e\n\u003ch3\u003eMaterial \u0026amp; Care\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial:\u003c\/strong\u003e 100% Ankara Cotton\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eCare Instructions:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eHand wash or machine wash cold on gentle cycle\u003c\/li\u003e\n\u003cli\u003eWash with similar colors\u003c\/li\u003e\n\u003cli\u003eUse mild detergent\u003c\/li\u003e\n\u003cli\u003eDo not bleach\u003c\/li\u003e\n\u003cli\u003eAir dry when possible\u003c\/li\u003e\n\u003cli\u003eIron on low to medium heat\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eFit\u003c\/h3\u003e\n\u003cp\u003e\u003cstrong\u003eFit:\u003c\/strong\u003e Relaxed fit with a loose, flared silhouette.\u003c\/p\u003e\n\u003cp\u003eBecause the shoulder ties are adjustable, customers can customize the neckline and strap positioning slightly for a more comfortable fit.\u003c\/p\u003e\n\u003cp\u003e\u003ccode\u003e\u003c\/code\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"mt-3 w-full empty:hidden has-[\u0026gt;_:empty]:hidden\"\u003e\n\u003cdiv class=\"text-center\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1\"\u003e\n\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pointer-events-none -mt-px h-px translate-y-(--scroll-root-safe-area-inset-bottom)\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"invisible mt-auto grid\"\u003e\n\u003cdiv class=\"col-start-1 row-start-1\"\u003e\n\u003cdiv class=\"pointer-events-none translate-y-(--scroll-root-safe-area-inset-bottom) R6Vx5W_threadScrollVars min-h-(--gutter-remaining-height,0px) group-data-stream-active\/scroll-root:h-[calc(var(--thread-response-height)-16*var(--spacing))]\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"visible sticky bottom-(--scroll-root-safe-area-inset-bottom,0px) col-start-1 row-start-1 self-end\"\u003e\n\u003cdiv class=\"\"\u003e\n\u003cdiv class=\"min-h-9 pt-2 text-center text-xs text-token-text-tertiary [view-transition-name:var(--vt-disclaimer)] pb-4 relative overflow-hidden @w-sm\/main:px-[60px]\"\u003e\n\u003cdiv class=\"text-base mx-auto [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\"\u003e\n\u003cdiv class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"thread-bottom-container\" class=\"sticky bottom-0 z-10 isolate group\/thread-bottom-container w-full basis-auto has-data-has-thread-error:pt-2 has-data-has-thread-error:[box-shadow:var(--sharp-edge-bottom-shadow)] md:border-transparent md:pt-0 dark:border-white\/20 md:dark:border-transparent print:hidden pointer-events-none [--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] Ejxyja_threadFooterContentFade flex flex-col\"\u003e\n\u003cdiv class=\"pointer-events-none\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"w-full\"\u003e\n\u003cdiv class=\"text-base mx-auto [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\"\u003e\n\u003cdiv class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 pointer-events-auto @[53.5rem]\/main:[--thread-content-max-width:48rem] w-full\"\u003e\n\u003cdiv class=\"pointer-events-auto mb-(--thread-component-gap,24px) w-full empty:hidden\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pointer-events-auto relative mx-auto h-0\"\u003e\n\u003cdiv class=\"flex h-0 items-end justify-center motion-safe:transition-all motion-safe:delay-300 motion-safe:duration-300 group-[:not([data-scroll-from-end])]\/scroll-root:scale-50 group-[:not([data-scroll-from-end])]\/scroll-root:translate-y-2 group-[:not([data-scroll-from-end])]\/scroll-root:opacity-0 group-[:not([data-scroll-from-end])]\/scroll-root:pointer-events-none group-[:not([data-scroll-from-end])]\/scroll-root:duration-100 group-[:not([data-scroll-from-end])]\/scroll-root:delay-0 absolute start-1\/2 z-10 -translate-x-1\/2 bottom-[calc(100%+3*var(--spacing)+var(--thread-scroll-to-bottom-banner-offset,0px))]\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"thread-bottom\" class=\"relative sm:group-data-[work-home-expanded]\/thread:sticky sm:group-data-[work-home-expanded]\/thread:top-[calc(var(--sticky-padding-top,0px)+var(--work-home-greeting-height,96px))] sm:group-data-[work-home-expanded]\/thread:z-10\"\u003e\n\u003cdiv class=\"relative z-1\"\u003e\n\u003cdiv class=\"text-base mx-auto [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm\/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg\/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)\"\u003e\n\u003cdiv class=\"[--thread-content-max-width:40rem] @w-lg\/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 mb-(--thread-component-gap,24px) sm:group-data-[work-home-expanded]\/thread:mb-0 pointer-events-auto\"\u003e\n\u003cdiv class=\"w-full\"\u003e\n\u003cdiv class=\"pointer-events-auto relative z-1 flex h-(--composer-container-height,100%) max-w-full flex-(--composer-container-flex,1) flex-col\"\u003e\n\u003cdiv class=\"flex justify-center empty:hidden\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cform autocomplete=\"off\" class=\"group\/composer w-full\"\u003e\n\u003cdiv class=\"hidden\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/form\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Ruby J's Atelier","offers":[{"title":"Geometric \/ L","offer_id":46481335845000,"sku":null,"price":45.0,"currency_code":"USD","in_stock":true},{"title":"Geometric \/ M","offer_id":46481335877768,"sku":null,"price":45.0,"currency_code":"USD","in_stock":true},{"title":"Geometric \/ XL","offer_id":46481335910536,"sku":null,"price":45.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0751\/6209\/1656\/files\/ChatGPTImageSep1_2026_04_41_55PM.png?v=1788295410","url":"https:\/\/rubyjsatelier.com\/products\/ruby-j-s-vibrant-ankara-tie-shoulder-mini-dress","provider":"Ruby J's Atelier","version":"1.0","type":"link"}