# Event page design by an AI agent: layouts, styles, fonts, backgrounds, poster and logo in AnyEventTool

> What an AI assistant can change in an AnyEventTool event page's design: 58 layouts plus the classic Card, 58 styles, brand colours with automatic contrast, 67 landing fonts, backgrounds by zone, poster and logo by URL, heading styles, and turning a screenshot into settings. Checked 23 October 2026.

Canonical URL: https://anyeventtool.com/en/learn/event-page-design-by-ai-agent
Updated: 2026-10-23

## Short answer

On AnyEventTool (AET) an AI assistant connected to your account designs an event page through one tool, aet_set_event_design, and changes only what you ask for. It picks a layout, which sets the page's structure: 58 landing layouts plus the classic Card. It picks a style, which sets colours, fonts and shapes: 58 styles from AET's collection. It sets brand colours, and the server picks readable text colours on top of them. It chooses fonts: 67 on landing layouts and 23 on the Card. It sets the card background (a colour, a gradient or an image, once or as a tile), the page background by zone, a poster and a logo from a public image address, and styled headings on the Card page. Images are fetched by AET's server, up to 10 MB, re-encoded without metadata and stored by AET; animated GIF posters stay animated. To choose a look, the assistant asks AET for three layouts that fit the event type and mood, each with a preview. If you show it a screenshot of a page you like, it is told to translate it into these settings, not copy it. A guest draft without an account has a smaller set: layout, style and two brand colours. Every heading text the assistant writes is moderated, and a failed image does not cancel the rest of the change.

## Key facts

- Disclosure: published by AnyEventTool (AET). Design facts come from AET's code on 23 October 2026: lib/aiops/design.ts, lib/landing/styles.ts, lib/landing/fonts.ts, pages/api/mcp.ts.
- Layout and style are separate: 58 landing layouts (plus the classic Card) set the structure, 58 styles set colours, fonts and shapes, and any pair can be combined.
- aet_design_options returns three layouts that fit the event type and a mood in a few words, each with a name, a preview image and a reason, in the user's language.
- Fonts: 67 on landing layouts (56 suitable for headings, 34 for body text) and 23 on the classic Card. A font that does not fit returns a warning with the closest available one.
- Brand colours: primary for buttons and accent for headings and chips; if the text colour on them is not given, the server picks a readable one.
- Images come only from a public http(s) address: up to 10 MB, private or internal hosts refused, re-encoded without EXIF, copied to AET's storage. Animated GIF posters are kept as they are.
- Partial failures are warnings: if one image does not load, the other design changes still apply. Files uploaded in a call that fails to save are removed.

## Step by step

1. **Say the mood in three words** — "Warm, handmade, calm" or "bold, techy, night". The assistant passes it with the event type to get three fitting layouts with previews.
2. **Pick a layout from the previews** — A layout is the page's structure: which blocks, in what order and how they are shown. Look at the preview images the assistant links.
3. **Pick or adjust the style** — A style is the colours, fonts and shapes. Name brand colours as hex codes if you have them, or let the style decide.
4. **Give images by link** — Poster, logo, backgrounds: a public link to your own image or a stock photo. 3:2 works best for a poster, a transparent PNG or SVG for a logo.
5. **Check the page on a phone** — Open the event and ask for one change at a time: "a calmer background", "bigger title", "no dots".

## What can an AI agent change in an event page's design?

Everything a person can change in AET's design panels, through one tool: `aet_set_event_design` for events in the organizer's account. Any subset of settings can be sent; anything not mentioned stays as it is.

| Setting | What it controls | Values |
|---|---|---|
| `layout` | Page structure: blocks, order, presentation | 58 layout ids, or `card` for the classic page |
| `look` | Style: colours, fonts, shapes | 58 style ids |
| `card` | Switch to the classic Card and back | true / false; the landing page is kept for later |
| `colors` | Brand colours | primary, onPrimary, accent, onAccent as #rrggbb |
| `fonts` | Heading and body fonts | Exact names from AET's lists |
| `cardBg` | Background of the content card | Colour or gradient, image, cover or tile, opacity, tile size |
| `wallpapers` | Page background by zone | full, left, right, center |
| `poster` | The event poster | Image by URL; with or without a blurred backdrop |
| `logo` | The event logo | Image by URL, or back to default |
| `headings` | Styled headings on the Card page | Font, colour, size, weight, case, spacing, alignment |
| `dots` | Coloured dots beside section headings | On or off |
| `cardTone` | Text tone on the card | light, dark, auto |

