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.

Client-side custom validation

You can enforce your own rules directly in JavaScript:

  • Event-based client-side 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.

  • Expression-based client-side validation
    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

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
    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.

  • Expressions with async functions
    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.

Both approaches keep your business rules secure, because respondents cannot bypass or disable server-side validation.

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:

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:

  • Light
  • Dark
  • Contrast
  • Survey Creator 2020

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

figma
ui kit
validation
custom inputs
custom CSS

Your cookie settings

We use cookies to make your browsing experience more convenient and personal. Some cookies are essential, while others help us analyse traffic. Your personal data and cookies may be used for ad personalization. By clicking “Accept All”, you consent to the use of all cookies as described in our Terms of Use and Privacy Statement. You can manage your preferences in “Cookie settings.”

Your renewal subscription expires soon.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.

Your renewal subscription has expired.

Since the license is perpetual, you will still have permanent access to the product versions released within the first 12 month of the original purchase date.

If you wish to continue receiving technical support from our Help Desk specialists and maintain access to the latest product updates, make sure to renew your subscription by clicking the "Renew" button below.