=== Fluid Font Forge ===
Contributors: mijstrebor
Donate link: https://buymeacoffee.com/jimrweb
Tags: typography, fonts, responsive, clamp, fluid
Requires at least: 5.0
Tested up to: 6.9
Requires PHP: 8.2
Stable tag: 5.4.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Advanced fluid typography calculator with CSS clamp() generation for responsive font scaling across all device sizes.

== Description ==

Fluid Font Forge is a comprehensive WordPress plugin that simplifies responsive typography management. Generate CSS clamp() functions with mathematical precision for perfectly scaled fonts across all devices.

**Key Features:**

* **Real-time CSS clamp() generation** - See your responsive font sizes calculated instantly
* **Skip entries for custom spacing** - Exclude font sizes from CSS output while maintaining scale progression
* **Multiple output formats** - CSS classes, custom properties, HTML tags, and Tailwind config
* **Interactive preview system** - Visual comparison of font sizes at different viewport widths
* **Mathematical scaling ratios** - Based on musical harmony principles (Major Second, Perfect Fourth, Golden Ratio, etc.)
* **Drag-and-drop size management** - Reorder your font scale with intuitive interface
* **Custom font preview** - Test with your actual web fonts using WOFF2 URLs
* **Copy-to-clipboard functionality** - One-click CSS copying for immediate use
* **Professional admin interface** - Clean, modern design that integrates seamlessly with WordPress

**Perfect for:**
* Web designers creating responsive typography systems
* Developers implementing fluid font scaling
* Theme creators needing consistent font hierarchies
* Anyone wanting professional typography without complex CSS calculations

**Technical Highlights:**
* Uses CSS clamp() for true fluid scaling between viewport breakpoints
* Supports both px and rem units with automatic conversion
* Mathematical progression ensures consistent visual hierarchy
* Accessibility-compliant with WCAG guidelines for readability
* Clean, semantic CSS output ready for production use

Transform your typography workflow with Fluid Font Forge - where responsive design meets mathematical precision.

**Accessibility Features:**