The tool returns what it applied, any warnings, and the resulting layout and style. On a guest draft without an account the set is smaller — `aet_set_design` changes the layout, the style and two brand colours — because a draft has no image fields ([part 3](/en/learn/ai-guest-drafts-explained)).

## Layout or style: what is the difference?

AET separates two decisions that most page builders bundle into one "template".

- **The layout** is the structure: which blocks the page uses, in what order and how each is shown. A conference layout leads with numbers and speakers; a workshop layout with what you will make and the schedule. AET has 58 landing layouts plus the classic Card, a narrow single-column page.
- **The style** is the surface: the colour palette, the heading and body fonts, corner shapes and decorative details. AET has 58 styles.

Any layout can wear any style. An assistant can keep a layout the organizer likes and try a calmer style, or keep the brand's style and test a different structure. Switching either keeps the content; the server recomposes the page from the same sections.

**The Card.** The classic Card is a layout too. Setting `card: true` (or the layout `card`) switches the page to it and keeps the landing page in the background, so `card: false` returns to exactly the landing layout it had. Colours and fonts on the Card go into a separate brand layer rather than the landing theme, which is why the Card has its own font list.

**One exception.** Layouts and styles need a landing page behind the event. Events created by an assistant always have one. An event built by hand as a classic card may not; in that case the assistant gets a warning, and the organizer picks a layout once in the editor (the Layout panel).

## How does an agent choose a layout that fits?

It asks. `aet_design_options` takes the event type, a mood in a few words and the language, and returns three options. Each has a layout id, a name, a preview image and a one-line reason, in the user's language where AET has the translation.

The ten event types the assistant can pass are mapped onto AET's own categories — learning to workshop, celebration to private events, concert to festival, and so on — and the mood words are matched against what each style is designed for. A pottery class with the mood "warm, handmade, calm" and a tech meetup with "bold, night, neon" get different shortlists.

What the server's instructions require of the agent:

- Use only ids from `aet_design_options`, or from `aet_section_schema({section:'design'})`, which lists every valid layout and style. Never invent an id; an unknown id is refused before anything is written.
- Show the user the previews and let them choose; three options are easier to judge than 58.
- On a guest draft, the Card layout is not available; it can be chosen when the page is claimed.

**Lifehack for organizers.** Give the mood in three words, not a reference to a famous brand. "Like Apple" means something different to every reader; "clean, white, calm" does not.

## Brand colours without unreadable buttons

Two colours carry a brand on an event page:

- **primary** — the action colour: buttons and calls to action;
- **accent** — headings and chips, not buttons.

Each can have its own text colour, `onPrimary` and `onAccent`. If the assistant does not send them, AET picks a readable one for the background — dark text on a pale yellow button, white on a deep blue one. This is the most common thing an assistant gets wrong when it copies a brand palette, and the server removes it from the agent's hands by default.

Where the colours go depends on the layout. On a landing layout they become part of the page theme. On the Card they go into the page's brand layer: buttons and section headings. The answer says which: `colors (landing theme)` or `colors (card brand layer)`.

Colours are given as `#rrggbb`. The card and page backgrounds also accept CSS linear or radial gradients built only from colour stops; anything else in a gradient — images, variables, expressions — is refused.

**For the agent:** the design rules say "Keep brand colors readable (the server picks text colors)." Send `primary` and `accent`; send the `on…` colours only when the brand guide specifies them.

## Which fonts can an agent use?

AET keeps two font lists, because two kinds of page render text differently.

