=== StoryWeave ===
Contributors: bikram_sth
Tags: blog, two-columns, right-sidebar, custom-colors, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, full-width-template, sticky-post, threaded-comments, translation-ready, block-patterns, block-styles, wide-blocks, grid-layout, dark-mode
Requires at least: 5.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

StoryWeave WordPress Theme, Copyright 2026 Bikram
StoryWeave is distributed under the terms of the GNU GPL, version 2 or later.

A modern, literary blog theme designed for storytelling and long-form content. StoryWeave offers a warm, elegant aesthetic with advanced layout options, dark mode, and full Gutenberg compatibility.

== Description ==
StoryWeave is a WordPress theme built for writers, storytellers, and bloggers who value readability and aesthetics. With a focus on typography and whitespace, it provides a delightful reading experience. Features include:

* Five distinct blog layouts: Classic List, Grid, Bento (asymmetrical), Story Timeline, and Chapter.
* Dark mode with toggle, system preference detection, and persistence across visits.
* Customizer options for accent color, blog layout, content layout (with sidebar or full-width).
* Sticky header with logo, navigation, dark mode toggle, and social links.
* Full Gutenberg support with block styles and custom block patterns.
* Mobile-friendly hamburger menu with sub-menu toggles.
* Translation-ready.
* Custom header image support with position control.
* Social links menu in header and footer.
* Three footer widget areas.

== Installation ==
1. In your admin panel, go to Appearance > Themes and click the Add New button.
2. Click Upload Theme and Choose File, then select the storyweave.zip file.
3. Click Install Now and then Activate the theme.

== Privacy ==
StoryWeave does not collect, transmit, or track any personal data, and includes no analytics, tracking scripts, or remote/CDN resources.

The only client-side data StoryWeave stores is the visitor's light/dark mode preference, saved locally in the browser's localStorage under the key "storyweave_theme". This value never leaves the visitor's browser, is not sent to the server, and is not a cookie.

== Frequently Asked Questions ==
= How do I set up the social links? =
You can create a custom menu and assign it to the "Social Links Menu" location in Appearance > Menus. The social icons will automatically appear in the header and footer.

= How do I enable dark mode? =
Click the sun/moon icon in the header. The theme will remember your preference and also respect your system's dark mode setting.

= Can I change the accent color? =
Yes, go to Appearance > Customize > Colors and pick your desired accent color.

= How do I change the blog layout? =
Go to Appearance > Customize > Blog Layout and choose from five different layouts: Classic, Grid, Bento, Timeline, or Chapter.

= How do I remove the sidebar? =
Go to Appearance > Customize > Content Layout and select "Full Width".

= Can I use a custom header image? =
Yes, go to Appearance > Customize > Header Image to upload your own image and set its position.

== Changelog ==
= 1.0.4 =
* Fixed the "Call to Action" block pattern text being unreadable in dark mode: the pattern's "Warm Cream" background is a fixed light color that doesn't change with dark mode, but its heading/paragraph text had no explicit color and was inheriting the page's dark-mode (light) text color, making it nearly invisible. Text color is now fixed and mode-independent for this pattern, both for newly-inserted copies and any already placed in existing content.

= 1.0.3 =
* Fixed the "Skip to content" link not being visible when it receives keyboard focus.
* Fixed keyboard navigation for menu items with children: sub-menus now reveal correctly on keyboard focus (via focusin/focusout event delegation), the mobile expand-arrow toggle button now responds to clicks/taps, and the mobile focus order now matches the visual layout of the Dark Mode toggle and hamburger menu.
* Added Escape-key support to close an open menu or sub-menu, returning focus to the triggering button.
* Added click-outside-to-close behavior for the mobile menu and sub-menus.
* Added aria-current="page" to the active menu item, unique per-item aria-labels ("Toggle submenu for X") on sub-menu toggle buttons, and aria-hidden on decorative icons.
* Refactored dynamic Customizer CSS to use wp_add_inline_style(), tied to the theme's enqueued stylesheet, instead of an inline <style> tag.
* Added a fallback primary menu (site pages) so the header is never empty when no menu is assigned to the Primary Menu location.
* Fixed several incorrect Dashicons codepoints that displayed the wrong icon (byline, calendar, Instagram, LinkedIn, GitHub, Pinterest social links).
* Fixed a layout bug where large/oversized images (featured images, content images) caused horizontal scrolling on desktop and mobile; added a responsive image reset and styled previously-unstyled featured image containers.
* Added copyright and GNU GPL license statements to readme.txt.

= 1.0.2 =
* Escaped all previously-unescaped dynamic output (post meta, categories, tags) with wp_kses_post().
* Sanitized the dark mode cookie/preference read on the server.
* Added a themed searchform.php template.
* Removed the unused storyweave_social_links Customizer setting (social links are managed via the Social Links Menu).
* Added wp_link_pages() support to all blog layout templates (Classic, Grid, Bento, Timeline, Chapter).
* Removed the theme author's copyright line from the style.css header.
* Replaced the hardcoded CTA block pattern color with a registered "Warm Cream" editor color preset.
* Moved dark mode preference storage from a first-party cookie to localStorage, applied via a blocking script at wp_body_open() to prevent flash of unstyled content.

= 1.0.1 =
* Initial public release.
* Five blog layouts: Classic, Grid, Bento, Timeline, and Chapter.
* Dark mode with toggle and system preference detection.
* Customizer options for accent color, blog layout, and content layout.
* Sticky header with navigation, dark mode toggle, and social links.
* Full Gutenberg support with block styles and custom block patterns.
* Mobile-friendly responsive design.
* Translation-ready.
* Custom header image support.

== Resources ==
This theme bundles the following third-party resources:

* Underscores (_s) starter theme (GPLv2) - https://underscores.me/
* Dashicons (GPLv2) - included with WordPress.
