WYSIWYG for Experience Cloud

Restyle your Salesforce portal by pointing at it

OmniStyler is a Chrome side panel for Experience Cloud. Click any element on your live portal, change it visually, and collect every edit into one clean stylesheet for Head Markup. No view-source, no guessing at selectors, no day-long CSS loop.

Free, no account. Edits stay in your browser until you choose to sync. Works on Aura and LWR portals, OmniScripts, and FlexCards.

No Salesforce login No org connection Free edits stay local Optional site access
https://yourcompany.my.site.com/partners/s/dashboard
HomeCasesReports
picked

Open cases

Your team has 12 cases awaiting review this week.

12Open 4Escalated 31Closed
Try it: restyle this card .siteforceContentArea [data-test-id="case-summary"]
Brand Corners 12px

            
Pick card Stable selector Export CSS

This is the loop. In the real extension you pick any element on your live, authenticated portal and the stylesheet builds itself.

Watch the actual loop

The mock above is a quick feel for the controls. The product proof is the live side panel: pick a portal element, see the selector reasoning, restyle it, merge the CSS, and hand off deployment.

Selector reasoning is visible

The panel shows the resolved chain, stable anchors, selector options, and live match count before a rule is saved.

Merge is part of the workflow

Existing Head Markup CSS is parsed, matching rules are updated, new rules append, and conflicts are reported before deployment.

Handoff is deploy-ready

The account workbench can turn a theme into a Salesforce CLI project with static resources, metadata, head markup, and README.

From first click to live portal

Four stages, one tool. The free editor handles the loop on the left; your OmniStyler account carries the theme through review, merge, and deployment.

1

Pick

Click any element, even inside shadow DOM. OmniStyler ranks stable selectors anchored on data-test-id and ignores the class names Salesforce churns every release.

2

Style

Grouped visual controls for color, spacing, type, borders, and effects. Every change applies to the live page instantly, with 50 steps of undo.

3

Merge

Paste the portal's existing Head Markup CSS and OmniStyler merges your edits into it, preserving unrelated rules and flagging conflicts before they bite.

4

Ship

Copy one head-ready stylesheet, or generate a Salesforce CLI deploy kit with static resources, metadata, and instructions. Test in sandbox, then go live.

OmniStyler vs the manual CSS loop

What used to be a full day of view-source, blind CSS, chat snippets, deploy-to-check, and rework is now a visual loop that ends in one reviewable stylesheet.

ProblemManual / generic CSS workflowOmniStyler workflow
Finding selectorsInspect DOM, copy unstable classes, guess what survives the next Salesforce release.Ranked selectors anchored on stable data attributes and Salesforce-aware structural wrappers.
Checking scopeDeploy or paste CSS, reload, then discover the selector touched too much or nothing at all.Live match count and Test selector outline the exact affected elements before shipping.
Existing CSSAppend more rules and hope cascade order beats the old Head Markup.Merge updates matching rules, preserves unrelated CSS, and reports specificity or important conflicts.
Developer handoffLoose snippets in chat or a pastebin with missing placement context.Head-ready CSS or a Salesforce CLI deploy kit with static resources, metadata, and README.

Built for the parts that hurt

Experience Cloud styling breaks on selector churn, hidden CSS conflicts, and vague handoffs. Every feature here exists because one of those burned a real project.

Selectors

Selectors that survive releases

Anchored on data-test-id, scoped to stable wrappers like .siteforceContentArea, with !important added only when the runtime forces inline styles. Your theme outlives the next Salesforce release.

Merge

Merges with your existing CSS

Real CSS parsing, not string matching. Your edits update matching rules, new ones append cleanly, and a conflict report shows where existing higher-specificity rules would still win.

Themes

Named themes and versions

Save holiday, campaign, and rebrand variants per portal. Move them through draft, review, approved, and archived. Every sync keeps a version you can diff and restore.

Teams

One theme, whole team

Share portals with admins, designers, and developers. Roles control who edits, the active theme loads automatically for everyone, and review notes travel with the work.

Deploy

Deploy kit, not loose snippets

One click turns a theme into a Salesforce CLI project: static resource, metadata, head markup, and a README your developer can run without asking questions.

No extension?

Web studio fallback

Company blocks browser extensions? The browser-based studio generates scoped portal CSS, OmniScript styling, design tokens, and the same deploy kit, no install required.

OmniScript styling, explained

Salesforce gives you three places to put styling, and they do different jobs. OmniStyler generates a matching output for each one.

Site level

