Skip to content

Now in the official shadcn registry directory.

Start free
Back to gallery
developer tools · saas · ai

Neon

Section-zoned developer-database landing that turns its brand colour into the design statement. Petrol-green #2c6d4c drenches entire sections as ground (not accent), Geist Mono carries code-voice authority, Inter handles marketing copy. Wide 1856px canvas, zero shadow system — depth lives in section colour contrast.

neon.comAdded 2026-05-15
Neon - Desktop

Editorial disclaimer

Editorial note

This entry documents observable design-language patterns for educational transfer and AI-agent briefing. Screenshots and trademarks are property of their respective owners. AI2 Design is not affiliated with or endorsed by the featured brand. Inspiration here is about language and rhythm - do not reproduce brand identity, logo, product copy, or proprietary features.

Fair Use & Gallery Policy
FreePrompt kit

Copy the full design language into your agent

A typed, paste-ready design system brief - philosophy, tokens, rules, techniques, and fitness checks. Drop it into Claude, Cursor, v0 or any coding agent and it builds in Neon’s language, not just a screenshot.

Paste into your agent. No signup, no cost.
Section-zoned developer-database canvas. White #ffffff text dominates because brand-green #2c6d4c is the primary section ground (not accent), with #000000 as the alternate section ground. Slate descender scale (#94979e / #797d86 / #c9cbcf) for de-emphasis. Geist Mono carries code-voice technical credibility (16px tables and code), Inter handles marketing reading layer (13-18px UI/body). Wide 1600-1856px canvas — section width is the design move. Expressive motion via Framer Motion. Single gradient catalogued — atmospheric only.
Main prompt
Use this capture as a design language transfer brief for my project. Adopt the palette (section-zoned with petrol-green #2c6d4c as primary section ground + #000000 as alternate section ground + #ffffff primary text + slate descender scale for de-emphasis — the brand colour is the ground, never an accent or button fill), typographic duet (Geist Mono for code-voice 16px tables and technical labels + Inter for marketing reading 13-18px UI/body), 4px-base spacing scale heavy at 4/6/8/10/12/14, wide 1600-1856px canvas with section zoning by brand colour, expressive Framer Motion vocabulary, custom breakpoint ladder. Treat this as my project's constitution. Apply the language, not the source brand. When I ask you to build a page or component, enforce these rules by default and call out any deviation.
Layout
Section-zoned wide canvas — petrol-green and #000 sections alternate as the design rhythm, each holding a full content block.
Content width
960-1600px content rail inside 1856px hero canvas; sections break to full width.
Framing
Developer-database broadsheet — wide, brand-coloured, technically confident.
Grid strength
Strong 12-column grid at desktop, section-coloured backgrounds carry the rhythm.

Petrol-green #2c6d4c + #000000 alternate as section grounds; #ffffff primary text + slate descender scale; brand colour is the ground, never an accent.

Mode strategySection-zoned (green ↔ black) — neither pure light nor pure dark.
  • #2c6d4c petrol-green: primary section ground (drenched, not accent)
  • #000000: alternate section ground for contrast
  • #ffffff for primary text on green/black sections
  • #94979e secondary text, #797d86 metadata, #c9cbcf disabled
  • #61646b border colour on cards
  • Never use petrol-green as accent or button fill — it is ground only

Gradients (paste-ready)

1 gradient catalogued — atmospheric only, never as section background or button fill
  • Geist Mono for technical labels, code blocks, data tables (16px)
  • Inter for all UI, body, marketing copy (13-18px)
  • Weights: Inter 400/500/600, Geist Mono 400
  • Line-height 1.4-1.5 body, 1.1-1.2 display
  • Letter-spacing 0
  • 4px base unit, heaviest use at 4/6/8/10/12/14px
  • Section vertical rhythm: 80-160px between major sections
  • Card internal padding: 24-32px
  • CTA padding: 12-14px vertical / 22-28px horizontal
Surface styleCards float on section ground via 1px #61646b hairline; zero shadow variants catalogued — depth comes from section colour contrast, not elevation.
  • Zero shadow variants — depth lives in section colour
  • Hover state: brightness shift on hover, no lift
  • Focus rings: white 2px + 2px offset on green ground

Techniques

Brand-zoned section

Full-width section with #2c6d4c background, #ffffff text, 80-160px vertical padding — the brand colour does the work.

Hairline-only card

1px #61646b border + transparent background; depth from section colour contrast, not shadow.

Radii4 / 6 / 8 / 12Icon treatmentStroke 1.5px monoline; rare filled icon for emphasis.Icon setsCustom + Lucide
  • Buttons: 6-8px radius
  • Cards: 8-12px radius
  • Section bands: no rounded corners — full bleed always
  • Primary CTA on green section
    background
    #ffffff
    textColor
    #2c6d4c
    fontFamily
    Inter
    fontWeight
    500
    fontSize
    15px
    padding
    12px 22px
    borderRadius
    8px
    shadow
    none
    hover
    background shifts to #f2f2f2

    Tailwind

    inline-flex items-center gap-2 rounded-lg bg-white px-5 py-3 text-[15px] font-medium text-[#2c6d4c] transition hover:bg-[#f2f2f2]
  • Brand-zoned section
    background
    #2c6d4c
    textColor
    #ffffff
    padding
    80px 0 120px
    borderRadius
    0

    Tailwind

    w-full bg-[#2c6d4c] px-0 pb-32 pt-20 text-white
LevelexpressiveDurations180ms / 300ms / 500ms / 800ms

Easings

cubic-bezier(0.22, 1, 0.36, 1)cubic-bezier(0.16, 1, 0.3, 1)
HoverButton background brightness shift on hover, Card border colour brighten, Link underline reveal on hover

Scroll patterns

  • Framer Motion-animated section reveals on viewport entry
  • Sticky nav appears after 100px scroll
  • Fade-in + 16px translate per content block
  • Motion supports section transitions
  • Respect prefers-reduced-motion: opacity-only fades
  • Hover brightens elements without lift (depth lives in section colour)
  • Focus rings: white 2px + 2px offset on brand sections, black 2px on white sections
  • Active state: button bg shifts darker by 8%
Approachdesktop-first

Custom enterprise ladder (320/960/1600/1856) — wide canvas as the design statement.

  • <960: 16px gutter, single column, sections retain brand colour
  • 960-1600: 960px content rail, basic 2-col grid
  • ≥1600: full 1600 rail + 1856 hero break-outs, full 12-col data tables
  • WCAG AA on white text on petrol-green (#ffffff on #2c6d4c is 7.4:1)
  • WCAG AAA on white text on black (#ffffff on #000 is 21:1)
  • Data tables use proper th/td semantics + caption
Next.js or similarFramer Motion for section revealsGeist Mono + Inter variable fonts

Brand-coloured section zoning + typography + product UI screenshots are the visual identity.

  • Geist Mono and Inter loaded as woff2 with font-display: swap
  • Framer Motion section reveals scoped to scroll-triggered
  • Brand-coloured sections as CSS background-color, never images
  • Use petrol-green as section ground — drenched, full-width, the design statement
  • Use Geist Mono for code-voice technical labels, Inter for everything else
  • Keep the canvas wide (1600+) — confidence is the design move
  • Use section colour to zone, not shadows or borders
  • Don't use petrol-green as accent or button fill — it is ground only
  • Don't add box-shadows to cards — depth lives in section colour contrast
  • Don't shrink the canvas below 1600 on desktop — the wide layout is the brand
  • Don't introduce a third type family
  • Section-zoned (green ↔ black) — no pure light or pure dark mode
  • Geist Mono + Inter only
  • Petrol-green is ground only, never accent
  • Zero shadow system — depth from section colour
  • Font-family grep: only `Geist Mono` and `Inter` appear
  • Background colour grep: `#2c6d4c` for primary sections, `#000000` for alternate
  • Accent colour usage: petrol-green appears only as background-color, never as color/border/fill
  • Shadow variants total: 0 (zero) — verify no box-shadow declarations
  • Section width: max-w never below 1600px at desktop

Design tokens

Observed token system

Color, type, spacing, gradients, and stacking order captured from the live page and rendered here as living, paste-ready previews.

Inspector

Observable layers

Structure, breakpoints, motion, fonts, and images captured from the live page and kept paste-ready alongside the tokens.

Depth-first walk of the meaningful sections. 13 nodes across 6 levels, shallow to deep by color.

  • body2
    • a
    • div (×2)3
      • Header1
        • div1
          • div1
            • Nav
      • Main3
        • Section
        • div1
          • Section (×5)
        • Section (×3)
      • Footer

Accessibility

Contrast matrix

192 combinations - 76 pass AA - 44 pass AAA. Each pair is previewed with its real foreground on background; APCA Lc sits alongside the WCAG 2.1 ratio for draft WCAG 3 awareness.

Normal text passes AAALarge text passes AAA
fg
#FFFFFF
bg
#000000
APCA Lc
-108
Use
background on foreground
Normal text passes AAALarge text passes AAA
fg
#000000
bg
#FFFFFF
APCA Lc
+106
Use
foreground on background
Normal text passes AAALarge text passes AAA
fg
#000000
bg
#E4F1EB
APCA Lc
+96
Use
foreground on background
Normal text passes AAALarge text passes AAA
fg
#E4F1EB
bg
#000000
APCA Lc
-97
Use
background on foreground
Normal text passes AAALarge text passes AAA
fg
#FFFFFF
bg
#18191B
APCA Lc
-107
Use
background on foreground
Normal text passes AAALarge text passes AAA
fg
#18191B
bg
#FFFFFF
APCA Lc
+104
Use
foreground on background
Normal text passes AAALarge text passes AAA
fg
#000000
bg
#E4E5E7
APCA Lc
+91
Use
foreground on foreground
Normal text passes AAALarge text passes AAA
fg
#E4E5E7
bg
#000000
APCA Lc
-91
Use
foreground on foreground
Normal text passes AAALarge text passes AAA
fg
#18191B
bg
#E4F1EB
APCA Lc
+94
Use
foreground on background

Images

Image strategy

Observable image posture - total count, lazy-loading ratio, and format mix. The hero image is measured above the fold.

Total images
30
Lazy loaded
74%
Format mix
  • svg21 · 55%
  • unknown17 · 45%

Hero image

https://neon.com/_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=1920&q=100
Format
UNKNOWN
Dimensions
1920x832
Loading
lazy
srcset
yes
srcset descriptor
/_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=32&q=100 32w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=48&q=100 48w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=64&q=100 64w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=96&q=100 96w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=128&q=100 128w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=256&q=100 256w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=384&q=100 384w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=640&q=100 640w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=750&q=100 750w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=828&q=100 828w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=1080&q=100 1080w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=1200&q=100 1200w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=1920&q=100 1920w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=2048&q=100 2048w, /_next/image?url=https%3A%2F%2Fcdn.neonapi.io%2Fpublic%2Fpages%2Fhome%2Fhero%2Fposter.jpg&w=3840&q=100 3840w
Industry
developer-tools
Industry
saas
Industry
ai
Theme
Dark
Added
2026-05-15

FAQ

Questions people ask about Neon

3questions

Answers are pulled from the curator verdict and design brief - the same text your AI agent sees when it paste-reads this page.

Compare this with