A purpose-built block theme for personal blogs, built around portrait featured images and crafted for calm, readable storytelling.
Shanti is a minimalist block-based WordPress theme designed for personal blogging. It embraces Full Site Editing and is built entirely with blocks, giving you full control over your layout while staying out of the way of your content.
The theme is designed around portrait featured images, with careful typography and generous spacing that supports focused, distraction-free storytelling.
Developed and maintained by Themeist
π shanti.themeist.com (coming soon)
- Built around portrait featured images
- Designed for personal blogs, travel logs, and life journals
- Minimal layout with generous spacing and clean typography
- Full Site Editing support with custom templates and block patterns
- Includes Blank and No-Title templates for special use cases
The theme includes a set of templates, reusable parts, and block patterns designed to help you build a personal blog quickly and beautifully.
- index.html β Fallback template for all content
- single.html β Default template for single posts
- single-standard.html β Alternative single post layout with center-aligned wide featured image
- page.html β Default template for static pages
- page-transparent-header.html β Page template with transparent header (any page or post)
- page-sidebar.html β Page template with sidebar
- page-no-title.html β Template without the post/page title
- search.html β Search results template
- 404.html β Template for not found pages
- blank.html β A completely empty canvas (no header/footer)
- header.html β Site header
- footer.html β Site footer
- sidebar.html β Sidebar (used by page-sidebar template)
- header.php β Default header block layout
- header-top-bar.php β Header with top bar
- footer.php β Default footer block layout
- footer-columns.php β Footer with columns
- footer-columns-background.php β Footer with columns and background
- footer-background.php β Footer with background
- hero-cover.php β Fullscreen hero section with background image
- page-home.php β Home page content (hero, posts showcase, grid)
- post-navigation.php β Previous/next post links
- post-share.php β Social sharing section for single posts
- comments.php β Comments list, pagination, and comment form
- posts-showcase.php β Featured post and grid
- posts-latest.php β Latest posts in a 3-column grid (no pagination)
- posts-list.php β Classic post list
- posts-grid.php β Default query loop (3-column grid)
- posts-related.php β Related post suggestions
- WordPress 6.7 or higher
- PHP 7.4 or later
- Modern browser with CSS Grid support
- License: GPLv3 or later
Download and activate like any standard WordPress theme.
Or clone the repo:
git clone https://github.com/webtions/shanti.git wp-content/themes/shantiThen activate it via Appearance β Themes in your WordPress dashboard.
Click to expand
To contribute, test, or lint the theme:
composer installRun a PHP syntax check:
composer lintCheck for WordPress Coding Standards violations:
composer standards:checkAutomatically fix fixable code style issues:
composer standards:fixRun static analysis:
composer analyzeFor detailed contribution guidelines, see CONTRIBUTING.md.
Shanti follows the official WordPress Coding Standards.
Click to expand
New Patterns:
- Add call to action pattern.
- Add author box pattern for posts.
Improvements:
- Update primary color to
#F8CD5Fin the color palette. - Use template directory URI for hero cover image URLs.
- Update hero cover scroll link target to match the content section.
Improvements:
- Simplified the color palette to six core presets (
base,contrast,contrast-alt,primary,secondary,tertiary) and removed unused or overlapping tokens such asforeground,background,base-secondary,accent-light, extra accent colors, andborder-dark. - Renamed the background preset to
baseand standardizedcontrastas the primary text color across templates, patterns, and global styles. - Introduced
contrast-altfor secondary/meta text and wired it into captions, post meta, author/date blocks, and form placeholders for consistent typography. - Introduced
tertiaryas the shared border/divider color and updated tag cloud, preformatted blocks, inputs, and other UI elements to use it. - Updated gradients to be fully preset-driven, adding
primary-to-secondaryandbase-to-tertiaryand renaming existing gradients (background-to-secondaryβbase-to-secondary, etc.) to match the new palette. - Aligned the βBlack and Yellowβ duotone filter with the current primary color so it stays in sync with the brand yellow.
New Features:
- Added dedicated home and archive templates that use the posts-grid pattern for the main blog listing
- Added hidden-blog-heading pattern so the index template has an accessible blog heading without changing the visual layout
- Introduced additional query layouts: posts-stacked, posts-list-compact, posts-latest (three-column latest posts without pagination), and refined posts-list
Improvements:
- Simplified the index template and aligned home, archive, and search templates around shared query patterns and consistent site-content spacing
- Updated query patterns to use the core posts pattern category where appropriate for better discoverability in the inserter
- Standardized pagination wrappers with a query-pagination group and wavy separator styling across grid and list layouts
- Tweaked theme.json to remove a post-template grid align-items override and improved term-description spacing and typography
Bug Fixes:
- Hide the query pagination wrapper when there is only a single page of results by adding a body class and CSS rule, reducing visual noise on small archives
New Features:
- Added page template without title (page-no-title) and page with sidebar template
- Added sidebar template part and hidden-sidebar pattern
- Added header pattern with top bar and footer variants (footer-columns, footer-columns-background, footer-background)
- Added post-navigation and Share Post patterns; single template uses both
- Added comments pattern (list, pagination, comment form) and single-standard template
- Added page-home pattern for front page; front page now uses pattern instead of dedicated template
- Added hidden patterns for 404, post meta, section header, and sidebar
- Added Recommended Plugins page under Appearance
- Added ghost button style, wavy separator mask style, and icon system
- Applied default featured image only to posts, not pages
Improvements:
- Refactored theme.json to preset/custom shorthand; primary/secondary font slugs, root padding, image lightbox
- Refined style.css: link thickness and offset, :focus-visible, text-wrap, navigation outline, hero padding, admin bar variable
- Centralized featured image, date, category, and tag styling in theme.json
- Single template: 2-column header (title/date + image), separators around navigation, comments pattern
- Search template: query title, search form, posts-list pattern
- Unified post meta (date + terms) via hidden-post-meta pattern across grid, query loop, showcase, and related
- Set excerpt length to 34 words in post patterns; category above title, tags below content
- Renamed and aligned pattern slugs and headers (footer.php, header.php, post-share, etc.)
- Made pattern strings translation-ready (esc_html_x, translatable labels)
- Normalized spacing with numeric presets and consistent main wrapper across templates
- Simplified theme setup and dev tooling (composer, PHPCS, PHPStan, EditorConfig, Prettier)
Removed:
- Archive template; general-heading and legacy post patterns removed or renamed
New Features:
- Added default featured image fallback with diagonal stripe pattern
- Added gallery and related posts patterns
- Added font pairing support with multiple typography presets
- Added variable font files (Crimson Pro, Open Sans, Montserrat, Playfair Display)
Improvements:
- Implemented standardized cross-theme font size system (7-size scale)
- Consolidated spacing system to 7 semantic presets
- Refined footer pattern with spacing presets
- Refined posts grid layouts and styling
- Updated templates to use semantic spacing presets
- Styled tag cloud with hashtag prefix and improved typography
- Increased wide layout width and added new accent color
Bug Fixes:
- Fixed spacing consistency in post grid patterns
- Fixed duplicate wrapper in front page template
- Fixed FSE editor issues in multiple patterns
- Work in progress β more updates coming soon
- Initial release (based on Twenty Twenty-Two)
