## **SurveyJS** is a JavaScript Survey and Form Library.

**SurveyJS** is a modern way to add surveys and forms to your website. It has versions for angular2+, jQuery, knockout, react and vue.

[![Build Status](https://travis-ci.org/surveyjs/surveyjs.svg?branch=master)](https://travis-ci.org/surveyjs/surveyjs) [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](LICENSE)
<a href="https://github.com/DevExpress/testcafe">
<img alt="Tested with TestCafe" src="https://img.shields.io/badge/tested%20with-TestCafe-2fa4cf.svg">
</a>

## Documentation

[SurveyJS Library Documentation](https://surveyjs.io/Documentation/Library/)

## Live Examples

[SurveyJS Library Live Examples](https://surveyjs.io/Examples/Library/)

## Visual Survey / Form Builder

[Build your Survey or Form now](https://surveyjs.io/survey/Builder/)

Visual Editor sources are [here](https://github.com/surveyjs/editor)

## More info about SurveyJS

![alt tag](https://cloud.githubusercontent.com/assets/22315929/22462339/ed33f60a-e7bd-11e6-942b-72882e6bf1db.gif)

**SurveyJS** is the most feature-rich Survey / Form Library available at the current moment. It can be easily customized and extended to suit your needs.

## Main Features

### A lot of question types with a lot of built-in functionalities.

* [Text Question](https://surveyjs.io/Examples/Library/?id=questiontype-text)
* [Radigroup Question](https://surveyjs.io/Examples/Library/?id=questiontype-radiogroup)
* [Dropdown Question](https://surveyjs.io/Examples/Library/?id=questiontype-dropdown)
* [Checkboxes Question](https://surveyjs.io/Examples/Library/?id=questiontype-checkbox)
* [Boolean Question](https://surveyjs.io/Examples/Library/?id=questiontype-boolean)
* [Matrix Question](https://surveyjs.io/Examples/Library/?id=questiontype-matrix)
* [Matrix Rubric Question](https://surveyjs.io/Examples/Library/?id=questiontype-matrix-rubric)
* [Matrix Dropdown Question](https://surveyjs.io/Examples/Library/?id=questiontype-matrixdropdown)
* [Matrix Dynamic Question](https://surveyjs.io/Examples/Library/?id=questiontype-matrixdynamic)
* [Multiple Text Question](https://surveyjs.io/Examples/Library/?id=questiontype-multipletext)
* [Rating Question](https://surveyjs.io/Examples/Library/?id=questiontype-rating)
* [Comment Question](https://surveyjs.io/Examples/Library/?id=questiontype-comment)
* [Html Question](https://surveyjs.io/Examples/Library/?id=questiontype-html)
* [Files uploading Question](https://surveyjs.io/Examples/Library/?id=questiontype-file)
* [Panel Container](https://surveyjs.io/Examples/Library/?id=questiontype-panel)
* [Panel Dynamic Question](https://surveyjs.io/Examples/Library/?id=questiontype-paneldynamic)
* [Expression Question](https://surveyjs.io/Examples/Library/?id=questiontype-expression)
* [Support for third-party popular UI widgets](https://surveyjs.io/Examples/Library/?id=custom-widget-select2). The custom widgets [GitHub repo](https://github.com/surveyjs/widgets)

### Multiple Pages Support

You may create a very complex forms with a lot of pages, like [this one](https://surveyjs.io/Examples/Library/?id=real-patient-history).

### Dynamically change survey logic and questions content

* [Change questions visibility using logical expressions](https://surveyjs.io/Examples/Library/?id=condition-kids)
* [Create custom functions to use it in expression](https://surveyjs.io/Examples/Library/?id=condition-customfunctions)
* [Filter choices in checkbox, radiogroup and dropdown questions](https://surveyjs.io/Examples/Library/?id=condition-choicesVisibleIf)
* [Filter rows and columns in matrix question](https://surveyjs.io/Examples/Library/?id=condition-matrixVisibleIf)
* [Disabled/enabled questions based on logical expressions](https://surveyjs.io/Examples/Library/?id=condition-enable-kids)
* [Questions value validation](https://surveyjs.io/Examples/Library/?id=validators-standard)

### Localization and Multiple language support

* [Localization for over 20 languages](https://surveyjs.io/Examples/Library/?id=survey-localization&platform)
* [Multiple language support in one survey](https://surveyjs.io/Examples/Library/?id=survey-multilanguages)

### Appearance and custom Rendering

* [Seven built-in Themes](https://surveyjs.io/Examples/Library/?id=darkblue-theme)
* [Bootstrap support](https://surveyjs.io/Examples/Library/?id=bootstrap-theme)
* [CSS styles customization](https://surveyjs.io/Examples/Library/?id=survey-cssclasses)
* [API for adding new or changing existing HTML elements](https://surveyjs.io/Examples/Library/?id=survey-afterrender)
* [Render Questions in one line](https://surveyjs.io/Examples/Library/?id=survey-startwithnewline)
* [Markdown support](https://surveyjs.io/Examples/Library/?id=survey-markdown-radiogroup)

### Frequently used functionalities

* [Quiz creating](https://surveyjs.io/Examples/Library/?id=survey-quiz)
* [Show survey or form in the popup window](https://surveyjs.io/Examples/Library/?id=survey-window)
* [Display mode](https://surveyjs.io/Examples/Library/?id=survey-displaymode)
* [Custom navigation](https://surveyjs.io/Examples/Library/?id=survey-customnavigation)
* [Sharing same data between questions](https://surveyjs.io/Examples/Library/?id=survey-shareddata)

### To find out more about the library go

* to the [SurveyJS Library Site](https://surveyjs.io/Library)
* explore the live [Examples](https://www.surveyjs.io/Examples/Library)
* and build a survey or form using [Visual Form Builder](https://surveyjs.io/survey/Builder/)

#### You can use our quickstart repos:

* [Angular CLI](https://github.com/surveyjs/surveyjs_angular_cli)
* [React](https://github.com/surveyjs/surveyjs_react_quickstart)
* [Vue](https://github.com/surveyjs/surveyjs_vue_quickstart)

## License

[MIT license](https://github.com/surveyjs/surveyjs/blob/master/LICENSE)