| Page | Fonts available (23 October 2026) | How to set |
|---|---|---|
| Landing layouts | 67 fonts: 56 suitable for headings, 34 for body text (some do both) | `fonts.heading` and `fonts.body` by exact name |
| Classic Card | 23 fonts: Arial, Times New Roman, Courier New, Verdana, Georgia, Playfair Display, Cormorant Garamond, Lora, Montserrat, Poppins, Raleway, Jost, Manrope, Oswald, Bebas Neue, Anton, Comfortaa, Balsamiq Sans, Pacifico, Dancing Script, Caveat, Great Vibes, Lobster | `fonts.*` while the page is a Card, and `headings.*.font` |

The landing list is described for agents by feel — "wide extended grotesk, techy, bold caps", "ultra heavy wide display, poster" — so an assistant can match a brand's type without knowing the exact font. Nearly all of AET's core landing fonts support Cyrillic.

If the assistant asks for a font that is not on the list, or a body font as a heading font, nothing breaks: the answer carries a warning — on landing layouts it names the closest available font — and the other changes apply. Fonts are loaded only from AET's list; a font outside it would not load on the page anyway.

**Lifehack.** Ask for a pairing, not a font: "a bold condensed heading and a quiet readable body". The assistant picks from the lists; you judge the result on a phone.

## Backgrounds: card, page zones and text tone

An AET event page has a content card on a page ground. An assistant can style both.

**The card background** takes a colour or a gradient, an image, a fit and an opacity:

- `fit: cover` fills the card with one image; `fit: tile` repeats it, with `tileScale` from 10% to 300%;
- `opacity` 0–100 for the image, with the colour underneath;
- `cardBg: null` resets everything.

**The page background** is set by zone, one entry per zone, up to four:

| Zone | Where |
|---|---|
| `full` | The whole page ground |
| `left`, `right` | Outside the content column, on desktop only |
| `center` | Under the card |

Each zone takes the same colour, gradient, image, fit, tile size and opacity, or `clear: true` to remove it.

**Text tone.** Light text on a dark card, dark text on a light one. With `cardTone: auto` AET computes it from the card colour, but it cannot judge a photo. If the assistant sets a background image without a tone, the answer warns: "pass cardTone 'dark' for a dark photo". It is the one setting worth checking by eye after every background change.

**Dots.** Some styles place playful coloured dots beside section headings. `dots: false` hides them all; `dots: true` brings them back.

## Poster and logo from a link: what happens to the image?

An assistant cannot upload a file from the chat. It passes a public image address, and AET's server does the rest:

1. **Fetch.** Only public http(s) hosts; private and internal addresses are refused, and redirects are checked. The request times out after 15 seconds.
2. **Check.** Up to 10 MB. If a server labels an image as a generic file, AET checks the bytes themselves.
3. **Re-encode.** The image is re-encoded with size limits and without EXIF metadata, so location and camera data do not travel with it. Animated GIF posters are kept as they are, so they stay animated.
4. **Store.** The file is copied to AET's own storage and served from there, never hot-linked from the original site.
5. **Replace.** The old poster or logo file is removed only after the new design is saved, and not if another event still uses it.

**The poster** works best at 3:2, for example 1536 × 1024. `noBg: true` removes the blurred backdrop behind it, which suits dark, full-bleed or transparent posters. `imageUrl: null` removes the poster.

**The logo** is best as a PNG or SVG with transparency. `imageUrl: null` returns to the default logo.

If an image fails — a 404, a private host, a file over 10 MB — the answer lists it under warnings with the reason, and the rest of the design change is applied. The design rule for agents: "Prefer the user's own images (URLs) or stock; never hotlink random sites."

## Styled headings on the Card page

On the classic Card, each heading can carry its own style. There are 15 heading slots: the type and the title above the card, and section headings such as place, contacts, start time, schedule, makers, activities, registration, seats, shop, quiz and community.

For each, the assistant can set the text and any of: a font from the Card list, a colour, a size (`1.3em`, `28px`, `120%`), a weight from 300 to 900, upper case, italic, letter spacing from 0 to 1 em, and alignment. `null` removes the style and returns the default heading.

