Components in ToolJet serve as the building blocks for creating applications. They are pre-designed elements that you can drag and drop onto the canvas in the App-Builder. ToolJet comes with 45+ built-in components.
<divstyle={{textAlign:'center'}}>
<imgstyle={{padding:'10px',marginBottom:'15px'}}className="screenshot-full"src="/img/tooljet-concepts/what-are-components/drag-drop-components.gif"alt="Drag And Drop Components"/>
</div>
These components range from basic UI elements like buttons, text fields, and tables, to more complex elements like kanban, charts, and maps. By using components, you can quickly assemble a functional and visually appealing application without having to write code from scratch.
Components are highly customizable and interactive. Once you place a component on the canvas, you can easily modify its properties, styles, and behaviors through the properties panel on the right side of the App-Builder. This allows you to make your application dynamic and responsive.
In ToolJet, components can be easily connected to various data sources like databases, APIs, and third-party services through **[queries](what-are-queries)**. Once the data is fetched, you can bind it to components like tables, charts, and more.
<divstyle={{textAlign:'center'}}>
<imgstyle={{padding:'10px',marginBottom:'15px'}}className="screenshot-full"src="/img/tooljet-concepts/what-are-components/adding-data-to-component.png"alt="Adding Data To Component"/>
</div>
## Custom Components
ToolJet allows for the creation of custom components using React. This feature is invaluable for developers who require functionalities beyond the 45+ built-in components that ToolJet offers. To create a custom component, you can drag and drop a **[Custom Component](/docs/widgets/custom-component/)** on the canvas and configure its data and code.
By incorporating custom React components, you can significantly extend the capabilities of your ToolJet applications, allowing for a more tailored and unique user experience.
To explore the full list of components in ToolJet, go through the **[Component Library](/docs/widgets/bounded-box)**.