=== Custom Login Page Customizer ===
Contributors: silkalns
Tags: login customizer, custom login page, login page, login form, white label login
Requires at least: 6.0
Tested up to: 7.0
Stable tag: 2.3.0
Requires PHP: 8.0
License: GPLv3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Customize your WordPress login page with live preview. Change logo, background, colors, and form styling without coding.

== Description ==

**Custom Login Page Customizer** transforms your default WordPress login page into a branded, professional experience that matches your website. Perfect for agencies, freelancers, and businesses who want to impress clients and users from their very first interaction.

= Why Customize Your Login Page? =

Your login page is often the first thing clients and team members see. A branded login page:

* **Builds trust** – Professional appearance increases user confidence
* **Reinforces your brand** – Consistent branding across every touchpoint
* **Impresses clients** – White-label your WordPress sites for a polished look
* **Takes seconds** – No coding required, instant live preview

= Key Features =

**Live Customizer Preview** – See every change instantly before saving. No guesswork, no refreshing.

**Ready-Made Templates** – Choose from 9 professionally designed login page templates including modern gradients, glassmorphism, dark themes, and split-screen layouts.

**Complete Logo Control** – Upload your custom logo, adjust dimensions, or use text-based branding. Link your logo to any URL.

**Background Customization** – Add custom background images, solid colors, or gradients to create stunning login pages.

**Form Styling** – Customize every aspect of your login form including width, padding, borders, border radius, field colors, and button styles.

**Button & Link Styling** – Match your brand colors with customizable button backgrounds, hover states, shadows, and link colors.

**Custom CSS** – Advanced users can add custom CSS for pixel-perfect control.

**Multi-Column Layouts** – Create split-screen login pages with customizable column widths and alignments.

**Registration & Password Forms** – Customize the registration form and lost password form to match your login page styling.

= Perfect For =

* **Web Agencies** – White-label client sites with branded login pages
* **Freelancers** – Deliver polished, professional WordPress sites
* **Membership Sites** – Create welcoming login experiences for members
* **Corporate Intranets** – Reinforce company branding for employee portals
* **WooCommerce Stores** – Brand your customer account login pages
* **Multisite Networks** – Customize login pages across your network

= How It Works =

1. Install and activate the plugin
2. Go to **Appearance → Customize → Custom Login Page Customizer**
3. Customize your login page with live preview
4. Click Publish – done!

= Detailed Customization Options =

**Logo Section**
- Custom logo image upload
- Logo width and height control
- Logo URL customization
- Text-only or image-only options
- Logo text color and hover color

**Background Section**
- Custom background image
- Background color picker
- Form column background options

**Form Section**
- Form width and height
- Form background color and image
- Padding and border controls
- Border radius for rounded corners
- Field width, margin, and styling
- Label text customization
- Field background and text colors

**Button Section**
- Background color and hover color
- Border color and hover border color
- Button shadow and text shadow
- Submit button text customization

**Links Section**
- Link color and hover color
- Show/hide navigation links
- Show/hide "Remember Me" checkbox

= Documentation & Support =

