# Basic Syntax Overview With a basic understanding of the ArkTS language, let's look into the composition of ArkTS through an example. As shown below, when the user clicks the button, the text content changes from **Hello World** to **Hello ArkUI**. **Figure 1** Example effect drawing ![Video_2023-03-06_152548](figures/Video_2023-03-06_152548.gif) In this example, the basic composition of ArkTS is as follows. **Figure 2** Basic composition of ArkTS ![arkts-basic-grammar](figures/arkts-basic-grammar.png) > **NOTE** > > The name of a custom variable cannot be the same as that of any universal attribute or event. - Decorator: design pattern used to decorate classes, structs, methods, and variables to assign special meanings to them. In the preceding sample code, \@Entry, \@Component, and \@State are decorators. [@Component](arkts-create-custom-components.md#basic-structure-of-a-custom-component) indicates a custom component, [@Entry](arkts-create-custom-components.md#basic-structure-of-a-custom-component) indicates that the custom component is an entry component, and [@State](arkts-state.md) indicates a state variable in the component, whose change will trigger the UI to re-render. - [UI description](arkts-declarative-ui-description.md): declarative description of the UI structure, such as the code block of the **build()** method. - [Custom component](arkts-create-custom-components.md): reusable UI unit, which can be used with other components, such as the struct **Hello** decorated by @Component. - Built-in component: default basic or container component preset in ArkTS, which can be directly invoked, such as **\**, **\**, **\**, and **\