Two things to know:

- **A styled heading is not translated.** Default section headings follow the visitor's language; a heading the assistant writes stays in the language it was written in. For a page read in several languages, style the event's title and type, not the section names.
- **Heading text is moderated** with the same check as every other text an assistant sends, and the whole design change is refused if it fails.

A common use: a small spaced-out label above the title ("MASTERCLASS" in 0.5 em, letter spacing 0.3, upper case) and a large title under it.

## From a screenshot to settings, not a copy

People often show an assistant a page they like. AET's design rules tell the agent what to do with it: "For a screenshot the user shows you, translate what you see into: layout mood (aet_design_options), colors (#hex), fonts by name, card/page backgrounds."

In practice:

1. **Mood.** Describe the screenshot in three words — "dark, editorial, spacious" — and ask `aet_design_options` for layouts that fit.
2. **Colours.** Read the two or three dominant colours as hex codes and map them to primary and accent.
3. **Fonts.** Name the type by feel — condensed sans, high-contrast serif — and pick the nearest from AET's lists.
4. **Backgrounds.** Plain, gradient or photographic; dark or light card.

What the agent does not do is reproduce the other page: its photographs, its slogans, its logo or its exact composition. The result is a page in AET's own layouts that feels like the reference without being a copy of someone else's work — and without borrowing images the organizer has no rights to.

**Lifehack.** Show two screenshots, not one, and say what you like in each: "the colours of the first, the big type of the second". The assistant combines settings far better than it guesses intent.

## A worked example: from a brief to a finished design in five calls

An illustrative sequence for a jazz evening in an account event; the calls are real, the event is not.

1. **Brief.** The organizer writes: "Jazz night in a small bar, 40 seats, warm and intimate, our colours are deep burgundy and gold. Poster is on our website." The assistant calls `aet_design_options` with the type concert and the mood "warm, intimate, night" and shows three previews.
2. **Layout and style.** The organizer picks the second preview. The assistant sends `layout` and `look` with those ids; the answer confirms the pair now in effect.
3. **Colours.** The assistant converts the brand colours to hex — burgundy for primary, gold for accent — and sends only those two. AET picks white text on the burgundy buttons and dark text on the gold chips.
4. **Poster.** The assistant passes the poster's address from the organizer's website. AET fetches it, re-encodes it without metadata and stores it; because the poster is dark and full-bleed, the assistant also sets `noBg: true`.
5. **Check.** The organizer opens the page on a phone and says the headings feel too light. The assistant switches the heading font to a heavier one from the landing list; the warning-free answer lists `fonts.heading` as applied.

Five calls, each one small, each one visible in the event's log. If the organizer later wants the classic Card for a printed handout, one more call with `card: true` switches it, and `card: false` brings the landing layout back unchanged.

## Drafts and account events: what differs?

| | Guest draft (no account) | Event in your account |
|---|---|---|
| Tool | `aet_set_design` | `aet_set_event_design` |
| Layouts | 58 landing layouts; the Card only when claiming | 58 landing layouts and the Card |
| Styles | 58 | 58 |
| Colours | primary, accent | primary, onPrimary, accent, onAccent |
| Fonts | From the style | 67 landing or 23 Card fonts |
| Backgrounds, poster, logo | No | Yes, by URL |
| Headings, dots, card tone | No | Yes |
| Who may change it | The assistant holding the draft key | Connections with access to the event |

A claimed draft becomes an ordinary event, so all the account settings open up after claiming. If the person tried other layouts and styles on the preview before claiming, the chosen pair is applied at that moment.

## How does AET keep design changes safe and consistent?

