БЕЗКОШТОВНА ДОСТАВКА ЗАМОВЛЕНЬ ВІД 4000₴
Додайте товари до списку бажань
0
Додайте товари до кошика

ЖІНОЧІ ПЛАТТЯ

Фільтр
Сортування:
Відображення:

Популярні категорії: світшоти, штани, джемпери, сорочки, бомбери, денім, жилети, куртки, футболки, майки, шорти, худі, сарафани, спідниці

Стильні жіночі сукні від FROMUS

Іноді достатньо простої сукні, щоб день став особливим. Те, як вона лягає по фігурі, як м’яко торкається шкіри, як підкреслює настрій — усе це має значення. У FROMUS ми створюємо моделі, які приємно та легко носити. Тут ви можете купити плаття, яке стане улюбленою частиною вашого гардеробу - доречною і в будні, і у вихідні.

У каталозі FROMUS представлені сукні жіночі на будь-який випадок та настрій. Обираєте щось легке для літа, або хочете щільніший варіант для міжсезоння? У нас знайдеться і те, і інше. Лаконічні силуети, мінімалістичні деталі, якісна фурнітура — все для того, щоб плаття жіноче чудово виглядало не один сезон.

Що ми пропонуємо:

  • літні моделі з натуральних, дихаючих тканин;
  • демісезонні варіанти з приємних до тіла матеріалів;
  • повсякденні сукні для жінок, які легко комбінуються з іншими речами у гардеробі.

Серед кольорів переважають всі класичні відтінки — чорний, білий, сірий, бежевий. Але є й яскраві варіанти: ніжний блакитний, соковитий зелений, жовтий або насичений кораловий. У кожної сукні — свій характер.

У FROMUS ви можете оновити гардероб й комплексно — жіночий одяг в нашому асортименті представлений різноманіттям моделей: від базових речей на кожен день до стильних акцентів.

Як обрати жіноче плаття та з чим його носити

Головне правило: плаття жіночі мають бути не лише гарними, а й дуже зручними. Тому варто зважити на кілька нюансів: сезон, ваш ритм життя, тип фігури та, звісно, вподобання. А ще — продумати, з чим його носити.

  • Кардигани. У тандемі з легкою сукнею кардиган створює затишний образ для офісу чи прогулянки. Ідеально виглядає з балетками або босоніжками на невисоких підборах, а шкіряний ремінь на талії допоможе підкреслити фігуру.
  • Бомбери. Якщо хочеться трохи більше драйву — спробуйте поєднати базове чорне плаття з бомбером. Додайте кросівки та міні-рюкзак — і отримаєте комфортний street-style лук, в якому зручно гуляти містом.
  • Жилети. Акуратний жилет у поєднанні з прямою або приталеною сукнею підкреслює трендову багатошаровість. До нього пасуватимуть черевики чи лофери, а невеликий шкіряний клатч зробить образ стриманим і вишуканим.
  • Худі. Для більш розслабленого аутфіту вдягніть худі поверх плаття з тонкої тканини. Пара легких кросівок і великі сонцезахисні окуляри правильно розставлять акценти. Це чудовий варіант для подорожей або активних вихідних.
  • Лосини. Коли хочеться максимальної свободи рухів, особливо вдома чи на відпочинку — поєднуйте подовжену сукню з лосинами. Довжина максі виглядає затишно, проте оригінально і сучасно.

Якщо шукаєте ідеальний варіант, орієнтуйтесь на відчуття. Сукня має бути стильною, але при цьому не тиснути та не обмежувати рухів.

Чому варто купити жіноче плаття саме у FROMUS

FROMUS — український бренд, який працює з душею. У нас немає випадкових речей, лише ті, які продумані до дрібниць.

  • Власне виробництво. Кожне плаття проходить через повний цикл: від першого ескізу — до фінальної примірки. Ми ретельно контролюємо усі етапи.
  • Актуальні фасони. Сучасні моделі поєднують трендові акценти та продуманість крою — для зручності, стилю і впевненості у собі.
  • Доступна ціна. У нас можна купити стильні плаття від виробника недорого і без компромісів з якістю.
  • Натуральні тканини. Для пошиття обираються лише комфортні, дихаючі й гіпоалергенні матеріали, які приємно носити навіть у спеку.

