Design shotgun

The demo banner

The dark grey notice shown on every page of demo.currencytransfer.com. Update 12 Oct: Phil's Figma direction is now rebuilt in context as P below, with exact values pulled from the Figma node. That's the PR candidate; say the word and it ships. The earlier exploration (A to F) stays underneath for reference.

Component: layout/components/demo-notice/ Figma: TEMPLATES / node 4633-5260 12 Oct 2026

What's there today

Faithful recreation for reference.

Why it reads as aged

  • #555 appears nowhere else in the UI. $ct-body-grey is a text colour; as a fill it reads like a maintenance or outage bar, not part of the brand.
  • It's the heaviest element on the page, sitting above the form people came to try. The product is light, airy, blue; the banner is a dark slab.
  • Square, full-bleed, shadowless while the rest of the app speaks in white cards, hairlines and 5px radii.

And it costs more than looks

  • ~130px of height on every page, permanently. The slim options below give most of it back to the product.
  • Green GET STARTED fights green GET QUOTE directly below it. Same colour, same weight, two different intents.
  • Three lines of copy with an exclamation mark, re-shouted on every navigation, with no way to dismiss.

P Phil's Figma

The suggested direction from the TEMPLATES file, rebuilt in the live page context with values read straight from the Figma node: colours, spacing, radii, type sizes and the exported icon. This is what the PR would ship.

≈ 120px tall (slightly shorter than today)Figma copytemplate + SCSS rewriteicon from Figma export

Figma reference, rendered from node 4633-5266

Figma render of the banner band

Wording options

Same box, five scripts. The original explains the demo to someone already inside it; the rewrites talk to what the visitor is silently asking: "is this what the real thing is like, and can I poke it?" All fit on one line.

P0 As designed · the Figma wording

Try it first

This demo shows how transfers work. Register to activate your account.

Get Started
P1 The honest contrast · recommended. Gives permission to explore and asserts the product is complete, in one memorable line.

Try it first

Everything here is real except the money. Go live when you're ready.

Get Started
P2 The nudge to act · points them at the aha moment (booking a transfer) instead of describing the software.

See for yourself

Book a demo transfer. Your live account works exactly like this.

Get Started
P3 The personal welcome · "we'll take you live" puts a human on the other end; closest to "personally handled".

Welcome to your demo

Explore freely. When you're ready, we'll take you live.

Get Started
P4 The insider's line · "nothing settles" speaks FX natively; driest of the set, best for a business audience.

Demo mode

Everything works, nothing settles. Open your live account anytime.

Open Live Account

CTA is a separate choice: GET STARTED (Phil's, but it duplicates the sidebar referral button's label) vs GO LIVE or OPEN LIVE ACCOUNT, which name the outcome. Any pairing of script and CTA works.

Exact values used

  • Band #0f1f3d (Figma colour/brand/1000), padding 24px / 32px; card max-width 870px, centred.
  • Card #083c51 (colour/primary/800), 12px radius, 2px border #1595ca, icon cell solid #1595ca with the exported 32px icon.
  • Title "Try it first" Lato Bold 16px in #1595ca; body Lato 14px white; button Lato Bold 18px uppercase, #1595ca, 4px radius, 13px / 30px padding.

PR notes

  • #1595ca already exists as $ct-highlight-alt-dark; the two navies are new tokens to add to colors.scss (named after the Figma vars).
  • Template restructure in demo-notice.component.html (icon cell + text + button) with the icon SVG inlined; SCSS rewritten; no TypeScript changes.
  • Figma covers desktop only. Proposal for small screens: band padding drops to 16px and the card stacks (icon + text, button full-width below). Shout if you want something else.
