Typeform/embed-react is Typeform official embed library to embed typeforms in your React project.
Requirements:
Add the library to your project using your favourite package manager:
yarn add @typeform/embed-react
or
npm install @typeform/embed-react --save
Import the component you want to use. Then render it in your React app.
For example to embed your typeform as a Widget
.
import { Widget } from '@typeform/embed-react'
const MyComponent = () => {
return <Widget id="<form-id>" style={{ width: '50%' }} className="my-form" />
}
The PopupButton
and SliderButton
components provide a button to open the embed:
import { PopupButton } from '@typeform/embed-react'
const MyComponent = () => {
return (
<PopupButton id="<form-id>" style={{ fontSize: 20 }} className="my-button">
click to open form in popup
</PopupButton>
)
}
You can render Popover
and Slider
components anywhere in your app (preferably at the end of the page):
import { Sidetab } from '@typeform/embed-react'
const MyComponent = () => {
return <Sidetab id="<form-id>" buttonText="click to open" />
}
You can find <form-id>
from the public URL of your form:
https://form.typeform.com/to/<form-id>
Or from admin panel URL:
https://admin.typeform.com/form/<form-id>/*
Pass options as props to the component.
<PopupButton
id="<form-id>"
size={60}
hidden={{
foo: 'Foo Value',
bar: 'Bar Value',
}}
onReady={() => {
console.log('form ready')
}}
enableSandbox
>
click to open
</PopupButton>
If the global __webpack_nonce__
is set, its value will be used for a nonce
attribute on the inline <style>
block. See Github issue #458 for details.
embedRef
For some custom use cases it may be convenient to open the popup programmatically (without the button being clicked).
To do this, pass an embedRef
prop to PopupButton
, SliderButton
, Popover
and Sidetab
components and then use ref.current.open()
to trigger the popup to open.
Example:
const ref = useRef()
const openPopup = () => ref.current?.open()
// ...
<PopupButton
id="<form-id>"
embedRef={ref}
>
click to open
</PopupButton>
Learn more about Vanilla Embed Library. Since React Embed Library is just a React wrapper for Vanilla Embed Library, all concepts apply here as well.
You can:
If you want to create a form so you can embed it, sign up for a Typeform account or head to our documentation for the Create API.