{"id":6638,"date":"2019-08-02T16:07:48","date_gmt":"2019-08-02T15:07:48","guid":{"rendered":"https:\/\/www.prodpad.com\/?p=6638"},"modified":"2025-01-13T16:27:08","modified_gmt":"2025-01-13T16:27:08","slug":"customising-your-cfp-widget","status":"publish","type":"post","link":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/","title":{"rendered":"Customizing your CFP Widget (Blog 2 of 2, finally!)"},"content":{"rendered":"\n<p><br><br>In the <a href=\"https:\/\/www.prodpad.com\/blog\/cfp-widget\/\">first tutorial<\/a> I talked about going beyond the basic styling for ProdPad&#8217;s Customer Feedback Widget to customizing your widget visually and making it your own.<br><br>In this tutorial, I\u2019m going to explain how to:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Set up a custom trigger for your widget&nbsp;<\/li>\n\n\n\n<li>Creating a help menu that triggers the popup feedback form (which we used to have in our app)<\/li>\n<\/ol>\n\n\n\n<p><strong>For this tutorial, all you\u2019ll need is\u2026<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Your widget embed code<\/li>\n\n\n\n<li>Access to your own codebase<\/li>\n\n\n\n<li>A text editor (I use Visual Studio Editor)&nbsp;<\/li>\n\n\n\n<li>A basic understanding of HTML JS and CSS<\/li>\n\n\n\n<li>Another good cup of coffee!<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-setting-up-a-custom-trigger\">Setting up a custom trigger<\/h2>\n\n\n\n<p>Ok, so you have your widget, but you want to trigger the popup feedback form from another element on your page; this might be a different button or a text link like this:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1155\" height=\"673\" src=\"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/image1-1.gif\" alt=\"Customer feedback portal widget\" class=\"wp-image-6648\"\/><\/figure>\n\n\n\n<p>First of all, we want to create a listener in JS for any element clicks. I\u2019m going to use a specific class (so that it\u2019s reusable in multiple places across the page) and mimic the functionality of clicking on our existing widget button. But, you could use an ID if you only wanted to trigger it from a single point on your page.\u00a0<br><br>I\u2019m going to use a class with the name trigger Widget. You can use whatever name you like, just make sure you update the relevant references in the script and HTML.\u00a0<br><br><strong>Note<\/strong>: I\u2019m using a class rather than an ID in case you want to trigger the widget from multiple places.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-with-pure-javascript\"><strong>With pure JavaScript:<\/strong><\/h4>\n\n\n\n<pre class=\"language-js\"><code class=\"language-js\"><script type=\"text\/javascript\">document.querySelectorAll('.triggerWidget').forEach(e => {\n   \/\/ Add a 'click' event listener to each \u2018triggerWidget\u2019\n   e.addEventListener('click', function() { \/\/ on click...\n\n       \/\/ Set a variable for the 'event' that triggers the dialog \n       var openEvent = new CustomEvent('openDialog', {});\n\n       \/\/ Send the event to the customer feedback widget to open the dialog\n       document.querySelector('[data-pp-cfiw-widget]').dispatchEvent(openEvent);\n   });\n});\n<\/script><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-or-if-you-re-using-jquery\"><strong>Or if you\u2019re using JQuery:<\/strong><\/h4>\n\n\n\n<pre class=\"language-js\"><code class=\"language-js\"><script type=\"text\/javascript\">$('.triggerWidget').click(function(){\n   \/\/ Trigger a click action on our generated widget button\n    $('#pp-cfpiaw-trigger').trigger('click');\n  \/\/ Prevent any default browser behaviour  \n   return false;\n});\n<\/script><\/code><\/pre>\n\n\n\n<p>Now let\u2019s add our class to the HTML wherever we want to trigger the popup feedback form on click:<\/p>\n\n\n\n<pre rel=\"HTML\" class=\"language-html\"><code class=\"language-html\">&lt;p&gt;Like this demo? &lt;a href=\"#\" class=\"triggerWidget\"&gt;Send me some feedback!&lt;\/a&gt;&lt;\/p&gt;\n<\/code><\/pre>\n\n\n\n<p>Hurrah! The feedback form should now be triggering where you want it to.<br><br>If you want to hide our initial generated feedback button &#8211; simply go ahead and hide it via CSS so that it is no longer visually showing on the page:<\/p>\n\n\n\n<pre class=\"language-css\"><code class=\"language-css\">#pp-cfpiaw-trigger {\n  display:none;\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Note<\/strong>: we\u2019re not removing it from the DOM as we need it for the previous script to trigger clicks.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-creating-a-help-menu-that-triggers-the-popup-feedback-form\">Creating a help menu that triggers the popup feedback form<\/h2>\n\n\n\n<p>Now that we know how to create a custom trigger, we can do some pretty awesome stuff like create a help menu with a link that triggers our popup feedback form.\u00a0<br><br>You can style this however you want, but I\u2019m going to show you roughly what we used in ProdPad (before we launched our Intercom help tool):<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1419\" height=\"517\" src=\"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/image4.gif\" alt=\"Creating a help menu that triggers the popup feedback form\" class=\"wp-image-6649\"\/><\/figure>\n\n\n\n<p>First of all we need to create the button that acts as our help menu trigger.\u00a0<br><br>We have a custom font for our icons in ProdPad, but for this demo I\u2019ll just use <a href=\"https:\/\/fontawesome.com\/\">FontAwesome<\/a>. You don\u2019t have to use a font here, you could use an image, pure CSS or anything else you want!<br><br>Let\u2019s create a blue circle with a white ? graphic which looks a little like this:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Image-2019-08-01-at-12.56.33-pm.png\" alt=\"The white circle graphic\" class=\"wp-image-6641\" width=\"78\" height=\"74\"\/><\/figure>\n<\/div>\n\n\n<h4>HTML:<\/h4>\n<pre class=\"language-html\"><code class=\"language-html\">&lt;button class=\"help-btn\"&gt; \n    &lt;i class=\"fas fa-question\"&gt;&lt;\/i&gt;\n&lt;\/button&gt;\n<\/code><\/pre>\n<h4>CSS:<\/h4>\n<pre class=\"language-css\"><code class=\"language-css\">.help-btn {\n     background-color: #25a7d9;\n     color: #fff;\n     border: none;\n     border-radius: 50%;\n     height: 40px;\n     width: 40px;\n     outline: 0;\n }\n \n .help-btn .fas {\n     font-size: 20px;\n }\n<\/code><\/pre>\n\n\n\n<p>We could make this button a custom trigger for the popup feedback form if we wanted to, but we want a popup help menu. So, let\u2019s create our menu:<\/p>\n\n\n\n<h4>HTML:<\/h4>\n<pre class=\"language-html\"><code class=\"language-html\">&lt;div class=\"help-btn-wrapper\"&gt; \n    &lt;button class=\"help-btn\"&gt; &lt;i class=\"fas fa-question\"&gt;&lt;\/i&gt; &lt;\/button&gt; \n    &lt;div class=\"help-menu\"&gt; \n        &lt;ul&gt; \n            &lt;li&gt; &lt;a href=\u201d#\u201d&gt; Send us your ideas&lt;\/a&gt; &lt;\/li&gt; \n            &lt;li&gt; &lt;a href=\u201dhttps:\/\/help.prodpad.com\u201d&gt; Visit the Help Center&lt;\/a&gt; &lt;\/li&gt; \n        &lt;\/ul&gt; \n    &lt;\/div&gt;\n&lt;\/div&gt;\n<\/code>\n<\/pre>\n\n\n\n<h4>CSS:<\/h4>\n<pre class=\"language-css\"><code class=\"language-css\">.help-menu {\n    width: 260px;\n    background: white;\n    position: absolute;\n    bottom: 49px;\n    right: 0;\n    border: 1px solid #ddd;\n    border-radius: 4px;\n}\n\n.help-menu ul {\n    margin: 0;\n    padding: 12px 8px;\n}\n\n.help-menu li {\n    list-style: none;\n    font-size: 14px;\n}\n\n.help-menu a {\n    text-decoration: none;\n    padding: 4px 8px;\n    display: block;\n}\n\n.help-menu:after,\n.help-menu:before {\n    top: 100%;\n    border: solid transparent;\n    content: \" \";\n    height: 0;\n    width: 0;\n    position: absolute;\n    pointer-events: none;\n}\n\n.help-menu:after {\n    right: 10px;\n}\n\n.help-menu:before {\n    right: 9px;\n}\n\n.help-menu:after {\n    border-color: rgba(136, 183, 213, 0);\n    border-top-color: #fff;\n    border-width: 8px;\n    margin-left: -8px;\n}\n\n.help-menu:before {\n    border-color: rgba(221, 221, 221, 0);\n    border-top-color: #ddd;\n    border-width: 9px;\n    margin-left: -9px;\n}\n<\/code><\/pre>\n\n\n\n<p>It looks like a lot of CSS, but that\u2019s just because I\u2019ve added a nice little triangle indicator with the help of <a href=\"http:\/\/www.cssarrowplease.com\/\">cssarrowplease<\/a> to my box. This makes it look more like a menu. You could just remove all the pseudo elements if you don\u2019t want the arrow.<\/p>\n\n\n\n<p>It\u2019s going to look a little odd at the minute, with our menu somewhere down the bottom and our custom button at the top; we\u2019ll now want to position everything. I\u2019m going to create a wrapper called \u201chelp-btn-wrapper\u201d that will help us position the button and the menu bottom right of the viewport and fix it:<\/p>\n\n\n\n<h4>HTML:<\/h4>\n<pre class=\"language-html\"><code class=\"language-html\">&lt;div class=\"help-btn-wrapper\"&gt; \n    &lt;button class=\"help-btn\"&gt; &lt;i class=\"fas fa-question\"&gt;&lt;\/i&gt; &lt;\/button&gt; \n    &lt;div class=\"help-menu\"&gt; \n        &lt;ul&gt; \n            &lt;li&gt; &lt;a href=\u201d#\u201d&gt; Send us your ideas&lt;\/a&gt; &lt;\/li&gt; \n            &lt;li&gt;&lt;a href=\u201dhttps:\/\/help.prodpad.com\u201d&gt; Visit the Help Center&lt;\/a&gt; &lt;\/li&gt; \n        &lt;\/ul&gt; \n    &lt;\/div&gt;\n&lt;\/div&gt;\n<\/code><\/pre>\n\n\n\n<h4>CSS:<\/h4>\n<pre class=\"language-css\"><code class=\"language-css\">.help-btn-wrapper {\n    position:fixed;\n    right:24px;\n    bottom:24px;\n }\n<\/code><\/pre>\n\n\n\n<p>Now, we should have something like this:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Image-2019-08-01-at-2.59.47-pm.png\" alt=\"This is what your help center widget should look like.\" class=\"wp-image-6642\" width=\"355\" height=\"175\" srcset=\"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Image-2019-08-01-at-2.59.47-pm.png 592w, https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Image-2019-08-01-at-2.59.47-pm-300x148.png 300w\" sizes=\"auto, (max-width: 355px) 100vw, 355px\" \/><\/figure>\n<\/div>\n\n\n<p>I\u2019ve already linked the second menu item to our help centre, but this could be whatever you want it to be. Now we\u2019re interested in triggering the popup feedback form. Using the class and script from the previous &#8220;Setting up a custom trigger\u201d section we can hook up the first link to trigger our popup:<br><\/p>\n\n\n\n<pre class=\"language-html\"><code class=\"language-html\">&lt;a href=\"#\" class=\"triggerWidget\"&gt; Send us your ideas&lt;\/a&gt;\n<\/code><\/pre>\n\n\n\n<p>We probably don\u2019t want to have an ever-present menu, so I\u2019m just going to add some script to toggle this on and off:<\/p>\n\n\n\n<h4>CSS:<\/h4>\n<pre class=\"language-css\"><code class=\"language-css\">.help-btn-menu-active .help-menu {\n    display:block;\n}\n\n.help-menu {\n    width:260px;\n    background:white;\n    position:absolute;\n    bottom:49px;\n    right:0;\n    border:1px solid #ddd;\n    border-radius:4px;\n    Display:none; \/\/Add this\n}\n<\/code><\/pre>\n\n\n\n<h4>JavaScript:<\/h4>\n<pre class=\"language-js\"><code class=\"language-js\">document.addEventListener(\"DOMContentLoaded\", function(event) {\n    var helpBtnTrigger = document.getElementById(\"helpBtn\");\n\n    helpBtnTrigger.addEventListener(\"click\", function() {\n        helpBtnTrigger.classList.toggle(\"help-btn-menu-active\");\n    });\n});\n<\/code><\/pre>\n\n\n\n<h4>JQuery:<\/h4>\n<pre class=\"language-js\"><code class=\"language-js\">$('.help-btn').click(function(){\n   $(this).closest('.help-btn-wrapper').toggleClass('help-btn-menu-active');\n   return false;\n});\n<\/code><\/pre>\n\n\n\n<p>Your menu should be working like a menu now. We could go further and improve the UX a little by swapping the ? to an X when the menu is open, to indicate to the user how to close the menu:<\/p>\n\n\n\n<h4>HTML:<\/h4>\n<pre class=\"language-html\"><code class=\"language-html\">&lt;button aria-label=\"Help Menu\" class=\"help-btn\"&gt; &lt;i class=\"fas fa-question\"&gt;&lt;\/i&gt; &lt;i class=\"fas fa-times\"&gt;&lt;\/i&gt; &lt;\/button&gt;\n<\/code><\/pre>\n\n\n\n<h4>CSS:<\/h4>\n<pre class=\"language-css\"><code class=\"language-css\">.fa-times {\n    display:none;\n}\n\n.help-btn-menu-active .fa-times {\n    display:block;\n}\n\n.help-btn-menu-active .fa-question {\n    display:none;\n}\n<\/code><\/pre>\n\n\n\n<p>That\u2019s all for this tutorial, I hope this has shown you how to customise our free <a href=\"https:\/\/help.prodpad.com\/article\/754-customize-feedback-portal\" target=\"_blank\" rel=\"noreferrer noopener\">Customer Feedback Portal Widget.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the first tutorial I talked about going beyond the basic styling for ProdPad&#8217;s Customer Feedback Widget to customizing your widget visually and making it your own. In this tutorial,&hellip;<\/p>\n","protected":false},"author":18,"featured_media":6654,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[8],"tags":[],"pp_uni_tag":[],"class_list":["post-6638","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-prodpad-news"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Tutorial | Customising your CFP Widget, part two of two<\/title>\n<meta name=\"description\" content=\"In this second part, we look at: setting up a custom trigger for your widget, and creating a help menu that triggers the popup feedback from.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Customising your CFP Widget (Blog 2 of 2\u2026 finally!)\" \/>\n<meta property=\"og:description\" content=\"We look at: setting up a custom trigger for your widget, and creating a help menu that triggers the popup feedback from.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/\" \/>\n<meta property=\"og:site_name\" content=\"ProdPad\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ProdPad\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-08-02T15:07:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-13T16:27:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Facebook-CFP.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Danielle Vautier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Customising your CFP Widget (Blog 2 of 2\u2026 finally!)\" \/>\n<meta name=\"twitter:description\" content=\"We look at: setting up a custom trigger for your widget, and creating a help menu that triggers the popup feedback from.\" \/>\n<meta name=\"twitter:creator\" content=\"@daniellevautier\" \/>\n<meta name=\"twitter:site\" content=\"@prodpad\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Danielle Vautier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tutorial | Customising your CFP Widget, part two of two","description":"In this second part, we look at: setting up a custom trigger for your widget, and creating a help menu that triggers the popup feedback from.","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:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/","og_locale":"en_US","og_type":"article","og_title":"Customising your CFP Widget (Blog 2 of 2\u2026 finally!)","og_description":"We look at: setting up a custom trigger for your widget, and creating a help menu that triggers the popup feedback from.","og_url":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/","og_site_name":"ProdPad","article_publisher":"https:\/\/www.facebook.com\/ProdPad\/","article_published_time":"2019-08-02T15:07:48+00:00","article_modified_time":"2025-01-13T16:27:08+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Facebook-CFP.png","type":"image\/png"}],"author":"Danielle Vautier","twitter_card":"summary_large_image","twitter_title":"Customising your CFP Widget (Blog 2 of 2\u2026 finally!)","twitter_description":"We look at: setting up a custom trigger for your widget, and creating a help menu that triggers the popup feedback from.","twitter_creator":"@daniellevautier","twitter_site":"@prodpad","twitter_misc":{"Written by":"Danielle Vautier","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/#article","isPartOf":{"@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/"},"author":{"name":"Danielle Vautier","@id":"https:\/\/www.prodpad.com\/#\/schema\/person\/cb52a76af8dc0afe205180f8b5b22b3f"},"headline":"Customizing your CFP Widget (Blog 2 of 2, finally!)","datePublished":"2019-08-02T15:07:48+00:00","dateModified":"2025-01-13T16:27:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/"},"wordCount":800,"publisher":{"@id":"https:\/\/www.prodpad.com\/#organization"},"image":{"@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/#primaryimage"},"thumbnailUrl":"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Blog-CFP.jpg","articleSection":["ProdPad News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/","url":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/","name":"Tutorial | Customising your CFP Widget, part two of two","isPartOf":{"@id":"https:\/\/www.prodpad.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/#primaryimage"},"image":{"@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/#primaryimage"},"thumbnailUrl":"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Blog-CFP.jpg","datePublished":"2019-08-02T15:07:48+00:00","dateModified":"2025-01-13T16:27:08+00:00","description":"In this second part, we look at: setting up a custom trigger for your widget, and creating a help menu that triggers the popup feedback from.","breadcrumb":{"@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/#primaryimage","url":"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Blog-CFP.jpg","contentUrl":"https:\/\/www.prodpad.com\/wp-content\/uploads\/2019\/08\/Blog-CFP.jpg","width":1920,"height":710,"caption":"Customizing your CFP Widget"},{"@type":"BreadcrumbList","@id":"https:\/\/www.prodpad.com\/blog\/customising-your-cfp-widget\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Latest Blogs","item":"https:\/\/www.prodpad.com\/blog\/category\/latest-blogs\/"},{"@type":"ListItem","position":2,"name":"ProdPad News","item":"https:\/\/www.prodpad.com\/blog\/category\/latest-blogs\/prodpad-news\/"},{"@type":"ListItem","position":3,"name":"Customizing your CFP Widget (Blog 2 of 2, finally!)"}]},{"@type":"WebSite","@id":"https:\/\/www.prodpad.com\/#website","url":"https:\/\/www.prodpad.com\/","name":"ProdPad","description":"Product Management Software","publisher":{"@id":"https:\/\/www.prodpad.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.prodpad.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.prodpad.com\/#organization","name":"ProdPad","url":"https:\/\/www.prodpad.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.prodpad.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.prodpad.com\/wp-content\/uploads\/2018\/12\/blue-full.png","contentUrl":"https:\/\/www.prodpad.com\/wp-content\/uploads\/2018\/12\/blue-full.png","width":2050,"height":400,"caption":"ProdPad"},"image":{"@id":"https:\/\/www.prodpad.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ProdPad\/","https:\/\/x.com\/prodpad","https:\/\/instagram.com\/prodpad","https:\/\/www.linkedin.com\/company\/prodpad\/","https:\/\/www.youtube.com\/channel\/UCXHOx5Ed-6sHPujypIlhdMA"]},{"@type":"Person","@id":"https:\/\/www.prodpad.com\/#\/schema\/person\/cb52a76af8dc0afe205180f8b5b22b3f","name":"Danielle Vautier","description":"Danielle is a Team Lead &amp; UI Developer here at ProdPad. She's an avid baker, cat whisperer and CSS wizard. She writes about CSS, accessibility and front-end magic.","sameAs":["https:\/\/x.com\/daniellevautier"],"url":"https:\/\/www.prodpad.com\/blog\/author\/danielle-vautier\/"}]}},"_links":{"self":[{"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/posts\/6638","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/comments?post=6638"}],"version-history":[{"count":0,"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/posts\/6638\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/media\/6654"}],"wp:attachment":[{"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/media?parent=6638"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/categories?post=6638"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/tags?post=6638"},{"taxonomy":"pp_uni_tag","embeddable":true,"href":"https:\/\/www.prodpad.com\/wp-json\/wp\/v2\/pp_uni_tag?post=6638"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}