Skip to content

API > wxt/utils/content-script-ui/shadow-root > ShadowRootContentScriptUiOptions

Interface: ShadowRootContentScriptUiOptions<TMounted> ​

Options shared by integrated, shadow root, and iframe UIs.

position selects "inline", "overlay", or "modal" positioning. zIndex controls the positioning element's stacking level for overlays and modals. alignment is available for overlays.

Contents ​

Type parameters ​

▪ TMounted

Properties ​

alignment ​

alignment?: ContentScriptOverlayAlignment

When using position: "overlay", the mounted element is 0px by 0px in size. Alignment specifies which corner is aligned with that 0x0 pixel space.

Visualization of alignment options

Default ​

ts
'top-left'

Source ​

packages/wxt/src/utils/content-script-ui/types.ts:52


anchor ​

anchor?: null | string | Element | () => undefined | null | string | Element

A CSS selector, XPath expression, element, or function that returns one of the three. Along with append, the anchor dictates where in the page the UI will be added.

Source ​

packages/wxt/src/utils/content-script-ui/types.ts:105


append ​

append?: ContentScriptAppendMode | (anchor, ui) => void

In combination with anchor, decide how to add the UI to the DOM.

  • "last" (default) - Add the UI as the last child of the anchor element
  • "first" - Add the UI as the first child of the anchor element
  • "replace" - Replace the anchor element with the UI.
  • "before" - Add the UI as the sibling before the anchor element
  • "after" - Add the UI as the sibling after the anchor element
  • (anchor, ui) => void - Customizable function that let's you add the UI to the DOM

Source ​

packages/wxt/src/utils/content-script-ui/types.ts:122


css ​

css?: string

Custom CSS text to apply to the UI. If your content script imports/generates CSS and you've set cssInjectionMode: "ui", the imported CSS will be included automatically. You do not need to pass those styles in here. This is for any additional styles not in the imported CSS.

Source ​

packages/wxt/src/utils/content-script-ui/shadow-root.ts:175


inheritStyles ​

inheritStyles?: boolean

By default, WXT adds all: initial to the shadow root before the rest of your CSS. This resets any inheritable CSS styles that normally pierce the Shadow DOM.

WXT resets everything but:

  • rem Units: they continue to scale based off the webpage's HTML font-size.
  • CSS Variables/Custom Properties: CSS variables defined outside the shadow root can be accessed inside it.
  • @font-face Definitions: Fonts defined outside the shadow root can be used inside it.

To disable this behavior and inherit styles from the webpage, set inheritStyles: true.

Default ​

ts
false

Source ​

packages/wxt/src/utils/content-script-ui/shadow-root.ts:213


isolateEvents ​

isolateEvents?: boolean | string[]

When enabled, event.stopPropagation will be called on events trying to bubble out of the shadow root.

  • Set to true to stop the propagation of a default set of events, ["keyup", "keydown", "keypress"]
  • Set to an array of event names to stop the propagation of a custom list of events

Source ​

packages/wxt/src/utils/content-script-ui/shadow-root.ts:192


mode ​

mode?: "closed" | "open"

ShadowRoot's mode.

Default ​

ts
'open'

See ​

https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/mode

Source ​

packages/wxt/src/utils/content-script-ui/shadow-root.ts:182


name ​

name: string

The name of the custom component used to host the ShadowRoot. Must be kebab-case.

Source ​

packages/wxt/src/utils/content-script-ui/shadow-root.ts:167


onMount ​

onMount: (uiContainer, shadow, shadowHost) => TMounted

Callback executed when mounting the UI. This function should create and append the UI to the uiContainer element. It is called every time ui.mount() is called.

Optionally return a value that can be accessed at ui.mounted or in the onRemove callback.

Parameters ​

▪ uiContainer: HTMLElement

▪ shadow: ShadowRoot

▪ shadowHost: HTMLElement

Source ​

packages/wxt/src/utils/content-script-ui/shadow-root.ts:222


onRemove ​

onRemove?: (mounted) => void

Callback called before the UI is removed from the webpage. Use to cleanup your UI, like unmounting your Vue or React apps.

Note that this callback is called only when ui.remove is called - that means it is not called automatically when the anchor is removed, unless you use autoMount.

Parameters ​

▪ mounted: undefined | TMounted

Source ​

packages/wxt/src/utils/content-script-ui/types.ts:24


position ​

position: "inline" | "overlay" | "modal"

Choose between "inline", "overlay", or "modal" positioning.

Source ​

packages/wxt/src/utils/content-script-ui/types.ts:50


zIndex ​

zIndex?: number

The z-index used on the positioning element. Set to a positive number to show your UI over website content.

Source ​

packages/wxt/src/utils/content-script-ui/types.ts:51


Generated using typedoc-plugin-markdown and TypeDoc