v0.1.0 - Core Theme: patterns, dark mode, block styles, style variations
Some checks failed
Create Release Package / PHP Lint (push) Successful in 52s
Create Release Package / Build Release (push) Failing after 1m52s

- Add 16 block patterns across 7 new categories (hero, features, CTA,
  testimonials, pricing, contact, text)
- Add dark mode toggle with localStorage persistence and system preference
  detection (Bootstrap 5.3 data-bs-theme)
- Register 17 custom block styles mapping Bootstrap components to WordPress
  blocks (cards, alerts, tables, buttons, etc.)
- Add 4 style variations: Ocean, Forest, Sunset, Midnight
- Add sidebar template part and "Blog with Sidebar" custom template
- Add Inter and Lora variable fonts with fontFace declarations
- Add Display font size (fluid 2.5rem-3.5rem)
- Update translations (en_US .pot, de_CH .po) with all new strings
- Bump version to 0.1.0

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-02-08 03:07:16 +01:00
parent d7415b9747
commit 9bb7f4f47f
41 changed files with 2670 additions and 37 deletions

View File

@@ -2,6 +2,26 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [0.1.0] - 2026-02-08
### Added
- Dark mode toggle with Bootstrap 5.3 `data-bs-theme` attribute, localStorage persistence, and `prefers-color-scheme` support
- 16 new block patterns: hero (cover, split, centered), features (3-col, icon list, 2-col offset), CTA (banner, newsletter), testimonials (2-col, centered), pricing (3-col), contact info, FAQ, about section, sidebar, dark mode toggle
- 17 custom block styles: cards (2), alerts (4), table variants (3), quote accent, image effects (2), button sizes (2), list styles (2), separator wide
- 4 style variations (color schemes): Ocean, Forest, Sunset, Midnight
- Sidebar template part with recent posts, search, and tag cloud
- "Blog with Sidebar" custom page template
- Inter (sans-serif) and Lora (serif) variable web fonts
- "Display" font size for hero headings
- 7 new pattern categories: hero, CTA, features, testimonials, pricing, contact, text
- Dark mode overrides for alert and card block styles in SCSS
### Changed
- Header pattern now includes dark mode toggle button
- Build pipeline adds theme JS copy step (`copy:theme-js`)
## [0.0.1] - 2026-02-08 ## [0.0.1] - 2026-02-08
### Added ### Added

58
PLAN.md
View File

@@ -33,47 +33,47 @@ node_modules/bootstrap/dist/js/ → copyfiles → assets/js/bootstrap.bundle.min
## Version Roadmap ## Version Roadmap
### v0.0.1 - Getting Started (Current) ### v0.0.1 - Getting Started (Complete)
- Theme scaffolding and project setup - [x] Theme scaffolding and project setup
- Bootstrap 5 CSS/JS integration - [x] Bootstrap 5 CSS/JS integration
- SASS build pipeline - [x] SASS build pipeline
- Basic FSE templates and patterns - [x] Basic FSE templates and patterns
- Twig infrastructure - [x] Twig infrastructure
- Gitea CI/CD workflow - [x] Gitea CI/CD workflow
- i18n support (en_US, de_CH) - [x] i18n support (en_US, de_CH)
### v0.1.0 - Core Theme ### v0.1.0 - Core Theme (Complete)
- Complete set of block patterns - [x] Complete set of block patterns
- Dark mode toggle implementation - [x] Dark mode toggle implementation
- Custom block styles for Bootstrap components - [x] Custom block styles for Bootstrap components
- Style variations (color schemes) - [x] Style variations (color schemes)
- Sidebar template part - [x] Sidebar template part
- Enhanced typography settings - [x] Enhanced typography settings
### v0.2.0 - Design Editor ### v0.2.0 - Design Editor
- Full Design Editor compatibility - [ ] Full Design Editor compatibility
- Custom block categories - [ ] Custom block categories
- Page-level patterns and templates - [ ] Page-level patterns and templates
- Enhanced header/footer variations - [ ] Enhanced header/footer variations
- Custom navigation styles - [ ] Custom navigation styles
### v0.3.0 - Polish ### v0.3.0 - Polish
- Performance optimization (selective Bootstrap imports) - [ ] Performance optimization (selective Bootstrap imports)
- Accessibility audit and fixes - [ ] Accessibility audit and fixes
- RTL language support - [ ] RTL language support
- Additional translations - [ ] Additional translations
- Documentation - [ ] Documentation
### v1.0.0 - Release ### v1.0.0 - Release
- All features complete and tested - [ ] All features complete and tested
- WordPress.org theme review compliance - [ ] WordPress.org theme review compliance
- Comprehensive documentation - [ ] Comprehensive documentation
- Full test coverage - [ ] Full test coverage
## Bootstrap 5 Integration Strategy ## Bootstrap 5 Integration Strategy

View File

@@ -11890,4 +11890,51 @@ h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6, blockquote, caption, figca
overflow-x: auto; overflow-x: auto;
} }
.wp-bootstrap-dark-mode-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
background: none;
border: none;
cursor: pointer;
padding: 0.375rem;
color: currentColor;
line-height: 1;
transition: opacity 0.15s ease-in-out;
}
.wp-bootstrap-dark-mode-toggle:hover {
opacity: 0.75;
}
.wp-bootstrap-dark-mode-toggle:focus-visible {
outline: 2px solid currentColor;
outline-offset: 2px;
border-radius: 0.25rem;
}
[data-bs-theme=dark] .is-style-alert-info {
background-color: #032830;
border-color: #055160;
color: #6edff6;
}
[data-bs-theme=dark] .is-style-alert-success {
background-color: #051b11;
border-color: #0a3622;
color: #75b798;
}
[data-bs-theme=dark] .is-style-alert-warning {
background-color: #332701;
border-color: #664d03;
color: #ffda6a;
}
[data-bs-theme=dark] .is-style-alert-danger {
background-color: #2c0b0e;
border-color: #58151c;
color: #ea868f;
}
[data-bs-theme=dark] .is-style-card,
[data-bs-theme=dark] .is-style-card-shadow {
border-color: #6c757d;
background: var(--bs-body-bg);
}
/*# sourceMappingURL=style.css.map */ /*# sourceMappingURL=style.css.map */

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

74
assets/js/dark-mode.js Normal file
View File

@@ -0,0 +1,74 @@
/**
* WP Bootstrap Dark Mode Toggle
*
* Handles dark mode switching using Bootstrap 5.3's data-bs-theme attribute.
* Respects prefers-color-scheme media query and persists choice in localStorage.
*
* @package WPBootstrap
* @since 0.1.0
*/
(function () {
'use strict';
var STORAGE_KEY = 'wp-bootstrap-theme';
var ATTR = 'data-bs-theme';
/**
* Get the user's stored preference, or fall back to system preference.
*
* @return {string} 'dark' or 'light'
*/
function getPreferredTheme() {
var stored = localStorage.getItem(STORAGE_KEY);
if (stored) {
return stored;
}
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
}
/**
* Apply the theme to the document and update all toggle buttons.
*
* @param {string} theme - 'dark' or 'light'
*/
function setTheme(theme) {
document.documentElement.setAttribute(ATTR, theme);
document.querySelectorAll('[data-bs-theme-toggle]').forEach(function (toggle) {
var isDark = theme === 'dark';
toggle.setAttribute('aria-label', isDark
? (toggle.dataset.labelLight || 'Switch to light mode')
: (toggle.dataset.labelDark || 'Switch to dark mode'));
toggle.setAttribute('aria-pressed', String(isDark));
var sunIcon = toggle.querySelector('.wp-bootstrap-sun-icon');
var moonIcon = toggle.querySelector('.wp-bootstrap-moon-icon');
if (sunIcon) sunIcon.style.display = isDark ? 'inline-block' : 'none';
if (moonIcon) moonIcon.style.display = isDark ? 'none' : 'inline-block';
});
}
// Apply theme immediately to prevent flash.
setTheme(getPreferredTheme());
// When DOM is ready, re-apply for toggle buttons and attach event listeners.
document.addEventListener('DOMContentLoaded', function () {
setTheme(getPreferredTheme());
document.querySelectorAll('[data-bs-theme-toggle]').forEach(function (toggle) {
toggle.addEventListener('click', function () {
var currentTheme = document.documentElement.getAttribute(ATTR);
var newTheme = currentTheme === 'dark' ? 'light' : 'dark';
localStorage.setItem(STORAGE_KEY, newTheme);
setTheme(newTheme);
});
});
});
// Listen for system preference changes when no stored preference exists.
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (e) {
if (!localStorage.getItem(STORAGE_KEY)) {
setTheme(e.matches ? 'dark' : 'light');
}
});
})();

View File

