Customization
Do you have a Figma design kit for SurveyJS components? ☍
Yes. SurveyJS provides a publicly available Figma design kit that includes all the main components used to build the Survey Creator and Form Library interfaces. It also contains color palettes, icon sets, templates for main screens, and other design assets. You can explore the kit here: https://www.figma.com/@surveyjs
Can I add my own validation rules? ☍
Yes. If the built-in validators don't cover your needs, SurveyJS lets you add custom validation both on the client and server side. You can enforce your own rules directly in JavaScript: Event-based client-side validation Expression-based client-side validation You can also run server-side validation in SurveyJS when you need to check answers against a database, API, or backend logic before accepting submissions. There are two ways to do this: Event-based server-side validation Expressions with async functions Both approaches keep your business rules secure, because respondents cannot bypass or disable server-side validation.Client-side custom validation
Use the onValidateQuestion event to check a value and return an error message if it's invalid. For example, you might require that an email ends with @surveyjs.io or that a number meets a condition. Because this logic lives in your code, respondents can't turn it off. You also decide when it runs - right after typing, when leaving a field, or only at survey completion - via the checkErrorsMode property.
Write a small validator function in JavaScript, register it, and then call it inside survey JSON just like any built-in function. This makes your rules reusable across multiple surveys and easy to maintain.Server-side custom validation
The onServerValidateQuestions event sends answers to your server, where you can confirm them (for example, making sure a country exists). This runs when a user navigates forward or finishes the survey.
Register an asynchronous validator that queries your server in real time, for example to check whether an email or username is available. This approach allows you to run immediate validation while the respondent is still filling out the field.
Can I add custom input fields in SurveyJS? ☍
Yes. SurveyJS lets you go beyond the built-in question types and add your own custom questions. You have a few options: Create a new custom field Extend an existing question type Composite questions Integrate third-party components
Build a completely new input field with custom behaviour.
Start from a built-in question (like Dropdown or Checkbox) and add your own properties or logic.
Combine several inputs into one reusable field (for example, an Address field made of street, city, and zip code).
Use React, Angular, or Vue 3 widgets to plug in specialised inputs.
Can I customize SurveyJS forms with CSS? ☍
Yes. SurveyJS includes many predefined themes (such as Layered, Contrast, and 3D) that you can apply out of the box. Each theme also supports dark mode and a more compact view. You can use multiple themes and set the active one. Themes are based on CSS variables for colors, fonts, and sizes. To create a custom theme, you can modify these CSS variables using the no-code Theme Editor in Survey Creator, export your theme as a JSON object, and apply it in your code. You can also assign your own CSS classes to specific survey elements for better control. For more details, see the Themes & Styles guide.
Can I change the appearance of Survey Creator? Can I apply completely custom branding? ☍
Yes. Survey Creator supports UI themes that control the colors, fonts, and sizes of the tool's interface elements. You can use predefined themes or create your own. Survey Creator comes with four built-in themes: If the predefined themes don't meet your needs, you can create a custom theme with your brand's style and apply it programmatically to Survey Creator. For more details, see the Create a Custom Theme guide.
Send feedback to the SurveyJS team
Need help? Visit our support page