Font Picker

<esp-font-picker>

Font picker component backed by the Google Fonts catalog.

The font catalog is loaded at runtime from a build-generated font-definitions.json file served alongside the individual font CSS files. Run npm run build-fonts to generate both assets.

Required setup:

  1. Serve the css/fonts/ directory under a public path.
  2. Point <esp-root font-css-root="/your/path/"> at that path.

Attributes

<esp-font-picker> has the following attributes:

category

category has a default value of null.

Category of fonts to display in the picker.

If not set, all font categories are displayed.

value

value has a default value of "".

The selected font family.

placeholder

placeholder has a default value of "Choose a font...".

The placeholder text for the picker input.

Methods

<esp-font-picker> has the following methods:

focus

Focus the picker input.

traverseToClosest

Traverse up the DOM tree to find the closest element that matches the selector. This method is aware of shadow DOM boundaries and will traverse through them to find the element.

Events

<esp-font-picker> emits the following events:

value-changed

value-changed is of type CustomEvent<GoogleFont | undefined>.

Fired when the user selects a font

CSS Properties

<esp-font-picker> has the following CSS properties:

--esp-field-background

Background color of the shared field shell. Defaults to var(--esp-color-layer-2).

--esp-field-border-color

Border color of the shared field shell. Defaults to var(--esp-color-border).

--esp-field-border-width

Border width of the shared field shell. Defaults to 1px.

--esp-field-text-color

Text color used inside the shared field shell. Defaults to var(--esp-color-text).

--esp-field-hover-bg

Hover background color of the shared field shell. Derived from --esp-field-background.

--esp-field-focus-bg

Focus background color of the shared field shell. Derived from --esp-field-background.

--esp-field-focus-shadow

Shadow color used for shared field focus treatment. Defaults to var(--esp-color-shadow).

Where does this show?