Survey form

React Survey component

React Survey forms built with Bootstrap 5 and HTML. A variety of pre-made surveys, including multiple choice, questionnaire, checkbox survey, modal survey & more.


Basic examples

Single choice survey

Allow respondents to select a single option from a list of answers that you define using radio buttons.

How satisfied are you with our product?

        
            
        import React from "react";
        import { MDBBtn, MDBCol, MDBContainer, MDBRadio, MDBRow } from "mdb-react-ui-kit";
        
        export default function Basic() {
          return (
            <MDBContainer>
              <MDBRow className="justify-content-center">
                <MDBCol size="5">
                  <form className="bg-white mt-3" action="">
                    <p className="fw-bold">How satisfied are you with our product?</p>
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault1"
                      label="Option 1"
                      defaultChecked
                    />
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault2"
                      label="Option 2"
                    />
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault3"
                      label="Option 3"
                    />
                  </form>
                  <div className="text-end">
                    <MDBBtn>Submit</MDBBtn>
                  </div>
                </MDBCol>
              </MDBRow>
            </MDBContainer>
          );
        }
        
        
        
    

Multiple choice / Checkbox survey

Allow respondents to select one or more options from a list of answers that you define using checkboxes.

Choose one or more options

        
            
        import React from "react";
        import { MDBBtn, MDBCheckbox, MDBCol, MDBContainer, MDBRow } from "mdb-react-ui-kit";
        
        export default function MultipleChoice() {
          return (
            <MDBContainer>
              <MDBRow className="justify-content-center">
                <MDBCol size="5">
                  <form className="bg-white mt-3" action="">
                    <p className="fw-bold">How satisfied are you with our product?</p>
                    <MDBCheckbox
                      name="flexRadioDefault"
                      id="flexRadioDefault1"
                      label="Option 1"
                      defaultChecked
                    />
                    <MDBCheckbox
                      name="flexRadioDefault"
                      id="flexRadioDefault2"
                      label="Option 2"
                    />
                    <MDBCheckbox
                      name="flexRadioDefault"
                      id="flexRadioDefault3"
                      label="Option 3"
                    />
                  </form>
                  <div className="text-end">
                    <MDBBtn>Submit</MDBBtn>
                  </div>
                </MDBCol>
              </MDBRow>
            </MDBContainer>
          );
        }
        
        
        
    

Survey within a card

You can put your survey inside of a card to make it stand out.

Your opinion matters

Have some ideas how to improve our product? Give us your feedback.


Your rating:

        
            
        import React from "react";
        import {
          MDBBtn,
          MDBCard,
          MDBCardBody,
          MDBCardFooter,
          MDBCol,
          MDBContainer,
          MDBIcon,
          MDBRadio,
          MDBRow,
        } from "mdb-react-ui-kit";
        
        export default function Card() {
          return (
            <MDBContainer>
              <MDBRow className="justify-content-center">
                <MDBCol size="6">
                  <MDBCard>
                    <MDBCardBody>
                      <div className="text-center">
                        <MDBIcon far icon="file-alt mb-3 text-primary" size="4x" />
                        <p>
                          <strong>Your opinion matters</strong>
                        </p>
                        <p>
                          Have some ideas how to improve our product?
                          <strong>Give us your feedback.</strong>
                        </p>
                      </div>
        
                      <hr />
        
                      <form className="px-4" action="">
                        <p className="text-center">
                          <strong>Your rating:</strong>
                        </p>
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault1"
                          label="Very good"
                          defaultChecked
                        />
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault2"
                          label="Good"
                        />
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault3"
                          label="Medicore"
                        />
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault4"
                          label="Bad"
                        />
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault5"
                          label="Very bad"
                        />
                      </form>
                    </MDBCardBody>
                    <MDBCardFooter>
                      <div className="text-end">
                        <MDBBtn>Submit</MDBBtn>
                      </div>
                    </MDBCardFooter>
                  </MDBCard>
                </MDBCol>
              </MDBRow>
            </MDBContainer>
          );
        }
        
        
        
    

Customer satisfaction survey

Customer satisfaction questionnaires are usually used to gather reviews, and sometimes at the end of a payment process.

We recommend you to add a textarea input to your survey, to let your users send more in-depth feedback.

Feedback request

Your opinion matters

