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

# The Bevel theme

> A fast, plain foundation for Elementor and the block editor. It renders a complete site on its own and fetches nothing from anywhere.

The theme is deliberately small: one stylesheet, a self-hosted typeface, a handful of templates, and no styles you have to fight. Everything that builds a site, the theme builder, widgets, popups and dynamic tags, lives in [Bevel Kit](/kit/overview). The theme's job is to stay out of the way and to render a correct page when nothing else does.

## Requirements

WordPress 6.0 or newer, PHP 7.2 or newer. Elementor and Bevel Kit are optional for the theme itself; the setup bar offers to install them.

## Install

Upload the theme under **Appearance → Themes → Add New → Upload**, or copy the folder to `wp-content/themes/bevel`, then activate it.

## The setup bar

On activation, an administrator sees one sticky bar in the admin: "Finish setting up Bevel", with an **Install** button for whichever of Elementor and Bevel Kit is missing, and **No thanks**. Pressing Install asks WordPress.org for the plugins through WordPress's own installer, the same request Plugins → Add New makes, then activates them in order (Elementor first, because the Kit stands down without it) and reloads. Nothing is asked of anyone until the button is pressed. Dismissing is per user and permanent.

That is the theme's only network request, and only you can start it. Fonts are bundled, the stylesheet references nothing remote, and the theme stores no account state.

## What it renders

Every request routes through one file. For each location the theme first asks the theme builder (Bevel Kit's, or Elementor Pro's) whether a template applies; only when none does, the theme's own part renders:

| Location            | Bevel Kit template | Theme fallback                                               |
| ------------------- | ------------------ | ------------------------------------------------------------ |
| Header              | header template    | logo or site title, primary menu with a mobile toggle        |
| Footer              | footer template    | footer menu, copyright line                                  |
| Single post or page | single template    | title, content, tags, comments                               |
| Archive and blog    | archive template   | title, description, post list with thumbnails and pagination |
| Search              | archive template   | results list, empty state                                    |
| 404                 | single template    | "The page can't be found." with a link home                  |

Pages built with Elementor use the "Elementor Full Width" template, so the Kit's header and footer wrap them. The per-document "Hide Title" setting is honoured by every fallback part.

## Typography and colour

Inter, weights 400 to 700, ships with the theme as WOFF2 and is declared through `theme.json`, so it is available to the block editor and the front end without a request to Google. The stylesheet exposes its tokens as custom properties (`--bevel-primary`, `--bevel-foreground`, `--bevel-muted`, `--bevel-border`, `--bevel-background`, `--bevel-surface`, `--bevel-content` 800px, `--bevel-wide` 1200px, `--bevel-radius` 8px) and `theme.json` mirrors the same palette for the editor. When Bevel Kit is active, the design system you set under Site Settings is what pages use; the theme's tokens only style the fallback parts and block content.

## Menus and logo

Two locations, **Primary** and **Footer**, used by the fallback header and footer. Bevel Kit's Nav Menu widget reads its own `primary_menu` location, which the Kit registers on every theme, and falls back to the theme's Primary. The custom logo is supported through the customizer; when Bevel Kit is active, the logo set under Site Settings is the one everything uses.

## Filters

| Filter                                          | Default                               | Purpose                                                                       |
| ----------------------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------- |
| `bevel_header_footer`                           | `true`                                | Whether the theme draws a header and footer when no builder template applies. |
| `bevel_page_title`                              | `true`                                | Whether a fallback part prints its title block.                               |
| `bevel_content_width`                           | `800`                                 | WordPress's `content_width`.                                                  |
| `bevel_enable_skip_link`, `bevel_skip_link_url` | `true`, `#content`                    | The skip-to-content link.                                                     |
| `bevel_viewport_content`                        | `width=device-width, initial-scale=1` | The viewport meta tag.                                                        |
| `bevel_description_meta_tag`                    | `true`                                | Whether an excerpt becomes a meta description on single pages.                |
| `bevel_register_elementor_locations`            | `true`                                | Whether Elementor's core locations are registered.                            |
| `bevel_add_woocommerce_support`                 | `true`                                | Whether WooCommerce theme supports are declared.                              |

## Child themes

The theme has no template hierarchy to override beyond `template-parts/`. A child theme can replace any part there, add a stylesheet, or filter the tokens above. Most sites need none of that: the Kit's theme builder replaces the fallback parts entirely.