* WCAG 2.1 compliant interface
* Keyboard navigation support
* Screen reader friendly
* High contrast mode compatible
* Minimum font size recommendations for readability

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/fluid-font-forge` directory, or install the plugin through the WordPress plugins screen directly.
2. Activate the plugin through the 'Plugins' screen in WordPress.
3. Navigate to Tools > Fluid Font Forge in your WordPress admin menu to configure your typography settings and use the application.
4. Set your viewport range, root font sizes, and scaling ratios.
5. Add, edit, or reorder your font sizes using the interactive table.
6. Copy the generated CSS and paste it into your theme's stylesheet.

== Frequently Asked Questions ==

= What is CSS clamp() and why should I use it? =

CSS clamp() creates truly responsive typography that scales smoothly between minimum and maximum sizes based on viewport width. This eliminates the need for multiple media queries and creates more fluid, accessible designs.

= Can I use this with any WordPress theme? =

Yes! Fluid Font Forge generates standard CSS that works with any theme. You can use the generated classes, custom properties, or tag styles depending on your implementation preference.

= Does this work with custom fonts? =

Absolutely. The preview system supports WOFF2 font URLs so you can see exactly how your custom fonts will look at different sizes before implementing them.

= Is the generated CSS production-ready? =

Yes. The plugin generates clean, optimized CSS using best practices. The clamp() functions are supported in all modern browsers with automatic fallbacks.

= What browsers support CSS clamp()? =

All modern browsers support clamp() (Chrome 79+, Firefox 75+, Safari 13.1+, Edge 79+). 

= How do I choose the right scaling ratio? =

Start with Major Third (1.250) for body text or Perfect Fourth (1.333) for headlines. The Golden Ratio (1.618) creates dramatic size differences perfect for hero sections.

= Can I use different scales for mobile and desktop? =

The clamp() function automatically adjusts between your minimum and maximum viewport settings, creating a smooth scale across all devices.

= Can I export my settings? =

The plugin saves all your configurations in the WordPress database. For backup or migration, use WordPress's standard export/import tools or copy the generated CSS for manual implementation.

== Screenshots ==

1. **Complete Interface Overview** - Manage all your fluid typography from one intuitive dashboard
2. **Settings Panel** - Configure viewport ranges and scaling ratios with precision
3. **Control Center** - Switch between CSS Variables, Classes, HTML Tags, and Tailwind formats
4. **CSS Classes Output** - Generate production-ready CSS with semantic class names
5. **Live Preview** - Test your fonts at any viewport size with the interactive slider
6. **Scaling Visualization** - See exactly how your fonts scale across devices
7. **One-Click CSS Export** - Copy optimized code directly to your clipboard

== Other Notes ==

= Mathematical Ratios Explained =

* **Minor Second (1.067)**: Subtle progression, ideal for dense content
* **Major Second (1.125)**: Gentle scaling for readable body text
* **Minor Third (1.200)**: Balanced hierarchy for most designs
* **Major Third (1.250)**: Clear distinction between sizes
* **Perfect Fourth (1.333)**: Strong contrast for headlines
* **Golden Ratio (1.618)**: Dramatic scaling for hero sections
== Changelog ==

= 5.4.0 =
* New: Project / Customer identification field in Settings — tag any configuration with a project or customer name (up to 16 characters). The identifier is embedded in the exported JSON filename (e.g. fluid-font-forge-settings-acme-corp-2026-05-10.json) and in the header comment of every generated CSS block, making it practical to build a named library of settings files — one per client or project. Thanks to @hughes888 for suggesting this feature.
* Added: Non-FFF JSON rejection — export files now carry an fff_format identifier; import rejects any JSON missing this marker and export_info.plugin_version
* Fixed: Import failure messages (including non-FFF file rejection) now appear as a blocking modal instead of an inline admin notice banner
* Fixed: Double requestAnimationFrame before the fetch call ensures the Importing button state paints before the AJAX request fires on fast local servers
* Fixed: Export button spinner now resets via cookie polling instead of a fixed 2-second timer — PHP sets fff_export_done cookie when the download response is sent; JS resets the button within 100ms
* Changed: Save button tooltip updated to clarify that Save persists settings for the next session; Export/Import should be used for named backups

= 5.3.4 =
* Fixed: Button text wrapping — white-space: nowrap added to .fff-btn prevents multi-word labels from wrapping to two lines
* Fixed: Stray closing div in header-controls.php caused Settings and Font Size Classes panels to render wider than panels above
* Fixed: Version text used -15vh margin — replaced with -80px to prevent layout shifts on production sites
* Changed: Controls row restructured — Preview Font/Reset/Export/Import on left, Autosave/Save/Ready pinned to right
* Changed: Autosave/Save/Ready now bottom-aligned with Export/Import buttons via align-items: flex-end
* Changed: Settings/Font Size Classes panels widened by removing extra padding from .fff-main-grid
* Changed: Base dropdown and action buttons now use consistent gap: 8px spacing
* Changed: Tab row has 16px margin below before the Settings panels

= 5.3.3 =
* Fixed: Forge header banner uses fixed 420px height instead of vh units — prevents layout corruption on production sites
* Fixed: About panel width overflow on narrow content areas
* Fixed: Missing CSS variables --clr-txt and --clr-shadow added
* Changed: Quick Start documentation updated

= 5.3.2 =
* Fixed: WordPress Plugin Check compliance - ABSPATH guard added to plugin bootstrap
* Fixed: I18n ordered placeholders (%1$d/%2$d, %1$.1f/%2$.1f) with translators comments
* Fixed: $_FILES sanitization with explicit isset() checks on individual array keys
* Fixed: Global variable renamed to properly prefixed $fluid_font_forge_import_export

= 5.3.1 =
* Changed: CSS variable consolidation - replaced hardcoded rgba(), hex colors, and pixel values in admin templates with CSS custom properties
* Changed: Tested up to WordPress 6.9
* Changed: Updated minimum PHP requirement to 8.2
* Fixed: Version string consistency

= 5.2.0 =
* New: Skip entries feature - Toggle checkbox (☑/☐) to exclude font sizes from CSS output while maintaining scale progression
* New: Enhanced tooltips on all action buttons (Edit, Skip, Delete, Add Size, Reset, Clear All)
* Enhanced: Visual feedback for skipped entries with strikethrough text and [SKIP] badge
* Enhanced: Skipped rows display diagonal stripe pattern with reduced opacity
* Enhanced: Preview panels show skipped entries as grayed out with clear indicators
* Enhanced: Documentation updated with skip feature usage and examples
* Technical: Backward compatible - existing data loads correctly with skip property defaulting to false
* Note: Smart spacing control for typographic scales without regenerating ratios

= 5.1.3 =
* Changed: PHP namespace from JimRWeb\FluidFontForge to JimRForge\FluidFontForge
* Changed: CSS class prefix from fcc- to fff- for better plugin identification
* Changed: Updated all branding references from JimRWeb to JimRForge
* Note: No functional changes - all features work identically to 5.1.2

= 5.1.1 =
* Fixed: Tailwind tab persistence now works correctly across page refreshes
* Fixed: Tab switching no longer causes JavaScript errors
* Fixed: Sample Text panel displays correct REM values when REM units selected
* Fixed: Removed unwanted scroll jump when selecting preview items
* Enhanced: Community panel content updated with current project status
* Note: Internal bug fixes only - no new features or breaking changes


= 4.3.0 =
* Architecture: Implemented PHP namespaces (JimRForge\FluidFontForge) for professional code organization
* Architecture: Renamed internal factory class for consistency with WordPress standards
* Enhanced: Improved code documentation and PHPDoc blocks throughout
* Technical: Modernized codebase to prevent naming conflicts with other plugins
* Technical: Prepared plugin structure for WordPress Plugin Directory submission
* Note: No functional changes - all features work identically to 4.2.0

= 4.2.0 =
* Added: Sample Text panel with interactive viewport slider for real-time font preview
* Added: Separate scaling controls for titles and body text
* Enhanced: Extracted modular controllers for better code organization
* Enhanced: Improved CSS documentation with KSS format
* Enhanced: Better error handling for custom font URLs
* Fixed: Preview Font feature now works with Google Fonts CSS API
* Fixed: Font name display shows actual family name instead of filename
* Fixed: Local file URLs properly blocked with helpful error messages

= 4.0.3 =
* Initial public release
* Complete responsive typography management system
* Interactive preview with real-time calculations
* Support for CSS classes, custom properties, HTML tags, and Tailwind config
* Drag-and-drop size management
* Mathematical scaling based on musical ratios
* Custom font preview support
* Professional admin interface with accessibility features
* Comprehensive error handling and input validation
* WordPress coding standards compliance

== Upgrade Notice ==

= 4.3.0 =
Architecture modernization with PHP namespaces. No functional changes - purely internal improvements for code quality and WordPress standards compliance.

= 4.2.0 =
Major feature update with Sample Text panel and improved preview system. Enhanced error handling and modular code structure.

= 4.0.3 =
Initial release of Fluid Font Forge. Install to start creating professional responsive typography systems with mathematical precision.