Have some ideas how to improve our product? Give us your feedback.


Your rating:

What could we improve?

        
            
        import React from "react";
        import {
          MDBBtn,
          MDBCard,
          MDBCardBody,
          MDBCardFooter,
          MDBCol,
          MDBContainer,
          MDBIcon,
          MDBRadio,
          MDBRow,
          MDBTextArea,
        } from "mdb-react-ui-kit";
        
        export default function CardWithFeedback() {
          return (
            <MDBContainer>
              <MDBRow className="justify-content-center">
                <MDBCol size="6">
                  <MDBCard>
                    <MDBCardBody>
                      <div className="text-center">
                        <MDBIcon far icon="file-alt mb-3 text-primary" size="4x" />
                        <p>
                          <strong>Your opinion matters</strong>
                        </p>
                        <p>
                          Have some ideas how to improve our product?
                          <strong>Give us your feedback.</strong>
                        </p>
                      </div>
        
                      <hr />
        
                      <form className="px-4" action="">
                        <p className="text-center">
                          <strong>Your rating:</strong>
                        </p>
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault1"
                          label="Very good"
                          className="mb-2"
                          defaultChecked
                        />
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault2"
                          label="Good"
                          className="mb-2"
                        />
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault3"
                          label="Medicore"
                          className="mb-2"
                        />
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault4"
                          label="Bad"
                          className="mb-2"
                        />
                        <MDBRadio
                          name="flexRadioDefault"
                          id="flexRadioDefault5"
                          label="Very bad"
                          className="mb-2"
                        />
                        <p className="text-center">
                          <strong>What could we improve?</strong>
                        </p>
                        <MDBTextArea className="mb-4" label='Message' id='textAreaExample' rows={4} />
                      </form>
                    </MDBCardBody>
                    <MDBCardFooter>
                      <div className="text-end">
                        <MDBBtn>Submit</MDBBtn>
                      </div>
                    </MDBCardFooter>
                  </MDBCard>
                </MDBCol>
              </MDBRow>
            </MDBContainer>
          );
        }
        
        
        
    


Stepper survey

Survey that displays content as a process with defined by user milestones. Check out more in the stepper documentation.

  • 1 step1
  • 2 step2
  • 3 step3
        
            
        import React from 'react';
        import {
          MDBStepper,
          MDBStepperStep,
          MDBInput,
          MDBTextArea,
          MDBBtn,
        } from 'mdb-react-ui-kit';
        
        export default function App() {
          return (
            <MDBStepper type='vertical'>
              <MDBStepperStep headIcon={1} headText='step 1' itemId={1}>
                <MDBInput
                  wrapperClass='mb-4'
                  type='email'
                  label='Your e-mail'
                  required
                />
              </MDBStepperStep>
        
              <MDBStepperStep headIcon={2} headText='step 2' itemId={2}>
                <MDBTextArea label='Your feedback' id='textAreaExample' rows={4} />
              </MDBStepperStep>
        
              <MDBStepperStep headIcon={3} headText='step 3' itemId={3}>
                <MDBBtn>Submit</MDBBtn>
              </MDBStepperStep>
            </MDBStepper>
          );
        }
        
        
    

Rating survey

Survey in which you give the user an option to rate using a star rating or different icons.

How do you rate customer support:

What could we improve?

        
            
        import React from "react";
        import {
          MDBBtn,
          MDBCard,
          MDBCardBody,
          MDBCardFooter,
          MDBCol,
          MDBContainer,
          MDBIcon,
          MDBRow,
          MDBTextArea,
        } from "mdb-react-ui-kit";
        
        export default function Rating() {
          return (
            <MDBContainer>
              <MDBRow className="justify-content-center">
                <MDBCol size="3">
                  <MDBCard className="mt-5">
                    <MDBCardBody>
                      <form action="">
                        <p className="text-center">
                          <strong>How do you rate customer support:</strong>
                        </p>
        
                        <div className="d-flex justify-content-center my-4">
                          <MDBIcon far icon="star" size="lg" className="text-primary mx-1" />
                          <MDBIcon far icon="star" size="lg" className="text-primary mx-1" />
                          <MDBIcon far icon="star" size="lg" className="text-primary mx-1" />
                          <MDBIcon far icon="star" size="lg" className="text-primary mx-1" />
                          <MDBIcon far icon="star" size="lg" className="text-primary mx-1" />
                        </div>
        
                        <p className="text-center">
                          <strong>What could we improve?</strong>
                        </p>
                        <MDBTextArea label="Your feedback" rows={4} />
                      </form>
                    </MDBCardBody>
                    <MDBCardFooter>
                      <div className="text-end">
                        <MDBBtn>Submit</MDBBtn>
                      </div>
                    </MDBCardFooter>
                  </MDBCard>
                </MDBCol>
              </MDBRow>
            </MDBContainer>
          );
        }
        
        
        
    