Copy (Phil's): Try it first · This demo shows how transfers work. Register to activate your account. · CTA: GET STARTED
Earlier exploration, for reference

A Native tint

The lowest-risk fix: keep the exact copy and layout, re-skin it with the app's own highlight palette. It stops being a foreign object and becomes part of the product.

≈ 90px tall ( -30% )copy unchangedSCSS-only change

Why this direction

  • Uses the established "informational surface" colours: $ct-highlight-bg fill, $ct-highlight-background-alt hairline, navy text. Feels designed-in, not bolted-on.
  • CTA moves to btn-primary blue, so the page keeps one green action: GET QUOTE.
  • Smallest possible diff if you want to keep the wording exactly as marketing wrote it.

Build notes

  • demo-notice.component.scss: swap background, add border-bottom, colour the headings.
  • demo-notice.component.html: change btn-success to btn-primary; optional icon circle.
  • No TypeScript changes.
Copy: unchanged from production.

B Utility bar

Treat "you're in a demo" as an environment notice, not a marketing banner. One slim amber line, the pattern Stripe and most modern dashboards use for test mode.

48px tall ( -63% )copy tightenedtemplate + SCSSoptional dismiss shown

Why this direction

  • Demo users see this bar on every page. A quiet, persistent status line informs without nagging; the sign-up ask is still always visible, top right.
  • Amber ($ct-action family) is the app's attention colour and is instantly readable as "special mode", distinct from both blue chrome and green actions.
  • Frees the most vertical space of the six: GET QUOTE moves comfortably above the fold on a typical laptop.

Build notes

  • Tokens: $ct-action-lighter fill, $ct-action-border hairline, $ct-action edge, link in $ct-highlight.
  • Single-line flex template; link instead of button.
  • The ✕ is optional (hide for the session, two lines in the component TS). Shown here to gauge appetite; easy to drop.
Copy: Demo mode. You're exploring with sample data, no real money moves.  |  Ready for real transfers? Get started →

C Navy band

If the banner should stay high-contrast and promotional, do dark properly: the brand's navy, not neutral grey, with the action-yellow CTA that already means "act now" in CT's palette.

≈ 94px tall ( -28% )copy tightenedSCSS + copy edit

Why this direction

  • Keeps the strongest visual pull of all six, but swaps "dead grey" for $ct-dark → $ct-blue, the navy the sidebar logo and header already use. It finally looks intentional.
  • Yellow on navy is the highest-contrast CTA on this board (about 8:1) and can't be confused with GET QUOTE.
  • Good fit if the demo's job is conversion first, orientation second.

Build notes

  • Gradient of $ct-dark and $ct-blue; soft radial glow in $ct-highlight at low alpha.
  • CTA is $ct-action with navy text. The existing btn-action uses white text; this wants a small modifier for dark surfaces (white text on this yellow fails contrast).
  • Copy shortened to one headline + one line.
Copy: See how easy real transfers are. This is a demo account. When you're ready, register to activate your live account. · CTA: GET STARTED

D Inset card

Stop treating it as a system bar entirely. The notice becomes a white card inside the content flow, speaking the exact card language the rest of the app uses.

≈ 115px incl. spacing ( -12% )copy tightenedtemplate + SCSS

Why this direction

  • Sits in the app's 930px content container (the one the current banner's text already uses), so the page reads as one composition instead of bar + content.
  • Blue left accent is CT's existing "informational" cue; shadow and 8px radius match the app's cards.
  • Outline CTA (btn-primary btn-negative, an existing class) keeps the card calm and the page's single green action untouched.

Build notes

  • Wrapper padding + card: $ct-blue-grey-lighter border, $ct-highlight accent, tinted shadow.
  • CTA uses existing btn-primary btn-negative; label "OPEN LIVE ACCOUNT" also separates it from the sidebar's referral "Get Started".
  • Works well if other pages later need contextual notices: it's a reusable pattern.
Copy: You're exploring the demo. Everything works like the real thing, with sample data. Open your live account when you're ready. · CTA: OPEN LIVE ACCOUNT

E Hairline

The quietest option: a single centred line under the header with a small DEMO badge. For users who came to evaluate the product, not to be sold to on every screen.

44px tall ( -66% )copy tightenedtemplate + SCSSoptional dismiss shown

Why this direction

  • Maximum respect for the actual product: the demo UI is the pitch, the banner just labels the environment and offers the exit.
  • The DEMO badge gives a permanent, glanceable "where am I" marker even if the text is dismissed or ignored.
  • Pairs well with a stronger one-time conversion moment elsewhere (e.g. after a booked demo quote), if wanted later.

Build notes

  • White row, $ct-grey-highlight-style hairline ($ct-highlight-grey), badge in $ct-highlight-alt with darkened highlight text.
  • Smallest DOM of all variants; link-only CTA.
  • Honest trade-off: weakest conversion push of the six.
Copy: [DEMO] This is a demo account with sample data. Open your live account →

F Soft gradient

The most "2026" of the six: a light brand gradient with soft depth, confident copy, and the green CTA kept but modernised into a pill. Fresh without going dark.

≈ 98px tall ( -25% )copy tightenedSCSS + copy edit

Why this direction

  • Reads as a designed moment rather than a notice: gradient from white into $ct-highlight-background, soft brand-blue circles for depth.
  • Keeps green for the CTA (continuity with today and with the app's action colour), but the pill shape and shadow separate it from the flat form buttons.
  • Headline sells the outcome ("this easy") instead of explaining the mechanism.

Build notes

  • Gradient of $white → $ct-highlight-background; decorative circles in $ct-highlight / $ct-secondary-highlight at ~10% alpha.
  • Keeps btn-success colours; adds pill radius + tinted shadow for this banner only.
  • Note: this keeps two greens on the page (banner CTA + GET QUOTE), softened by the pill shape. If that bothers you, A/C/D solve it.
Copy: Real transfers, this easy. You've seen the demo. Open your live account and start transferring. · CTA: GET STARTED

All six, side by side

Banner strips only, at content width, for quick scanning.

0 Current · #555 slab
P Phil's Figma · the PR candidate
A Native tint · lowest risk, copy unchanged
B Utility bar · smallest footprint
C Navy band · keeps the contrast, on brand
D Inset card · app's card language
E Hairline · quietest
F Soft gradient · freshest