Inject custom CSS per domain – works on iOS, iPadOS and desktop browsers.
This script allows injection of CSS on a per‑domain basis and works on iOS/iPadOS Safari (via the native userscript support in Safari 15+), Chrome, Firefox, and all other browsers that support Userscripts.
@match *://*/*
The script runs on every page, giving you full control over which hosts receive CSS.
hostRegex: A regular expression that tests the current hostname (window.location.hostname). css: Plain CSS rules to be injected. Separate rules with newlines; you can use any valid CSS, including media queries and !important. Injection
The helper injectCss creates a style element and appends it to the document head (or the root element if head is missing).
This works in all browsers that support Userscripts, including iOS Safari.
To add a new domain, insert another object into domainCssMap.
Example:
{
hostRegex: /^shop\.example\.com$/i,
css: `
.product-grid { grid-template-columns: repeat(3,1fr) !important; }
`
}
If you want a rule to apply to all sites, add an entry with a regex that always matches, e.g. /^.*$/.
Safari on iOS 15+ supports Userscripts via the built‑in script editor (Settings → Safari → Extensions).
After installing this script in the extension, it will run automatically on every page you visit.