<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Max Quattromani</title><description></description><link>https://maxquattromani.com/</link><atom:link href="https://maxquattromani.com/feed.xml" rel="self" type="application/rss+xml"/><item><title>Accelerated Mobile Pages</title><description>&lt;figure&gt;&lt;img src=&quot;/images/amp.gif&quot; alt=&quot;a vanity shot of Max&quot; width=&quot;800&quot; height=&quot;299&quot; loading=&quot;lazy&quot;&gt;
&lt;figcaption&gt;Photo Credit: &lt;a href=&quot;http://codecanyon.net/item/accelerated-mobile-pages-amp-for-wordpress/14825063&quot;&gt;codecanyon.net&lt;/a&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;AMP HTML is HTML with some restrictions for reliable performance and some extensions for building rich content beyond basic HTML. The AMP JS library ensures the fast rendering of AMP HTML pages. The Google AMP Cache (optionally) delivers the AMP HTML pages.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Last October, Google announced the introduction of its Accelerated Mobile Pages project, a new open-source initiative aiming to “dramatically improve the performance of the mobile web.”&lt;/p&gt;
&lt;p&gt;For several reasons I decided to give AMP a runthrough on my own site. Firstly, my site is almost entirely static - making it a perfect candidate. Secondly, the content that primarily changes are the articles, like this one. Last, but not least, I want to give my site the fastest possible deliver in the most performant manner.&lt;/p&gt;
&lt;p&gt;Leading up to this switch I had always taken pride in my clean semantic markup and lean CSS. In fact, when it came time to inline my CSS in the &quot;amp-custom&quot; style tag (which has a limit of 50kb) I was pleasantly surprised that I was already under that threshold.&lt;/p&gt;
&lt;p&gt;My biggest bump in the road came in the form of mobile navigation. I previously had a nice off-canvas mobile nav solution that I have, since creation, reused on a number of projects. AMP does not allow author-written JavaScript or any third-party JS. So I immediately had a broken experience in mobile. Fortunately I had a free Sunday evening and rewrote the &lt;code&gt;&lt;/code&gt;&lt;/p&gt;&lt;nav&gt; to be entirely HTML/CSS - which is nice.&lt;p&gt;&lt;/p&gt;
&lt;p&gt;On my TODO list are integration of AMP&#39;s modal/dialog boxes and playing with the carousels.&lt;/p&gt;
&lt;p&gt;Lot&#39;s more to come - but the end result is a homepage that now loads in 563ms.&lt;/p&gt;
&lt;p&gt;With that kind of speed I can&#39;t complain and neither will visitors to my site.&lt;/p&gt;
&lt;/nav&gt;</description><pubDate>Mon, 28 Mar 2016 00:00:00 GMT</pubDate><link>https://maxquattromani.com/accelerated-mobile-pages/</link><guid isPermaLink="true">https://maxquattromani.com/accelerated-mobile-pages/</guid><category>css</category><category>html</category></item><item><title>Website Launch List</title><description>&lt;p&gt;&lt;img src=&quot;/images/launch.jpg&quot; alt=&quot;shuttle launch&quot; width=&quot;800&quot; height=&quot;431&quot; loading=&quot;lazy&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;[x] meta tags&lt;/li&gt;
&lt;li&gt;[ ] Viewport tags&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;[ ] favicon(s)&lt;/li&gt;
&lt;li&gt;[ ] Twitter Cards&lt;/li&gt;
&lt;li&gt;[ ] OG tags&lt;/li&gt;
&lt;li&gt;[ ] print.css&lt;/li&gt;
&lt;li&gt;[ ] WAI-ARIA&lt;/li&gt;
&lt;li&gt;[ ] Images - alt tags&lt;/li&gt;
&lt;li&gt;[ ] Page titles&lt;/li&gt;
&lt;li&gt;[ ] Terms of Use&lt;/li&gt;
&lt;li&gt;[ ] Privacy&lt;/li&gt;
&lt;li&gt;[ ] Style Guide&lt;/li&gt;
&lt;li&gt;[ ] Pattern Library&lt;/li&gt;
&lt;li&gt;[ ] robots.txt&lt;/li&gt;
&lt;li&gt;[ ] humans.txt&lt;/li&gt;
&lt;li&gt;[ ] sitemap.xml&lt;/li&gt;
&lt;li&gt;[ ] Google Analytics&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Sun, 02 Aug 2015 00:00:00 GMT</pubDate><link>https://maxquattromani.com/website-launch-list/</link><guid isPermaLink="true">https://maxquattromani.com/website-launch-list/</guid><category>development</category></item><item><title>Atomic Design &amp; Development</title><description>&lt;blockquote&gt;
&lt;p&gt;WE’RE NOT DESIGNING PAGES, WE’RE DESIGNING SYSTEMS OF COMPONENTS&lt;/p&gt;
&lt;p&gt;~ STEPHEN HAY&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Atomic design is a system for web development that focuses on the smallest, most common elements with clarity and precision first and then works it&#39;s way up and out to build more complex components.&lt;/p&gt;
&lt;h3&gt;Commonalities&lt;/h3&gt;
&lt;p&gt;All websites at their core are composed of the same tags.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt; to tell the browser this is an HTML document&lt;br&gt;
&lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; defines the document body&lt;br&gt;
&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; a container for encapsulating elements&lt;br&gt;
&lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; defines sections in a document&lt;br&gt;
&lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt; represents a container for introductory content&lt;br&gt;
&lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt; defines a footer for a document or section&lt;br&gt;
&lt;code&gt;&amp;lt;h1&amp;gt; - &amp;lt;h6&amp;gt;&lt;/code&gt; for headings&lt;br&gt;
&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; tags for paragraphs&lt;br&gt;
&lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; tags for links and navigation&lt;br&gt;
&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; for images&lt;br&gt;
&lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;or ``&lt;/p&gt;&lt;ol&gt;&lt;code&gt;for unordered lists  &lt;/code&gt;&lt;li&gt;&lt;code&gt;for list items  &lt;/code&gt;&lt;label&gt;&lt;code&gt;to define a user input  &lt;/code&gt;&lt;input&gt;&lt;code&gt;to capture user input  &lt;/code&gt;&lt;button&gt;&lt;code&gt;a clickable event element  &lt;/code&gt;&lt;form&gt;` to create user input forms&lt;p&gt;&lt;/p&gt;
&lt;p&gt;With these elements we can create &lt;em&gt;almost&lt;/em&gt; any website. There are a slew of additional elements to make development more semantic (and we&#39;ll use a few in an example shortly), but if you take a look under the hood of any random site - you&#39;re gonna find these.&lt;/p&gt;
&lt;p&gt;Let&#39;s take a look at the pieces that make up &lt;strong&gt;Atomic Design&lt;/strong&gt; and how they come together.&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Atoms&lt;/h3&gt;
&lt;p&gt;As stand-alone elements, these tags are &lt;strong&gt;Atoms&lt;/strong&gt;; the foundational building blocks of web development. Developing &lt;strong&gt;Atoms&lt;/strong&gt; thoughtfully starts us on our path to &lt;u&gt;clean&lt;/u&gt;, &lt;u&gt;modular&lt;/u&gt;, &lt;u&gt;scalable&lt;/u&gt;, and &lt;u&gt;reuseable&lt;/u&gt; &lt;strong&gt;Molecules&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;Molecules&lt;/h3&gt;
&lt;p&gt;Individually &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;,&lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; aren&#39;t terribly useful, but combined they become a &lt;strong&gt;Molecule&lt;/strong&gt;: snippets, or collections of code, that define and perform an action for the user.&lt;/p&gt;
&lt;h3&gt;Organisms&lt;/h3&gt;
&lt;p&gt;Place one or multiple of these &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;,&lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;, and &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; &lt;strong&gt;Molecules&lt;/strong&gt; inside the &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; tag and now we have an &lt;strong&gt;Organism&lt;/strong&gt;: a reusable component; a pattern that we can repeat on any page of our site.&lt;/p&gt;
&lt;p&gt;Let&#39;s consider another &lt;strong&gt;Organism&lt;/strong&gt;; imagine an article with an image and some accompanying text. We might use three &lt;strong&gt;Atoms&lt;/strong&gt; to accomplish this: &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; for our picture, &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; for our headline, and &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; for our text content. This, too, is a pattern we can see ourselves repeating throughout the site.&lt;/p&gt;
&lt;h3&gt;Templates&lt;/h3&gt;
&lt;p&gt;Now that we have a few &lt;strong&gt;Organisms&lt;/strong&gt; that could be combined, we can create a &lt;strong&gt;Template&lt;/strong&gt;: page-level objects that provide context to the user.&lt;/p&gt;
&lt;p&gt;Our article, followed by our form, could be a method of engaging the user with content and then encouraging them to interact with us for more information.&lt;/p&gt;
&lt;p&gt;Other template examples would include our site header, navigation menu, and footer.&lt;/p&gt;
&lt;h3&gt;Pages&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Pages&lt;/strong&gt;, the final frontier! As our templates move into place, they become specific instances of content. Pages are a combination of templates; for instance: our site header, navigation, the article, the form, and footer.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Organization&lt;/h2&gt;
&lt;h3&gt;Embrace the Cascade&lt;/h3&gt;
&lt;p&gt;To keep our code lean and clean, we use the power of the CSS (Cascading Style Sheets) cascade to create elements that build on each other and allow for customization without bleeding out back into our base.&lt;/p&gt;
&lt;p&gt;For any given CSS file we create, we follow this order:&lt;/p&gt;
&lt;h4&gt;Base&lt;/h4&gt;
&lt;p&gt;&lt;cite&gt;Base rules are the defaults. They are almost exclusively single element selectors but could include attribute selectors, pseudo-class selectors, child selectors or sibling selectors. Essentially, a base style says that wherever this element is on the page, it should look like this.&lt;sup&gt;&lt;a href=&quot;https://smacss.com/&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;h4&gt;Layout&lt;/h4&gt;
&lt;p&gt;&lt;cite&gt;Layout rules divide the page into sections. Layouts hold one or more modules together.&lt;sup&gt;&lt;a href=&quot;https://smacss.com/&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;h4&gt;Module&lt;/h4&gt;
&lt;p&gt;&lt;cite&gt;Modules are the reusable, modular parts of our design. They are the callouts, the sidebar sections, the product lists and so on.&lt;sup&gt;&lt;a href=&quot;https://smacss.com/&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;h4&gt;State&lt;/h4&gt;
&lt;p&gt;&lt;cite&gt;State rules are ways to describe how our modules or layouts will look when in a particular state. Is it hidden or expanded? Is it active or inactive? They are about describing how a module or layout looks on screens that are smaller or bigger. They are also about describing how a module might look in different views like the home page or the inside page.&lt;sup&gt;&lt;a href=&quot;https://smacss.com/&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;h4&gt;Theme&lt;/h4&gt;
&lt;p&gt;&lt;cite&gt;Finally, Theme rules are similar to state rules in that they describe how modules or layouts might look. Most sites don’t require a layer of theming but it is good to be aware of it.&lt;sup&gt;&lt;a href=&quot;https://smacss.com/&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;This organization style is know as &lt;a href=&quot;https://smacss.com/&quot;&gt;SMACSS (Scalable, Modular Architecture for CSS)&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Example Time!&lt;/h3&gt;
&lt;p&gt;Let&#39;s say we&#39;ve been tasked with building a widget that is an information card of Senior Leadership Members. Our widget will have a close state and a reveal state.&lt;/p&gt;
&lt;hr&gt;
&lt;h5&gt;Our Close State&lt;/h5&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/quattromani/placewise/gh-pages/sandbox/card/images/show.png&quot; alt=&quot;alt text&quot; title=&quot;Sample Component&quot;&gt;&lt;/p&gt;
&lt;h5&gt;Our Reveal State&lt;/h5&gt;
&lt;p&gt;&lt;img src=&quot;https://raw.githubusercontent.com/quattromani/placewise/gh-pages/sandbox/card/images/hide.png&quot; alt=&quot;alt text&quot; title=&quot;Sample Component&quot;&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;What elements will we need to pull together to make this happen?&lt;/em&gt;&lt;br&gt;
All common elements that do exactly what we need them to do.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;div&amp;gt;  
&amp;lt;section&amp;gt;  
&amp;lt;header&amp;gt;  
&amp;lt;footer&amp;gt;   
&amp;lt;h5&amp;gt;   
&amp;lt;p&amp;gt;  
&amp;lt;a&amp;gt;  
&amp;lt;img&amp;gt;       
&amp;lt;button&amp;gt;   
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Setup&lt;/h3&gt;
&lt;p&gt;In order for us to develop atomically and semantically the first thing we do is define a containing &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; for our component and name it aptly: &#39;card-component&#39;. All of our component&#39;s code will be nested inside of this element. Everything that we put inside &#39;card-component&#39; can now remain semantic and clean - any base styles we&#39;ve written will be inherited and all we&#39;ll need to do to style our card is build off of those existing base decisions.&lt;/p&gt;
&lt;p&gt;This method enables us to reuse existing styles and write new code for unique components quickly without ever worrying about that code corrupting other components. Bonus points for never needing to &lt;code&gt;!important&lt;/code&gt; again.&lt;/p&gt;
&lt;p&gt;Note that we hardly passed any additional classes to elements inside the new component. Because we&#39;ve already established our base styles for images and buttons and we want to write as little code as possible, we&#39;ll use those existing classes to craft our component. We&#39;ve avoided being duplicative &lt;em&gt;AND&lt;/em&gt; if we decide to change how the buttons on this site look in the future, VOILA!, this component will automatically get that update.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;div class=&quot;card-component&quot;&amp;gt;
  &amp;lt;header&amp;gt;
    Information Card - {{ title }}
  &amp;lt;/header&amp;gt;

  &amp;lt;section&amp;gt;
    &amp;lt;img class=&quot;left image-circular&quot; src=&quot;images/{{ image }}.jpg&quot;&amp;gt;
      &amp;lt;address&amp;gt;
        &amp;lt;h5&amp;gt;{{ name }}&amp;lt;/h5&amp;gt;
        {{ address }}&amp;lt;br&amp;gt;
        {{ city }}, {{ state }} {{ zip }}&amp;lt;br&amp;gt;
        &amp;lt;a class=&quot;tel&quot; href=&quot;tel:+{{ phone }}&quot;&amp;gt;{{ phone }}&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;
        &amp;lt;a href=&quot;mailto:{{ email }}&quot;&amp;gt;{{ email }}&amp;lt;/a&amp;gt;
       
       &amp;lt;hr&amp;gt;
       
       &amp;lt;p&amp;gt;{{ info }}&amp;lt;/p&amp;gt;
    &amp;lt;/address&amp;gt;
  &amp;lt;/section&amp;gt;

  &amp;lt;footer&amp;gt;
    &amp;lt;button class=&quot;btn btn-primary&quot;&amp;gt;
      Show Details
    &amp;lt;/button&amp;gt;
  &amp;lt;/footer&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With these &lt;strong&gt;Atoms&lt;/strong&gt; already defined for the site that will use this component as such:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sass mixins and variables have been utilized; See Noel&#39;s article &quot;Why We Sass&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;
    a {
      @include margin;
      @include padding;
      background: transparent;
      vertical-align: baseline;
      font-family: inherit;
      font-weight: 700;
      color: $base-link-color;
      text-decoration: $text-decoration;
      cursor: pointer;
    }
    
    p,
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    ul,
    ol,
    dl,
    blockquote {
      clear: inherit;
      margin-bottom: $base-spacing / 3;
      vertical-align: middle;
    }
    
    p,
    .p {
      font-family: $base-font-family;
      word-wrap: break-word;
    
      &amp;amp;:only-child {
        @include margin;
      }
    }
    
    address {
      font-style: normal;
    }
    
    img {
      display: inherit;
      height: auto;
      border: 0;
      // style the alt text
      font-style: italics;
      color: $color-primary-red;
    
      &amp;amp;:after {
        content: &quot; (image)&quot;;
      }
    
      &amp;amp;.left {
        margin-right: $base-spacing / 2;
      }
    
      &amp;amp;.right {
        margin-left: $base-spacing / 2;
      }
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the use of a few helpers:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        
.image-circular,
%image-circular {
  @include border-radius(50%);
}

.left {
  float: left;
  left: 0;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We&#39;ll write some Sass for our new card component:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
.card-component {
  position: relative;
&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD
  
display: inline-block;
=======
  display: inline-block;

&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; eac0ee0399a3fc61db5d82d0697ca7d48a2ae834
  width: 100%;
  border-radius: $base-border-radius;

  header {
    @include padding($base-spacing);
    border: 1px solid $color-primary-orange;
    border-radius: $base-border-radius $base-border-radius 0 0;
    background-color: $color-primary-orange;
    color: $color-white;
    text-align: center;
  }

  section {
    display: none;
    @include margin;
    @include padding($base-spacing);
    border-left: 1px solid $color-light-grey;
    border-right: 1px solid $color-light-grey;
    background-color: $color-white;

    img {
      @include size(120px);
    }

    p {
      text-align: center;
    }
  }

  footer {
    @include padding($base-spacing);
    border: 1px solid $color-light-grey;
    border-radius: 0 0 $base-border-radius $base-border-radius;
    background-color: $color-light-grey;
    text-align: center;
  }
}
&lt;/code&gt;&lt;/pre&gt;    
&lt;p&gt;Now that we&#39;ve built our component, we can pass data into it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
{
  &#39;title&#39; : &#39;President&#39;,
  &#39;image&#39; : &#39;mortaaronson&#39;
   &#39;name&#39; : &#39;Mort Aaronson&#39;,
&#39;address&#39; : &#39;1390 Lawrence St.&#39;,
   &#39;city&#39; : &#39;Denver&#39;,
  &#39;state&#39; : &#39;CO&#39;,
    &#39;zip&#39; : &#39;80204&#39;,
  &#39;phone&#39; : &#39;(303) 296-2413&#39;,
  &#39;email&#39; : &#39;mort@placewise.com&#39;,
   &#39;info&#39; : &#39;30 years senior management of public and private corporations in tech, energy, media, advertising and food industries.&#39;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;In Conclusion&lt;/h3&gt;
&lt;p&gt;Atomic design &amp;amp; development is about making decisons early-on that provide both compliance and conformity to the site design - always with the ability to make changes in the most efficient way. Everything that we are building now uses this approach. With each new component and/or site we gain efficiencies and a library of scalable, reuseable, and independent components that we can quickly change from client to client.&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;h4&gt;Resources&lt;/h4&gt;
&lt;p&gt;[1] &lt;a href=&quot;https://smacss.com/&quot;&gt;SMACSS (Scalable, Modular Architecture for CSS)&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTML/Element&quot;&gt;https://developer.mozilla.org/en-US/docs/Web/HTML/Element&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://bradfrost.com/blog/post/atomic-web-design/&quot;&gt;http://bradfrost.com/blog/post/atomic-web-design/&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://responsivedesign.is/resources/videos/atomic-design&quot;&gt;http://responsivedesign.is/resources/videos/atomic-design&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;https://quattromani.github.io/placewise/sandbox/card/&quot;&gt;quattromani.github.io/placewise/sandbox/card/&lt;/a&gt;&lt;/p&gt;
&lt;/form&gt;&lt;/button&gt;&lt;/label&gt;&lt;/li&gt;&lt;/ol&gt;</description><pubDate>Wed, 25 Mar 2015 00:00:00 GMT</pubDate><link>https://maxquattromani.com/atomic-design-and-development/</link><guid isPermaLink="true">https://maxquattromani.com/atomic-design-and-development/</guid><category>css</category><category>html</category></item><item><title>Protoyping</title><description>&lt;p&gt;One of my favorite things to do as a front-end developer is to sandbox new components. Oh sure, we all have to bug fix, feature add, and unit test - but the chance to build something new, solve a new problem, start fresh brings a crazy kind of nerd-joy that I can&#39;t articulate well enough in this forum.&lt;/p&gt;
&lt;p&gt;I was thinking this morning while making breakfast about a new kind of layout and as I was plotting a little Sunday development; I realized that I have a very distinct process for jumping into these projects, but I&#39;ve never layed it out step-by-step.&lt;/p&gt;
&lt;p&gt;Previously I have laid-out my &lt;a href=&quot;/SDLC&quot;&gt;Software Development Life Cycle&lt;/a&gt; and as a theory I still refer to it when working with teams looking for an overall process. This is a different process, one with physical steps more clearly defined. One that pays criticial attention to the &lt;strong&gt;UI, Web Standards,&lt;/strong&gt; and &lt;strong&gt;Accessibility&lt;/strong&gt;. Additionally; protoyping components using this method, or a similar one, lends itself perfectly to the &lt;strong&gt;Agile Development&lt;/strong&gt; environments that so many of us work in now. Okay, here goes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
    Always a visual; as simple as a sketch or complete as a fully developed comp.
&lt;/li&gt;
&lt;li&gt;
    &lt;strong&gt;Mobile-First; HTML first&lt;/strong&gt; - the key to production-ready code written in the prototype phase is to be purely semantic. The path to purely semantic HTML is to establish it before any style or function code decisions are made.
&lt;pre&gt;&lt;code&gt;My compenents tend to follow this architecture (as an example):
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;div class=&quot;widget&quot;&amp;gt;
  &amp;lt;h3&amp;gt;Heading&amp;lt;/h3&amp;gt;
  &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;/ul&amp;gt;
  &amp;lt;label for=&quot;&quot;&amp;gt;Input Field&amp;lt;/label&amp;gt;
  &amp;lt;input type=&quot;text&quot;&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This sets me up for really clean CSS, with no crazy nesting requirements. It also let&#39;s me maintain global styles for elements like headings, lists, and forms - with the power to customize on an as-needed basis.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
    It&#39;s CSS time! Creating &lt;strong&gt;reusable, modular, and DRY components&lt;/strong&gt; that don&#39;t bleed into the DOM and can therefore be used on any page of a site, and along with any other component, makes front-end to back-end hand-offs a breeze.
    &lt;ul&gt;
        &lt;li&gt;
            CSS is written in Sass/Less.
        &lt;/li&gt;
        &lt;li&gt;
            Taskrunners: &lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt&lt;/a&gt; or &lt;a href=&quot;http://gulpjs.com/&quot;&gt;Gulp&lt;/a&gt; take care of compiling, concatenating, and minifying as I work - this keeps code performant and end-product-testable in the early stage. A big win! There&#39;s nothing worse than trying to improve performance once a project has reached QA or UAT.
        &lt;/li&gt;
        &lt;li&gt;
            I have some &lt;a href=&quot;/styleguide#bestPractices-anchor&quot;&gt;CSS/Sass best practices&lt;/a&gt; already established. Adhering to these consistently prevents a lot of headache.
        &lt;/li&gt;
    &lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;
.widget {
  h3 {
    ...
  }

  ul {
    ...

    li {
      ...
    }
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;/li&gt;
&lt;li&gt;
    Browser Test.
&lt;pre&gt;&lt;code&gt;&amp;lt;ul class=&quot;bulleted&quot;&amp;gt;
    &amp;lt;h4&amp;gt;Desktop Browsers&amp;lt;/h4&amp;gt;
    &amp;lt;li&amp;gt;Chrome - last 3&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;Firefox - last 3&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;Safari - most recent release&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;Internet Explorer (IE8 - IE11)&amp;lt;/li&amp;gt;
    &amp;lt;hr&amp;gt;
    &amp;lt;h4&amp;gt;Mobile Browsers&amp;lt;/h4&amp;gt;
    &amp;lt;li&amp;gt;
        iOS: Safari
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
        iOS: Google Chrome
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
        Android 4.x: Google Chrome
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
        Android 4.x: Firefox
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
        Windows: IE Mobile
    &amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
    The last piece to get added is functionality; Javascript. I lean towards UI functionality written in jQuery more than vanilla javascript. I have some specific, past-experience reasons for this:
&lt;pre&gt;&lt;code&gt;&amp;lt;ul class=&quot;vertical bulleted&quot;&amp;gt;
    &amp;lt;li&amp;gt;
        Typical front-end functionalities revolve around reveals; hide/show, slide-up, slide-down, close, etc. These are quickly, and reliably achieved using jQuery.
    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
        I like to write my FED functions as self-instantiating plugins. This allows me to reuse utilities that can be chained along with already existing ones. The idea for this came from  a terrific article on &amp;lt;a href=&quot;http://learn.jquery.com/plugins/basic-plugin-creation/&quot;&amp;gt;Creating a Basic Plugin.&amp;lt;/a&amp;gt; I structure any new plugin following this format:
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;
(function($) {

  $.fn.widgetFunction = function() {
    $(&#39;.widgetFunction&#39;).change(function(){
      if ($(this).val() != &#39;null&#39;){
        window.location.href = $(this).val();
      }
    });
  }

}(jQuery));

$(&#39;.widgetFunction&#39;).widgetFunction();
&lt;/code&gt;&lt;/pre&gt;           
&lt;pre&gt;&lt;code&gt;    &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;
        Lastly; I find that javascript almost always gets re-written by the back-end developer after hand-off anyway. 
    &amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h3&gt;Create a process and stick to it&lt;/h3&gt;
&lt;p&gt;This process works for me. It is based on the roles that I have had the opportunity to hold. Your experience and/or role on a team may be different, but having a process, however it looks, will increase your productivity, improve your code quality, and make you the hero of your back-end team.&lt;/p&gt;
&lt;p&gt;Now get in the sandbox and start playing!&lt;/p&gt;
</description><pubDate>Sun, 30 Nov 2014 00:00:00 GMT</pubDate><link>https://maxquattromani.com/prototyping/</link><guid isPermaLink="true">https://maxquattromani.com/prototyping/</guid><category>css</category><category>UI</category></item><item><title>Creating the Style Guide</title><description>&lt;p&gt;Back in February I was looking to move on from my position as Manager of Front-End Development at TWC. Through a previous co-worker, I was connected to and had the chance to interview with GLG. During the phone screen I got asked one of those great interview questions; &quot;What are you passionate about?&quot;&lt;/p&gt;
&lt;p&gt;I paused, collected my thoughts, and began talking about style guides and pattern libraries. As a designer and developer, I have a true affinity for the math and art that goes behind great web development - out of this comes my love for patterns.&lt;/p&gt;
&lt;p&gt;As we wrapped up, I got asked to come to Austin to meet the team and do a round-table type interview, the catch was that I had to bring a project, code and all, to share with them. Nothing I had done for money, but what I did for ME!&lt;/p&gt;
&lt;p&gt;For about a year or so previously, I had been collecting a number of different compartmentalized snippets, best practices, and modular components. I decided to use this opportunity to create a collective style guide. This interview project became &lt;a href=&quot;http://quattromani.github.io/scaffold/&quot;&gt;Scaffold&lt;/a&gt;, my boilerplate/starter kit.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Since then, every site I have built has been built on &lt;a href=&quot;http://quattromani.github.io/scaffold/&quot;&gt;Scaffold&lt;/a&gt;. I have improved it along the way and made the process simpler to spin up new sites using Bower (more on this in a future post).&lt;/p&gt;
&lt;p&gt;As it has improved and become something that I wanted to show-off, I have become more and more critical of things that are included or, possibly more important, not included.&lt;/p&gt;
&lt;p&gt;About a week ago, &lt;a href=&quot;/styleguide&quot;&gt;my personal site style guide&lt;/a&gt; got a shout-out from &lt;a href=&quot;http://una.github.io/&quot;&gt;Una Kravets&lt;/a&gt; in her article about &lt;a href=&quot;http://una.github.io/pattern-libraries/&quot;&gt;Style Guides and Pattern Libraries&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is the first-time I had ever had anyone write about my work other than me - kinda cool really! and I&#39;m super-grateful to Una for the mention.&lt;/p&gt;
&lt;p&gt;Just a few days later I read a &lt;a href=&quot;https://twitter.com/CamWardzala/status/533333088710164480&quot;&gt;twitter thread&lt;/a&gt; started by &lt;a href=&quot;https://twitter.com/CamWardzala&quot;&gt;Cameron Wardzala&lt;/a&gt; that germinated into an idea to create a solid style guide resource.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/anna_debenham&quot;&gt;Anna Debenham&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/Falkowski&quot;&gt;Brendon Falkowski&lt;/a&gt;, and &lt;a href=&quot;https://twitter.com/brad_frost&quot;&gt;Brad Frost&lt;/a&gt; have spearheaded this awesome project of collecting &lt;a href=&quot;http://styleguides.io&quot;&gt;resources and examples of style guides&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Fortunately for me, Anna included the ability for the community to contribute. I offered up my style guide as an example and it was graciously accepted - again, very cool!!&lt;/p&gt;
&lt;p&gt;Since she published the site I have had the chance to read all of the other resources and be inspired by the other examples. This newfound collective intelligence is probably gonna prompt me to improve mine even more. Stay tuned.&lt;/p&gt;
&lt;p&gt;...and buy Anna&#39;s book &lt;a href=&quot;http://maban.co.uk/projects/front-end-style-guides/&quot;&gt;Front-End Style Guides&lt;/a&gt;.&lt;/p&gt;
</description><pubDate>Mon, 17 Nov 2014 00:00:00 GMT</pubDate><link>https://maxquattromani.com/creating-the-style-guide/</link><guid isPermaLink="true">https://maxquattromani.com/creating-the-style-guide/</guid><category>css</category><category>UI</category></item><item><title>Using Google Docs with Jekyll</title><description>&lt;p&gt;I&#39;ve been using Jekyll for almost a year now and every time I do it gets better. So much so that I decided to build a client-site using Jekyll as the CMS. I of course discussed this with them first, disclosed some of the differences between WP (which they were currently using) and Jekyll. After some research and compromises, we decided to &#39;go for it!&#39;&lt;/p&gt;
&lt;p&gt;Fast-forward four months, site is launched and live, client loves it - but the reality of losing some of that WYSIWYG functionality was sobering and concerning them.&lt;/p&gt;
&lt;p&gt;We revisited earlier conversations about this, clarifying that Jekyll is a &#39;static&#39; site generator, but now we needed a solution. I couldn&#39;t find any packages out there that solved this exact problem, so I came up with my own. Rudimentary certainly, but completely effective.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A specific request my client had was to be able to update their careers page, basically a listing of states containing available jobs; just a list, nothing fancy - enter Google Docs, mainly spreadsheets.&lt;/p&gt;
&lt;p&gt;Google Spreadsheets can be output as json data, so a simple list formated correctly replaces the data I had originally built in _data/careers.yml, then looping through this data using jQuery .getJson(), I get the data output as needed. I give my client access to the spreadsheet, they update it and voila - their page is updated.&lt;/p&gt;
&lt;p&gt;Here&#39;s the little script I&#39;m using:
&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
$.getJSON(&#39;https://spreadsheets.google.com/feeds/list/1IT57mBl8Eu8r-yCRt8srnxYb9nAtp57U1ZpHq5nosY0/od6/public/values?alt=json&#39;, function(data) {

  for (i = 0; i &amp;lt; data.feed.entry.length; i++) {
    var state = data.feed.entry[i][&#39;gsx$state&#39;][&#39;$t&#39;];
    var title = data.feed.entry[i][&#39;gsx$title&#39;][&#39;$t&#39;];

      careers = $(&#39;&amp;lt;ul class=&quot;bulleted&quot;/&amp;gt;&#39;);
      careers.append(&#39;&amp;lt;li&amp;gt;&#39; + title + &#39;&amp;lt;/li&amp;gt;&#39;);

      if (state == &#39;California&#39;) {
        $(&#39;.california-list&#39;).append(careers);
      }

      if (state == &#39;Colorado&#39;) {
        $(&#39;.colorado-list&#39;).append(careers);
      }

      if (state == &#39;Texas&#39;) {
        $(&#39;.texas-list&#39;).append(careers);
      }

      if (state == &#39;Utah&#39;) {
        $(&#39;.utah-list&#39;).append(careers);
      }
  }

});
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;The end-result looks like this: &lt;a href=&quot;http://terracareassociates.com/careers/&quot;&gt;http://terracareassociates.com/careers/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the future, I&#39;ll be expanding this to additional portions of the site so they have more control. This keeps them out of the code and build process and presents as a simple solution to simple, needed content updates.&lt;/p&gt;
&lt;p&gt;Next, I&#39;ll discuss moving them off of the Jekyll blogging platform and using Bloggers API on a subdomain to give them more control of their articles - again removing that non-WYSIWYG hurdle.&lt;/p&gt;
</description><pubDate>Wed, 05 Nov 2014 00:00:00 GMT</pubDate><link>https://maxquattromani.com/using-google-docs-with-jekyll/</link><guid isPermaLink="true">https://maxquattromani.com/using-google-docs-with-jekyll/</guid><category>jekyll</category><category>google</category></item><item><title>The Last Conversation I had with my Mom</title><description>&lt;figure&gt;&lt;img src=&quot;/images/estes.jpg&quot; alt=&quot;The Lake in Estes Park&quot; width=&quot;800&quot; height=&quot;300&quot; loading=&quot;lazy&quot;&gt;
&lt;p&gt;A year ago today, it was a Tuesday, was the last time I had a conversation with my mom.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;I was pacing the halls of the Stanley Hotel in Estes Park, CO. I was there for the #cssdevconf and had wrapped up my sessions for the day. I had texted to her to catch up like we did pretty often and had something to share with her. I was feeling elated that I was being paid to attend this conference and stay at this cool hotel and isn&#39;t my life great, blah blah blah, and I couldn&#39;t wait to share that with her.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;img src=&quot;/images/madj.jpg&quot; alt=&quot;text conversation with mom&quot;&gt;
&lt;p&gt;Mom was a big part of the reason I was there - she pushed me, she prodded me, she cajoled me to go back to school a few years earlier. It was a particularly tough time for me personally and it worked. It kept me focused and driven.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;After finishing with degree in hand, I landed this great job at Time Warner Cable and was having success after success, personally and professionally.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;We talked for about an hour. Well, I talked, she did what she usually did, she just listened. Mostly about me, my kids - the usual. She shared with me that she was frustrated because she needed to have another follow-up surgery and was angry that she wouldn&#39;t be golfing for a while, likely until after Thanksgiving - and did we want to come to Texas for Turkey Day.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;We wrapped up our conversation and I wished her well and told her I&#39;d call her after her surgery to see how she was.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;That was the last time I heard her voice.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;On Thursday my dad called in tears, frustrated, cursing God. It hadn&#39;t gone well and there was a good chance that mom would need long-term care after she went home. He knew how independent she was and that she was gonna hate having someone else hovering and helping with normal tasks that we all take for granted.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;I made plans to leave after work the next day and drive down to be with them and help for a few days. He called the next day in better spirits and it looked like it was all gonna be ok. I was relieved and told him I might come down in a week - give her time to get home and settled, I reasoned.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;The next morning, Saturday, I was out picking up coffee and donuts when my bother Jimmy called to tell me that it had turned for the worse and he was really worried. I went home and took a shower while Patti packed a bag for me and I was on the road less than 25 minutes after that call.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;My brother Scott had flown down and it timed just right that I picked him up at the airport when I hit town. By the time we had gotten to the hospital my dad hadn&#39;t slept in three days and hadn&#39;t left the hospital.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;I sent him home with Scott to get some rest and I&#39;d stay by moms side for the night.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Mom hung on until just into Monday morning.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I miss her every day. We still talk every day. Well, I talk, and I know she&#39;s listening.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;/figure&gt;</description><pubDate>Wed, 22 Oct 2014 00:00:00 GMT</pubDate><link>https://maxquattromani.com/the-last-conversation-i-had-with-my-mom/</link><guid isPermaLink="true">https://maxquattromani.com/the-last-conversation-i-had-with-my-mom/</guid><category>personal</category></item><item><title>Copying the sender with Brace Forms</title><description>&lt;h2&gt;tl;dr - &lt;a href=&quot;#code&quot;&gt;take me to the code&lt;/a&gt;
&lt;br&gt;&lt;br&gt;&lt;/h2&gt;
&lt;p&gt;&lt;br&gt;&lt;br&gt;
I have fallen in love with Jekyll and hosting projects on Github. This has become my inspiration workflow.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Get an idea.&lt;/li&gt;
&lt;li&gt;Buy a domain name.&lt;/li&gt;
&lt;li&gt;Run my framework build.&lt;/li&gt;
&lt;li&gt;Sprinkle in Jekyll.&lt;/li&gt;
&lt;li&gt;Change the CNAME file, and BAM!
&lt;br&gt;&lt;br&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As I started my &lt;strong&gt;Jekyll Journey&lt;/strong&gt; I realized that my typical email.php goto for forms wasn&#39;t gonna work (Github doesn&#39;t support php). So I went all #lazyweb and sent a tweet out asking for recommendations, along with googling an answer.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;There are a number of decent solutions out there, &lt;a href=&quot;http://getsimpleform.com&quot;&gt;simpleform&lt;/a&gt; and &lt;a href=&quot;http://wufoo.com&quot;&gt;wufoo&lt;/a&gt; just to name a few. The limitations to those services though are primarily the number of forms you can process in a month. With both of those previusly mentioned - that limit is 100 per month. I need more than that for a few of my builds, so I kept looking.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Behold! &lt;a href=&quot;http://forms.brace.io&quot;&gt;forms.brace.io&lt;/a&gt; -- this just became my new favorite thing! Super simple integration, up to 1000 submissions per month with their free account and some built in goodies like _replyto, _cc, and _next. So I dove right in - everything was solid.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Shortly after I launched a little web-based office football pool picking site, I had a feature request to copy the submitter with their picks from the form.
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;I emailed the team at &lt;a href=&quot;http://brace.io&quot;&gt;brace.io&lt;/a&gt; -- who has been super responsive and helpful in the early on if/when I ran into any issues -- and asked if/how I could use the _cc operative to do such a thing. Unfortunately, they had no baked in solution.
&lt;br&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;--
&lt;br&gt;&lt;br&gt;
&lt;a name=&quot;code&quot;&gt;&lt;/a&gt;
I needed this and I didn&#39;t want to start over with a different form solution so I looked at a few different methods involving Jekyll liquid tags; either I&#39;m not smart enough or liquid tags can&#39;t capture and output values as they&#39;re input into a field.
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;No matter, a much simpler solution was available:&lt;br&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;code&quot;&gt;&lt;/a&gt;
First things first -- here&#39;s my form field for the user to input an email. I want to capture this!&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;input id=&quot;email&quot; type=&quot;email&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;br&gt;
&lt;p&gt;I will need this captured email address to populate the value attribute of this hidden field:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
&amp;lt;input type=&quot;hidden&quot; id=&quot;copy&quot; name=&quot;_cc&quot; value=&quot;&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;*that _name=&quot;_cc&quot; is the Brace method for, you guessed it, cc&#39;ing an additional email box
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;I WAY overthought this - the solution using jQuery was apparently just too straightforward the first time around:
&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
$(function() {
  $(&#39;#email&#39;).change(function() {
    var value = $(this).val();
    $(&#39;#copy&#39;) .val(value);
  });
});
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now whenever that email input changes, wether typed OR autofilled, the value in my hidden field populates and brace does the rest on the backend.
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;Hope this helps! Happy Jekyll&#39;ing!!&lt;/p&gt;
</description><pubDate>Fri, 19 Sep 2014 00:00:00 GMT</pubDate><link>https://maxquattromani.com/copying-the-sender-with-brace-forms/</link><guid isPermaLink="true">https://maxquattromani.com/copying-the-sender-with-brace-forms/</guid><category>css</category><category>jquery</category><category>jekyll</category><category>brace</category></item><item><title>Designs by Puppy</title><description>&lt;p&gt;Just a quick thought I had this morning: my puppy, Pixel, is the perfect user-testing subject. Pixel has pretty basic needs: feed me, shelter me, scratch my belly, be kind to me.&lt;/p&gt;
&lt;h2&gt;--&lt;br&gt;
That&#39;s it.&lt;/h2&gt;
&lt;p&gt;Now I&#39;m not comparing human-users to dogs, but human&#39;s needs and wants, at a basal level, are pretty simple. The scope of those needs are vast and varied, but once the need is established - we just want to get it met.&lt;/p&gt;
&lt;p&gt;Too many times when designing something I find myself overcomplicating things, trying to &quot;think ahead&quot; of the way my users will interact with a component.&lt;/p&gt;
&lt;p&gt;At the end of the day, the thing I&#39;m building has to do the thing it was designed to do.&lt;/p&gt;
&lt;h2&gt;--&lt;br&gt;
That&#39;s it.&lt;/h2&gt;
&lt;p&gt;Everything else is superfluous. What &lt;a href=&quot;http://www.gregstanforth.com/&quot;&gt;my high school art teacher&lt;/a&gt; would call &quot;Visual Bullshit.&quot;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;My designs tend to lean to the simplistic already, but when I tell people that I am usaully referring to the visual aesthetic. Pixel would agree that I need to be more simplistic when tackling the functionality as well.&lt;/p&gt;
</description><pubDate>Thu, 28 Aug 2014 00:00:00 GMT</pubDate><link>https://maxquattromani.com/designs-by-puppy/</link><guid isPermaLink="true">https://maxquattromani.com/designs-by-puppy/</guid><category>design</category></item><item><title>Using calc() in less</title><description>&lt;p&gt;Not sure if anyone else has run into this problem, but to celebrate a victory pulled from the jaws of defeat, I thought I’d share this tip.&lt;/p&gt;
&lt;p&gt;To use css3 calc() with less you’ll need to play with the format a touch.&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;let’s assume a column gutter of .5em...in vanilla css, it looks like this -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
.half {
  float: left;
  width: calc(50% - .5em);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;but if you run this little gem through less, it outputs:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
.half {
  float: left;
  width: (49.5%);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;img src=&quot;/images/posts/hahaha.jpg&quot; alt=&quot;Hahaha, NO&quot;&gt;
&lt;p&gt;to get around this we need to tune down less’s aggression with the maths by escaping the percent unit.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
.half {
  float: left;
  width: calc(~&quot;50% - “.5em);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and huzzah! we get the expected output:&lt;/p&gt;
&lt;p&gt;.half {
float: left;
width: calc(50% - .5em);
}&lt;/p&gt;
</description><pubDate>Fri, 22 Aug 2014 00:00:00 GMT</pubDate><link>https://maxquattromani.com/using-calc-in-less/</link><guid isPermaLink="true">https://maxquattromani.com/using-calc-in-less/</guid><category>css</category></item></channel></rss>