@@ -62,6 +62,25 @@ if ( ! function_exists( 'wp_bootstrap_enqueue_scripts' ) ) :
$theme_version, $theme_version,
true true
); );
// Enqueue dark mode toggle script.
wp_enqueue_script(
'wp-bootstrap-dark-mode',
get_template_directory_uri() . '/assets/js/dark-mode.js',
array(),
$theme_version,
array(
'strategy' => 'defer',
'in_footer' => false,
)
);
// Inline script to prevent flash of wrong theme.
wp_add_inline_script(
'wp-bootstrap-dark-mode',
'(function(){var t=localStorage.getItem("wp-bootstrap-theme")||(window.matchMedia("(prefers-color-scheme:dark)").matches?"dark":"light");document.documentElement.setAttribute("data-bs-theme",t)})();',
'before'
);
} }
endif; endif;
add_action( 'wp_enqueue_scripts', 'wp_bootstrap_enqueue_scripts' ); add_action( 'wp_enqueue_scripts', 'wp_bootstrap_enqueue_scripts' );
@@ -78,10 +97,213 @@ if ( ! function_exists( 'wp_bootstrap_pattern_categories' ) ) :
'description' => __( 'A collection of full page layouts.', 'wp-bootstrap' ), 'description' => __( 'A collection of full page layouts.', 'wp-bootstrap' ),
) )
); );
register_block_pattern_category(
'wp-bootstrap_hero',
array(
'label' => __( 'Hero Sections', 'wp-bootstrap' ),
'description' => __( 'Large hero and banner sections.', 'wp-bootstrap' ),
)
);
register_block_pattern_category(
'wp-bootstrap_cta',
array(
'label' => __( 'Call to Action', 'wp-bootstrap' ),
'description' => __( 'Call to action sections.', 'wp-bootstrap' ),
)
);
register_block_pattern_category(
'wp-bootstrap_features',
array(
'label' => __( 'Features', 'wp-bootstrap' ),
'description' => __( 'Feature and service showcase sections.', 'wp-bootstrap' ),
)
);
register_block_pattern_category(
'wp-bootstrap_testimonials',
array(
'label' => __( 'Testimonials', 'wp-bootstrap' ),
'description' => __( 'Testimonial and review sections.', 'wp-bootstrap' ),
)
);
register_block_pattern_category(
'wp-bootstrap_pricing',
array(
'label' => __( 'Pricing', 'wp-bootstrap' ),
'description' => __( 'Pricing table sections.', 'wp-bootstrap' ),
)
);
register_block_pattern_category(
'wp-bootstrap_contact',
array(
'label' => __( 'Contact', 'wp-bootstrap' ),
'description' => __( 'Contact information sections.', 'wp-bootstrap' ),
)
);
register_block_pattern_category(
'wp-bootstrap_text',
array(
'label' => __( 'Text & Content', 'wp-bootstrap' ),
'description' => __( 'Text-focused content sections.', 'wp-bootstrap' ),
)
);
} }
endif; endif;
add_action( 'init', 'wp_bootstrap_pattern_categories' ); add_action( 'init', 'wp_bootstrap_pattern_categories' );
/**
* Register custom block styles for Bootstrap components.
*
* @since 0.1.0
*/
if ( ! function_exists( 'wp_bootstrap_block_styles' ) ) :
function wp_bootstrap_block_styles() {
// core/list - Checkmark style.
register_block_style( 'core/list', array(
'name' => 'checkmark-list',
'label' => __( 'Checkmark', 'wp-bootstrap' ),
'inline_style' => '
ul.is-style-checkmark-list { list-style-type: "\2713"; }
ul.is-style-checkmark-list li { padding-inline-start: 1ch; }',
) );
// core/list - Unstyled.
register_block_style( 'core/list', array(
'name' => 'list-unstyled',
'label' => __( 'Unstyled', 'wp-bootstrap' ),
'inline_style' => '
ul.is-style-list-unstyled, ol.is-style-list-unstyled { list-style: none; padding-left: 0; }',
) );
// core/group - Card.
register_block_style( 'core/group', array(
'name' => 'card',
'label' => __( 'Card', 'wp-bootstrap' ),
'inline_style' => '
.is-style-card { border: 1px solid var(--wp--preset--color--light, #dee2e6); border-radius: 0.375rem; padding: var(--wp--preset--spacing--40); background: var(--wp--preset--color--base); }',
) );
// core/group - Card with Shadow.
register_block_style( 'core/group', array(
'name' => 'card-shadow',
'label' => __( 'Card with Shadow', 'wp-bootstrap' ),
'inline_style' => '
.is-style-card-shadow { border: 1px solid var(--wp--preset--color--light, #dee2e6); border-radius: 0.375rem; padding: var(--wp--preset--spacing--40); background: var(--wp--preset--color--base); box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); }',
) );
// core/group - Alert Info.
register_block_style( 'core/group', array(
'name' => 'alert-info',
'label' => __( 'Alert - Info', 'wp-bootstrap' ),
'inline_style' => '
.is-style-alert-info { background-color: #cff4fc; border: 1px solid #9eeaf9; color: #055160; border-radius: 0.375rem; padding: var(--wp--preset--spacing--30); }',
) );
// core/group - Alert Success.
register_block_style( 'core/group', array(
'name' => 'alert-success',
'label' => __( 'Alert - Success', 'wp-bootstrap' ),
'inline_style' => '
.is-style-alert-success { background-color: #d1e7dd; border: 1px solid #a3cfbb; color: #0a3622; border-radius: 0.375rem; padding: var(--wp--preset--spacing--30); }',
) );
// core/group - Alert Warning.
register_block_style( 'core/group', array(
'name' => 'alert-warning',
'label' => __( 'Alert - Warning', 'wp-bootstrap' ),
'inline_style' => '
.is-style-alert-warning { background-color: #fff3cd; border: 1px solid #ffe69c; color: #664d03; border-radius: 0.375rem; padding: var(--wp--preset--spacing--30); }',
) );
// core/group - Alert Danger.
register_block_style( 'core/group', array(
'name' => 'alert-danger',
'label' => __( 'Alert - Danger', 'wp-bootstrap' ),
'inline_style' => '
.is-style-alert-danger { background-color: #f8d7da; border: 1px solid #f1aeb5; color: #58151c; border-radius: 0.375rem; padding: var(--wp--preset--spacing--30); }',
) );
// core/table - Striped Rows.
register_block_style( 'core/table', array(
'name' => 'table-striped',
'label' => __( 'Striped Rows', 'wp-bootstrap' ),
'inline_style' => '
.is-style-table-striped tbody tr:nth-of-type(odd) > * { background-color: rgba(0, 0, 0, 0.05); }',
) );
// core/table - Hover Rows.
register_block_style( 'core/table', array(
'name' => 'table-hover',
'label' => __( 'Hover Rows', 'wp-bootstrap' ),
'inline_style' => '
.is-style-table-hover tbody tr:hover > * { background-color: rgba(0, 0, 0, 0.075); }',
) );
// core/table - Bordered.
register_block_style( 'core/table', array(
'name' => 'table-bordered',
'label' => __( 'Bordered', 'wp-bootstrap' ),
'inline_style' => '
.is-style-table-bordered, .is-style-table-bordered td, .is-style-table-bordered th { border: 1px solid var(--wp--preset--color--light, #dee2e6); }',
) );
// core/quote - Accent Border.
register_block_style( 'core/quote', array(
'name' => 'blockquote-accent',
'label' => __( 'Accent Border', 'wp-bootstrap' ),
'inline_style' => '
.is-style-blockquote-accent { border-left: 4px solid var(--wp--preset--color--primary); background: var(--wp--preset--color--light); padding: var(--wp--preset--spacing--30); border-radius: 0 0.375rem 0.375rem 0; }',
) );
// core/image - Shadow.
register_block_style( 'core/image', array(
'name' => 'shadow',
'label' => __( 'Shadow', 'wp-bootstrap' ),
'inline_style' => '
.is-style-shadow img { box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); }',
) );
// core/image - Large Rounded.
register_block_style( 'core/image', array(
'name' => 'rounded-lg',
'label' => __( 'Large Rounded', 'wp-bootstrap' ),
'inline_style' => '
.is-style-rounded-lg img { border-radius: 0.75rem; }',
) );
// core/button - Large.
register_block_style( 'core/button', array(
'name' => 'btn-lg',
'label' => __( 'Large', 'wp-bootstrap' ),
'inline_style' => '
.is-style-btn-lg .wp-block-button__link { padding: 0.75rem 1.5rem; font-size: 1.25rem; border-radius: 0.5rem; }',
) );
// core/button - Small.
register_block_style( 'core/button', array(
'name' => 'btn-sm',
'label' => __( 'Small', 'wp-bootstrap' ),
'inline_style' => '
.is-style-btn-sm .wp-block-button__link { padding: 0.25rem 0.5rem; font-size: 0.875rem; border-radius: 0.25rem; }',
) );
// core/separator - Wide.
register_block_style( 'core/separator', array(
'name' => 'separator-wide',
'label' => __( 'Wide', 'wp-bootstrap' ),
'inline_style' => '
.is-style-separator-wide { max-width: none; }',
) );
}
endif;
add_action( 'init', 'wp_bootstrap_block_styles' );
/** /**
* Initialize Twig template engine. * Initialize Twig template engine.
*/ */

View File

@@ -4,7 +4,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WP Bootstrap 0.0.1\n" "Project-Id-Version: WP Bootstrap 0.1.0\n"
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/magdev/wp-bootstrap/issues\n" "Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/magdev/wp-bootstrap/issues\n"
"POT-Creation-Date: 2026-02-08 00:00+0000\n" "POT-Creation-Date: 2026-02-08 00:00+0000\n"
"PO-Revision-Date: 2026-02-08 00:00+0000\n" "PO-Revision-Date: 2026-02-08 00:00+0000\n"
@@ -15,8 +15,10 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Domain: wp-bootstrap\n"
#. Theme Name of the theme #. Theme Name of the theme
#: patterns/footer.php
msgid "WP Bootstrap" msgid "WP Bootstrap"
msgstr "WP Bootstrap" msgstr "WP Bootstrap"
@@ -41,10 +43,12 @@ msgid "The page you are looking for does not exist, or it has been moved. Please
msgstr "Die gesuchte Seite existiert nicht oder wurde verschoben. Bitte verwenden Sie das untenstehende Suchformular." msgstr "Die gesuchte Seite existiert nicht oder wurde verschoben. Bitte verwenden Sie das untenstehende Suchformular."
#: patterns/hidden-search.php #: patterns/hidden-search.php
#: patterns/hidden-sidebar.php
msgid "Search" msgid "Search"
msgstr "Suchen" msgstr "Suchen"
#: patterns/hidden-search.php #: patterns/hidden-search.php
#: patterns/hidden-sidebar.php
msgid "Search..." msgid "Search..."
msgstr "Suchen..." msgstr "Suchen..."
@@ -76,6 +80,373 @@ msgstr "Weiterlesen"
msgid "No posts were found." msgid "No posts were found."
msgstr "Es wurden keine Beiträge gefunden." msgstr "Es wurden keine Beiträge gefunden."
#: patterns/hero-cover.php
msgid "Build something amazing"
msgstr "Erstellen Sie etwas Grossartiges"
#: patterns/hero-cover.php
msgid "Create modern, responsive websites with the power of Bootstrap 5 and the WordPress Site Editor."
msgstr "Erstellen Sie moderne, responsive Websites mit der Leistung von Bootstrap 5 und dem WordPress Site-Editor."
#: patterns/hero-cover.php
#: patterns/hero-centered.php
#: patterns/pricing-3-col.php
msgid "Get Started"
msgstr "Jetzt starten"
#: patterns/hero-split.php
msgid "Modern design meets powerful features"
msgstr "Modernes Design trifft auf leistungsstarke Funktionen"
#: patterns/hero-split.php
msgid "A WordPress theme built from the ground up with Bootstrap 5 for a seamless editing and browsing experience."
msgstr "Ein WordPress-Theme, von Grund auf mit Bootstrap 5 erstellt, für ein nahtloses Bearbeitungs- und Browsing-Erlebnis."
#: patterns/hero-split.php
#: patterns/hero-centered.php
#: patterns/text-about.php
msgid "Learn More"
msgstr "Mehr erfahren"
#: patterns/hero-split.php
msgid "View Demo"
msgstr "Demo ansehen"
#: patterns/hero-split.php
msgid "Hero image"
msgstr "Heldenbild"
#: patterns/hero-centered.php
msgid "Welcome to your new website"
msgstr "Willkommen auf Ihrer neuen Website"
#: patterns/hero-centered.php
msgid "Start building beautiful, responsive pages with the full power of Bootstrap 5 and the WordPress block editor."
msgstr "Beginnen Sie mit dem Erstellen schöner, responsiver Seiten mit der vollen Leistung von Bootstrap 5 und dem WordPress Block-Editor."
#: patterns/features-3-col.php
#: functions.php
msgid "Features"
msgstr "Funktionen"
#: patterns/features-3-col.php
msgid "Everything you need to build a modern website."
msgstr "Alles, was Sie für eine moderne Website benötigen."
#: patterns/features-3-col.php
msgid "Responsive Design"
msgstr "Responsives Design"
#: patterns/features-3-col.php
msgid "Your website looks great on every device, from mobile phones to large desktop screens."
msgstr "Ihre Website sieht auf jedem Gerät grossartig aus, vom Mobiltelefon bis zum grossen Desktop-Bildschirm."
#: patterns/features-3-col.php
msgid "Easy Customization"
msgstr "Einfache Anpassung"
#: patterns/features-3-col.php
msgid "Customize colors, fonts, and layouts using the WordPress Site Editor with no code required."
msgstr "Passen Sie Farben, Schriftarten und Layouts mit dem WordPress Site-Editor an, ganz ohne Programmierung."
#: patterns/features-3-col.php
msgid "Performance First"
msgstr "Leistung zuerst"
#: patterns/features-3-col.php
msgid "Built with speed in mind. Optimized assets and clean code for lightning-fast page loads."
msgstr "Entwickelt mit Fokus auf Geschwindigkeit. Optimierte Ressourcen und sauberer Code für blitzschnelle Seitenladezeiten."
#: patterns/features-icon-list.php
msgid "Why choose us"
msgstr "Warum Sie uns wählen sollten"
#: patterns/features-icon-list.php
msgid "Bootstrap 5 Framework"
msgstr "Bootstrap 5 Framework"
#: patterns/features-icon-list.php
msgid "Built on the most popular CSS framework. Leverage a proven, well-documented design system."
msgstr "Basierend auf dem beliebtesten CSS-Framework. Nutzen Sie ein bewährtes, gut dokumentiertes Design-System."
#: patterns/features-icon-list.php
msgid "Full Site Editing"
msgstr "Vollständige Website-Bearbeitung"
#: patterns/features-icon-list.php
msgid "Edit every part of your site visually. Headers, footers, templates, and content are all customizable."
msgstr "Bearbeiten Sie jeden Teil Ihrer Website visuell. Kopfzeilen, Fusszeilen, Vorlagen und Inhalte sind vollständig anpassbar."
#: patterns/features-icon-list.php
msgid "Dark Mode Support"
msgstr "Darkmode-Unterstützung"
#: patterns/features-icon-list.php
msgid "Built-in dark mode toggle that respects user preferences and persists across visits."
msgstr "Integrierter Darkmode-Schalter, der Benutzereinstellungen respektiert und über Besuche hinweg beibehalten wird."
#: patterns/features-2-col-offset.php
msgid "Feature illustration"
msgstr "Funktionsillustration"
#: patterns/features-2-col-offset.php
msgid "Designed for modern workflows"
msgstr "Entwickelt für moderne Arbeitsabläufe"
#: patterns/features-2-col-offset.php
msgid "Streamline your development process with a theme that works the way you do."
msgstr "Optimieren Sie Ihren Entwicklungsprozess mit einem Theme, das so arbeitet wie Sie."
#: patterns/features-2-col-offset.php
msgid "Block Patterns"
msgstr "Block-Vorlagen"
#: patterns/features-2-col-offset.php
msgid "Pre-built patterns for common page sections. Drop them in and customize to fit your needs."
msgstr "Vorgefertigte Vorlagen für gängige Seitenabschnitte. Fügen Sie diese ein und passen Sie sie an Ihre Bedürfnisse an."
#: patterns/features-2-col-offset.php
msgid "Style Variations"
msgstr "Stilvariationen"
#: patterns/features-2-col-offset.php
msgid "Switch between color schemes with a single click. Choose from multiple professionally designed palettes."
msgstr "Wechseln Sie mit einem Klick zwischen Farbschemata. Wählen Sie aus mehreren professionell gestalteten Paletten."
#: patterns/cta-banner.php
msgid "Ready to get started?"
msgstr "Bereit loszulegen?"
#: patterns/cta-banner.php
msgid "Start building your website today with our powerful and flexible theme."
msgstr "Beginnen Sie noch heute mit dem Aufbau Ihrer Website mit unserem leistungsstarken und flexiblen Theme."
#: patterns/cta-banner.php
msgid "Start Now"
msgstr "Jetzt beginnen"
#: patterns/cta-newsletter.php
msgid "Stay in the loop"
msgstr "Bleiben Sie auf dem Laufenden"
#: patterns/cta-newsletter.php
msgid "Subscribe to our newsletter for updates, tips, and exclusive content."
msgstr "Abonnieren Sie unseren Newsletter für Aktualisierungen, Tipps und exklusive Inhalte."
#: patterns/cta-newsletter.php
msgid "Enter your email address"
msgstr "Geben Sie Ihre E-Mail-Adresse ein"
#: patterns/cta-newsletter.php
msgid "Subscribe"
msgstr "Abonnieren"
#: patterns/testimonials-2-col.php
msgid "What our clients say"
msgstr "Was unsere Kunden sagen"
#: patterns/testimonials-2-col.php
msgid "This theme completely transformed our website. The Bootstrap integration makes it incredibly easy to create professional-looking pages without any custom code."
msgstr "Dieses Theme hat unsere Website vollständig transformiert. Die Bootstrap-Integration macht es unglaublich einfach, professionell aussehende Seiten ohne individuellen Code zu erstellen."
#: patterns/testimonials-2-col.php
msgid "Jane Doe, Web Designer"
msgstr "Jane Doe, Webdesignerin"
#: patterns/testimonials-2-col.php
msgid "The dark mode support and style variations give us the flexibility we need. Our clients love being able to switch between color schemes effortlessly."
msgstr "Die Darkmode-Unterstützung und Stilvariationen geben uns die Flexibilität, die wir benötigen. Unsere Kunden schätzen es, mühelos zwischen Farbschemata wechseln zu können."
#: patterns/testimonials-2-col.php
msgid "John Smith, Developer"
msgstr "John Smith, Entwickler"
#: patterns/testimonials-centered.php
msgid "The best WordPress theme we have ever used. Clean code, beautiful design, and incredible flexibility."
msgstr "Das beste WordPress-Theme, das wir je verwendet haben. Sauberer Code, schönes Design und unglaubliche Flexibilität."
#: patterns/testimonials-centered.php
msgid "Alex Johnson, Creative Director"
msgstr "Alex Johnson, Kreativdirektor"
#: patterns/pricing-3-col.php
#: functions.php
msgid "Pricing"
msgstr "Preise"
#: patterns/pricing-3-col.php
msgid "Choose the plan that works best for you."
msgstr "Wählen Sie den Plan, der am besten zu Ihnen passt."
#: patterns/pricing-3-col.php
msgid "Basic"
msgstr "Basis"
#: patterns/pricing-3-col.php
msgid "Free"
msgstr "Kostenlos"
#: patterns/pricing-3-col.php
msgid "1 Website"
msgstr "1 Website"
#: patterns/pricing-3-col.php
msgid "Community Support"
msgstr "Community-Support"
#: patterns/pricing-3-col.php
msgid "Core Features"
msgstr "Kernfunktionen"
#: patterns/pricing-3-col.php
msgid "Professional"
msgstr "Professionell"
#: patterns/pricing-3-col.php
msgid "$49"
msgstr "49 $"
#: patterns/pricing-3-col.php
msgid "5 Websites"
msgstr "5 Websites"
#: patterns/pricing-3-col.php
msgid "Priority Support"
msgstr "Vorrangiger Support"
#: patterns/pricing-3-col.php
msgid "All Features"
msgstr "Alle Funktionen"
#: patterns/pricing-3-col.php
msgid "Enterprise"
msgstr "Unternehmen"
#: patterns/pricing-3-col.php
msgid "$199"
msgstr "199 $"
#: patterns/pricing-3-col.php
msgid "Unlimited Websites"
msgstr "Unbegrenzte Websites"
#: patterns/pricing-3-col.php
msgid "Dedicated Support"
msgstr "Persönlicher Support"
#: patterns/pricing-3-col.php
msgid "Custom Development"
msgstr "Individuelle Entwicklung"
#: patterns/pricing-3-col.php
msgid "Contact Us"
msgstr "Kontaktieren Sie uns"
#: patterns/contact-info.php
msgid "Get in touch"
msgstr "Kontakt aufnehmen"
#: patterns/contact-info.php
msgid "We would love to hear from you. Reach out through any of the channels below."
msgstr "Wir freuen uns von Ihnen zu hören. Kontaktieren Sie uns über einen der folgenden Kanäle."
#: patterns/contact-info.php
msgid "Address"
msgstr "Adresse"
#: patterns/contact-info.php
msgid "123 Example Street"
msgstr "Beispielstrasse 123"
#: patterns/contact-info.php
msgid "8000 Zurich, Switzerland"
msgstr "8000 Zürich, Schweiz"
#: patterns/contact-info.php
msgid "Phone"
msgstr "Telefon"
#: patterns/contact-info.php
msgid "+41 44 123 45 67"
msgstr "+41 44 123 45 67"
#: patterns/contact-info.php
#: patterns/cta-newsletter.php
msgid "Email"
msgstr "E-Mail"
#: patterns/contact-info.php
msgid "info@example.com"
msgstr "info@example.com"
#: patterns/text-faq.php
msgid "Frequently Asked Questions"
msgstr "Häufig gestellte Fragen"
#: patterns/text-faq.php
msgid "How do I install the theme?"
msgstr "Wie installiere ich das Theme?"
#: patterns/text-faq.php
msgid "Download the ZIP file from the releases page, then upload it via WordPress Admin > Appearance > Themes > Add New > Upload Theme."
msgstr "Laden Sie die ZIP-Datei von der Release-Seite herunter und laden Sie sie über WordPress-Admin > Design > Themes > Neu hinzufügen > Theme hochladen hoch."
#: patterns/text-faq.php
msgid "Does it work with the Site Editor?"
msgstr "Funktioniert es mit dem Site-Editor?"
#: patterns/text-faq.php
msgid "Yes, this is a Full Site Editing block theme. You can customize templates, headers, footers, and all block patterns using the WordPress Site Editor."
msgstr "Ja, dies ist ein Full-Site-Editing-Block-Theme. Sie können Vorlagen, Kopfzeilen, Fusszeilen und alle Block-Vorlagen mit dem WordPress Site-Editor anpassen."
#: patterns/text-faq.php
msgid "Can I use my own fonts?"
msgstr "Kann ich eigene Schriftarten verwenden?"
#: patterns/text-faq.php
msgid "The theme comes with Inter, Lora, and system font stacks. You can add custom fonts through the Site Editor or by modifying theme.json."
msgstr "Das Theme wird mit Inter, Lora und System-Schriftarten geliefert. Sie können eigene Schriftarten über den Site-Editor oder durch Anpassung der theme.json hinzufügen."
#: patterns/text-faq.php
msgid "Is dark mode supported?"
msgstr "Wird der Darkmode unterstützt?"
#: patterns/text-faq.php
msgid "Yes, the theme includes a dark mode toggle that uses Bootstrap 5.3 built-in dark mode. It respects system preferences and remembers your choice."
msgstr "Ja, das Theme enthält einen Darkmode-Schalter, der den integrierten Darkmode von Bootstrap 5.3 verwendet. Er respektiert Systemeinstellungen und merkt sich Ihre Wahl."
#: patterns/text-about.php
msgid "About us"
msgstr "Über uns"
#: patterns/text-about.php
msgid "We are passionate about creating tools that empower people to build beautiful websites. Our theme combines the reliability of Bootstrap with the flexibility of WordPress."
msgstr "Wir sind leidenschaftlich daran interessiert, Werkzeuge zu schaffen, die Menschen befähigen, schöne Websites zu erstellen. Unser Theme vereint die Zuverlässigkeit von Bootstrap mit der Flexibilität von WordPress."
#: patterns/text-about.php
msgid "With years of experience in web development and design, we understand what it takes to create a theme that is both powerful and easy to use."
msgstr "Mit jahrelanger Erfahrung in Webentwicklung und Design verstehen wir, was nötig ist, um ein Theme zu erstellen, das sowohl leistungsstark als auch einfach zu bedienen ist."
#: patterns/text-about.php
msgid "About us image"
msgstr "Über-uns-Bild"
#: patterns/hidden-sidebar.php
msgid "Recent Posts"
msgstr "Neueste Beiträge"
#: patterns/hidden-sidebar.php
msgid "Tags"
msgstr "Schlagwörter"
#: patterns/dark-mode-toggle.php
msgid "Switch to dark mode"
msgstr "Zum Darkmode wechseln"
#: patterns/dark-mode-toggle.php
msgid "Switch to light mode"
msgstr "Zum hellen Modus wechseln"
#: functions.php #: functions.php
msgid "Pages" msgid "Pages"
msgstr "Seiten" msgstr "Seiten"
@@ -83,3 +454,119 @@ msgstr "Seiten"
#: functions.php #: functions.php
msgid "A collection of full page layouts." msgid "A collection of full page layouts."
msgstr "Eine Sammlung von ganzseitigen Layouts." msgstr "Eine Sammlung von ganzseitigen Layouts."
#: functions.php
msgid "Hero Sections"
msgstr "Heldenabschnitte"
#: functions.php
msgid "Large hero and banner sections."
msgstr "Grosse Helden- und Banner-Abschnitte."
#: functions.php
msgid "Call to Action"
msgstr "Handlungsaufforderung"
#: functions.php
msgid "Call to action sections."
msgstr "Handlungsaufforderungs-Abschnitte."
#: functions.php
msgid "Feature and service showcase sections."
msgstr "Funktions- und Service-Präsentationsabschnitte."
#: functions.php
msgid "Testimonials"
msgstr "Referenzen"
#: functions.php
msgid "Testimonial and review sections."
msgstr "Referenz- und Bewertungsabschnitte."
#: functions.php
msgid "Pricing table sections."
msgstr "Preistabellen-Abschnitte."
#: functions.php
msgid "Contact"
msgstr "Kontakt"
#: functions.php
msgid "Contact information sections."
msgstr "Kontaktinformations-Abschnitte."
#: functions.php
msgid "Text & Content"
msgstr "Text & Inhalt"
#: functions.php
msgid "Text-focused content sections."
msgstr "Textorientierte Inhaltsabschnitte."
#: functions.php
msgid "Checkmark"
msgstr "Häkchen"
#: functions.php
msgid "Unstyled"
msgstr "Ohne Stil"
#: functions.php
msgid "Card"
msgstr "Karte"
#: functions.php
msgid "Card with Shadow"
msgstr "Karte mit Schatten"
#: functions.php
msgid "Alert - Info"
msgstr "Hinweis - Info"
#: functions.php
msgid "Alert - Success"
msgstr "Hinweis - Erfolg"
#: functions.php
msgid "Alert - Warning"
msgstr "Hinweis - Warnung"
#: functions.php
msgid "Alert - Danger"
msgstr "Hinweis - Gefahr"
#: functions.php
msgid "Striped Rows"
msgstr "Gestreifte Zeilen"
#: functions.php
msgid "Hover Rows"
msgstr "Hervorgehobene Zeilen"
#: functions.php
msgid "Bordered"
msgstr "Mit Rahmen"
#: functions.php
msgid "Accent Border"
msgstr "Akzentrahmen"
#: functions.php
msgid "Shadow"
msgstr "Schatten"
#: functions.php
msgid "Large Rounded"
msgstr "Gross abgerundet"
#: functions.php
msgid "Large"
msgstr "Gross"
#: functions.php
msgid "Small"
msgstr "Klein"
#: functions.php
msgid "Wide"
msgstr "Breit"

View File

@@ -2,7 +2,7 @@
# This file is distributed under the same license as the WP Bootstrap theme. # This file is distributed under the same license as the WP Bootstrap theme.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: WP Bootstrap 0.0.1\n" "Project-Id-Version: WP Bootstrap 0.1.0\n"
"Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/magdev/wp-bootstrap/issues\n" "Report-Msgid-Bugs-To: https://src.bundespruefstelle.ch/magdev/wp-bootstrap/issues\n"
"POT-Creation-Date: 2026-02-08 00:00+0000\n" "POT-Creation-Date: 2026-02-08 00:00+0000\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -11,8 +11,11 @@ msgstr ""
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: en_US\n"
"X-Domain: wp-bootstrap\n"
#. Theme Name of the theme #. Theme Name of the theme
#: patterns/footer.php
msgid "WP Bootstrap" msgid "WP Bootstrap"
msgstr "" msgstr ""
@@ -37,10 +40,12 @@ msgid "The page you are looking for does not exist, or it has been moved. Please
msgstr "" msgstr ""
#: patterns/hidden-search.php #: patterns/hidden-search.php
#: patterns/hidden-sidebar.php
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: patterns/hidden-search.php #: patterns/hidden-search.php
#: patterns/hidden-sidebar.php
msgid "Search..." msgid "Search..."
msgstr "" msgstr ""
@@ -72,6 +77,373 @@ msgstr ""
msgid "No posts were found." msgid "No posts were found."
msgstr "" msgstr ""
#: patterns/hero-cover.php
msgid "Build something amazing"
msgstr ""
#: patterns/hero-cover.php
msgid "Create modern, responsive websites with the power of Bootstrap 5 and the WordPress Site Editor."
msgstr ""
#: patterns/hero-cover.php
#: patterns/hero-centered.php
#: patterns/pricing-3-col.php
msgid "Get Started"
msgstr ""
#: patterns/hero-split.php
msgid "Modern design meets powerful features"
msgstr ""
#: patterns/hero-split.php
msgid "A WordPress theme built from the ground up with Bootstrap 5 for a seamless editing and browsing experience."
msgstr ""
#: patterns/hero-split.php
#: patterns/hero-centered.php
#: patterns/text-about.php
msgid "Learn More"
msgstr ""
#: patterns/hero-split.php
msgid "View Demo"
msgstr ""
#: patterns/hero-split.php
msgid "Hero image"
msgstr ""
#: patterns/hero-centered.php
msgid "Welcome to your new website"
msgstr ""
#: patterns/hero-centered.php
msgid "Start building beautiful, responsive pages with the full power of Bootstrap 5 and the WordPress block editor."
msgstr ""
#: patterns/features-3-col.php
#: functions.php
msgid "Features"
msgstr ""
#: patterns/features-3-col.php
msgid "Everything you need to build a modern website."
msgstr ""
#: patterns/features-3-col.php
msgid "Responsive Design"
msgstr ""
#: patterns/features-3-col.php
msgid "Your website looks great on every device, from mobile phones to large desktop screens."
msgstr ""
#: patterns/features-3-col.php
msgid "Easy Customization"
msgstr ""
#: patterns/features-3-col.php
msgid "Customize colors, fonts, and layouts using the WordPress Site Editor with no code required."
msgstr ""
#: patterns/features-3-col.php
msgid "Performance First"
msgstr ""
#: patterns/features-3-col.php
msgid "Built with speed in mind. Optimized assets and clean code for lightning-fast page loads."
msgstr ""
#: patterns/features-icon-list.php
msgid "Why choose us"
msgstr ""
#: patterns/features-icon-list.php
msgid "Bootstrap 5 Framework"
msgstr ""
#: patterns/features-icon-list.php
msgid "Built on the most popular CSS framework. Leverage a proven, well-documented design system."
msgstr ""
#: patterns/features-icon-list.php
msgid "Full Site Editing"
msgstr ""
#: patterns/features-icon-list.php
msgid "Edit every part of your site visually. Headers, footers, templates, and content are all customizable."
msgstr ""
#: patterns/features-icon-list.php
msgid "Dark Mode Support"
msgstr ""
#: patterns/features-icon-list.php
msgid "Built-in dark mode toggle that respects user preferences and persists across visits."
msgstr ""
#: patterns/features-2-col-offset.php
msgid "Feature illustration"
msgstr ""
#: patterns/features-2-col-offset.php
msgid "Designed for modern workflows"
msgstr ""
#: patterns/features-2-col-offset.php
msgid "Streamline your development process with a theme that works the way you do."
msgstr ""
#: patterns/features-2-col-offset.php
msgid "Block Patterns"
msgstr ""
#: patterns/features-2-col-offset.php
msgid "Pre-built patterns for common page sections. Drop them in and customize to fit your needs."
msgstr ""
#: patterns/features-2-col-offset.php
msgid "Style Variations"
msgstr ""
#: patterns/features-2-col-offset.php
msgid "Switch between color schemes with a single click. Choose from multiple professionally designed palettes."
msgstr ""
#: patterns/cta-banner.php
msgid "Ready to get started?"
msgstr ""
#: patterns/cta-banner.php
msgid "Start building your website today with our powerful and flexible theme."
msgstr ""
#: patterns/cta-banner.php
msgid "Start Now"
msgstr ""
#: patterns/cta-newsletter.php
msgid "Stay in the loop"
msgstr ""
#: patterns/cta-newsletter.php
msgid "Subscribe to our newsletter for updates, tips, and exclusive content."
msgstr ""
#: patterns/cta-newsletter.php
msgid "Enter your email address"
msgstr ""
#: patterns/cta-newsletter.php
msgid "Subscribe"
msgstr ""
#: patterns/testimonials-2-col.php
msgid "What our clients say"
msgstr ""
#: patterns/testimonials-2-col.php
msgid "This theme completely transformed our website. The Bootstrap integration makes it incredibly easy to create professional-looking pages without any custom code."
msgstr ""
#: patterns/testimonials-2-col.php
msgid "Jane Doe, Web Designer"
msgstr ""
#: patterns/testimonials-2-col.php
msgid "The dark mode support and style variations give us the flexibility we need. Our clients love being able to switch between color schemes effortlessly."
msgstr ""
#: patterns/testimonials-2-col.php
msgid "John Smith, Developer"
msgstr ""
#: patterns/testimonials-centered.php
msgid "The best WordPress theme we have ever used. Clean code, beautiful design, and incredible flexibility."
msgstr ""
#: patterns/testimonials-centered.php
msgid "Alex Johnson, Creative Director"
msgstr ""
#: patterns/pricing-3-col.php
#: functions.php
msgid "Pricing"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Choose the plan that works best for you."
msgstr ""
#: patterns/pricing-3-col.php
msgid "Basic"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Free"
msgstr ""
#: patterns/pricing-3-col.php
msgid "1 Website"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Community Support"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Core Features"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Professional"
msgstr ""
#: patterns/pricing-3-col.php
msgid "$49"
msgstr ""
#: patterns/pricing-3-col.php
msgid "5 Websites"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Priority Support"
msgstr ""
#: patterns/pricing-3-col.php
msgid "All Features"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Enterprise"
msgstr ""
#: patterns/pricing-3-col.php
msgid "$199"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Unlimited Websites"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Dedicated Support"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Custom Development"
msgstr ""
#: patterns/pricing-3-col.php
msgid "Contact Us"
msgstr ""
#: patterns/contact-info.php
msgid "Get in touch"
msgstr ""
#: patterns/contact-info.php
msgid "We would love to hear from you. Reach out through any of the channels below."
msgstr ""
#: patterns/contact-info.php
msgid "Address"
msgstr ""
#: patterns/contact-info.php
msgid "123 Example Street"
msgstr ""
#: patterns/contact-info.php
msgid "8000 Zurich, Switzerland"
msgstr ""
#: patterns/contact-info.php
msgid "Phone"
msgstr ""
#: patterns/contact-info.php
msgid "+41 44 123 45 67"
msgstr ""
#: patterns/contact-info.php
#: patterns/cta-newsletter.php
msgid "Email"
msgstr ""
#: patterns/contact-info.php
msgid "info@example.com"
msgstr ""
#: patterns/text-faq.php
msgid "Frequently Asked Questions"
msgstr ""
#: patterns/text-faq.php
msgid "How do I install the theme?"
msgstr ""
#: patterns/text-faq.php
msgid "Download the ZIP file from the releases page, then upload it via WordPress Admin > Appearance > Themes > Add New > Upload Theme."
msgstr ""
#: patterns/text-faq.php
msgid "Does it work with the Site Editor?"
msgstr ""
#: patterns/text-faq.php
msgid "Yes, this is a Full Site Editing block theme. You can customize templates, headers, footers, and all block patterns using the WordPress Site Editor."
msgstr ""
#: patterns/text-faq.php
msgid "Can I use my own fonts?"
msgstr ""
#: patterns/text-faq.php
msgid "The theme comes with Inter, Lora, and system font stacks. You can add custom fonts through the Site Editor or by modifying theme.json."
msgstr ""
#: patterns/text-faq.php
msgid "Is dark mode supported?"
msgstr ""
#: patterns/text-faq.php
msgid "Yes, the theme includes a dark mode toggle that uses Bootstrap 5.3 built-in dark mode. It respects system preferences and remembers your choice."
msgstr ""
#: patterns/text-about.php
msgid "About us"
msgstr ""
#: patterns/text-about.php
msgid "We are passionate about creating tools that empower people to build beautiful websites. Our theme combines the reliability of Bootstrap with the flexibility of WordPress."
msgstr ""
#: patterns/text-about.php
msgid "With years of experience in web development and design, we understand what it takes to create a theme that is both powerful and easy to use."
msgstr ""
#: patterns/text-about.php
msgid "About us image"
msgstr ""
#: patterns/hidden-sidebar.php
msgid "Recent Posts"
msgstr ""
#: patterns/hidden-sidebar.php
msgid "Tags"
msgstr ""
#: patterns/dark-mode-toggle.php
msgid "Switch to dark mode"
msgstr ""
#: patterns/dark-mode-toggle.php
msgid "Switch to light mode"
msgstr ""
#: functions.php #: functions.php
msgid "Pages" msgid "Pages"
msgstr "" msgstr ""
@@ -79,3 +451,119 @@ msgstr ""
#: functions.php #: functions.php
msgid "A collection of full page layouts." msgid "A collection of full page layouts."
msgstr "" msgstr ""
#: functions.php
msgid "Hero Sections"
msgstr ""
#: functions.php
msgid "Large hero and banner sections."
msgstr ""
#: functions.php
msgid "Call to Action"
msgstr ""
#: functions.php
msgid "Call to action sections."
msgstr ""
#: functions.php
msgid "Feature and service showcase sections."
msgstr ""
#: functions.php
msgid "Testimonials"
msgstr ""
#: functions.php
msgid "Testimonial and review sections."
msgstr ""
#: functions.php
msgid "Pricing table sections."
msgstr ""
#: functions.php
msgid "Contact"
msgstr ""
#: functions.php
msgid "Contact information sections."
msgstr ""
#: functions.php
msgid "Text & Content"
msgstr ""
#: functions.php
msgid "Text-focused content sections."
msgstr ""
#: functions.php
msgid "Checkmark"
msgstr ""
#: functions.php
msgid "Unstyled"
msgstr ""
#: functions.php
msgid "Card"
msgstr ""
#: functions.php
msgid "Card with Shadow"
msgstr ""
#: functions.php
msgid "Alert - Info"
msgstr ""
#: functions.php
msgid "Alert - Success"
msgstr ""
#: functions.php
msgid "Alert - Warning"
msgstr ""
#: functions.php
msgid "Alert - Danger"
msgstr ""
#: functions.php
msgid "Striped Rows"
msgstr ""
#: functions.php
msgid "Hover Rows"
msgstr ""
#: functions.php
msgid "Bordered"
msgstr ""
#: functions.php
msgid "Accent Border"
msgstr ""
#: functions.php
msgid "Shadow"
msgstr ""
#: functions.php
msgid "Large Rounded"
msgstr ""
#: functions.php
msgid "Large"
msgstr ""
#: functions.php
msgid "Small"
msgstr ""
#: functions.php
msgid "Wide"
msgstr ""

View File

@@ -1,6 +1,6 @@
{ {
"name": "wp-bootstrap", "name": "wp-bootstrap",
"version": "0.0.1", "version": "0.1.0",
"description": "WordPress Theme built with Bootstrap 5", "description": "WordPress Theme built with Bootstrap 5",
"author": "Marco Graetsch <magdev3.0@gmail.com>", "author": "Marco Graetsch <magdev3.0@gmail.com>",
"license": "GPL-2.0-or-later", "license": "GPL-2.0-or-later",
@@ -29,7 +29,8 @@
"scss:watch": "sass --watch src/scss/style.scss:assets/css/style.css src/scss/editor-style.scss:assets/css/editor-style.css --load-path=node_modules", "scss:watch": "sass --watch src/scss/style.scss:assets/css/style.css src/scss/editor-style.scss:assets/css/editor-style.css --load-path=node_modules",
"postcss": "postcss assets/css/style.css --use autoprefixer cssnano -o assets/css/style.min.css --no-map", "postcss": "postcss assets/css/style.css --use autoprefixer cssnano -o assets/css/style.min.css --no-map",
"copy:js": "copyfiles -f node_modules/bootstrap/dist/js/bootstrap.bundle.min.js node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map assets/js/", "copy:js": "copyfiles -f node_modules/bootstrap/dist/js/bootstrap.bundle.min.js node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map assets/js/",
"build": "npm run copy:js && npm run scss && npm run postcss", "copy:theme-js": "copyfiles -f src/js/dark-mode.js assets/js/",
"build": "npm run copy:js && npm run copy:theme-js && npm run scss && npm run postcss",
"watch": "npm run copy:js && npm run scss:watch", "watch": "npm run copy:js && npm run scss:watch",
"dev": "npm run watch" "dev": "npm run watch"
} }

1
parts/sidebar.html Normal file
View File

@@ -0,0 +1 @@
<!-- wp:pattern {"slug":"wp-bootstrap/hidden-sidebar"} /-->

52
patterns/contact-info.php Normal file
View File

@@ -0,0 +1,52 @@
<?php
/**
* Title: Contact information
* Slug: wp-bootstrap/contact-info
* Categories: wp-bootstrap_contact
* Description: A three-column contact information layout with address, phone, and email.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:heading {"textAlign":"center","fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size"><?php esc_html_e( 'Get in touch', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","textColor":"secondary"} -->
<p class="has-text-align-center has-secondary-color has-text-color"><?php esc_html_e( 'We would love to hear from you. Reach out through any of the channels below.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|50"}}}} -->
<div class="wp-block-columns alignwide"><!-- wp:column {"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}}} -->
<div class="wp-block-column" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:heading {"textAlign":"center","level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-text-align-center has-large-font-size"><?php esc_html_e( 'Address', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","textColor":"secondary"} -->
<p class="has-text-align-center has-secondary-color has-text-color"><?php esc_html_e( '123 Example Street', 'wp-bootstrap' ); ?><br><?php esc_html_e( '8000 Zurich, Switzerland', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->
<!-- wp:column {"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}}} -->
<div class="wp-block-column" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:heading {"textAlign":"center","level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-text-align-center has-large-font-size"><?php esc_html_e( 'Phone', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","textColor":"secondary"} -->
<p class="has-text-align-center has-secondary-color has-text-color"><?php esc_html_e( '+41 44 123 45 67', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->
<!-- wp:column {"style":{"spacing":{"padding":{"top":"var:preset|spacing|40","bottom":"var:preset|spacing|40"}}}} -->
<div class="wp-block-column" style="padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)"><!-- wp:heading {"textAlign":"center","level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-text-align-center has-large-font-size"><?php esc_html_e( 'Email', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","textColor":"secondary"} -->
<p class="has-text-align-center has-secondary-color has-text-color"><?php esc_html_e( 'info@example.com', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns --></div>
<!-- /wp:group -->

26
patterns/cta-banner.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
/**
* Title: Call to action banner
* Slug: wp-bootstrap/cta-banner
* Categories: wp-bootstrap_cta, call-to-action
* Description: A full-width call to action banner with a colored background, heading, description, and button.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"backgroundColor":"dark","textColor":"base","layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull has-base-color has-dark-background-color has-text-color has-background" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:heading {"textAlign":"center","fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size"><?php esc_html_e( 'Ready to get started?', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","fontSize":"large"} -->
<p class="has-text-align-center has-large-font-size"><?php esc_html_e( 'Start building your website today with our powerful and flexible theme.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button {"backgroundColor":"primary","textColor":"base","fontSize":"medium"} -->
<div class="wp-block-button has-custom-font-size has-medium-font-size"><a class="wp-block-button__link has-base-color has-primary-background-color has-text-color has-background wp-element-button"><?php esc_html_e( 'Start Now', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons --></div>
<!-- /wp:group -->

View File

@@ -0,0 +1,22 @@
<?php
/**
* Title: Newsletter signup
* Slug: wp-bootstrap/cta-newsletter
* Categories: wp-bootstrap_cta, call-to-action
* Description: A newsletter signup section with heading, description, and search block.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"backgroundColor":"light","layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull has-light-background-color has-background" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:heading {"textAlign":"center","fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size"><?php esc_html_e( 'Stay in the loop', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","textColor":"secondary"} -->
<p class="has-text-align-center has-secondary-color has-text-color"><?php esc_html_e( 'Subscribe to our newsletter for updates, tips, and exclusive content.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:search {"label":"<?php esc_attr_e( 'Email', 'wp-bootstrap' ); ?>","showLabel":false,"placeholder":"<?php esc_attr_e( 'Enter your email address', 'wp-bootstrap' ); ?>","width":75,"widthUnit":"%","buttonText":"<?php esc_attr_e( 'Subscribe', 'wp-bootstrap' ); ?>","buttonPosition":"button-inside","buttonUseIcon":false,"style":{"border":{"radius":"0.375rem"}}} /--></div>
<!-- /wp:group -->

View File

@@ -0,0 +1,17 @@
<?php
/**
* Title: Dark mode toggle
* Slug: wp-bootstrap/dark-mode-toggle
* Categories: header
* Description: A toggle button for switching between light and dark mode.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:html -->
<button type="button" class="wp-bootstrap-dark-mode-toggle" data-bs-theme-toggle aria-label="<?php esc_attr_e( 'Switch to dark mode', 'wp-bootstrap' ); ?>" data-label-dark="<?php esc_attr_e( 'Switch to dark mode', 'wp-bootstrap' ); ?>" data-label-light="<?php esc_attr_e( 'Switch to light mode', 'wp-bootstrap' ); ?>" aria-pressed="false">
<svg class="wp-bootstrap-sun-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:none;" aria-hidden="true"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"/><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"/></svg>
<svg class="wp-bootstrap-moon-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></svg>
</button>
<!-- /wp:html -->

View File

@@ -0,0 +1,54 @@
<?php
/**
* Title: Features two columns with image
* Slug: wp-bootstrap/features-2-col-offset
* Categories: wp-bootstrap_features
* Description: A two-column layout with a large image on the left and stacked features on the right.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|60"}}}} -->
<div class="wp-block-columns alignwide"><!-- wp:column {"verticalAlignment":"center"} -->
<div class="wp-block-column is-vertically-aligned-center"><!-- wp:image {"sizeSlug":"large","style":{"border":{"radius":"0.5rem"}}} -->
<figure class="wp-block-image size-large" style="border-radius:0.5rem"><img src="" alt="<?php esc_attr_e( 'Feature illustration', 'wp-bootstrap' ); ?>"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column -->
<!-- wp:column {"verticalAlignment":"center"} -->
<div class="wp-block-column is-vertically-aligned-center"><!-- wp:heading {"fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-xx-large-font-size"><?php esc_html_e( 'Designed for modern workflows', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Streamline your development process with a theme that works the way you do.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:spacer {"height":"var:preset|spacing|30"} -->
<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Block Patterns', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Pre-built patterns for common page sections. Drop them in and customize to fit your needs.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:spacer {"height":"var:preset|spacing|30"} -->
<div style="height:var(--wp--preset--spacing--30)" aria-hidden="true" class="wp-block-spacer"></div>
<!-- /wp:spacer -->
<!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Style Variations', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Switch between color schemes with a single click. Choose from multiple professionally designed palettes.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns --></div>
<!-- /wp:group -->

View File

@@ -0,0 +1,64 @@
<?php
/**
* Title: Features three columns
* Slug: wp-bootstrap/features-3-col
* Categories: wp-bootstrap_features
* Description: A three-column feature grid with images, headings, and descriptions.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:heading {"textAlign":"center","fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size"><?php esc_html_e( 'Features', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","textColor":"secondary"} -->
<p class="has-text-align-center has-secondary-color has-text-color"><?php esc_html_e( 'Everything you need to build a modern website.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|50"}}}} -->
<div class="wp-block-columns alignwide"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:image {"width":"64px","height":"64px","sizeSlug":"thumbnail"} -->
<figure class="wp-block-image size-thumbnail is-resized"><img src="" alt="" style="width:64px;height:64px"/></figure>
<!-- /wp:image -->
<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><?php esc_html_e( 'Responsive Design', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Your website looks great on every device, from mobile phones to large desktop screens.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column"><!-- wp:image {"width":"64px","height":"64px","sizeSlug":"thumbnail"} -->
<figure class="wp-block-image size-thumbnail is-resized"><img src="" alt="" style="width:64px;height:64px"/></figure>
<!-- /wp:image -->
<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><?php esc_html_e( 'Easy Customization', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Customize colors, fonts, and layouts using the WordPress Site Editor with no code required.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column"><!-- wp:image {"width":"64px","height":"64px","sizeSlug":"thumbnail"} -->
<figure class="wp-block-image size-thumbnail is-resized"><img src="" alt="" style="width:64px;height:64px"/></figure>
<!-- /wp:image -->
<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading"><?php esc_html_e( 'Performance First', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Built with speed in mind. Optimized assets and clean code for lightning-fast page loads.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:column --></div>
<!-- /wp:columns --></div>
<!-- /wp:group -->

View File

@@ -0,0 +1,66 @@
<?php
/**
* Title: Features icon list
* Slug: wp-bootstrap/features-icon-list
* Categories: wp-bootstrap_features
* Description: A vertical list of features with icon images and text descriptions.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:heading {"textAlign":"center","fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size"><?php esc_html_e( 'Why choose us', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:group {"align":"wide","style":{"spacing":{"blockGap":"var:preset|spacing|50"}},"layout":{"type":"constrained","contentSize":"720px"}} -->
<div class="wp-block-group alignwide"><!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"top"}} -->
<div class="wp-block-group"><!-- wp:image {"width":"48px","height":"48px","sizeSlug":"thumbnail"} -->
<figure class="wp-block-image size-thumbnail is-resized"><img src="" alt="" style="width:48px;height:48px"/></figure>
<!-- /wp:image -->
<!-- wp:group {"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Bootstrap 5 Framework', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Built on the most popular CSS framework. Leverage a proven, well-documented design system.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:group --></div>
<!-- /wp:group -->
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"top"}} -->
<div class="wp-block-group"><!-- wp:image {"width":"48px","height":"48px","sizeSlug":"thumbnail"} -->
<figure class="wp-block-image size-thumbnail is-resized"><img src="" alt="" style="width:48px;height:48px"/></figure>
<!-- /wp:image -->
<!-- wp:group {"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Full Site Editing', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Edit every part of your site visually. Headers, footers, templates, and content are all customizable.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:group --></div>
<!-- /wp:group -->
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|30"}},"layout":{"type":"flex","flexWrap":"nowrap","verticalAlignment":"top"}} -->
<div class="wp-block-group"><!-- wp:image {"width":"48px","height":"48px","sizeSlug":"thumbnail"} -->
<figure class="wp-block-image size-thumbnail is-resized"><img src="" alt="" style="width:48px;height:48px"/></figure>
<!-- /wp:image -->
<!-- wp:group {"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Dark Mode Support', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Built-in dark mode toggle that respects user preferences and persists across visits.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:group --></div>
<!-- /wp:group --></div>
<!-- /wp:group --></div>
<!-- /wp:group -->

View File

@@ -17,9 +17,10 @@
<!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30"}}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} --> <!-- wp:group {"align":"wide","style":{"spacing":{"padding":{"top":"var:preset|spacing|30","bottom":"var:preset|spacing|30"}}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"space-between"}} -->
<div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)"> <div class="wp-block-group alignwide" style="padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)">
<!-- wp:site-title {"level":0} /--> <!-- wp:site-title {"level":0} /-->
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|10"}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right"}} --> <!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"flex","flexWrap":"nowrap","justifyContent":"right","verticalAlignment":"center"}} -->
<div class="wp-block-group"> <div class="wp-block-group">
<!-- wp:navigation {"overlayBackgroundColor":"base","overlayTextColor":"contrast","layout":{"type":"flex","justifyContent":"right","flexWrap":"wrap"}} /--> <!-- wp:navigation {"overlayBackgroundColor":"base","overlayTextColor":"contrast","layout":{"type":"flex","justifyContent":"right","flexWrap":"wrap"}} /-->
<!-- wp:pattern {"slug":"wp-bootstrap/dark-mode-toggle"} /-->
</div> </div>
<!-- /wp:group --> <!-- /wp:group -->
</div> </div>

View File

@@ -0,0 +1,30 @@
<?php
/**
* Title: Hero centered
* Slug: wp-bootstrap/hero-centered
* Categories: wp-bootstrap_hero, banner
* Description: A centered hero section with a colored background, heading, paragraph, and call to action buttons.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|80","bottom":"var:preset|spacing|80"}}},"backgroundColor":"primary","textColor":"base","layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull has-base-color has-primary-background-color has-text-color has-background" style="padding-top:var(--wp--preset--spacing--80);padding-bottom:var(--wp--preset--spacing--80)"><!-- wp:heading {"textAlign":"center","level":1,"fontSize":"display"} -->
<h1 class="wp-block-heading has-text-align-center has-display-font-size"><?php esc_html_e( 'Welcome to your new website', 'wp-bootstrap' ); ?></h1>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","fontSize":"large"} -->
<p class="has-text-align-center has-large-font-size"><?php esc_html_e( 'Start building beautiful, responsive pages with the full power of Bootstrap 5 and the WordPress block editor.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button {"backgroundColor":"base","textColor":"primary"} -->
<div class="wp-block-button"><a class="wp-block-button__link has-primary-color has-base-background-color has-text-color has-background wp-element-button"><?php esc_html_e( 'Get Started', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline","style":{"elements":{"link":{"color":{"text":"var:preset|color|base"}}}},"textColor":"base"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link has-base-color has-text-color has-link-color wp-element-button"><?php esc_html_e( 'Learn More', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons --></div>
<!-- /wp:group -->

26
patterns/hero-cover.php Normal file
View File

@@ -0,0 +1,26 @@
<?php
/**
* Title: Hero with cover image
* Slug: wp-bootstrap/hero-cover
* Categories: wp-bootstrap_hero, banner, featured
* Description: A full-width hero section with a cover image, heading, paragraph, and call to action button.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:cover {"dimRatio":60,"overlayColor":"contrast","isUserOverlayColor":true,"minHeight":500,"align":"full","layout":{"type":"constrained"}} -->
<div class="wp-block-cover alignfull" style="min-height:500px"><span aria-hidden="true" class="wp-block-cover__background has-contrast-background-color has-background-dim-60 has-background-dim"></span><div class="wp-block-cover__inner-container"><!-- wp:heading {"textAlign":"center","level":1,"fontSize":"display"} -->
<h1 class="wp-block-heading has-text-align-center has-display-font-size"><?php esc_html_e( 'Build something amazing', 'wp-bootstrap' ); ?></h1>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","fontSize":"large"} -->
<p class="has-text-align-center has-large-font-size"><?php esc_html_e( 'Create modern, responsive websites with the power of Bootstrap 5 and the WordPress Site Editor.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
<div class="wp-block-buttons"><!-- wp:button {"fontSize":"medium"} -->
<div class="wp-block-button has-custom-font-size has-medium-font-size"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'Get Started', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons --></div></div>
<!-- /wp:cover -->

40
patterns/hero-split.php Normal file
View File

@@ -0,0 +1,40 @@
<?php
/**
* Title: Hero split with image
* Slug: wp-bootstrap/hero-split
* Categories: wp-bootstrap_hero, banner
* Description: A two-column hero with text on the left and an image placeholder on the right.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|60"}}}} -->
<div class="wp-block-columns alignwide"><!-- wp:column {"verticalAlignment":"center"} -->
<div class="wp-block-column is-vertically-aligned-center"><!-- wp:heading {"level":1,"fontSize":"display"} -->
<h1 class="wp-block-heading has-display-font-size"><?php esc_html_e( 'Modern design meets powerful features', 'wp-bootstrap' ); ?></h1>
<!-- /wp:heading -->
<!-- wp:paragraph {"fontSize":"large"} -->
<p class="has-large-font-size"><?php esc_html_e( 'A WordPress theme built from the ground up with Bootstrap 5 for a seamless editing and browsing experience.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'Learn More', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button -->
<!-- wp:button {"className":"is-style-outline"} -->
<div class="wp-block-button is-style-outline"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'View Demo', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons --></div>
<!-- /wp:column -->
<!-- wp:column {"verticalAlignment":"center"} -->
<div class="wp-block-column is-vertically-aligned-center"><!-- wp:image {"sizeSlug":"large","style":{"border":{"radius":"0.5rem"}}} -->
<figure class="wp-block-image size-large" style="border-radius:0.5rem"><img src="" alt="<?php esc_attr_e( 'Hero image', 'wp-bootstrap' ); ?>"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column --></div>
<!-- /wp:columns --></div>
<!-- /wp:group -->

View File

@@ -0,0 +1,46 @@
<?php
/**
* Title: Sidebar
* Slug: wp-bootstrap/hidden-sidebar
* Inserter: no
* Description: Sidebar content with recent posts, search, and tag cloud.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|50"}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:heading {"level":3,"fontSize":"small","style":{"typography":{"textTransform":"uppercase","fontWeight":"600","letterSpacing":"1.6px"}}} -->
<h3 class="wp-block-heading has-small-font-size" style="font-weight:600;letter-spacing:1.6px;text-transform:uppercase"><?php esc_html_e( 'Recent Posts', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:query {"queryId":99,"query":{"perPage":4,"pages":0,"offset":0,"postType":"post","order":"desc","orderBy":"date","inherit":false}} -->
<!-- wp:post-template -->
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|10"}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:post-title {"level":4,"isLink":true,"fontSize":"medium"} /-->
<!-- wp:post-date {"fontSize":"small"} /-->
</div>
<!-- /wp:group -->
<!-- /wp:post-template -->
<!-- /wp:query -->
<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->
<!-- wp:heading {"level":3,"fontSize":"small","style":{"typography":{"textTransform":"uppercase","fontWeight":"600","letterSpacing":"1.6px"}}} -->
<h3 class="wp-block-heading has-small-font-size" style="font-weight:600;letter-spacing:1.6px;text-transform:uppercase"><?php esc_html_e( 'Search', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:search {"label":"<?php esc_attr_e( 'Search', 'wp-bootstrap' ); ?>","showLabel":false,"placeholder":"<?php esc_attr_e( 'Search...', 'wp-bootstrap' ); ?>","buttonText":"<?php esc_attr_e( 'Search', 'wp-bootstrap' ); ?>","buttonPosition":"button-inside","buttonUseIcon":true} /-->
<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->
<!-- wp:heading {"level":3,"fontSize":"small","style":{"typography":{"textTransform":"uppercase","fontWeight":"600","letterSpacing":"1.6px"}}} -->
<h3 class="wp-block-heading has-small-font-size" style="font-weight:600;letter-spacing:1.6px;text-transform:uppercase"><?php esc_html_e( 'Tags', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:tag-cloud {"numberOfTags":15,"taxonomy":"post_tag","showTagCounts":false} /--></div>
<!-- /wp:group -->

136
patterns/pricing-3-col.php Normal file
View File

@@ -0,0 +1,136 @@
<?php
/**
* Title: Pricing three columns
* Slug: wp-bootstrap/pricing-3-col
* Categories: wp-bootstrap_pricing, call-to-action
* Description: Three-column pricing cards with feature lists and call to action buttons.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:heading {"textAlign":"center","fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size"><?php esc_html_e( 'Pricing', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","textColor":"secondary"} -->
<p class="has-text-align-center has-secondary-color has-text-color"><?php esc_html_e( 'Choose the plan that works best for you.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|40"}}}} -->
<div class="wp-block-columns alignwide"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:group {"className":"is-style-card","style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|40","right":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group is-style-card" style="padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:heading {"textAlign":"center","level":3} -->
<h3 class="wp-block-heading has-text-align-center"><?php esc_html_e( 'Basic', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","fontSize":"display","style":{"typography":{"fontWeight":"700"}}} -->
<p class="has-text-align-center has-display-font-size" style="font-weight:700"><?php esc_html_e( 'Free', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->
<!-- wp:list {"className":"is-style-list-unstyled","style":{"spacing":{"blockGap":"var:preset|spacing|20"},"typography":{"textAlign":"center"}}} -->
<ul class="is-style-list-unstyled" style="text-align:center"><!-- wp:list-item -->
<li><?php esc_html_e( '1 Website', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><?php esc_html_e( 'Community Support', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><?php esc_html_e( 'Core Features', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"},"style":{"spacing":{"margin":{"top":"var:preset|spacing|40"}}}} -->
<div class="wp-block-buttons" style="margin-top:var(--wp--preset--spacing--40)"><!-- wp:button {"className":"is-style-outline","width":100} -->
<div class="wp-block-button has-custom-width wp-block-button__width-100 is-style-outline"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'Get Started', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons --></div>
<!-- /wp:group --></div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column"><!-- wp:group {"className":"is-style-card-shadow","style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|40","right":"var:preset|spacing|40"}},"border":{"width":"2px","color":"var:preset|color|primary"}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group is-style-card-shadow" style="border-color:var(--wp--preset--color--primary);border-width:2px;padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:heading {"textAlign":"center","level":3} -->
<h3 class="wp-block-heading has-text-align-center"><?php esc_html_e( 'Professional', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","fontSize":"display","style":{"typography":{"fontWeight":"700"}}} -->
<p class="has-text-align-center has-display-font-size" style="font-weight:700"><?php
/* translators: pricing amount */
esc_html_e( '$49', 'wp-bootstrap' );
?></p>
<!-- /wp:paragraph -->
<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->
<!-- wp:list {"className":"is-style-list-unstyled","style":{"spacing":{"blockGap":"var:preset|spacing|20"},"typography":{"textAlign":"center"}}} -->
<ul class="is-style-list-unstyled" style="text-align:center"><!-- wp:list-item -->
<li><?php esc_html_e( '5 Websites', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><?php esc_html_e( 'Priority Support', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><?php esc_html_e( 'All Features', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"},"style":{"spacing":{"margin":{"top":"var:preset|spacing|40"}}}} -->
<div class="wp-block-buttons" style="margin-top:var(--wp--preset--spacing--40)"><!-- wp:button {"width":100} -->
<div class="wp-block-button has-custom-width wp-block-button__width-100"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'Get Started', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons --></div>
<!-- /wp:group --></div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column"><!-- wp:group {"className":"is-style-card","style":{"spacing":{"padding":{"top":"var:preset|spacing|50","bottom":"var:preset|spacing|50","left":"var:preset|spacing|40","right":"var:preset|spacing|40"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group is-style-card" style="padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--40)"><!-- wp:heading {"textAlign":"center","level":3} -->
<h3 class="wp-block-heading has-text-align-center"><?php esc_html_e( 'Enterprise', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"align":"center","fontSize":"display","style":{"typography":{"fontWeight":"700"}}} -->
<p class="has-text-align-center has-display-font-size" style="font-weight:700"><?php
/* translators: pricing amount */
esc_html_e( '$199', 'wp-bootstrap' );
?></p>
<!-- /wp:paragraph -->
<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->
<!-- wp:list {"className":"is-style-list-unstyled","style":{"spacing":{"blockGap":"var:preset|spacing|20"},"typography":{"textAlign":"center"}}} -->
<ul class="is-style-list-unstyled" style="text-align:center"><!-- wp:list-item -->
<li><?php esc_html_e( 'Unlimited Websites', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><?php esc_html_e( 'Dedicated Support', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item -->
<!-- wp:list-item -->
<li><?php esc_html_e( 'Custom Development', 'wp-bootstrap' ); ?></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->
<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"},"style":{"spacing":{"margin":{"top":"var:preset|spacing|40"}}}} -->
<div class="wp-block-buttons" style="margin-top:var(--wp--preset--spacing--40)"><!-- wp:button {"className":"is-style-outline","width":100} -->
<div class="wp-block-button has-custom-width wp-block-button__width-100 is-style-outline"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'Contact Us', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons --></div>
<!-- /wp:group --></div>
<!-- /wp:column --></div>
<!-- /wp:columns --></div>
<!-- /wp:group -->

View File

@@ -0,0 +1,30 @@
<?php
/**
* Title: Testimonials two columns
* Slug: wp-bootstrap/testimonials-2-col
* Categories: wp-bootstrap_testimonials, testimonials
* Description: Two-column testimonials with quote blocks and citations.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:heading {"textAlign":"center","fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size"><?php esc_html_e( 'What our clients say', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|50"}}}} -->
<div class="wp-block-columns alignwide"><!-- wp:column -->
<div class="wp-block-column"><!-- wp:quote {"fontSize":"medium"} -->
<blockquote class="wp-block-quote has-medium-font-size"><p><?php esc_html_e( 'This theme completely transformed our website. The Bootstrap integration makes it incredibly easy to create professional-looking pages without any custom code.', 'wp-bootstrap' ); ?></p><cite><?php esc_html_e( 'Jane Doe, Web Designer', 'wp-bootstrap' ); ?></cite></blockquote>
<!-- /wp:quote --></div>
<!-- /wp:column -->
<!-- wp:column -->
<div class="wp-block-column"><!-- wp:quote {"fontSize":"medium"} -->
<blockquote class="wp-block-quote has-medium-font-size"><p><?php esc_html_e( 'The dark mode support and style variations give us the flexibility we need. Our clients love being able to switch between color schemes effortlessly.', 'wp-bootstrap' ); ?></p><cite><?php esc_html_e( 'John Smith, Developer', 'wp-bootstrap' ); ?></cite></blockquote>
<!-- /wp:quote --></div>
<!-- /wp:column --></div>
<!-- /wp:columns --></div>
<!-- /wp:group -->

View File

@@ -0,0 +1,16 @@
<?php
/**
* Title: Testimonial centered
* Slug: wp-bootstrap/testimonials-centered
* Categories: wp-bootstrap_testimonials, testimonials
* Description: A single large centered testimonial with citation.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"backgroundColor":"light","layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull has-light-background-color has-background" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:quote {"textAlign":"center","fontSize":"x-large","style":{"typography":{"fontStyle":"italic","fontWeight":"300"}}} -->
<blockquote class="wp-block-quote has-text-align-center has-x-large-font-size" style="font-style:italic;font-weight:300"><p><?php esc_html_e( 'The best WordPress theme we have ever used. Clean code, beautiful design, and incredible flexibility.', 'wp-bootstrap' ); ?></p><cite><?php esc_html_e( 'Alex Johnson, Creative Director', 'wp-bootstrap' ); ?></cite></blockquote>
<!-- /wp:quote --></div>
<!-- /wp:group -->

40
patterns/text-about.php Normal file
View File

@@ -0,0 +1,40 @@
<?php
/**
* Title: About section
* Slug: wp-bootstrap/text-about
* Categories: wp-bootstrap_text, text
* Description: A two-column about section with text content and an image.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|60"}}}} -->
<div class="wp-block-columns alignwide"><!-- wp:column {"verticalAlignment":"center"} -->
<div class="wp-block-column is-vertically-aligned-center"><!-- wp:heading {"fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-xx-large-font-size"><?php esc_html_e( 'About us', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p><?php esc_html_e( 'We are passionate about creating tools that empower people to build beautiful websites. Our theme combines the reliability of Bootstrap with the flexibility of WordPress.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'With years of experience in web development and design, we understand what it takes to create a theme that is both powerful and easy to use.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph -->
<!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button"><?php esc_html_e( 'Learn More', 'wp-bootstrap' ); ?></a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons --></div>
<!-- /wp:column -->
<!-- wp:column {"verticalAlignment":"center"} -->
<div class="wp-block-column is-vertically-aligned-center"><!-- wp:image {"sizeSlug":"large","style":{"border":{"radius":"0.5rem"}}} -->
<figure class="wp-block-image size-large" style="border-radius:0.5rem"><img src="" alt="<?php esc_attr_e( 'About us image', 'wp-bootstrap' ); ?>"/></figure>
<!-- /wp:image --></div>
<!-- /wp:column --></div>
<!-- /wp:columns --></div>
<!-- /wp:group -->

70
patterns/text-faq.php Normal file
View File

@@ -0,0 +1,70 @@
<?php
/**
* Title: Frequently asked questions
* Slug: wp-bootstrap/text-faq
* Categories: wp-bootstrap_text, text
* Description: An FAQ section with question and answer pairs.
*
* @package WPBootstrap
* @since 0.1.0
*/
?>
<!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"var:preset|spacing|70","bottom":"var:preset|spacing|70"}}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group alignfull" style="padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--70)"><!-- wp:heading {"textAlign":"center","fontSize":"xx-large"} -->
<h2 class="wp-block-heading has-text-align-center has-xx-large-font-size"><?php esc_html_e( 'Frequently Asked Questions', 'wp-bootstrap' ); ?></h2>
<!-- /wp:heading -->
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|40"}},"layout":{"type":"constrained","contentSize":"720px"}} -->
<div class="wp-block-group"><!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'How do I install the theme?', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Download the ZIP file from the releases page, then upload it via WordPress Admin > Appearance > Themes > Add New > Upload Theme.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:group -->
<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Does it work with the Site Editor?', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Yes, this is a Full Site Editing block theme. You can customize templates, headers, footers, and all block patterns using the WordPress Site Editor.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:group -->
<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Can I use my own fonts?', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'The theme comes with Inter, Lora, and system font stacks. You can add custom fonts through the Site Editor or by modifying theme.json.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:group -->
<!-- wp:separator -->
<hr class="wp-block-separator has-alpha-channel-opacity"/>
<!-- /wp:separator -->
<!-- wp:group {"style":{"spacing":{"blockGap":"var:preset|spacing|20"}},"layout":{"type":"constrained"}} -->
<div class="wp-block-group"><!-- wp:heading {"level":3,"fontSize":"large"} -->
<h3 class="wp-block-heading has-large-font-size"><?php esc_html_e( 'Is dark mode supported?', 'wp-bootstrap' ); ?></h3>
<!-- /wp:heading -->
<!-- wp:paragraph {"textColor":"secondary"} -->
<p class="has-secondary-color has-text-color"><?php esc_html_e( 'Yes, the theme includes a dark mode toggle that uses Bootstrap 5.3 built-in dark mode. It respects system preferences and remembers your choice.', 'wp-bootstrap' ); ?></p>
<!-- /wp:paragraph --></div>
<!-- /wp:group --></div>
<!-- /wp:group --></div>
<!-- /wp:group -->

74
src/js/dark-mode.js Normal file
View File

@@ -0,0 +1,74 @@
/**
* WP Bootstrap Dark Mode Toggle
*
* Handles dark mode switching using Bootstrap 5.3's data-bs-theme attribute.
* Respects prefers-color-scheme media query and persists choice in localStorage.
*
* @package WPBootstrap
* @since 0.1.0
*/
(function () {
'use strict';
var STORAGE_KEY = 'wp-bootstrap-theme';
var ATTR = 'data-bs-theme';
/**
* Get the user's stored preference, or fall back to system preference.
*
* @return {string} 'dark' or 'light'
*/
function getPreferredTheme() {
var stored = localStorage.getItem(STORAGE_KEY);
if (stored) {
return stored;
}
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
}
/**
* Apply the theme to the document and update all toggle buttons.
*
* @param {string} theme - 'dark' or 'light'
*/
function setTheme(theme) {
document.documentElement.setAttribute(ATTR, theme);
document.querySelectorAll('[data-bs-theme-toggle]').forEach(function (toggle) {
var isDark = theme === 'dark';
toggle.setAttribute('aria-label', isDark
? (toggle.dataset.labelLight || 'Switch to light mode')
: (toggle.dataset.labelDark || 'Switch to dark mode'));
toggle.setAttribute('aria-pressed', String(isDark));
var sunIcon = toggle.querySelector('.wp-bootstrap-sun-icon');
var moonIcon = toggle.querySelector('.wp-bootstrap-moon-icon');
if (sunIcon) sunIcon.style.display = isDark ? 'inline-block' : 'none';
if (moonIcon) moonIcon.style.display = isDark ? 'none' : 'inline-block';
});
}
// Apply theme immediately to prevent flash.
setTheme(getPreferredTheme());
// When DOM is ready, re-apply for toggle buttons and attach event listeners.
document.addEventListener('DOMContentLoaded', function () {
setTheme(getPreferredTheme());
document.querySelectorAll('[data-bs-theme-toggle]').forEach(function (toggle) {
toggle.addEventListener('click', function () {
var currentTheme = document.documentElement.getAttribute(ATTR);
var newTheme = currentTheme === 'dark' ? 'light' : 'dark';
localStorage.setItem(STORAGE_KEY, newTheme);
setTheme(newTheme);
});
});
});
// Listen for system preference changes when no stored preference exists.
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function (e) {
if (!localStorage.getItem(STORAGE_KEY)) {
setTheme(e.matches ? 'dark' : 'light');
}
});
})();

View File

@@ -1,2 +1,59 @@
// Custom theme styles // Custom theme styles
// Add theme-specific styles here that go beyond Bootstrap defaults // Add theme-specific styles here that go beyond Bootstrap defaults
// Dark mode toggle button
.wp-bootstrap-dark-mode-toggle {
display: inline-flex;
align-items: center;
justify-content: center;
background: none;
border: none;
cursor: pointer;
padding: 0.375rem;
color: currentColor;
line-height: 1;
transition: opacity 0.15s ease-in-out;
&:hover {
opacity: 0.75;
}
&:focus-visible {
outline: 2px solid currentColor;
outline-offset: 2px;
border-radius: 0.25rem;
}
}
// Dark mode overrides for block styles with hardcoded colors
[data-bs-theme="dark"] {
.is-style-alert-info {
background-color: #032830;
border-color: #055160;
color: #6edff6;
}
.is-style-alert-success {
background-color: #051b11;
border-color: #0a3622;
color: #75b798;
}
.is-style-alert-warning {
background-color: #332701;
border-color: #664d03;
color: #ffda6a;
}
.is-style-alert-danger {
background-color: #2c0b0e;
border-color: #58151c;
color: #ea868f;
}
.is-style-card,
.is-style-card-shadow {
border-color: $gray-600;
background: var(--bs-body-bg);
}
}

View File

@@ -35,6 +35,10 @@ $container-max-widths: (
// Typography - using system fonts (matching theme.json) // Typography - using system fonts (matching theme.json)
$font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; $font-family-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
// Additional font families
$font-family-inter: Inter, system-ui, -apple-system, sans-serif;
$font-family-serif: Lora, Georgia, "Times New Roman", serif;
// Enable dark mode // Enable dark mode
$enable-dark-mode: true; $enable-dark-mode: true;

View File

@@ -7,7 +7,7 @@ Description: A modern WordPress Block Theme built from scratch with Bootstrap 5.
Requires at least: 6.7 Requires at least: 6.7
Tested up to: 6.7 Tested up to: 6.7
Requires PHP: 8.3 Requires PHP: 8.3
Version: 0.0.1 Version: 0.1.0
License: GNU General Public License v2 or later License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wp-bootstrap Text Domain: wp-bootstrap

79
styles/01-ocean.json Normal file
View File

@@ -0,0 +1,79 @@
{
"$schema": "https://schemas.wp.org/wp/6.7/theme.json",
"version": 3,
"title": "Ocean",
"settings": {
"color": {
"palette": [
{
"color": "#FFFFFF",
"name": "Base",
"slug": "base"
},
{
"color": "#1a2332",
"name": "Contrast",
"slug": "contrast"
},
{
"color": "#0077b6",
"name": "Primary",
"slug": "primary"
},
{
"color": "#6c757d",
"name": "Secondary",
"slug": "secondary"
},
{
"color": "#198754",
"name": "Success",
"slug": "success"
},
{
"color": "#dc3545",
"name": "Danger",
"slug": "danger"
},
{
"color": "#ffc107",
"name": "Warning",
"slug": "warning"
},
{
"color": "#00b4d8",
"name": "Info",
"slug": "info"
},
{
"color": "#f0f7fa",
"name": "Light",
"slug": "light"
},
{
"color": "#023e58",
"name": "Dark",
"slug": "dark"
}
]
}
},
"styles": {
"elements": {
"button": {
":hover": {
"color": {
"background": "#005f8a"
}
}
},
"link": {
":hover": {
"color": {
"text": "#005f8a"
}
}
}
}
}
}

79
styles/02-forest.json Normal file
View File

@@ -0,0 +1,79 @@
{
"$schema": "https://schemas.wp.org/wp/6.7/theme.json",
"version": 3,
"title": "Forest",
"settings": {
"color": {
"palette": [
{
"color": "#fafaf5",
"name": "Base",
"slug": "base"
},
{
"color": "#2d3319",
"name": "Contrast",
"slug": "contrast"
},
{
"color": "#2d6a4f",
"name": "Primary",
"slug": "primary"
},
{
"color": "#6c757d",
"name": "Secondary",
"slug": "secondary"
},
{
"color": "#40916c",
"name": "Success",
"slug": "success"
},
{
"color": "#b5271d",
"name": "Danger",
"slug": "danger"
},
{
"color": "#dda15e",
"name": "Warning",
"slug": "warning"
},
{
"color": "#52b788",
"name": "Info",
"slug": "info"
},
{
"color": "#f1f5ec",
"name": "Light",
"slug": "light"
},
{
"color": "#1b4332",
"name": "Dark",
"slug": "dark"
}
]
}
},
"styles": {
"elements": {
"button": {
":hover": {
"color": {
"background": "#1b4332"
}
}
},
"link": {
":hover": {
"color": {
"text": "#1b4332"
}
}
}
}
}
}

79
styles/03-sunset.json Normal file
View File

@@ -0,0 +1,79 @@
{
"$schema": "https://schemas.wp.org/wp/6.7/theme.json",
"version": 3,
"title": "Sunset",
"settings": {
"color": {
"palette": [
{
"color": "#FFFFFF",
"name": "Base",
"slug": "base"
},
{
"color": "#2b2024",
"name": "Contrast",
"slug": "contrast"
},
{
"color": "#c1440e",
"name": "Primary",
"slug": "primary"
},
{
"color": "#6c757d",
"name": "Secondary",
"slug": "secondary"
},
{
"color": "#198754",
"name": "Success",
"slug": "success"
},
{
"color": "#9b2226",
"name": "Danger",
"slug": "danger"
},
{
"color": "#ee9b00",
"name": "Warning",
"slug": "warning"
},
{
"color": "#ca6702",
"name": "Info",
"slug": "info"
},
{
"color": "#fdf0e2",
"name": "Light",
"slug": "light"
},
{
"color": "#3d1308",
"name": "Dark",
"slug": "dark"
}
]
}
},
"styles": {
"elements": {
"button": {
":hover": {
"color": {
"background": "#9a360b"
}
}
},
"link": {
":hover": {
"color": {
"text": "#9a360b"
}
}
}
}
}
}

86
styles/04-midnight.json Normal file
View File

@@ -0,0 +1,86 @@
{
"$schema": "https://schemas.wp.org/wp/6.7/theme.json",
"version": 3,
"title": "Midnight",
"settings": {
"color": {
"palette": [
{
"color": "#1a1a2e",
"name": "Base",
"slug": "base"
},
{
"color": "#e8e8e8",
"name": "Contrast",
"slug": "contrast"
},
{
"color": "#4895ef",
"name": "Primary",
"slug": "primary"
},
{
"color": "#adb5bd",
"name": "Secondary",
"slug": "secondary"
},
{
"color": "#4cc9f0",
"name": "Success",
"slug": "success"
},
{
"color": "#f07167",
"name": "Danger",
"slug": "danger"
},
{
"color": "#ffd166",
"name": "Warning",
"slug": "warning"
},
{
"color": "#7209b7",
"name": "Info",
"slug": "info"
},
{
"color": "#16213e",
"name": "Light",
"slug": "light"
},
{
"color": "#0f3460",
"name": "Dark",
"slug": "dark"
}
]
}
},
"styles": {
"elements": {
"button": {
"color": {
"background": "var:preset|color|primary",
"text": "var:preset|color|base"
},
":hover": {
"color": {
"background": "#3672c4"
}
}
},
"link": {
"color": {
"text": "var:preset|color|primary"
},
":hover": {
"color": {
"text": "#3672c4"
}
}
}
}
}
}

View File

@@ -0,0 +1,25 @@
<!-- wp:template-part {"slug":"header"} /-->
<!-- wp:group {"tagName":"main","style":{"spacing":{"margin":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
<main class="wp-block-group" style="margin-top:var(--wp--preset--spacing--60)">
<!-- wp:pattern {"slug":"wp-bootstrap/hidden-blog-heading"} /-->
<!-- wp:columns {"align":"wide","style":{"spacing":{"blockGap":{"left":"var:preset|spacing|60"}}}} -->
<div class="wp-block-columns alignwide">
<!-- wp:column {"width":"66.66%"} -->
<div class="wp-block-column" style="flex-basis:66.66%">
<!-- wp:pattern {"slug":"wp-bootstrap/template-query-loop"} /-->
</div>
<!-- /wp:column -->
<!-- wp:column {"width":"33.33%"} -->
<div class="wp-block-column" style="flex-basis:33.33%">
<!-- wp:template-part {"slug":"sidebar"} /-->
</div>
<!-- /wp:column -->
</div>
<!-- /wp:columns -->
</main>
<!-- /wp:group -->
<!-- wp:template-part {"slug":"footer"} /-->

View File

@@ -156,6 +156,15 @@
"name": "Huge", "name": "Huge",
"size": "2rem", "size": "2rem",
"slug": "xx-large" "slug": "xx-large"
},
{
"fluid": {
"max": "3.5rem",
"min": "2.5rem"
},
"name": "Display",
"size": "2.5rem",
"slug": "display"
} }
], ],
"fontFamilies": [ "fontFamilies": [
@@ -164,6 +173,41 @@
"name": "System Sans Serif", "name": "System Sans Serif",
"slug": "system-sans-serif" "slug": "system-sans-serif"
}, },
{
"fontFamily": "Inter, system-ui, -apple-system, sans-serif",
"name": "Inter",
"slug": "inter",
"fontFace": [
{
"fontFamily": "Inter",
"fontDisplay": "swap",
"fontStyle": "normal",
"fontWeight": "100 900",
"src": ["file:./assets/fonts/inter/InterVariable.woff2"]
}
]
},
{
"fontFamily": "Lora, Georgia, 'Times New Roman', serif",
"name": "Lora",
"slug": "lora",
"fontFace": [
{
"fontFamily": "Lora",
"fontDisplay": "swap",
"fontStyle": "normal",
"fontWeight": "400 700",
"src": ["file:./assets/fonts/lora/Lora-VariableFont.woff2"]
},
{
"fontFamily": "Lora",
"fontDisplay": "swap",
"fontStyle": "italic",
"fontWeight": "400 700",
"src": ["file:./assets/fonts/lora/Lora-Italic-VariableFont.woff2"]
}
]
},
{ {
"fontFamily": "SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace", "fontFamily": "SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace",
"name": "System Monospace", "name": "System Monospace",
@@ -380,9 +424,34 @@
"bottom": "var:preset|spacing|20" "bottom": "var:preset|spacing|20"
} }
} }
},
"core/table": {
"border": {
"color": "var:preset|color|light"
}
},
"core/pullquote": {
"typography": {
"fontSize": "var:preset|font-size|x-large",
"fontWeight": "300",
"lineHeight": "1.3"
},
"spacing": {
"padding": {
"top": "var:preset|spacing|30",
"bottom": "var:preset|spacing|30"
}
}
} }
} }
}, },
"customTemplates": [
{
"name": "home-sidebar",
"postTypes": ["page"],
"title": "Blog with Sidebar"
}
],
"templateParts": [ "templateParts": [
{ {
"area": "header", "area": "header",
@@ -393,6 +462,11 @@
"area": "footer", "area": "footer",
"name": "footer", "name": "footer",
"title": "Footer" "title": "Footer"
},
{
"area": "uncategorized",
"name": "sidebar",
"title": "Sidebar"
} }
] ]
} }