` tag. A `#!html style` attribute will be attached if a [style](#style) parameter is passed.
**Sample**
**`AutoConnectText text("text", "Publishing the WiFi signal strength to MQTT channel. RSSI value of ESP8266 to the channel created on ThingSpeak", "font-family:serif;color:#4682b4;");`**
On the page:
###
Constructor
```cpp
AutoConnectText(const char* name, const char* value, const char* style, const char* format)
```
###
name
A `name` does not exist in the generated HTML. It provides only a means of accessing elements with the sketches.
###
value
It becomes content and also can contain the native HTML code, but remember that your written code is enclosed by the div tag.
###
style
A `style` specifies the qualification style to give to the content and can use the style attribute format as it is.
###
format
A `format` is a pointer to a null-terminated multibyte string specifying how to interpret the value. It specifies the conversion format when outputting values. The format string conforms to C-style printf library functions, but depends on the espressif sdk implementation. The conversion specification is valid only in **%s** format. (Left and Right justification, width are also valid.)
## How to coding for the elements
###
Declaration for the elements in Sketches
Variables of each AutoConnetElement can be declared with macros. By using the macros, you can treat element name that is String type as variable in sketches.[^2]
[^2]: The square brackets in the syntax are optional parameters, the stroke is a selection parameter, the bold fonts are literal.
ACElement ( *name*
\[ , *value*
\] )
ACButton ( *name*
\[ , *value*
\] \[ , *action*
\] )
ACCheckbox ( *name*
\[ , *value*
\] \[ , *label*
\] \[ , **true** | **false**
\] )
ACFile ( *name*
\[ , *value*
\] \[ , *label*
\] \[ , **AC\_File\_FS** | **AC\_File\_SD** | **AC\_File\_Ext**
\] )
ACInput ( *name*
\[ , *value*
\] \[ , *label*
\] \[ , *pattern*
\] \[ , *placeholder*
\] )
ACRadio ( *name*
\[ , *values*
\] \[ , *label*
\] \[ , **AC\_Horizontal** | **AC\_Vertical**
\] \[ , *checked*
\] )
ACSelect ( *name*
\[ , *options*
\] \[ , *label*
\] )
ACSubmit ( *name*
\[ , *value*
\] \[ , *uri*
\] )
ACText ( *name*
\[ , *value*
\] \[ , *style*
\] \[ , *format*
\] )
!!! memo "Declaration macro usage"
For example, *AutoConnectText* can be declared using macros.
```cpp
AutoConnectText caption("caption", "hello, world", "color:blue;")
```
equals by using *ACText* macro.
```cpp
ACText(caption, "hello, world", "color:blue;")
```
###
Variant for AutoConnectElements
Some AutoConnectAux APIs specify AutoConnectElements as an argument. There are also functions that return a pointer to AutoConnectElements. AutoConnectElement behaves as a variant type of each element class to make these interfaces a single. Use [reinterpret_cast](https://en.cppreference.com/w/cpp/language/reinterpret_cast) to cast from a variant pointer to an Actual type pointer of AutoConnectElements.
```cpp
AutoConnectAux aux;
ACText(Text1, "hello, world");
aux.add(Text1);
AutoConnectText* text_p = reinterpret_cast
(aux.getElement("Text1"));
AutoConnectText& text = aux.getElement("Text1");
```