# ivyforms/1.4.1/backend/src/ValueObjects/Form/StyleSettings.php

The Innovative Form Builder – IvyForms, version 1.4.1. 61 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/1.4.1/code/backend/src/ValueObjects/Form/StyleSettings.php
- Raw: https://pluginprobe.com/plugins/ivyforms/1.4.1/raw/backend/src/ValueObjects/Form/StyleSettings.php
- Modified: 2026-05-06T08:31:02+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ivyforms/1.4.1/code/backend/src/ValueObjects/Form/StyleSettings.php#L10-L20`.

```php
<?php

namespace IvyForms\ValueObjects\Form;

// phpcs:disable PSR1.Files.SideEffects
use IvyForms\Services\Template\TemplateDefaults;

if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

/**
 * Encapsulates form style settings (quick/advanced mode, themes, classes).
 *
 * @property array<string, mixed> $settings
 */
final class StyleSettings
{
    /**
     * @var array<string, mixed>
     */
    private array $settings = [];

    /**
     * @param array<string, mixed>|null $settings Parsed style settings or null.
     */
    public function __construct($settings = null)
    {
        $defaults = TemplateDefaults::getDefaultFormStylesSafe();

        if (!is_array($settings) || !array_key_exists('stylesEnabled', $settings)) {
            $this->settings = $defaults;
            return;
        }

        $this->settings = array_replace_recursive($defaults, $settings);
    }

    /**
     * Full style settings tree (non-null after construction).
     *
     * @return array<string, mixed>
     */
    public function getAll(): array
    {
        return $this->settings;
    }

    /**
     * Export for persistence / array merges (same key as API and DB column).
     *
     * @return array{styleSettings: array<string, mixed>}
     */
    public function toArray(): array
    {
        return [
            'styleSettings' => $this->settings,
        ];
    }
}

```
