> ## Documentation Index
> Fetch the complete documentation index at: https://help.experro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# About components

Components are indeed the fundamental elements of a base theme.

## Role of Theme Components in Base Theme

**They serve as the building blocks for creating sections and pages within the theme.** The base theme typically includes default components such as image fields, text fields, forms, and carousels, which can be used out-of-the-box to construct different sections or pages.

## Types of Theme Components

1. Default Components
2. Custom Components

By leveraging the default components, you can easily assemble and customize the content of your base theme. However, if the provided components don't meet your specific requirements, you also have the flexibility to create custom components and seamlessly integrate them into the base theme.

With base theme, you'll get following set of default components.

| Name                                       | Purpose                                                                                                                   |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| [Common](./Common-Components.md)           | Collection of common components such as button, modal, form controls, etc.                                                |
| [CMS Library](./CMS-Library-Components.md) | Collection of CMS components that you can drag-n-drop from Visual Builder panel such as accordion, carousel, banner, etc. |
| [eCommerce](eCommerce-Components.md)       | Collection of eCommerce components such as cart, checkout, product details, etc.                                          |

> You are going to see the `index.ts` file in each of the component folders. We use `index.ts` as an entry point to **export** something.

In addition to these components, you will also find header and footer components. You can view the complete list of available components in the `src/components/index.ts` file.

You are not limited to the set of components provided by the base theme. You can easily create [custom component](./custom-components) to fulfill your specific requirements, and also register these components as draggable within the Panel.

Custom components enable you to extend the functionality and appearance of the base theme, allowing you to tailor it to your specific needs. These custom components can be designed and developed to complement the existing default components, offering enhanced flexibility and versatility for creating unique sections and pages within the base theme.

Let's take a look at [common components](./common-components) and see what is provided by the base them for you to utilize.
