Narcity may receive a small commission if you purchase something we recommend in this article, which was created by the Narcity Shop team.
With larger weddings becoming a possibility again around the country, invites are trickling in and it’s time to start planning on what to wear.
Since ceremonies will most likely be held outside, we want to not only look great but feel great too—especially in this darn heat.
We found 11 wedding guest dresses that are both fashionable and affordable.
One Shoulder Ruched Ruffle Hem Floral Dress
Details: When you don’t have a lot of money to spend on a new frock (because you spent all your money on the wedding gift), you can always count on SHEIN for something nice and cheap. Wear this dress again to a garden party or even a girl’s night out.
Georgette Handkerchief Dress
Price: $99 (
Details: This sophisticated dress from Michael Kors can easily be transitioned from day to night. The rich ruby colour, and the fact that it’s on clearance, is just too gorgeous to pass up!
Flutter-Sleeve Mini Dress
Price: $96 (
Details: If you’re eyeing this chambray blue a-line dress, right now you can get 40% off at checkout. It’s currently available in sizes 0, 4, 6 and in tall sizes 2 and 8.
Floral Dolman Elbow Sleeve Dress
Details: Sometimes you want to be a little more conservative and wear a full-length dress, so this is a great option. It has flowy sleeves which means no pit stains if you’re standing out in the heat all day. It’s also super comfortable to dance in, too.
Maxi Slip Dress In ‘70s Floral Print
Details: Slip dresses are super trendy right now and you can find one for cheap on ASOS. If it’s your first time shopping the brand, you can get 15% off with the promo code ASOSNEW15. If you want one in a solid colour, try this slip dress in navy blue instead.
Bardot Pleated Layered Dress
Details: This pleated pink number is a great dress to wear to a beach wedding or a small, intimate backyard ceremony. Even though it’s already so affordable, you can opt to pay in four $8.75 instalments with Afterpay.
Scatter Sequin Midi Dress
Details: If you want a little sparkle while attending your best friend’s wedding, this pale gold number is picture-perfect. It has a bit of a plunging neckline, batwing sleeves and a tie waist. When in doubt, go all out.
Lace Sheath Dress
Details: You can’t go wrong with a lovely lace dress at someone’s wedding—as long as it’s not white. This one comes in a gorgeous powder blue colour and has scalloped details at the sleeves. Pair it with a nude heel and you’re good to go.
Openwork Circle Midi Dress
Details: Sometimes you want to look stunning without trying too hard. This black satiny dress has tiny little cutouts on the side that show just a bit of skin without being scandalous. It’s perfect for an evening cocktail reception.
Short-Sleeve Metallic Ruched Shift Dress
Price: $119.60 ($299)
Details: What makes this metallic number so great is that you can wear it to a wedding and then keep it in your closet for other special events like New Year’s Eve parties, awards ceremonies, etc. It’s on sale and available in sizes 0 – 14.
let next_url = window.location.href.split("next_url=");
let createAppleButtons = document.querySelectorAll("#createApple"); let createGoogleButtons = document.querySelectorAll("#createGoogle"); let createFBButtons = document.querySelectorAll("#createFacebook");
for ( let button of createAppleButtons) button.addEventListener("click", () => redirect("/core/users/login/apple/", next_url) );
for (let button of createGoogleButtons) button.addEventListener("click", () => redirect("/core/users/login/googleplus/", next_url) );
for (let button of createFBButtons) button.addEventListener("click", () => redirect("/core/users/login/facebook/", next_url) );
function redirect (url, next) window.location.href = `$url?next_url=$next`
function frenchUrl(url) if(url) return url.includes("https://www.narcity.com/fr/");
else return false;
var monitorChekFrenchCheckbox = makeMonitor(function () return document.querySelector("label.authentication--field-IsFrenchProfile"); ,function (res) let fr = frenchUrl(next_url); let input = res.querySelector("input"); if (fr && !input.checked) input.checked = true;
!function(p,r,e,s,b,d)p.pbq(window,document,'script'); pbq('init', '250789');
let editProfile = document.querySelector('.gdpr-cookie-content'); let wrapper = document.querySelector('.rm-gdpr');
editProfile.addEventListener("click", function () wrapper.classList.add('hidden') )
const supportPageOffset = window.pageXOffset !== undefined;
let previousScrollPosition = 0;
const isScrollingDown = () => let scrolledPosition = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop; let isScrollDown;
if (scrolledPosition > previousScrollPosition) isScrollDown = true; else isScrollDown = false;
previousScrollPosition = scrolledPosition; return isScrollDown; ;
const handleNavScroll = () => if(document.querySelector(".rumble-sticky--show")) if (isScrollingDown() ) document.querySelector(".rumble-sticky--show").classList.add("active");
const throttle = (callback, time) => if (throttleTimer) return;
throttleTimer = true; setTimeout(() => callback(); throttleTimer = false; , time); ;
const mediaQuery = window.matchMedia("(prefers-reduced-motion: reduce)");
window.addEventListener("scroll", () =>
function setCookie(cname, cvalue, exdays) var d = new Date(); d.setTime(d.getTime() + (exdays*24*60*60*1000)); var expires = "expires="+ d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i