WordPress theme featuring CSS Grid layouts via aggressive progressive enhancement

  • By Morten Rand-Hendriksen
  • Last update: Jan 4, 2023
  • Comments: 5


WordPress meets CSS Grid. designed and developed by Morten Rand-Hendriksen. Kuhn is hyper-opinionated and developed to take advantage of modern CSS. It was developed for mor10.com and is released as a showcase of what CSS Grid can do for WordPress theme layouts.

Contributors welcome.


  • Site logo
  • Featured images
  • Enhanced Recent Posts and Recent Comments widgets

Licenses and External Assets

Kuhn is distributed under the terms of the GNU GPL v2


1.0.5 - Sepbember 01 2017

  • Main menu floats to the top on wide screens.
  • Social media menu added to footer.

1.0.4 - August 11 2017

  • Responsive images throughout.
  • New paging navigation for archive views.
  • Minor bugfixes.

1.0.3 - June 10 2017

  • Replace complex calc with simpler fr in archive layout.
  • Break words in archive titles to allow for the above.

1.0.1 - May 31 2017

  • Resolve MS Edge support by being more forceful with @supports rules (basically no grid until Edge supports it properly).
  • Code cleanup to resolve latent issues.

1.0 - May 30 2017 =

  • Initial release

Kuhn's code base started out as _s (http://underscores.me) as it were on May 11, 2017.


Kuhn is named after philosopher Thomas Kuhn, who first introduced the concept of "paradigm shifts", one of the most frequently used and widely misunderstood philosophical terms of our time.




  • 1

    How do I uplaod a custom logo?

    I see that there is a custom logo support in the functions.php, and your website also is using a custom logo above the site title. But I can't find the option in my customizer to so the same. Am I missing something? How do I go about it?

  • 2

    Outdated Link to this theme footer.php

    The footer appears to link to https://wordpress.org/themes/kuhn/, but the theme doesn't appear there. Perhaps we should change it to this GitHub repo instead?

  • 3

    Resolve Edge case

    Edge is a mess. Lack of grid-template-areas + minmax support causes irreconcilable differences between the site and the browser: https://twitter.com/idguy/status/869544849585864704

    To resolve, be more forceful with support requirements: @supports (grid-area: header) {}

    This will return true only when Edge stops being an edge case and gets its Grid shit together.

  • 4

    Translation strings

    I am missing a few strings in the POT for translations. Is there any way I could get a mini update for these (for my site here)?

    • Published
    • Discussion
    • Written by
  • 5

    Register a new widget in the header, add new widget to the header

    I thought I'd pass along I change I needed for myself. This PR registers a new widget ID'd header-1 and adds it to the end of the header/masthead. Could be useful for adding additional menus, additional text blocks, a search box, tag box, etc.