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.
For some custom use cases it may be convenient to open the popup programmatically (without the button being clicked).
To do this, pass a ref 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>"
ref={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.