Security branding redesign
Started 2026-05-03 19:02 UTC
User
Can you create several branding options for securityv0.
and several mockups for login/signin screens.
Currently we have very blank:
- first login screen - where we have option to customize a lot
- then blank WorkOS login screen - we don't have access to code, but can customize with logos and text Attaching screenshot of the default branding provided by WorkOS - we should get it to SecurityV0 Standards
Assistant
I'll create branding options for SecurityV0 and mockups for both login screens. Let me first explore the project and attached repo.
[tool: local_ls]
[tool: list_files]
[tool: read_file]
[tool: read_file]
[tool: read_file]
[tool: read_file]
I have enough context. SecurityV0's design system uses slate-blue primary (#565e74), teal secondary, Inter, and a calm tonal aesthetic with no borders. Let me design branding options and login mockups that align with this.
Plan:
- Brand explorations: Several logo/wordmark directions for "SecurityV0"
- First login screen (in-app, fully customizable): Several variants
- WorkOS AuthKit login (limited customization — just colors, logo, fonts, button radius, links): Several variants showing what's possible within their constraints
I'll build this as a single design canvas so options sit side-by-side.
[tool: copy_starter_component]
I'll continue building. Let me write the main canvas file now.
[tool: write_file]
[tool: write_file]
[tool: snip]
[tool: write_file]
[tool: snip]
[tool: done]
[tool: snip]
[tool: fork_verifier_agent]
I built a single canvas at branding.html with three sections:
01 · Brand marks — six directions (bracket monogram, layered shield, orbit, plain wordmark, stacked block, notch/chevron), each shown on light + dark with the slate-blue / teal / red palette from your tokens.
02 · First login (in-app, fully customizable) — six variants:
- A · Quiet centered card
- B · Posture sentence ("Four governance stories are waiting…")
- C · Split editorial with deterministic posture lede on the left
- D · Operator console (terminal-styled, dark)
- E · Tonal slab (slate full-bleed)
- F · Ledger card (workspace spec sheet)
03 · WorkOS AuthKit — four setups, each constrained to the actual WorkOS controls (appearance, font, radius, page bg, button bg/text, links). Each artboard shows the rendered page and the exact branding-panel values to paste into WorkOS:
- A · Slate primary, light
- B · Slate primary, dark
- C · Inverse — black on warm
- D · Sharp — radius 0, mono everywhere
Drag artboards to reorder, click any to open fullscreen.
User
Verifier agent check completed
Assistant
[tool: str_replace_edit]
[tool: snip]
[tool: done]
[tool: fork_verifier_agent]
Fixed the destructuring collision — branding.html now renders cleanly.
User
Can you do further research and check if there are similar logos already so we don't conflict.
Assistant
I'll search for existing logos that might conflict with the SecurityV0 brand directions.
[tool: snip]
[tool: web_search]
[tool: web_search]
[tool: write_file]
Let me search for direct conflicts on each visual direction.
[tool: web_search]
Important findings. Let me write up a research note, update the canvas to flag the conflicts, and remove or de-emphasize the highest-risk options.
The key concern: "V0" is a Vercel trademark (their AI codegen product). Vercel's brand guidelines state the v0 trademark covers the v0 name and logo and asks others not to use marks confusingly similar or that suggest sponsorship, and they explicitly say not to use Vercel marks in business/product names or use marks confusingly similar to Vercel marks. This affects the name itself far more than the logo shapes, but it also means anything that looks Vercel-adjacent (geometric V mark + "0") amplifies confusion risk.
Other notes:
- Shield + lock + bracket monograms are extremely common in security branding — not legally conflicting (you can't trademark the idea of a shield), but the "Bracket Monogram" risks looking like generic SaaS-startup branding.
- The "notch/chevron" V is structurally close to the Vercel triangle when small — highest visual conflict risk in the set.
Let me bake this into the canvas as a research findings panel and visually flag each option.
[tool: snip]
[tool: str_replace_edit]
[tool: str_replace_edit]
[tool: str_replace_edit]
[tool: snip]
[tool: done]
[tool: fork_verifier_agent]
Added a research section at the top of branding.html covering trademark & similarity findings:
High risk
- The "V0" suffix collides with Vercel's v0 trademark, which covers the v0 name and logo, and their guidelines forbid using the marks in product names or any marks confusingly similar. Since Vercel released v0 as an AI web development tool in 2023, the name overlap is the dominant risk — recommend formal legal clearance.
- F · Notch/chevron — too close to Vercel's triangular logo retained from the ZEIT era. Marked DROP.
Medium
- C · Orbit/V0 dot — reads as AI-tool branding given the dot-tracking motif common in agent products.
Low
- B · Shield (saturated category, not legally risky)
- A · Bracket (common in dev-tool branding)
Safe — recommended
- D · Wordmark only (typographic, no icon-collision surface)
- E · Stacked block (encodes the layered-evidence product idea, no close match)
Each artboard now carries a risk badge, and the recommended pair is reordered to the front. There's also a hedge note: always render the wordmark as Security + visually-demoted V0 so V0 reads as a version cue rather than co-branding with Vercel's product.
Caveat: this is a designer-level similarity scan, not a formal trademark search. Recommend running the final shortlist through legal counsel before filing or external launch.
User
let's add an option similar to [s] but as v0 in brackets - [V0] or [v0] - what's better looking
Assistant
[tool: snip]
[tool: str_replace_edit]
[tool: str_replace_edit]
[tool: str_replace_edit]
[tool: str_replace_edit]
[tool: done]
[tool: fork_verifier_agent]
[tool: snip]
Added two new brackets options sitting next to the original [S]:
- A2 ·
[V0]uppercase — Inter, tightened. Reads as a label/tag — confident, architectural. - A3 ·
[v0]lowercase — JetBrains Mono. Reads as a code-literal version cue, much more "engineering tool" register.
Quick designer take: [v0] lowercase wins for visual character — the mono treatment makes it unmistakably a version reference (which is the whole semantic point) and the lowercase has more interesting silhouette than the geometric uppercase. Uppercase [V0] looks closer to a generic dev-tool stamp.
⚠️ Both bumped to medium trademark risk — putting "v0" inside its own bracketed badge is precisely the move Vercel's v0 brand makes (it's effectively their wordmark format). The earlier [S] keeps V0 as a typographic suffix on the wordmark only; these two elevate it to the mark, which is a stronger collision signal. Worth flagging to legal before committing.
User
Let's dive deeper in [s] branding.
Right now SVG with gray background looks of place.
I'm also not sure about combineed look of logo + securityV0 text
branding PR was prepared here https://github.com/SecurityV0/sv0-platform/pull/780
Lets dive deeper about [s] logo and branding. How we should combine it in dashboards etc, provide several options.
May there should be strict guideline how to align logo and text - some kind of design.md or similar concepts? as current implementation looks off. Your "S" in branding looks upper case, in implementation it looks lower case
Assistant
[tool: snip]
[tool: local_ls]
[tool: view_image]
[tool: view_image]
I can see the issue clearly: in the implementation the bracket mark uses lowercase [s] set in mono, while the brand exploration showed an uppercase S in Inter — they're not the same mark. And the wordmark/logo lock-up has no defined gap, alignment, or sizing rules.
Let me find the current implementation to understand the constraints, then build a proper logo-system explorer with strict lockup rules.
[tool: local_grep]
[tool: local_read]
[tool: local_read]
Now I have the source of truth. The actual implementation in Layout.tsx and LoginPage.tsx uses an uppercase S (not [s]) — the screenshot shows [s] because the brackets are inside the S glyph itself, but the screenshot's rendered favicon-style mark uses [s] lowercase mono. Looking at the actual screenshot more carefully: it really is [s] lowercase in the sidebar. The code uses just S in a rounded square — so the screenshot must be from a different/newer build. Let me build a comprehensive logo system spec.
[tool: snip]
[tool: write_file]
[tool: done]
Built logo-system.html — a complete spec for the bracket-S mark with everything derived from a single value M (mark height).
Key audit findings on PR #780
- Letter case drift — explorations showed uppercase
SInter, implementation shipped lowercasesmono. Spec locks uppercase S in JetBrains Mono 700. - Tile/surface mismatch — the mark sits in a slate tile on a near-black sidebar. The mark ground must follow surface contract: dark sidebar →
inverse-on-surfacetile (light) with dark glyph; light page →primarytile with white glyph. - No defined gap or alignment — wordmark and mark float independently. Spec mandates
gap = 0.375M,wordmark = 0.5M.
What's in the doc
- Construction diagram with all proportional tokens (radius
0.1875M, arm0.109M, letter0.34M, etc.) - Color/ground rules — three correct grounds, three explicit "don'ts"
- Lockup variations (horizontal primary, horizontal on dark, mark-only) — stacked/right-mark/wordmark-only marked DON'T
- PR #780 fix — side-by-side current vs. recommended sidebar, plus collapsed state
- Application across topbar, login, favicon (16/32/64/128)
- BRAND.md ready to paste into the repo
- Concrete code diff for
Layout.tsx - Open questions: SVG vs glyph brackets, mark-only in dense surfaces, the standing Vercel
v0hedge (keep V0 demoted in the wordmark).
Verifier running in background.
User
Don't you think that center of logo is misaligned with the brand itself?
I wonder if S in brackets should be same size as S in brand?
Start subagent with adversarial review on this exact topic before making decision
Assistant
Forking an adversarial verifier to pressure-test this exact claim before I commit to a change.
[tool: fork_verifier_agent]
[tool: snip]
Forked the adversarial review — it'll measure the actual rendered lockup, compare against peer brands (Vercel, Linear, Notion, GitHub), and report back with a verdict on both questions. I'll wait for it before changing the spec.
User
Verifier agent check completed
Assistant
The verifier confirmed both your instincts. Let me fix the spec — three concrete changes plus updated diagram and BRAND.md.
[tool: read_file]
Now I have the full structure. Let me apply the fixes:
- Move inner-S in SVG (
y="21"→y="20.15",fontSize="11"→fontSize="10") so it sits at bracket midline and matches wordmark cap-height - Add
marginTop: '-0.07em'to wordmark span — pulls cap-line down to bbox-center for true optical alignment - Update construction diagram with cap-line vs bbox-line callout
- Add a v2 audit callout explaining what changed and why
- Update BRAND.md with the optical-alignment rule
[tool: str_replace_edit]
Now update the construction diagram to show cap-line vs bbox-line, add the v2 audit callout, and update the spec table + BRAND.md.
[tool: str_replace_edit]
[tool: snip]
[tool: grep]
[tool: read_file]
I have a pending edit to apply.
[tool: str_replace_edit]
Now updating the audit callout, spec table, and BRAND.md to reflect the v2 fixes.
[tool: snip]
[tool: grep]
[tool: str_replace_edit]
[tool: snip]
[tool: done]
Both your instincts were correct — the verifier confirmed it with measurements:
1. Optical misalignment (real bug): Mark sat 7% × M below the wordmark cap-center because align-items: center aligns bounding boxes, not type. Inter's descender slot pushes bbox-center below cap-center.
Fix: margin-top: -0.07em on the wordmark — pulls the cap-line down to the bbox-center so flex-center aligns optical-to-optical.
2. Inner-S parity (also real): The inner-S was rendering 17.5% larger than the wordmark S (cap-height 22px vs 18.7px at M=48), AND sitting 1.15u below the bracket midline.
Fix: SVG fontSize 11 → 10 (parity rule: inner-S cap-height = wordmark cap-height) and y 21 → 20.15 (S optical-center on bracket midline).
Updated in the doc:
- Mark + wordmark components carry the new geometry
- Construction diagram now shows the optical centerline (cap-line) explicitly, with the wrong bbox-center marked in red so the rule is visible
- v2 revision callout explains both fixes with measured numbers
- Spec table adds three new rows: letter size, letter y-offset, wordmark optical shift
- BRAND.md snippet updated to ship the rule