- **Only what was asked.** Settings not mentioned stay as they are. The design rule for agents opens with "Change only what the user asked."
- **Validation first.** An unknown layout or style id, a malformed colour or an invalid size is refused before anything is written.
- **Partial success.** Failed images and unavailable fonts become warnings; the rest applies.
- **One write.** The page's style settings and its columns are saved in a single update that succeeds only if nobody else changed the same settings meanwhile. If someone did — the organizer in the editor, say — the answer is `conflict` and the assistant re-reads and tries again.
- **No orphan files.** If the save fails, files uploaded during that call are removed; old files are removed only after a successful save.
- **Logged.** Every design change appears in the event's "AI agent actions" log as "Changed the design".
- **Limits.** Design changes count toward the connection's 30 changes a minute and 1,000 a day.
- **Undo.** The assistant's undo restores the last section edit, not design. To return a layout or style, ask for the previous one by name; the answer of each design call says which pair is now in effect.

## Prompts that get a better design: lifehacks for organizers

1. **Three mood words.** "Calm, warm, handmade." The shortlist follows them.
2. **Hex codes if you have them.** "Primary #1F4E79, accent #F2A541." Names like "our blue" are guesses.
3. **One change per message** after the first version: you see what each change did.
4. **Links to your own images.** Your website's poster or a stock photo you have rights to. Not a random image from search.
5. **Say the device.** "Most guests open it on a phone" — left and right backgrounds appear only on desktop.
6. **Ask about contrast.** "Is the text readable on this background?" The assistant can switch the card tone.
7. **Ask for the pair in effect.** "Which layout and style is the page using now?" — useful before experimenting, to come back later.
8. **Keep the Card for long text.** Many sections, long descriptions or a formal event read well on the classic Card; short, visual events suit landing layouts.

## If you are an AI agent: a design checklist

1. Read `aet_section_schema({section:'design'})` once: it lists every valid layout, style, font, zone and heading slot.
2. Choose layouts with `aet_design_options` (event type + mood); show the user the three previews.
3. Change only what was asked; send the smallest set of settings.
4. Colours as `#rrggbb`; leave `onPrimary` and `onAccent` to the server unless the brand specifies them.
5. Fonts by exact name from the right list: landing or Card. Read the warning if one comes back and use the suggested font.
6. Images by public URL only — the user's own or stock. Mention the 10 MB limit before trying a huge file.
7. After a background image, set `cardTone` deliberately; `auto` cannot judge photos.
8. Style headings in the event's language and remember they are not translated.
9. Read `applied` and `warnings` in every answer and tell the user what did not apply.
10. On `conflict`, re-read the event and resend; do not loop.
11. A screenshot is a reference: translate it into mood, colours, fonts and backgrounds; never copy its images or text.

## Common design mistakes

| Mistake | What happens | Fix |
|---|---|---|
| Inventing a layout id | Refused: unknown layout | Use ids from the design options |
| Copying a brand's exact button text colour without checking | Low-contrast buttons | Send primary only; let AET pick the text colour |
| A body font as a heading | Warning, nothing applied for that slot | Use a font with the heading role |
| A dark photo background with `auto` tone | Dark text on a dark photo | Set `cardTone: dark` |
| Hot-linking an image from a search result | Rights problems, broken images later | The user's own image or stock, copied by AET |
| Styled section headings on a multilingual page | Headings stay in one language | Style title and type only |
| Changing layout, style, colours and fonts at once | Hard to tell what helped | One change per step |
| Expecting undo to revert design | Undo restores section edits only | Set the previous layout and style by name |

## When is AnyEventTool the wrong tool for design?

- **You need pixel-level control** — custom CSS, your own components, an exact copy of a brand site. AET designs within its layouts and styles.
- **You want images generated by the assistant.** AET places images from links; it does not generate them through the assistant.
- **You need the page on your own domain.** AET pages live on aet.events; Pro adds a short name.aet.events address.
- **You need a font outside AET's lists.** Only listed fonts load.
- **You want a design that copies another brand's page.** The agent is told to translate a reference into settings, not to copy it.

## Sources (checked 23 October 2026)

