# Getting Started with the KendoReact Popup

This guide provides essential information about using the KendoReact Popup package—you will learn how to install the Popup package, add a Popup component to your project, style the component, and activate your license.

<CtaPanelOverview></CtaPanelOverview>

After completing this guide, you will be able to reproduce the following example.

[Demo Source](https://demos.telerik.com/kendo-react-ui/popup/overview/func/source.txt)

## Before You Begin

To follow the steps in this guide, you need to have a React project set up. If you don't have one, you can create a new React application using Vite by running the following command in your terminal:

```sh
npm create vite@latest my-app -- --template react-ts
```

This guide requires that you have **basic knowledge of React and TypeScript**, and that you have already created [**a blank React project**](https://www.telerik.com/kendo-react-ui/components/getting-started).

> tip You can speed up the development of your KendoReact application with the [Kendo UI Template Wizard for Visual Studio Code](https://marketplace.visualstudio.com/items?itemName=KendoUI.kendotemplatewizard).

## Install the Component

To install the Popup package, run the following command in the root folder of your React project:

```sh
npm i @progress/kendo-react-popup @progress/kendo-theme-meridian
```

Run these commands in the root of your React project to install the KendoReact Popup package and the Kendo UI [Meridian theme](https://www.telerik.com/design-system/docs/themes/kendo-themes/meridian/).

Note that `kendo-react-buttons` is not a direct dependency for the Popup component. The workflow of this guide requires that you also install and use a Button component to trigger the Popup.

## Import the Component

After installing the Popup npm package, import the Popup and Button components. While the Button is not required for the Popup, it is needed for this tutorial.

In the App component file of your React project (for example, `src/App.tsx`), add the following code:

```tsx
import { Popup } from '@progress/kendo-react-popup';
import { Button } from '@progress/kendo-react-buttons';
```

## Use the Component

1. After installing the Popup package add a button to the App component of your React project (for example, `src/App.tsx`) that will be used as an `anchor` of the Popup. You will also use the button to open and close the Popup on click.

   ```tsx
   <Button type="button" onClick={onClick} ref={anchor}>
       {show ? 'Hide' : 'Show'}
   </Button>
   ```

2. Create a reference to the button element.

   ```tsx
   const anchor = React.useRef(null);
   ```

3. Handle the button `onClick` event to toggle the Popup.

   ```tsx
   const onClick = () => {
       setShow(!show);
   };
   ```

4. Create a state variable to control when the Popup opens.

   ```tsx
   const [show, setShow] = React.useState(false);
   ```

5. Add the Popup markup to the `App` component.

   ```tsx
   <Button type="button" onClick={onClick} ref={anchor}>
       {show ? 'Hide' : 'Show'}
   </Button>
   <Popup
     // Anchor to the Button's DOM element, not the component instance.
     anchor={anchor.current && anchor.current.element}
     show={show}
     popupClass={'popup-content'}
   >
       Popup content.
   </Popup>
   ```

6. Navigate to [http://localhost:5173](http://localhost:5173/) to see the KendoReact Popup component on the page.

## Style the Components

> tip Are you looking for guidance around how to create visually appealing and consistent user interfaces with Telerik UI components? Check out the [Progress Design System](https://www.telerik.com/design-system/docs/).

Import the CSS file from the package in `src/App.tsx`. Add this import before your existing `App.css` import:

```jsx
import '@progress/kendo-theme-meridian/dist/all.css';
```

With this import in place, you already have professionally designed styling applied to your app out-of-box. You can also try any of the other available [Kendo UI Themes](https://www.telerik.com/design-system/docs/themes/get-started/introduction/#available-themes).

# KendoReact Popup APIs

[Popup API](https://www.telerik.com/kendo-react-ui/components/popup/api)

## KendoReact Popup Dependencies

The Popup package requires you to install the following [peer dependencies](https://nodejs.org/en/blog/npm/peer-dependencies/) in your application:

| Package Name                 | Description                                                                                                 |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------- |
| react 18.0.0\*               | Contains the functionality necessary to define React components.                                            |
| react-dom                    | Contains the React renderer for the web.                                                                    |
| @progress/kendo-licensing    | Contains the internal infrastructure related to licensing.                                                  |
| @progress/kendo-popup-common | Contains shared Popup logic.                                                                                |
| @progress/kendo-react-common | Contains common utilities that enhance the performance and functionalities of the KendoReact UI components. |

## Suggested Links

* [Virtual Classroom (Introductory Course Available to Trial and Commercial License Holders)](https://learn.telerik.com/learn/course/external/view/elearning/14/kendoreact)
* [Explore the Finance Portfolio Sample Application](https://www.telerik.com/kendo-react-ui/components/sample-applications/finance-application/)
* [Explore the Coffee Warehouse Sample Application](https://www.telerik.com/kendo-react-ui/components/sample-applications/react-coffee-warehouse-dashboard/)
* [Explore the GitHub Issues Grid Sample Application](https://www.telerik.com/kendo-react-ui/components/sample-applications/issues-grid/)
