=== StorySaga ===

Contributors: bikram_sth
Requires at least: 5.9
Tested up to: 7.1
Requires PHP: 7.4
Version: 0.0.3
Stable tag: 0.0.3
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, portfolio, one-column, two-columns, custom-background, custom-header, custom-logo, custom-menu, editor-style, featured-images, footer-widgets, threaded-comments, translation-ready, rtl-language-support

Every portfolio has a story. A classic, template-based WordPress theme for developers, designers, photographers, writers, and freelancers.

== Description ==

StorySaga is a storytelling-focused portfolio theme built as a classic, template-based WordPress theme — no Full Site Editing dependency, no custom post types, no shortcodes. It treats a creator's portfolio as a narrative: projects, experience, and achievements are presented as chapters of a professional journey, using a restrained editorial design system of strong serif/sans typography, generous whitespace, and a warm paper-and-ink color palette.

Portfolio "chapters" are ordinary WordPress posts filed under a "Projects" category and automatically get a dedicated table-of-contents archive layout — no custom post type or taxonomy is registered by the theme. The homepage is built from the Page you assign as your static front page: its title and content become the hero, a "Featured Chapters" section pulls your three latest projects automatically, and an optional widget area lets you add further sections using ordinary Text/Image/Custom HTML widgets.

For richer page content, StorySaga also bundles eleven ready-made block patterns — Hero / Introduction, About Me, Featured Projects, Project Grid (a live, auto-updating query), Services, Skills, Testimonials, Experience Timeline, Story Chapters, Call to Action, and Contact — available under the "StorySaga" category in the block inserter on any post or page. These are independent of the theme's classic architecture: the block editor is WordPress's content editor for posts and pages regardless of theme type, so the patterns work the same way they would in any theme. Four custom block styles (Chapter Card, Chapter Mark, Story Aside, and an Outline button style) are also registered for use with core blocks.

StorySaga uses only WordPress core APIs: the template hierarchy, wp_nav_menu(), the Customizer, widget areas, and the block pattern/style registration APIs. It does not require, bundle, or depend on Elementor, third-party page builders, Bootstrap, Tailwind, or any other framework or plugin. Submenus follow the W3C's own reference implementation of the accessible Disclosure pattern, with full keyboard support (Tab, Escape, click-outside-to-close).

== Installation ==

1. In your admin panel, go to Appearance ▸ Themes and click "Add New."
2. Click "Upload Theme" and select storysaga.zip.
3. Click "Install Now" and then "Activate."
4. Under Posts ▸ Categories, add a category named "Projects" (slug: projects). Posts filed under this category automatically get the dedicated project archive layout.
5. Under Appearance ▸ Menus, create and assign a Primary Menu (and, optionally, a Footer Menu).
6. Under Settings ▸ Reading, create a Page (e.g. "Home"), write your intro in its content, and set it as your static front page — this becomes your portfolio homepage hero.
7. Under Appearance ▸ Widgets, add anything you like to the "Front Page Extra Sections" area for additional homepage sections.
8. Under Appearance ▸ Customize ▸ StorySaga Options, set your social links, footer tagline, and (optionally) a closing call-to-action band for the homepage.

== Frequently Asked Questions ==

= Does this theme require any plugins? =

No. StorySaga works entirely with WordPress core. Portfolio "chapters" are regular posts organized with WordPress's built-in category taxonomy.

= How do I add a "chapter" to my portfolio? =

Write it as a normal post (Posts ▸ Add New) and assign it to the "Projects" category. It will automatically appear in the project archive and in the homepage's "Featured Chapters" section (which shows your 3 most recent).

= Can I customize the colors? =

The theme ships with a fixed, deliberately-designed light palette plus an optional dark mode ("Midnight Chapter"), switchable under Appearance ▸ Customize ▸ StorySaga Options ▸ Appearance. Beyond that, colors are defined in style.css as CSS custom properties, which a child theme can easily override.

= Is this theme accessible? =

