{"id":11742,"date":"2014-05-14T12:38:59","date_gmt":"2014-05-14T10:38:59","guid":{"rendered":"https:\/\/blog.trifork.com\/?p=11742"},"modified":"2014-05-14T12:38:59","modified_gmt":"2014-05-14T10:38:59","slug":"advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way","status":"publish","type":"post","link":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/","title":{"rendered":"Advanced theming: dynamic SVG backgrounds with SASS, the right way!"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"float: left;margin-right: 10px\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png\" alt=\"SVG Logo\" width=\"100\" height=\"100\">Theming an application is easy, right? A solution like <a href=\"http:\/\/sass-lang.com\/\">SASS<\/a> allows you to define variables like colors and sizes in your CSS and then compile them into your theme\/template. However, this doesn&#8217;t work for images, especially if you want to go further than just using a transparent PNG. For a product or solution to be truly dynamic in colors and styling, you want to be able to use the same variables and apply them to the background images for your icons that you want to have the theme colors. People typically resort to writing a batch script for Photoshop, that does the work for you. Or even have your designer create the images manually. These solutions will require that you put a designer on every project which makes use of your product\/solution even for minor color changes, this doesn&#8217;t sound efficient does it? However, there is a more elegant solution and has something to do with SVG&#8230; Lets look at a real usecase below.<!--more--><\/p>\n<h3>Why do we even want this?<\/h3>\n<p>In our case we&nbsp;were looking for a really dynamic styling solution for the <a href=\"http:\/\/www.trifork.nl\/en\/home\/products\/education\/ims-question-test-interoperability.html\" target=\"_blank\" rel=\"noopener\">QTI Engine<\/a>&nbsp;since we use this for multiple customers with different color schemes. With the QTI Engine we first started off with SASS and Compass to have dynamic stylesheets, which is fine&nbsp;to&nbsp;some point. Somehow&nbsp;it felt like things could be easier than recreating new images for every customer. In the example below you can see what we try to accomplish.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11858\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/05\/qti-example-svg.jpg\" alt=\"qti-example-svg\" width=\"570\" height=\"273\" srcset=\"https:\/\/trifork.nl\/blog\/wp-content\/uploads\/sites\/3\/2014\/05\/qti-example-svg.jpg 570w, https:\/\/trifork.nl\/blog\/wp-content\/uploads\/sites\/3\/2014\/05\/qti-example-svg-300x144.jpg 300w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/p>\n<h3>First steps<\/h3>\n<p>First we looked into&nbsp;a solution with PNG images, but that did not work out because for an arrow you can only actually create a mask with the PNG standards. Then SVG came to mind as the images we need are mainly shapes. We played around with using the SVG as a separate file, but that did not work out as we were not able to change its color. Another way was inline SVG, to put variables in the HTML, but then we needed to use javascript or another coding language to mess around with styling, this is not what we prefer. Finally I&nbsp;tried to use SVG as a CSS inline background image, this looked promising!<\/p>\n<p>As Google&#8217;s Chrome&nbsp;is my browser of choice I tested the code here first and the results looked promising. Of course Internet Exlorer (9 and higher)&nbsp;did not&nbsp;cooperate.<\/p>\n<p><strong>My first test results:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11771\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/04\/check.png\" alt=\"check\" width=\"18\" height=\"18\"><\/td>\n<td>Chrome<\/td>\n<\/tr>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11771\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/04\/check.png\" alt=\"check\" width=\"18\" height=\"18\"><\/td>\n<td>Firefox<\/td>\n<\/tr>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11771\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/04\/check.png\" alt=\"check\" width=\"18\" height=\"18\"><\/td>\n<td>Safari<\/td>\n<\/tr>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11771\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/04\/cross.png\" alt=\"check\" width=\"18\" height=\"18\"><\/td>\n<td>Internet Explorer (9 and higher)<\/td>\n<\/tr>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11771\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/04\/check.png\" alt=\"check\" width=\"18\" height=\"18\"><\/td>\n<td>iOS browsers<\/td>\n<\/tr>\n<tr>\n<td><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11771\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/04\/check.png\" alt=\"check\" width=\"18\" height=\"18\"><\/td>\n<td>Android browsers<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Finding a crossbrowser supported solution<\/h3>\n<p>As of the moment I found out this solution works for all other browsers (except IE), I was determined to look into a crossbrowser solution. So I dropped my focus for all other browsers and started to look into Internet Explorer and more specific why Internet Explorer did not show the SVG as a background image with this technique.<\/p>\n<p>When I did some searching on the web I came by&nbsp;some articles&nbsp;which really made me understand why Internet Explorer has been such a hassle. Internet Explorer needs <em>URL escaping<\/em> to support inline SVG background images, but how does that affect other browsers&nbsp;if you URL escape a SVG(XML) string?&nbsp;Will this still work for Chrome, Firefox and the others?&nbsp;I created the sample below to show you how the SVG background with dynamic colors works. There are some guidelines to follow, but let us first look at the example.<\/p>\n<h3><strong>SVG with dynamic coloring<\/strong><\/h3>\n<p>[codepen_embed height=&#8221;181&#8243; theme_id=&#8221;5714&#8243; slug_hash=&#8221;iLwhn&#8221; default_tab=&#8221;result&#8221;]See the Pen &lt;a href=&#8217;http:\/\/codepen.io\/dennisdegoede\/pen\/iLwhn\/&#8217;&gt;Dynamic SVG with SASS&lt;\/a&gt; by Dennis de Goede (&lt;a href=&#8217;http:\/\/codepen.io\/dennisdegoede&#8217;&gt;@dennisdegoede&lt;\/a&gt;) on &lt;a href=&#8217;http:\/\/codepen.io&#8217;&gt;CodePen&lt;\/a&gt;.[\/codepen_embed]<\/p>\n<p>In the example above you see how you can use defined variables within your URL encoded SVG string. Especially with colors you should be mindful on what will work and what doesn&#8217;t, for example in my trials I found out that&nbsp;when using the HEX color format the <span style=\"color: #ff0000\"><em><strong>#<\/strong><\/em><\/span>(hash) has to be escaped as well, this means the hash should be excluded from your variable or you should use another color format.<\/p>\n<p>When switching to RGBa I found out something particular for Internet Explorer; normally you would use a number between 0 and 1 for the alpha channel, but when using this value as a color for SVG it doesn&#8217;t seam to support 1(or 1.0\/1,0) for 100% alpha. Using values between 0 and 0.9999 do work as you would expect them to, so for 100% I used 0.9999 in my example.<\/p>\n<p>Finding these issues with RGBa made me wonder what issues I would find when switching to HSL. HSL&nbsp;has the same problem as HEX color, it requires a character that needs to be escaped, in this case the <span style=\"color: #ff0000\"><em><strong>%<\/strong><\/em><\/span>(percentage) character.<\/p>\n<p>Named colors (like red or blue) are the easiest as they just work (they&nbsp;only contain alphabetic&nbsp;characters).<\/p>\n<h3>The approach<\/h3>\n<p>What steps do you need to take to create your own dynamic SVG background image? Well it is important to follow a certain pattern, otherwise you will run into problems (especially&nbsp;for Internet Explorer). Let&#8217;s look at the pattern that works for me:<\/p>\n<ol>\n<li>Open the SVG file in a text editor of your choice (e.g. Sublime Text, Notepad++ or your IDE).<\/li>\n<li>Replace all double quotes with single quotes, because you need your variables single quoted before you URL encode your SVG string.<\/li>\n<li>Create text markers in your SVG, which you can&nbsp;easily replace later with your SASS variable (e.g. fill=&#8217;bgColorLeft&#8217;).<\/li>\n<li>URL Encode your SVG (this step is required for a IE9 proof solution), which you can do <a href=\"http:\/\/www.albionresearch.com\/misc\/urlencode.php\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/li>\n<li>Replace the markers that you created earlier (bgColorLeft) with a SASS variable using the SASS&nbsp;syntax (e.g. fill=&#8217;#{$nameOfYourVariable}&#8217;).<\/li>\n<li>Now for you background image url use the following syntax:&nbsp;<strong>url(&#8220;data:image\/svg+xml,&nbsp;<\/strong>and&nbsp;<strong>&#8220;);<\/strong><\/li>\n<\/ol>\n<p>This example uses color, but you could extend this to sizes, strokes, fonts, etc.<\/p>\n<h3>Let&#8217;s combine what we&#8217;ve learned and what we need!<\/h3>\n<p>To show you how we actually use the navigation (active) marker in the QTI engine I&#8217;ve set up an example on how we implemented the marker.<\/p>\n<p>In the example we use different colors in our classes,&nbsp;normally you would just overwrite this variable in your theme. On the second marker we have done some SVG transformations. The 3rd marker has another value that determines the strength of the shadow and as for the 4th marker, it doesn&#8217;t have a shadow (modern browsers only) behind the marker.<\/p>\n<p>[codepen_embed height=&#8221;232&#8243; theme_id=&#8221;5714&#8243; slug_hash=&#8221;wbqEd&#8221; default_tab=&#8221;result&#8221;]See the Pen &lt;a href=&#8217;http:\/\/codepen.io\/dennisdegoede\/pen\/wbqEd\/&#8217;&gt;Dynamic SVG with SASS&lt;\/a&gt; by Dennis de Goede (&lt;a href=&#8217;http:\/\/codepen.io\/dennisdegoede&#8217;&gt;@dennisdegoede&lt;\/a&gt;) on &lt;a href=&#8217;http:\/\/codepen.io&#8217;&gt;CodePen&lt;\/a&gt;.[\/codepen_embed]<\/p>\n<p>In our example we use a single color to color our SVG path, but you probably can imagine how powerful this could be with multiple colored SVGs being colored with your theme colors.<\/p>\n<p>Now you know how to create your own cross browser inline styleable SVG background images.<\/p>\n\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/bit.ly\/3BAo305\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"256\" src=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2022\/02\/Blog-Banner-1-1024x256.png\" alt=\"\" class=\"wp-image-20303\" srcset=\"https:\/\/trifork.nl\/blog\/wp-content\/uploads\/sites\/3\/2022\/02\/Blog-Banner-1-1024x256.png 1024w, https:\/\/trifork.nl\/blog\/wp-content\/uploads\/sites\/3\/2022\/02\/Blog-Banner-1-300x75.png 300w, https:\/\/trifork.nl\/blog\/wp-content\/uploads\/sites\/3\/2022\/02\/Blog-Banner-1-768x192.png 768w, https:\/\/trifork.nl\/blog\/wp-content\/uploads\/sites\/3\/2022\/02\/Blog-Banner-1-1536x384.png 1536w, https:\/\/trifork.nl\/blog\/wp-content\/uploads\/sites\/3\/2022\/02\/Blog-Banner-1-2048x512.png 2048w, https:\/\/trifork.nl\/blog\/wp-content\/uploads\/sites\/3\/2022\/02\/Blog-Banner-1-1920x480.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Theming an application is easy, right? A solution like SASS allows you to define variables like colors and sizes in your CSS and then compile them into your theme\/template. However, this doesn&#8217;t work for images, especially if you want to go further than just using a transparent PNG. For a product or solution to be [&hellip;]<\/p>\n","protected":false},"author":35,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[78],"tags":[99,248,382],"class_list":["post-11742","post","type-post","status-publish","format-standard","hentry","category-frontend","tag-frontend","tag-sass","tag-svg"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Advanced theming: dynamic SVG backgrounds with SASS, the right way! - Trifork Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Advanced theming: dynamic SVG backgrounds with SASS, the right way! - Trifork Blog\" \/>\n<meta property=\"og:description\" content=\"Theming an application is easy, right? A solution like SASS allows you to define variables like colors and sizes in your CSS and then compile them into your theme\/template. However, this doesn&#8217;t work for images, especially if you want to go further than just using a transparent PNG. For a product or solution to be [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/\" \/>\n<meta property=\"og:site_name\" content=\"Trifork Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-05-14T10:38:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png\" \/>\n<meta name=\"author\" content=\"Dennis de Goede\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dennis de Goede\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/\",\"url\":\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/\",\"name\":\"Advanced theming: dynamic SVG backgrounds with SASS, the right way! - Trifork Blog\",\"isPartOf\":{\"@id\":\"https:\/\/trifork.nl\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png\",\"datePublished\":\"2014-05-14T10:38:59+00:00\",\"author\":{\"@id\":\"https:\/\/trifork.nl\/blog\/#\/schema\/person\/6fd45da4df6b6ebbdfc9ce92ee77b4ca\"},\"breadcrumb\":{\"@id\":\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#primaryimage\",\"url\":\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png\",\"contentUrl\":\"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/trifork.nl\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Advanced theming: dynamic SVG backgrounds with SASS, the right way!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/trifork.nl\/blog\/#website\",\"url\":\"https:\/\/trifork.nl\/blog\/\",\"name\":\"Trifork Blog\",\"description\":\"Keep updated on the technical solutions Trifork is working on!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/trifork.nl\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/trifork.nl\/blog\/#\/schema\/person\/6fd45da4df6b6ebbdfc9ce92ee77b4ca\",\"name\":\"Dennis de Goede\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/trifork.nl\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fbd3a339f11b324e87ad85cd80b5baad?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/fbd3a339f11b324e87ad85cd80b5baad?s=96&d=mm&r=g\",\"caption\":\"Dennis de Goede\"},\"url\":\"https:\/\/trifork.nl\/blog\/author\/dennisgo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Advanced theming: dynamic SVG backgrounds with SASS, the right way! - Trifork Blog","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:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/","og_locale":"en_US","og_type":"article","og_title":"Advanced theming: dynamic SVG backgrounds with SASS, the right way! - Trifork Blog","og_description":"Theming an application is easy, right? A solution like SASS allows you to define variables like colors and sizes in your CSS and then compile them into your theme\/template. However, this doesn&#8217;t work for images, especially if you want to go further than just using a transparent PNG. For a product or solution to be [&hellip;]","og_url":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/","og_site_name":"Trifork Blog","article_published_time":"2014-05-14T10:38:59+00:00","og_image":[{"url":"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png","type":"","width":"","height":""}],"author":"Dennis de Goede","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dennis de Goede","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/","url":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/","name":"Advanced theming: dynamic SVG backgrounds with SASS, the right way! - Trifork Blog","isPartOf":{"@id":"https:\/\/trifork.nl\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#primaryimage"},"image":{"@id":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#primaryimage"},"thumbnailUrl":"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png","datePublished":"2014-05-14T10:38:59+00:00","author":{"@id":"https:\/\/trifork.nl\/blog\/#\/schema\/person\/6fd45da4df6b6ebbdfc9ce92ee77b4ca"},"breadcrumb":{"@id":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#primaryimage","url":"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png","contentUrl":"https:\/\/trifork.nl\/articles\/wp-content\/uploads\/sites\/3\/2014\/08\/svg-logo.png"},{"@type":"BreadcrumbList","@id":"https:\/\/trifork.nl\/blog\/advanced-theming-dynamic-svg-backgrounds-with-sass-the-right-way\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/trifork.nl\/blog\/"},{"@type":"ListItem","position":2,"name":"Advanced theming: dynamic SVG backgrounds with SASS, the right way!"}]},{"@type":"WebSite","@id":"https:\/\/trifork.nl\/blog\/#website","url":"https:\/\/trifork.nl\/blog\/","name":"Trifork Blog","description":"Keep updated on the technical solutions Trifork is working on!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/trifork.nl\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/trifork.nl\/blog\/#\/schema\/person\/6fd45da4df6b6ebbdfc9ce92ee77b4ca","name":"Dennis de Goede","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/trifork.nl\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/fbd3a339f11b324e87ad85cd80b5baad?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fbd3a339f11b324e87ad85cd80b5baad?s=96&d=mm&r=g","caption":"Dennis de Goede"},"url":"https:\/\/trifork.nl\/blog\/author\/dennisgo\/"}]}},"_links":{"self":[{"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/posts\/11742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/comments?post=11742"}],"version-history":[{"count":0,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/posts\/11742\/revisions"}],"wp:attachment":[{"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/media?parent=11742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/categories?post=11742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/trifork.nl\/blog\/wp-json\/wp\/v2\/tags?post=11742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}