Your posts use too many colours, and you did not choose most of them. A colour crept in from a stock photo, another from a template, a third because it looked nice that afternoon, and now the account has no colour identity at all, just a different mood every square. Meanwhile the one colour decision that actually matters, whether people can read your text, is the one no one checked.
Colour does two separate jobs, and it is worth keeping them apart in your head. One is identity: the small set of colours that make a run of posts recognisably yours. The other is legibility: enough contrast between text and its background that the words can be read at a glance. Beginners spend all their energy on the first and none on the second, which is backwards: an unreadable post fails no matter how tasteful the palette. This guide covers both, and it is the colour half of the wider design principles.
A small palette beats a big one
A brand palette is a fixed, deliberately short list of colours you allow yourself to use, and the shortness is the point. The more colours you permit, the less any of them means, and the harder it is to look consistent from one post to the next. A palette that fits on a business card is a feature, not a limitation.
A workable structure is small. One or two neutrals for backgrounds and large areas: think a near-black, an off-white, maybe a mid grey. One main brand colour that carries most of your identity. One accent for emphasis, and no more. That is enough to build an entire recognisable system, and it is few enough that you can hold it in your head while you work.
Write the palette down as actual values, not "our blue". A hex code is unambiguous; a memory is not, and "our blue" drifts a shade every time someone eyeballs it. Keep the list in the same place you keep your type and layout rules, so that consistency is a matter of looking something up rather than deciding again. That written system is what turns separate posts into a brand, the same way documenting your brand voice does for words.
Use one accent, and use it sparingly
The accent is the loud colour you reserve for the one thing you want noticed: a single word in a headline, a button, a highlight. Its power comes entirely from scarcity. A bright colour used on one element per post pulls the eye straight to it. The same colour used on five elements pulls the eye nowhere, because there is nothing left to contrast against.
So the rule is discipline, not quantity. Most of the canvas is neutral and calm. The accent appears once, maybe twice, on exactly what matters most, and then stops. This is contrast working as hierarchy: the accent is loud only because everything around it is quiet. The moment you let the accent spread, it stops being an accent and becomes just another colour in a busy field, and the emphasis you were buying with it is gone.
Contrast is legibility, and there is a real number for it
Contrast between text and its background is not a matter of taste. It is measurable, and there is a published standard for how much you need. The Web Content Accessibility Guidelines set a minimum contrast ratio of 4.5:1 for normal-size text and 3:1 for large text, and the reasoning and the exact thresholds are laid out in the WCAG contrast guidance. Those numbers exist so that people with ordinary and less-than-ordinary eyesight, on ordinary screens in bright rooms, can actually read the words. On a phone in daylight, that describes most of your audience.
You do not have to compute ratios by eye. Any contrast checker takes two colours and gives you the number, and it is worth running your text-and-background pairs through one before you commit them to a template. The usual failures are predictable: mid-grey text on white, white text on a pale photo, a brand colour used for body text against a background it was never meant to sit on. If a pairing comes in under the ratio, either darken or lighten one side until it passes, or put the text on a solid panel or a darkened gradient so it stops depending on whatever happens to be behind it.
This matters most exactly where design tools tempt you: text laid straight over a photograph. A photo is not one colour; it is light in some places and dark in others, so text that reads fine over the sky vanishes over the building. The fix is the same each time: give the text a consistent surface of its own, a scrim or a panel, so its contrast does not change halfway across the line.
Colour associations, used honestly
Colours carry loose associations, and it is fine to lean on them, as long as you are honest about how loose they are. Warm colours tend to feel energetic and urgent; cool ones tend to feel calm and dependable; a lot of white space tends to feel considered and premium. These are broad tendencies, not laws, and they are heavily shaped by culture and context, so treat them as a nudge, not a formula, and do not build a claim on them you cannot stand behind.
The useful move is to make sure your palette does not fight your message. A brand about calm and care that shouts in hot reds is working against itself; a brand about urgency and energy that whispers in pale pastels is doing the same. Pick colours whose general feel points the same way as what you are actually saying, and then stop. There is no precise emotional payload you can dial in, and chasing one is a distraction from the decisions that genuinely move the needle, which are legibility and consistency.
Working on dark and light backgrounds
Most content lives on one of two grounds (dark or light) and the same palette has to hold up on both, because you do not control which one the platform or the photo hands you. A colour that looks right on white can turn muddy or glaring on black, and the reverse is just as true.
Plan for both from the start. For each colour that carries text or a key element, know the version that works on a dark ground and the version that works on a light one; sometimes it is the same colour, often it needs to shift lighter or darker to keep its contrast. Your accent especially needs checking on both, because an accent tuned to pop against black can disappear against white. The test is the one from the contrast section, run twice: once on your darkest background and once on your lightest. If a pairing passes on one and fails on the other, adjust until it clears the ratio on both, or decide that colour is only ever used on the ground it works on.
The habit that saves you is to design your key layouts once in a dark version and once in a light version, and keep both, rather than discovering on publish day that your carefully chosen text colour is invisible on the surface the feed gave it.
Do this today
Write down your palette as hex codes (one or two neutrals, one main colour, one accent) on the same page as your type rules. Then take your current post, find the text with the weakest contrast against its background, and run that pair through a contrast checker. If it comes in under 4.5:1, fix it now, either by shifting a colour or by putting the text on a solid panel. Whether you build in Canva, Figma or Studio, a short palette and a passing contrast ratio are most of what separates a post that reads from one that does not.