




{"id":921,"date":"2024-09-03T17:56:27","date_gmt":"2024-09-03T15:56:27","guid":{"rendered":"https:\/\/pacific-webtools.com\/web-extractor\/?p=921"},"modified":"2024-09-04T12:05:37","modified_gmt":"2024-09-04T10:05:37","slug":"bouton-responsive-avec-icone-et-animation-en-html-css-js","status":"publish","type":"post","link":"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/","title":{"rendered":"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"921\" class=\"elementor elementor-921\" 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 Bouton Responsive avec Ic\u00f4ne et Animation<\/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=Roboto:wght@400;700&family=Open+Sans:wght@400;700&family=Lato:wght@400;700&family=Montserrat:wght@400;700&family=Poppins: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: #f0f0f0;\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: #16213e;\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: #16213e;\n        color: white;\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: #1e3a8a;\n        color: #ffffff;\n        font-family: monospace;\n        font-size: 14px;\n        padding: 10px;\n        border: none;\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 #ffffff;\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    }\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: #16213e;\n        color: white;\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: #3295d4;\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    #buttonPreview {\n        transition: all 0.3s ease;\n    }\n    #iconSelector {\n        max-height: 200px;\n        overflow-y: auto;\n        display: grid;\n        grid-template-columns: repeat(5, 1fr);\n        gap: 10px;\n        margin-top: 10px;\n    }\n    .icon-option {\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        padding: 5px;\n        border: 1px solid #ccc;\n        cursor: pointer;\n        transition: background-color 0.3s;\n    }\n    .icon-option:hover {\n        background-color: #e0e0e0;\n    }\n    .icon-option.selected {\n        background-color: #3295d4;\n        color: white;\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=\"buttonText\">Texte du bouton:<\/label>\n                    <input type=\"text\" id=\"buttonText\" value=\"Cliquez ici\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"buttonLink\">Lien du bouton:<\/label>\n                    <input type=\"url\" id=\"buttonLink\" value=\"https:\/\/example.com\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"buttonType\">Type de bouton:<\/label>\n                    <select id=\"buttonType\" onchange=\"updateButton()\">\n                        <option value=\"normal\">Normal<\/option>\n                        <option value=\"square\">Carr\u00e9<\/option>\n                        <option value=\"round\">Rond<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"iconType\">Type d'ic\u00f4ne:<\/label>\n                    <select id=\"iconType\" onchange=\"toggleIconInput()\">\n                        <option value=\"none\">Aucune ic\u00f4ne<\/option>\n                        <option value=\"fontawesome\">Font Awesome<\/option>\n                        <option value=\"custom\">URL personnalis\u00e9e<\/option>\n                    <\/select>\n                <\/div>\n                <div id=\"fontAwesomeIconContainer\" style=\"display: none;\">\n                    <label for=\"iconSelect\">S\u00e9lectionner une ic\u00f4ne:<\/label>\n                    <select id=\"iconSelect\" onchange=\"updateButton()\">\n                        <option value=\"\">Aucune ic\u00f4ne<\/option>\n                        <option value=\"fas fa-heart\">C\u0153ur<\/option>\n                        <option value=\"fas fa-star\">\u00c9toile<\/option>\n                        <option value=\"fas fa-check\">Coche<\/option>\n                        <option value=\"fas fa-user\">Utilisateur<\/option>\n                        <option value=\"fas fa-home\">Maison<\/option>\n                        <option value=\"fas fa-shopping-cart\">Panier<\/option>\n                        <option value=\"fas fa-envelope\">Enveloppe<\/option>\n                        <option value=\"fas fa-phone\">T\u00e9l\u00e9phone<\/option>\n                        <option value=\"fas fa-camera\">Appareil photo<\/option>\n                        <option value=\"fas fa-music\">Musique<\/option>\n                        <option value=\"fas fa-search\">Recherche<\/option>\n                        <option value=\"fas fa-cog\">Param\u00e8tres<\/option>\n                        <option value=\"fas fa-bell\">Cloche<\/option>\n                        <option value=\"fas fa-calendar\">Calendrier<\/option>\n                        <option value=\"fas fa-file\">Fichier<\/option>\n                        <option value=\"fas fa-download\">T\u00e9l\u00e9chargement<\/option>\n                        <option value=\"fas fa-upload\">Upload<\/option>\n                        <option value=\"fas fa-lock\">Cadenas<\/option>\n                        <option value=\"fas fa-key\">Cl\u00e9<\/option>\n                        <option value=\"fas fa-thumbs-up\">Pouce en l'air<\/option>\n                    <\/select>\n                <\/div>\n                <div id=\"customIconContainer\" style=\"display: none;\">\n                    <label for=\"customIconUrl\">URL de l'ic\u00f4ne personnalis\u00e9e:<\/label>\n                    <input type=\"url\" id=\"customIconUrl\" oninput=\"updateButton()\" placeholder=\"https:\/\/example.com\/icon.png\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"iconPosition\">Position de l'ic\u00f4ne:<\/label>\n                    <select id=\"iconPosition\" onchange=\"updateButton()\">\n                        <option value=\"left\">Gauche<\/option>\n                        <option value=\"right\">Droite<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"buttonColor\">Couleur du bouton:<\/label>\n                    <input type=\"color\" id=\"buttonColor\" value=\"#3295d4\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"textColor\">Couleur du texte:<\/label>\n                    <input type=\"color\" id=\"textColor\" value=\"#ffffff\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"fontFamily\">Police du texte:<\/label>\n                    <select id=\"fontFamily\" onchange=\"updateButton()\">\n                        <option value=\"Arial, sans-serif\">Arial<\/option>\n                        <option value=\"'Roboto', sans-serif\">Roboto<\/option>\n                        <option value=\"'Open Sans', sans-serif\">Open Sans<\/option>\n                        <option value=\"'Lato', sans-serif\">Lato<\/option>\n                        <option value=\"'Montserrat', sans-serif\">Montserrat<\/option>\n                        <option value=\"'Poppins', sans-serif\">Poppins<\/option>\n                    <\/select>\n                <\/div>\n                <div class=\"device-specific-controls active\" data-device=\"mobile\">\n                    <div class=\"control-group\">\n                        <label for=\"buttonSizeMobile\">Taille du bouton (Mobile):<\/label>\n                        <input type=\"range\" id=\"buttonSizeMobile\" min=\"50\" max=\"300\" value=\"120\" oninput=\"updateButton()\">\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"textSizeMobile\">Taille du texte (Mobile):<\/label>\n                        <input type=\"range\" id=\"textSizeMobile\" min=\"10\" max=\"40\" value=\"16\" oninput=\"updateButton()\">\n                    <\/div>\n                <\/div>\n                <div class=\"device-specific-controls\" data-device=\"tablet\">\n                    <div class=\"control-group\">\n                        <label for=\"buttonSizeTablet\">Taille du bouton (Tablette):<\/label>\n                        <input type=\"range\" id=\"buttonSizeTablet\" min=\"50\" max=\"400\" value=\"180\" oninput=\"updateButton()\">\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"textSizeTablet\">Taille du texte (Tablette):<\/label>\n                        <input type=\"range\" id=\"textSizeTablet\" min=\"10\" max=\"50\" value=\"20\" oninput=\"updateButton()\">\n                    <\/div>\n                <\/div>\n                <div class=\"device-specific-controls\" data-device=\"desktop\">\n                    <div class=\"control-group\">\n                        <label for=\"buttonSizeDesktop\">Taille du bouton (PC):<\/label>\n                        <input type=\"range\" id=\"buttonSizeDesktop\" min=\"50\" max=\"500\" value=\"240\" oninput=\"updateButton()\">\n                    <\/div>\n                    <div class=\"control-group\">\n                        <label for=\"textSizeDesktop\">Taille du texte (PC):<\/label>\n                        <input type=\"range\" id=\"textSizeDesktop\" min=\"10\" max=\"60\" value=\"24\" oninput=\"updateButton()\">\n                    <\/div>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"borderRadius\">Arrondi des coins:<\/label>\n                    <input type=\"range\" id=\"borderRadius\" min=\"0\" max=\"50\" value=\"5\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"buttonPadding\">Espacement interne:<\/label>\n                    <input type=\"range\" id=\"buttonPadding\" min=\"0\" max=\"50\" value=\"10\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"shadowColor\">Couleur de l'ombre:<\/label>\n                    <input type=\"color\" id=\"shadowColor\" value=\"#000000\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"shadowBlur\">Flou de l'ombre:<\/label>\n                    <input type=\"range\" id=\"shadowBlur\" min=\"0\" max=\"20\" value=\"5\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"shadowOffset\">D\u00e9calage de l'ombre:<\/label>\n                    <input type=\"range\" id=\"shadowOffset\" min=\"0\" max=\"20\" value=\"2\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"hoverEffect\">\n                        <input type=\"checkbox\" id=\"hoverEffect\" checked onchange=\"updateButton()\">\n                        Effet au survol\n                    <\/label>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"hoverColor\">Couleur au survol:<\/label>\n                    <input type=\"color\" id=\"hoverColor\" value=\"#2980b9\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"transitionDuration\">Dur\u00e9e de transition:<\/label>\n                    <input type=\"range\" id=\"transitionDuration\" min=\"0\" max=\"1\" step=\"0.1\" value=\"0.3\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"animationEnabled\">\n                        <input type=\"checkbox\" id=\"animationEnabled\" checked onchange=\"updateButton()\">\n                        Animation de pulsation\n                    <\/label>\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"animationDuration\">Dur\u00e9e de l'animation:<\/label>\n                    <input type=\"range\" id=\"animationDuration\" min=\"0.5\" max=\"5\" step=\"0.1\" value=\"1\" oninput=\"updateButton()\">\n                <\/div>\n                <div class=\"control-group\">\n                    <label for=\"animationIterationCount\">Nombre d'it\u00e9rations:<\/label>\n                    <input type=\"number\" id=\"animationIterationCount\" min=\"1\" max=\"infinite\" value=\"infinite\" oninput=\"updateButton()\">\n                <\/div>\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            <a id=\"buttonPreview\" href=\"#\">Cliquez ici<\/a>\n        <\/div>\n    <\/div>\n<\/div>\n<div id=\"notification\" class=\"notification\">Code copi\u00e9 dans le presse-papiers !<\/div>\n\n<script>\nlet sidebarCollapsed = false;\nlet currentDevice = 'mobile';\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 toggleIconInput() {\n    const iconType = document.getElementById('iconType').value;\n    const fontAwesomeIconContainer = document.getElementById('fontAwesomeIconContainer');\n    const customIconContainer = document.getElementById('customIconContainer');\n\n    fontAwesomeIconContainer.style.display = 'none';\n    customIconContainer.style.display = 'none';\n\n    if (iconType === 'fontawesome') {\n        fontAwesomeIconContainer.style.display = 'block';\n    } else if (iconType === 'custom') {\n        customIconContainer.style.display = 'block';\n    }\n\n    updateButton();\n}\n\nfunction updateButton() {\n    const buttonText = document.getElementById('buttonText').value;\n    const buttonLink = document.getElementById('buttonLink').value;\n    const buttonColor = document.getElementById('buttonColor').value;\n    const textColor = document.getElementById('textColor').value;\n    const fontFamily = document.getElementById('fontFamily').value;\n    const size = document.getElementById(`buttonSize${capitalizeFirstLetter(currentDevice)}`).value;\n    const textSize = document.getElementById(`textSize${capitalizeFirstLetter(currentDevice)}`).value;\n    const borderRadius = document.getElementById('borderRadius').value;\n    const buttonPadding = document.getElementById('buttonPadding').value;\n    const shadowColor = document.getElementById('shadowColor').value;\n    const shadowBlur = document.getElementById('shadowBlur').value;\n    const shadowOffset = document.getElementById('shadowOffset').value;\n    const hoverEffect = document.getElementById('hoverEffect').checked;\n    const hoverColor = document.getElementById('hoverColor').value;\n    const transitionDuration = document.getElementById('transitionDuration').value;\n    const iconPosition = document.getElementById('iconPosition').value;\n    const animationEnabled = document.getElementById('animationEnabled').checked;\n    const animationDuration = document.getElementById('animationDuration').value;\n    const animationIterationCount = document.getElementById('animationIterationCount').value;\n    const buttonType = document.getElementById('buttonType').value;\n\n    const buttonPreview = document.getElementById('buttonPreview');\n    buttonPreview.innerHTML = '';\n\n    const iconType = document.getElementById('iconType').value;\n    let iconHtml = '';\n\n    if (iconType === 'fontawesome') {\n        const iconClass = document.getElementById('iconSelect').value;\n        if (iconClass) {\n            iconHtml = `<i class=\"${iconClass}\" style=\"margin-${iconPosition === 'left' ? 'right' : 'left'}: 5px;\"><\/i>`;\n        }\n    } else if (iconType === 'custom') {\n        const customIconUrl = document.getElementById('customIconUrl').value;\n        if (customIconUrl) {\n            iconHtml = `<img decoding=\"async\" src=\"${customIconUrl}\" alt=\"Icon\" style=\"width: 20px; height: 20px; margin-${iconPosition === 'left' ? 'right' : 'left'}: 5px;\">`;\n        }\n    }\n\n    if (iconPosition === 'left') {\n        buttonPreview.innerHTML += iconHtml;\n    }\n    buttonPreview.innerHTML += buttonText;\n    if (iconPosition === 'right') {\n        buttonPreview.innerHTML += iconHtml;\n    }\n    \n    buttonPreview.href = buttonLink;\n    buttonPreview.style.backgroundColor = buttonColor;\n    buttonPreview.style.color = textColor;\n    buttonPreview.style.fontFamily = fontFamily;\n    buttonPreview.style.fontSize = `${textSize}px`;\n    buttonPreview.style.padding = `${buttonPadding}px`;\n    buttonPreview.style.boxShadow = `${shadowOffset}px ${shadowOffset}px ${shadowBlur}px ${shadowColor}`;\n    buttonPreview.style.transition = `all ${transitionDuration}s ease`;\n    buttonPreview.style.border = 'none';\n    buttonPreview.style.cursor = 'pointer';\n    buttonPreview.style.outline = 'none';\n    buttonPreview.style.textDecoration = 'none';\n    buttonPreview.style.display = 'inline-flex';\n    buttonPreview.style.alignItems = 'center';\n    buttonPreview.style.justifyContent = 'center';\n    buttonPreview.style.textAlign = 'center';\n\n    \/\/ Set button type specific styles\n    if (buttonType === 'normal') {\n        buttonPreview.style.borderRadius = `${borderRadius}px`;\n        buttonPreview.style.width = `${size}px`;\n        buttonPreview.style.height = 'auto';\n    } else if (buttonType === 'square') {\n        buttonPreview.style.borderRadius = '0';\n        buttonPreview.style.width = `${size}px`;\n        buttonPreview.style.height = `${size}px`;\n    } else if (buttonType === 'round') {\n        buttonPreview.style.borderRadius = '50%';\n        buttonPreview.style.width = `${size}px`;\n        buttonPreview.style.height = `${size}px`;\n    }\n\n    \/\/ Animation\n    if (animationEnabled) {\n        buttonPreview.style.animation = `pulse ${animationDuration}s ${animationIterationCount}`;\n    } else {\n        buttonPreview.style.animation = 'none';\n    }\n\n    if (hoverEffect) {\n        buttonPreview.addEventListener('mouseenter', function() {\n            this.style.backgroundColor = hoverColor;\n        });\n        buttonPreview.addEventListener('mouseleave', function() {\n            this.style.backgroundColor = buttonColor;\n        });\n    } else {\n        buttonPreview.removeEventListener('mouseenter', null);\n        buttonPreview.removeEventListener('mouseleave', null);\n    }\n\n    updateCodeEditor(buttonText, buttonLink, buttonColor, textColor, fontFamily, size, textSize, borderRadius, buttonPadding, shadowColor, shadowBlur, shadowOffset, hoverEffect, hoverColor, transitionDuration, iconType, iconPosition, animationEnabled, animationDuration, animationIterationCount, buttonType);\n}\n\nfunction updateCodeEditor(buttonText, buttonLink, buttonColor, textColor, fontFamily, size, textSize, borderRadius, buttonPadding, shadowColor, shadowBlur, shadowOffset, hoverEffect, hoverColor, transitionDuration, iconType, iconPosition, animationEnabled, animationDuration, animationIterationCount, buttonType) {\n    let iconHtml = '';\n    if (iconType === 'fontawesome') {\n        const iconClass = document.getElementById('iconSelect').value;\n        if (iconClass) {\n            iconHtml = `<i class=\"${iconClass}\" style=\"margin-${iconPosition === 'left' ? 'right' : 'left'}: 5px;\"><\/i>`;\n        }\n    } else if (iconType === 'custom') {\n        const customIconUrl = document.getElementById('customIconUrl').value;\n        if (customIconUrl) {\n            iconHtml = `<img decoding=\"async\" src=\"${customIconUrl}\" alt=\"Icon\" style=\"width: 20px; height: 20px; margin-${iconPosition === 'left' ? 'right' : 'left'}: 5px;\">`;\n        }\n    }\n\n    let animationCSS = '';\n    if (animationEnabled) {\n        animationCSS = `\n    animation: pulse ${animationDuration}s ${animationIterationCount};`;\n    }\n\n    let buttonTypeCSS = '';\n    if (buttonType === 'normal') {\n        buttonTypeCSS = `\n    border-radius: ${borderRadius}px;\n    width: ${size}px;\n    height: auto;`;\n    } else if (buttonType === 'square') {\n        buttonTypeCSS = `\n    border-radius: 0;\n    width: ${size}px;\n    height: ${size}px;`;\n    } else if (buttonType === 'round') {\n        buttonTypeCSS = `\n    border-radius: 50%;\n    width: ${size}px;\n    height: ${size}px;`;\n    }\n\n    const code = `\n<a href=\"${buttonLink}\" class=\"custom-button\">\n    ${iconPosition === 'left' ? iconHtml : ''}${buttonText}${iconPosition === 'right' ? iconHtml : ''}\n<\/a>\n\n<style>\n.custom-button {\n    background-color: ${buttonColor};\n    color: ${textColor};\n    font-family: ${fontFamily};\n    font-size: ${textSize}px;\n    padding: ${buttonPadding}px;\n    border: none;\n    cursor: pointer;\n    outline: none;\n    box-shadow: ${shadowOffset}px ${shadowOffset}px ${shadowBlur}px ${shadowColor};\n    transition: all ${transitionDuration}s ease;\n    text-decoration: none;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    text-align: center;${animationCSS}${buttonTypeCSS}\n}\n\n${hoverEffect ? `\n.custom-button:hover {\n    background-color: ${hoverColor};\n}\n` : ''}\n\n\/* Styles responsifs *\/\n@media (max-width: 767px) {\n    .custom-button {\n        width: ${document.getElementById('buttonSizeMobile').value}px;\n        font-size: ${document.getElementById('textSizeMobile').value}px;\n    }\n}\n\n@media (min-width: 768px) and (max-width: 1023px) {\n    .custom-button {\n        width: ${document.getElementById('buttonSizeTablet').value}px;\n        font-size: ${document.getElementById('textSizeTablet').value}px;\n    }\n}\n\n@media (min-width: 1024px) {\n    .custom-button {\n        width: ${document.getElementById('buttonSizeDesktop').value}px;\n        font-size: ${document.getElementById('textSizeDesktop').value}px;\n    }\n}\n\n@keyframes pulse {\n    0% { transform: scale(1); }\n    50% { transform: scale(1.05); }\n    100% { transform: scale(1); }\n}\n<\/style>\n`;\n\n    document.getElementById('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    }, 3000);\n}\n\nfunction capitalizeFirstLetter(string) {\n    return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nfunction initDeviceButtons() {\n    const buttons = document.querySelectorAll('.device-button');\n    const controls = document.querySelectorAll('.device-specific-controls');\n    \n    buttons.forEach(button => {\n        button.addEventListener('click', function() {\n            buttons.forEach(btn => btn.classList.remove('active'));\n            controls.forEach(control => control.classList.remove('active'));\n            \n            this.classList.add('active');\n            currentDevice = this.dataset.device;\n            \n            const activeControl = document.querySelector(`.device-specific-controls[data-device=\"${currentDevice}\"]`);\n            activeControl.classList.add('active');\n            \n            updateButton();\n        });\n    });\n}\n\nupdateButton();\ninitDeviceButtons();\n<\/script>\n<\/body><\/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-e96be16 e-flex e-con-boxed e-con e-parent\" data-id=\"e96be16\" 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-3c7510d elementor-widget elementor-widget-heading\" data-id=\"3c7510d\" 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 bouton 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-644ab56 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=\"644ab56\" 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-644ab56\" class=\"eael-post-grid-container\">\n            <div class=\"eael-post-grid eael-post-appender eael-post-appender-644ab56 eael-post-grid-style-three\" data-layout-mode=\"masonry\"><article class=\"eael-grid-post  eael-post-grid-column eael-pg-post-921 category-bouton-html-css-js-generator\" data-id=\"921\">\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\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/\"><\/a><\/div><div class=\"eael-entry-thumbnail eael-image-ratio\">\n                 <img fetchpriority=\"high\" decoding=\"async\" width=\"300\" height=\"236\" src=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton-300x236.png\" class=\"attachment-medium size-medium wp-image-922\" alt=\"Bouton interactif avec ic\u00f4ne et animation en HTML, CSS et JavaScript\" srcset=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton-300x236.png 300w, https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.png 490w\" 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\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/\" title=\"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS\">Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS<\/a><\/h4><\/header><div class=\"eael-entry-content\">\n                        <div class=\"eael-grid-post-excerpt\"><a href=\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/\" 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-915 category-bouton-html-css-js-generator\" data-id=\"915\">\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-bouton-matrix-en-html-css-js-avec-smileys\/\"><\/a><\/div><div class=\"eael-entry-thumbnail eael-image-ratio\">\n                 <img decoding=\"async\" width=\"300\" height=\"251\" src=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Matrix-bouton-300x251.png\" class=\"attachment-medium size-medium wp-image-916\" alt=\"Bouton Matrix personnalisable avec HTML, CSS et JavaScript\" srcset=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Matrix-bouton-300x251.png 300w, https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Matrix-bouton.png 402w\" 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-bouton-matrix-en-html-css-js-avec-smileys\/\" title=\"G\u00e9n\u00e9rateur de Bouton Matrix en HTML, CSS, JS avec Smileys\">G\u00e9n\u00e9rateur de Bouton Matrix en HTML, CSS, JS avec Smileys<\/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-bouton-matrix-en-html-css-js-avec-smileys\/\" 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-905 category-bouton-html-css-js-generator\" data-id=\"905\">\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-bouton-neon-en-html-css-js\/\"><\/a><\/div><div class=\"eael-entry-thumbnail eael-image-ratio\">\n                 <img decoding=\"async\" width=\"300\" height=\"232\" src=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Neon-bouton-html-300x232.png\" class=\"attachment-medium size-medium wp-image-906\" alt=\"Bouton n\u00e9on personnalisable avec HTML, CSS et JavaScript\" srcset=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Neon-bouton-html-300x232.png 300w, https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Neon-bouton-html.png 426w\" 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-bouton-neon-en-html-css-js\/\" title=\"G\u00e9n\u00e9rateur de Bouton N\u00e9on en HTML, CSS, JS\">G\u00e9n\u00e9rateur de Bouton N\u00e9on en HTML, CSS, JS<\/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-bouton-neon-en-html-css-js\/\" 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-644ab56\" data-widget-id=\"644ab56\" data-widget=\"644ab56\" data-page-id=\"921\" 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=6&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 Bouton Responsive avec Ic\u00f4ne et Animation Mobile Tablette PC Texte du bouton: Lien du bouton: Type de bouton: NormalCarr\u00e9Rond Type d&rsquo;ic\u00f4ne: Aucune ic\u00f4neFont AwesomeURL personnalis\u00e9e S\u00e9lectionner une ic\u00f4ne: Aucune ic\u00f4neC\u0153ur\u00c9toileCocheUtilisateurMaisonPanierEnveloppeT\u00e9l\u00e9phoneAppareil photoMusiqueRechercheParam\u00e8tresClocheCalendrierFichierT\u00e9l\u00e9chargementUploadCadenasCl\u00e9Pouce en l&rsquo;air URL de l&rsquo;ic\u00f4ne personnalis\u00e9e: Position de l&rsquo;ic\u00f4ne: GaucheDroite Couleur du bouton: Couleur du texte: Police du texte: ArialRobotoOpen SansLatoMontserratPoppins Taille [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":922,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"footnotes":""},"categories":[6,5],"tags":[],"class_list":["post-921","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bouton","category-html-css-js-generator"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS - Web Extractor<\/title>\n<meta name=\"description\" content=\"Cr\u00e9ez des boutons responsive et interactifs avec ic\u00f4nes et animations personnalis\u00e9es en utilisant HTML, CSS et JavaScript.\" \/>\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\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS - Web Extractor\" \/>\n<meta property=\"og:description\" content=\"Cr\u00e9ez des boutons responsive et interactifs avec ic\u00f4nes et animations personnalis\u00e9es en utilisant HTML, CSS et JavaScript.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Extractor\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-03T15:56:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-04T10:05:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.png\" \/>\n\t<meta property=\"og:image:width\" content=\"490\" \/>\n\t<meta property=\"og:image:height\" content=\"386\" \/>\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\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/\",\"name\":\"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS - Web Extractor\",\"isPartOf\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.webp\",\"datePublished\":\"2024-09-03T15:56:27+00:00\",\"dateModified\":\"2024-09-04T10:05:37+00:00\",\"author\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48\"},\"description\":\"Cr\u00e9ez des boutons responsive et interactifs avec ic\u00f4nes et animations personnalis\u00e9es en utilisant HTML, CSS et JavaScript.\",\"breadcrumb\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#primaryimage\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.webp\",\"contentUrl\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.webp\",\"width\":490,\"height\":386,\"caption\":\"Exemple de Bouton Responsive avec Ic\u00f4ne et Animation\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/pacific-webtools.com\/web-extractor\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS\"}]},{\"@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":"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS - Web Extractor","description":"Cr\u00e9ez des boutons responsive et interactifs avec ic\u00f4nes et animations personnalis\u00e9es en utilisant HTML, CSS et JavaScript.","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\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/","og_locale":"fr_FR","og_type":"article","og_title":"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS - Web Extractor","og_description":"Cr\u00e9ez des boutons responsive et interactifs avec ic\u00f4nes et animations personnalis\u00e9es en utilisant HTML, CSS et JavaScript.","og_url":"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/","og_site_name":"Web Extractor","article_published_time":"2024-09-03T15:56:27+00:00","article_modified_time":"2024-09-04T10:05:37+00:00","og_image":[{"width":490,"height":386,"url":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.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\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/","url":"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/","name":"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS - Web Extractor","isPartOf":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#primaryimage"},"image":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#primaryimage"},"thumbnailUrl":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.webp","datePublished":"2024-09-03T15:56:27+00:00","dateModified":"2024-09-04T10:05:37+00:00","author":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48"},"description":"Cr\u00e9ez des boutons responsive et interactifs avec ic\u00f4nes et animations personnalis\u00e9es en utilisant HTML, CSS et JavaScript.","breadcrumb":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#primaryimage","url":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.webp","contentUrl":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Simple-bouton.webp","width":490,"height":386,"caption":"Exemple de Bouton Responsive avec Ic\u00f4ne et Animation"},{"@type":"BreadcrumbList","@id":"https:\/\/pacific-webtools.com\/web-extractor\/bouton-responsive-avec-icone-et-animation-en-html-css-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pacific-webtools.com\/web-extractor\/"},{"@type":"ListItem","position":2,"name":"Bouton Responsive avec Ic\u00f4ne et Animation en HTML, CSS, JS"}]},{"@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\/921"}],"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=921"}],"version-history":[{"count":10,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/921\/revisions"}],"predecessor-version":[{"id":1122,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/921\/revisions\/1122"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/media\/922"}],"wp:attachment":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/media?parent=921"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/categories?post=921"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/tags?post=921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}