Portal

A component that renders its children in a portal, preventing layout issues in complex UI structures.

Overview

The Portal component is a utility component that renders its children in a portal, preventing layout issues in complex UI structures. This component is used for the various Bits UI component that have a Portal sub-component.

Usage

Default behavior

By default, the Portal component will render its children in the body element.

	<script lang="ts">
  import { Portal } from "bits-ui";
</script>
 
<Portal>
  <div>This content will be portalled to the body</div>
</Portal>

Custom target

You can use the to prop to specify a custom target element or selector to render the content to.

	<script lang="ts">
  import { Portal } from "bits-ui";
</script>
 
<div id="custom-target"></div>
 
<div>
  <Portal to="#custom-target">
    <div>This content will be portalled to the #custom-target element</div>
  </Portal>
</div>

Disable

You can use the disabled prop to disable the portal behavior.

	<script lang="ts">
  import { Portal } from "bits-ui";
</script>
 
<Portal disabled>
  <div>This content will not be portalled</div>
</Portal>

Overriding the default target

The default target can modified using the defaultPortalTo prop of the BitsConfig component.

This will change the default target for all Portal components within its scope.

API Reference

Portal

Renders the children to a different location in the DOM.

Property Details
to
disabled
children