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

> ## Agent Instructions
> OwnPay is licensed under AGPL-3.0 and is completely free - no licensing fees.
> Production docs URL: https://ownpay.org/docs - append .md to any page URL for clean markdown.
> OwnPay requires PHP 8.3+, MySQL/MariaDB, and Redis.
> MCP server available at https://ownpay.org/docs/mcp for programmatic documentation queries.
> Use root-relative links (e.g. /quickstart) for internal navigation - do NOT include /docs prefix.
> Plugin development: consult /developer/plugin-types/ pages for correct interfaces and manifests.

# Themes - Customize Checkout Appearance and Styling

> Pick installed checkout themes, activate template variants, and upload custom CSS overrides to restyle the OwnPay customer-facing checkout experience.

The Themes page manages the HTML/CSS template envelopes used to render customer-facing checkout interfaces and payment link sheets. OwnPay supports modular theme plugins that change layouts, animations, and input patterns.

## Getting here

1. Log in to the OwnPay admin dashboard
2. Under the **APPEARANCE** section in the left sidebar, click **Themes**

## Page sections

### 1. Active theme cards

* **Theme Name:** The display title (e.g., `Own Pay Theme`)
* **Version and Author:** Package version and developer credits
* **Description:** Details outlining features of the theme
* **Controls:** Click **Activate** to make this the active global checkout theme, or **Remove** to delete the files

### 2. Install theme

Located at the top header by clicking the **+ Install Theme** link. Allows administrators to upload a packaged `.zip` theme archive.

## Step-by-step: activating a theme

1. Navigate to the **Themes** dashboard
2. Find the target theme card
3. Click the **Activate** button
4. The system will update your visual settings. Any active checkout sessions will load this layout structure instantly

## Best practices

* Test custom themes on desktop and mobile browsers to ensure input fields remain accessible
* Keep the default `own-pay` theme installed as a fallback
* Do not delete an active theme. Always activate an alternative template first
* Do not upload unverified zip archives as they could contain malicious code

## Common mistakes and troubleshooting

| Symptom                           | Cause                                           | Fix                                                                       |
| --------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------- |
| Checkout page shows default theme | Theme not activated for the brand               | Go to **Appearance > Themes** and click **Activate** on the desired theme |
| Custom CSS not applying           | CSS syntax error or specificity conflict        | Validate your CSS and use browser DevTools to check for overrides         |
| Theme upload fails                | Invalid manifest.json or missing required files | Ensure `manifest.json`, `Theme.php`, and `templates/` directory exist     |

## Related pages

* [Branding Settings](/user-guide/appearance/branding-settings) - Customize logo assets
* [Landing Page Settings](/user-guide/appearance/landing-page) - Modify public home text blocks
* [Payment Gateways](/user-guide/gateways/gateways) - Configure manual and API payment rules


## Related topics

- [Theme Plugin Development - Customize Checkout Appearance](/docs/developer/plugin-types/theme-development.md)
- [OwnPay FAQ: Installation, Payments, and Plugin Answers](/docs/advanced-topics/faq.md)
- [Brands - Multi-Tenant Isolation for Payment Merchants](/docs/concepts/brands.md)
- [Plugin System: Build Gateway, Theme, and Addon Plugins](/docs/developer/plugins/overview.md)
- [Brands - Create and Configure White-Label Storefronts](/docs/user-guide/people/brands.md)
