<?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: Mac Daniel</title>
    <description>The latest articles on DEV Community by Mac Daniel (@seibmacdaniel).</description>
    <link>https://dev.to/seibmacdaniel</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%2F169868%2F360a0796-6ee8-4f62-8502-7fc276ae32cb.jpeg</url>
      <title>DEV Community: Mac Daniel</title>
      <link>https://dev.to/seibmacdaniel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/seibmacdaniel"/>
    <language>en</language>
    <item>
      <title>How I Structure my SCSS Projects to Keep Myself from Going Insane</title>
      <dc:creator>Mac Daniel</dc:creator>
      <pubDate>Fri, 04 Oct 2019 12:32:54 +0000</pubDate>
      <link>https://dev.to/seibmacdaniel/how-i-structure-my-scss-projects-to-keep-myself-from-going-insane-3jk0</link>
      <guid>https://dev.to/seibmacdaniel/how-i-structure-my-scss-projects-to-keep-myself-from-going-insane-3jk0</guid>
      <description>&lt;p&gt;We can't install SCSS and expect a web project to just magically fix itself, unfortunately. With all the designs I’ve built from scratch in HTML and SCSS, I’ve come to realize that &lt;strong&gt;structure&lt;/strong&gt; is the underlying concept that makes projects easy to maintain, provides clarity, and ultimately keeps me from losing it. &lt;em&gt;Ha-ha!&lt;/em&gt; &lt;/p&gt;




&lt;p&gt;Okay, since I'm a designer, this structure is based off of &lt;a href="https://bradfrost.com/blog/post/atomic-web-design/" rel="noopener noreferrer"&gt;&lt;strong&gt;Atomic Design&lt;/strong&gt;&lt;/a&gt;. If you aren’t familiar with it, it’s basically having smaller components be combined with other smaller components to build bigger ones until you’ve built the pages of the website.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fatomicdesign.bradfrost.com%2Fimages%2Fcontent%2Fatomic-design-molecules.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fatomicdesign.bradfrost.com%2Fimages%2Fcontent%2Fatomic-design-molecules.png" alt="Atomic Design by Brad Frost"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, note that I’ve changed some of the terminologies because I'm weirded out by saying &lt;em&gt;molecules&lt;/em&gt; and &lt;em&gt;organisms&lt;/em&gt; in my projects. I prefer to use more accessible terms for people who are not necessarily designers and coders but are possibly concerned about bits and pieces in the user interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fiosz67fmsavmwsxhmiwg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fiosz67fmsavmwsxhmiwg.jpg" alt="Revised Terminologies"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;High level folders and files&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It’s important to note that the main folders need to sort out neatly in the hierarchy to make browsing files a breeze. The folders are arranged from the non-tangibles to tangible elements of the website.&lt;/p&gt;

&lt;pre&gt;
/abstracts
/atoms
/blocks
/components
/frames
/pages
css.scss
&lt;/pre&gt;

&lt;p&gt;At least in my case, this arrangement makes pointing to a particular location more obvious. And as a UX designer, I can't stress this enough. I once worked on a project where all partials were stored in a single directory so we ended up constantly navigating a long list of unsorted files. &lt;em&gt;Fun!&lt;/em&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Abstracts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Abstracts contain rules and functions that govern the styles but are not visually tangible all by themselves. Rules and properties like text alignment, layers, and positioning shared among the more tangible elements are considered abstracts.&lt;/p&gt;

&lt;pre&gt;/abstracts
    ∟ /mixins
    ∟ _alignment.scss
    ∟ _animation.scss 
    ∟ _appearance.scss
    ∟ _layers.scss    
    ∟ _layout.scss    
    ∟ _positions.scss 
    ∟ _sizes.scss
&lt;/pre&gt;  

&lt;h2&gt;
  
  
  &lt;strong&gt;Atoms&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Atoms represent the smallest tangible elements in the website like colors, fonts, and icons. They are visually rendered in the page but need other atoms to make them look right.&lt;/p&gt;

&lt;pre&gt;/atoms
    ∟ /colors
    ∟ /icons  
    ∟ /images
    ∟ /typography
        ∟ _fonts.scss
        ∟ _sizes.scss
        ∟ _styles.scss
