> For the complete documentation index, see [llms.txt](https://docs.blynk.io/en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.blynk.io/en/blynk-library-firmware-api/widget-properties.md).

# Widget Properties

## Single Datastream

You can change the widget property assigned to a single datastream from the hardware side.\
For example, you can change the color of an LED widget assigned to Virtual Pin 0:

```
//change LED color
Blynk.setProperty(V0, "color", "#D3435C");

//change LED label
Blynk.setProperty(V0, "label", "My New Widget Label");

//change MENU labels
Blynk.setProperty(V0, "labels", "Menu Item 1", "Menu Item 2", "Menu Item 3");
```

[Set Property for single value field](https://github.com/blynkkk/blynk-library/blob/master/examples/More/SetProperty/SetProperty_SingleValue/SetProperty_SingleValue.ino)

[Set Property for multi value field](https://github.com/blynkkk/blynk-library/blob/master/examples/More/SetProperty/SetProperty_MultiValue/SetProperty_MultiValue.ino)

**NOTE :** Changing these parameters work **only** for widgets attached to Virtual pins (analog/digital pins won't work).

`color`, `label`, `isDisabled`, `isHidden` widget properties are supported for all widgets:

`label` is a string for the label of all widgets.

`color` is a string in [HEX](http://www.w3schools.com/html/html_colors.asp) format (in the form: #RRGGBB, where RR (red), GG (green), and BB (blue) are hexadecimal values between 00 and FF). For example:

```
#define BLYNK_GREEN     "#23C48E"
#define BLYNK_BLUE      "#04C0F8"
#define BLYNK_YELLOW    "#ED9D00"
#define BLYNK_RED       "#D3435C"
#define BLYNK_DARK_BLUE "#5F7CD8"
```

On the firmware side, widget objects also support `setLabel()` and `setColor()` functions.

Widget-specific properties:

**Button**

`onLabel` / `offLabel` is a string for ON/OFF label of a button;

**Styled Button**

`onLabel` / `offLabel` is a string for ON/OFF label of a button;

`onColor` / `offColor` is a string in HEX format for ON/OFF colors of the button;

`onBackColor` / `offBackColor` is a string in HEX format for ON/OFF colors of the button background.

**Music Player**

`isOnPlay` is boolean accepts true/false.

```
Blynk.setProperty(V0, "isOnPlay", "true");
```

**Menu**

`labels` is a list of strings for Menu widget selections;

```
Blynk.setProperty(V0, "labels", "label 1", "label 2", "label 3");
```

**Video Streaming**

```cpp
Blynk.setProperty(V1, "url", "http://my_new_video_url");
```

**Step**

```cpp
Blynk.setProperty(V1, "step", 10);
```

**Image**

```cpp
Blynk.setProperty(V1, "opacity", 50); // 0-100%
```

```cpp
Blynk.setProperty(V1, "scale", 30); // 0-100%
```

```cpp
Blynk.setProperty(V1, "rotation", 10); //0-360 degrees
```

also, you can fully replace the list of images from the hardware:

```cpp
Blynk.setProperty(V1, "urls", "https://image1.jpg", "https://image2.jpg");
```

or you can change the individual image by its index:

```cpp
Blynk.setProperty(V1, "url", 1, "https://image1.jpg");
```

**Alarm and Sound**

```cpp
Blynk.setProperty(V1, "isMuted", "true");
```

You can also change widget properties via [HTTP API](/en/blynk.cloud/device-https-api/update-property.md).

## Multiple Datastreams

In addition to the above commands, you can also change the multiple datastream properties with one command. For example, let's assume, you want to disable multiple widgets with a single command:

```
Blynk.setProperty(V0, V1, V2, "isDisabled", "true");
```

The above command would be an alternative to the batch of single datastream commands:

```
Blynk.setProperty(V0, "isDisabled", "true");
Blynk.setProperty(V1, "isDisabled", "true");
Blynk.setProperty(V2, "isDisabled", "true");
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.blynk.io/en/blynk-library-firmware-api/widget-properties.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
