fifa-asean-cup is a single-purpose flyer creation product. Its intent is to let a creator produce one finished, shareable Instagram Story-sized flyer announcing the FINAL MATCH of the FIFA ASEAN CUP 2026 between INDONESIA and THAILAND, a LIVE NOBAR (nonton bareng / communal watch party) held at CIPTA GRAND CITY BLOK E 28 - 30, and featuring the FINEST RESIDENTS — HANGGI, WULAN, XINZHU.
The audience is twofold: the Flyer Creator, who must assemble the poster and obtain the finished story-format image, and the Flyer Viewer — residents and their guests — who reads the flyer at thumb speed on a phone to learn the match, the kickoff time, the live nobar, and the venue so they can attend.
The product is a poster-making tool, not an event-management or social platform. Its entire scope is: present the supplied event content on a 1080×1920 Instagram Story canvas, keep every supplied detail legible, and let the creator export the finished flyer.
The current delivery is a small first-party web application with three pages — Landing, Flyer Editor, and Export — all reachable without an account. The flyer itself is the product's centerpiece: a 9:16 poster rendered on a black page, composed entirely of typography and flat colour blocks.
Actors. Two accepted human personas: the Flyer Creator (initiates, composes, and exports the flyer) and the Flyer Viewer (reads the finished flyer to learn the event details). No system, provider, or external actor owns accepted human-facing behavior; the browser's own download/save mechanism is the only external handoff, and it is a delivery mechanism rather than a product actor.
Accepted behavior. The creator opens the product, sees the flyer composition, edits the supplied content fields in the Flyer Editor, and exports the finished Instagram Story image from the Export page. The viewer reads the flyer's content — match, teams, kickoff time, live nobar, venue, and resident names — and understands the event.
Ownership. All three pages are application-owned. The Landing page is the anonymous public entry surface; the Flyer Editor owns the canvas and content controls; the Export page owns obtaining the finished file. No page requires identity, and no differentiated permissions exist.
Narrow exclusions. This product does not manage event registration, ticketing, RSVPs, attendee lists, seating, payments, chat, notifications, social posting, or analytics. It does not host or stream the match. It does not create flyers for any event other than the one described. It does not provide stock photography, illustration, icon sets, or 3D imagery — typography is the image.
The product is delivered as a first-party web application with custom UI. All three pages are publicly reachable without an account: the source establishes no identity requirement, no private durable state that must be bound to a returning person, and no commitment, entitlement, or value transfer that must remain attached to a specific participant. The flyer content is fixed event information supplied by the creator, not private per-user data. Accordingly, no sign-in, registration, invitation, or provisioning flow exists, and none is inferred.
The Landing page is the anonymous entry surface: it presents the flyer composition and explains the creation experience before any editing or export. The Flyer Editor is where the creator works on the canvas and its content. The Export page is where the creator obtains the finished story-format flyer. Because the flyer is a single self-contained artifact and the creator's work is a short, single-session composition task, no cross-session resume, saved-project library, or version history is accepted or inferred.
Current horizon: the three pages above, the 1080×1920 canvas, the supplied content, and export of the finished image.
Future horizon (not current): any additional event, template library, multi-flyer management, or social publishing integration. These are explicitly out of current scope and must not appear in current pages or acceptance.
The authoritative source supplies the following exact flyer content, which must appear on the flyer as given:
| Field | Exact value |
|---|---|
| Event title line | FINAL MATCH |
| Competition | FIFA ASEAN CUP 2026 |
| Matchup | INDONESIA VS THAILAND |
| Kickoff time | 20:00 WIB |
| Viewing mode | LIVE NOBAR |
| Venue | CIPTA GRAND CITY BLOK E 28 - 30 |
| Featured group label | FINEST RESIDENTS |
| Featured resident names | HANGGI, WULAN, XINZHU |
No other factual entities, collections, dates, contacts, links, or media references are supplied by the source.
FIFA ASEAN CUP 2026 in small widely-tracked Oswald caps on black with a thin yellow rule beneath; the dominant zone with FINAL MATCH in Anton stacked flush-left overlapping the top edge of a full-bleed red band; inside the red band, INDONESIA and THAILAND stacked with a small VS between them; below the band on black, 20:00 WIB at the largest scale with the yellow LIVE NOBAR badge; the ruled venue block with label LOKASI in muted grey and CIPTA GRAND CITY BLOK E 28 - 30 in white Oswald caps; the footer FINEST RESIDENTS label with the three names separated by yellow bullet squares.FINAL MATCH in Anton overlapping the red band, the diagonal red band at −6deg behind INDONESIA / THAILAND with VS between them, 20:00 WIB as the largest element with the thick yellow rule from its baseline to the canvas edge, the LIVE NOBAR yellow badge butted against it, the ruled venue block, and the resident footer row.FR-1 — Create a flyer in Instagram Story size/format (explicit) As a Flyer Creator, I should create a flyer in Instagram Story size/format so that the finished poster fits an Instagram Story.
FR-2 — Include the FINAL MATCH title line (explicit)
As a Flyer Creator, I should have FINAL MATCH appear on the flyer so that the poster announces the final.
FINAL MATCH appears in Anton, stacked flush-left, overlapping the top edge of the full-bleed red band.FR-3 — Include the competition line FIFA ASEAN CUP 2026 (explicit)
As a Flyer Creator, I should have FIFA ASEAN CUP 2026 appear on the flyer so that the competition is named.
FIFA ASEAN CUP 2026 appears in small widely-tracked Oswald caps on black in the top band, with a thin yellow rule beneath it spanning the full width.FR-4 — Include the matchup INDONESIA VS THAILAND (explicit)
As a Flyer Creator, I should have INDONESIA VS THAILAND appear on the flyer so that the two teams are named.
INDONESIA and THAILAND are stacked flush-left inside the full-bleed red band, with a small VS set at 40% size between them; the band slices diagonally at −6deg behind the team names and sits behind the type, never over it.FR-5 — Include the kickoff time 20:00 WIB (explicit)
As a Flyer Creator, I should have 20:00 WIB appear on the flyer so that viewers know when the match starts.
20:00 WIB appears below the red band on black as the largest single element on the poster, with a thick yellow rule running from its baseline to the canvas edge.FR-6 — Include the LIVE NOBAR badge (explicit)
As a Flyer Creator, I should have LIVE NOBAR appear on the flyer so that viewers know the match is watched together live.
LIVE NOBAR appears in a solid yellow badge rectangle butted directly against the kickoff time — pinned to its right at desktop and stacked beneath it at 375px.FR-7 — Include the venue CIPTA GRAND CITY BLOK E 28 - 30 (explicit)
As a Flyer Creator, I should have CIPTA GRAND CITY BLOK E 28 - 30 appear on the flyer so that viewers know where to attend.
LOKASI in muted grey and CIPTA GRAND CITY BLOK E 28 - 30 in white Oswald caps.FR-8 — Include FINEST RESIDENTS with HANGGI, WULAN, XINZHU (explicit)
As a Flyer Creator, I should have FINEST RESIDENTS with the names HANGGI, WULAN, and XINZHU appear on the flyer so that the featured residents are credited.
FINEST RESIDENTS label with the three names in white Oswald caps separated by solid yellow bullet squares — a single row at 1280px, wrapping to a stacked column at 375px.FR-9 — Edit the flyer's content fields (required_inference) As a Flyer Creator, I should edit the flyer's content fields and see the canvas update so that I can adjust the poster before exporting it.
FR-10 — Obtain the finished Instagram Story flyer (required_inference) As a Flyer Creator, I should obtain the finished Instagram Story flyer as an image so that I can share it.
FR-11 — Read the flyer's event details (required_inference) As a Flyer Viewer, I should read the flyer's event details so that I know the match, the kickoff time, the live nobar, and the venue.
FINAL MATCH, FIFA ASEAN CUP 2026, INDONESIA VS THAILAND, 20:00 WIB, LIVE NOBAR, CIPTA GRAND CITY BLOK E 28 - 30, and FINEST RESIDENTS with HANGGI, WULAN, XINZHU — all legible at thumb speed.Product context. The creator is the person who requested the flyer: they need an Instagram Story-sized poster for the FIFA ASEAN Cup 2026 final match between Indonesia and Thailand, watched together live at Cipta Grand City Blok E 28 - 30, with the Finest Residents credited. They are working on a phone or a desktop browser, in a short single session, and they care about the poster reading loudly and correctly at thumb speed.
Primary goal. Produce a finished, shareable story-format flyer containing all supplied details.
Distinct accepted responsibilities. The creator initiates the flyer, composes it on the 1080×1920 canvas, adjusts the supplied content fields, and obtains the finished image. They are the only actor who edits the flyer or exports it.
Relevant inputs or decisions. The exact supplied content: FINAL MATCH, FIFA ASEAN CUP 2026, INDONESIA VS THAILAND, 20:00 WIB, LIVE NOBAR, CIPTA GRAND CITY BLOK E 28 - 30, FINEST RESIDENTS with HANGGI, WULAN, XINZHU. Their decisions are which fields to adjust and when the flyer is ready to export.
Interactions with other accepted participants. The creator's work produces the artifact that the Flyer Viewer reads. The creator does not interact with the viewer directly inside the product; the handoff is the exported flyer.
Observable success. A finished 1080×1920 flyer image containing every supplied detail, legible at 375px, 768px, and 1280px, with no readable text or control cropped or covered.
Product context. The viewer is a resident or a resident's guest who encounters the flyer — either on the Landing page or as the exported story image — and needs to learn the event details quickly on a phone.
Primary goal. Understand the event details from the flyer so they can attend.
Distinct accepted responsibilities. The viewer reads the flyer's content: the match, the two teams, the kickoff time, the live nobar, the venue, and the featured residents. They do not edit or export anything.
Relevant inputs or decisions. Their input is the flyer itself; their decision is whether and when to attend the nobar at Cipta Grand City Blok E 28 - 30 at 20:00 WIB.
Interactions with other accepted participants. The viewer receives the artifact the Flyer Creator produced. There is no in-product interaction between them.
Observable success. The viewer can state the match, the kickoff time, the live nobar, and the venue after reading the flyer at thumb speed.
FIFA ASEAN CUP 2026 in small widely-tracked Oswald caps and a thin yellow rule beneath it; FINAL MATCH in Anton stacked flush-left overlapping the top edge of the full-bleed red band; INDONESIA and THAILAND stacked inside the band with a small VS between them; 20:00 WIB below the band as the largest element with the thick yellow rule from its baseline to the canvas edge and the yellow LIVE NOBAR badge butted against it; the ruled venue block with LOKASI and CIPTA GRAND CITY BLOK E 28 - 30; and the footer FINEST RESIDENTS row with HANGGI, WULAN, XINZHU separated by yellow bullet squares.FIFA ASEAN CUP 2026, anchored by the thin yellow rule.FINAL MATCH in Anton and then INDONESIA and THAILAND inside the red band, with the small VS between them.20:00 WIB — the largest element on the poster — and the yellow LIVE NOBAR badge beside it, learning the kickoff time and that the match is watched together live.LOKASI and CIPTA GRAND CITY BLOK E 28 - 30.FINEST RESIDENTS with HANGGI, WULAN, XINZHU.Muse and headline. Paula Scher — typography as stadium architecture: a poster that shouts the final match. The flyer's content is almost entirely typographic, so a muse whose image is type gives maximum impact with zero dependency on photography. Scher's poster contrast survives the tiny scale of a phone screen.
Mode. Dark mode. Black ground dominates roughly 60% of the canvas so the red and yellow scream.
Colour tokens (exact hex, by role).
| Role | Token | Hex |
|---|---|---|
| Background (black ground) | --color-bg | #0E0E0E |
| Surface | --color-surface | #1A1A1A |
| Text (white, biggest type only) | --color-text | #FFFFFF |
| Primary (Indonesian flag red — full-bleed band, LIVE NOBAR badge) | --color-primary | #E4002B |
| Accent (match/nobar signal — kickoff time, venue rule, resident bullets) | --color-accent | #FFD400 |
| Muted (tertiary metadata — venue block label, small print) | --color-muted | #8A8A8A |
No gradients anywhere — flat poster colour only. No blue or indigo in any form.
Typography.
| Role | Family | Weight / treatment |
|---|---|---|
| Headings | Anton | 900-weight condensed, all-caps, tracking −0.02em, leading 0.86–0.9 |
| Body / labels | Oswald | 500–600, all-caps, tracking 0.08–0.14em |
No sentence case anywhere on the flyer. No Inter, Roboto, Arial, Helvetica, Poppins, Lato, Open Sans, or system-ui for any text.
Type scale (poster scale, not UI scale). Mobile (375px frame) → desktop (1280px frame), rendered as a scaled 1080×1920 canvas:
| Element | Size |
|---|---|
FINAL MATCH | clamp(40px, 11vw, 132px) |
INDONESIA VS THAILAND (split across two lines) | clamp(34px, 9.5vw, 112px) |
20:00 WIB (largest single number on the poster) | clamp(48px, 13vw, 156px) |
| Section labels | clamp(13px, 2.6vw, 22px) |
| Venue line | clamp(15px, 3.2vw, 26px) |
| Resident names | clamp(18px, 4.2vw, 34px) |
Line-height 0.88 for display, 1.25 for labels.
Shape language. Hard edges only — no border radius anywhere, no soft shadows, no glass. Rectangles are the entire vocabulary: full-bleed colour bands, a thick 6–10px yellow rule under the kickoff time, a solid yellow badge rectangle for LIVE NOBAR, and one diagonal red band that slices across the canvas behind the team names. Rotation is allowed on the diagonal band only (about −6deg). Everything else is flush and orthogonal, poster-style.
Spacing rhythm. Poster rhythm, not UI rhythm: full-bleed bands butt directly against each other; rules are thick and deliberate; the composition is asymmetric, with the red band sitting in the upper-middle third rather than centred.
Imagery style. Typography is the image. No photography, no illustration, no clip art, no 3D. The only non-type graphic elements are flat colour blocks, rules, bullet squares, and one optional halftone-dot texture at 8% opacity over the red band to give it a screen-printed feel. If any image is added later, it must be a high-contrast duotone cutout of a football cropped hard to the grid — never a stock photo of a stadium.
Layout. A single 9:16 canvas (1080×1920) treated as a gig poster read top-to-bottom: (1) top band — FIFA ASEAN CUP 2026 in small widely-tracked Oswald caps on black with a thin yellow rule beneath; (2) the dominant zone — FINAL MATCH in Anton stacked flush-left, overlapping the top edge of a full-bleed red band; (3) inside the red band, INDONESIA and THAILAND stacked with a small VS set at 40% size between them; (4) below the band on black, 20:00 WIB as the biggest number, with LIVE NOBAR in a yellow badge rectangle pinned to its right at desktop and stacked beneath it at 375px; (5) a ruled venue block — label LOKASI in muted grey, CIPTA GRAND CITY BLOK E 28 - 30 in white Oswald caps; (6) footer — FINEST RESIDENTS label with three names in a single row separated by yellow bullet squares, wrapping to a column at 375px. Asymmetric weight: the red band sits in the upper-middle third, not centred, so the poster feels composed rather than templated.
Readable text and controls. Headlines, wordmarks, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit. No element covers any part of readable text or control. The diagonal band sits behind type, never over it.
The flyer is the hero. The first screen is not a web hero — it is the flyer itself, presented as a full-bleed 9:16 poster on a black page, with the flyer's own composition as the hero.
Composition. FINAL MATCH in Anton stacked flush-left across the top third, its baseline overlapping the top edge of a full-bleed red band. Inside the band, INDONESIA and THAILAND stacked at near-full canvas width with a small VS between them. Below on black, 20:00 WIB at the largest scale on the poster with the yellow LIVE NOBAR badge pinned beside it.
Dominant element. The red band plus Anton type, occupying roughly 45% of the canvas height.
Palette roles. Black ground as silence, red band as the shout, yellow as the single hot signal, white for the biggest type only. Nothing is centred, nothing is rounded, nothing is blue.
Signature moves.
INDONESIA and THAILAND stacked flush-left and bleeding off the right edge of the band.20:00 WIB set as the single largest element on the poster in Anton, with a thick yellow rule running from its baseline to the canvas edge, and the LIVE NOBAR yellow badge rectangle butted directly against it.HANGGI • WULAN • XINZHU sit as white Oswald caps separated by solid yellow squares, wrapping to a stacked column at 375px and reading as a single line at 1280px.FIFA ASEAN CUP 2026 at the top of the canvas, spanning the full width, anchoring the whole composition to the grid.Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: flat
Landing Hero Motion Brief
LIVE NOBAR badge stamps in last with a 1.06→1.0 scale. The outcome is the fully composed poster, exactly as it will be exported.FINAL MATCH mid-slide; the red band mid-wipe; the badge not yet stamped.prefers-reduced-motion, everything appears instantly in its final state: no slide, no wipe, no stamp, no pulse.Hover/press behaviour. On hover or press, the red band flips to yellow and the type to black — a straight Scher poster swap with no easing theatrics.
NFR-1 — Instagram Story dimensions (explicit) The flyer canvas and the exported image must be 1080×1920 (9:16 Instagram Story format). Rationale: the source explicitly requires Instagram Story size/format.
NFR-2 — Content fidelity (explicit)
All supplied text must appear on the flyer exactly as given: FINAL MATCH, FIFA ASEAN CUP 2026, INDONESIA VS THAILAND, 20:00 WIB, LIVE NOBAR, CIPTA GRAND CITY BLOK E 28 - 30, FINEST RESIDENTS with HANGGI, WULAN, XINZHU. Rationale: the source explicitly requires this content as given.
NFR-3 — Thumb-speed legibility (required_inference) The flyer must be readable at thumb speed on a phone. Rationale: the flyer's purpose is to be shared and read on Instagram Stories; the creative direction's poster contrast exists to survive the tiny scale of a phone screen.
NFR-4 — Readable text and controls stay whole (explicit, from the creative direction) Headlines, wordmarks, labels, numbers, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling to fit. No element covers any part of readable text or control. The diagonal band sits behind type, never over it. Rationale: explicit creative-direction constraint.
NFR-5 — Reduced motion (explicit, from the creative direction)
Under prefers-reduced-motion, all motion appears instantly in its final state. Rationale: explicit creative-direction constraint.
NFR-6 — No blue or indigo (explicit, from the creative direction)
No blue or indigo (#0057FF, #2563EB, #4F46E5, #7C3AED family) anywhere. The palette is black, red, yellow, white only. Rationale: explicit creative-direction constraint; the generic indigo/blue-on-white SaaS template is forbidden for this project.
NFR-7 — No gradients, glass, or rounded corners (explicit, from the creative direction) No gradients, glassmorphism, frosted panels, soft shadows, or rounded corners. Rationale: explicit creative-direction constraint.
NFR-8 — Font discipline (explicit, from the creative direction) Anton for headings, Oswald for body/labels. No Inter, Roboto, Arial, Helvetica, Poppins, Lato, Open Sans, or system-ui for any text. Rationale: explicit creative-direction constraint.
NFR-9 — No account required (required_inference) All three pages are publicly reachable without an account. Rationale: the source establishes no identity requirement, no private durable state bound to a returning person, and no commitment, entitlement, or value transfer that must remain attached to a specific participant.
No database, authentication service, or container orchestration is required by the accepted scope.
Assumptions.
Constraints.
FINAL MATCH, FIFA ASEAN CUP 2026, INDONESIA VS THAILAND, 20:00 WIB, LIVE NOBAR, CIPTA GRAND CITY BLOK E 28 - 30, FINEST RESIDENTS with HANGGI, WULAN, XINZHU. (explicit)Out of current scope. Event registration, ticketing, RSVPs, attendee lists, seating, payments, chat, notifications, social posting, analytics, match hosting or streaming, flyers for other events, template libraries, multi-flyer management, and social publishing integrations.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!