A familiar style.
Every time.
A shared reference for people and AI building on /markets. Keep the warmth, clarity and character of the homepage in every change.
Give your AI the right starting point.
Share this brief with your colleague’s AI, along with the source files. For the complete rules, include BRAND_GUIDELINES.md. The homepage is the reference; the archive is historical.
Copy this into the task before asking for a change.
A mark with character.
Keep the pixel logomark crisp and upright. Use the supplied SVGs, keep their proportions, and give them space. The Pixel study holds the original logo behaviour specimens.
- In descriptions, use the inline badge. Its fill inherits the local text colour at 10%, so it belongs on the surrounding surface.
- The custom slash is 0.8em high. Keep the description’s natural line height and the wordmark together.
- Do not rotate, redraw, stretch or replace the mark. Backend terminals use the monochrome mark without a container.
- Headings, navigation and standalone logos do not automatically need the prose badge.
<span class="markets-wordmark markets-label">
<span class="markets-slash">/</span>markets
</span>
Editorial headlines. Easy reading.
The landing page uses three self-hosted typefaces. Reuse the existing files and CSS variables. The Pixel study’s Google Sans is specific to that study.
Your AI can finally
see the charts.
Read charts, draw levels and keep watch, all from your chat.
Departure Mono belongs inside terminal content, with Onest for the terminal header. It is not a new body or headline style. Preserve intentional heading breaks and keep meaningful phrases together on phones.
Quiet foundations. A little sunshine.
White and warm neutrals hold the page together. Yellow signals a selected prompt or a user’s question. Pastels live mainly in the artwork and feature surfaces.
- Primary buttons use
#171a17and white text. The hero retains its existing#161816ink and#60645fdescription. - Keep existing local colour variations. This palette is a reference, not a reason to recolour finished components.
- Use readable ink for text. Pastel text, neon accents and a new dark theme do not belong to this website.
Let the page breathe.
Keep a clear hierarchy and enough room to understand each visual. Follow the spacing of the component beside the change, rather than adding a new layout system.
| Rule | Desktop | Mobile |
|---|---|---|
| Content width | 1360px maximum, centred | Fill the available width with an inset |
| Outer gutters | clamp(24px, 3.5vw, 48px) | 16–24px |
| Usual section space | 80–112px | 48–64px |
| Hero split | 40% copy / 60% visual | Stacked, no travelling chat |
| Conversation | 500px maximum | Available width, with breathing room |
| Breakpoints | 980px intermediate / 900px navigation | 680px for most small-screen layouts |
- The central serif statement has intentionally larger gaps. Keep its existing 132px / 224px desktop padding and 80px / 128px mobile padding.
- Keep chat height stable when prompts change. One conversation continues from hero to examples.
- Do not make every section the same grid. Preserve the homepage’s mix of split layouts, full-width demonstrations and editorial text.
Reuse what already feels familiar.
These specimens use the homepage’s actual classes or surface values. Keep component styles in their owning files, and preserve hover, focus and mobile behaviour.
The primary action
Connect your AIOnest 16px / 400. Dark fill. 50px minimum height. Fully rounded. One clear primary action.
A prompt to explore
Yellow selected state, plus icon at rest, up-arrow on hover or focus. Keep the language short.
Soft glass, not faded content.
Give /markets a place in your chat.
The artwork shows through; text stays fully opaque.background: rgb(247 246 242 / .74);
backdrop-filter: blur(8px) saturate(1.1);
-webkit-backdrop-filter: blur(8px) saturate(1.1);
A light, readable backend.
- Shape: pill buttons and selectors; 12–24px main containers; about 14px glass cards; existing asymmetric message bubbles; square backend terminals.
- Icons: Tabler for interface controls. Use the supplied brand SVGs. No new homemade icons, emoji, rotations or coloured side-border decoration.
- Details: reuse the native dialog. 180ms open, 120ms close; Close, outside click and Escape; focus returns to the trigger. Long bodies scroll while the header stays visible.
One world, across the page.
Soft sculpted surfaces, organic curves, gentle light and a restrained pastel palette. Reuse approved artwork before generating anything new. Give the text a quiet place to sit.



