




{"id":1138,"date":"2024-09-04T12:48:22","date_gmt":"2024-09-04T10:48:22","guid":{"rendered":"https:\/\/pacific-webtools.com\/web-extractor\/?p=1138"},"modified":"2024-09-04T12:49:13","modified_gmt":"2024-09-04T10:49:13","slug":"generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css","status":"publish","type":"post","link":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/","title":{"rendered":"G\u00e9n\u00e9rateur de Formulaire Mot de Passe Oubli\u00e9 Matrix HTML CSS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"1138\" class=\"elementor elementor-1138\" 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 de Mot de Passe Oubli\u00e9 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 {\n        background-color: #e74c3c;\n        color: #fff;\n        border: none;\n        padding: 5px 10px;\n        cursor: pointer;\n        float: right;\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=\"Mot de passe oubli\u00e9\" oninput=\"updateForm()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"formDescription\">Description du formulaire:<\/label>\n                    <textarea id=\"formDescription\" oninput=\"updateForm()\">Entrez votre adresse e-mail pour recevoir un lien de r\u00e9initialisation.<\/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 class=\"control-group\">\n                        <label for=\"submitButtonWidthMobile\">Largeur du bouton (Mobile):<\/label>\n                        <input type=\"range\" id=\"submitButtonWidthMobile\" min=\"100\" max=\"300\" value=\"200\" oninput=\"updateForm()\">\n                        <span id=\"submitButtonWidthMobileValue\">200px<\/span>\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"submitButtonFontSizeMobile\">Taille de la police du bouton (Mobile):<\/label>\n                        <input type=\"range\" id=\"submitButtonFontSizeMobile\" min=\"10\" max=\"24\" value=\"14\" oninput=\"updateForm()\">\n                        <span id=\"submitButtonFontSizeMobileValue\">14px<\/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 class=\"control-group\">\n                        <label for=\"submitButtonWidthTablet\">Largeur du bouton (Tablette):<\/label>\n                        <input type=\"range\" id=\"submitButtonWidthTablet\" min=\"150\" max=\"400\" value=\"250\" oninput=\"updateForm()\">\n                        <span id=\"submitButtonWidthTabletValue\">250px<\/span>\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"submitButtonFontSizeTablet\">Taille de la police du bouton (Tablette):<\/label>\n                        <input type=\"range\" id=\"submitButtonFontSizeTablet\" min=\"12\" max=\"28\" value=\"16\" oninput=\"updateForm()\">\n                        <span id=\"submitButtonFontSizeTabletValue\">16px<\/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 class=\"control-group\">\n                        <label for=\"submitButtonWidthDesktop\">Largeur du bouton (PC):<\/label>\n                        <input type=\"range\" id=\"submitButtonWidthDesktop\" min=\"200\" max=\"500\" value=\"300\" oninput=\"updateForm()\">\n                        <span id=\"submitButtonWidthDesktopValue\">300px<\/span>\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"submitButtonFontSizeDesktop\">Taille de la police du bouton (PC):<\/label>\n                        <input type=\"range\" id=\"submitButtonFontSizeDesktop\" min=\"14\" max=\"32\" value=\"18\" oninput=\"updateForm()\">\n                        <span id=\"submitButtonFontSizeDesktopValue\">18px<\/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=\"R\u00e9initialiser le mot de passe\" 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-key\">Cl\u00e9<\/option>\n                        <option value=\"fa-lock\">Cadenas<\/option>\n                        <option value=\"fa-envelope\">Enveloppe<\/option>\n                        <option value=\"fa-redo\">R\u00e9initialiser<\/option>\n                        <option value=\"fa-user-lock\">Utilisateur verrouill\u00e9<\/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\udd11\">\ud83d\udd11 Cl\u00e9<\/option>\n                        <option value=\"\ud83d\udd12\">\ud83d\udd12 Cadenas<\/option>\n                        <option value=\"\u2709\ufe0f\">\u2709\ufe0f Enveloppe<\/option>\n                        <option value=\"\ud83d\udd04\">\ud83d\udd04 R\u00e9initialiser<\/option>\n                        <option value=\"\ud83d\udd10\">\ud83d\udd10 Cadenas avec cl\u00e9<\/option>\n                        <option value=\"\ud83d\udce7\">\ud83d\udce7 E-mail<\/option>\n                        <option value=\"\ud83c\udd98\">\ud83c\udd98 SOS<\/option>\n                        <option value=\"\ud83d\udd13\">\ud83d\udd13 Cadenas ouvert<\/option>\n                        <option value=\"\ud83c\udd95\">\ud83c\udd95 Nouveau<\/option>\n                        <option value=\"\ud83d\udca1\">\ud83d\udca1 Id\u00e9e<\/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 for=\"returnLinkText\">Texte du lien de retour:<\/label>\n                    <input type=\"text\" id=\"returnLinkText\" value=\"Retour \u00e0 la page de connexion\" 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=\"login.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=\"checkbox\">Case \u00e0 cocher<\/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=\"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=\"addField()\">Ajouter<\/button>\n    <button onclick=\"closeAddFieldDialog()\">Annuler<\/button>\n<\/div>\n\n<script>\nlet sidebarCollapsed = false;\nlet currentDevice = 'mobile';\nlet fields = [\n    {\n        type: 'email',\n        label: 'Adresse e-mail',\n        id: 'email',\n        placeholder: 'Entrez votre adresse e-mail',\n        required: true\n    }\n];\nlet checkboxOptions = [];\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 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    const submitButtonWidth = document.getElementById(`submitButtonWidth${capitalizeFirstLetter(currentDevice)}`).value;\n    const submitButtonFontSize = document.getElementById(`submitButtonFontSize${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; width: ${submitButtonWidth}px; font-size: ${submitButtonFontSize}px; white-space: normal; word-wrap: break-word;\">`;\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\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    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(`submitButtonWidth${capitalizeFirstLetter(currentDevice)}Value`).textContent = `${submitButtonWidth}px`;\n    document.getElementById(`submitButtonFontSize${capitalizeFirstLetter(currentDevice)}Value`).textContent = `${submitButtonFontSize}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, returnLinkText, returnLinkUrl, submitButtonWidth, submitButtonFontSize);\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            fieldHtml = `\n                <div style=\"margin-bottom: 15px; width: 100%; display: flex; flex-direction: column; align-items: center;\">\n                    <label for=\"${field.id}\" style=\"color: ${formColor}; margin-bottom: 5px;\">${field.label}<\/label>\n                    <input type=\"${field.type}\" ${commonAttributes} placeholder=\"${field.placeholder}\">\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=\"color: ${formColor}; margin-bottom: 5px;\">${field.label}<\/label>\n                    ${field.options.map(option => `\n                        <label style=\"color: ${formColor}; display: flex; align-items: center; margin-bottom: 5px;\">\n                            <input type=\"checkbox\" name=\"${field.id}[]\" value=\"${option}\" ${commonAttributes} style=\"margin-right: 5px;\">\n                            ${option}\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, returnLinkText, returnLinkUrl, submitButtonWidth, submitButtonFontSize) {\n    const codeEditor = document.getElementById('codeEditor');\n    const code = `<!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    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=${formFontFamily.replace(\/['\"]+\/g, '')}&display=swap\" rel=\"stylesheet\">\n    <style>\n        body, html {\n            height: 100%;\n            margin: 0;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            background-color: #000000;\n            font-family: ${formFontFamily};\n        }\n        #formContainer {\n            background-color: rgba(${parseInt(formBackgroundColor.slice(1, 3), 16)}, ${parseInt(formBackgroundColor.slice(3, 5), 16)}, ${parseInt(formBackgroundColor.slice(5, 7), 16)}, ${formOpacity});\n            padding: 20px;\n            border-radius: ${formBorderRadius}px;\n            box-shadow: 0 0 ${glowStrength}px ${formColor};\n            width: ${formWidth}px;\n            box-sizing: border-box;\n        }\n        h2, p, label {\n            color: ${formColor};\n            text-align: center;\n        }\n        input[type=\"email\"], input[type=\"text\"], input[type=\"checkbox\"] {\n            width: 100%;\n            padding: 10px;\n            margin-bottom: 10px;\n            box-sizing: border-box;\n            background-color: #000;\n            color: ${formColor};\n            border: 1px solid ${formColor};\n            border-radius: 5px;\n            text-align: center;\n        }\n        button[type=\"submit\"] {\n            background-color: ${submitButtonColor};\n            color: ${submitButtonTextColor};\n            border: none;\n            padding: 10px 20px;\n            border-radius: ${submitButtonBorderRadius}px;\n            cursor: pointer;\n            transition: all 0.3s ease;\n            width: ${submitButtonWidth}px;\n            font-size: ${submitButtonFontSize}px;\n            white-space: normal;\n            word-wrap: break-word;\n        }\n        button[type=\"submit\"]:hover {\n            opacity: 0.8;\n        }\n        a {\n            color: ${linkColor};\n            text-decoration: none;\n        }\n        @media (max-width: 600px) {\n            #formContainer {\n                width: 90%;\n            }\n        }\n    <\/style>\n<\/head>\n<body>\n    <div id=\"formContainer\">\n        <h2>${formTitle}<\/h2>\n        <p>${formDescription}<\/p>\n        <form id=\"resetPasswordForm\" onsubmit=\"event.preventDefault(); console.log('Form submitted');\">\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        <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 = code;\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    }, 2000);\n}\n\nfunction showAddFieldDialog() {\n    document.getElementById('addFieldDialog').style.display = 'block';\n    document.getElementById('fieldLabel').value = '';\n    document.getElementById('fieldPlaceholder').value = '';\n    document.getElementById('fieldRequired').checked = false;\n    document.getElementById('fieldType').value = 'text';\n    toggleFieldOptions();\n}\n\nfunction closeAddFieldDialog() {\n    document.getElementById('addFieldDialog').style.display = 'none';\n}\n\nfunction toggleFieldOptions() {\n    const fieldType = document.getElementById('fieldType').value;\n    const placeholderField = document.getElementById('placeholderField');\n    const checkboxOptions = document.getElementById('checkboxOptions');\n\n    if (fieldType === 'checkbox') {\n        placeholderField.style.display = 'none';\n        checkboxOptions.style.display = 'block';\n    } else {\n        placeholderField.style.display = 'block';\n        checkboxOptions.style.display = 'none';\n    }\n}\n\nfunction addCheckboxOption() {\n    const optionInput = document.createElement('div');\n    optionInput.className = 'option-input';\n    optionInput.innerHTML = `\n        <input type=\"text\" placeholder=\"Option\">\n        <button onclick=\"removeCheckboxOption(this)\">Supprimer<\/button>\n    `;\n    document.getElementById('checkboxOptionsList').appendChild(optionInput);\n}\n\nfunction removeCheckboxOption(button) {\n    button.parentElement.remove();\n}\n\nfunction addField() {\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    if (!fieldLabel) {\n        alert('Veuillez entrer un label pour le champ.');\n        return;\n    }\n\n    const fieldId = fieldLabel.toLowerCase().replace(\/\\s+\/g, '-');\n\n    let newField = {\n        type: fieldType,\n        label: fieldLabel,\n        id: fieldId,\n        required: fieldRequired\n    };\n\n    if (fieldType === 'checkbox') {\n        const options = Array.from(document.querySelectorAll('#checkboxOptionsList input')).map(input => input.value);\n        if (options.length === 0) {\n            alert('Veuillez ajouter au moins une option pour la case \u00e0 cocher.');\n            return;\n        }\n        newField.options = options;\n    } else {\n        newField.placeholder = fieldPlaceholder;\n    }\n\n    fields.push(newField);\n    updateFieldList();\n    updateForm();\n    closeAddFieldDialog();\n}\n\nfunction updateFieldList() {\n    const fieldList = document.getElementById('fieldList');\n    fieldList.innerHTML = '';\n    fields.forEach((field, index) => {\n        if (field.id !== 'email') {\n            const fieldItem = document.createElement('div');\n            fieldItem.className = 'field-item';\n            fieldItem.innerHTML = `\n                <span>${field.label} (${field.type})<\/span>\n                <button onclick=\"removeField(${index})\">Supprimer<\/button>\n                <button onclick=\"editField(${index})\">Modifier<\/button>\n            `;\n            fieldList.appendChild(fieldItem);\n        }\n    });\n}\n\nfunction removeField(index) {\n    fields.splice(index, 1);\n    updateFieldList();\n    updateForm();\n}\n\nfunction editField(index) {\n    const field = fields[index];\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 === 'checkbox') {\n        const checkboxOptionsList = document.getElementById('checkboxOptionsList');\n        checkboxOptionsList.innerHTML = '';\n        field.options.forEach(option => {\n            const optionInput = document.createElement('div');\n            optionInput.className = 'option-input';\n            optionInput.innerHTML = `\n                <input type=\"text\" value=\"${option}\">\n                <button onclick=\"removeCheckboxOption(this)\">Supprimer<\/button>\n            `;\n            checkboxOptionsList.appendChild(optionInput);\n        });\n    }\n\n    toggleFieldOptions();\n    showAddFieldDialog();\n\n    \/\/ Remove the old field and update it with the new one when the dialog is closed\n    const addFieldButton = document.querySelector('#addFieldDialog button');\n    addFieldButton.onclick = function() {\n        removeField(index);\n        addField();\n    };\n}\n\n\/\/ Event listeners for device buttons\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\n\/\/ Initialize the form\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-d3d15d9 e-flex e-con-boxed e-con e-parent\" data-id=\"d3d15d9\" 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-21d3ea4 elementor-widget elementor-widget-heading\" data-id=\"21d3ea4\" 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-f5ff182 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=\"f5ff182\" 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-f5ff182\" class=\"eael-post-grid-container\">\n            <div class=\"eael-post-grid eael-post-appender eael-post-appender-f5ff182 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-f5ff182\" data-widget-id=\"f5ff182\" data-widget=\"f5ff182\" data-page-id=\"1138\" 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 de Mot de Passe Oubli\u00e9 Matrix Responsive Mobile Tablette PC Titre du formulaire: Description du formulaire: Entrez votre adresse e-mail pour recevoir un lien de r\u00e9initialisation. 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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1139,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"footnotes":""},"categories":[8,5,12],"tags":[],"class_list":["post-1138","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-formulaire","category-html-css-js-generator","category-mot-de-passe-oublie"],"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 Mot de Passe Oubli\u00e9 Matrix HTML CSS - Web Extractor<\/title>\n<meta name=\"description\" content=\"Cr\u00e9ez des formulaires de r\u00e9initialisation de mot de passe 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-mot-de-passe-oublie-matrix-html-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 Mot de Passe Oubli\u00e9 Matrix HTML CSS - Web Extractor\" \/>\n<meta property=\"og:description\" content=\"Cr\u00e9ez des formulaires de r\u00e9initialisation de mot de passe 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-mot-de-passe-oublie-matrix-html-css\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Extractor\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-04T10:48:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-04T10:49:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"605\" \/>\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-mot-de-passe-oublie-matrix-html-css\/\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/\",\"name\":\"G\u00e9n\u00e9rateur de Formulaire Mot de Passe Oubli\u00e9 Matrix HTML CSS - Web Extractor\",\"isPartOf\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.webp\",\"datePublished\":\"2024-09-04T10:48:22+00:00\",\"dateModified\":\"2024-09-04T10:49:13+00:00\",\"author\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48\"},\"description\":\"Cr\u00e9ez des formulaires de r\u00e9initialisation de mot de passe 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-mot-de-passe-oublie-matrix-html-css\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/#primaryimage\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.webp\",\"contentUrl\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.webp\",\"width\":720,\"height\":605,\"caption\":\"Formulaire de R\u00e9initialisation de Mot de Passe Matrix Responsive en HTML et CSS\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-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 Mot de Passe Oubli\u00e9 Matrix HTML 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 Mot de Passe Oubli\u00e9 Matrix HTML CSS - Web Extractor","description":"Cr\u00e9ez des formulaires de r\u00e9initialisation de mot de passe 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-mot-de-passe-oublie-matrix-html-css\/","og_locale":"fr_FR","og_type":"article","og_title":"G\u00e9n\u00e9rateur de Formulaire Mot de Passe Oubli\u00e9 Matrix HTML CSS - Web Extractor","og_description":"Cr\u00e9ez des formulaires de r\u00e9initialisation de mot de passe 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-mot-de-passe-oublie-matrix-html-css\/","og_site_name":"Web Extractor","article_published_time":"2024-09-04T10:48:22+00:00","article_modified_time":"2024-09-04T10:49:13+00:00","og_image":[{"width":720,"height":605,"url":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.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-mot-de-passe-oublie-matrix-html-css\/","url":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/","name":"G\u00e9n\u00e9rateur de Formulaire Mot de Passe Oubli\u00e9 Matrix HTML CSS - Web Extractor","isPartOf":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/#primaryimage"},"image":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/#primaryimage"},"thumbnailUrl":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.webp","datePublished":"2024-09-04T10:48:22+00:00","dateModified":"2024-09-04T10:49:13+00:00","author":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48"},"description":"Cr\u00e9ez des formulaires de r\u00e9initialisation de mot de passe 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-mot-de-passe-oublie-matrix-html-css\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-css\/#primaryimage","url":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.webp","contentUrl":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/formulaire-matrix-new-password-html-css-js.webp","width":720,"height":605,"caption":"Formulaire de R\u00e9initialisation de Mot de Passe Matrix Responsive en HTML et CSS"},{"@type":"BreadcrumbList","@id":"https:\/\/pacific-webtools.com\/web-extractor\/generateur-de-formulaire-mot-de-passe-oublie-matrix-html-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 Mot de Passe Oubli\u00e9 Matrix HTML 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\/1138"}],"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=1138"}],"version-history":[{"count":5,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/1138\/revisions"}],"predecessor-version":[{"id":1144,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/1138\/revisions\/1144"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/media\/1139"}],"wp:attachment":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/media?parent=1138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/categories?post=1138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/tags?post=1138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}