З FROMUS кожна жінка може купити плаття жіноче, що гармонійно підкреслить її неповторний стиль. Не потрібно перейматися трендами — наші сукні не втрачають актуальності, адже базуються на лаконічному дизайні, елегантності та комфорті, які завжди поза часом.

Як замовити жіноче плаття

Купити сукню жіночу в інтернет магазині FROMUS максимально просто.

  1. Оберіть модель на сайті;
  2. Перевірте розмір за таблицею;
  3. Додай товар у кошик;
  4. Вкажіть зручний спосіб доставки та оплати.

Ми швидко обробляємо замовлення і надсилаємо та надсилаємо їх по всій Україні. FROMUS — це завжди турбота про клієнта. І якщо вам потрібна допомога у виборі — ми поруч.

Ми дбаємо про вашу конфіденційність

Цей веб-сайт використовує файли cookie для маркетингу та статистичних цілей, а також для безпечної та оптимальної роботи сайту. Ви можете змінити це в налаштуваннях вашого браузера. Натисніть кнопку «Погодитися», щоб дати згоду на використання файлів cookie. Детальніше можна ознайомитися на сторінці Угода користувача.

Скопійовано!
Обирайте українську
✕
Знайомство з FROMUS
Даруємо -10% на перше замовлення
Створюйте свій ідеальний базовий гардероб з вигодою. Ваш промокод на першу покупку:
WELCOME10
Активуйте промокод у кошику. Діє лише сьогодні.
/* * FROMUS — FORCE JPG PRODUCT IMAGES v2 (PRIVATE TEST) * Purpose: force product imagery to use existing JPG files instead of WEBP. * Scope: product cards, product page gallery, recommendations/product sliders only. * Does NOT change layout/styles/banners/logo/UI. */ (() => { 'use strict'; const KEY = 'fromus_force_jpg_product_images_v2'; if (localStorage.getItem(KEY) !== '1') return; // Disable the first failed attempt so only one image experiment is active. try { localStorage.removeItem('fromus_force_jpg_product_images_v1'); } catch (_) {} const ROOT = 'fromus-force-jpg-v2'; document.documentElement.classList.add(ROOT); const PRODUCT_SCOPE = [ '.catalogCard', '.catalog-card', '.productsSlider', '.productsSlider-wrapper', '.product', '.product__grid', '.product__column--left', '.product-gallery', '.productGallery', '.product-photo', '.productPhoto', '.product-images', '.productImages', '.j-product-block' ].join(','); const probeCache = new Map(); const busy = new WeakSet(); function isProductNode(el) { if (!(el instanceof Element)) return false; return !!el.closest(PRODUCT_SCOPE); } function toJpg(url) { if (!url || typeof url !== 'string') return null; const s = url.trim().replace(/^['\"]|['\"]$/g, ''); if (!s || /^(data:|blob:)/i.test(s)) return null; if (!/\.webp(?=([?#]|$))/i.test(s)) return null; return s.replace(/\.webp(?=([?#]|$))/i, '.jpg'); } function probe(url) { if (probeCache.has(url)) return probeCache.get(url); const p = new Promise(resolve => { const img = new Image(); let done = false; const finish = ok => { if (done) return; done = true; resolve(ok); }; img.onload = () => finish(img.naturalWidth > 0 && img.naturalHeight > 0); img.onerror = () => finish(false); img.src = url; setTimeout(() => finish(false), 5000); }); probeCache.set(url, p); return p; } async function bestJpgFrom(...urls) { for (const raw of urls) { const jpg = toJpg(raw); if (jpg && await probe(jpg)) return jpg; } return null; } function srcsetUrls(raw) { if (!raw) return []; return raw.split(',').map(part => part.trim().split(/\s+/)[0]).filter(Boolean); } async function processImg(img) { if (!(img instanceof HTMLImageElement) || !isProductNode(img) || busy.has(img)) return; busy.add(img); try { const picture = img.closest('picture'); const sourceUrls = picture ? [...picture.querySelectorAll('source')].flatMap(s => [ ...srcsetUrls(s.getAttribute('srcset')), ...srcsetUrls(s.getAttribute('data-srcset')), s.getAttribute('src'), s.getAttribute('data-src') ]) : []; const candidates = [ img.currentSrc, img.getAttribute('src'), img.getAttribute('data-src'), img.getAttribute('data-original'), img.getAttribute('data-lazy'), ...srcsetUrls(img.getAttribute('srcset')), ...srcsetUrls(img.getAttribute('data-srcset')), ...sourceUrls ]; const jpg = await bestJpgFrom(...candidates); if (!jpg) return; // Completely neutralize picture/srcset selection so browser cannot pick WEBP again. if (picture) { picture.querySelectorAll('source').forEach(source => { source.removeAttribute('srcset'); source.removeAttribute('data-srcset'); source.removeAttribute('src'); source.removeAttribute('data-src'); if ((source.getAttribute('type') || '').toLowerCase().includes('webp')) { source.setAttribute('type', 'image/jpeg'); } }); } img.removeAttribute('srcset'); img.removeAttribute('data-srcset'); img.setAttribute('src', jpg); img.setAttribute('data-src', jpg); img.dataset.fromusForcedJpgV2 = '1'; } finally { busy.delete(img); } } async function processLink(a) { if (!(a instanceof HTMLAnchorElement) || !isProductNode(a) || busy.has(a)) return; const raw = a.getAttribute('href'); const jpg = toJpg(raw); if (!jpg) return; busy.add(a); try { if (await probe(jpg)) { a.setAttribute('href', jpg); a.dataset.fromusForcedJpgV2 = '1'; } } finally { busy.delete(a); } } function extractBgUrls(value) { if (!value || value === 'none') return []; const out = []; const re = /url\((['\"]?)(.*?)\1\)/gi; let m; while ((m = re.exec(value))) out.push(m[2]); return out; } async function processBackground(el) { if (!(el instanceof HTMLElement) || !isProductNode(el) || busy.has(el)) return; const inline = el.style.backgroundImage || ''; const computed = getComputedStyle(el).backgroundImage || ''; const urls = [...extractBgUrls(inline), ...extractBgUrls(computed)]; if (!urls.some(u => /\.webp(?=([?#]|$))/i.test(u))) return; const jpg = await bestJpgFrom(...urls); if (!jpg) return; busy.add(el); try { el.style.setProperty('background-image', `url("${jpg}")`, 'important'); el.dataset.fromusForcedJpgV2 = '1'; } finally { busy.delete(el); } } async function processDataImageAttrs(el) { if (!(el instanceof Element) || !isProductNode(el) || busy.has(el)) return; const attrs = [ 'data-image', 'data-img', 'data-photo', 'data-zoom', 'data-zoom-image', 'data-large', 'data-large-image', 'data-full', 'data-full-image' ]; for (const attr of attrs) { const raw = el.getAttribute(attr); const jpg = toJpg(raw); if (jpg && await probe(jpg)) el.setAttribute(attr, jpg); } } function processElement(el) { if (!(el instanceof Element)) return; if (el instanceof HTMLImageElement) processImg(el); if (el instanceof HTMLAnchorElement) processLink(el); processBackground(el); processDataImageAttrs(el); } function scan(root = document) { if (root instanceof Element) processElement(root); const nodes = root.querySelectorAll?.('img, a, [style*="background"], .catalogCard-image-bg, [data-image], [data-img], [data-photo], [data-zoom], [data-zoom-image], [data-large], [data-large-image], [data-full], [data-full-image]') || []; nodes.forEach(processElement); } scan(document); // Horoshop may reapply lazy src/backgrounds after slider/filter/AJAX updates. const observer = new MutationObserver(mutations => { for (const m of mutations) { if (m.type === 'attributes') processElement(m.target); m.addedNodes.forEach(node => { if (node instanceof Element) scan(node); }); } }); observer.observe(document.documentElement, { subtree: true, childList: true, attributes: true, attributeFilter: [ 'src','srcset','data-src','data-srcset','href','style', 'data-image','data-img','data-photo','data-zoom','data-zoom-image', 'data-large','data-large-image','data-full','data-full-image' ] }); // A couple of delayed passes catch sliders initialized after DOMContentLoaded. setTimeout(() => scan(document), 800); setTimeout(() => scan(document), 2500); console.info('[FROMUS] Force JPG product images v2 enabled (private).'); })();