Need help? Visit our [support forum](https://wordpress.org/support/plugin/colorlib-login-customizer/) for assistance.

= About Colorlib =

This plugin is developed by [Colorlib](https://colorlib.com/), creators of popular free WordPress themes downloaded by millions. We are committed to building high-quality, user-friendly WordPress plugins.

If you enjoy Custom Login Page Customizer, please leave a [5-star review](https://wordpress.org/support/plugin/colorlib-login-customizer/reviews/?filter=5). Your feedback helps us improve!

== Installation ==

1. Download the plugin (.zip file) on your hard drive.
2. Unzip the zip file contents.
3. Upload the `colorlib-login-customizer` folder to the `/wp-content/plugins/` directory.
4. Activate the plugin through the 'Plugins' menu in WordPress.
5. Go to **Appearance → Customize → Custom Login Page Customizer** to start customizing.

== Frequently Asked Questions ==

= How do I access the login page customizer? =

After activating the plugin, go to **Appearance → Customize** in your WordPress admin. You'll see a new section called "Custom Login Page Customizer" where you can customize your login page with live preview.

= Will this plugin work with my theme? =

Yes! Custom Login Page Customizer works independently of your theme. It only modifies the WordPress login page (wp-login.php), so it's compatible with any WordPress theme.

= Can I add my own logo to the login page? =

Absolutely. Go to the Logo section in the customizer to upload your custom logo. You can also adjust the logo width, height, and link URL. You can choose to display just the image, just text, or both.

= How do I change the login page background? =

In the customizer, navigate to the Background section. You can upload a custom background image or set a solid background color. There are also options for the form column background if you're using a multi-column layout.

= Does this work with custom login URLs from security plugins? =

Yes, Custom Login Page Customizer is compatible with security plugins that change the login URL, including All In One WP Security, WPS Hide Login, and similar plugins. Your customizations will appear on your custom login URL.

= Can I customize the registration and lost password pages too? =

Yes! The plugin includes options to customize the registration form and lost password form. Your styling will be applied consistently across all login-related pages.

= Is the plugin compatible with WordPress Multisite? =

Yes, Custom Login Page Customizer works with WordPress Multisite. You can customize the login page for your entire network or individual sites depending on your configuration.

= Will my customizations be lost if I update the plugin? =

No. All your customizations are saved in the WordPress database, separate from the plugin files. Your settings will be preserved through plugin updates.

= Can I add custom CSS to the login page? =

Yes, there's a Custom CSS section where you can add your own CSS code for advanced styling. This is perfect for fine-tuning specific elements or adding custom effects.

= How do I reset the login page to default? =

You can reset individual settings by clearing the values in the customizer. To completely reset all settings, you can deactivate and delete the plugin, then reinstall it.

= Does this plugin slow down my website? =

No. Custom Login Page Customizer only loads its styles and scripts on the WordPress login page. It has zero impact on your website's front-end performance.

= Is the plugin translation ready? =

Yes, Custom Login Page Customizer is fully translation ready and includes a POT file for translators. It's already translated into several languages.

= Can I use this plugin to white-label WordPress for clients? =

Yes! This plugin is perfect for agencies and freelancers who want to white-label WordPress login pages for clients. Remove the WordPress branding and add your client's logo and brand colors.

= What PHP version is required? =

Custom Login Page Customizer requires PHP 8.0 or higher. This ensures optimal performance and security. If you're running an older PHP version, please contact your hosting provider to upgrade.

= Where can I get support if I have issues? =

For support, please visit the [WordPress.org support forum](https://wordpress.org/support/plugin/colorlib-login-customizer/). We actively monitor and respond to support requests.

== Screenshots ==

1. Login page with custom background and logo
2. Customizer panel with live preview
3. Form styling options
4. Template selection

== Upgrade Notice ==

= 2.3.0 =
Security and correctness release. Custom-CSS sanitization is hardened (dangerous directives could previously be smuggled through by nesting them), the review-notice AJAX handler now checks capabilities, and several login-page texts no longer render double-escaped. Also fixes the "Back to site text" setting, which had silently stopped working on WordPress 5.7 and later. Recommended for all users.

== Changelog ==

= 2.3.0 =
* Security: Hardened custom-CSS sanitization. Dangerous directives (@import, javascript:, expression(), behavior:, -moz-binding:, data: URIs) were previously stripped in a single pass, so a nested payload could reassemble itself into a working token. Filtering now repeats until the value stops changing.
* Security: The review-notice AJAX handler now performs a capability check, and its dismissal is stored per user instead of in a shared site-wide option.
* Security: Added direct-access guards to the files that were missing them.
* Security: CSS values are now escaped with a CSS-aware filter at print time instead of esc_attr(), which offered no protection inside a <style> element while corrupting quoted values such as font stacks.
* Security: Login page title is filtered through kses, closing a possible breakout via the unescaped <title> element.
* Fix: The "Hide privacy policy link" option no longer registers its filter on every request, so it can no longer affect the privacy policy link on the front end.
* Fix: Corrected double-escaped login text. Labels that WordPress already escapes (Log In, Register and Get New Password buttons, Remember Me) were escaped a second time, so an ampersand or apostrophe rendered as &amp; or &#039;.
* Fix: The "Back to site text" setting works again. WordPress 5.7 renamed the underlying string from "Back to %s" to "Go to %s"; both are now matched.
* Fix: Uninstall now removes the options and transients the plugin actually creates (including the admin menu location preference), no longer iterates every user on the site, and no longer flushes the entire object cache.
* New: Modern CSS support in colour and dimension fields — hsl(), 4- and 8-digit hex, space-separated rgb(0 0 0 / 50%), var(), color-mix(), calc(), clamp(), min(), max() and the dvh/svh/lvh/ch viewport units.
* Performance: The static base stylesheet is now a real, browser-cacheable file instead of being inlined on every login page view.
* Performance: Settings and the selector map are only loaded on the login page and in the Customizer preview, rather than on every front-end, admin and AJAX request.
* Performance: Removed ~1,250 lines of unused code (the jQuery minicolors library and four superseded Customizer controls) and their orphaned stylesheets.
* Fix: The "requires PHP 8.0" notice can now actually appear. The bootstrap file used PHP 7.1+ return types, and PHP parses a whole file before running it, so on an older PHP the plugin died with a parse error instead of explaining itself.
* i18n: The Customizer preview now reuses WordPress core's own translations for the login form labels it copies from wp-login.php, so the preview matches the real login page in every locale instead of depending on those core strings being re-translated into this plugin.
* Housekeeping: Removed two unused images (three-column.png, four-column.png).
* Fix: The two-column "form above" and "form below" layouts no longer force a horizontal scrollbar. Running the flex container in column direction while it still inherited flex-wrap made it start a second column once the two rows were taller than the viewport, doubling the page width.
* Fix: Removed a JavaScript error ("_customizePartialRefreshExports is not defined") from the Customizer preview. The preview template mirrors wp-login.php and never runs wp_head(), so WordPress never printed the selective-refresh data its own script expects.
* Fix: Restored the "Logo Title", "Login Page Title" and "Form Horizontal Alignment" settings to the defaults list — without an entry there they were silently discarded when importing a settings file.
* Dev: Added a PHPUnit suite covering the sanitization layer and the generated login stylesheet, and replaced Travis CI with GitHub Actions running PHP 8.0 through 8.5.

= 2.2.1 =
* Fix: The plugin settings page (with the new export/import, reset and menu-location tools) is now reachable instead of redirecting straight to the Customizer
* Fix: Custom text above the form and the custom footer links/text are no longer hidden behind the background when a custom background image or color is set

= 2.2.0 =
* New: "Footer & Links" section — add custom text above the login form and a custom footer below it, add up to 3 custom footer links (Imprint, Privacy, Terms, etc.), and toggles to hide the privacy policy link and the language switcher
* New: Export and import your settings as a JSON file, plus a one-click "Reset to defaults"
* New: Choose where the plugin's admin menu appears — top level, under Settings, or under Appearance
* New: Login button width control
* New: Background blur and brightness controls
* Enhancement: The login form height is now responsive and grows with its content, and supports "auto"
* Fix: CSS dimension values that already include a unit or keyword (such as 100% or auto) are no longer corrupted

= 2.1.2 =
* Fix: Custom logo is no longer lost when switching between templates in the Customizer (#172)
* Fix: Large logos now stay centered on desktop instead of shifting off-center when wider than the form (#70)
* Fix: The login page language switcher now appears centered below the form instead of beside it (#173)

= 2.1.1 =
* Security: Hardened output escaping across the login page, the admin review notice, and the settings page (esc_url, esc_attr, esc_html, esc_js, wp_kses_post)
* Fix: Corrected legacy logo-settings migration so older installs that used a text logo upgrade to the correct logo display mode
* Enhancement: Plugin styles and scripts are now versioned by the plugin version for reliable cache-busting after updates
* Compatibility: Verified and tested with PHP 8.5
* Compatibility: Tested up to WordPress 7.0
* Code: Brought the codebase to full WordPress Coding Standards (WPCS 3.3) compliance — phpcs reports zero errors and warnings
* Code: Added documentation blocks throughout and switched to timezone-safe date handling in the review notice
* Code: Added PHP 8.4 and 8.5 to the CI test matrix

= 2.1.0 =
* New: Added 5 new professionally designed login page templates:
  - Gradient Sunset – Modern vibrant purple-pink gradient with rounded form
  - Dark Professional – Sleek dark theme for corporate/professional sites
  - Glassmorphism – Trendy glass effect with blur and transparency
  - Geometric Bold – Two-column layout with bold amber geometric CSS shapes
  - Minimal Clean – Ultra-minimal design with maximum whitespace
* Fix: Password field width now matches username field width consistently
* Fix: Password visibility toggle (eye icon) properly centered in input field
* Enhancement: All new templates use CSS-only effects (no additional images required)
* Enhancement: Templates work consistently in both Customizer preview and live login page

= 2.0.0 =
* **BREAKING CHANGE**: Minimum PHP version is now 8.0 (was 5.6)
* **BREAKING CHANGE**: Minimum WordPress version is now 6.0 (was 4.6)
* Security: Fixed XSS vulnerabilities in login template output
* Security: Added proper escaping for all user-generated content
* Security: Added CSS sanitization to prevent injection attacks
* Security: Added capability checks for customizer preview
* Enhancement: Added strict type declarations throughout codebase
* Enhancement: Modernized PHP code with PHP 8.0+ features
* Enhancement: Added proper uninstall cleanup to remove all plugin data
* Enhancement: Added input validation and sanitization functions
* Enhancement: Updated CI/CD to test PHP 8.0, 8.1, 8.2, 8.3
* Fix: JavaScript typo 'show-image-ony' corrected to 'show-image-only'
* Fix: Removed unused constant COLORLIB_LOGIN_CUSTOMIZER_SITE
* Compatibility: Hide Astra theme style guide overlay on login page to prevent visual conflicts
* Enhancement: Added sanitize_callback to all Customizer settings for proper input validation
* Enhancement: Replaced custom toggle control with standard WordPress checkbox
* Enhancement: Replaced custom color picker with WordPress built-in WP_Customize_Color_Control
* Enhancement: Replaced custom range slider with native HTML5 range input
* Performance: Removed jQuery minicolors dependency (~39KB savings)
* Code: Added Composer for dependency management
* Code: Updated PHPCS ruleset for modern WordPress standards

= 1.3.4 - 05.06.2025 =
Fixed: Textdomain fix for wordpress 6.8+ ( [#179](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/179) )

= 1.3.3 - 03.02.2025 =
Fixed: Textdomain fix for wordpress 6.7+ ( [#179](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/179) )
Fixed: Deprecated: Hook login_headertitle ( [#178](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/178) )

= 1.3.2 - 27.03.2024 =
Fixed: Php 8 deprecations ( [#169](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/169) )
Fixed: "Remember me" label not aligned properly for users display( [#166](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/166) )
Fixed: Form alignment options switched( [#165](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/165) )
Fixed: The live preview doesn’t show "Register" link ( [#163](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/163) )
Fixed: Updated deprecated jquery & updated minicolors js library ( [#159](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/159) )
Fixed: Added plugin name in "Rate us" notice. ( [#149](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/149) )
Fixed: Show image only on tempalte no.4 does not display the logo image. ( [#135](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/135) )
Fixed: Background color that will not apply on half page form templates ( [#136](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/136) )
Fixed: Vertical scrollable login, reset and register forms ( [#131](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/131) )
Fixed: Bigger logos on mobile/small tablet devices stretching the login page. ( [#43](https://github.com/ColorlibHQ/colorlib-login-customizer/issues/43) )

= 1.3.1 - 08.02.2022 =
Fixed: Form placement ( https://wordpress.org/support/topic/the-login-area-doesnt-center-fix-not-working/ )

= 1.3.00 - 10.05.2021 =
Added : Background image link ( https://github.com/ColorlibHQ/colorlib-login-customizer/issues/115 )

= 1.2.99 - 08.04.2021=
Fixed: An issue where the link color hover pallete would not display properly (https://github.com/ColorlibHQ/colorlib-login-customizer/issues/139)
Fixed: An issue where the logo would be outside of the login box on a selected template ( https://github.com/ColorlibHQ/colorlib-login-customizer/issues/134)

= 1.2.98 =
* Compatibility with jQuery 3.0

= 1.2.97 =
* Hide logo settings if hide logo is toggled on
* Add option to use both image logo and text

= 1.2.96 =
* Compatibility fix with All In One WP Security plugin
* Customizer toggle bug fix
* Review dismiss fix

= 1.2.95 =
* Review request bug fix
* Review save bug fix

= 1.2.94 =
* Minor responsive fixes

= 1.2.93 =
* Removed news dashboard widget

= 1.2.92 =
* Update for possibility to add links inside certain form texts

= 1.2.91 =
* Added possibility to add links inside certain form texts
* Updated deprecated filter login_headertitle
* Added option to change login page title

= 1.2.9 =
* Update toggles design

= 1.2.8 =
* Responsive view fixes
* Updated plugin headers

= 1.2.7 =
* Added options to edit register form
* Added options to edit lost password form

= 1.2.6 =
* Customizer CSS editor full height
* Apply login form settings to registration form
* Removed duplicate control for logo text

= 1.2.5 =
* Remove uninstall feedback

= 1.2.4 =
* Fixed https://github.com/ColorlibHQ/colorlib-login-customizer/issues/30
* Fixed https://github.com/ColorlibHQ/colorlib-login-customizer/issues/41
* Added https://github.com/ColorlibHQ/colorlib-login-customizer/issues/27

= 1.2.3 =
* Fixed `Logo Url` setting
* Added `Logo Title` setting

= 1.2.2 =
* Added the possibility to change the `Remember Me` and `Log In` texts

= 1.2.1 =
* Minor tweaks & version bump

= 1.2.0 =
* Implemented everything from here: https://github.com/puikinsh/colorlib-login-customizer/milestone/1?closed=1

= 1.1 =
* Changed templates functionality
* Added new layout options
* Fixed live preview editing
* Fixed minor bugs

= 1.0 =
* Initial release
