Plugin Directory

Changeset 3441213


Ignore:
Timestamp:
01/16/2026 06:56:17 PM (3 months ago)
Author:
discko
Message:

Update to version 1.2.0 - Modal customization: desktop/mobile size, primary color, font family with Select2 selector

Location:
discko/trunk
Files:
2 added
8 edited

Legend:

Unmodified
Added
Removed
  • discko/trunk/admin/admin-scripts.js

    r3440218 r3441213  
    2828        if ($('.discko-color-picker').length) {
    2929            $('.discko-color-picker').wpColorPicker();
     30        }
     31
     32        // Initialize Select2 for font selector
     33        if ($('.discko-font-select').length && $.fn.select2) {
     34            $('.discko-font-select').select2({
     35                placeholder: disckoAdmin.selectFont || 'Select a font...',
     36                allowClear: true,
     37                width: '300px'
     38            });
    3039        }
    3140
  • discko/trunk/admin/admin-settings-new.php

    r3440185 r3441213  
    390390            </div>
    391391
    392             <!-- Section 3: Modal Size (Mobile) -->
    393             <div class="discko-settings-card discko-section-full" id="discko-modal-size-section">
    394                 <h4><?php esc_html_e('Modal Size (Mobile)', 'discko'); ?></h4>
    395                 <table class="form-table">
    396                     <tr>
    397                         <th><label for="discko_modal_mobile_width"><?php esc_html_e('Modal Width on Mobile', 'discko'); ?></label></th>
    398                         <td>
    399                             <input type="text" id="discko_modal_mobile_width" name="discko_modal_mobile_width"
    400                                    value="<?php echo esc_attr(get_option('discko_modal_mobile_width', '95%')); ?>"
    401                                    class="small-text" />
    402                         </td>
    403                     </tr>
    404                     <tr>
    405                         <th><label for="discko_modal_mobile_height"><?php esc_html_e('Modal Height on Mobile', 'discko'); ?></label></th>
    406                         <td>
    407                             <input type="text" id="discko_modal_mobile_height" name="discko_modal_mobile_height"
    408                                    value="<?php echo esc_attr(get_option('discko_modal_mobile_height', '85vh')); ?>"
    409                                    class="small-text" />
    410                         </td>
    411                     </tr>
    412                 </table>
     392            <!-- Section 3: Modal Customization -->
     393            <div class="discko-section-row">
     394                <!-- Modal Form Style -->
     395                <div class="discko-settings-card">
     396                    <h4><?php esc_html_e('Modal Form Style', 'discko'); ?></h4>
     397                    <table class="form-table">
     398                        <tr>
     399                            <th><label for="discko_modal_primary_color"><?php esc_html_e('Primary Color', 'discko'); ?></label></th>
     400                            <td>
     401                                <input type="text" id="discko_modal_primary_color" name="discko_modal_primary_color"
     402                                       value="<?php echo esc_attr(get_option('discko_modal_primary_color', '')); ?>"
     403                                       class="discko-color-picker" />
     404                                <p class="description"><?php esc_html_e('Override the form primary color (buttons, links, etc.). Leave empty to use default.', 'discko'); ?></p>
     405                            </td>
     406                        </tr>
     407                        <tr>
     408                            <th><label for="discko_modal_font_family"><?php esc_html_e('Font Family', 'discko'); ?></label></th>
     409                            <td>
     410                                <?php
     411                                $discko_current_font = get_option('discko_modal_font_family', '');
     412
     413                                // Get fonts from Elementor if available, otherwise use fallback list
     414                                if (class_exists('\Elementor\Fonts')) {
     415                                    $discko_elementor_fonts = \Elementor\Fonts::get_fonts();
     416                                    $discko_fonts = array();
     417                                    foreach ($discko_elementor_fonts as $discko_font_name => $discko_font_type) {
     418                                        $discko_fonts[] = $discko_font_name;
     419                                    }
     420                                } else {
     421                                    // Fallback list when Elementor is not installed
     422                                    $discko_fonts = array(
     423                                        'Arial',
     424                                        'Courier New',
     425                                        'Georgia',
     426                                        'Helvetica',
     427                                        'Lucida Sans Unicode',
     428                                        'Tahoma',
     429                                        'Times New Roman',
     430                                        'Trebuchet MS',
     431                                        'Verdana'
     432                                    );
     433                                }
     434                                ?>
     435                                <select id="discko_modal_font_family"
     436                                        name="discko_modal_font_family"
     437                                        class="discko-font-select"
     438                                        style="width: 300px;">
     439                                    <option value=""><?php esc_html_e('Default', 'discko'); ?></option>
     440                                    <?php foreach ($discko_fonts as $discko_font_name) : ?>
     441                                        <option value="<?php echo esc_attr($discko_font_name); ?>" <?php selected($discko_current_font, $discko_font_name); ?>>
     442                                            <?php echo esc_html($discko_font_name); ?>
     443                                        </option>
     444                                    <?php endforeach; ?>
     445                                </select>
     446                                <p class="description"><?php esc_html_e('Override the form font family. Select "Default" to use the form default.', 'discko'); ?></p>
     447                            </td>
     448                        </tr>
     449                    </table>
     450                </div>
     451
     452                <!-- Modal Size -->
     453                <div class="discko-settings-card" id="discko-modal-size-section">
     454                    <h4><?php esc_html_e('Modal Size', 'discko'); ?></h4>
     455                    <table class="form-table">
     456                        <!-- Desktop -->
     457                        <tr>
     458                            <th><label><?php esc_html_e('Desktop', 'discko'); ?></label></th>
     459                            <td>
     460                                <div class="discko-size-fields">
     461                                    <?php
     462                                    $discko_desktop_width_value = get_option('discko_modal_desktop_width_value', '');
     463                                    $discko_desktop_width_unit = get_option('discko_modal_desktop_width_unit', '%');
     464                                    $discko_desktop_height_value = get_option('discko_modal_desktop_height_value', '');
     465                                    $discko_desktop_height_unit = get_option('discko_modal_desktop_height_unit', '%');
     466                                    ?>
     467                                    <div class="discko-size-field">
     468                                        <label><?php esc_html_e('Width', 'discko'); ?></label>
     469                                        <div class="discko-input-with-unit">
     470                                            <input type="number"
     471                                                   id="discko_modal_desktop_width_value"
     472                                                   name="discko_modal_desktop_width_value"
     473                                                   value="<?php echo esc_attr($discko_desktop_width_value); ?>"
     474                                                   placeholder="50"
     475                                                   min="0"
     476                                                   step="1" />
     477                                            <select id="discko_modal_desktop_width_unit" name="discko_modal_desktop_width_unit">
     478                                                <option value="px" <?php selected($discko_desktop_width_unit, 'px'); ?>>px</option>
     479                                                <option value="%" <?php selected($discko_desktop_width_unit, '%'); ?>>%</option>
     480                                            </select>
     481                                        </div>
     482                                    </div>
     483                                    <div class="discko-size-field">
     484                                        <label><?php esc_html_e('Height', 'discko'); ?></label>
     485                                        <div class="discko-input-with-unit">
     486                                            <input type="number"
     487                                                   id="discko_modal_desktop_height_value"
     488                                                   name="discko_modal_desktop_height_value"
     489                                                   value="<?php echo esc_attr($discko_desktop_height_value); ?>"
     490                                                   placeholder="60"
     491                                                   min="0"
     492                                                   step="1" />
     493                                            <select id="discko_modal_desktop_height_unit" name="discko_modal_desktop_height_unit">
     494                                                <option value="px" <?php selected($discko_desktop_height_unit, 'px'); ?>>px</option>
     495                                                <option value="%" <?php selected($discko_desktop_height_unit, '%'); ?>>%</option>
     496                                            </select>
     497                                        </div>
     498                                    </div>
     499                                </div>
     500                            </td>
     501                        </tr>
     502                        <!-- Mobile -->
     503                        <tr>
     504                            <th><label><?php esc_html_e('Mobile', 'discko'); ?></label></th>
     505                            <td>
     506                                <div class="discko-size-fields">
     507                                    <?php
     508                                    $discko_mobile_width_value = get_option('discko_modal_mobile_width_value', '');
     509                                    $discko_mobile_width_unit = get_option('discko_modal_mobile_width_unit', 'vw');
     510                                    $discko_mobile_height_value = get_option('discko_modal_mobile_height_value', '');
     511                                    $discko_mobile_height_unit = get_option('discko_modal_mobile_height_unit', 'vh');
     512                                    ?>
     513                                    <div class="discko-size-field">
     514                                        <label><?php esc_html_e('Width', 'discko'); ?></label>
     515                                        <div class="discko-input-with-unit">
     516                                            <input type="number"
     517                                                   id="discko_modal_mobile_width_value"
     518                                                   name="discko_modal_mobile_width_value"
     519                                                   value="<?php echo esc_attr($discko_mobile_width_value); ?>"
     520                                                   placeholder="85"
     521                                                   min="0"
     522                                                   max="100"
     523                                                   step="1" />
     524                                            <select id="discko_modal_mobile_width_unit" name="discko_modal_mobile_width_unit">
     525                                                <option value="vw" <?php selected($discko_mobile_width_unit, 'vw'); ?>>vw</option>
     526                                                <option value="%" <?php selected($discko_mobile_width_unit, '%'); ?>>%</option>
     527                                            </select>
     528                                        </div>
     529                                    </div>
     530                                    <div class="discko-size-field">
     531                                        <label><?php esc_html_e('Height', 'discko'); ?></label>
     532                                        <div class="discko-input-with-unit">
     533                                            <input type="number"
     534                                                   id="discko_modal_mobile_height_value"
     535                                                   name="discko_modal_mobile_height_value"
     536                                                   value="<?php echo esc_attr($discko_mobile_height_value); ?>"
     537                                                   placeholder="50"
     538                                                   min="0"
     539                                                   max="100"
     540                                                   step="1" />
     541                                            <select id="discko_modal_mobile_height_unit" name="discko_modal_mobile_height_unit">
     542                                                <option value="vh" <?php selected($discko_mobile_height_unit, 'vh'); ?>>vh</option>
     543                                                <option value="%" <?php selected($discko_mobile_height_unit, '%'); ?>>%</option>
     544                                            </select>
     545                                        </div>
     546                                    </div>
     547                                </div>
     548                            </td>
     549                        </tr>
     550                    </table>
     551                </div>
    413552            </div>
    414553
  • discko/trunk/admin/admin-styles.css

    r3440218 r3441213  
    11431143    gap: 16px;
    11441144}
     1145
     1146/* ============================================
     1147   Input with Unit (Elementor style)
     1148   ============================================ */
     1149
     1150.discko-size-fields {
     1151    display: flex;
     1152    gap: 24px;
     1153    flex-wrap: wrap;
     1154}
     1155
     1156.discko-size-field {
     1157    display: flex;
     1158    flex-direction: column;
     1159    gap: 6px;
     1160}
     1161
     1162.discko-size-field > label {
     1163    font-size: 12px;
     1164    font-weight: 500;
     1165    color: #666;
     1166    text-transform: uppercase;
     1167    letter-spacing: 0.3px;
     1168}
     1169
     1170.discko-input-with-unit {
     1171    display: flex;
     1172    border: 1px solid #8c8f94;
     1173    border-radius: 4px;
     1174    overflow: hidden;
     1175    background: #fff;
     1176    transition: border-color 0.2s ease, box-shadow 0.2s ease;
     1177}
     1178
     1179.discko-input-with-unit:focus-within {
     1180    border-color: #ff6b35;
     1181    box-shadow: 0 0 0 1px #ff6b35;
     1182}
     1183
     1184.discko-input-with-unit input[type="number"] {
     1185    width: 70px;
     1186    border: none;
     1187    padding: 6px 10px;
     1188    font-size: 13px;
     1189    background: transparent;
     1190    -moz-appearance: textfield;
     1191    margin: 0;
     1192    box-shadow: none;
     1193}
     1194
     1195.discko-input-with-unit input[type="number"]:focus {
     1196    outline: none;
     1197    box-shadow: none;
     1198}
     1199
     1200/* Show spinner arrows */
     1201.discko-input-with-unit input[type="number"]::-webkit-outer-spin-button,
     1202.discko-input-with-unit input[type="number"]::-webkit-inner-spin-button {
     1203    -webkit-appearance: inner-spin-button;
     1204    opacity: 1;
     1205    height: auto;
     1206    cursor: pointer;
     1207}
     1208
     1209.discko-input-with-unit select {
     1210    border: none;
     1211    border-left: 1px solid #e0e0e0;
     1212    padding: 6px 8px;
     1213    font-size: 12px;
     1214    font-weight: 500;
     1215    background: #f5f5f5;
     1216    color: #666;
     1217    cursor: pointer;
     1218    min-width: 45px;
     1219    margin: 0;
     1220    border-radius: 0;
     1221}
     1222
     1223.discko-input-with-unit select:focus {
     1224    outline: none;
     1225    background: #eee;
     1226}
     1227
     1228.discko-input-with-unit select:hover {
     1229    background: #eee;
     1230}
  • discko/trunk/discko.php

    r3440185 r3441213  
    44 * Plugin URI: https://discko.io/plugin-wordpress
    55 * Description: Integrates Discko.io into your website
    6  * Version: 1.1.1
     6 * Version: 1.2.0
    77 * Author: Discko
    88 * Author URI: https://discko.io
     
    1717
    1818// Define plugin constants
    19 define('DISCKO_VERSION', '1.1.1');
     19define('DISCKO_VERSION', '1.2.0');
    2020define('DISCKO_PLUGIN_DIR', plugin_dir_path(__FILE__));
    2121define('DISCKO_PLUGIN_URL', plugin_dir_url(__FILE__));
     
    180180        ));
    181181
    182         register_setting('discko_settings_group', 'discko_modal_mobile_width', array(
    183             'type' => 'string',
    184             'sanitize_callback' => array($this, 'sanitize_modal_size'),
    185             'default' => '95%'
    186         ));
    187 
    188         register_setting('discko_settings_group', 'discko_modal_mobile_height', array(
    189             'type' => 'string',
    190             'sanitize_callback' => array($this, 'sanitize_modal_size'),
    191             'default' => '85vh'
     182        // Desktop modal size
     183        register_setting('discko_settings_group', 'discko_modal_desktop_width_value', array(
     184            'type' => 'integer',
     185            'sanitize_callback' => array($this, 'sanitize_desktop_width'),
     186            'default' => ''
     187        ));
     188
     189        register_setting('discko_settings_group', 'discko_modal_desktop_width_unit', array(
     190            'type' => 'string',
     191            'sanitize_callback' => array($this, 'sanitize_size_unit'),
     192            'default' => '%'
     193        ));
     194
     195        register_setting('discko_settings_group', 'discko_modal_desktop_height_value', array(
     196            'type' => 'integer',
     197            'sanitize_callback' => array($this, 'sanitize_desktop_height'),
     198            'default' => ''
     199        ));
     200
     201        register_setting('discko_settings_group', 'discko_modal_desktop_height_unit', array(
     202            'type' => 'string',
     203            'sanitize_callback' => array($this, 'sanitize_size_unit'),
     204            'default' => '%'
     205        ));
     206
     207        // Mobile modal size
     208        register_setting('discko_settings_group', 'discko_modal_mobile_width_value', array(
     209            'type' => 'integer',
     210            'sanitize_callback' => array($this, 'sanitize_mobile_width'),
     211            'default' => ''
     212        ));
     213
     214        register_setting('discko_settings_group', 'discko_modal_mobile_width_unit', array(
     215            'type' => 'string',
     216            'sanitize_callback' => array($this, 'sanitize_size_unit'),
     217            'default' => 'vw'
     218        ));
     219
     220        register_setting('discko_settings_group', 'discko_modal_mobile_height_value', array(
     221            'type' => 'integer',
     222            'sanitize_callback' => array($this, 'sanitize_mobile_height'),
     223            'default' => ''
     224        ));
     225
     226        register_setting('discko_settings_group', 'discko_modal_mobile_height_unit', array(
     227            'type' => 'string',
     228            'sanitize_callback' => array($this, 'sanitize_size_unit'),
     229            'default' => 'vh'
    192230        ));
    193231
     
    227265            'default' => ''
    228266        ));
     267
     268        register_setting('discko_settings_group', 'discko_modal_primary_color', array(
     269            'type' => 'string',
     270            'sanitize_callback' => array($this, 'sanitize_hex_color_optional'),
     271            'default' => ''
     272        ));
     273
     274        register_setting('discko_settings_group', 'discko_modal_font_family', array(
     275            'type' => 'string',
     276            'sanitize_callback' => 'sanitize_text_field',
     277            'default' => ''
     278        ));
     279    }
     280
     281    /**
     282     * Sanitize hex color (optional - allows empty)
     283     */
     284    public function sanitize_hex_color_optional($value) {
     285        if (empty($value)) {
     286            return '';
     287        }
     288        return sanitize_hex_color($value);
    229289    }
    230290
     
    321381
    322382    /**
    323      * Sanitize modal size (width/height)
    324      */
    325     public function sanitize_modal_size($value) {
    326         // Allow percentage or vh/vw units
    327         if (preg_match('/^(\d+)(%)|(vh)|(vw)$/', $value)) {
    328             return $value;
    329         }
    330         // Default fallback
    331         return '85vh';
     383     * Sanitize size unit
     384     */
     385    public function sanitize_size_unit($value) {
     386        $allowed = array('px', '%', 'vw', 'vh');
     387        return in_array($value, $allowed) ? $value : 'px';
     388    }
     389
     390    /**
     391     * Sanitize desktop width (default: 50)
     392     */
     393    public function sanitize_desktop_width($value) {
     394        $value = absint($value);
     395        return ($value === 0 || $value === '') ? 50 : $value;
     396    }
     397
     398    /**
     399     * Sanitize desktop height (default: 60)
     400     */
     401    public function sanitize_desktop_height($value) {
     402        $value = absint($value);
     403        return ($value === 0 || $value === '') ? 60 : $value;
     404    }
     405
     406    /**
     407     * Sanitize mobile width (default: 85)
     408     */
     409    public function sanitize_mobile_width($value) {
     410        $value = absint($value);
     411        return ($value === 0 || $value === '') ? 85 : $value;
     412    }
     413
     414    /**
     415     * Sanitize mobile height (default: 50)
     416     */
     417    public function sanitize_mobile_height($value) {
     418        $value = absint($value);
     419        return ($value === 0 || $value === '') ? 50 : $value;
    332420    }
    333421
     
    344432        wp_enqueue_script('wp-color-picker');
    345433
     434        // Select2 for font selector (bundled locally)
     435        wp_enqueue_style(
     436            'discko-select2',
     437            DISCKO_PLUGIN_URL . 'admin/select2.min.css',
     438            array(),
     439            '4.1.0'
     440        );
     441        wp_enqueue_script(
     442            'discko-select2',
     443            DISCKO_PLUGIN_URL . 'admin/select2.min.js',
     444            array('jquery'),
     445            '4.1.0',
     446            true
     447        );
     448
    346449        wp_enqueue_style(
    347450            'discko-admin-styles',
    348451            DISCKO_PLUGIN_URL . 'admin/admin-styles.css',
    349             array(),
     452            array('discko-select2'),
    350453            DISCKO_VERSION
    351454        );
     
    354457            'discko-admin-scripts',
    355458            DISCKO_PLUGIN_URL . 'admin/admin-scripts.js',
    356             array('jquery', 'wp-color-picker'),
     459            array('jquery', 'wp-color-picker', 'discko-select2'),
    357460            DISCKO_VERSION,
    358461            true
     
    369472            'cropIcon' => __('Crop Icon', 'discko'),
    370473            'resetCrop' => __('Reset Crop', 'discko'),
    371             'defaultHoverText' => __('Have a project in mind? Let\'s prepare your appointment in 3 minutes', 'discko')
     474            'defaultHoverText' => __('Have a project in mind? Let\'s prepare your appointment in 3 minutes', 'discko'),
     475            'selectFont' => __('Search for a font...', 'discko')
    372476        ));
    373477    }
     
    411515            'iconUrl' => esc_url($this->get_icon_url()),
    412516            'iconCropData' => get_option('discko_icon_crop_data', ''),
    413             'modalMobileWidth' => sanitize_text_field(get_option('discko_modal_mobile_width', '95%')),
    414             'modalMobileHeight' => sanitize_text_field(get_option('discko_modal_mobile_height', '85vh'))
     517            'modalDesktopWidth' => intval(get_option('discko_modal_desktop_width_value', 50)) . sanitize_text_field(get_option('discko_modal_desktop_width_unit', '%')),
     518            'modalDesktopHeight' => intval(get_option('discko_modal_desktop_height_value', 60)) . sanitize_text_field(get_option('discko_modal_desktop_height_unit', '%')),
     519            'modalMobileWidth' => intval(get_option('discko_modal_mobile_width_value', 85)) . sanitize_text_field(get_option('discko_modal_mobile_width_unit', 'vw')),
     520            'modalMobileHeight' => intval(get_option('discko_modal_mobile_height_value', 50)) . sanitize_text_field(get_option('discko_modal_mobile_height_unit', 'vh')),
     521            'modalPrimaryColor' => sanitize_text_field(get_option('discko_modal_primary_color', '')),
     522            'modalFontFamily' => sanitize_text_field(get_option('discko_modal_font_family', ''))
    415523        ));
    416524    }
  • discko/trunk/elementor/discko-widget.php

    r3440185 r3441213  
    108108        );
    109109
    110         // TODO: Uncomment when ready to activate color and font customization
    111         /*
    112110        $this->add_control(
    113111            'primary_color',
     
    129127            ]
    130128        );
    131         */
    132129
    133130        $this->end_controls_section();
     
    218215        }
    219216
    220         // TODO: Uncomment when ready to activate color and font customization
    221         /*
    222217        // Build URL with parameters
    223218        $params = [];
     
    281276            $url = $url . $separator . http_build_query($params);
    282277        }
    283         */
    284278
    285279        // Sanitize URL
     
    308302                <#
    309303                var baseUrl = '<?php echo esc_js($form_url); ?>';
    310 
    311                 // TODO: Uncomment when ready to activate color and font customization
    312                 /*
    313304                var params = [];
    314305
     
    377368                    finalUrl = baseUrl + separator + params.join('&');
    378369                }
    379                 */
    380 
    381                 // Use base URL without parameters for now
    382                 var finalUrl = baseUrl;
    383370                #>
    384371                <iframe
  • discko/trunk/public/discko-button.js

    r3440185 r3441213  
    2727        iconUrl: disckoData.iconUrl,
    2828        iconCropData: disckoData.iconCropData || null,
    29         modalMobileWidth: disckoData.modalMobileWidth || '95%',
    30         modalMobileHeight: disckoData.modalMobileHeight || '85vh'
     29        modalDesktopWidth: disckoData.modalDesktopWidth || '50%',
     30        modalDesktopHeight: disckoData.modalDesktopHeight || '60%',
     31        modalMobileWidth: disckoData.modalMobileWidth || '85vw',
     32        modalMobileHeight: disckoData.modalMobileHeight || '50vh',
     33        modalPrimaryColor: disckoData.modalPrimaryColor || '',
     34        modalFontFamily: disckoData.modalFontFamily || ''
    3135    };
    3236
     
    155159        modalContent.className = 'discko-modal-content';
    156160
    157         // Apply mobile modal dimensions as CSS custom properties
     161        // Apply modal dimensions as CSS custom properties
     162        modalContent.style.setProperty('--modal-desktop-width', config.modalDesktopWidth);
     163        modalContent.style.setProperty('--modal-desktop-height', config.modalDesktopHeight);
    158164        modalContent.style.setProperty('--modal-mobile-width', config.modalMobileWidth);
    159165        modalContent.style.setProperty('--modal-mobile-height', config.modalMobileHeight);
     
    296302
    297303    /**
     304     * Build form URL with parameters
     305     */
     306    function buildFormUrl() {
     307        var url = config.formUrl;
     308        var params = [];
     309
     310        // Add primary color parameter if set
     311        if (config.modalPrimaryColor) {
     312            var color = config.modalPrimaryColor.replace('#', '');
     313            params.push('primary_color=' + encodeURIComponent(color));
     314        }
     315
     316        // Add font family parameter if set
     317        if (config.modalFontFamily) {
     318            params.push('font_family=' + encodeURIComponent(config.modalFontFamily));
     319        }
     320
     321        // Append parameters to URL
     322        if (params.length > 0) {
     323            var separator = url.indexOf('?') !== -1 ? '&' : '?';
     324            url = url + separator + params.join('&');
     325        }
     326
     327        return url;
     328    }
     329
     330    /**
    298331     * Open modal
    299332     */
     
    305338        loader.style.display = 'flex';
    306339
    307         // Load iframe
    308         modalIframe.src = config.formUrl;
     340        // Load iframe with parameters
     341        modalIframe.src = buildFormUrl();
    309342
    310343        // Show modal with animation
  • discko/trunk/public/discko-styles.css

    r3438964 r3441213  
    200200.discko-modal-content {
    201201    position: relative;
    202     width: 90%;
    203     max-width: 900px;
    204     height: 90vh;
    205     max-height: 700px;
     202    width: var(--modal-desktop-width, 50%);
     203    max-width: 95vw;
     204    height: var(--modal-desktop-height, 60%);
     205    max-height: 95vh;
    206206    background: #fff;
    207207    border-radius: 16px;
     
    342342    /* Full screen modal on mobile */
    343343    .discko-modal-content {
    344         width: var(--modal-mobile-width, 95%);
    345         height: var(--modal-mobile-height, 85vh);
     344        width: var(--modal-mobile-width, 85vw);
     345        height: var(--modal-mobile-height, 50vh);
    346346        max-height: none;
    347347        border-radius: 12px;
  • discko/trunk/readme.txt

    r3440185 r3441213  
    55Tested up to: 6.9
    66Requires PHP: 7.4
    7 Stable tag: 1.1.1
     7Stable tag: 1.2.0
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
     
    162162== Changelog ==
    163163
     164= 1.2.0 =
     165
     166**New Features**
     167* Modal form styling: Added primary color and font family customization for the floating button modal
     168* Modal size customization: Configure desktop and mobile dimensions separately with px/% or vw/vh units
     169* Elementor widget styling: Enabled primary color and font family options in Elementor widget
     170* Searchable font selector: Select2-powered font dropdown with 1400+ fonts when Elementor is installed
     171
     172**Enhancements**
     173* Elementor-style size inputs: Number fields with unit selector (px, %, vw, vh) for modal dimensions
     174* Smart default values: Empty fields show placeholder with default values (Desktop: 50%×60%, Mobile: 85vw×50vh)
     175* Improved admin UI: Reorganized Modal Customization section with Form Style and Size cards
     176
     177**Technical**
     178* Added 8 new settings for modal dimensions (desktop/mobile × width/height × value/unit)
     179* New settings for modal styling: `discko_modal_primary_color`, `discko_modal_font_family`
     180* Added Select2 library for enhanced font selection
     181* New sanitization functions with automatic default value fallback
     182
    164183= 1.1.1 =
    165184
Note: See TracChangeset for help on using the changeset viewer.