&lt;/pre&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Blocks&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Blocks are a combination of one or more atoms that visually render elements in the page. Buttons, which could be a combination of text, color, and icon, are considered to be a part of this group— the building blocks of the website.&lt;/p&gt;

&lt;pre&gt;/blocks
    ∟ _buttons.scss
    ∟ _cards.scss
    ∟ _labels.scss
&lt;/pre&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Components&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Components are the more prominent features of the website which can stand on their own and be reused in different pages. &lt;/p&gt;

&lt;pre&gt;/components
    ∟ _article.scss
    ∟ _feed.scss
    ∟ _footer.scss
&lt;/pre&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Frames&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Frames contain the bigger layouts that hold components into place. These include the main-aside combos, grids, sections, and wrappers. &lt;/p&gt;

&lt;pre&gt;/frames
    ∟ _columns.scss
    ∟ _grids.scss
    ∟ _sections.scss
    ∟ _wrappers.scss
&lt;/pre&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Pages&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Page-specific styles are made in this directory. These could contain either supplementary styles or overriding styles.&lt;/p&gt;

&lt;pre&gt;/pages
    ∟ _about-us.scss
    ∟ _products.scss
&lt;/pre&gt;




&lt;p&gt;If you feel like this is something you can use from now on, the next step is pretty much breaking down your design into this hierarchy. Conflicts are expected to arise especially if Atomic Design wasn't observed in the design phase.&lt;/p&gt;

&lt;p&gt;By adhering to this, you might be knowingly and unknowingly encouraging rules and guidelines which could improve consistency and quality. &lt;/p&gt;

&lt;p&gt;For example, you could set a margin rule for a component being used in different parts of the website. Because the space around that component could be unpredictable, and you might not want to target that component every time just to apply a bottom margin, you could implement utility classes as a rule.&lt;/p&gt;

&lt;p&gt;So instead of overriding properties like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;}&lt;/span&gt;
&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;.component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;25px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;span class="nc"&gt;.container2&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;.component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;45px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You could just do something like:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.component&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="err"&gt;//&lt;/span&gt; &lt;span class="err"&gt;no&lt;/span&gt; &lt;span class="err"&gt;margins&lt;/span&gt; &lt;span class="err"&gt;specified&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.mb-sml&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.mb-med&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;25px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Then in HTML:&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;“component&lt;/span&gt; &lt;span class="na"&gt;mb-sml&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;“component&lt;/span&gt; &lt;span class="na"&gt;mb-med&lt;/span&gt;&lt;span class="err"&gt;”&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Still, I would say that it will take you a couple of tries and a deep understanding of what you’re working on before you could finalize these rules. After all, there's usually more than one way of doing things. Don’t forget to document your code thru comments so that it’s easier to make tweaks and minimize the learning curve for the newcomers.&lt;/p&gt;

&lt;p&gt;The project base is available on &lt;a href="https://github.com/xavierpdaniel/scss-project" rel="noopener noreferrer"&gt;&lt;strong&gt;GitHub&lt;/strong&gt;&lt;/a&gt; with a little styling for you to explore and use. Feel free to build on it and let me know your thoughts in the comments so we can all make the CSS process better for everyone.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/xavierpdaniel" rel="noopener noreferrer"&gt;
        xavierpdaniel
      &lt;/a&gt; / &lt;a href="https://github.com/xavierpdaniel/scss-project" rel="noopener noreferrer"&gt;
        scss-project
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A standard SCSS project structure
    &lt;/h3&gt;
  &lt;/div&gt;
&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Moving into Vue.js&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The main difference I have right now as I’m learning Vue.js is that I move the SCSS component partials to each their own Vue components. &lt;/p&gt;

&lt;p&gt;I also have to generate a &lt;em&gt;base.scss&lt;/em&gt; in the SCSS folder which I then import into those components to serve as abstracts.&lt;/p&gt;

&lt;pre&gt;
/src
    ∟ /assets
    ∟ /components
    ∟ /scss
        ∟ /abstracts
        ∟ /atoms
        ∟ /blocks
        ∟ base.scss
&lt;/pre&gt;

