<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ovi Demetrian Jr</title>
    <description>The latest articles on DEV Community by Ovi Demetrian Jr (@ovidem).</description>
    <link>https://dev.to/ovidem</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F74425%2F94d3b4a4-3a9d-497a-ad03-92a8ae7aaf86.jpg</url>
      <title>DEV Community: Ovi Demetrian Jr</title>
      <link>https://dev.to/ovidem</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ovidem"/>
    <language>en</language>
    <item>
      <title>Barebones metadata for page sharing</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Tue, 14 Oct 2025 00:56:09 +0000</pubDate>
      <link>https://dev.to/ovidem/barebones-metadata-for-page-sharing-3o8p</link>
      <guid>https://dev.to/ovidem/barebones-metadata-for-page-sharing-3o8p</guid>
      <description>&lt;p&gt;Metadata for when a page is shared has become the most relevant when it comes to setting up meta tags for your page as it allows controlling how social media platforms output a link to your page. Along with texting and chat apps, project management tools, and more. Here are the basics that should apply for all of them.&lt;/p&gt;

&lt;p&gt;Let’s start with the classic page tags that are used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;title&lt;/code&gt; tag - page title, used as a default for any platform/app&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;description&lt;/code&gt; - as part of default preview text&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;canonical&lt;/code&gt; - full URL with no extra variables like campaign referrer info&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open graph tags have become the standard for sharing links. These are the tags mainly used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;og:title&lt;/code&gt; - if you want to show as an override for your &lt;code&gt;title&lt;/code&gt; tag&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;og:description&lt;/code&gt; - an override for your &lt;code&gt;description&lt;/code&gt; tag&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;og:url&lt;/code&gt; - override for &lt;code&gt;canonical&lt;/code&gt; tag&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;og:image&lt;/code&gt; - the preview thumbnail image&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note that you don't need to include &lt;code&gt;og:title&lt;/code&gt;, &lt;code&gt;og:description&lt;/code&gt;, or &lt;code&gt;og:url&lt;/code&gt; tags if you want to just use the content from the classic page tags.&lt;/p&gt;

&lt;p&gt;And these are the guidelines for the preview thumbnail:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;1200x630&lt;/code&gt; pixels is the standard image size&lt;/li&gt;
&lt;li&gt;Images can get scaled and cropped depending on the platform/app&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;JPEG&lt;/code&gt;, &lt;code&gt;GIF&lt;/code&gt;, or &lt;code&gt;PNG&lt;/code&gt; formats, with &lt;code&gt;WEBP&lt;/code&gt; starting to get supported&lt;/li&gt;
&lt;li&gt;Image file size shouldn’t exceed 5MB&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://blocksedit.com/content-code/designing-metadata/" rel="noopener noreferrer"&gt;Here's a working example&lt;/a&gt; along with additional options of what you can do.&lt;/p&gt;

</description>
      <category>html</category>
      <category>opengraph</category>
      <category>seo</category>
      <category>socialmedia</category>
    </item>
    <item>
      <title>Modern form validation</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Mon, 12 May 2025 19:16:00 +0000</pubDate>
      <link>https://dev.to/ovidem/modern-form-validation-10b9</link>
      <guid>https://dev.to/ovidem/modern-form-validation-10b9</guid>
      <description>&lt;p&gt;Now that browsers have &lt;a href="https://blocksedit.com/content-code/modern-form-design/" rel="noopener noreferrer"&gt;form validation built-in&lt;/a&gt;, we can better use related form field CSS properties to improve the user experience. Add the more modern &lt;code&gt;has()&lt;/code&gt; CSS property to the mix and you can replace techniques that previously required Javascript with just a few lines of CSS code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add an asterisk to required fields
&lt;/h2&gt;

&lt;p&gt;Using an asterisk next to a form field label is a common way to indicate that the field is required. But instead of adding it manually, it would make more sense to show the asterisk automatically based on whether the field itself is actually required. Here's how to do just that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;form div:has(label + *:required) label::after, form fieldset:has(*:required + label) legend::after {
  content: "*";
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A container is needed for each field and its corresponding label. For radio buttons and checkboxes, using &lt;code&gt;fieldset&lt;/code&gt; acts as the container, and the field &lt;code&gt;legend&lt;/code&gt; is used instead of label.&lt;/p&gt;

&lt;h2&gt;
  
  
  Highlight invalid fields
&lt;/h2&gt;

