---
title: Theme Customization
product: Form Library
description: Use multiple color pickers to pick out and apply a custom color to each element of your survey UI to make it match your brand's unique identity and design. View a free demo for JavaScript to learn more.
framework: React
source: https://surveyjs.io/form-library/examples/create-custom-ui-theme/reactjs
index: https://surveyjs.io/form-library/examples/overview.md
---

# Theme Customization (React)

## Files

### `public/index.html`

```html
<div id="surveyElement" style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; min-height: 100%; height:100%"></div>
```

### `src/SurveyComponent.jsx`

```js
import React from "react";
import { Model } from "survey-core";
import { Survey } from "survey-react-ui";
import "survey-core/survey-core.min.css";
import "./index.css";
import { json } from "./json";

function SurveyComponent() {
    const survey = new Model(json);
    survey.onComplete.add((sender, options) => {
        console.log(JSON.stringify(sender.data, null, 3));
    });
    survey.data = {
      "qualities": {
        "affordable": 5,
        "does-what-it-claims": 4,
        "better-than-others": 3,
        "easy-to-use": 4
      },
      "satisfaction-score": 4
    };
    return (<Survey model={survey} />);
}

export default SurveyComponent;
```

### `src/index.css`

```css
/* You can add your custom CSS here. */
```

### `src/index.js`

```js
import React from "react";
import { createRoot } from "react-dom/client";
import SurveyComponent from "./SurveyComponent";

const root = createRoot(document.getElementById("surveyElement"));
root.render(<SurveyComponent />);
```

### `src/json.js`

```js
export const json = {
  "elements": [{
    "type": "matrix",
    "name": "qualities",
    "title": "Please indicate if you agree or disagree with the following statements",
    "columns": [{
      "value": 5,
      "text": "Strongly agree"
    }, {
      "value": 4,
      "text": "Agree"
    }, {
      "value": 3,
      "text": "Neutral"
    }, {
      "value": 2,
      "text": "Disagree"
    }, {
      "value": 1,
      "text": "Strongly disagree"
    }],
    "rows": [{
      "value": "affordable",
      "text": "Product is affordable"
    }, {
      "value": "does-what-it-claims",
      "text": "Product does what it claims"
    }, {
      "value": "better-than-others",
      "text": "Product is better than other products on the market"
    },{
      "value": "easy-to-use",
      "text": "Product is easy to use"
    }]
  }, {
    "type": "rating",
    "name": "satisfaction-score",
    "title": "How satisfied are you with our product?",
    "minRateDescription": "Not satisfied",
    "maxRateDescription": "Completely satisfied"
  }, {
    "type": "comment",
    "name": "suggestions",
    "title": "What would make you more satisfied with our product?"
  }]
};
```

### `package.json`

```json
{
  "dependencies": {
    "react": "latest",
    "react-dom": "latest",
    "survey-core": "latest",
    "survey-react-ui": "latest"
  },
  "devDependencies": {
    "react-scripts": "latest"
  }
}
```

## Other Frameworks

- [Angular](https://surveyjs.io/form-library/examples/create-custom-ui-theme/angular.md)
- [Vue 3](https://surveyjs.io/form-library/examples/create-custom-ui-theme/vue3js.md)
- [jQuery](https://surveyjs.io/form-library/examples/create-custom-ui-theme/jquery.md)
- [Vanilla JS](https://surveyjs.io/form-library/examples/create-custom-ui-theme/vanillajs.md)
