# Twitter thread graphics: images that keep X readers going

[Canonical HTML page](https://gradiently.design/guide/x-thread-graphics)

A thread lives or dies on its first post, and then on whether each next post feels worth the scroll. Images can do both jobs, if they are planned as a set rather than added as decoration.

## The short version

- Good twitter thread graphics are planned as a set: a hook image on the first post, numbered cards for the key points and a closing card.
- On X, a 1600×900 landscape image or a 1080×1350 portrait image both display well, and the portrait takes more room in the timeline.
- Each card in a thread should carry one point in a few words, with the full explanation in the post text beside it.
- Using the same background, type and number position on every card makes the thread feel finished and easy to follow.
- Adding an image description to every card keeps the thread readable for people using screen readers.

The best **twitter thread graphics** come as a planned set: one hook image that makes people open the thread, numbered cards that mark each key point, and a closing card that tells readers what to do next. Make them all from one design so the thread looks like a single piece of work. On X, use 1600×900 for landscape or 1080×1350 for portrait, which takes more height in the timeline.

## Image sizes for X threads

X shows single images in the timeline at their own shape within limits, so choose the shape on purpose. Portrait wins attention on the first post because it fills more of the screen as people scroll. Landscape suits diagrams, charts and screenshots that are naturally wide. For the full list of formats see [twitter image size](https://gradiently.design/guide/x-post-image-design).

- X post 1600×900: 1600 × 900
- X portrait 1080×1350: 1080 × 1350

The two shapes worth designing for. Portrait for the hook and for cards; landscape for anything that is wide by nature.

Pick one shape for the numbered cards and keep it. A thread that jumps between portrait and landscape looks assembled from leftovers. Attach one card per post: when a single post carries several images, X arranges them in a grid and crops each one. The hook can differ from the cards if it needs to, as long as it shares their background and type.

## The hook image: making the first post open

The first post carries the whole thread. Its image should say the promise in as few words as possible, larger than anything else you will post that day. Think of it as a cover: the title of the thread, a hint of how much is inside, and nothing more.

A portrait thread cover reading 7 pricing mistakes we made, with A thread above it

The hook: a clear promise and a count, so readers know the size of what they are opening.

A portrait numbered card showing a large 1 and the line We priced by cost, not by value

Card one from the same design: a big number, then the point in a single line.

Numbers in hooks work because they set expectations: seven means the reader can see the end. Only use one if the thread really contains that many points, and keep each card's number in the same place so the count reads at a glance as people scroll. [Visual hierarchy](https://gradiently.design/guide/visual-hierarchy) explains why the number should be the largest thing on the card.

## Numbered cards that carry the thread

The cards are signposts, not the article. Put the point on the card and the explanation in the post text. That split keeps cards readable at phone size and gives the post text a job, which also helps people who skim the timeline without opening images.

| Post | Image | Text beside it |
| --- | --- | --- |
| 1 | Hook cover: promise and count | Why this matters, one or two lines |
| 2 to 8 | Numbered card: one point, a few words | The explanation, an example, a figure |
| Data posts | A clean chart or screenshot in the same frame | What to notice in it |
| Last | Closing card: recap or next step | The ask: follow, subscribe, reply |

A thread map. Writing this table first, before designing anything, makes the graphics quick.

Not every post needs an image. Images on the hook, the turning points and the closing post are usually enough, and a thread where every post has a card can feel heavy. Let the strongest points carry a card and leave the connective posts as text.

## One style for the whole thread

Consistency is what makes a thread look like a finished piece rather than a string of posts. Choose one background, one font and one position for the number, and repeat them exactly. A colour palette with a single accent for the numbers is enough.

- Ground: #0e1116
- Deep blue: #1f2a44
- Blue light: #3b82f6
- Number accent: #facc15
- Ink: #f3f4f6

A dark ground suits X's dark and light modes alike. Yellow is reserved for the numbers, so the eye finds the count first.

### Avoid

- A paragraph of text squeezed onto a card
- Different backgrounds on each card
- Small numbers tucked into a corner
- Screenshots dropped in at random sizes
- Images with no description

### Do

- One point per card, under twelve words
- The same background throughout
- A large number in the same spot every time
- Screenshots placed inside the card frame
- A short image description on every card

X lets you add a description to each image. Write what the card says, word for word, plus anything the picture shows that the words do not. It takes a minute per thread and makes it readable for everyone.

## How to make a set of thread cards quickly

1. **Write the thread first** Draft every post as text, then mark which ones deserve a card. Usually it is the hook, the main points and the last post.
2. **Design the hook and one numbered card** These two set the system: background, font, number position, margins.
3. **Duplicate for every point** Copy the numbered card and change only the number and the line. Do not adjust anything else.
4. **Make the closing card** Same frame, with a recap of the points or a single next step such as Follow for part two.
5. **Export together, attach in order** Name the files 01, 02, 03 so they upload in sequence, and add each description as you attach.

In Gradiently a thread is one design with a page per card, so every card shares the Mark, the fonts and the layout, and the words stay readable on the background without boxes or shadows. If the points already live in a spreadsheet, bulk create in Pro can make every numbered card from it in one pass. The same pages also make an [Instagram carousel](https://gradiently.design/guide/instagram-carousel-design) or a [LinkedIn carousel](https://gradiently.design/guide/linkedin-thought-leader-content) when you want to post the thread elsewhere.

> **Reuse the hook** Your hook cover makes a good header for a blog version of the thread. Render it again at 1200×600 rather than cropping, so the title still sits in the middle. [X branding](https://gradiently.design/guide/x-branding) covers the profile around it.

## FAQ

### What size should images in a Twitter thread be?

Use 1600×900 for landscape or 1080×1350 for portrait. Portrait takes more space in the timeline, which suits the hook post.

### Should every post in a thread have an image?

No. Images on the hook, the main points and the closing post are usually enough; connective posts can stay as text.

### How much text should go on a thread card?

One point in under twelve words. Put the explanation in the post text beside the image.

### How do I make thread graphics look consistent?

Make one numbered card, then duplicate it for every point and change only the number and the line, keeping background, font and positions fixed.

### Can I add alt text to images on X?

Yes. X lets you add a description to each image when you attach it, and it is worth doing for every card.
