




{"id":1047,"date":"2024-09-04T11:19:31","date_gmt":"2024-09-04T09:19:31","guid":{"rendered":"https:\/\/pacific-webtools.com\/web-extractor\/?p=1047"},"modified":"2024-09-04T11:39:26","modified_gmt":"2024-09-04T09:39:26","slug":"generateur-de-formulaire-matrix-responsive-en-html-et-css","status":"publish","type":"post","link":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/","title":{"rendered":"G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1047\" class=\"elementor elementor-1047\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a1c52ee e-con-full e-flex e-con e-parent\" data-id=\"a1c52ee\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-47eaa7e elementor-widget elementor-widget-html\" data-id=\"47eaa7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<html><head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>G\u00e9n\u00e9rateur de Formulaire Matrix Responsive<\/title>\n<link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" rel=\"stylesheet\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Courier+Prime:wght@400;700&family=Share+Tech+Mono&family=VT323&family=Press+Start+2P&family=Iceland&family=Orbitron:wght@400;700&family=Roboto+Mono:wght@400;700&display=swap\" rel=\"stylesheet\">\n<style>\n    body, html {\n        margin: 0;\n        padding: 0;\n        font-family: Arial, sans-serif;\n        height: 100%;\n        overflow-x: hidden;\n        overflow-y: auto;\n    }\n    .container {\n        display: flex;\n        min-height: 100%;\n        flex-direction: row;\n        width: 100vw; \/* Assurez-vous que la largeur du conteneur occupe toute la largeur de la fen\u00eatre *\/\n            max-width: 100%; \/* D\u00e9sactive toute limitation de la largeur maximale *\/\n    }\n    .sidebar {\n        width: 350px;\n        background-color: #3295d4;\n        color: #fff;\n        padding: 20px;\n        overflow-y: auto;\n        flex: 0 0 auto;\n        transition: width 0.3s ease-in-out, margin-left 0.3s ease-in-out;\n        display: flex;\n        flex-direction: column;\n        height: 100vh;\n        position: sticky;\n        top: 0;\n    }\n    .sidebar-content {\n        flex-grow: 1;\n        overflow-y: auto;\n    }\n    .sidebar.collapsed {\n        width: 50px;\n        padding: 0;\n    }\n    .main-content {\n        flex: 1;\n        background-color: transparent;\n        position: relative;\n        overflow: hidden;\n        min-height: 100vh;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n    }\n    .control-group {\n        margin-bottom: 15px;\n    }\n    label {\n        display: block;\n        margin-bottom: 5px;\n    }\n    select, input[type=\"range\"], input[type=\"color\"], input[type=\"text\"], input[type=\"number\"], input[type=\"checkbox\"], input[type=\"url\"] {\n        width: 100%;\n        margin-bottom: 10px;\n    }\n    .code-section {\n        background-color: #2980b9;\n        padding: 10px;\n        border-radius: 5px;\n        margin-top: 20px;\n    }\n    .code-section pre {\n        color: #fff;\n        margin: 0;\n        white-space: pre-wrap;\n        word-wrap: break-word;\n    }\n    @media (max-width: 767px) {\n        .container {\n            flex-direction: row;\n        }\n        .sidebar, .main-content {\n            width: 50%;\n            height: auto;\n            min-height: 0;\n        }\n        .sidebar {\n            position: static;\n            overflow-y: auto;\n            height: 100vh;\n        }\n        .main-content {\n            overflow-y: auto;\n        }\n    }\n    #toggleSidebar {\n        position: absolute;\n        top: 10px;\n        right: 10px;\n        z-index: 1000;\n        background-color: #2980b9;\n        color: #fff;\n        border: none;\n        padding: 10px;\n        cursor: pointer;\n        transition: transform 0.3s ease-in-out;\n    }\n    .sidebar.collapsed #toggleSidebar {\n        transform: rotate(180deg);\n    }\n    .sidebar-content {\n        transition: opacity 0.3s ease-in-out;\n    }\n    .sidebar.collapsed .sidebar-content {\n        opacity: 0;\n        pointer-events: none;\n    }\n    #codeEditor {\n        width: 100%;\n        height: 300px;\n        background-color: #2980b9;\n        color: #fff;\n        font-family: monospace;\n        font-size: 14px;\n        padding: 10px;\n        border: 1px solid #1c638f;\n        resize: vertical;\n        cursor: pointer;\n    }\n    .notification {\n        position: fixed;\n        bottom: 20px;\n        right: 20px;\n        background-color: #4CAF50;\n        color: white;\n        padding: 15px;\n        border-radius: 5px;\n        display: none;\n        z-index: 1000;\n    }\n    .color-inputs {\n        display: flex;\n        flex-wrap: wrap;\n        gap: 10px;\n    }\n    .color-input {\n        display: flex;\n        align-items: center;\n    }\n    .color-input input[type=\"color\"] {\n        width: 50px;\n        height: 30px;\n        padding: 0;\n        border: none;\n    }\n    .advanced-options {\n        margin-top: 20px;\n        padding-top: 20px;\n        border-top: 1px solid #2980b9;\n    }\n    .preview-container {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        width: 100%;\n        height: 100%;\n        padding: 20px;\n        box-sizing: border-box;\n        background-color: transparent;\n    }\n    .device-buttons {\n        display: flex;\n        justify-content: space-between;\n        margin-bottom: 20px;\n    }\n    .device-button {\n        flex: 1;\n        padding: 10px;\n        background-color: #2980b9;\n        color: #fff;\n        border: none;\n        cursor: pointer;\n        transition: background-color 0.3s;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n    .device-button.active {\n        background-color: #1c638f;\n    }\n    .device-button:not(:last-child) {\n        margin-right: 10px;\n    }\n    .device-button i {\n        margin-right: 5px;\n    }\n    .device-specific-controls {\n        display: none;\n    }\n    .device-specific-controls.active {\n        display: block;\n    }\n    #formPreview {\n        transition: all 0.3s ease;\n        padding: 20px;\n        background-color: rgba(0, 0, 0, 0.8);\n        border-radius: 10px;\n        box-shadow: 0 0 20px #00ff00;\n        display: flex;\n        flex-direction: column;\n        align-items: center;\n    }\n    #formPreview input, #formPreview select, #formPreview textarea {\n        width: 100%;\n        padding: 10px;\n        margin-bottom: 10px;\n        background-color: #000;\n        color: #00ff00;\n        border: 1px solid #00ff00;\n        border-radius: 5px;\n        font-family: 'Courier Prime', monospace;\n        text-align: center;\n    }\n    #formPreview input[type=\"submit\"] {\n        background-color: #00ff00;\n        color: #000;\n        cursor: pointer;\n        transition: all 0.3s ease;\n    }\n    #formPreview input[type=\"submit\"]:hover {\n        background-color: #00cc00;\n    }\n    #formPreview label {\n        color: #00ff00;\n        margin-bottom: 5px;\n        display: block;\n        text-align: center;\n        width: 100%;\n    }\n    #addFieldButton {\n        background-color: #00ff00;\n        color: #000;\n        border: none;\n        padding: 10px 20px;\n        margin-top: 10px;\n        cursor: pointer;\n        transition: background-color 0.3s;\n    }\n    #addFieldButton:hover {\n        background-color: #00cc00;\n    }\n    #fieldList {\n        margin-top: 20px;\n    }\n    .field-item {\n        background-color: #2980b9;\n        padding: 10px;\n        margin-bottom: 10px;\n        border-radius: 5px;\n    }\n    .remove-field, .edit-field {\n        background-color: #e74c3c;\n        color: #fff;\n        border: none;\n        padding: 5px 10px;\n        cursor: pointer;\n        margin-left: 5px;\n    }\n    .edit-field {\n        background-color: #f39c12;\n    }\n    .field-options {\n        display: none;\n        margin-top: 10px;\n    }\n    .field-options.active {\n        display: block;\n    }\n    #optionsContainer {\n        margin-top: 10px;\n    }\n    .option-input {\n        display: flex;\n        margin-bottom: 5px;\n    }\n    .option-input input {\n        flex-grow: 1;\n        margin-right: 5px;\n    }\n    .remove-option {\n        background-color: #e74c3c;\n        color: #fff;\n        border: none;\n        padding: 5px 10px;\n        cursor: pointer;\n    }\n    #addOptionButton {\n        background-color: #3498db;\n        color: #fff;\n        border: none;\n        padding: 5px 10px;\n        cursor: pointer;\n        margin-top: 5px;\n    }\n<\/style>\n<\/head>\n<body>\n<div class=\"container\">\n    <div id=\"sidebar\" class=\"sidebar\">\n        <button id=\"toggleSidebar\"><i class=\"fas fa-chevron-left\"><\/i><\/button>\n        <div class=\"sidebar-content\">\n            <div id=\"controls\">\n                <div class=\"device-buttons\">\n                    <button class=\"device-button active\" data-device=\"mobile\"><i class=\"fas fa-mobile-alt\"><\/i> Mobile<\/button>\n                    <button class=\"device-button\" data-device=\"tablet\"><i class=\"fas fa-tablet-alt\"><\/i> Tablette<\/button>\n                    <button class=\"device-button\" data-device=\"desktop\"><i class=\"fas fa-desktop\"><\/i> PC<\/button>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"formTitle\">Titre du formulaire:<\/label>\n                    <input type=\"text\" id=\"formTitle\" value=\"Formulaire de Contact\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"formDescription\">Description du formulaire:<\/label>\n                    <textarea id=\"formDescription\" oninput=\"updateForm()\">Veuillez remplir ce formulaire pour nous contacter.<\/textarea>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"formColor\">Couleur principale:<\/label>\n                    <input type=\"color\" id=\"formColor\" value=\"#00FF00\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"formBackgroundColor\">Couleur de fond:<\/label>\n                    <input type=\"color\" id=\"formBackgroundColor\" value=\"#000000\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"formFontFamily\">Police du texte:<\/label>\n                    <select id=\"formFontFamily\" onchange=\"updateForm()\">\n                        <option value=\"'Courier Prime', monospace\">Courier Prime<\/option>\n                        <option value=\"'Share Tech Mono', monospace\">Share Tech Mono<\/option>\n                        <option value=\"'VT323', monospace\">VT323<\/option>\n                        <option value=\"'Press Start 2P', cursive\">Press Start 2P<\/option>\n                        <option value=\"'Iceland', cursive\">Iceland<\/option>\n                        <option value=\"'Orbitron', sans-serif\">Orbitron<\/option>\n                        <option value=\"'Roboto Mono', monospace\">Roboto Mono<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"device-specific-controls active\" data-device=\"mobile\">\n                    <div class=\"control-group\">\n                        <label for=\"formFontSizeMobile\">Taille de la police (Mobile):<\/label>\n                        <input type=\"range\" id=\"formFontSizeMobile\" min=\"12\" max=\"24\" value=\"14\" oninput=\"updateForm()\">\n                        <span id=\"formFontSizeMobileValue\">14px<\/span>\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"formWidthMobile\">Largeur du formulaire (Mobile):<\/label>\n                        <input type=\"range\" id=\"formWidthMobile\" min=\"200\" max=\"600\" value=\"300\" oninput=\"updateForm()\">\n                        <span id=\"formWidthMobileValue\">300px<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"device-specific-controls\" data-device=\"tablet\">\n                    <div class=\"control-group\">\n                        <label for=\"formFontSizeTablet\">Taille de la police (Tablette):<\/label>\n                        <input type=\"range\" id=\"formFontSizeTablet\" min=\"14\" max=\"28\" value=\"16\" oninput=\"updateForm()\">\n                        <span id=\"formFontSizeTabletValue\">16px<\/span>\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"formWidthTablet\">Largeur du formulaire (Tablette):<\/label>\n                        <input type=\"range\" id=\"formWidthTablet\" min=\"400\" max=\"800\" value=\"600\" oninput=\"updateForm()\">\n                        <span id=\"formWidthTabletValue\">600px<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"device-specific-controls\" data-device=\"desktop\">\n                    <div class=\"control-group\">\n                        <label for=\"formFontSizeDesktop\">Taille de la police (PC):<\/label>\n                        <input type=\"range\" id=\"formFontSizeDesktop\" min=\"16\" max=\"32\" value=\"18\" oninput=\"updateForm()\">\n                        <span id=\"formFontSizeDesktopValue\">18px<\/span>\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"formWidthDesktop\">Largeur du formulaire (PC):<\/label>\n                        <input type=\"range\" id=\"formWidthDesktop\" min=\"600\" max=\"1200\" value=\"800\" oninput=\"updateForm()\">\n                        <span id=\"formWidthDesktopValue\">800px<\/span>\n                    <\/div>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"glowStrength\">Intensit\u00e9 de la lueur:<\/label>\n                    <input type=\"range\" id=\"glowStrength\" min=\"0\" max=\"20\" value=\"10\" oninput=\"updateForm()\">\n                    <span id=\"glowStrengthValue\">10px<\/span>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"formBorderRadius\">Arrondi des coins:<\/label>\n                    <input type=\"range\" id=\"formBorderRadius\" min=\"0\" max=\"50\" value=\"10\" oninput=\"updateForm()\">\n                    <span id=\"formBorderRadiusValue\">10px<\/span>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"formOpacity\">Opacit\u00e9 du fond:<\/label>\n                    <input type=\"range\" id=\"formOpacity\" min=\"0\" max=\"1\" step=\"0.1\" value=\"0.8\" oninput=\"updateForm()\">\n                    <span id=\"formOpacityValue\">0.8<\/span>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"submitButtonText\">Texte du bouton d'envoi:<\/label>\n                    <input type=\"text\" id=\"submitButtonText\" value=\"Envoyer\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"submitButtonColor\">Couleur du bouton:<\/label>\n                    <input type=\"color\" id=\"submitButtonColor\" value=\"#00FF00\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"submitButtonTextColor\">Couleur du texte du bouton:<\/label>\n                    <input type=\"color\" id=\"submitButtonTextColor\" value=\"#000000\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"submitButtonBorderRadius\">Arrondi des coins du bouton:<\/label>\n                    <input type=\"range\" id=\"submitButtonBorderRadius\" min=\"0\" max=\"50\" value=\"5\" oninput=\"updateForm()\">\n                    <span id=\"submitButtonBorderRadiusValue\">5px<\/span>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"submitButtonIcon\">Ic\u00f4ne du bouton:<\/label>\n                    <select id=\"submitButtonIcon\" onchange=\"updateForm()\">\n                        <option value=\"\">Aucune<\/option>\n                        <option value=\"fa-paper-plane\">Avion en papier<\/option>\n                        <option value=\"fa-check\">Coche<\/option>\n                        <option value=\"fa-envelope\">Enveloppe<\/option>\n                        <option value=\"fa-send\">Envoyer<\/option>\n                        <option value=\"fa-arrow-right\">Fl\u00e8che droite<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"submitButtonEmoji\">Emoji du bouton:<\/label>\n                    <select id=\"submitButtonEmoji\" onchange=\"updateForm()\">\n                        <option value=\"\">Aucun<\/option>\n                        <option value=\"\ud83d\udce8\">\ud83d\udce8 Enveloppe avec fl\u00e8che<\/option>\n                        <option value=\"\u2709\ufe0f\">\u2709\ufe0f Enveloppe<\/option>\n                        <option value=\"\ud83d\udce9\">\ud83d\udce9 Enveloppe avec fl\u00e8che vers le bas<\/option>\n                        <option value=\"\ud83d\udce4\">\ud83d\udce4 Bo\u00eete d'envoi<\/option>\n                        <option value=\"\ud83d\udcec\">\ud83d\udcec Bo\u00eete aux lettres ouverte avec drapeau lev\u00e9<\/option>\n                        <option value=\"\u2705\">\u2705 Coche verte<\/option>\n                        <option value=\"\ud83d\udc4d\">\ud83d\udc4d Pouce en l'air<\/option>\n                        <option value=\"\ud83d\ude80\">\ud83d\ude80 Fus\u00e9e<\/option>\n                        <option value=\"\ud83d\udc8c\">\ud83d\udc8c Lettre d'amour<\/option>\n                        <option value=\"\ud83d\udd12\">\ud83d\udd12 Cadenas ferm\u00e9<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"linkColor\">Couleur des liens:<\/label>\n                    <input type=\"color\" id=\"linkColor\" value=\"#00FF00\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label>\n                        <input type=\"checkbox\" id=\"includeReturnLink\" checked onchange=\"updateForm()\">\n                        Inclure le lien de retour\n                    <\/label>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"returnLinkText\">Texte du lien de retour:<\/label>\n                    <input type=\"text\" id=\"returnLinkText\" value=\"Retour \u00e0 l'accueil\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"returnLinkUrl\">URL du lien de retour:<\/label>\n                    <input type=\"url\" id=\"returnLinkUrl\" value=\"index.html\" oninput=\"updateForm()\">\n                <\/div>\n                <div id=\"fieldList\"><\/div>\n                <button id=\"addFieldButton\" onclick=\"showAddFieldDialog()\">Ajouter un champ<\/button>\n            <\/div>\n            <div class=\"code-section\">\n                <textarea id=\"codeEditor\" spellcheck=\"false\" onclick=\"copyCode()\"><\/textarea>\n            <\/div>\n        <\/div>\n    <\/div>\n    <div id=\"preview\" class=\"main-content\">\n        <div class=\"preview-container\">\n            <form id=\"formPreview\"><\/form>\n        <\/div>\n    <\/div>\n<\/div>\n<div id=\"notification\" class=\"notification\">Code copi\u00e9 dans le presse-papiers !<\/div>\n\n<div id=\"addFieldDialog\" style=\"display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: #fff; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.5); z-index: 1000;\">\n    <h3>Ajouter un champ<\/h3>\n    <div class=\"control-group\">\n        <label for=\"fieldType\">Type de champ:<\/label>\n        <select id=\"fieldType\" onchange=\"toggleFieldOptions()\">\n            <option value=\"text\">Champ de texte<\/option>\n            <option value=\"email\">E-mail<\/option>\n            <option value=\"tel\">T\u00e9l\u00e9phone<\/option>\n            <option value=\"url\">Site web<\/option>\n            <option value=\"select\">Liste d\u00e9roulante<\/option>\n            <option value=\"checkbox\">Case \u00e0 cocher<\/option>\n            <option value=\"date\">Date<\/option>\n        <\/select>\n    <\/div>\n    <div class=\"control-group\">\n        <label for=\"fieldLabel\">Label du champ:<\/label>\n        <input type=\"text\" id=\"fieldLabel\">\n    <\/div>\n    <div id=\"placeholderField\" class=\"control-group\">\n        <label for=\"fieldPlaceholder\">Placeholder:<\/label>\n        <input type=\"text\" id=\"fieldPlaceholder\">\n    <\/div>\n    <div id=\"selectOptions\" class=\"control-group\" style=\"display: none;\">\n        <label>Options de la liste d\u00e9roulante:<\/label>\n        <div id=\"selectOptionsList\"><\/div>\n        <button onclick=\"addSelectOption()\">Ajouter une option<\/button>\n    <\/div>\n    <div id=\"checkboxOptions\" class=\"control-group\" style=\"display: none;\">\n        <label>Options de case \u00e0 cocher:<\/label>\n        <div id=\"checkboxOptionsList\"><\/div>\n        <button onclick=\"addCheckboxOption()\">Ajouter une option<\/button>\n    <\/div>\n    <div class=\"control-group\">\n        <label>\n            <input type=\"checkbox\" id=\"fieldRequired\"> Champ obligatoire\n        <\/label>\n    <\/div>\n    <button onclick=\"saveField()\">Sauvegarder<\/button>\n    <button onclick=\"closeAddFieldDialog()\">Annuler<\/button>\n<\/div>\n\n<script>\nlet sidebarCollapsed = false;\nlet currentDevice = 'mobile';\nlet fields = [\n    {\n        type: 'text',\n        label: 'Nom',\n        id: 'nom',\n        placeholder: 'Votre nom',\n        required: true\n    },\n    {\n        type: 'text',\n        label: 'Pr\u00e9nom',\n        id: 'prenom',\n        placeholder: 'Votre pr\u00e9nom',\n        required: true\n    },\n    {\n        type: 'tel',\n        label: 'T\u00e9l\u00e9phone',\n        id: 'telephone',\n        placeholder: 'Votre num\u00e9ro de t\u00e9l\u00e9phone',\n        required: true\n    },\n    {\n        type: 'email',\n        label: 'Adresse e-mail',\n        id: 'email',\n        placeholder: 'Votre adresse e-mail',\n        required: true\n    }\n];\nlet selectOptions = [];\nlet checkboxOptions = [];\nlet editingFieldIndex = -1;\n\nfunction toggleSidebar() {\n    const sidebar = document.getElementById('sidebar');\n    const toggleButton = document.getElementById('toggleSidebar');\n    const mainContent = document.getElementById('preview');\n    sidebarCollapsed = !sidebarCollapsed;\n    \n    if (sidebarCollapsed) {\n        sidebar.classList.add('collapsed');\n        mainContent.style.width = 'calc(100% - 50px)';\n    } else {\n        sidebar.classList.remove('collapsed');\n        mainContent.style.width = '';\n    }\n}\n\ndocument.getElementById('toggleSidebar').addEventListener('click', toggleSidebar);\n\nfunction updateForm() {\n    const formTitle = document.getElementById('formTitle').value;\n    const formDescription = document.getElementById('formDescription').value;\n    const formColor = document.getElementById('formColor').value;\n    const formBackgroundColor = document.getElementById('formBackgroundColor').value;\n    const formFontFamily = document.getElementById('formFontFamily').value;\n    const glowStrength = document.getElementById('glowStrength').value;\n    const formBorderRadius = document.getElementById('formBorderRadius').value;\n    const formOpacity = document.getElementById('formOpacity').value;\n    const submitButtonText = document.getElementById('submitButtonText').value;\n    const submitButtonColor = document.getElementById('submitButtonColor').value;\n    const submitButtonTextColor = document.getElementById('submitButtonTextColor').value;\n    const submitButtonBorderRadius = document.getElementById('submitButtonBorderRadius').value;\n    const submitButtonIcon = document.getElementById('submitButtonIcon').value;\n    const submitButtonEmoji = document.getElementById('submitButtonEmoji').value;\n    const linkColor = document.getElementById('linkColor').value;\n    const includeReturnLink = document.getElementById('includeReturnLink').checked;\n    const returnLinkText = document.getElementById('returnLinkText').value;\n    const returnLinkUrl = document.getElementById('returnLinkUrl').value;\n\n    \/\/ Get device-specific values\n    const formFontSize = document.getElementById(`formFontSize${capitalizeFirstLetter(currentDevice)}`).value;\n    const formWidth = document.getElementById(`formWidth${capitalizeFirstLetter(currentDevice)}`).value;\n\n    const formPreview = document.getElementById('formPreview');\n    formPreview.innerHTML = `\n        <h2 style=\"color: ${formColor}; text-align: center;\">${formTitle}<\/h2>\n        <p style=\"color: ${formColor}; text-align: center;\">${formDescription}<\/p>\n    `;\n\n    fields.forEach(field => {\n        const fieldHtml = createFieldHtml(field);\n        formPreview.innerHTML += fieldHtml;\n    });\n\n    let submitButtonHtml = `<button type=\"submit\" style=\"background-color: ${submitButtonColor}; color: ${submitButtonTextColor}; border: none; padding: 10px 20px; border-radius: ${submitButtonBorderRadius}px; cursor: pointer; transition: all 0.3s ease;\">`;\n    if (submitButtonIcon) {\n        submitButtonHtml += `<i class=\"fas ${submitButtonIcon}\" style=\"margin-right: 5px;\"><\/i>`;\n    }\n    if (submitButtonEmoji) {\n        submitButtonHtml += `<span style=\"margin-right: 5px;\">${submitButtonEmoji}<\/span>`;\n    }\n    submitButtonHtml += `${submitButtonText}<\/button>`;\n\n    formPreview.innerHTML += submitButtonHtml;\n\n    \/\/ Add return link if checkbox is checked\n    if (includeReturnLink) {\n        formPreview.innerHTML += `<div style=\"margin-top: 15px; text-align: center;\">\n            <a href=\"${returnLinkUrl}\" style=\"color: ${linkColor}; text-decoration: none;\">${returnLinkText}<\/a>\n        <\/div>`;\n    }\n\n    formPreview.style.fontFamily = formFontFamily;\n    formPreview.style.fontSize = `${formFontSize}px`;\n    formPreview.style.width = `${formWidth}px`;\n    formPreview.style.backgroundColor = `rgba(${parseInt(formBackgroundColor.slice(1, 3), 16)}, ${parseInt(formBackgroundColor.slice(3, 5), 16)}, ${parseInt(formBackgroundColor.slice(5, 7), 16)}, ${formOpacity})`;\n    formPreview.style.boxShadow = `0 0 ${glowStrength}px ${formColor}`;\n    formPreview.style.borderRadius = `${formBorderRadius}px`;\n    formPreview.style.display = 'flex';\n    formPreview.style.flexDirection = 'column';\n    formPreview.style.alignItems = 'center';\n\n    \/\/ Update device-specific value displays\n    document.getElementById(`formFontSize${capitalizeFirstLetter(currentDevice)}Value`).textContent = `${formFontSize}px`;\n    document.getElementById(`formWidth${capitalizeFirstLetter(currentDevice)}Value`).textContent = `${formWidth}px`;\n    document.getElementById('glowStrengthValue').textContent = `${glowStrength}px`;\n    document.getElementById('formBorderRadiusValue').textContent = `${formBorderRadius}px`;\n    document.getElementById('formOpacityValue').textContent = formOpacity;\n    document.getElementById('submitButtonBorderRadiusValue').textContent = `${submitButtonBorderRadius}px`;\n\n    updateCodeEditor(formTitle, formDescription, formColor, formBackgroundColor, formFontFamily, formFontSize, formWidth, glowStrength, formBorderRadius, formOpacity, submitButtonText, submitButtonColor, submitButtonTextColor, submitButtonBorderRadius, submitButtonIcon, submitButtonEmoji, linkColor, includeReturnLink, returnLinkText, returnLinkUrl);\n}\n\nfunction capitalizeFirstLetter(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nfunction createFieldHtml(field) {\n    let fieldHtml = '';\n    const commonAttributes = `id=\"${field.id}\" name=\"${field.id}\" ${field.required ? 'required' : ''} style=\"width: 100%; text-align: center;\"`;\n    \n    switch (field.type) {\n        case 'text':\n        case 'email':\n        case 'tel':\n        case 'url':\n        case 'date':\n            fieldHtml = `\n                <div style=\"margin-bottom: 15px; width: 100%; display: flex; flex-direction: column; align-items: center;\">\n                    <label for=\"${field.id}\" style=\"display: block; text-align: center; margin-bottom: 5px;\">${field.label}<\/label>\n                    <input type=\"${field.type}\" ${commonAttributes} placeholder=\"${field.placeholder || ''}\">\n                <\/div>\n            `;\n            break;\n        case 'select':\n            fieldHtml = `\n                <div style=\"margin-bottom: 15px; width: 100%; display: flex; flex-direction: column; align-items: center;\">\n                    <label for=\"${field.id}\" style=\"display: block; text-align: center; margin-bottom: 5px;\">${field.label}<\/label>\n                    <select ${commonAttributes}>\n                        ${field.options.map(option => `<option value=\"${option}\">${option}<\/option>`).join('')}\n                    <\/select>\n                <\/div>\n            `;\n            break;\n        case 'checkbox':\n            fieldHtml = `\n                <div style=\"margin-bottom: 15px; width: 100%; display: flex; flex-direction: column; align-items: center;\">\n                    <label style=\"display: block; text-align: center; margin-bottom: 5px;\">${field.label}<\/label>\n                    ${field.options.map(option => `\n                        <label style=\"display: flex; align-items: center; margin-bottom: 5px;\">\n                            <input type=\"checkbox\" name=\"${field.id}\" value=\"${option}\" ${field.required ? 'required' : ''}>\n                            <span style=\"margin-left: 5px;\">${option}<\/span>\n                        <\/label>\n                    `).join('')}\n                <\/div>\n            `;\n            break;\n    }\n    return fieldHtml;\n}\n\nfunction updateCodeEditor(formTitle, formDescription, formColor, formBackgroundColor, formFontFamily, formFontSize, formWidth, glowStrength, formBorderRadius, formOpacity, submitButtonText, submitButtonColor, submitButtonTextColor, submitButtonBorderRadius, submitButtonIcon, submitButtonEmoji, linkColor, includeReturnLink, returnLinkText, returnLinkUrl) {\n    const codeEditor = document.getElementById('codeEditor');\n    const formCode = `\n<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>${formTitle}<\/title>\n    <link href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\" rel=\"stylesheet\">\n    <style>\n        body, html {\n            margin: 0;\n            padding: 0;\n            height: 100%;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            background-color: #000;\n            font-family: ${formFontFamily};\n        }\n        #formContainer {\n            width: ${formWidth}px;\n            padding: 20px;\n            background-color: rgba(${parseInt(formBackgroundColor.slice(1, 3), 16)}, ${parseInt(formBackgroundColor.slice(3, 5), 16)}, ${parseInt(formBackgroundColor.slice(5, 7), 16)}, ${formOpacity});\n            border-radius: ${formBorderRadius}px;\n            box-shadow: 0 0 ${glowStrength}px ${formColor};\n        }\n        h2, p, label {\n            color: ${formColor};\n            text-align: center;\n        }\n        input, select, textarea {\n            width: 100%;\n            padding: 10px;\n            margin-bottom: 10px;\n            border: 1px solid ${formColor};\n            background-color: #000;\n            color: ${formColor};\n            border-radius: 5px;\n        }\n        button[type=\"submit\"] {\n            width: 100%;\n            padding: 10px;\n            background-color: ${submitButtonColor};\n            color: ${submitButtonTextColor};\n            border: none;\n            border-radius: ${submitButtonBorderRadius}px;\n            cursor: pointer;\n        }\n        a {\n            color: ${linkColor};\n            text-decoration: none;\n        }\n    <\/style>\n<\/head>\n<body>\n    <div id=\"formContainer\">\n        <h2>${formTitle}<\/h2>\n        <p>${formDescription}<\/p>\n        <form>\n            ${fields.map(field => createFieldHtml(field)).join('')}\n            <button type=\"submit\">\n                ${submitButtonIcon ? `<i class=\"fas ${submitButtonIcon}\" style=\"margin-right: 5px;\"><\/i>` : ''}\n                ${submitButtonEmoji ? `<span style=\"margin-right: 5px;\">${submitButtonEmoji}<\/span>` : ''}\n                ${submitButtonText}\n            <\/button>\n        <\/form>\n        ${includeReturnLink ? `<div style=\"margin-top: 15px; text-align: center;\">\n            <a href=\"${returnLinkUrl}\">${returnLinkText}<\/a>\n        <\/div>` : ''}\n    <\/div>\n<\/body>\n<\/html>`;\n    \n    codeEditor.value = formCode;\n}\n\nfunction copyCode() {\n    const codeEditor = document.getElementById('codeEditor');\n    codeEditor.select();\n    document.execCommand('copy');\n    \n    const notification = document.getElementById('notification');\n    notification.style.display = 'block';\n    setTimeout(() => {\n        notification.style.display = 'none';\n    }, 3000);\n}\n\nfunction showAddFieldDialog() {\n    document.getElementById('addFieldDialog').style.display = 'block';\n    editingFieldIndex = -1;\n    resetFieldDialog();\n}\n\nfunction closeAddFieldDialog() {\n    document.getElementById('addFieldDialog').style.display = 'none';\n    resetFieldDialog();\n}\n\nfunction resetFieldDialog() {\n    document.getElementById('fieldType').value = 'text';\n    document.getElementById('fieldLabel').value = '';\n    document.getElementById('fieldPlaceholder').value = '';\n    document.getElementById('fieldRequired').checked = false;\n    document.getElementById('selectOptions').style.display = 'none';\n    document.getElementById('checkboxOptions').style.display = 'none';\n    selectOptions = [];\n    checkboxOptions = [];\n    updateOptionsList();\n}\n\nfunction toggleFieldOptions() {\n    const fieldType = document.getElementById('fieldType').value;\n    const selectOptions = document.getElementById('selectOptions');\n    const checkboxOptions = document.getElementById('checkboxOptions');\n    const placeholderField = document.getElementById('placeholderField');\n\n    selectOptions.style.display = fieldType === 'select' ? 'block' : 'none';\n    checkboxOptions.style.display = fieldType === 'checkbox' ? 'block' : 'none';\n    placeholderField.style.display = ['text', 'email', 'tel', 'url'].includes(fieldType) ? 'block' : 'none';\n}\n\nfunction addSelectOption() {\n    selectOptions.push('');\n    updateOptionsList();\n}\n\nfunction addCheckboxOption() {\n    checkboxOptions.push('');\n    updateOptionsList();\n}\n\nfunction updateOptionsList() {\n    const selectOptionsList = document.getElementById('selectOptionsList');\n    const checkboxOptionsList = document.getElementById('checkboxOptionsList');\n\n    selectOptionsList.innerHTML = selectOptions.map((option, index) => `\n        <div class=\"option-input\">\n            <input type=\"text\" value=\"${option}\" onchange=\"updateOption(${index}, this.value, 'select')\">\n            <button onclick=\"removeOption(${index}, 'select')\">Supprimer<\/button>\n        <\/div>\n    `).join('');\n\n    checkboxOptionsList.innerHTML = checkboxOptions.map((option, index) => `\n        <div class=\"option-input\">\n            <input type=\"text\" value=\"${option}\" onchange=\"updateOption(${index}, this.value, 'checkbox')\">\n            <button onclick=\"removeOption(${index}, 'checkbox')\">Supprimer<\/button>\n        <\/div>\n    `).join('');\n}\n\nfunction updateOption(index, value, type) {\n    if (type === 'select') {\n        selectOptions[index] = value;\n    } else if (type === 'checkbox') {\n        checkboxOptions[index] = value;\n    }\n}\n\nfunction removeOption(index, type) {\n    if (type === 'select') {\n        selectOptions.splice(index, 1);\n    } else if (type === 'checkbox') {\n        checkboxOptions.splice(index, 1);\n    }\n    updateOptionsList();\n}\n\nfunction saveField() {\n    const fieldType = document.getElementById('fieldType').value;\n    const fieldLabel = document.getElementById('fieldLabel').value;\n    const fieldPlaceholder = document.getElementById('fieldPlaceholder').value;\n    const fieldRequired = document.getElementById('fieldRequired').checked;\n\n    const newField = {\n        type: fieldType,\n        label: fieldLabel,\n        id: fieldLabel.toLowerCase().replace(\/\\s+\/g, '-'),\n        required: fieldRequired\n    };\n\n    if (['text', 'email', 'tel', 'url'].includes(fieldType)) {\n        newField.placeholder = fieldPlaceholder;\n    } else if (fieldType === 'select') {\n        newField.options = selectOptions;\n    } else if (fieldType === 'checkbox') {\n        newField.options = checkboxOptions;\n    }\n\n    if (editingFieldIndex === -1) {\n        fields.push(newField);\n    } else {\n        fields[editingFieldIndex] = newField;\n    }\n\n    closeAddFieldDialog();\n    updateFieldList();\n    updateForm();\n}\n\nfunction updateFieldList() {\n    const fieldList = document.getElementById('fieldList');\n    fieldList.innerHTML = fields.map((field, index) => `\n        <div class=\"field-item\">\n            <span>${field.label} (${field.type})<\/span>\n            <button class=\"edit-field\" onclick=\"editField(${index})\">Modifier<\/button>\n            <button class=\"remove-field\" onclick=\"removeField(${index})\">Supprimer<\/button>\n        <\/div>\n    `).join('');\n}\n\nfunction editField(index) {\n    editingFieldIndex = index;\n    const field = fields[index];\n    \n    document.getElementById('fieldType').value = field.type;\n    document.getElementById('fieldLabel').value = field.label;\n    document.getElementById('fieldPlaceholder').value = field.placeholder || '';\n    document.getElementById('fieldRequired').checked = field.required;\n\n    if (field.type === 'select') {\n        selectOptions = field.options || [];\n    } else if (field.type === 'checkbox') {\n        checkboxOptions = field.options || [];\n    }\n\n    toggleFieldOptions();\n    updateOptionsList();\n    \n    document.getElementById('addFieldDialog').style.display = 'block';\n}\n\nfunction removeField(index) {\n    fields.splice(index, 1);\n    updateFieldList();\n    updateForm();\n}\n\ndocument.querySelectorAll('.device-button').forEach(button => {\n    button.addEventListener('click', function() {\n        currentDevice = this.dataset.device;\n        document.querySelectorAll('.device-button').forEach(btn => btn.classList.remove('active'));\n        this.classList.add('active');\n        document.querySelectorAll('.device-specific-controls').forEach(control => {\n            control.classList.remove('active');\n            if (control.dataset.device === currentDevice) {\n                control.classList.add('active');\n            }\n        });\n        updateForm();\n    });\n});\n\nupdateFieldList();\nupdateForm();\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-aeed7b9 e-flex e-con-boxed e-con e-parent\" data-id=\"aeed7b9\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e8f930d elementor-widget elementor-widget-heading\" data-id=\"e8f930d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Derniers mod\u00e8les de formulaire en HTML-CSS-JS :<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-278914c elementor-grid-eael-col-3 elementor-grid-tablet-eael-col-2 elementor-grid-mobile-eael-col-1 elementor-invisible elementor-widget elementor-widget-eael-post-grid\" data-id=\"278914c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;eael_post_grid_columns&quot;:&quot;eael-col-3&quot;,&quot;_animation&quot;:&quot;lightSpeedIn&quot;,&quot;eael_post_grid_columns_tablet&quot;:&quot;eael-col-2&quot;,&quot;eael_post_grid_columns_mobile&quot;:&quot;eael-col-1&quot;}\" data-widget_type=\"eael-post-grid.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"eael-post-grid-278914c\" class=\"eael-post-grid-container\">\n            <div class=\"eael-post-grid eael-post-appender eael-post-appender-278914c eael-post-grid-style-three\" data-layout-mode=\"masonry\"><article class=\"eael-grid-post  eael-post-grid-column eael-pg-post-1138 category-formulaire-html-css-js-generator-mot-de-passe-oublie\" data-id=\"1138\">\n        <div class=\"eael-grid-post-holder\">\n            <div class=\"eael-grid-post-holder-inner\"><div class=\"eael-entry-media\"><div class=\"eael-entry-overlay zoom-in\"><i class=\"fab fa-html5\" aria-hidden=\"true\"><\/i><a href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/\"><\/a><\/div><div class=\"eael-entry-thumbnail eael-image-ratio\">\n                 <img fetchpriority=\"high\" decoding=\"async\" width=\"300\" height=\"252\" src=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js-300x252.png\" class=\"attachment-medium size-medium wp-image-1139\" alt=\"Exemple de formulaire de r\u00e9initialisation de mot de passe Matrix responsive en HTML et CSS\" srcset=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js-300x252.png 300w, https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.png 720w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\n             <\/div>\n        <\/div><div class=\"eael-entry-wrapper\"><header class=\"eael-entry-header\"><h4 class=\"eael-entry-title\"><a class=\"eael-grid-post-link\" href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/\" title=\"G\u00e9n\u00e9rateur de Formulaire Mot de Passe Oubli\u00e9 Matrix HTML CSS\">G\u00e9n\u00e9rateur de Formulaire Mot de Passe Oubli\u00e9 Matrix HTML CSS<\/a><\/h4><\/header><div class=\"eael-entry-content\">\n                        <div class=\"eael-grid-post-excerpt\"><a href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/\" class=\"eael-post-elements-readmore-btn\">Personnalisez le mod\u00e8le<\/a><\/div>\n                    <\/div><\/div><\/div>\n        <\/div>\n    <\/article><article class=\"eael-grid-post  eael-post-grid-column eael-pg-post-1130 category-creer-un-compte-formulaire-html-css-js-generator\" data-id=\"1130\">\n        <div class=\"eael-grid-post-holder\">\n            <div class=\"eael-grid-post-holder-inner\"><div class=\"eael-entry-media\"><div class=\"eael-entry-overlay zoom-in\"><i class=\"fab fa-html5\" aria-hidden=\"true\"><\/i><a href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-creer-un-compte-matrix-html-et-css\/\"><\/a><\/div><div class=\"eael-entry-thumbnail eael-image-ratio\">\n                 <img decoding=\"async\" width=\"300\" height=\"239\" src=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/matrix-form-creer-un-compte-html-css-js-300x239.png\" class=\"attachment-medium size-medium wp-image-1132\" alt=\"Exemple de formulaire d&#039;inscription Matrix responsive en HTML et CSS\" srcset=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/matrix-form-creer-un-compte-html-css-js-300x239.png 300w, https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/matrix-form-creer-un-compte-html-css-js.png 745w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\n             <\/div>\n        <\/div><div class=\"eael-entry-wrapper\"><header class=\"eael-entry-header\"><h4 class=\"eael-entry-title\"><a class=\"eael-grid-post-link\" href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-creer-un-compte-matrix-html-et-css\/\" title=\"G\u00e9n\u00e9rateur de Formulaire Cr\u00e9er un Compte Matrix HTML et CSS\">G\u00e9n\u00e9rateur de Formulaire Cr\u00e9er un Compte Matrix HTML et CSS<\/a><\/h4><\/header><div class=\"eael-entry-content\">\n                        <div class=\"eael-grid-post-excerpt\"><a href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-creer-un-compte-matrix-html-et-css\/\" class=\"eael-post-elements-readmore-btn\">Personnalisez le mod\u00e8le<\/a><\/div>\n                    <\/div><\/div><\/div>\n        <\/div>\n    <\/article><article class=\"eael-grid-post  eael-post-grid-column eael-pg-post-1059 category-connexion-formulaire-html-css-js-generator\" data-id=\"1059\">\n        <div class=\"eael-grid-post-holder\">\n            <div class=\"eael-grid-post-holder-inner\"><div class=\"eael-entry-media\"><div class=\"eael-entry-overlay zoom-in\"><i class=\"fab fa-html5\" aria-hidden=\"true\"><\/i><a href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-de-connexion-matrix-html-et-css\/\"><\/a><\/div><div class=\"eael-entry-thumbnail eael-image-ratio\">\n                 <img decoding=\"async\" width=\"300\" height=\"231\" src=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/matrix-form-connexion-html-css-js-300x231.png\" class=\"attachment-medium size-medium wp-image-1060\" alt=\"Exemple de formulaire de connexion Matrix responsive en HTML et CSS\" srcset=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/matrix-form-connexion-html-css-js-300x231.png 300w, https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/matrix-form-connexion-html-css-js.png 683w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>\n             <\/div>\n        <\/div><div class=\"eael-entry-wrapper\"><header class=\"eael-entry-header\"><h4 class=\"eael-entry-title\"><a class=\"eael-grid-post-link\" href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-de-connexion-matrix-html-et-css\/\" title=\"G\u00e9n\u00e9rateur de Formulaire de Connexion Matrix HTML et CSS\">G\u00e9n\u00e9rateur de Formulaire de Connexion Matrix HTML et CSS<\/a><\/h4><\/header><div class=\"eael-entry-content\">\n                        <div class=\"eael-grid-post-excerpt\"><a href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-de-connexion-matrix-html-et-css\/\" class=\"eael-post-elements-readmore-btn\">Personnalisez le mod\u00e8le<\/a><\/div>\n                    <\/div><\/div><\/div>\n        <\/div>\n    <\/article><\/div>\n            <div class=\"clearfix\"><\/div>\n        <\/div>            <div class=\"eael-load-more-button-wrap eael-force-hide\">\n                <button class=\"eael-load-more-button\" id=\"eael-load-more-btn-278914c\" data-widget-id=\"278914c\" data-widget=\"278914c\" data-page-id=\"1047\" data-template=\"{&quot;dir&quot;:&quot;lite&quot;,&quot;file_name&quot;:&quot;three.php&quot;,&quot;name&quot;:&quot;Post-Grid&quot;}\" data-class=\"Essential_Addons_Elementor\\Elements\\Post_Grid\" data-layout=\"masonry\" data-page=\"1\" data-args=\"orderby=date&amp;order=desc&amp;ignore_sticky_posts=1&amp;post_status=publish&amp;posts_per_page=3&amp;offset=0&amp;post_type=post&amp;tax_query%5B0%5D%5Btaxonomy%5D=category&amp;tax_query%5B0%5D%5Bfield%5D=term_id&amp;tax_query%5B0%5D%5Bterms%5D%5B0%5D=8&amp;tax_query%5Brelation%5D=AND\" data-max-page=\"2\">\n                    <span class=\"eael-btn-loader button__loader\"><\/span>\n                    <span class=\"eael_load_more_text\">Load More<\/span>\n                <\/button>\n            <\/div>\n            \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>G\u00e9n\u00e9rateur de Formulaire Matrix Responsive Mobile Tablette PC Titre du formulaire: Description du formulaire: Veuillez remplir ce formulaire pour nous contacter. Couleur principale: Couleur de fond: Police du texte: Courier PrimeShare Tech MonoVT323Press Start 2PIcelandOrbitronRoboto Mono Taille de la police (Mobile): 14px Largeur du formulaire (Mobile): 300px Taille de la police (Tablette): 16px Largeur du [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1051,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"footnotes":""},"categories":[8,5,9],"tags":[],"class_list":["post-1047","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-formulaire","category-html-css-js-generator","category-multichamps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS - Web Extractor<\/title>\n<meta name=\"description\" content=\"Cr\u00e9ez des formulaires responsives au style Matrix avec des options de personnalisation avanc\u00e9es en HTML et CSS.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS - Web Extractor\" \/>\n<meta property=\"og:description\" content=\"Cr\u00e9ez des formulaires responsives au style Matrix avec des options de personnalisation avanc\u00e9es en HTML et CSS.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Extractor\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-04T09:19:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-04T09:39:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/form-generator-matrix-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"847\" \/>\n\t<meta property=\"og:image:height\" content=\"615\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/\",\"name\":\"G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS - Web Extractor\",\"isPartOf\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/form-generator-matrix-2.webp\",\"datePublished\":\"2024-09-04T09:19:31+00:00\",\"dateModified\":\"2024-09-04T09:39:26+00:00\",\"author\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48\"},\"description\":\"Cr\u00e9ez des formulaires responsives au style Matrix avec des options de personnalisation avanc\u00e9es en HTML et CSS.\",\"breadcrumb\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#primaryimage\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/form-generator-matrix-2.webp\",\"contentUrl\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/form-generator-matrix-2.webp\",\"width\":847,\"height\":615},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/pacific-webtools.com\/web-extractor\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#website\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/\",\"name\":\"Web Extractor\",\"description\":\"Extracteur de Code\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/pacific-webtools.com\/web-extractor\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/pacific-webtools.com\/web-extractor\"],\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS - Web Extractor","description":"Cr\u00e9ez des formulaires responsives au style Matrix avec des options de personnalisation avanc\u00e9es en HTML et CSS.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/","og_locale":"fr_FR","og_type":"article","og_title":"G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS - Web Extractor","og_description":"Cr\u00e9ez des formulaires responsives au style Matrix avec des options de personnalisation avanc\u00e9es en HTML et CSS.","og_url":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/","og_site_name":"Web Extractor","article_published_time":"2024-09-04T09:19:31+00:00","article_modified_time":"2024-09-04T09:39:26+00:00","og_image":[{"width":847,"height":615,"url":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/form-generator-matrix-2.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/","url":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/","name":"G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS - Web Extractor","isPartOf":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#primaryimage"},"image":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#primaryimage"},"thumbnailUrl":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/form-generator-matrix-2.webp","datePublished":"2024-09-04T09:19:31+00:00","dateModified":"2024-09-04T09:39:26+00:00","author":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48"},"description":"Cr\u00e9ez des formulaires responsives au style Matrix avec des options de personnalisation avanc\u00e9es en HTML et CSS.","breadcrumb":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#primaryimage","url":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/form-generator-matrix-2.webp","contentUrl":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/form-generator-matrix-2.webp","width":847,"height":615},{"@type":"BreadcrumbList","@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-matrix-responsive-en-html-et-css\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pacific-webtools.com\/web-extractor\/"},{"@type":"ListItem","position":2,"name":"G\u00e9n\u00e9rateur de Formulaire Matrix Responsive en HTML et CSS"}]},{"@type":"WebSite","@id":"https:\/\/pacific-webtools.com\/web-extractor\/#website","url":"https:\/\/pacific-webtools.com\/web-extractor\/","name":"Web Extractor","description":"Extracteur de Code","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pacific-webtools.com\/web-extractor\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48","name":"admin","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/pacific-webtools.com\/web-extractor"],"url":"https:\/\/pacific-webtools.com\/web-extractor\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/1047"}],"collection":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/comments?post=1047"}],"version-history":[{"count":10,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/1047\/revisions"}],"predecessor-version":[{"id":1074,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/1047\/revisions\/1074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/media\/1051"}],"wp:attachment":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/media?parent=1047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/categories?post=1047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/tags?post=1047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}