Branding Your Chrome Extension: The Complete Guide

Your Chrome extension looks like a side project? Fix that. Icon sizes, Web Store listing optimization, popup UI branding, and dark mode — step by step.

February 15, 20267 min readBy Yann Lephay

Chrome extensions have a unique branding challenge: your entire visual identity has to work in a 300px-wide popup and a 128px icon. There's almost no room for error.

The Chrome Web Store is also brutally competitive. Users scroll through dozens of extensions, and your icon and screenshots are the only things standing between you and being ignored.

Here's how to brand your extension so it gets installs and looks professional once it's running.

The icon: your entire brand in a square

Chrome extensions need icons at four sizes:

  • 16px — Toolbar icon (tiny, next to the URL bar)
  • 32px — Windows computers, some contexts
  • 48px — Extensions management page
  • 128px — Chrome Web Store listing

Your icon needs to be recognizable at all of these sizes. That eliminates most complex designs immediately.

Code
// manifest.json
{
  "icons": {
    "16": "icons/icon-16.png",
    "32": "icons/icon-32.png",
    "48": "icons/icon-48.png",
    "128": "icons/icon-128.png"
  }
}

Rules for extension icons:

  • Single shape or letter, not a detailed illustration
  • High contrast against both light and dark browser themes
  • No text (unreadable at 16px)
  • Bold, filled shapes over thin outlines (outlines disappear at small sizes)
  • Transparent background (Chrome composites it onto different surfaces)

The 16px toolbar icon is especially critical. Users see it every time they use their browser. If it's a blurry mess, they'll uninstall.

You can quickly generate all required icon sizes with our free favicon generator.

The favicon and icon generator is built for exactly this use case — generating crisp icons at every required size from a single source image.

Chrome Web Store listing

Your store listing is your landing page. You need:

Icon (128px): Already covered. Make it bold and simple.

Screenshots (1280x800 or 640x400): These sell your extension. Rules:

  • Show the extension in action, not just the UI in isolation
  • Add captions/annotations explaining what users see
  • Use your brand colors for caption backgrounds
  • First screenshot is the most important (it shows in search results)

Promotional tile (440x280): Small marquee image. Needs:

  • Your logo
  • Extension name
  • A one-line value prop
  • Your primary brand color as background

Description: Not visual, but your brand voice matters here too. Keep it scannable:

Code
🔒 Privacy-first tab manager for power users.

✅ Group tabs by project
✅ Auto-close inactive tabs after 30 minutes
✅ Keyboard shortcuts for everything
✅ Zero data collection — runs 100% locally

Works with Chrome 120+ | 50,000+ users

The popup is your main interface. It's constrained: typically 300-400px wide and 400-600px tall. Every pixel matters.

Code
<!-- popup.html -->
<div class="w-[360px] bg-background text-foreground">
  <!-- Header: branded but compact -->
  <header class="flex items-center gap-2 px-4 py-3
                 border-b border-border">
    <img src="icons/icon-32.png" alt="" class="w-5 h-5" />
    <span class="font-semibold text-sm">ExtensionName</span>
    <button class="ml-auto text-muted-foreground hover:text-foreground">
      <!-- settings icon -->
    </button>
  </header>
 
  <!-- Content -->
  <main class="px-4 py-3 space-y-3">
    <!-- Your extension's UI -->
  </main>
 
  <!-- Footer: subtle branding -->
  <footer class="px-4 py-2 border-t border-border
                 text-xs text-muted-foreground text-center">
    ExtensionName v1.2.0
  </footer>
</div>

Popup branding rules:

  1. Minimal header. Small logo + name. No large hero section. Space is precious.
  2. Consistent with your store listing colors. If your store icon is blue, your popup accents should be blue.
  3. Native-feeling. Your popup should feel like part of the browser, not a tiny web page. Use system-like fonts, subtle borders, compact spacing.
  4. No scroll on the default view. The most common actions should be visible without scrolling.
Code
/* popup.css — keep it tight */
:root {
  --primary: #6366f1;
  --primary-foreground: #ffffff;
  --background: #ffffff;
  --foreground: #0f172a;
  --muted: #f1f5f9;
  --muted-foreground: #64748b;
  --border: #e2e8f0;
  font-family: system-ui, -apple-system, sans-serif;
  font-size: 14px;
}
 
button {
  font-size: 13px;
  padding: 6px 12px;
  border-radius: 6px;
}