&lt;p&gt;So in the Vue component:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight vue"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;script&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;&lt;/span&gt;&lt;span class="k"&gt;style&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;“scss”&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    @import “../scss/base”;

    .component{
        //some properties
    }

&lt;span class="nt"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="k"&gt;style&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;em&gt;Aaand that's it&lt;/em&gt;. I hope you find this useful. I'll catch you guys on the next one!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>beginners</category>
      <category>scss</category>
    </item>
    <item>
      <title>3 easy-to-apply CSS improvements that you can use in your project right now</title>
      <dc:creator>Mac Daniel</dc:creator>
      <pubDate>Mon, 30 Sep 2019 23:36:06 +0000</pubDate>
      <link>https://dev.to/seibmacdaniel/3-easy-to-apply-css-improvements-that-you-can-use-in-your-project-right-now-208e</link>
      <guid>https://dev.to/seibmacdaniel/3-easy-to-apply-css-improvements-that-you-can-use-in-your-project-right-now-208e</guid>
      <description>&lt;p&gt;CSS can be messy, and it usually is whether for the lack of conventions or well thought-out systems of doing things. This is why easy fixes with little to no effort is a breath of fresh air in a project that could be suffocating on a bloated code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Font Loading
&lt;/h2&gt;

&lt;p&gt;If your project was created before May of 2019, you probably don’t have a font-display property set for your Google fonts. &lt;em&gt;Font display&lt;/em&gt; defines the way they are loaded (Here's a &lt;a href="https://font-display.glitch.me"&gt;demo&lt;/a&gt; with simulation). For me, &lt;em&gt;swap&lt;/em&gt; works best to assure that text content are loaded immediately while the actual font is still downloading. Other values are &lt;em&gt;none&lt;/em&gt;, &lt;em&gt;block&lt;/em&gt;, &lt;em&gt;optional&lt;/em&gt;, and &lt;em&gt;fallback&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The easiest way to do this is add the &lt;em&gt;&amp;amp;display=swap&lt;/em&gt; at the end of the import link.Like so:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;@import url('&lt;a href="https://fonts.googleapis.com/css?family=Roboto&amp;amp;display=swap'"&gt;https://fonts.googleapis.com/css?family=Roboto&amp;amp;display=swap'&lt;/a&gt;);&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;or if you’re hosting the fonts yourself:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;@font-face{&lt;br&gt;
    font-family: ‘Roboto’;&lt;br&gt;
    font-display: swap;&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Buttery-Smooth Scrolling
&lt;/h2&gt;

&lt;p&gt;Divs with scrollable content are a staple of websites to manage larger content without using significant amount of screen real estates. However, you might notice that in iOS, scrolling through these divs could feel glitchy and a bit unresponsive.&lt;/p&gt;

&lt;p&gt;You may dd the -webkit-overflow-scrolling property to improve it.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.scrollable-div{&lt;br&gt;
    overflow-y: scroll;&lt;br&gt;
    -webkit-overflow-scrolling: touch;&lt;br&gt;
}&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Empty Elements
&lt;/h2&gt;

&lt;p&gt;With components whose content are generated thru tinyMCE, say article body content, I always run into the problem of editors unmindfully adding unnecessary line-breaks.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.article p:empty { display: none; }&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In this case I target the empty paragraphs inside the article. With this I can effortlessly get rid of them and at the same time maintain the visual rules of the website.&lt;/p&gt;




&lt;p&gt;Do you have other easy CSS hacks for existing projects? Share them in the comments below. I'm all ears!&lt;/p&gt;

&lt;p&gt;I'll also be sharing &lt;em&gt;Easy-to-apply CSS before starting a project&lt;/em&gt;. Stay tuned if you're interested.&lt;/p&gt;

</description>
      <category>css</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>An Incredibly Easy Way to Manage Layers in SCSS</title>
      <dc:creator>Mac Daniel</dc:creator>
      <pubDate>Sat, 28 Sep 2019 02:53:43 +0000</pubDate>
      <link>https://dev.to/seibmacdaniel/an-incredibly-easy-way-to-manage-layers-in-scss-42c1</link>
      <guid>https://dev.to/seibmacdaniel/an-incredibly-easy-way-to-manage-layers-in-scss-42c1</guid>
      <description>&lt;p&gt;If you’ve come across websites that uses 0, 1, 999, 99999, 9999999 as z-index values, then you’ve probably already guessed that the layers have been arbitrarily arranged and therefore poses the imminent headache of maintaining those websites in the future.&lt;/p&gt;

&lt;p&gt;The way I manage layers is thru &lt;strong&gt;SCSS placeholders&lt;/strong&gt;. Assuming I have a couple of layered components to deal with, I extend a placeholder  with the same class name but prefixed with %layer-.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nc"&gt;.nav&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="c1"&gt;// some properties&lt;/span&gt;
    &lt;span class="k"&gt;@extend&lt;/span&gt; &lt;span class="nv"&gt;%layer-nav&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.dimmer&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// some properties&lt;/span&gt;
    &lt;span class="k"&gt;@extend&lt;/span&gt; &lt;span class="nv"&gt;%layer-dimmer&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.modal&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// some properties&lt;/span&gt;
    &lt;span class="k"&gt;@extend&lt;/span&gt; &lt;span class="nv"&gt;%layer-modal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Then, in a separate SCSS partial called &lt;strong&gt;_layers.scss&lt;/strong&gt;, I lay these placeholders down, each in a one-liner manner so I can easily glance over the layers and their corresponding values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nv"&gt;%layer-nav&lt;/span&gt;  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;%layer-dimmer&lt;/span&gt;   &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;11&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;%layer-modal&lt;/span&gt;    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;12&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;I also don’t mind extending the placeholder in different components first before declaring them because the compiler shall indicate some errors which I use to easily encode them in the layers partial file later on.&lt;/p&gt;

&lt;p&gt;And that’s pretty much it. Because z-index values are implemented as placeholders, we don’t need to constantly revisit components just to adjust the values. We also don’t have to put a lot of comments to note how one thing affects another. And most importantly, we don’t have to jump &lt;em&gt;tens and hundreds&lt;/em&gt; (or even thousands) of units just to make sure a box appears on top!&lt;/p&gt;

&lt;p&gt;It’s also &lt;strong&gt;worth noting&lt;/strong&gt; that in this implementation of @extend, sharing the same placeholder across multiple components may not be the best idea because of the naming convention.[EDIT] You're better off using variables in this case, as pointed out in the comments below.&lt;/p&gt;

&lt;p&gt;I hope you guys find this useful as I have. Let me know what you think or if there’s an even easier way, feel free to share. I’ll be sure to check it out.&lt;/p&gt;

</description>
      <category>css</category>
      <category>beginners</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What do developers wish designers knew?</title>
      <dc:creator>Mac Daniel</dc:creator>
      <pubDate>Thu, 08 Aug 2019 15:01:44 +0000</pubDate>
      <link>https://dev.to/seibmacdaniel/what-do-developers-wish-designers-knew-4i75</link>
      <guid>https://dev.to/seibmacdaniel/what-do-developers-wish-designers-knew-4i75</guid>
      <description>&lt;p&gt;With an increasing number of designers and developers being more and more collaborative, I still read and hear a good amount about the gap these teams have in the process. &lt;/p&gt;

&lt;p&gt;In hopes of bridging the gap and finding the missing pieces of the puzzle, I ask: &lt;strong&gt;what are the things developers wish designers knew?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What are the pain points being disregarded (knowingly and unknowingly) by design teams to give way for their visual pursuits?&lt;/p&gt;

&lt;p&gt;And how can we improve our dynamics as teams working on the same product?&lt;/p&gt;

&lt;p&gt;Your insights will be greatly appreciated and shared.&lt;/p&gt;

</description>
      <category>design</category>
      <category>css</category>
      <category>frontend</category>
      <category>discuss</category>
    </item>
    <item>
      <title>5 Realizations About Speaking (after attending a painful developer meetup)</title>
      <dc:creator>Mac Daniel</dc:creator>
      <pubDate>Mon, 05 Aug 2019 03:59:14 +0000</pubDate>
      <link>https://dev.to/seibmacdaniel/5-realizations-about-speaking-after-attending-a-painful-developer-meetup-4mo3</link>
      <guid>https://dev.to/seibmacdaniel/5-realizations-about-speaking-after-attending-a-painful-developer-meetup-4mo3</guid>
      <description>&lt;p&gt;Yesterday I attended the worst &lt;em&gt;tech talk&lt;/em&gt; I've been in. It's a developer meetup-turned-workshop in Makati. As a designer learning Vue.js, I came in more of an observer so I already saw it not going so well for me. I really just wanted some perspective and to be able to say &lt;em&gt;at least I tried&lt;/em&gt;. The thing is, even the developers in the audience couldn't quite understand what was going on.&lt;/p&gt;

&lt;p&gt;It wasn't the venue nor the general topics that made the talk horrible but the way the speaker handled it. And instead of listing down what went wrong here are my five realizations about presenting/speaking, validated by the lack of them in yesterday's event.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;1. Structure is everything&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It's important to setup and communicate how everything will fit into the equation. A speaker shouldn't just randomly pursue ideas. He/she must specify the journey from point A to point B and the topics needed therein.&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;talk/course outline&lt;/em&gt; needs to be presented to the audience. It's not just 'old-fashioned' but it's effective in marking milestones for the audience. It gives a sense of how far along the discussion is and how much more is to be discussed.&lt;/p&gt;

&lt;p&gt;There should also be a sort of learning model to make things more predictable for the curious audience. For example, a talk could be broken down in a &lt;em&gt;Principle-Example-Hands-on&lt;/em&gt; pattern which allows for a consistent flow. The speaker could first introduce a core principle before giving real-life examples related to the audience's work situations before allowing them to try it themselves.&lt;/p&gt;

&lt;p&gt;It could also &lt;em&gt;start with the endpoint&lt;/em&gt; (point B) making the audience understand WHAT they can achieve, and then break it down so they know HOW to arrive at such an output.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;2. Know your audience&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;It's pretty much a no-brainer but I'm always surprised how many speakers disregard this. Knowing the audience either ahead of time or on-the-spot gives speakers an idea of pace and tone required for the talk.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Are they formal or casual? Are they timid or outspoken? Are they beginners or experts?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;If the audience are adults, the talk needs to be practical and should directly convey its importance for adults that could be busy about their family, business, and other responsibilities. The value proposition should be obvious and upfront.&lt;/p&gt;

&lt;p&gt;If the audience is a mix of experts and newbies, the speaker has to find the middle ground and make sure they're not heavily favoring one over the other.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;3. Rehearse the presentation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I can't imagine the cringe people feel whenever a presentation is obviously rushed and unorganized. Good presentation just makes sense while bad presentation sticks out like a sore thumb. It's the responsibility of the speaker to make sure that the flow of ideas and the sequence of topics effortlessly moves the talk forward.&lt;/p&gt;

&lt;p&gt;The speaker could impart relatable stories and sometimes jokes to break the monotony. Avoid using Google as a visual aid.&lt;/p&gt;

&lt;p&gt;The speaker shouldn't set himself/herself up to fail and be caught in a situation he/she can't resolve.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;4. Be mindful of time&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Respect people's need to go to the comfort room, take breaks, and leave on time. A speaker should communicate that these are allowed and that some breaks occur at specific times. &lt;/p&gt;

&lt;p&gt;Being mindful of time also help the speaker in identifying the scope of his/her topic. &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;5. Gather Feedback&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As with anything interactive, speakers need assessment. They need to have feedback forms ready before dismissing the audience at the end of the talk. &lt;em&gt;You never know how you did&lt;/em&gt;, or there could be unanswered questions that the speaker could have attended to if not for the lack of time. Giving people the option to rate and give speakers feedback imparts a sense of openness which is a quality of a good speaker.&lt;/p&gt;




&lt;p&gt;In the end, it's important to assess ourselves as speakers. Good speakers can turn complex ideas into simple blocks that the audience can easily understand and play around with. Good speakers can turn things around to aid the dynamics of the audience while at the same time adhering to structure. And lastly, they should seek to inspire - making the audience feel that the effort was worth it.&lt;/p&gt;

&lt;p&gt;What other pointers would you add to these?&lt;/p&gt;

</description>
      <category>presenting</category>
      <category>techtalks</category>
      <category>meetups</category>
      <category>speaking</category>
    </item>
  </channel>
</rss>