- AnyEventTool code on 23 October 2026: `lib/aiops/design.ts` (design settings, image handling, write and conflict rules), `lib/landing/styles.ts` and `lib/landing/s4` (58 layouts and styles), `lib/landing/fonts.ts` (landing fonts), `lib/brand.ts` (contrast), `pages/api/mcp.ts` (`aet_set_event_design`, `aet_set_design`, `aet_design_options`, design rules in `aet_section_schema`), `lib/aiops/content.ts` (draft design).
- The [MCP endpoint](https://aet.events/api/mcp) returns the same design options and rules to any MCP client.
- Layout previews are the images `aet_design_options` links for each option.

If something here no longer matches what AET does, write to support@anyeventtool.com — we correct with the date.

## This series: ten articles on AI agents in AnyEventTool

This is part 5 of 10. Titles of the coming parts may change.

1. [The event manager who never sleeps](/en/learn/ai-assistant-as-your-event-manager) — the landscape, three zeros, guardrails (19 October) · 2. [Connecting your assistant to AET](/en/learn/connect-your-ai-assistant-to-aet) — Claude, ChatGPT, Claude Code, Cursor, Gemini (20 October) · 3. [Guest drafts in depth](/en/learn/ai-guest-drafts-explained) (22 October) · 4. [Writing a page the agent is proud of](/en/learn/how-ai-agents-write-a-better-event-page) (22 October) · 5. Design by agent — this article (23 October) · 6. Running a live event by key · 7. Trust by design · 8. Numbers without names · 9. For developers: building on the AET MCP server · 10. Playbooks for ten event types and the road ahead.

## Questions and answers

**Can ChatGPT or Claude design my event page?**

On AnyEventTool, yes, once your account is connected. The assistant chooses among 58 layouts plus the classic Card and 58 styles, sets brand colours, fonts, backgrounds, a poster and a logo from image links, and styles headings — changing only what you ask.

**What is the difference between a layout and a style in AET?**

A layout is the structure: which blocks, in what order and how they are shown. A style is the surface: colours, fonts and shapes. Any of the 58 layouts can be combined with any of the 58 styles without losing content.

**Can the assistant upload my poster or logo?**

It cannot upload a file from the chat, but it can pass a public link to your image. AET fetches it (up to 10 MB), re-encodes it without metadata and stores it; an animated GIF poster stays animated.

**Which fonts can I use on an AET event page?**

On 23 October 2026: 67 fonts on landing layouts (56 for headings, 34 for body text) and 23 on the classic Card, including Montserrat, Playfair Display, Oswald, Bebas Neue and Lora. Fonts outside the lists do not load.

**Will my brand colours make buttons unreadable?**

AET picks a readable text colour on your primary and accent colours unless the assistant sends specific ones. For photo backgrounds, ask the assistant to set the card's text tone, because the automatic tone is computed from colour only.

**Can I show the assistant a screenshot of a page I like?**

Yes. AET's rules tell the assistant to translate it into a mood for layout choice, hex colours, font names and backgrounds — not to copy its images, text or composition.

**Can the assistant undo a design change?**

The undo tool restores the last section edit, not design. To go back, ask the assistant to set the previous layout and style by name; every design answer says which pair is in effect.

**Can an AI design a guest draft without an account?**

Partly: on a guest draft the assistant can change the layout, the style and two brand colours. Backgrounds, poster, logo, fonts and headings become available after you claim the draft into your account.

## Related answers

- [How an AI agent writes a better event page: playbooks for ten event types, section formats and writing rules in AnyEventTool](https://anyeventtool.com/en/learn/how-ai-agents-write-a-better-event-page.md)
- [AI guest drafts in AnyEventTool: how an assistant builds an event page for someone with no account](https://anyeventtool.com/en/learn/ai-guest-drafts-explained.md)
- [How to connect Claude, ChatGPT, Claude Code, Cursor or Gemini to AnyEventTool — for people and their AI agents](https://anyeventtool.com/en/learn/connect-your-ai-assistant-to-aet.md)
- [The event manager who never sleeps: what changes when your AI assistant can build, design and run an event page](https://anyeventtool.com/en/learn/ai-assistant-as-your-event-manager.md)
- [Event page design without a designer: which platform scores highest on 29 design settings at no extra cost (2026)](https://anyeventtool.com/en/learn/event-page-design-without-a-designer-ranking.md)