&lt;p&gt;While the browser will prompt users if a required field is not filled out, or is filled out incorrectly, it does this only after the form is submitted. With the CSS below, this can be done on each text field, as the user is entering in their details.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;form input:focus:invalid, form textarea:focus:invalid, form select:focus:invalid {
  border-color: #b91616;
  background-color: #f1e5e5;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The field textbox or dropdown is shown with a dark red border and light red background when the user clicks into a field and the field doesn't meet the required criteria. It also works for field types like &lt;code&gt;email&lt;/code&gt; that need a specific format for its contents. You can go further and use &lt;code&gt;:focus:valid&lt;/code&gt; to indicate when a field does meet its requirements.&lt;/p&gt;

&lt;p&gt;Change submit button state&lt;br&gt;
As further indication of the state of form fields, you can change the submit button to make it look like it's disabled until all required fields are filled out, and are valid:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;form:has(*:invalid) input[type="submit"] {
  background-color: #aaa;

  &amp;amp;:hover {
    background-color: #aaa;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This does not actually disable the button, it only changes its appearance. It still functions as a way to notify the user of which fields are missing information.&lt;/p&gt;

&lt;p&gt;To see working examples of these techniques, along with other form field formatting options, check out our free &lt;a href="https://blocksedit.com/starter-page-components/" rel="noopener noreferrer"&gt;Starter theme&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>forms</category>
    </item>
    <item>
      <title>Modern email design for web designers</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Tue, 02 Apr 2024 18:43:03 +0000</pubDate>
      <link>https://dev.to/ovidem/modern-email-design-for-web-designers-f46</link>
      <guid>https://dev.to/ovidem/modern-email-design-for-web-designers-f46</guid>
      <description>&lt;p&gt;Looking at most email code, you’ll find that it’s difficult to read at first glance. CSS is used primarily inline. And the worst part of it, tables are used for layout. This is because of Outlook for Windows, the Microsoft Internet Explorer of the email world. It also makes other things difficult, like using background images.&lt;/p&gt;

&lt;h2&gt;
  
  
  A more modern approach
&lt;/h2&gt;

&lt;p&gt;However, Microsoft has announced this past year that it is finally replacing its Outlook for Windows rendering engine. Even though the transition may take a while, the percentage of Outlook for Windows users is already pretty low. It's only Outlook specifically on Windows that's the issue, on other platforms it uses newer rendering engines.&lt;/p&gt;

&lt;p&gt;So at this point, it’s pretty safe to move away from supporting it. Plus you can do what people did during the Internet Explorer days: put up a note that’s only shown in Outlook for Windows to let your readers know to upgrade their email client. You can even include a link to a hosted version of your email that your readers can go to for proper rendering.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!--[if mso]&amp;gt;
  &amp;lt;p style="text-align: center;"&amp;gt;Email may not look quite right in Outlook for Windows. &amp;lt;a href="#" style="text-decoration: underline; color: #1467ac;"&amp;gt;View it in your browser.&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;
&amp;lt;![endif]--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Coding and testing
&lt;/h2&gt;

&lt;p&gt;With Outlook for Windows set aside, you can use div’s for layout the way you would for a website. And you can put all your CSS in the header of your HTML instead of inline within your HTML elements. You still can't use external CSS though. And no Javascript either.&lt;/p&gt;

&lt;p&gt;Testing the rendering of your email also gets easier. Before, you would have to use specialized tools to test for various old versions of Outlook for Windows. Now, you can just sign up for an Outlook.com account since it's eventually what will be used across the board for all Outlook apps.&lt;/p&gt;

&lt;p&gt;Another client to test for is Google Mail, which can be done with a Gmail.com account. And Apple Mail, on any Apple device. Apple Mail provides the best email rendering so you don't even really need to worry about it much if you're covering the other two. But these three make up the main ones you should test for. And for checking compatibility of specific code, &lt;a href="https://www.caniemail.com/"&gt;caniemail.com&lt;/a&gt; is an essential tool to use.&lt;/p&gt;

&lt;p&gt;If you'd like to see some example code that shows the difference between code that supports Outlook for Windows and more modern code, I use a &lt;a href="https://blocksedit.com/starter-email-template/"&gt;boilerplate email template&lt;/a&gt; that comes in different versions. And the &lt;a href="https://indieaisle.com/newsletter-template/"&gt;latest email template&lt;/a&gt; I worked on for Indie Aisle, is a fully modern example.&lt;/p&gt;

</description>
      <category>email</category>
      <category>webdev</category>
      <category>design</category>
    </item>
    <item>
      <title>How I organize my CSS</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Mon, 19 Feb 2024 01:24:00 +0000</pubDate>
      <link>https://dev.to/ovidem/how-i-organize-my-css-4513</link>
      <guid>https://dev.to/ovidem/how-i-organize-my-css-4513</guid>
      <description>&lt;p&gt;There is now browser support across the board (for more recent versions), for both &lt;a href="https://caniuse.com/?search=nesting"&gt;CSS nesting&lt;/a&gt;, and using &lt;a href="https://caniuse.com/?search=variables"&gt;variables&lt;/a&gt;. Both of these allow for a better way to structure your CSS and keep it more manageable while making changes to it.&lt;/p&gt;

&lt;p&gt;Excited about the nesting support, I decided to refactor the CSS for a couple of the sites I make updates to regularly: the one &lt;a href="https://distinctivequality.com/"&gt;you're reading this from&lt;/a&gt;, and the &lt;a href="https://blocksedit.com/"&gt;promo site for Blocks Edit&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Breaking things down and categorizing
&lt;/h2&gt;

&lt;p&gt;I use a global CSS file for a website with separate files for website sections that have considerable additions, like a blog. Those added CSS files are called in only on those sections. I often consider the homepage as its own section, along with certain landing pages that have a good amount of design elements that are specific to it.&lt;/p&gt;

&lt;p&gt;These are the general categories I break my CSS code down in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Global&lt;/strong&gt; - variables, any needed resets, and body options&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text formatting&lt;/strong&gt; - including for titles, and link properties&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layout&lt;/strong&gt; - container and CSS grid layout setup for columns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Utilities&lt;/strong&gt; - design patterns, like image and video formatting, buttons, forms, notices, share links, code example formatting, etc&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Header and footer&lt;/strong&gt; - along with their navigation
I will also have an area in the global CSS file that has the styling for secondary pages that its used on a lot.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Additional details
&lt;/h2&gt;

&lt;p&gt;One thing to consider with nested CSS is not overusing it, leaning towards a flatter structure, allowing elements to be more modular on their own.&lt;/p&gt;

&lt;p&gt;Besides nesting my elements and classes, the biggest noticeable change I made along the way was putting &lt;code&gt;@media&lt;/code&gt; declarations for both mobile and dark mode within individual elements instead of separating them into their own mobile and dark mode categories (which is why they're not on the list above).&lt;/p&gt;

&lt;p&gt;Global variables I mainly use for the site's standard colors and fonts. If I need to use them at any point, referencing the variables makes it easier than searching for the correct values every time.&lt;/p&gt;

&lt;p&gt;Keeping track of what CSS is being used (and where) and what isn’t can be tricky but I’ve found that the above format helps with this. When I make an update to a page, if I end up changing its design considerably, I end up first going to its section CSS where I can either modify currently used CSS, or remove it if I’m no longer using it.&lt;/p&gt;

&lt;p&gt;For examples of this approach, here is the &lt;a href="https://distinctivequality.com/style.css"&gt;global CSS for this site&lt;/a&gt;. And the &lt;a href="https://blocksedit.com/style.css"&gt;global CSS for the Blocks Edit website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I've also been working on &lt;a href="https://github.com/blocksedit/starter-page-template"&gt;a boilerplate template that's on GitHub&lt;/a&gt; that you can refer to which follows the methods above as well.&lt;/p&gt;

</description>
      <category>css</category>
      <category>code</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Sharing options without platforms</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Thu, 16 Nov 2023 18:24:00 +0000</pubDate>
      <link>https://dev.to/ovidem/sharing-options-without-platforms-cha</link>
      <guid>https://dev.to/ovidem/sharing-options-without-platforms-cha</guid>
      <description>&lt;p&gt;Instead of trying to account for all available options, we should now go with two universal sharing options: “Copy link” and “Send email”.&lt;/p&gt;

&lt;p&gt;“Copy link”, would work as a convenient way to copy the current page URL to the visitor’s clipboard. Here is Javascript code that will do that:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;async function copyShareLink() {
  let text = window.location.href;

  await navigator.clipboard.writeText(text);
  document.querySelector('#share-link').innerText = "Copied";

  setTimeout(() =&amp;gt; {
    document.querySelector('#share-link').innerText = "Copy Link";
  }, 1000);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With the HTML that triggers it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;a onclick="copyShareLink();" id="share-link"&amp;gt;Copy Link&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the CSS to make it feel like a link:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#share-link:hover {
  cursor: pointer;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;“Send email”, uses the oldest standard for sharing a web page, email, which is still commonly used today, and is guaranteed to still be used in the future! You can set it up to launch the visitor’s email app with a new email draft.&lt;/p&gt;

&lt;p&gt;Here's HTML + Javascript code that fills out the subject line with the page's title, and in the message includes the URL and the page's meta description, if available:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;a href="javascript:window.open('mailto:?subject='+document.title+'&amp;amp;body='+encodeURIComponent(document.querySelector('meta[name=description]').content)+'%20'+encodeURIComponent(window.location.href));"&amp;gt;Send Email&amp;lt;/a&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can see an example of the working code for both of these options at the end of &lt;a href="https://distinctivequality.com/blog/share-links/"&gt;this article's page&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>socialmedia</category>
      <category>code</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Levels of email dark mode</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Wed, 24 May 2023 21:17:36 +0000</pubDate>
      <link>https://dev.to/ovidem/levels-of-email-dark-mode-fgh</link>
      <guid>https://dev.to/ovidem/levels-of-email-dark-mode-fgh</guid>
      <description>&lt;p&gt;Setting up your email’s design for dark mode isn’t really &lt;a href="https://blocksedit.com/content-code/dark-mode-decision/"&gt;a choice&lt;/a&gt; since some email clients will do it anyway. This includes Gmail and Outlook which will invert background colors and text. This leads to potential accessibility issues that make your designs hard to read, or in some cases, completely unreadable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Forced dark mode
&lt;/h2&gt;

&lt;p&gt;So you’ll have to adapt to the way email clients treat your design for dark mode. The way to do this is to first test your email template in the email clients that will force color changes for your design. The &lt;a href="https://www.litmus.com/blog/the-ultimate-guide-to-dark-mode-for-email-marketers/"&gt;email clients to look out for&lt;/a&gt; are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Outlook 2021, Office 365, and Windows Mail, on Windows&lt;/strong&gt; - all do a full invert of colors across the board&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Outlook.com, on Windows (across all browsers)&lt;/strong&gt; - will invert some colors, but doesn’t always invert all background colors or text of certain elements, like buttons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gmail app, on iOS&lt;/strong&gt; - also does a full color invert&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gmail app, Android&lt;/strong&gt; - partially inverts colors, similar to Outlook.com&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Use &lt;a href="https://www.emailonacid.com/"&gt;Email on Acid&lt;/a&gt; or &lt;a href="https://www.litmus.com/"&gt;Litmus&lt;/a&gt; to get a range of test environments to look at.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making adjustments
&lt;/h2&gt;

&lt;p&gt;You can adjust some aspects of your design where necessary to account for the changes. Make sure your logo and transparent graphics look good on a darker background. Consider adding an outline around your logo to ensure it’s readable. Avoid text over background images since images don’t get inverted, but the text will.&lt;/p&gt;

&lt;p&gt;For Outlook.com, attributes are added to elements that change colors. So you can refer to those attributes and overwrite their changes by including classes in your HTML and then targeting them in your &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;For text color:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[data-ogsc] .classname { }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For background color:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[data-ogsb] .classname { }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Unfortunately, there are no other standard methods for adjusting colors for the rest of email clients that force dark mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  Optional dark mode
&lt;/h2&gt;

&lt;p&gt;Email clients that don’t force dark mode will allow you to set your own dark mode color scheme by having you use a media query in your &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; to specify what you want elements to look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@media (prefers-color-scheme: dark) { }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A meta tag is required for some email clients:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;meta name="color-scheme" content="light dark"&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Along with CSS definitions as well:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;:root {
  color-scheme: light dark;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For an example of a full template using dark mode, take a look at &lt;a href="https://blocksedit.com/starter-email-template/"&gt;the Starter template&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>design</category>
      <category>email</category>
      <category>code</category>
    </item>
    <item>
      <title>Getting your email layout to automatically adjust for mobile screen sizes</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Wed, 17 May 2023 20:01:43 +0000</pubDate>
      <link>https://dev.to/ovidem/getting-your-email-layout-to-automatically-adjust-for-mobile-screen-sizes-46pd</link>
      <guid>https://dev.to/ovidem/getting-your-email-layout-to-automatically-adjust-for-mobile-screen-sizes-46pd</guid>
      <description>&lt;p&gt;Adjusting your email for mobile doesn't have to be difficult. It comes down to using columns as a standard layout practice. The columns can then be resized and stacked for mobile screen sizes.&lt;/p&gt;

&lt;p&gt;Here's an example of what to add to your columns to do this, with CSS code that acts globally across your template.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blocksedit.com/content-code/template-technique-mobile/"&gt;View HTML/CSS code&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>design</category>
      <category>email</category>
      <category>code</category>
    </item>
    <item>
      <title>No more tables for email</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Thu, 17 Nov 2022 18:51:35 +0000</pubDate>
      <link>https://dev.to/ovidem/no-more-tables-for-email-219j</link>
      <guid>https://dev.to/ovidem/no-more-tables-for-email-219j</guid>
      <description>&lt;p&gt;Table layouts in email lead to a number of rendering and accessibility issues, so the less we use them the better. Outlook for Windows is the only reason we even need to use tables anymore and it's now at just around five percent of email clients used.&lt;/p&gt;

&lt;p&gt;So here’s an approach to not having to use tables for structure that's worth considering: use divs for structure only, and don’t do anything for Outlook, letting multi-column div layouts turn into single-column layouts in Outlook. Essentially making the Outlook version look similar to what you might do for a mobile version of a design.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blocksedit.com/content-code/no-more-tables-for-email/" rel="noopener noreferrer"&gt;More details on the approach&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>design</category>
      <category>email</category>
      <category>code</category>
    </item>
    <item>
      <title>Coding your emails for Outlook</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Thu, 23 Jun 2022 19:27:28 +0000</pubDate>
      <link>https://dev.to/ovidem/coding-your-emails-for-outlook-4e7d</link>
      <guid>https://dev.to/ovidem/coding-your-emails-for-outlook-4e7d</guid>
      <description>&lt;p&gt;Making your email design work for Microsoft Outlook can be a challenge. Here's an approach to take to still support unfortunate email users that use it while keeping your sanity!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use clean, accessible code first, Outlook code second&lt;/li&gt;
&lt;li&gt;Avoid tables and use ghost tables only when needed for Outlook&lt;/li&gt;
&lt;li&gt;Use both image width and height properties for Outlook&lt;/li&gt;
&lt;li&gt;Use VML method for background images&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blocksedit.com/content-code/dealing-with-outlook/"&gt;View code examples&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>design</category>
      <category>email</category>
      <category>code</category>
    </item>
    <item>
      <title>The modular design method</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Tue, 11 Jan 2022 19:43:46 +0000</pubDate>
      <link>https://dev.to/ovidem/the-modular-design-method-2cmg</link>
      <guid>https://dev.to/ovidem/the-modular-design-method-2cmg</guid>
      <description>&lt;p&gt;Modular design is a method for improving design and production workflows by using components-based design and layout patterns that overlap structural coding practices. This design approach breaks apart content and design elements and puts them back together based on these guidelines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Content - text pieces and images&lt;/li&gt;
&lt;li&gt;Components - reusable, standalone elements like buttons and titles, the building blocks of your content&lt;/li&gt;
&lt;li&gt;Regions - groups of content content pieces and components, arranged in a very specific way&lt;/li&gt;
&lt;li&gt;Sections - stackable containers of regions between the header and footer to create an overall layout&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/blocksedit/modular-design"&gt;View the paper on GitHub&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>design</category>
      <category>architecture</category>
      <category>designsystem</category>
    </item>
    <item>
      <title>Simple guide to accessibility in email design</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Wed, 30 Sep 2020 18:14:03 +0000</pubDate>
      <link>https://dev.to/ovidem/simple-guide-to-accessibility-in-email-design-4i2g</link>
      <guid>https://dev.to/ovidem/simple-guide-to-accessibility-in-email-design-4i2g</guid>
      <description>&lt;p&gt;The basics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make your design easy to read&lt;/li&gt;
&lt;li&gt;Use alt tags and descriptions for images&lt;/li&gt;
&lt;li&gt;Set a presentation role on tables used for design&lt;/li&gt;
&lt;li&gt;Use headers for titles&lt;/li&gt;
&lt;li&gt;Use p tag for paragraph text&lt;/li&gt;
&lt;li&gt;Make sure the lang attribute is set&lt;/li&gt;
&lt;li&gt;Encode any special characters&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://blocksedit.com/content-code/accessibility-habit/"&gt;Read the short design and coding guide&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>email</category>
      <category>design</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A template for building a design system for your email's content production</title>
      <dc:creator>Ovi Demetrian Jr</dc:creator>
      <pubDate>Wed, 19 Aug 2020 17:28:30 +0000</pubDate>
      <link>https://dev.to/ovidem/a-template-for-building-a-design-system-for-your-email-s-content-production-agc</link>
      <guid>https://dev.to/ovidem/a-template-for-building-a-design-system-for-your-email-s-content-production-agc</guid>
      <description>&lt;p&gt;Using a design system helps your team follow branding and design guidelines and more efficiently produce emails. The Starter Email Design System is a template you can use as a starting point for your organization's email design system.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/blocksedit/starter-email-design-system"&gt;Check out the repo on GitHub&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>showdev</category>
      <category>productivity</category>
      <category>documentation</category>
      <category>email</category>
    </item>
  </channel>
</rss>