Dither is part of the material.
Use the existing Paper-derived 8×8 shader and static fallbacks. Keep the source colours, text-protecting masks and clear centre lens of the accuracy video. Do not replace it with random noise or a checkerboard overlay.
| Placement | Size / treatment | Timing |
|---|---|---|
| Hero | 10px → 4px; scale 1.08 → 1 | 250ms |
| Interactive examples | 6px → 2px; scale 1.08 → 1 | 250ms |
| Accuracy video | 10px → 2px; centre lens stays clear | Existing entrance sequence |
| Final CTA / footer | Static dither, faded at the top | No extra animation |
- Keep the CTA symmetrical. Preserve the footer’s upper 70% dither fade and the existing example/hero masks.
- Use compressed WebP and existing MP4 files. Preserve the iPhone PNG’s transparency. Lazy-load nonessential images.
- Avoid busy flow knots, literal chart wallpaper, trading-desk clichés, jungle scenes and neon circuitry. A new asset should belong beside the current hero.
Quick feedback. Readable stories.
Motion should explain what the AI is doing. Reuse the shared clock and existing sequences; preserve finished states when the visitor scrolls back.
| Interaction | Existing rule |
|---|---|
| Details popup | 180ms open / 120ms close; no bounce |
| Hover / callout feedback | Usually 150–180ms |
| Conversation | 1 second of blinking cursor → type in composer → send bubble → tool steps → reply |
| Tool steps | 3.5 seconds at normal speed so the backend stays readable |
| Market checks | Question → answer → chart builds; once, unless replayed |
| Scroll response | 1× to 2.5×, smoothed; videos stay at 1× |
| Serif text reveal | Staggered letters: coarse pixels → finer pixels after 100ms → colour → black; existing later 200ms wave gaps |
- Desktop chat travels between hero and examples without resetting. On phones it does not travel.
- Desktop backend windows open on hover/focus. On phones, tool details expand inside the chat and can be reopened by touch.
- Keep reduced-motion content fully readable. Pause offscreen videos and renderers. Never tie video playback speed or a popup’s interaction timing to scroll velocity.
Talk like a helpful trader friend.
Lead with the action someone can take. Keep the language concrete and approachable. Leave Python, tokens and implementation details for the places where they help explain a result.
- Use short, direct sentences. Avoid em dashes, jargon, exaggerated promises and generic AI marketing language.
- Indian markets are supported now. International markets are coming soon. Do not invent new integrations or an account-creation URL.
- The AI builds the trading tool; /markets supplies the market data and calculations. It is not a separate app builder, financial adviser or autonomous order-execution product.
- Accuracy: 7/8 versus 4/8 in one eight-question test. 90% is rounded from 87.5%, not an overall accuracy rate.
- Cost: 86% is an assumption-based API-cost estimate, not a measured universal saving or a cheaper fixed-price chat subscription.
- Keep the details popups and disclaimer. Do not invent trader names, attributed testimonials, test runs or performance figures.
Find the right file first.
All paths below are relative to the website root: dist/ in the working project, or the repository root in the clean GitHub export. Edit the owning component rather than adding global overrides.
| File | Owns |
|---|---|
index.html | Page copy, order, structure and popup contents |
styles.css | Fonts, hero, shared chat, examples, market checks and serif reveal |
experience.js | Chat sequence, terminal steps, shared conversation and scroll handoff |
scroll-motion.js | Shared clock and smooth scroll-speed response |
market-checks.js | SVG charts and one-time visual answer sequences |
dither-background.js | Compiled image dithering |
lens-dither.js / clarity-lens.js | Video dither and accuracy lens |
tool-studio.css/js | Tool tiles, callouts and savings panel |
watch-alerts.css/js | Watch conversation, phone and notifications |
get-connected.css/js | Setup tabs |
faq-footer.css | FAQ, final CTA and footer |
floating-nav.css/js | Navigation and mobile menu |
details-popup.css/js | Details modals, focus and dismissal |
The local project preserves the old homepage under archive/landing-v1/, and fresh/ redirects to the homepage. The clean public export omits both. Neither is the source for new edits.
Keep the small details intact.
- Read the guide and the component’s current code. Make the smallest complete change.
- Check 1440px desktop, 390px and 320px mobile. No page overflow, edge-stuck cards, clipped copy or changing chat heights.
- Test keyboard focus, mobile navigation, popup close/outside/Escape, replay and reduced motion for the component you changed.
- For animation work, test both scroll directions and refresh in a later section. Preserve the conversation’s progress.
- Check syntax, relevant tests, missing assets and browser errors. Keep font, icon and shader license notices.
- Keep claims, their explanations and the disclaimer together. Publish or push only when the user asks.