> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

## Resource: selectFont()

## Article: selectFont() (React Elements)

## Article Link: https://dev.wix.com/docs/sdk/host-modules/editor/react-elements/pickers/select-font.md

## Article Content:

<!-- Source: packages/public-editor-platform-sdk/src/element/index.ts in wix-private/editor-platform -->
# selectFont()

Opens the editor's font picker for the selected component, letting a Wix user choose a font family and weight together.

## Syntax

```ts
function selectFont(params: SelectFontParams): Promise<IFontFamilyAndWeight | undefined>
```

## Parameters

| Name | Type | Description |
| :---- | :---- | :---- |
| `selectedFontFamily` | object | Font family and weight to show when the picker opens, as `{ family, weight }`. |
| `target` | HTMLElement | Element in your panel that the picker popup opens relative to. |
| `panelOptions` | object | Positioning options for the picker popup, such as `placement` and `YShift`. |
| `onChange` | function | Called with the selected font family and weight when the Wix user confirms a selection. |
| `onPreview` | function | Called with the font family and weight while the Wix user is previewing options, before confirming. |

## Returns

`Promise<IFontFamilyAndWeight | undefined>`

The selected font family and weight, or `undefined` if the Wix user closes the picker without selecting anything. Use the `onChange` and `onPreview` callbacks to receive selections as the Wix user interacts with the picker, and apply them yourself with [`setStyles()`](https://dev.wix.com/docs/sdk/host-modules/editor/react-elements/styles/set-styles.md).

## Example

```js
import { reactElements } from '@wix/editor';

reactElements.selectFont({
  selectedFontFamily: { family: 'Arial', weight: '400' },
  target: buttonRef.current,
  onChange: (font) => {
    reactElements.setStyles({
      cssProperties: { fontFamily: font.family, fontWeight: font.weight },
    });
  },
});
```

## See also

- [selectFontFamily()](https://dev.wix.com/docs/sdk/host-modules/editor/react-elements/pickers/select-font-family.md)
- [selectFontWeight()](https://dev.wix.com/docs/sdk/host-modules/editor/react-elements/pickers/select-font-weight.md)
- [setStyles()](https://dev.wix.com/docs/sdk/host-modules/editor/react-elements/styles/set-styles.md)
- [About the React Elements API](https://dev.wix.com/docs/sdk/host-modules/editor/react-elements/introduction.md)