- fg
#000000- bg
#FFFFFF- APCA Lc
- +106
- Use
- foreground on background
V7 Labs
Technical light-canvas enterprise-AI marketing — sharp geometric sans, electric-blue accent reserved for decision moments, dark product-screenshot insets juxtaposed against the calm light surface. V7 sells ML infrastructure with the specificity of real annotation overlays and dataset metrics, not generic 'AI futuristic' visual cliches.

Editorial disclaimer
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 PolicyCopy 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 V7 Labs’s language, not just a screenshot.
Technical light-canvas enterprise-AI marketing — sharp geometric sans, electric-blue accent at decision points, dark product screenshot insets for emphasis, no illustration. Motion is discrete (200-300ms ease-out fades), spacing is generous on light surfaces, dense on product detail moments.
Adopt this as a design-language brief for B2B ML or technical-infrastructure marketing. Use the light-canvas + dark product-screenshot juxtaposition pattern, electric-blue accent discipline (under 5% surface area), sharp geometric sans typography, and mono fallback for technical content. Avoid 'AI futuristic' visual cliches — let real product detail carry authority.
- Layout
- Stacked
- Content width
- Bounded
- Framing
- Flat
- Grid strength
- Moderate
Light-first canvas — primary surface #000000 paired with foreground #ffffff doing the bulk of reading-layer work. Accent moments use #292929 + #0000ee sparingly. Cream and warm-neutral surfaces with small accent flags.
- #000000 — primary surface / dominant background
- #ffffff — primary foreground / reading layer
- #292929 — first accent — used for CTAs and highlights
- #0000ee — secondary accent / hover states
- #ff683d — tertiary surface / panels
Gradients (paste-ready)
// No gradient extracted — use solid surfaces
- Primary family: sans-serif. Mono fallback: JetBrains Mono for code and tabular numerics.
- Weight ladder: 300 / 400 / 430 / 500. Keep substitutions tight — the captured ladder is the typographic signature.
- Display tracking uses negative px (not em) for optical correction at large sizes — typically -0.5 to -1.5px at 48-64px hero scale.
- Heading line-height tightens at display sizes (1.0-1.2); body sits at 1.4-1.6. Captions and small UI labels at 1.3.
- Tabular numerals mandatory on aligned columns: font-variant-numeric: tabular-nums.
- Italic reserved for editorial quotes and emphasis where weight cannot carry — never for product UI labels.
- Paragraph max 45-55ch at body size; dense data tables may extend to 65ch with line-height 1.5.
- Scale (observed): 2 / 4 / 6 / 8 / 10 / 12 / 14 / 16 px. Stay on the scale — no magic numbers.
- Container max-width: 1336px. Secondary bounded rails for narrow content clusters at ~480-640px.
- Section vertical rhythm: 64-128px on desktop, 40-80px on mobile, scaled by page depth.
- Card padding: 16-24px on desktop, 12-16px on mobile.
- Gutter values draw from the smaller half of the scale (4 / 8 / 12 / 16 / 24).
- Primary elevation is a light drop shadow — `box-shadow: 0 1px 2px rgba(0,0,0,0.05), 0 1px 3px rgba(0,0,0,0.1)`. Layering through subtle shadow ladder.
- Drop shadows stay subtle (opacity 0.05-0.4, blur 1-12px, zero spread). No bloom, no halo.
- Layering depth comes from border weight + background tone shift, not stacked shadow.
- Focus state uses inset ring at accent color — never an outer glow on form fields.
Techniques
Layered drop-shadow elevation
Cards layer through a two-step shadow (1px tight + 4-8px ambient). Hover slightly increases ambient blur without changing color.
- Radius scale: 4 / 8 / 12 / 16. Buttons default to 12px, cards to 16px, modals to 16px.
- Icon style is linear — stroke-based at 1.5-2px weight; no filled or duotone variants.
- Tap targets minimum 44×44 on touch, 40×40 on pointer devices.
button-primary- backgroundColor
- #292929
- textColor
- #000000
- radius
- 12px
- padding
- 10px 16px
- border
- 1px solid transparent
- boxShadow
- none
- fontWeight
- 430
- fontSize
- 14px
- lineHeight
- 20px
Tailwind
inline-flex items-center gap-1.5 rounded-[12px] bg-[#292929] px-4 py-2.5 text-[14px] font-medium text-[#000000] transition-colors duration-200 ease-out hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#292929]
button-secondary- backgroundColor
- transparent
- textColor
- #ffffff
- radius
- 12px
- padding
- 10px 16px
- border
- 1px solid #0000ee
- boxShadow
- none
- fontWeight
- 430
- fontSize
- 14px
Tailwind
inline-flex items-center gap-1.5 rounded-[12px] border border-[#0000ee] bg-transparent px-4 py-2.5 text-[14px] font-medium text-[#ffffff] transition-colors duration-200 ease-out hover:bg-[#ff683d] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#292929]
card-surface- backgroundColor
- #ffffff
- textColor
- #ffffff
- radius
- 16px
- padding
- 24px
- border
- none
- boxShadow
- 0 1px 3px rgba(0,0,0,0.1)
Tailwind
rounded-[16px] bg-[#ffffff] p-6 text-[#ffffff] shadow-sm
input-field- backgroundColor
- #ffffff
- textColor
- #ffffff
- radius
- 8px
- padding
- 8px 12px
- border
- 1px solid #0000ee
- boxShadow
- none
- fontSize
- 14px
- lineHeight
- 20px
Tailwind
w-full rounded-[8px] border border-[#0000ee] bg-[#ffffff] px-3 py-2 text-[14px] leading-5 text-[#ffffff] placeholder:text-[#ff683d] focus-visible:outline-none focus-visible:border-[#292929] focus-visible:ring-2 focus-visible:ring-[#292929]/30
Easings
cubic-bezier(0.4, 0, 0.2, 1)ease-outeaseScroll patterns
- Intersection-triggered opacity + translateY reveals (12-24px) on 0.3-0.5s ease-out
- Stagger 40-80ms between grouped cards or list items
- No parallax beyond 2-4% translateY — subtle depth, never theatrical
- Captured motion level: moderate. Libraries detected: Framer Motion.
- useReducedMotion mandatory — all animations collapse to opacity-only or disable entirely.
- Deterministic cubic-bezier or ease-out only; spring animations only where genuinely needed.
- Loop animations forbidden except explicit loaders.
- Hover and reveal motion use the same primary easing curve to feel consistent across the page.
- Segmented controls for binary/ternary choices (pricing toggle, doc version switcher) over toggle switches.
- Accordion: single-open for FAQ; multi-open only for deeply nested documentation.
- Tooltips: hover + focus with 300-400ms delay, dismiss instantly on blur.
- Modals for destructive confirmations; drawers for mobile-only expansions; never nested modals.
- Form validation: inline below field on blur; submit disabled until pristine.
- Empty states: small icon + one-line copy + primary action link, no illustrations beyond brand pattern.
- Loading states: skeleton shimmer for content blocks; inline spinner for button confirm states.
Desktop-first because the audience is technical teams on wide displays. Mobile adapts the same language without reinventing it — no hamburger-revealed alternate architecture.
- Breakpoints: sm 640 / md 768 / lg 1024 / xl 1280 / 2xl 1536 — standard Tailwind ladder.
- Container max-width: 1336px. Below 1280, padding compresses but composition holds.
- Hide-on-mobile is banned — if a control exists on desktop, it must reach mobile via reflow.
- Tap target minimum 44×44 on touch; 40×40 on pointer devices.
- Typography scales proportionally: hero 48-64 → 32-40 on tablet → 28-32 on mobile.
- Color contrast: foreground #ffffff on background #000000 should meet WCAG AA at minimum (4.5:1 for body, 3:1 for display). Verify with axe-core or Lighthouse.
- focus-visible: 2px ring at accent color, never display:none on focus outline. Mandatory on every interactive element.
- All interactive elements reachable via Tab in logical reading order; never rely on hover to expose actions.
- ARIA labels on icon-only buttons; aria-expanded on collapsibles; aria-live='polite' on toasts.
- Motion respects prefers-reduced-motion — animations reduce to opacity-only or disable entirely.
- Form errors announced via aria-describedby on the associated input; never color-only signaling.
- Screen reader-only content uses sr-only; never display:none for meaningful context.
Motion library detected: Framer Motion. Image handling uses Next/Image (or equivalent) with lazy-loading default. Icons: Lucide.
- Motion: motion.div with whileInView and viewport={{ once: true, margin: '-10%' }} for scroll reveals.
- Transitions use constants only — define ease and duration as named tokens (e.g. ease.standard, duration.fast).
- useReducedMotion guard wraps every animation primitive — no exceptions.
- Next/Image with sizes attribute always set; priority only on LCP candidate (hero image).
- No canvas, no WebGL, no Lottie unless required by product (e.g. waveform demos).
- Apply focus-visible ring at accent color #292929 on every interactive element.
- Use tabular-nums on aligned numerics; reach for monospace fallback for code and kbd inline.
- Stay within the captured spacing scale (2, 4, 6, 8, 10, 12 px) — no magic numbers.
- Break body text at 45-55ch; dense tables may extend to 65ch at 13-14px.
- Use a two-step shadow ladder (1px tight + 4-8px ambient) before adding decorative elevation.
- Pass every page through useReducedMotion before shipping.
- Default to the primary easing curve for interactive transitions; reserve longer durations for atmospheric beats.
- Never introduce a font weight outside the captured ladder — the discipline is the signature.
- Never invent durations or easings outside the captured set — pick from the existing scale.
- Never use drop shadows above 0.4 opacity or 16px blur — heavy elevation breaks the surface language.
- Never introduce a secondary display font without explicit reason — one family + one mono is the boundary.
- Never animate height: auto — use measured transforms or scaleY.
- Never use em for tracking on display sizes — the px-based scale is an optical constant.
- Never apply hover-only affordances — every interaction must be keyboard + screen reader reachable.
- Tailwind v4 @theme inline only — no runtime style concatenation, no CSS-in-JS beyond the design system.
- Spacing scale: 2 / 4 / 6 / 8 / 10 / 12 / 14 / 16 px.
- Container max-width: 1336px — do not exceed.
- Single font family: sans-serif, plus JetBrains Mono mono fallback.
- Weight ladder: 300 / 400 / 430 / 500 — no substitutions.
- Motion: durations from CSS defaults; easings ease-out + cubic-bezier(0.4, 0, 0.2, 1). No springs unless explicitly motivated.
- Radius scale: 4 / 8 / 12 / 16 px.
- Container width: no page section exceeds 1336px wide.
- Spacing grep: no values outside the 2 / 4 / 6 / 8 / 10 / 12 ladder (+ scale extensions).
- Font weight grep: only 300, 400, 430, 500 appear in computed styles.
- Transition timing-function values draw from the captured easing set (ease-out + cubic-bezier(0.4, 0, 0.2, 1)).
- Transition duration values draw from {0.16, 0.2, 0.3, 0.5}s.
- Shadow audit: every elevation uses the two-step ladder (1px + ambient); no opacity above 0.4.
- Image audit: loading='lazy' on every non-LCP image; priority only on hero.
- Contrast audit: body text on dominant background ≥ 4.5:1 (WCAG AA).
- Tap target audit: minimum 44×44 on touch surfaces; 40×40 on pointer.
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. 2 nodes across 2 levels, shallow to deep by color.
- body1
- div
Accessibility
Contrast matrix
84 combinations - 54 pass AA - 42 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.
- fg
#FFFFFF- bg
#000000- APCA Lc
- -108
- Use
- background on foreground
- fg
#000000- bg
#FFFFFA- APCA Lc
- +106
- Use
- foreground on background
- fg
#FFFFFA- bg
#000000- APCA Lc
- -108
- Use
- background on foreground
- fg
#FFFFFF- bg
#040301- APCA Lc
- -108
- Use
- background on accent
- fg
#040301- bg
#FFFFFF- APCA Lc
- +106
- Use
- accent on background
- fg
#040301- bg
#FFFFFA- APCA Lc
- +106
- Use
- accent on background
- fg
#FFFFFA- bg
#040301- APCA Lc
- -108
- Use
- background on accent
- fg
#FFFFFF- bg
#0A1A1A- APCA Lc
- -107
- Use
- background on accent
Images
Image strategy
Observable image posture - total count, lazy-loading ratio, and format mix. The hero image is measured above the fold.
- png25 · 33%
- webp25 · 33%
- jpg17 · 22%
- svg8 · 11%
- unknown1 · 1%
Hero image
https://bat.bing.net/action/0?ti=187245599&Ver=2&mid=29df6c53-21de-439f-9423-5afe78584656&bo=2&uach=pv%3D10.0&pi=-1334612754&lg=en-US&sw=2560&sh=1440&sc=24&nwd=1&tl=V7%20Go%20%7C%20AI%20for%20Private%20Equity%20%26%20Finance&p=https%3A%2F%2Fwww.v7labs.com%2F&r=<=593&evt=pageLoad&sv=2&asc=D&cdb=AQAQ&rn=588093- Format
- UNKNOWN
- Dimensions
- 0x0
- Loading
- auto
- srcset
- no
- Industry
- ai
- Industry
- developer-tools
- Industry
- saas
- Theme
- Light + Dark
- Added
- 2026-05-11
FAQ
Questions people ask about V7 Labs
3questionsAnswers 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



