Tally finance agents
A near-monochrome page for an AI product, with a hero portrait that breathes and sheds particles.
Gallery
Prompt: Landing page (web), Tally
Build the marketing landing page for Tally, AI agents for finance teams. Tally's agents reconcile bank and payment feeds, chase overdue invoices, match receipts to card spend, flag anomalies, and draft the month-end variance memo. The books are closed by morning and people only approve.
Follow the style guide style.md (Mono AI SaaS v1) exactly. Treat every token, pattern, motion rule, and item in its "Never" list as a hard constraint. Use only the images listed below; never draw people, objects, or scenery in code. Everything else (widgets, dashboard, charts, icons) is built in HTML/CSS/inline SVG.
Assets
| File | Size | What it shows | Notes |
|---|---|---|---|
assets/hero-portrait.png | 1024×1536 | Man in profile dissolving into silver particles, on #F7F7F5 | Fade all four edges into the canvas with a radial/linear mask so no edge is visible |
assets/obj-stack.png, obj-ring.png, obj-prism.png, obj-sphere.png | 1024×1024 | Glass/chrome objects on an off-white sweep | Shown inside object cards, cover, centered |
assets/story-photo.png | 1536×1024 | Finance controller at her desk | Video thumbnail; face is right of center |
The full prompt is part of Pro.
You’re seeing the first 12 lines.
Tokens
Mono AI SaaS v1canvas#F7F7F5
page background (warm off-white)
surface#FFFFFF
cards, widgets, dashboard
sunken#EFEFEC
segmented controls, logo strip, inactive pills
ink#141414
headlines, body, primary buttons
ink-muted#5A5A57
secondary text (6.4:1 on canvas)
ink-hint#6B6B67
captions, meta, labels (5.0:1)
line#E6E6E2
card borders, dividers
vermilion#FF4F1F
graphics only: arrow circles, check icons, stars, bars, card highlight borders, dots (3.1:1, never for text)
vermilion-600#D93D16
badge fills that carry white text (4.5:1)
vermilion-text#C2370F
small orange text: deltas ("+12% this week"), section labels (5.1:1)
night#1C1C1C
dark CTA band
Style: Mono AI SaaS (v1)
Direction
Calm and expensive, slightly futuristic. A near-monochrome page in warm off-white and near-black type, where one vermilion accent marks every action and photoreal or 3D imagery carries the drama. Think of an AI product launch page with confident headlines, lots of air, and a few live widgets that show the product working right now. Keep everything restrained except the hero image.
Assets (mandatory)
All photography, portraits, 3D objects, and landscapes come from the provided files in assets/. Never draw people, objects, or scenery with SVG or CSS. Code draws only UI: cards, widgets, charts, dashboards, icons for controls, badges.
Tokens
Color
| Token | Hex | Use |
|---|---|---|
| canvas | #F7F7F5 | page background (warm off-white) |
| surface | #FFFFFF | cards, widgets, dashboard |
| sunken | #EFEFEC | segmented controls, logo strip, inactive pills |
| ink | #141414 | headlines, body, primary buttons |
| ink-muted | #5A5A57 | secondary text (6.4:1 on canvas) |
| ink-hint | #6B6B67 | captions, meta, labels (5.0:1) |
| line | #E6E6E2 | card borders, dividers |
| vermilion | #FF4F1F | graphics only: arrow circles, check icons, stars, bars, card highlight borders, dots (3.1:1, never for text) |
| vermilion-600 | #D93D16 | badge fills that carry white text (4.5:1) |
| vermilion-text | #C2370F | small orange text: deltas ("+12% this week"), section labels (5.1:1) |
| night | #1C1C1C | dark CTA band |
| tint-blue / tint-rose / tint-violet / tint-peach | #E8F0FE / #FDE8E8 / #EFE9FE / #FDEEE7 | icon tiles in feature cards only |
Rules: vermilion is the only saturated color on the page apart from icon-tile tints and the imagery. One vermilion moment per component (a button's arrow circle, a card's border, a delta), never several in one card. The single exception is the featured pricing card, which may combine its border, top tab, plan name, and arrow button.
Type
- One family: "Geist" (Google Fonts), weights 400, 500, 600.
- Headlines: 500 weight, letter-spacing -0.035em, line-height 1.02. Hero 72px, section 52px, card titles 20px/600.
- Body 17px/1.55 in ink or ink-muted. Labels 12px/500, uppercase, letter-spacing 0.06em.
- Numbers (stats, prices, dashboard): Geist 600, tabular figures.
- Scale (px): 12 · 14 · 15 · 17 · 20 · 24 · 32 · 44 · 52 · 72.
Shape and depth
- Radius: 10 (icon tiles, small chips), 16 (cards, widgets), 24 (large panels, dashboard frame, CTA band), 999 (pills, buttons).
- Borders: 1px
lineon every card. Featured card: 2px vermilion border. - Shadow (only on floating widgets and the dashboard mockup):
0 1px 2px rgba(20,20,20,.04), 0 16px 40px -12px rgba(20,20,20,.14). Flat cards have no shadow. - Spacing (px): 4 · 8 · 12 · 16 · 24 · 32 · 48 · 72 · 112 · 160. Sections are separated by 112 to 160px.
- Max content width 1200px; desktop side margin 48px; mobile 20px.
Signature patterns
- Two-part badge: a pill with a small vermilion-600 segment in white caps ("NEW", "PRO", "WHY") followed by a label in ink-hint uppercase on
sunken. Sits above section headlines. One per section. - Arrow button: ink pill, white 15px/500 text, and a 32px vermilion circle with a white → arrow inside the right end. Secondary: white pill with 1px line border, ink text, no arrow circle.
- Ethereal hero: the hero image (a portrait or object dissolving into smoke/particles, on a canvas-colored background) sits center or right, its edges fading into the page with a radial mask. Headline on the left; live widgets float on the right.
- Live widgets: white floating cards (16px radius, shadow) that show the product working: a rotating "I can…" task list, a stat with a delta, a short chat exchange. Each animates subtly (see Motion).
- Product frame: a large dashboard mockup built in HTML (not an image), 24px radius, shadow, bleeding off the right edge of the viewport on desktop.
- Object cards: cards with a 3D object image on a soft
sunkenpanel, title and one line below, "Learn more" + small arrow at the bottom. - Stat trio: three big numbers (44px/600) with ink-hint captions, separated by hairlines.
Section rhythm
Hero → integrations strip → features (badge + centered 52px headline + 4 icon cards) → product frame → object cards → proof (story card + stat trio) → pricing → dark CTA band → footer. Alternate centered and left-aligned section heads; never three centered sections in a row.
Motion
- Easing
cubic-bezier(0.22, 1, 0.36, 1). Section reveal: fade + 12px rise, 600ms, stagger 60ms. - Rotating task list: items scroll upward one row every 2.2s; the active item is ink, items above and below fade to ink-hint and then to 0 opacity via a vertical mask. Pauses on hover.
- Stat counters count up once when they enter the viewport (800ms).
- Living hero (ethereal image): the still image never sits dead. Two layers, both pure code:
- Breathing: the image scales 1 → 1.015 and back over 7s, ease-in-out, infinite.
- Particle drift: a
<canvas>over the image (same box,pointer-events: none) emits 90 to 140 particles from the image's dissolve region (given per item), drifting away from the subject at 6 to 16 px/s with a slight sine wobble, radius 0.6 to 2.2 px, color ink-muted at 15 to 45% alpha with ~15% of them silver #A6A6A1, fading in over 0.6s and out before they leave the masked area. Cap devicePixelRatio at 2, use requestAnimationFrame, and pause when the hero is off-screen (IntersectionObserver) or the tab is hidden. Optional on pointer devices: the image follows the pointer by at most 6px (lerp 0.06). With reduced motion: no breathing, no canvas, no parallax. Prefer this over a generated video: video tools tend to 'repair' a dissolve effect back into an ordinary person within a second, and a code layer ships with the prompt.
- Chat bubbles in the CTA appear one by one (fade + 8px rise, 450ms apart), with a 3-dot typing indicator before each reply.
- Everything must be fully visible and static when
prefers-reduced-motion: reduceis set; above-the-fold content must be visible within 1s of load without scrolling. Implementation: reveal observers usethreshold: 0with no negative bottomrootMargin, and anything already inside the viewport on load is revealed immediately.
Copy voice
Direct, outcome-first, a little bold. Short headlines that pair a claim with proof ("Closes the books while you sleep."). Specific numbers over adjectives.
Never
- Gradient backgrounds, purple/blue glow, glassmorphism, neon, blur behind cards
- Inter, Roboto, Arial, or system fonts as the visible font
- Vermilion text below 18px (use vermilion-text), or vermilion used decoratively where nothing is clickable or meaningful
- More than one accent color; colorful icons outside the tinted icon tiles
- Emoji
- Real company logos or names, or fake "Trusted by 8,000+" claims; integrations strips use the fictional product's own named connectors or generic tool names
- Photos or 3D images with visible hard edges against the canvas; every image on canvas must fade or sit inside a card
- Hand-coded SVG/CSS illustrations of people, objects, or scenery
- Phrases like "unlock", "supercharge", "seamless", "revolutionize", "next level", "empower"
cta-dusk.png417 KB
hero-portrait.png1.0 MB
obj-prism.png183 KB
obj-ring.png359 KB
obj-sphere.png278 KB
obj-stack.png480 KB
story-photo.png1.0 MB
Image prompts
The prompts we used to make these images. Use them to make your own versions.
{
"styleAnchor": "High-key, premium editorial imagery for an AI product website. Photorealistic photography and clean 3D renders with soft, diffused studio light and no harsh shadows. Near-monochrome palette: cool silvers, soft grays, and whites, set on a seamless warm off-white background (#F7F7F5) that continues to every edge so the image melts into a page of the same color. Calm, quietly futuristic mood, generous negative space, sharp focus on the subject, subtle film grain. No vivid colors unless a prompt asks for them.",
"images": [
{
"name": "hero-portrait",
"size": "1024x1536",
"background": "opaque",
"prompt": "Photorealistic editorial portrait of a calm man in his thirties in three-quarter profile facing right, eyes closed, serene expression, short dark hair. The back of his head, his shoulders, and his upper chest gently dissolve into thousands of fine silver-white particles and wisps of soft smoke drifting to the left. Cool, desaturated skin tones, soft diffused light from the right.",
"emptyZones": "The subject fills only the middle 55% of the width and stops well above the bottom edge; wide margins of plain seamless #F7F7F5 on every side so all edges can fade into the page."
},
{
"name": "obj-stack",
"size": "1024x1024",
"background": "opaque",
"prompt": "3D render of five thin rectangular slabs of clear glass stacked with small gaps, slightly offset like a fanned ledger, crisp refractions, on a seamless off-white sweep.",
"crop": {
"keep": 0.8
}
},
{
"name": "obj-ring",
"size": "1024x1024",
"background": "opaque",
"prompt": "3D render of a single brushed-chrome torus ring standing upright, soft reflections of a bright studio, gentle contact shadow, on a seamless off-white sweep.",
"crop": {
"keep": 0.8
}
},
{
"name": "obj-prism",
"size": "1024x1024",
"background": "opaque",
"prompt": "3D render of a tall triangular frosted-glass prism with a subtle rainbow caustic on the floor, on a seamless off-white sweep.",
"crop": {
"keep": 0.8
}
},
{
"name": "obj-sphere",
"size": "1024x1024",
"background": "opaque",
"prompt": "3D render of a perfectly smooth clear glass sphere resting on the floor, refracting the soft studio light, gentle contact shadow, on a seamless off-white sweep.",
"crop": {
"keep": 0.8
}
},
{
"name": "story-photo",
"size": "1536x1024",
"background": "opaque",
"prompt": "Natural editorial photograph of a smiling Black woman in her forties, a finance controller, sitting at a desk in a bright modern office with a laptop, soft window light, muted wardrobe in gray and cream, shallow depth of field. Candid, warm, credible.",
"emptyZones": "The center of the frame around her face is clear so a round play button can sit slightly left of center without covering her face.",
"crop": {
"keepHeight": 0.984
}
},
{
"name": "cta-dusk",
"size": "1536x1024",
"background": "opaque",
"prompt": "Photograph of soft desert dunes at dusk under a hazy sky, muted violet, dusty rose, and warm orange tones, very calm and minimal, gentle grain. This image may carry color.",
"emptyZones": "The middle 60% of the image is soft sky and haze with no hard detail, because chat bubbles will sit on top of it."
}
]
}