StorySaga aims to follow WCAG 2.1 AA guidance: a visible, high-contrast skip link; a keyboard-operable navigation menu using the WAI-ARIA Disclosure pattern (Escape to close, click-outside to close, `aria-expanded` kept in sync with visible state); visible focus outlines on every interactive element; and sufficient color contrast in both the light and dark palettes. This theme has not been through a formal accessibility audit and does not use the "accessibility-ready" tag, which is reserved for themes reviewed by the WordPress Accessibility Team.

= Does this theme support translation and right-to-left (RTL) languages? =

Yes. All strings are wrapped for translation under the `storysaga` text domain, and layout-critical CSS uses logical properties (`inset-inline-start`, `text-align: end`, etc.) rather than hardcoded left/right, so it displays correctly in RTL languages.

== Resources ==

* StorySaga does not bundle any third-party fonts, icon libraries, or JavaScript frameworks. Typography uses the visitor's system font stack, defined in style.css. Social/contact icons in the footer are small inline SVGs written specifically for this theme (simple geometric line icons), not a redistributed icon set. jQuery is used only where WordPress core already loads it for the Customizer preview (`customize-preview` dependency); the front end and primary navigation use plain vanilla JavaScript with no jQuery dependency. The screenshot.png included with this theme was created for StorySaga and is licensed under the GPLv2 (or later), consistent with the theme itself.

* Photographs in screenshot.png (2 images):
  Author: Bikram (theme author)
  License: CC0 1.0 Universal / GPLv2 or later (https://creativecommons.org/publicdomain/zero/1.0/)
  
  Image 1 (Mountain photograph in screenshot.png): <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a> licensed <a href="https://wordpress.org/photos/photo/1136a8edc7/">photo</a> by <a href="https://wordpress.org/photos/author/bikram_sth/">bikram_sth</a> from the <a href="https://wordpress.org/photos/">WordPress Photo Directory</a>.
  
  Image 2 (Tree photograph in screenshot.png): <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0</a> licensed <a href="https://wordpress.org/photos/photo/1156a8edd6/">photo</a> by <a href="https://wordpress.org/photos/author/bikram_sth/">bikram_sth</a> from the <a href="https://wordpress.org/photos/">WordPress Photo Directory</a>.

== Changelog ==

= 0.0.3 =
* Security: Fixed unescaped dynamic search query in search.php by wrapping get_search_query() with esc_html().
* Internationalization: Moved HTML entities (&larr;, &rarr;) and directional characters outside of translation strings in comments.php, template-tags.php, and front-page.php for proper RTL language support.
* Accessibility: Added missing .screen-reader-text class to skip link in header.php.
* Category archive: Changed hardcoded "Projects" heading to use dynamic single_cat_title() function in category-projects.php.
* CSS: Fixed clearing floats by adding clear: both to .page-links and .page-header.
* CSS: Fixed long title overflow with word-break, overflow-wrap, and hyphens properties on .page-title and .entry-title.
* CSS: Enhanced navigation styling with smooth animations, hover effects, underline transitions, and improved visual feedback.
* CSS: Enhanced pagination styling with modern button design, hover animations, and better visual hierarchy.
* CSS: Version synchronization in storysaga.pot header updated from 1.0.0 to 0.0.2.
* RTL Support: Added comprehensive rtl.css with full right-to-left language support including navigation, layout, forms, pagination, and responsive adjustments.
* Documentation: Improved screenshot attribution in readme.txt with separate image descriptions and clearer licensing information.

= 0.0.2 =
* Fixed a block validation error on the `core/image` block in five bundled patterns (Hero, About Me, and the three Featured Projects cards). The placeholder image markup included an empty `src=""` attribute; WordPress's own block output omits the `src` attribute entirely when no image is selected. Markup now matches exactly.

= 0.0.1 =
* Initial release.

== Copyright ==

StorySaga WordPress Theme, Copyright 2026 Bikram.
StorySaga is distributed under the terms of the GNU GPL v2 or later.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, see https://www.gnu.org/licenses/gpl-2.0.html.