Linear scale survey

Survey with horizontaly aligned radio buttons in a form of a scale.

How do you rate customer support

Bad
Excellent
        
            
        import React from "react";
        import { MDBBtn, MDBContainer, MDBRadio } from "mdb-react-ui-kit";
        
        export default function Scale() {
          return (
            <MDBContainer className="d-flex justify-content-center">
              <div className="mx-0 mx-sm-auto">
                <form className="bg-white mt-3" action="">
                  <p className="fw-bold text-center">
                    How satisfied are you with our product?
                  </p>
        
                  <div className="text-center">
                    <div className="d-inline mx-3">Bad</div>
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault1"
                      label="1"
                      inline
                      defaultChecked
                    />
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault2"
                      label="2"
                      inline
                      defaultChecked
                    />
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault3"
                      label="3"
                      inline
                      defaultChecked
                    />
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault4"
                      label="4"
                      inline
                      defaultChecked
                    />
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault5"
                      label="5"
                      inline
                      defaultChecked
                    />
                    <MDBRadio
                      name="flexRadioDefault"
                      id="flexRadioDefault6"
                      label="6"
                      inline
                      defaultChecked
                    />
                    <div className="d-inline mx-3">Excellent</div>
                  </div>
                </form>
                <div className="text-end">
                  <MDBBtn>Submit</MDBBtn>
                </div>
              </div>
            </MDBContainer>
          );
        }
        
        
        
    

Ranking survey

Ranking survey built using a buttons group.

How likely if it that you would recommend MDB to a friend or colleague?

        
            
        import React from "react";
        import { MDBBtn, MDBBtnGroup, MDBContainer } from "mdb-react-ui-kit";
        
        export default function Ranking() {
          return (
            <MDBContainer className="d-flex justify-content-center">
              <div className="mx-0 mx-sm-auto">
                <p className="fw-bold text-center">
                  How likely if it that you would recommend MDB to a friend or
                  colleague?
                </p>
        
                <MDBBtnGroup aria-label="Basic example" className="me-2">
                  <MDBBtn color="light">0</MDBBtn>
                  <MDBBtn color="light">2</MDBBtn>
                  <MDBBtn color="light">3</MDBBtn>
                  <MDBBtn color="light">4</MDBBtn>
                  <MDBBtn color="light">5</MDBBtn>
                  <MDBBtn color="light">6</MDBBtn>
                  <MDBBtn color="light">7</MDBBtn>
                  <MDBBtn color="light">8</MDBBtn>
                  <MDBBtn color="light">9</MDBBtn>
                  <MDBBtn color="light">10</MDBBtn>
                </MDBBtnGroup>
                <div className="text-end mt-3">
                  <MDBBtn>Submit</MDBBtn>
                </div>
              </div>
            </MDBContainer>
          );
        }
        
        
        
    

Range survey

Slide to choose the appropriate number that can represent the score on a range slider.

Drag the slider to select the number

        
            
        import React from "react";
        import { MDBBtn, MDBContainer, MDBRange } from "mdb-react-ui-kit";
        
        export default function Range() {
          return (
            <MDBContainer style={{ maxWidth: "800px" }}>
              <div className="mx-0 mx-sm-auto">
                <p className="fw-bold text-center">
                  Drag the slider to select the number
                </p>
        
                <label htmlFor="customRange3" className="form-label">
                  Bad
                </label>
                <label htmlFor="customRange3" className="form-label float-end">
                  Excellent
                </label>
        
                <MDBRange min="0" max="6" step="1" id="customRange3" />
        
                <div className="text-end mt-3">
                  <MDBBtn>Submit</MDBBtn>
                </div>
              </div>
            </MDBContainer>
          );
        }