<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Javascript &#8211; Marcos Rego</title>
	<atom:link href="https://marcosrego.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>https://marcosrego.com</link>
	<description>Web Development</description>
	<lastBuildDate>Wed, 25 Dec 2024 23:35:07 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>How to style a datalist and its options?</title>
		<link>https://marcosrego.com/blog/style-datalist-options/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Tue, 27 Dec 2022 20:10:17 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[For developers]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mr.Utils]]></category>
		<category><![CDATA[Tips and tricks]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=2875</guid>

					<description><![CDATA[If you ever tried to change the look and feel of a HTML5 datalist but couldn’t, then this post might be your (delayed) Christmas present 🎄🎁 (I hope you had a great one and close to the ones you love the most)! What’s the problem of styling a HTML5 datalist? At the moment of writing, [&#8230;]]]></description>
										<content:encoded><![CDATA[<span id="more-2875"></span>
<!--noteaser-->



<p>If you ever tried to change the look and feel of a HTML5 datalist but couldn’t, then this post might be your (delayed) Christmas present 🎄🎁 (I hope you had a great one and close to the ones you love the most)!</p>



<aside class="  wp-block-group sidebar has-main-text-color-color has-aside-background-color-background-color has-text-color has-background"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<section class="wp-block-group has-main-text-color-color has-main-background-color-background-color has-text-color has-background"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h3 class="   has-main-text-color-color has-text-color wp-block-heading"><strong>Did you know?</strong></h3>



<figure class="    wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="538" src="https://marcosrego.com/wp-content/uploads/2021/06/mrutils-marcosrego-opengraph-1024x538.png" alt="Mr.Utils Opengraph Image" class="wp-image-1029" title="mrutils marcosrego opengraph - How to style a datalist and its options?" srcset="https://marcosrego.com/wp-content/uploads/2021/06/mrutils-marcosrego-opengraph-1024x538.png 1024w, https://marcosrego.com/wp-content/uploads/2021/06/mrutils-marcosrego-opengraph-300x158.png 300w, https://marcosrego.com/wp-content/uploads/2021/06/mrutils-marcosrego-opengraph-768x403.png 768w, https://marcosrego.com/wp-content/uploads/2021/06/mrutils-marcosrego-opengraph.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="  has-main-text-color-color has-text-color"><strong><a href="https://marcosrego.com/development/mr-utils/" data-type="post" data-id="473">Mr.Utils</a></strong> gives you a set of classes with a clear syntax, such as <em><strong>mr-phone-hide</strong></em> clearly saying to hide an element on a phone, <strong><em>mr-marginright</em></strong> to add a margin on the right side of an element and <strong><a rel="noreferrer noopener" href="https://github.com/marcosrego-web/mr-utils/wiki/Utility-Classes" data-type="URL" data-id="https://github.com/marcosrego-web/mr-utils/wiki/Utility-Classes" target="_blank">so much more</a></strong>&#8230;</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-invert-color-color has-link-color-background-color has-text-color has-background" href="https://marcosrego.com/client-area/downloads/?product=mrutils"><strong>Get it now (free)</strong></a></div>
</div>
</div></section>
</div></aside>



<h2 class="wp-block-heading"><strong>What’s the problem of styling a HTML5 datalist?</strong></h2>



<p>At the moment of writing, it’s not possible to style a datalist directly.</p>



<p>Hopefully in the future, we will be able to simply use normal CSS like this:</p>



<pre class="wp-block-code"><code>.mr-datalist &gt; * {
    background-color: var(--dark);
    color: var(--light);
}</code></pre>



<p>For now, if you still want to use datalist, there are two ways to do it:</p>



<ul class="wp-block-list">
<li><a href="#the_easiest_way_to_style_a_datalist" data-type="internal" data-id="#the_easiest_way_to_style_a_datalist">An easy way, using a class from a front-end toolkit.</a></li>



<li><a href="#style_a_datalist_with_code">A more manual way, using Vanilla JavaScript.</a></li>
</ul>



<p>The CSS code above will work after implementing any of those 2 options.</p>



<p>Some things that might be important to you:&nbsp;</p>



<ul class="wp-block-list">
<li>These methods might not work on iOS versions prior to the 13th. On those devices, the datalist will not change, working as it does by default.</li>



<li>Both methods should be future-proof. When HTML5 data lists become easier to style, you can remove the front-end toolkit or the JavaScript code. Just keep the classes and the CSS as is.</li>
</ul>



<p>With that aside, let’s move on with this tutorial…</p>



<h2 class="wp-block-heading"><strong>The easiest way to style a datalist</strong></h2>



<p>You can use a front-end toolkit such as <strong><a href="https://marcosrego.com/development/mr-utils/" target="_blank" data-type="post" data-id="473" rel="noreferrer noopener">Mr.Utils</a></strong>.</p>



<p>All you have to do is, make sure you are adding the global JavaScript file <em>js/utils.js</em> in your page (or if you don’t want to load the entire toolkit, you can individually add <em>dev/js/utils/utils_components.js</em>).</p>



<p>After that, you need to add the correct class <strong>.mr-datalist</strong> to your datalist <em>(not to the input)</em> and it will magically transform it into a “search” component.</p>



<p>You can then style it with a <a href="#whats_the_problem_of_styling_a_html5_datalist">CSS code similar to the one shown before</a>.</p>



<h2 class="wp-block-heading"><strong>Style a datalist with code</strong></h2>



<p>I mentioned that the easiest way of implementation works like magic, but of course there’s no magic behind it at all, just the correct JavaScript code.</p>



<p>In this post, I’ll share a simplified version of that code with you.</p>



<p>You can either follow the steps or <strong><a href="#gist_full_code_on_how_to_style_a_datalist">jump directly to the Gist full code</a></strong>.</p>



<p>Feel free to change it to your specific needs.</p>



<h3 class="  wp-block-heading"><strong>1- Transform the datalist into an element that can be styled.</strong></h3>



<pre class="wp-block-code"><code>document.addEventListener("DOMContentLoaded", function () {
  const mrDataLists = document.querySelectorAll(".mr-datalist");
  for (let id = 0; id &lt; mrDataLists.length; id++) {
    let mrDataList = mrDataLists&#91;id];
    let mrDataListUL = "";
    let mrDataListClone = "";
 
    mrDataListClone =
      mrDataList
        .cloneNode(true)
        .innerHTML.replaceAll("&lt;option", "&lt;li")
        .replaceAll("&lt;/option&gt;", "&lt;/li&gt;");
    mrDataListUL = document.createElement("ul");
    mrDataListUL.id = mrDataList.id;
    mrDataListUL.className = mrDataList.className;
    mrDataListUL.innerHTML = mrDataListClone;
 
    mrDataList.replaceWith(mrDataListUL);
  }
}
</code></pre>



<p>In this first step, we grab all data lists that have the class <em>.mr-datalist, </em>but you can change it to your own.</p>



<p>You can even grab all data lists without exception, by replacing the class <em>.mr-datalist</em> with the property <em>datalist, </em>on the <em>querySelectorAll </em>(Don’t forget to change the CSS code accordingly at the end).</p>



<p>In this example, we transform the datalist into an unordered list. You can change that if you wish, but it should be an element with direct children. Each direct child will be a datalist option.</p>



<p>The <em>replaceWith </em>at the end finishes the transformation, but we are not done yet.</p>



<p>We need to create a similar “search” functionality to the one the HTML5 datalist has.</p>



<h3 class="  wp-block-heading"><strong>2- Make the input find content on the element.</strong></h3>



<pre class="wp-block-code"><code>document.addEventListener("keyup", function (e) {
  let mrDataListID = "mr-datalist";
  if (e.target.matches('input&#91;list="'+mrDataListID+'"]')) {
    mrSearch(document.getElementById(mrDataListID), e.target);
  }
  e.stopPropagation();
});
</code></pre>



<p>In here, I’m assuming we know the ID of the datalist, and that we have it on the input “list” attribute. I’m assuming that because those are needed for the original datalist to work.<br>In this example, the ID is <em>mr-datalist,</em> set on the mrDataListID variable.</p>



<p>If for some reason you don’t know the ID, there are alternative ways to do it. On Mr.Utils for example, the “Search” component removes the original input, creates a new one and uses <em>nextElementSibling</em>. It does that for a reason, you can check that on the <a href="https://github.com/marcosrego-web/mr-utils/blob/master/dev/js/utils/utils_components.js" target="_blank" rel="noreferrer noopener nofollow">GitHub repository</a>.</p>



<p>As you might notice, we are calling the function <em>mrSearch</em>, which will do the heavy work.&nbsp;</p>



<p>Here is the function simplified, feel free to rename it to anything you want:</p>



<pre class="wp-block-code"><code>function mrSearch(t, e) {
  //t = Datalist
  //e = Input with list attribute
  let mrSearchChildren = t.children;
  if (mrSearchChildren) {
    if (e.value !== "") {
      t.style.removeProperty("display");
      for (let id = 0; id &lt; mrSearchChildren.length; id++) {
        let mrSearchChild = mrSearchChildren&#91;id];
        if (mrSearchChild.hasAttribute("value")) {
          //If the child does not contain any text, show the value as text.
          if (!mrSearchChild.innerText) {
            mrSearchChild.innerText = mrSearchChild.getAttribute("value");
          }
 
          //Change the input value when clicking on the child.
          mrSearchChild.addEventListener("click", function () {
            e.value = mrSearchChild.getAttribute("value");
          });
        }
        mrSearchChild.style.display = "none";
 
        //Checking the child outerHTML because I want to search text also inside the value attribute. Convert in lowercase to not be case sensitive.
        if (
          mrSearchChild.outerHTML
            .toLowerCase()
            .replace(/&#91;^a-zA-Z0-9 ]/g, "")
            .includes(e.value.toLowerCase().replace(/&#91;^a-zA-Z0-9 ]/g, ""))
        ) {
          mrSearchChild.style.removeProperty("display");
        }
      }
    } else {
      t.style.display = "none";
    }
  }
}

</code></pre>



<p>Here we changed the Input value when clicking on the element child <em>(the datalist option that we transformed)</em> and we’ll make the search case-insensitive.</p>



<p>Check the comments inside the code to better understand which parts replicate which datalist “search” feature.</p>



<p>Extra: If you have full control over the original datalist, you probably added a value and text to each option. If you don’t have, then this code as you covered, it copies the value into the text when no text is found.</p>



<p><strong>And that’s it! </strong>Now you replicated most datalists’ functionalities and can start styling the element, with a <a href="#whats_the_problem_of_styling_a_html5_datalist">CSS code similar to the one shown before</a>.</p>



<h3 class="  wp-block-heading"><strong>3- Take it to the next level (Optional and Advanced)</strong></h3>



<p>If you feel inspired, now that you have full control over the code, you can add extra features! Features that not even the original datalist has.</p>



<p>For example:</p>



<ul class="wp-block-list">
<li>Show a message when no result is found.</li>



<li>Bold the text while it is found on the results.</li>



<li>If no exact match is found, search by each keyword instead <em>(You can also show a message in that situation)</em>.</li>



<li>Show results only after a minimum number of characters <em>(This is a good idea to avoid connection words and code properties)</em>.</li>
</ul>



<p>I did many of those features for <strong>Mr.Utils</strong>, <strong><a href="https://github.com/marcosrego-web/mr-utils/blob/master/dev/js/utils/utils_components.js#L356" target="_blank" rel="noreferrer noopener nofollow">you can check the part of the code here</a></strong>.</p>



<p>Might also be a good idea, to track pressing keyboard arrow keys, to select the results and improve accessibility.</p>



<h3 class="  wp-block-heading"><strong>Gist full code on how to style a datalist</strong></h3>



<script src="https://gist.github.com/marcosrego-web/943e82bbd6243e8f38af4ff5ce081dc6.js"></script>



<h2 class="wp-block-heading"><strong>Working example of styling datalists</strong></h2>



<p>I did something very similar to the methods explained above for <strong><a href="https://www.rydoo.com/compliance/" target="_blank" data-type="URL" data-id="https://www.rydoo.com/compliance/" rel="noreferrer noopener nofollow">Rydoo’s Compliance Centre</a></strong> and <strong><a href="https://www.rydoo.com/marketplace/" data-type="URL" data-id="https://www.rydoo.com/marketplace/" target="_blank" rel="noreferrer noopener nofollow">Marketplace</a></strong>.</p>



<figure class="  wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="     wp-block-image size-large"><a href="https://www.rydoo.com/compliance/" target="_blank" rel="noreferrer noopener"><img decoding="async" width="1024" height="522" data-id="2727" src="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-1024x522.png" alt="Rydoo-Compliance_Centre" class="wp-image-2727" title="Rydoo Compliance Centre - How to style a datalist and its options?" srcset="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-1024x522.png 1024w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-300x153.png 300w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-768x391.png 768w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-1536x783.png 1536w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre.png 1902w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Rydoo&#8217;s Compliance Centre</figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://www.rydoo.com/marketplace/" target="_blank" rel="noreferrer noopener"><img decoding="async" width="1024" height="522" data-id="2724" src="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-1024x522.png" alt="Rydoo-Marketplace" class="wp-image-2724" title="Rydoo Marketplace - How to style a datalist and its options?" srcset="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-1024x522.png 1024w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-300x153.png 300w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-768x391.png 768w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-1536x783.png 1536w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace.png 1902w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Rydoo&#8217;s Marketplace</figcaption></figure>
</figure>



<p>I hope you enjoyed this post! I&#8217;m not sure that I will be writing something more on the blog before entering the new year, so enjoy the celebrations and <strong>let&#8217;s enter 2023 with the right footer!!</strong> 🥂🎆🥳</p>



<h2><b>Comments</b></h2>
<div id="disqus_thread"></div>
<script>
if(mrGetCookie('cookielawinfo-checkbox-functional') == 'yes') {
    var disqus_config = function () {
        this.page.url = (location.protocol+'//'+location.host+location.pathname).replace("/account/", "/");
        this.page.identifier = document.querySelector("article").id.replace("post-", "");
    };
    
    (function() {
    var d = document, s = d.createElement('script');
    s.src = 'https://marcosrego-web.disqus.com/embed.js';
    s.setAttribute('data-timestamp', +new Date());
    (d.head || d.body).appendChild(s);
    })();
} else {
    document.querySelector('#disqus_thread').innerHTML = 'You cannot view or add comments because you did not consent to the use of functional cookies: <a class="  cli_manage_current_consent" style="cursor:pointer;">Manage your consent.</a>';
}
</script>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rydoo</title>
		<link>https://marcosrego.com/websites/rydoo/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Sun, 25 Dec 2022 23:34:00 +0000</pubDate>
				<category><![CDATA[Websites]]></category>
		<category><![CDATA[Blade]]></category>
		<category><![CDATA[Jamstack]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Rydoo]]></category>
		<category><![CDATA[Sass]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=261</guid>

					<description><![CDATA[Since March 2020, I&#8217;ve been working for the Marketing Team at Rydoo. Although the core website was not made by me, I did together with the team lots of changes and improvements and as time went by the website embraced my signature. A technical signature, that has been fitting perfectly on the team&#8217;s vibe and [&#8230;]]]></description>
										<content:encoded><![CDATA[<span id="more-261"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/08/rydoo_site_phone.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/08/rydoo_site_desktop.mp4" playsinline></video></figure>



<h2 class="wp-block-heading"><strong>Since March 2020, I&#8217;ve been working for the Marketing Team at Rydoo. </strong></h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-main-background-color-color has-main-text-color-background-color has-text-color has-background wp-element-button" href="https://www.rydoo.com/" target="_blank" rel="noreferrer noopener"><strong>Visit website</strong></a></div>
</div>



<p>Although the core website was not made by me, I did together with the team lots of changes and improvements and as time went by the website embraced my signature.</p>



<p>A technical signature, that has been fitting perfectly on the team&#8217;s vibe and knowhow, that I&#8217;m very happy to be part of.</p>



<p>We made the website more structured, scalable, optimized for search engines and easier to use by everyone involved.</p>



<p><strong>One key feature is the inclusion of different platforms inside the same environment and ecosystem.</strong><br><strong>Platforms such as:</strong></p>



<ul class="wp-block-list">
<li><strong>Marketplace</strong></li>



<li><strong>CFO Corner</strong></li>



<li><strong>Compliance Centre</strong></li>
</ul>



<p></p>



<figure class="    wp-block-gallery has-nested-images columns-1 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Home.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1902" height="969" data-id="2728" src="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Home.png" alt="Rydoo-Home" class="wp-image-2728" title="Rydoo Home - Rydoo" srcset="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Home.png 1902w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Home-300x153.png 300w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Home-1024x522.png 1024w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Home-768x391.png 768w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Home-1536x783.png 1536w" sizes="auto, (max-width: 1902px) 100vw, 1902px" /></a><figcaption class="wp-element-caption">Rydoo&#8217;s Homepage</figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1902" height="969" data-id="2724" src="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace.png" alt="Rydoo-Marketplace" class="wp-image-2724" title="Rydoo Marketplace - Rydoo" srcset="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace.png 1902w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-300x153.png 300w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-1024x522.png 1024w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-768x391.png 768w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Marketplace-1536x783.png 1536w" sizes="auto, (max-width: 1902px) 100vw, 1902px" /></a><figcaption class="wp-element-caption">Rydoo&#8217;s Marketplace</figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-CFOCorner.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1902" height="969" data-id="2725" src="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-CFOCorner.png" alt="Rydoo-CFOCorner" class="wp-image-2725" title="Rydoo CFOCorner - Rydoo" srcset="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-CFOCorner.png 1902w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-CFOCorner-300x153.png 300w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-CFOCorner-1024x522.png 1024w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-CFOCorner-768x391.png 768w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-CFOCorner-1536x783.png 1536w" sizes="auto, (max-width: 1902px) 100vw, 1902px" /></a><figcaption class="wp-element-caption">Rydoo&#8217;s CFO Corner</figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Journeys.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1902" height="969" data-id="2723" src="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Journeys.png" alt="Rydoo-Journeys" class="wp-image-2723" title="Rydoo Journeys - Rydoo" srcset="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Journeys.png 1902w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Journeys-300x153.png 300w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Journeys-1024x522.png 1024w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Journeys-768x391.png 768w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Journeys-1536x783.png 1536w" sizes="auto, (max-width: 1902px) 100vw, 1902px" /></a><figcaption class="wp-element-caption">Rydoo&#8217;s Journeys</figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre.png" target="_blank" rel="noopener"><img loading="lazy" decoding="async" width="1902" height="969" data-id="2727" src="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre.png" alt="Rydoo-Compliance_Centre" class="wp-image-2727" title="Rydoo Compliance Centre - Rydoo" srcset="https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre.png 1902w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-300x153.png 300w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-1024x522.png 1024w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-768x391.png 768w, https://marcosrego.com/wp-content/uploads/2021/08/Rydoo-Compliance_Centre-1536x783.png 1536w" sizes="auto, (max-width: 1902px) 100vw, 1902px" /></a><figcaption class="wp-element-caption">Rydoo&#8217;s Compliance Centre</figcaption></figure>
</figure>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2021/08/rydoo_site_phone.mp4" length="5417673" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2021/08/rydoo_site_desktop.mp4" length="8530619" type="video/mp4" />

			</item>
		<item>
		<title>Mr.Utils</title>
		<link>https://marcosrego.com/development/mr-utils/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Sun, 31 Oct 2021 18:09:00 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[Toolkit]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=473</guid>

					<description><![CDATA[A front-end toolkit with a syntax friendly to everyone, that gives you utility classes, custom breakpoints, css variables and javascript functions. Utilities used on Mr.Dev.&#8217;s plugins that you can also use on your own environment. If you are using WordPress you can even install it as a plugin. You&#8217;ll get friendly options on the block [&#8230;]]]></description>
										<content:encoded><![CDATA[<span id="more-473"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/10/mrutils_phone.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/mrutils_desktop.mp4" playsinline></video></figure>



<h2 class="wp-block-heading" id="a-front-end-toolkit-with-a-syntax-friendly-to-everyone-that-gives-you-utility-classes-custom-breakpoints-css-variables-and-javascript-functions"><strong>A front-end toolkit with a syntax friendly to everyone, that gives you utility classes, custom breakpoints, css variables and javascript functions.</strong></h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-invert-color-color has-link-color-background-color has-text-color has-background wp-element-button" href="https://marcosrego.com/client-area/downloads/?product=mrutils"><strong>Get it now (free)</strong></a></div>



<div class="   wp-block-button"><a class="wp-block-button__link has-main-background-color-color has-main-text-color-background-color has-text-color has-background wp-element-button" href="https://github.com/marcosrego-web/mr-utils/wiki" style="border-radius:6px" target="_blank" rel="noreferrer noopener">See documentation</a></div>
</div>



<h3 class="  wp-block-heading" id="utilities-used-on-mr-dev-s-plugins-that-you-can-also-use-on-your-own-environment"><strong>Utilities used on Mr.Dev.&#8217;s plugins that you can also use on your own environment.</strong></h3>



<p>If you are using WordPress you can even install it as a plugin. You&#8217;ll get <a href="https://marcosrego.com/blog/mr-utils-block-editor-features/" data-type="post" data-id="1997">friendly options on the block editor</a>, which allow you or your clients to use all the features without needing to know the classes or functions.</p>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/mrutils_desktop.mp4" length="4881295" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2021/10/mrutils_phone.mp4" length="1072336" type="video/mp4" />

			</item>
		<item>
		<title>FlipBook Block</title>
		<link>https://marcosrego.com/development/flipbook-block/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Fri, 20 Aug 2021 00:00:00 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Block editor]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[FlipBook]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=2905</guid>

					<description><![CDATA[Let your visitors turn the pages! FlipBook Block is a simple yet effective WordPress block that shows a PDF from your Media in a Flip Book.]]></description>
										<content:encoded><![CDATA[<span id="more-2905"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2023/01/flipbook-block_phone.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2023/01/flipbook-block_desktop.mp4" playsinline></video></figure>



<h2 class="wp-block-heading" id="mr-dev-is-your-provider-of-developing-tools"><strong>Let your visitors turn the pages!</strong></h2>



<h3 class="  wp-block-heading" id="he-gives-you-a-powerful-wordpress-widget-to-display-your-content-with-many-customizable-layouts-and-options">FlipBook Block is a simple yet effective WordPress block that shows a PDF from your Media in a Flip Book.</h3>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-invert-color-color has-link-color-background-color has-text-color has-background wp-element-button" href="https://marcosrego.com/client-area/downloads/?product=flipbook-block"><strong>Get it now (free)</strong></a></div>
</div>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2023/01/flipbook-block_phone.mp4" length="1268494" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2023/01/flipbook-block_desktop.mp4" length="231121" type="video/mp4" />

			</item>
		<item>
		<title>Mr.Dev.&#8217;s Widget</title>
		<link>https://marcosrego.com/development/mrdev-widget/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Thu, 19 Aug 2021 23:50:29 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mr.Dev.]]></category>
		<category><![CDATA[Mr.Dev.'s Widget]]></category>
		<category><![CDATA[Mr.Utils]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=574</guid>

					<description><![CDATA[Mr.Dev. is your provider of developing tools! He gives you a powerful WordPress widget to display your content with many customizable layouts and options.]]></description>
										<content:encoded><![CDATA[<span id="more-574"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/mrdevwidget_phone.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/mrdevwidget_desktop.mp4" playsinline></video></figure>



<h2 class="wp-block-heading" id="mr-dev-is-your-provider-of-developing-tools"><strong>Mr.Dev. is your provider of developing tools!</strong></h2>



<h3 class="  wp-block-heading" id="he-gives-you-a-powerful-wordpress-widget-to-display-your-content-with-many-customizable-layouts-and-options"><strong>He gives you a powerful WordPress widget to display your content with many customizable layouts and options.</strong></h3>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-invert-color-color has-link-color-background-color has-text-color has-background wp-element-button" href="https://marcosrego.com/client-area/downloads/?product=mrdevs-widget"><strong>Get it now (free)</strong></a></div>



<div class="   wp-block-button"><a class="wp-block-button__link has-main-background-color-color has-main-text-color-background-color has-text-color has-background wp-element-button" href="https://marcosrego.com/mrdev-widget-module-themes/">themes &amp; layouts</a></div>



<div class="   wp-block-button"><a class="wp-block-button__link has-main-background-color-color has-main-text-color-background-color has-text-color has-background wp-element-button" href="https://marcosrego.com/mrdev-widget-module-features/">features</a></div>
</div>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/mrdevwidget_desktop.mp4" length="1035711" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/mrdevwidget_phone.mp4" length="8592552" type="video/mp4" />

			</item>
		<item>
		<title>editor4roks</title>
		<link>https://marcosrego.com/development/editor4roks/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Sat, 12 Jun 2021 17:08:00 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Joomla]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=885</guid>

					<description><![CDATA[If you use Roksprocket then you should add editor4roks, it will make the widget/module more friendly for anyone editing on it! With editor4roks the descriptions will have a WYSIWYG editor, to be easier to edit and links easier to put directly on the modules/widgets. Tested on Joomla with the editors: TinyMCE, JCE and an included [&#8230;]]]></description>
										<content:encoded><![CDATA[<span id="more-885"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/editor4roks-wordpress_phone.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/editor4roks-joomla_desktop.mp4" playsinline></video></figure>



<h2 class="wp-block-heading" id="if-you-use-roksprocket-then-you-should-add-editor4roks-it-will-make-the-widget-module-more-friendly-for-anyone-editing-on-it"><strong>If you use <a href="https://rockettheme.com/joomla/extensions/roksprocket" target="_blank" rel="noreferrer noopener nofollow">Roksprocket</a> then you should add editor4roks, it will make the widget/module more friendly for anyone editing on it</strong>!</h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-invert-color-color has-link-color-background-color has-text-color has-background wp-element-button" href="https://marcosrego.com/client-area/downloads/?product=editor4roks"><strong>Get it now (free)</strong></a></div>
</div>



<h3 class="  wp-block-heading" id="with-editor4roks-the-descriptions-will-have-a-wysiwyg-editor-to-be-easier-to-edit-and-links-easier-to-put-directly-on-the-modules-widgets"><strong>With editor4roks the descriptions will have a WYSIWYG editor, to be easier to edit and links easier to put directly on the modules/widgets.</strong></h3>



<p>Tested on <strong><a href="https://marcosrego.com/tag/joomla/" data-type="post_tag" data-id="46">Joomla</a></strong> with the editors: TinyMCE, JCE and an included NicEdit.<br>Tested on <strong><a href="https://marcosrego.com/tag/wordpress/" data-type="post_tag" data-id="23">WordPress</a></strong> with the editors: TinyMCE, TinyMCE Advanced and an included NicEdit.<br>This is not an official plugin of RocketTheme.</p>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/editor4roks-wordpress_phone.mp4" length="304263" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/editor4roks-joomla_desktop.mp4" length="252999" type="video/mp4" />

			</item>
		<item>
		<title>Itemzero</title>
		<link>https://marcosrego.com/websites/itemzero/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Sat, 10 Apr 2021 18:38:50 +0000</pubDate>
				<category><![CDATA[Websites]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[Freelance]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mr.Dev.]]></category>
		<category><![CDATA[Mr.Dev.'s Framework]]></category>
		<category><![CDATA[Mr.Dev.'s Widget]]></category>
		<category><![CDATA[Mr.Utils]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Store]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=1</guid>

					<description><![CDATA[Portfolio and eCommerce website developed for Itemzero, a design studio specialized in the intersection between technology, information design and editorial design. This project is heavily powered by Mr.Dev. and it&#8217;s the perfect showcase of what is possible to do when combining his framework with his frontend toolkit. The framework allowed the use of the block [&#8230;]]]></description>
										<content:encoded><![CDATA[<span id="more-1"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/itemzero-site_mobile.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/itemzero-site_desktop.mp4" playsinline></video></figure>



<h2 class="wp-block-heading"><strong>Portfolio and eCommerce website developed for Itemzero, a design studio specialized in the intersection between technology, information design and editorial design.</strong></h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-main-background-color-color has-main-text-color-background-color has-text-color has-background wp-element-button" href="https://shop.itemzero.com/" target="_blank" rel="noreferrer noopener"><strong>Visit website</strong></a></div>
</div>



<p>This project is heavily powered by Mr.Dev. and it&#8217;s the perfect showcase of what is possible to do when combining <a href="https://marcosrego.com/development/mrdev-framework/" data-type="post" data-id="278">his framework</a> with <a href="https://marcosrego.com/development/mr-utils/" data-type="post" data-id="473">his frontend toolkit</a>.</p>



<p>The framework allowed the use of the block editor on WooCommerce product pages.<br>The frontend toolkit (Mr.Utils) allowed to make specific customizations and to easily use components such as sliders and tabs inside the block editor.</p>



<p>And because this website uses those plugins that I developed, some other plugins that I selected and because I manage this website&#8217;s server + domain, <strong>Itemzero&#8217;s score on Google Pagespeed Insights shows excellent results</strong>.</p>



<figure class="   wp-block-gallery has-nested-images columns-1 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-pagespeed-score_jan-2022.jpg"><img loading="lazy" decoding="async" width="1024" height="485" data-id="2385" src="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-pagespeed-score_jan-2022-1024x485.jpg" alt="itemzero pagespeed score jan-2022" class="wp-image-2385" title="itemzero pagespeed score jan 2022 - Itemzero" srcset="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-pagespeed-score_jan-2022-1024x485.jpg 1024w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-pagespeed-score_jan-2022-300x142.jpg 300w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-pagespeed-score_jan-2022-768x364.jpg 768w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-pagespeed-score_jan-2022-1536x727.jpg 1536w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-pagespeed-score_jan-2022.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Itemzero&#8217;s product page score on January 2022 according to Google Pagespeed Insights. <a href="https://pagespeed.web.dev/report?url=https%3A%2F%2Fshop.itemzero.com%2Fproducts%2Fthe-book-cover%2F" target="_blank" data-type="URL" data-id="https://pagespeed.web.dev/report?url=https%3A%2F%2Fshop.itemzero.com%2Fproducts%2Fthe-book-cover%2F" rel="noreferrer noopener">Recheck the score</a></figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-select_toggle.jpg"><img loading="lazy" decoding="async" width="1024" height="577" data-id="1610" src="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-select_toggle-1024x577.jpg" alt="Itemzero product variations uses Mr.Dev.&#039;s Widget" class="wp-image-1610" title="itemzero mrdev widget select toggle - Itemzero" srcset="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-select_toggle-1024x577.jpg 1024w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-select_toggle-300x169.jpg 300w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-select_toggle-768x432.jpg 768w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-select_toggle-1536x865.jpg 1536w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-select_toggle.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Itemzero&#8217;s product variations for typefaces are presented using Mr.Utils pagination options with the select dropdown as toggle.</figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-radio_toggle.jpg"><img loading="lazy" decoding="async" width="1024" height="574" data-id="1609" src="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-radio_toggle-1024x574.jpg" alt="Itemzero product testimonials uses Mr.Dev.&#039;s radio buttons as pagination toggle" class="wp-image-1609" title="itemzero mrdev widget radio toggle - Itemzero" srcset="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-radio_toggle-1024x574.jpg 1024w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-radio_toggle-300x168.jpg 300w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-radio_toggle-768x430.jpg 768w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-radio_toggle-1536x861.jpg 1536w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-radio_toggle.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Itemzero&#8217;s product testimonials uses Mr.Utils radio buttons as pagination toggle.</figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-tabs.jpg"><img loading="lazy" decoding="async" width="1024" height="572" data-id="1611" src="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-tabs-1024x572.jpg" alt="Itemzero&#039;s shop uses tabs" class="wp-image-1611" title="itemzero mrdev widget tabs - Itemzero" srcset="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-tabs-1024x572.jpg 1024w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-tabs-300x168.jpg 300w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-tabs-768x429.jpg 768w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-tabs-1536x858.jpg 1536w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-tabs.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Itemzero&#8217;s shop uses tabs from Mr.Utils components.</figcaption></figure>



<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-woocommerce.jpg"><img loading="lazy" decoding="async" width="1024" height="576" data-id="1607" src="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-woocommerce-1024x576.jpg" alt="Itemzero promotions for the Book Cover using Mr.Dev.&#039;s widget" class="wp-image-1607" title="itemzero mrdev widget woocommerce - Itemzero" srcset="https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-woocommerce-1024x576.jpg 1024w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-woocommerce-300x169.jpg 300w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-woocommerce-768x432.jpg 768w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-woocommerce-1536x864.jpg 1536w, https://marcosrego.com/wp-content/uploads/2021/04/itemzero-mrdev_widget-woocommerce.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Itemzero&#8217;s Shop uses <a href="https://marcosrego.com/development/mrdev-widget/" data-type="post" data-id="574">Mr.Dev.&#8217;s Widget</a> compatibility with WooCommerce.</figcaption></figure>
</figure>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/itemzero-site_mobile.mp4" length="5264819" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/itemzero-site_desktop.mp4" length="5830365" type="video/mp4" />

			</item>
		<item>
		<title>Fazer</title>
		<link>https://marcosrego.com/websites/fazer/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Sat, 10 Apr 2021 18:11:00 +0000</pubDate>
				<category><![CDATA[Websites]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[Freelance]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mr.Dev.]]></category>
		<category><![CDATA[Mr.Dev.'s Framework]]></category>
		<category><![CDATA[Mr.Utils]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=2940</guid>

					<description><![CDATA[Fazer is a new Portuguese magazine about design, their eCommerce website was designed by Carvalho Bernau and developed by me. The development of this project showcases perfectly the combined power of WordPress&#8216; block editor, with Mr.Dev.&#8217;s Framework, Mr.Dev&#8217;s Theme, Mr.Utils and some custom code. Mr.Dev.&#8217;s Theme is a boilerplate theme, that allowed using all the [&#8230;]]]></description>
										<content:encoded><![CDATA[<span id="more-2940"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/04/fazer_site_phone-1.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/04/fazer_site_desktop-1.mp4" playsinline></video></figure>



<h2 class="wp-block-heading"><strong>Fazer is a new Portuguese magazine about design, their eCommerce website was designed by <a href="http://carvalho-bernau.com/" data-type="URL" data-id="http://carvalho-bernau.com/" target="_blank" rel="noreferrer noopener nofollow">Carvalho Bernau</a> and developed by me.</strong></h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-main-background-color-color has-main-text-color-background-color has-text-color has-background wp-element-button" href="https://fazer.design/" target="_blank" rel="noreferrer noopener"><strong>Visit website</strong></a></div>
</div>



<p>The development of this project showcases perfectly the combined power of <a href="/account/tag/wordpress/">WordPress</a>&#8216; block editor, with Mr.Dev.&#8217;s Framework, Mr.Dev&#8217;s Theme, Mr.Utils and some custom code.</p>



<p><a href="/account/development/mrdev-framework/#all-framework-features-work-with-any-theme">Mr.Dev.&#8217;s Theme</a> is a boilerplate theme, that allowed using all the features of the block editor on WooCommerce pages (including products and templates), while having the default colors managed from Mr.Dev.&#8217;s Framework.</p>



<p><a href="https://marcosrego.com/development/mr-utils/" data-type="post" data-id="473">Mr.Utils</a> with <a href="https://marcosrego.com/development/mrdev-framework/" data-type="post" data-id="403">Mr.Dev.&#8217;s Framework</a>, added extra style options to the block editor including custom utility classes. That was very handy to define variables to all sizes (font-sizes, padding, margins, etc) and have them editable from one unique place in the backend if needed.</p>



<p>For all the custom code, I used the <a href="/account/development/mrdev-framework/#features">file manager of Mr.Dev.&#8217;s Framework</a> to select where to load each CSS and JS, reducing unused code for each page. This was important for speed purposes. Some PHP custom code was also created. All files can be accessed trough the Framework and edited on the backend, using WordPress&#8217; default plugin files editor.</p>



<p>The custom code was important to reach some specific needs of the design, here are some examples:</p>



<ul class="wp-block-list">
<li>Temporarily have the homepage redirecting to the most recent product/magazine-issue.</li>



<li>Align footnotes with the text, according to the position of the note in the text (on non-mobile breakpoints).</li>



<li>Automatically detect the color of the most recent product and apply it as accent color on the entire site (Products&#8217; colors are added on Mr.Dev.&#8217;s Framework, by having the variable equal to the product slug).</li>



<li>Allow different svg logos for each product (Uses safe SVG).</li>



<li>Enable cache for almost all the pages, regardless of the cart item count. This was made possible by having custom javascript and cookies, to detect the number of items in cart. Also detects which products, to show a &#8220;View the cart&#8221; when a product is already in the cart.</li>



<li>Detect when the scroll passes the header to change the color of the logo, menu, and &#8220;Buy&#8221; buttons from white to the accent color.</li>



<li>Use the alt text of an image, to tell which should be the object-position/background-position for each breakpoint.</li>



<li>Highlight the sub-menus according to the scroll on the page.</li>



<li>Replace default tags taxonomy in favor of authors (multiple authors).</li>



<li>Automatically create categories in Afazeres/Blog matching each WooCommerce product.</li>
</ul>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2021/04/fazer_site_phone-1.mp4" length="5430444" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2021/04/fazer_site_desktop-1.mp4" length="4823172" type="video/mp4" />

			</item>
		<item>
		<title>Ruben R. Dias</title>
		<link>https://marcosrego.com/websites/rubenrdias/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Sat, 10 Apr 2021 17:58:00 +0000</pubDate>
				<category><![CDATA[Websites]]></category>
		<category><![CDATA[Freelance]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mr.Dev.]]></category>
		<category><![CDATA[Mr.Dev.'s Widget]]></category>
		<category><![CDATA[Sass]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=448</guid>

					<description><![CDATA[A portfolio website done for a designer, author, consultant and scholar. The biggest challenge for this project was to combine the many needs: To answer to those needs, I started a widget that would later become the Mr.Dev.&#8217;s widget. That widget would show all five categories&#8217; titles and descriptions in an accordion.And on each category [&#8230;]]]></description>
										<content:encoded><![CDATA[<span id="more-448"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/rubenrdias-site_phone.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/06/rubenrdias-site_desktop.mp4" playsinline></video></figure>



<h2 class="wp-block-heading"><strong>A portfolio website done for a designer, author, consultant and scholar.</strong></h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-main-background-color-color has-main-text-color-background-color has-text-color has-background wp-element-button" href="https://rubenrdias.com/" target="_blank" rel="noreferrer noopener"><strong>Visit website</strong></a></div>
</div>



<h3 class="  wp-block-heading"><strong>The biggest challenge for this project was to combine the many needs</strong>:</h3>



<ul class="wp-block-list">
<li>All projects appear on the page, inside accordions and tabs.</li>



<li>Each project still needs its unique url that opens the correspondent accordion and tab.</li>



<li>Keep it easy for the client to add and organize the content.</li>
</ul>



<h3 class="  wp-block-heading"><strong>To answer to those needs, I started a widget that would later become the <a href="https://marcosrego.com/blog/mrdev-mrutils-journey-new-2022/" data-type="post" data-id="2302">Mr.Dev.&#8217;s widget</a>.</strong></h3>



<p>That widget would show all five categories&#8217; titles and descriptions in an accordion.<br>And on <a href="https://marcosrego.com/blog/display-wordpress-category-descriptions/" data-type="post" data-id="1522">each category description</a> another widget, showing the posts in a tabs layout.</p>



<p></p>



<figure class="  wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/08/rubenrdias-site-desktop-categories.jpg"><img loading="lazy" decoding="async" width="1024" height="610" data-id="1572" src="https://marcosrego.com/wp-content/uploads/2021/08/rubenrdias-site-desktop-categories-1024x610.jpg" alt="Ruben R. Dias desktop website showing the main categories" class="wp-image-1572" title="rubenrdias site desktop categories - Ruben R. Dias" srcset="https://marcosrego.com/wp-content/uploads/2021/08/rubenrdias-site-desktop-categories-1024x610.jpg 1024w, https://marcosrego.com/wp-content/uploads/2021/08/rubenrdias-site-desktop-categories-300x179.jpg 300w, https://marcosrego.com/wp-content/uploads/2021/08/rubenrdias-site-desktop-categories-768x457.jpg 768w, https://marcosrego.com/wp-content/uploads/2021/08/rubenrdias-site-desktop-categories-1536x914.jpg 1536w, https://marcosrego.com/wp-content/uploads/2021/08/rubenrdias-site-desktop-categories.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Ruben R. Dias desktop website showing the main categories</figcaption></figure>
</figure>



<div style="height:25px" aria-hidden="true" class="  wp-block-spacer"></div>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/rubenrdias-site_phone.mp4" length="4274473" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2021/06/rubenrdias-site_desktop.mp4" length="4311803" type="video/mp4" />

			</item>
		<item>
		<title>Atelier Campilho</title>
		<link>https://marcosrego.com/websites/atelier-campilho/</link>
		
		<dc:creator><![CDATA[Marcos Rego]]></dc:creator>
		<pubDate>Fri, 09 Apr 2021 06:11:00 +0000</pubDate>
				<category><![CDATA[Websites]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Freelance]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Mr.Dev.]]></category>
		<category><![CDATA[Mr.Dev.'s Framework]]></category>
		<category><![CDATA[Mr.Utils]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://marcosrego.com/?p=2920</guid>

					<description><![CDATA[Website designed by Carvalho Bernau and developed by me, for the architecture atelier founded by Maria Cristina Campilho. This website was made in WordPress, using plugins and tools developed by me, such as Mr.Dev.&#8217;s Framework. It uses classes and components from Mr.Utils front-end toolkit. Thanks to that and because I manage this website’s server + [&#8230;]]]></description>
										<content:encoded><![CDATA[<span id="more-2920"></span>
<!--noteaser-->



<figure class=" fixed-video_mobile mr-fadein  wp-block-video fixed-video_mobile mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/04/atelier-campilho_site_phone.mp4" playsinline></video></figure>



<figure class=" fixed-video_desktop mr-fadein  wp-block-video fixed-video_desktop mr-fadein"><video autoplay loop muted preload="none" src="https://marcosrego.com/wp-content/uploads/2021/04/atelier-campilho_site_desktop.mp4" playsinline></video></figure>



<h2 class="wp-block-heading"><strong>Website designed by <a href="http://carvalho-bernau.com/" data-type="URL" data-id="http://carvalho-bernau.com/" target="_blank" rel="noreferrer noopener nofollow">Carvalho Bernau</a> and developed by me, for the architecture atelier founded by Maria Cristina Campilho.</strong></h2>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="   wp-block-button"><a class="wp-block-button__link has-main-background-color-color has-main-text-color-background-color has-text-color has-background wp-element-button" href="https://ateliercampilho.pt/" target="_blank" rel="noreferrer noopener"><strong>Visit website</strong></a></div>
</div>



<p>This website was made in WordPress, using plugins and tools developed by me, such as <a href="https://marcosrego.com/development/mrdev-framework/" data-type="post" data-id="403"><strong>Mr.Dev.&#8217;s Framework</strong></a>. It uses <strong>classes and components from <a href="https://marcosrego.com/development/mr-utils/" data-type="post" data-id="473">Mr.Utils front-end toolkit</a></strong>.</p>



<p>Thanks to that and because I manage this website’s server + domain, <strong>Atelier Campilho&#8217;s website score on Google Pagespeed Insights shows excellent results.</strong></p>



<figure class="  wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="     wp-block-image size-large"><a href="https://marcosrego.com/wp-content/uploads/2021/04/ateliercampilho-page-speed-insights.png"><img loading="lazy" decoding="async" width="1024" height="492" data-id="2929" src="https://marcosrego.com/wp-content/uploads/2021/04/ateliercampilho-page-speed-insights-1024x492.png" alt="Atelier Campilho home page score on April 2023 according to Google Pagespeed Insights." class="wp-image-2929" title="ateliercampilho page speed insights - Atelier Campilho" srcset="https://marcosrego.com/wp-content/uploads/2021/04/ateliercampilho-page-speed-insights-1024x492.png 1024w, https://marcosrego.com/wp-content/uploads/2021/04/ateliercampilho-page-speed-insights-300x144.png 300w, https://marcosrego.com/wp-content/uploads/2021/04/ateliercampilho-page-speed-insights-768x369.png 768w, https://marcosrego.com/wp-content/uploads/2021/04/ateliercampilho-page-speed-insights-1536x739.png 1536w, https://marcosrego.com/wp-content/uploads/2021/04/ateliercampilho-page-speed-insights.png 1959w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Atelier Campilho home page score on April 2023 according to Google Pagespeed Insights. <a href="https://pagespeed.web.dev/report?url=https%3A%2F%2Fateliercampilho.pt%2F" target="_blank" data-type="URL" rel="noreferrer noopener">Recheck the score</a></figcaption></figure>
</figure>
]]></content:encoded>
					
		
		<enclosure url="https://marcosrego.com/wp-content/uploads/2021/04/atelier-campilho_site_phone.mp4" length="2963884" type="video/mp4" />
<enclosure url="https://marcosrego.com/wp-content/uploads/2021/04/atelier-campilho_site_desktop.mp4" length="2899377" type="video/mp4" />

			</item>
	</channel>
</rss>
