=== FR Read More ===
Contributors: faizrasul
Tags: read more, read less, expander, toggle content, accordion
Requires at least: 6.0
Tested up to: 6.7
Stable tag: 1.2
Requires PHP: 7.4
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Easily create expandable and collapsible content sections on WordPress. Let visitors reveal hidden text with a smooth, accessible toggle.

== Description ==

**FR Read More** is a lightweight, responsive, and user-friendly plugin that lets you hide long blocks of text behind a customizable "Read More" button. 

Visitors can click or tap to smoothly expand the full text, keeping your pages clean, compact, and engaging. It is perfect for long blog articles, product specifications, FAQs, testimonials, and SEO text sections.

### ✨ Key Features

* **Instant Expand & Collapse:** Smooth, hardware-accelerated animations with zero page reloads.
* **Pure Vanilla JavaScript:** Ultra-lightweight with zero external dependencies for maximum loading speed and PageSpeed scores.
* **100% Accessible (a11y):** Built with semantic `<button>` elements, full keyboard navigation (Tab / Space / Enter), and standard ARIA attributes (`aria-expanded`, `aria-controls`).
* **Live Interactive Preview:** See your button style, dimensions, and hover colors change in real-time inside the admin dashboard before saving.
* **Full Design Customization:** Customize button colors, hover colors, font size, line height, font weight, border radius, padding, width, and alignment.
* **1-Click Shortcode Generator:** Easily copy shortcodes directly to your clipboard.
* **Multiple Instances on One Page:** Add as many expanders as you need without ID conflicts.
* **SEO & Crawler Friendly:** Enclosed text remains in the DOM for search engine crawlers to index while keeping the visual layout clean for visitors.
* **Theme & Page Builder Compatible:** Works seamlessly with the Block Editor (Gutenberg), Classic Editor, Elementor, Divi, Beaver Builder, and all standard WordPress themes.

== Installation ==

1. Log in to your WordPress Dashboard.
2. Go to **Plugins > Add New**.
3. Search for **FR Read More** or click **Upload Plugin** and select the `.zip` file.
4. Click **Install Now**, then click **Activate**.
5. Go to **FR Read More** in your admin menu to customize button styling and grab your shortcode!

== Usage ==

### Basic Usage

Simply wrap your text in the shortcode:

`[fr_read_more]Your long text goes here...[/fr_read_more]`

*(Legacy shortcode `[frrm_expander_maker]` is also fully supported.)*

### Shortcode Attributes

You can customize individual buttons directly via shortcode attributes:

* `more` &mdash; Custom text for the button when collapsed (e.g. `[fr_read_more more="View Full Specs"]...[/fr_read_more]`).
* `less` &mdash; Custom text for the button when expanded (e.g. `[fr_read_more less="Hide Specs"]...[/fr_read_more]`).
* `align` &mdash; Button position: `left`, `center`, or `right` (e.g. `[fr_read_more align="center"]...[/fr_read_more]`).
* `id` &mdash; Optional custom unique HTML identifier.

== Frequently Asked Questions ==

= How do I add an expander to my post or page? =
Simply paste `[fr_read_more]Your hidden content here...[/fr_read_more]` inside any Paragraph, Shortcode, or Custom HTML block in the WordPress editor.

= Can I customize the button's colors and fonts? =
Yes! Navigate to **FR Read More** in your WordPress admin menu. You can customize font size, font weight, background color, text color, border color, hover colors, padding, and border radius with an instant live preview.

= Can I have multiple Read More sections on a single page? =
Yes! FR Read More automatically assigns unique instance IDs to each shortcode, allowing multiple expanders on the same post or page without any conflicts.

= Is the hidden content indexed by search engines like Google? =
Yes. The content is rendered directly in the page HTML and toggled client-side, allowing search engine crawlers to read and index your full text for SEO.

= Is FR Read More accessible for screen readers? =
Yes. Buttons are built using semantic `<button type="button">` elements with complete `aria-expanded` and `aria-controls` states, and can be operated using standard keyboard navigation (Tab, Enter, Space).

= Does it slow down my website? =
Not at all. The frontend engine uses pure, modern vanilla JavaScript with no heavy frameworks or libraries, ensuring fast loading and excellent Core Web Vitals scores.

== Changelog ==

= 1.2.0 =
* **Feature:** Added a modern admin settings interface with a **Live Interactive Preview** box.
* **Feature:** Added a 1-click **Shortcode Copy** tool in the admin panel.
* **Feature:** Added convenient `[fr_read_more]` shortcode alias alongside `[frrm_expander_maker]`.
* **Fix:** Removed broken dynamic AJAX logic that previously wiped out enclosed text.
* **Fix:** Resolved selector bug and hardcoded English strings in JavaScript.
* **Fix:** Eliminated duplicate ID collisions when multiple shortcodes are used on the same page.
* **Security:** Added comprehensive sanitization and data validation for all options.
* **Security:** Removed inline `onmouseover`/`onmouseout` event handlers; implemented CSS custom properties.
* **Performance:** Restricted admin scripts and styles strictly to the plugin settings page.
* **Performance:** Replaced frontend jQuery dependency with ultra-fast pure vanilla JavaScript.
* **Accessibility:** Converted toggle elements to semantic `<button>` tags with full ARIA states and keyboard support.
* **Cleanup:** Removed deprecated `.htaccess` troubleshooting instructions from documentation.
* **Compatibility:** Tested and verified up to WordPress 6.7 and PHP 8.3.

= 1.1 =
* Initial release on WordPress.org.

== Upgrade Notice ==

= 1.2.0 =
Major upgrade: fixes AJAX content issues, adds live preview in admin, enhances accessibility, and boosts page speed performance. Recommended for all users.
