Skip to the guidelines
/markets Brand guidelines

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.

Connect /markets to Claude or ChatGPT. Bring your next trading question.
  • 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.

LIBRE BASKERVILLE · HEADINGS · 500

Your AI can finally
see the charts.

Hero: 32–64px responsive, 1.08 line height, −0.025em tracking. Section titles usually 34–56px on desktop and 29–42px on mobile.

ONEST · BODY & INTERFACE · 400 / 500 / 600

Read charts, draw levels and keep watch, all from your chat.

Body: 16–19px, 400, line height 1.7. Buttons: 16px, 400. Main chat/tool text: 16px; preserve the existing Claude serif treatment.

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.

Page#FFFFFF
Primary ink#20251B
Secondary text#62675F
Warm surface#F7F6F2
Selected / user#F6D64D
CTA base#F5F0D9
Savings surface#F5F2F8
Quiet border#E4E7DC
  • Primary buttons use #171a17 and white text. The hero retains its existing #161816 ink and #60645f description.
  • 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.

RuleDesktopMobile
Content width1360px maximum, centredFill the available width with an inset
Outer guttersclamp(24px, 3.5vw, 48px)16–24px
Usual section space80–112px48–64px
Hero split40% copy / 60% visualStacked, no travelling chat
Conversation500px maximumAvailable width, with breathing room
Breakpoints980px intermediate / 900px navigation680px 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 AI

Onest 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.

/markets backend
14-day RSIBelow 30
TCS27.6
Infosys28.4
  • 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.

Pastel landscape used behind the hero conversation
Hero · nature-market-v3.webp
Soft pastel flowing forms used behind the examples
Examples · market-flow-v2.webp
Symmetrical pastel folds framing a warm yellow centre
Final CTA · cta-background-v2.webp

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.

PlacementSize / treatmentTiming
Hero10px → 4px; scale 1.08 → 1250ms
Interactive examples6px → 2px; scale 1.08 → 1250ms
Accuracy video10px → 2px; centre lens stays clearExisting entrance sequence
Final CTA / footerStatic dither, faded at the topNo 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.

InteractionExisting rule
Details popup180ms open / 120ms close; no bounce
Hover / callout feedbackUsually 150–180ms
Conversation1 second of blinking cursor → type in composer → send bubble → tool steps → reply
Tool steps3.5 seconds at normal speed so the backend stays readable
Market checksQuestion → answer → chart builds; once, unless replayed
Scroll response1× to 2.5×, smoothed; videos stay at 1×
Serif text revealStaggered 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.

Read charts, draw levels and keep watch, all from your chat.
  • 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.

FileOwns
index.htmlPage copy, order, structure and popup contents
styles.cssFonts, hero, shared chat, examples, market checks and serif reveal
experience.jsChat sequence, terminal steps, shared conversation and scroll handoff
scroll-motion.jsShared clock and smooth scroll-speed response
market-checks.jsSVG charts and one-time visual answer sequences
dither-background.jsCompiled image dithering
lens-dither.js / clarity-lens.jsVideo dither and accuracy lens
tool-studio.css/jsTool tiles, callouts and savings panel
watch-alerts.css/jsWatch conversation, phone and notifications
get-connected.css/jsSetup tabs
faq-footer.cssFAQ, final CTA and footer
floating-nav.css/jsNavigation and mobile menu
details-popup.css/jsDetails 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.

  1. Read the guide and the component’s current code. Make the smallest complete change.
  2. Check 1440px desktop, 390px and 320px mobile. No page overflow, edge-stuck cards, clipped copy or changing chat heights.
  3. Test keyboard focus, mobile navigation, popup close/outside/Escape, replay and reduced motion for the component you changed.
  4. For animation work, test both scroll directions and refresh in a later section. Preserve the conversation’s progress.
  5. Check syntax, relevant tests, missing assets and browser errors. Keep font, icon and shader license notices.
  6. Keep claims, their explanations and the disclaimer together. Publish or push only when the user asks.