“Can you make my site look like that one?” is the most common request we get, and it is a reasonable one. Copying a design pixel for pixel is neither legal nor useful; understanding why a page works and rebuilding those decisions in your own WordPress theme is a skill anyone can learn. This is the process our designers use, written as steps you can follow with free tools and a Canyon theme as the base.
The worked example is the same one from the original version of this article: the Free Spins No Deposit review site, which several clients asked us to emulate. It is a dense, frequently updated listings site — many categories, sidebar menus, featured updates, partner banners and a search function — which makes it a harder and more instructive teardown than a minimalist portfolio. The four pillars we identified then still hold: organisation, navigation, style and substance. Below is how to turn each into theme decisions.
Step 1: Inspect — what is the page actually made of?
Open the target page in Chrome, right-click → Inspect, and spend twenty minutes on three panels:
- Elements. Collapse the body and expand one level at a time. You are looking for the top-level regions: header, hero or featured area, main column, sidebar(s), footer. Note which regions repeat on inner pages.
- Computed styles on the body, an H1, an H2, body text and a button. Write down font family, size, weight, line-height, colour and letter-spacing for each.
- Responsive mode. Drag the viewport from 1400 px down to 360 px and note every point where the layout changes: sidebar drops, columns stack, menu collapses. Those breakpoints are decisions you will reproduce.
Take a full-page screenshot at desktop and mobile widths. Draw boxes on it. If you cannot name each box’s job in three words (“latest updates”, “partner list”, “category nav”), you do not yet understand the page — keep looking before you build.
Step 2: Organisation — map function to regions
Form follows function, and a listings site has several functions competing for space. On the example site: frequent updates for returning visitors, a place to list partners with banners, and category-based browsing. Each got a dedicated region rather than sharing one.
Write your own list of functions, in priority order, then assign each to a region. In WordPress terms, decide now which regions are:
- Template parts (header, footer, sidebar) — identical on every page.
- Query loops — automatically filled from posts by category, tag or date.
- Static pattern content — edited by hand, such as a partner list or a hero.
Getting this split right is most of the work. A “latest updates” block should be a Query Loop, not a manually edited list you forget to update.
Step 3: Navigation — reproduce the paths, not the menu
The example site has several navigation menus organised by type, plus site search. Do not copy the menu items; copy the routes: how does a visitor with a specific goal reach the right page in two clicks?
- Primary menu: five to seven top-level destinations, in the header Navigation block.
- Secondary navigation by type (categories, tags or a custom taxonomy) in a sidebar template part using the Categories or Tag Cloud block, or a Navigation block with a second menu.
- Search in the header, always. The core Search block is enough; add a search-results template that shows excerpts and dates.
- A tagging system that is consistent — decide the taxonomy before publishing, not after two hundred posts.
Step 4: Style — extract design tokens into theme.json
Take the values you wrote down in Step 1 and translate them into tokens. Do not copy the exact colours; choose your own palette with the same structure — one background, one text, one primary accent, one secondary, and neutral greys. Then put them in your theme’s theme.json:
"settings": {
"color": { "palette": [
{ "slug": "base", "color": "#ffffff", "name": "Base" },
{ "slug": "contrast","color": "#1a1a1a", "name": "Contrast" },
{ "slug": "primary", "color": "#0b5fa5", "name": "Primary" },
{ "slug": "accent", "color": "#e07a10", "name": "Accent" }
]},
"typography": { "fontSizes": [
{ "slug": "small", "size": "0.875rem" },
{ "slug": "medium", "size": "1.125rem" },
{ "slug": "large", "size": "1.5rem" },
{ "slug": "x-large","size": "2.25rem" }
]},
"spacing": { "spacingSizes": [
{ "slug": "20", "size": "0.5rem" }, { "slug": "40", "size": "1rem" },
{ "slug": "60", "size": "2rem" }, { "slug": "80", "size": "4rem" }
]},
"layout": { "contentSize": "720px", "wideSize": "1180px" }
} Now every block picks from these presets, and the whole site changes when you edit one value. The example site’s visual discipline — a professional palette, deliberate use of whitespace to move the eye toward links — comes from consistency, and consistency is what tokens give you for free.
Step 5: Build the regions as block patterns
Each box from your Step 1 screenshot becomes a pattern. Build it in the editor with core blocks — Group, Columns, Cover, Query Loop, Navigation — using only the theme.json presets for colour, size and spacing. Then save it as a pattern (synced if it must be identical everywhere, unsynced if editors will customise it). For a theme you will reuse, export the pattern’s markup into a PHP file in the theme’s patterns/ folder with a header block:
<?php
/**
* Title: Latest updates grid
* Slug: mytheme/latest-updates
* Categories: featured
*/
?>
<!-- wp:query {"query":{"perPage":6,"postType":"post"}} -->
...
<!-- /wp:query --> Assemble the homepage from patterns, then the archive and single templates. Test at 360 px after every pattern; a listings layout that works on desktop and breaks on phones is the most common failure.
Step 6: Substance — the theme cannot supply it
The fourth pillar. The example site works because its content is written to be scanned: featured posts, clear headings, short paragraphs, dated updates. Your theme should make that easy — a readable body size (17–18 px), a heading scale with obvious hierarchy, a visible published/updated date in the post template — but it cannot write the content. Budget more time for the first twenty posts than for the theme.
Start from Danfe, not from zero
You do not need to write a theme from scratch to do any of this. Danfe already has the regions a listings or business site needs — header with search, hero, sectioned homepage, sidebar-capable archives, footer widgets — and exposes colours and typography through the Customizer. Create a child theme, override the palette and fonts with your tokens, add your patterns, and you have a theme that is yours in a weekend rather than a month. For a purely editorial listings site, News One is the closer starting point; its grid front page is already a set of Query Loops.
We drafted most of the patterns for this site’s 2026 rebuild with an AI assistant from exactly this kind of teardown — screenshots, a token list, a description of each region — then reviewed and tested every one. Our notes on how to use Claude for WordPress work cover the prompts that produced usable block markup and the ones that did not.
Which Canyon theme fits as a base
- Danfe — business or hybrid sites with a sectioned homepage and a listings blog behind it.
- News One — category-heavy listings and review sites.
- Bloge — when the target design is a single-column, typography-led site.
All free; more in the business theme category.