Use system-ui for popup fonts. It matches the browser's native UI and feels less foreign. Save your custom brand fonts for the Web Store listing and marketing site.

Dark mode: match the browser

Chrome has light and dark themes. Your extension should respect that. Users who run dark Chrome will be irritated by a blinding white popup.

Code
@media (prefers-color-scheme: dark) {
  :root {
    --primary: #818cf8;
    --background: #1e293b;
    --foreground: #f1f5f9;
    --muted: #334155;
    --muted-foreground: #94a3b8;
    --border: #475569;
  }
}

Dark mode considerations for extensions:

  • Follow prefers-color-scheme rather than adding a toggle. Match what the user already chose for their browser.
  • Desaturate your primary color slightly in dark mode. Full saturation is harsh on dark backgrounds.
  • Test on both macOS and Windows. Dark mode rendering differs between platforms.
  • Your toolbar icon needs to work on both light and dark browser toolbars. Test this explicitly.

For an in-depth look at building dark mode into your brand system, the key is defining both palettes up front so you're not retrofitting later.

Content script styling

If your extension injects UI into web pages (content scripts), you have additional branding challenges:

Code
/* content-script.css — scope everything to avoid conflicts */
#my-extension-root {
  all: initial;
  font-family: system-ui, sans-serif;
  font-size: 14px;
  color: #0f172a;
}
 
#my-extension-root * {
  box-sizing: border-box;
}
 
#my-extension-root .ext-button {
  background: #6366f1;
  color: white;
  border: none;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
}

Critical: Use all: initial on your root container to prevent the host page's CSS from bleeding into your extension's UI. Then scope all your brand styles inside that container.

Your injected UI should be minimal and recognizable. Users need to immediately know "this is from my extension, not from the website." Your brand color and icon serve as that identification marker.

Building trust in the Web Store

The Chrome Web Store is full of sketchy extensions. Users are (rightly) cautious. Your branding needs to overcome that trust deficit. As a developer building a browser extension, your visual identity is your trust proxy.

Trust signals for extensions:

  • Professional icon and screenshots (not pixelated, not generic)
  • Consistent visual identity between store listing and actual popup
  • Clear privacy information in the description
  • A real website linked in the store listing
  • Responsive to reviews (visible in the review section)

The logo and brand system you use for your extension should extend to your marketing site. When users click through to your website and see the same colors and logo, that consistency builds confidence.

Options page branding

Your extension's options/settings page has more room than the popup. Use it.

Code
<div class="max-w-2xl mx-auto px-6 py-8">
  <div class="flex items-center gap-3 mb-8">
    <img src="icons/icon-48.png" alt="" class="w-10 h-10" />
    <div>
      <h1 class="text-xl font-bold text-foreground">ExtensionName</h1>
      <p class="text-sm text-muted-foreground">Settings</p>
    </div>
  </div>
 
  <div class="space-y-6">
    <section class="border border-border rounded-lg p-4">
      <h2 class="font-semibold text-foreground mb-3">General</h2>
      <!-- Settings controls -->
    </section>
  </div>
</div>

The options page can use your full brand typography and have more visual breathing room. It's also where you can link to your website, docs, and support — extending your brand beyond the browser.

The extension branding checklist

  • Icon at 16px, 32px, 48px, 128px (all crisp and recognizable)
  • Store screenshots (1280x800) with annotations
  • Promotional tile (440x280) with logo + value prop
  • Popup UI with branded header, compact layout
  • Dark mode via prefers-color-scheme
  • Content script styles scoped with all: initial
  • Options page with full brand treatment
  • Consistent colors between store listing and actual UI

Get it done in 60 seconds

Chrome extension branding is fiddly. Multiple icon sizes, two color modes, store assets, scoped CSS — it's a lot of surface area for a "small" project.

OneMinuteBranding generates your complete brand system — logo, icon variants, color palette for light and dark mode, CSS variables — in one shot. Describe your Chrome extension, get everything you need, and get back to building features.

$49, one-time. Way cheaper than the installs you're losing to extensions that simply look more professional than yours.

Y
Yann Lephay@YannBuilds

Vibe coder & Indie Hacker. Building tools to help devs ship faster. Creator of OneMinuteBranding.

Ready to create your brand?

Generate a complete brand system with Tailwind config in 60 seconds.

Generate your brand