# Text

> For the complete documentation index, see [llms.txt](/llms.txt)

> The feedback widget exposes text properties for every label, placeholder, and message. Override them to match your brand's tone or support multiple languages (i18n).

The feedback widget exposes text properties for every label, placeholder, and message. Override them to match your brand's tone or support multiple languages (i18n).

## Usage

Set text attributes on `<feedback-button>` or `<feedback-modal>` in your HTML. Here's an example:

```html
<feedback-button 
  project="YOUR_PROJECT_ID" email-placeholder="Enter your email" modal-title="Give us your thoughts">
  Button text
</feedback-button>
```

## Properties

The table below lists all the available properties you can override:

| Property                       | Description                                                                                                                     |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| `error-message`                | **Type**: `string`**Default value**: `Please try again later."`Message displayed when there's an error submitting feedback.|
| `error-message-401`            | **Type**: `string`**Default value**: `This project requires a valid API key to submit feedback. Check the api-key attribute.`Message displayed when a submission is rejected because the project requires an [`api-key`](layout#properties) and none was provided, or the provided key is invalid.|
| `modal-title-error-4-0-3`      | **Type**: `string`**Default value**: `The request URL does not match the one defined in PushFeedback for this project."`Message displayed when there's a 403 error submitting feedback.|
| `modal-title-error-4-0-4`      | **Type**: `string`**Default value**: `We could not find the provided project id in PushFeedback.`Message displayed when there's a 404 error submitting feedback.|
| `close-button-label`           | **Type**: `string`**Default value**: `Close feedback form`Accessible name for the modal close button, announced by screen readers. Not shown visually.|
| `email-placeholder`            | **Type**: `string`**Default value**: `Email address (optional)`Placeholder text for the email input field.    |
| `footer-text`                  | **Type**: `string`**Default**: `""`Optional footer text displayed after "Powered by Pushfeedback.com". Supports a limited set of HTML tags (`a`, `b`, `br`, `code`, `em`, `i`, `p`, `small`, `span`, `strong`, `u`) and attributes (`href`, `target`, `rel`, `title`). |
| `message-placeholder`          | **Type**: `string`**Default value**: `Share your thoughts...`Placeholder for the feedback message input.|
| `modal-title`                  | **Type**: `string`**Default value**: `Share your feedback`Title of the feedback modal.                        |
| `modal-title-error`            | **Type**: `string`**Default value**: `Oops!`Title displayed when there's an error submitting feedback.|
| `modal-title-success`          | **Type**: `string`**Default value**: `Thanks for your feedback!`Title displayed upon successful feedback submission.|
| `privacy-policy-text`  | **Type**: `string`**Default value**: `I have read and expressly consent to the terms of the Privacy Policy.`Privacy policy text. Supports a limited set of HTML tags (`a`, `b`, `br`, `code`, `em`, `i`, `p`, `small`, `span`, `strong`, `u`) and attributes (`href`, `target`, `rel`, `title`). |
| `rating-negative-label`        | **Type**: `string`**Default value**: `No`Accessible name and tooltip for the negative rating button (thumbs mode).|
| `rating-placeholder`           | **Type**: `string`**Default value**: `Was this page helpful?`Heading for the feedback rating feature (thumbs).|
| `rating-positive-label`        | **Type**: `string`**Default value**: `Yes`Accessible name and tooltip for the positive rating button (thumbs mode).|
| `rating-star-label`            | **Type**: `string`**Default value**: `Rate {rating} out of 5`Accessible name for each star button (stars mode). The `{rating}` placeholder is replaced with the star number.|
| `rating-stars-placeholder`     | **Type**: `string`**Default value**: `How would you rate this page`Heading for the feedback rating feature (stars).|
| `screenshot-attached-text`     | **Type**: `string`**Default value**: `Screenshot attached`Text displayed when a screenshot is attached to the feedback.|
| `screenshot-button-text`       | **Type**: `string`**Default value**: `Add a screenshot`Text for the button that opens the screenshot capture interface.|
| `screenshot-taking-text`       | **Type**: `string`**Default value**: `Taking screenshot...`Text displayed while capturing a screenshot.|
| `screenshot-positioning-text` | **Type**: `string`**Default value**: `Scroll to the area you want to capture.`Instruction in the capture bar shown before taking a screenshot from an embedded form.|
| `screenshot-positioning-capture-text` | **Type**: `string`**Default value**: `Capture this view`Label for the capture bar's confirmation button.|
| `screenshot-positioning-cancel-text` | **Type**: `string`**Default value**: `Cancel`Label for the capture bar's cancel button.|
| `screenshot-edit-text-button-text` | **Type**: `string`**Default value**: `Edit text`Text for the button that opens the text editing interface for screenshots.|
| `screenshot-editor-title`      | **Type**: `string`**Default value**: `Edit screenshot`Title of the screenshot editor modal.|
| `screenshot-editor-cancel-text` | **Type**: `string`**Default value**: `Cancel`Text for the cancel button in the screenshot editor.|
| `screenshot-editor-save-text`  | **Type**: `string`**Default value**: `Save`Text for the save button in the screenshot editor.|
| `screenshot-size-label-text`   | **Type**: `string`**Default value**: `Size:`Label text for the screenshot size selector.|
| `screenshot-border-label-text` | **Type**: `string`**Default value**: `Border:`Label text for the screenshot border options.|
| `screenshot-edit-text-prompt-text` | **Type**: `string`**Default value**: `Edit text:`Prompt text for the screenshot text editing interface.|
| `screenshot-error-general`     | **Type**: `string`**Default value**: `Failed to capture screenshot.`General error message when screenshot capture fails.|
| `screenshot-error-permission`  | **Type**: `string`**Default value**: `Permission denied. Please allow screen sharing to take screenshots.`Error message when screen sharing permission is denied.|
| `screenshot-error-not-supported` | **Type**: `string`**Default value**: `Screen capture is not supported in this browser.`Error message when the browser doesn't support screen capture.|
| `screenshot-error-not-found`   | **Type**: `string`**Default value**: `No screen sources available for capture.`Error message when no screen sources are available.|
| `screenshot-error-cancelled`   | **Type**: `string`**Default value**: `Screenshot capture was cancelled.`Error message when user cancels screenshot capture.|
| `screenshot-error-browser-not-supported` | **Type**: `string`**Default value**: `Your browser does not support screen capture. Please use a current desktop browser such as Edge, Chrome, Firefox, or Safari.`Error message for unsupported browsers.|
| `screenshot-error-unexpected`  | **Type**: `string`**Default value**: `An unexpected error occurred. Please try again.`Error message for unexpected errors during screenshot capture.|
| `send-button-text`             | **Type**: `string`**Default value**: `Send`Text for the button that submits feedback.                         |
| `success-message`              | **Type**: `string`**Default value**: `""`Custom message displayed in the modal body after feedback is successfully submitted. When empty, no extra message appears below the success title.|

## Example

<iframe height="700" style={{width: '100%'}} scrolling="no" title="Untitled" src="https://codepen.io/David-Garcia-the-bashful/embed/MWzPyvM?default-tab=html%2Cresult&theme-id=dark" frameBorder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
  See the Pen 
  Untitled by David Garcia (@David-Garcia-the-bashful)
  on CodePen.
</iframe>