Experience Cloud CSS

Lives in the site itself: the Theme CSS editor, Head Markup, or a linked static resource. It styles the portal shell (header, navigation, page layout) and affects only that one site.

Script level

OmniScript stylesheet

A plain CSS file uploaded as a static resource and referenced in OmniScript Setup under Custom Lightning Stylesheet File Name. It travels with the script everywhere it renders, including the Builder preview.

No CSS

Design tokens

Variable lines pasted into Lightning Design System Design Tokens in OmniScript Setup, such as --lwc-colorBrand: #0176d3;. Aura reads --lwc-, LWR reads --dxp-g-, and SLDS 2 themes read --slds-g- hooks.

Which one when

  • Styling the page around the script (header, navigation, layout): Experience Cloud CSS, in the site.
  • Styling the script itself, consistently across every page and site it runs on: the OmniScript stylesheet static resource.
  • Brand colors, spacing, and radius with zero CSS: design tokens in OmniScript Setup. Salesforce does not support them in Safari, so keep the stylesheet as a fallback.
  • On LWR sites, components render in shadow DOM and site-level CSS often cannot reach inside the OmniScript. Lead with design tokens and the OmniScript stylesheet there, and keep site CSS for the shell.
  • Newport theme or OmniOut: use Custom Newport Stylesheet File Name and the Newport Design System instead of the Lightning stylesheet field.

Built for every portal workflow

Some teams have one portal. Others run seasonal campaigns on it, or carry an agency book of client portals. The live editing stays simple; organization, review, history, and deployment live in the account.

Salesforce admins

Restyle the live portal yourself instead of logging a ticket. Copy head-ready CSS and test it in a sandbox the same afternoon.

One portal, many styles

Holiday, campaign, dark-mode, and rebrand variants under one portal. Approve one, archive the rest, keep every version.

Internal teams

Admins, designers, and developers share themes with roles, active-theme auto-load, version history, and clean deployment handoff.

Freelancers

Keep each client portal separated, duplicate concepts, export review previews, and hand off clean CSS without sharing your account.

Agencies and SI partners

One account, many client portals. Reusable base themes, client approval notes, team roles, and deploy kits your delivery team can run.

Developers

Stable selectors, merge conflict reports, head-ready CSS, and a Salesforce CLI project instead of loose snippets pasted into chat.

For partners and agencies

One repeatable loop for every client portal

Agencies do not need another one-off CSS generator. They need a way to reuse base themes, separate client work, review changes without Salesforce access, and hand developers a deploy kit they can run cold.

Client workspacesKeep portals, themes, notes, and status separated by customer.
Reusable base themesDuplicate a proven style and adapt it instead of rebuilding from scratch.
Review handoffExport standalone previews and lifecycle notes for approval.
Delivery handoffGive the team a deploy kit instead of a CSS pastebin.

Launch pricing

The editor is free, full stop. Paid plans cover the account layer: cloud sync, theme libraries, review workflow, version history, team access, and deployment.

Free

The full editing loop, on your machine.

$0

  • Live visual editor, extension and web studio
  • CSS merge with conflict report
  • Copy and download head-ready CSS
  • No account required

Team

For a company managing portals together.

$99 / month

  • 3 included seats
  • Shared portal library
  • Roles and active-theme auto-load
  • Draft, review, approved, archived states

Agency

For partners managing many client portals.

$199 / month

  • 10 included seats
  • Client workspaces
  • Review preview exports
  • Theme bundle import and export

Launch offer: every paid feature is free for signed-in users until July 31, 2026. These are launch prices. Enterprise plans for procurement, security review, SSO, and high portal counts are available on request. See full pricing and FAQ.

Get the extension

Available on the Chrome Web Store

Install OmniStyler from the Chrome Web Store, open your Experience Cloud portal, and allow site access for the portal domain you are styling.

Install from Chrome Web Store

Extensions blocked by IT? The web studio covers CSS generation, merge, and the deploy kit with no install at all.

Need the packaged build for local testing? Download the zip.

Need security details? See permissions, data handling, and procurement notes.

Runs locally until you choose account sync. Never asks for Salesforce credentials. Requests site access only for the portal you are styling.
  1. Install OmniStyler from the Chrome Web Store.
  2. Open your Salesforce Experience Cloud portal.
  3. Click the OmniStyler icon and allow access on that site.
  4. Click Pick element. You are styling.

The next portal restyle takes fifteen minutes

Free to start, nothing leaves your browser, and the output is ready for Head Markup.

Install the free extension