<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Jeremy Osborn on Medium]]></title>
        <description><![CDATA[Stories by Jeremy Osborn on Medium]]></description>
        <link>https://medium.com/@jeremias?source=rss-ab925ef276d3------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*ta9845Zc4A6UcYrg.jpeg</url>
            <title>Stories by Jeremy Osborn on Medium</title>
            <link>https://medium.com/@jeremias?source=rss-ab925ef276d3------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 20:25:11 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@jeremias/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Improving Your Portfolio is Easier Than You Think]]></title>
            <link>https://medium.com/gymnasium/improving-your-portfolio-is-easier-than-you-think-b1430bbe1007?source=rss-ab925ef276d3------2</link>
            <guid isPermaLink="false">https://medium.com/p/b1430bbe1007</guid>
            <category><![CDATA[portfolio]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[storytelling]]></category>
            <category><![CDATA[branding]]></category>
            <dc:creator><![CDATA[Jeremy Osborn]]></dc:creator>
            <pubDate>Fri, 14 Apr 2023 17:24:59 GMT</pubDate>
            <atom:updated>2023-04-27T16:54:14.704Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="A wireframe web page that looks like an iceberg floating in the ocean. The part exposed to the air is a hand-drawn sketch, the part underwater is a polished webpage." src="https://cdn-images-1.medium.com/max/1024/1*_oxsI9l8Ip2-l0Ld6Z1Aow.png" /></figure><p>If you’re involved in the creation of digital products, you’re aware of the importance of having a portfolio to showcase your work. Whether you’re actively looking for a new job or considering a career change, it’s one of the first things you’ll be asked to share. Having said that, I’m willing to bet that if you ask 9 out of 10 professionals if they’re happy with the state of their portfolio, the answer will be “No.”</p><p>Chances are high that any given portfolio has one or more of these problems:</p><ul><li>Recent job and/or project history is missing or lacking in details.</li><li>The design of the website is dated.</li><li>The work shown doesn’t accurately represent the type of work you want to do in the future.</li></ul><p>This is not a new problem. But as the Director of Learning for <a href="https://thegymnasium.com/">Aquent Gymnasium</a>, part of my job is to pay attention to trends in the web industry, and I had a hunch that the role of portfolios had changed in recent years. To put this theory to the test, my colleague Justin Gagne (Design Lead) and I developed a pilot portfolio workshop for a small group of designers and developers.</p><p>Going into the workshop, we had a few assumptions about what we would encounter. Some of those assumptions were accurate, but there were a few surprises as well. So I’d like to share those surprises — or as I like to call them “insights” — with you, in the hopes that they will save you some time and effort when you begin to update your own portfolio.</p><h3>Why is it so hard to work on your own portfolio?</h3><p>Before sharing my insights, it’s worth defining our goals for the workshop. We knew that despite understanding the importance of a portfolio, many people felt overwhelmed or blocked from working on them and weren’t quite sure why. To provide structure and help, we had to understand what the specific challenges were.</p><p>Make no mistake, the challenges are real. In fact there’s an old proverb (bordering on cliché) that I’ve heard many web professionals reference over the years which is “The shoemaker’s children go barefoot.” This is generally used as an explanation for why one’s portfolio website has been so neglected. After all, if one is busy working on other people’s projects, that leaves little time and energy to work on your own.</p><p>There’s some validity to this, it definitely is easier to postpone your own project than it is to postpone one for a client or your regular job. After all, those pay the bills and one needs to be pragmatic.</p><p>But there are a few other reasons why working on your portfolio is difficult:</p><ul><li>One of the most challenging aspects is deciding what to include. Web professionals typically work on many projects in any given year, but not all of them may be relevant or appropriate to showcase in a portfolio, sometimes there are even legal reasons: for example many companies have NDAs (nondisclosure agreements) which prohibit the sharing of visuals or projects done while under contract or while employed.</li><li>People also have trouble deciding which projects best represent their skills and abilities, and this often leads to avoidance or focussing on the wrong things, such as taking a week to look for “the perfect” typeface or color scheme for their site.</li><li>Another challenge is figuring out how to organize and present one’s projects while finding the right balance between showcasing the work and providing context and explanation.</li></ul><p>When you add all of these challenges up, not to mention the fact that you have no project manager looking over your shoulder, it’s not surprising that portfolios get neglected. There’s also the question of motivation. If you’re happy and comfortable in your current gig, why burn extra calories on nights and weekends to do something that feels difficult? The problem is when circumstances change, if you suddenly need an up-to-date portfolio and you’re doing it under financial stress or time pressures, you’re now making a hard job even harder.</p><h3>Content truly is king</h3><p>Our original plan for this workshop was quite ambitious and included sessions on using mood boards and Figma prototypes to head in the direction of visual design. However, we ended up reducing the scope and in the end, it evolved into more of a writing and content strategy workshop. As veterans of the web industry, the old phrase “Content is king” came to mind. This means different things to different people, but for us it represents our belief that people spend a disproportionate amount of time on the visuals, the tech stack, and other aspects of their portfolios, and not enough on the core words and message they want to convey.</p><p>The path to good content started with a few deceptively simple questions we asked our attendees:</p><ul><li>What sort of work do you want to get in the future?</li><li>How would you describe your “personal brand” in a sentence or two?</li><li>What past projects are you most proud of, and how could you turn them into case studies?</li></ul><p>Make no mistake, these are hard questions to answer! Which is exactly why we asked them. By directing their focus to these difficult questions and giving them some tools to answer them, we helped attendees avoid the common trap mentioned earlier: namely the tendency to get distracted when faced with “the hard stuff.”</p><p><em>DIY Tip: You don’t have to be part of a workshop to work this way. Open up a document and begin by answering these three questions:</em></p><ul><li><em>What sort of work do you want to get in the future?</em></li><li><em>How would you describe your “personal brand” in a sentence or two?</em></li><li><em>What past projects are you most proud of, and how could you turn them into case studies?</em></li></ul><p><em>Next, consider keeping all your work in writing as long as possible before moving on to the design phase. Keep it simple and start with an About Page. If you want some context and structure, consider checking out our </em><a href="https://www.youtube.com/watch?v=DgungAdVLPA"><em>5-minute tutorial </em></a><em>on the topic.</em></p><h3>Accountability really works</h3><p>Accountability was the foundation of our workshop. When someone is working on their own with no oversight, self-imposed deadlines are incredibly difficult to follow. So, creating a formal structure that asks people to show up at a set time each day as part of a group was key. All workshop attendees knew what they were getting into. We didn’t call this a “bootcamp,” but it had a similar vibe — don’t sign up unless you’re willing to commit and put in the work.</p><p>To avoid a traditional “authoritarian” model where the teacher is the center of focus, we split people into breakout groups to give them a chance to inspire, help, and commiserate with each other. Additionally, because this was a remote workshop conducted by conference call, we also created a forum on our classroom site with daily assignments that required people to give feedback to get feedback.</p><p><em>DIY Tip: You can use this technique on your own by bringing in a collaborator early into your portfolio writing process. The only qualification for this person is to be someone you trust, and the simplest exercise is to read your content out loud to them (or vice-versa). You’d be surprised how effective this technique is. In fact, I’ve found that hearing my words out loud will instinctively prompt me to make useful revisions even before I receive “official” feedback from my collaborator.</em></p><h3>Your portfolio is less important than you think</h3><p>This insight might seem counter-intuitive, so bear with me. The role of the portfolio has changed substantially over the years; for example, the days of lugging a physical case of printouts to an interview are long gone. The role of the online portfolio has also changed over the last 10 years and specifically since 2020 when remote interviews and work suddenly became commonplace due to the pandemic. Here’s the big takeaway: the way people <em>find</em><strong> </strong>your portfolio has changed.</p><p>Today, chances are it’s not a search engine that brought someone to your portfolio site. Instead, intermediaries such as LinkedIn, Behance, Instagram, or GitHub are gateways to your lovingly crafted portfolio website. In many ways this changes the context and expectations your visitors have of you before even reading a single word on your site.</p><p>It’s also safe to say that people aren’t spending a whole lot of time looking at your content. According to a recent <a href="https://www.theladders.com/static/images/basicSite/pdfs/TheLadders-EyeTracking-StudyC2.pdf">eye-tracking study</a>, recruiters typically spend an average of 7.4 seconds looking at résumés. While résumés and portfolios are different, I suspect the conclusion is the same: the main audience for your portfolio is skimming your content quickly, not studying it in depth.</p><p>Rather than be discouraged by this, my stance is that anyone looking to make an impact with a portfolio can use this to their advantage. Take a step back and focus on the core aspects of what a portfolio is good at:</p><ul><li>It remains a great tool to communicate your ideas and approach to creative projects. No matter what your role, explaining your process and thinking is always going to be important.</li><li>Meeting someone in person or by phone or video is still the gold standard, but a portfolio continues to be an excellent way to establish your credibility and trustworthiness. Specifically, it allows you to emphasize your strengths such as your track record of producing high-quality work, or your ability to complete projects on time and on budget.</li></ul><p>Here’s the final insight: more than ever you need to focus on the sort of work you’d like to do in the future, define it with clarity, and then promote it loud and clear across all platforms. Yes, this includes the portfolio, but also your LinkedIn profile, your resumé, and any other social media you deem appropriate. This is hard work, no doubt, but it will pay off in the long run.</p><p><em>DIY Tip: You can perform a quick content audit of your own professional profile in a few minutes. Open up all your existing material at once: this might include a LinkedIn profile, resumé, portfolio, etc. Now do a quick compare and contrast: is everything aligned across all the platforms? For example, is your recent work up-to-date? Do you have a clear personal statement specifying the work you would like to do and is this message consistent? If you want to delve deeper into this topic, check out this </em><a href="https://youtu.be/m1vO-v2UGmk"><em>5-minute tutorial</em></a><em>.</em></p><h3>Final takeaways</h3><p>There’s an old saying in advertising: “If you don’t define your brand, other people will.” Typically, this refers to companies, but it applies to people and their portfolios as well. If you don’t define what you stand for and what makes you unique, your visitors will simply do it for you based on their own assumptions.</p><p>Our attendees told us that the most valuable aspect of the workshop for them was being given the chance to put time into writing and reflecting on their message and the actual value they had brought to past projects. The second most valuable takeaway was that the group setting gave them a much needed outside perspective. Sharing your work and inviting peer feedback might feel vulnerable… because it is! But if you want your portfolio to be the best it can be, it’s worth stepping out of your comfort zone.</p><p>Mind you, everything I described in this article are things you can do yourself, no workshop required. All it requires is a little time, commitment, and a document editor. Remember, standing out in the crowd these days is less about eye-catching visuals or skills and more about being crystal clear on what you’re good at and what work you want to do in the future. So what are you waiting for? Start improving your portfolio!</p><p><em>Want to be the first to know about future Gymnasium workshops? </em><a href="https://docs.google.com/forms/d/e/1FAIpQLSf6eNuGxcWjxgGfBREDp4o4ppUpRyk51jqf7LShMK5MWfGmgA/viewform"><em>Get on the list</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b1430bbe1007" width="1" height="1" alt=""><hr><p><a href="https://medium.com/gymnasium/improving-your-portfolio-is-easier-than-you-think-b1430bbe1007">Improving Your Portfolio is Easier Than You Think</a> was originally published in <a href="https://medium.com/gymnasium">Gymnasium</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[3 Tips for Chrome DevTools Users]]></title>
            <link>https://medium.com/gymnasium/three-tips-for-chrome-devtools-users-b1bbbc07daab?source=rss-ab925ef276d3------2</link>
            <guid isPermaLink="false">https://medium.com/p/b1bbbc07daab</guid>
            <category><![CDATA[chrome]]></category>
            <category><![CDATA[developer-tools]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[web-design]]></category>
            <dc:creator><![CDATA[Jeremy Osborn]]></dc:creator>
            <pubDate>Thu, 24 Aug 2017 03:03:44 GMT</pubDate>
            <atom:updated>2017-10-06T13:12:17.056Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oCRpx6KBXH8qnDfVtCpv-g.png" /></figure><p>Months ago, Keith Peters, instructor of the excellent <a href="https://thegymnasium.com/courses/GYM/104/0/about">JavaScript course</a> for our free online school <a href="https://thegymnasium.com/">Aquent Gymnasium</a>, was available to do a new Gym Short (one of our hour-long courses) for us. Now, Keith is a pretty sharp guy and could have taught a course on any number of subjects, but when I proposed the topic of “Chrome Developer Tools” and he agreed, I couldn’t have been happier.</p><p>Every web browser these days has a set of built-in developer tools which allows anyone to interact with the code of a web page or web application. These tools are used to troubleshoot common issues, and developers use them primarily to inspect and modify HTML, CSS, and JavaScript code. This process can also be done with a separate text-editing application, but developer tools speed up this process immeasurably.</p><p>DevTools can also do things that text editors typically don’t, such as show which assets a web page has requested or emulate a mobile device to help improve a responsive design. We chose to focus on Chrome’s version of developer tools because that browser is the most <a href="http://gs.statcounter.com/browser-market-share">widely used</a> — just keep in mind that its developer features are very similar to all other browsers.</p><h4>Why a course on DevTools is worth taking</h4><p>The first reason is that, as a designer/developer who’s been using web developer tools for over a decade, I’ve gotten a bit complacent in keeping up with the advances in browser technology. Inspecting a page and modifying the HTML and/or the CSS is something I do by habit, but it’s a bit like making a painting with a palette of only two colors, there’s a whole other spectrum out there that I’ve been neglecting.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/902/1*B9iskdkjwaTMzO8F_dTa_g.png" /></figure><p>The second reason is that as a producer of courses on web design and development at Gymnasium, I’ve seen all of our instructors use dev tools in interesting ways while teaching their courses. I wanted a way to collect these different techniques into a unified course because I knew it would be a valuable set of resources for our students.</p><h4>Our version of a Greatest Hits album</h4><p>In the spirit of discovery, here are 3 browser dev tips from our various courses that made me sit up and take notice when I first saw them. Please feel free to explore the courses themselves for more context, but if you currently know how to access Chrome DevTools, try these tips out now. You should be able to experiment with them on almost any web page you visit.</p><p><strong>1)</strong> The first tip is from the aforementioned <em>Chrome Developer Tools</em> course, and while basic, it’s also one I wish I had known earlier. In the following snippet you can see a developer who has just encountered an external CSS file that has been minified and is displayed as a single line stretching from here to Omaha, making it virtually impossible to do anything with. How do we turn this code into something easy to understand and work with?</p><ul><li>In the Sources tab, click on the double brackets in the lower-left corner in order to instantly format the CSS into something readable by humans.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/578/1*gFaqlTxjfUjTS9-4imZP8A.gif" /></figure><blockquote><strong>Bonus Tip</strong>: This technique is not just for CSS — it will work with <a href="https://developers.google.com/web/tools/chrome-devtools/javascript/reference#format">JavaScript</a> as well.</blockquote><p><strong>2) </strong>This next tip comes from Aaron Gustafson’s <a href="https://thegymnasium.com/courses/GYM/107/0/about"><em>Modern Web Design</em></a> course and is actually a two-for-one deal. In the following snippet, a developer wants to understand how a specific paragraph affects the layout of her page. So in the first example she simply hides the paragraph to see the effect, and in the second example, she takes it a step further by deleting it altogether, thereby reflowing the content of the page.</p><ul><li>In Chrome, to hide an element, locate it in the Elements tab, then right-click or ctrl+click it, and choose “Hide Element.”</li><li>In Chrome, to delete an element, locate it in the Elements tab, then right-click or ctrl+click it, and choose “Delete Element.”</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sNstcXH9thaK6nQQWdn7sQ.gif" /></figure><blockquote><strong>Bonus Tip: </strong>Remember that deleting an element is just temporary. If you want to get it back you can always use the designer and developer’s best friend Ctrl+Z (PC) or Cmd+Z (Mac). Alternatively, you can always reload the entire page to get everything back to normal.</blockquote><p><strong>3) </strong>This tip is a sneak peek from our upcoming <em>Responsive Web Design</em> course with Jason Pamental who uses the Network tab in Chrome to debug and improve the performance of his web pages. At its most basic, the Network tab analyzes every single resource that is loaded onto a page (such as images, fonts, and more) and then allows you to view those resources by type, if desired.</p><ul><li>Once you are in the Network tab, the first step is to click the “Disable cache” checkbox. What this does is forces your web browser to treat the web page as if it’s never seen it before and all of the resources will be downloaded from scratch, thereby simulating what a first time visitor to the site might experience.</li><li>Next, reload your web page and the Network tab will start to download everything on the page. When it’s complete, you’ll see important information in the status bar, such as the total amount of data transferred.</li><li>You’ll also see a list of every single file downloaded, as well as when it was downloaded in relation to other assets, and a whole lot of other stuff. In this example, we click on the Font category to see what fonts are being used, and specifically, we might be interested in the file size of those fonts to help us make some decisions about the size of this page.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/918/1*wnbt6BXS15r9LXDjrDRbtQ.gif" /></figure><blockquote><strong>Bonus Tip: </strong>After you are done recording your network activity, be sure to uncheck the “Disable cache” option or you’re going to have a bad time surfing the web for the rest of the day.</blockquote><h4>Inspect and optimize your dev tool game</h4><p>I could do this all day, so I hope you’re inspired to take a closer look at the development tools your browser has to offer. Even if you’re using them daily, I’m willing to bet there are a lot of surprising features in there that you might find useful. If you’ve got a favorite tip or trick, let us know in the comments.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b1bbbc07daab" width="1" height="1" alt=""><hr><p><a href="https://medium.com/gymnasium/three-tips-for-chrome-devtools-users-b1bbbc07daab">3 Tips for Chrome DevTools Users</a> was originally published in <a href="https://medium.com/gymnasium">Gymnasium</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[CSS Grid Layout: A Cornucopia of Options]]></title>
            <link>https://medium.com/gymnasium/css-grid-layout-a-cornucopia-of-options-90a5ee10ad9f?source=rss-ab925ef276d3------2</link>
            <guid isPermaLink="false">https://medium.com/p/90a5ee10ad9f</guid>
            <category><![CDATA[web-design]]></category>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[css]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[grid-layout]]></category>
            <dc:creator><![CDATA[Jeremy Osborn]]></dc:creator>
            <pubDate>Thu, 01 Jun 2017 19:53:34 GMT</pubDate>
            <atom:updated>2019-02-14T05:47:10.377Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1FeBYTf82HKgK278ZhjlvA.jpeg" /></figure><h4>A tutorial designed to whet your appetite</h4><p>CSS Grid Layout is a recent addition to the web designer’s “toolbox” that allows us to design web pages in new, interesting, and powerful ways. This article is primarily aimed toward web designers/developers who have had little to no experience with Grid Layout. Many of the articles I’ve seen on the subject tend to move on a bit too quickly into intermediate and advanced concepts. I’ll be covering why we need this new system, how to get started, and toward the end I’ll offer some advice on how (and when) we can use it safely in production.</p><p>I’ll also share some code examples and a few step-by-step instructions aimed at folks familiar with HTML and CSS. For reference here is <a href="#4707">a link to all the Codepen code examples</a> used in this article. There are links to additional resources at the end as well.</p><p>Speaking of resources, let me save you some time and point you directly to the work of <a href="https://rachelandrew.co.uk/">Rachel Andrews</a> and <a href="http://labs.jensimmons.com/">Jen Simmons</a>, two members of the web community who have been leading the way for Grid Layout and whose work you <em>need</em> to familiarize yourself with if you want to explore modern layout further.</p><h4>Current layout techniques are a sad buffet</h4><p>CSS Grid Layout exists because the web page layout techniques we have been using for years have serious limitations. As the web has grown and become more sophisticated, these techniques have become increasingly problematic.</p><p>At the root of the problem is the reliance on CSS floats as the cornerstone of web page layout. The underlying layout model of CSS floats is one-dimensional, which means designers wishing to use a grid system have always had to think in terms of rows. Without getting into the technical details, here’s an illustration of a simple two-column layout using the traditional technique of CSS floats. You’ll notice that even though visually there appears to be a “column” below figure B, we accomplish this through what is essentially a hack, i.e., there are no true columns available for use in our current system.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/314/1*mPsOmGbJfcf1qNcjVU_5og.png" /><figcaption>A.) Header B.) Image C.) Main Content</figcaption></figure><p>By contrast, the CSS Grid Layout system that we’ll be exploring has a mental model that looks like this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/314/1*ic1wveX9jtEXU8qp5EvAXw.png" /></figure><p>Here we have <strong>two-dimensions</strong>, not only do we have rows (in this case two of them) but also columns (also two). This is a huge deal and the biggest conceptual difference that designers and developers will need to adjust to. If this doesn’t make sense immediately, don’t worry — the rest of the article will clear things up, I hope.</p><p>Here’s another way to put this into perspective. Currently, for a web designer or developer, only having CSS floats to work with is like walking into a buffet where soup and salad are your only options. Technically a meal, but...meh.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/550/1*hFgNFgcQihf6Vt_6baicPg.jpeg" /></figure><p>CSS Grid Layout, on the other hand, is a veritable smorgasbord. Options, choices, sweet delights! You will be tempted to dive in and sample everything, I promise you.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/736/1*X3rPF9rE-rnOCKsfPngwTA.jpeg" /></figure><p>To be fair, CSS floats have received help as technology has improved, most notably with the recent introduction of CSS Flexbox (which I’m largely going to stay away from in this article.) Suffice to say, Grid Layout and Flexbox work well together, and there are already many good resources online covering these techniques.</p><p>In terms of grid systems, over the years we have also seen the emergence of frameworks such as Bootstrap and Foundation, both of which have very clever ways of giving designers/developers access to “grid layout” templates. To be clear though, these systems simply tuck the usual float techniques into “behind-the-scenes” code. CSS Grid Layout is something completely different, and it’s perhaps one of the most exciting developments on the web in recent years.</p><p>Before we dive in, I want to set some expectations. There is *a lot* to cover in the Grid Layout spec. If we look at the number of new CSS properties we have access to, that number is <strong>seventeen</strong>. Seventeen. New. Properties. Let that sink in for a second. In this article I will only cover six or seven of those properties, thereby leaving a lot untouched. My goal is to let you savor and explore the main dishes of Grid Layout for a while, and then you’re on your own to explore and indulge your appetite.</p><p>There’s one more thing I’d like to emphasize. Having a basic understanding of HTML and CSS is useful in order to follow along with the rest of the article, but it’s also important to clear your mind and accept this model as brand new without trying too hard to make comparisons to the past. I have a friend who might be able to help you with that.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*fPLOeZaZz_EFpqh_QHm7Hg.jpeg" /></figure><p>There, that’s better. Now let’s join the buffet line!</p><h3>Setting the table</h3><p>The idea of a grid system has been around for a very long time. Think of how hard it would be to print newspapers on a daily basis without guidelines on how to format content and create a hierarchy to distinguish the most important articles from the less important ones.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4wc7YU486QSRfnYLYFf99w.jpeg" /><figcaption>An 8 column grid from an important day in US history.</figcaption></figure><p>CSS Grid Layout will allow you to create similar combinations of rows and columns, but let’s begin with the basics. Below is a diagram of a grid with 3 rows and 6 columns. Here’s your first pop quiz! Grid Layout has a component called the <strong>grid line</strong>, how many grid lines do you think the grid below has?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*5oVVyUrrdyLzGh9-Wl8vXw.png" /></figure><p>Because a grid line is created on both sides of a row or a column, the answer is that there are 7 column grid lines and 4 row grid lines (I’ve labeled them below). Additionally, the space between two adjacent grid lines is referred to as a <strong>grid track</strong>. Our grid has multiple grid tracks that I could have illustrated, but I randomly highlighted the 5th column (seen in orange) here. In addition to grid lines and grid tracks, we also have the <strong>grid cell </strong>which is the intersection of any given row or column — think of it as the smallest single unit within the grid. I highlighted a single cell (seen in green) within the 2nd column and 3rd row.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3ur8QqqYMeiafGFPnX70yw.png" /></figure><p>Building this layout is fairly straightforward; I’m going to leave out the HTML structure as well as the background and border styles, and just focus on the grid CSS. Here’s the basic code:</p><pre>.grid {<br> display: grid;<br> grid-template-columns: 150px 150px 150px 150px 150px 150px;<br> grid-template-rows: 150px 150px 150px;<br>}</pre><p>So we first instruct the container we’re styling to be displayed as a grid, which gives it all the “superpowers” that will soon follow. Next, we define each column to be 150px wide and specify six of them. Similarly, we specify 3 rows, each with a height of 15opx.</p><p>I’ve placed the code for this layout <a href="http://codepen.io/josborn/pen/ybXPQP"><strong>here</strong></a> in a Codepen, and I invite you to go in and change the values to see how it works. I used the long version of the code for easier understanding, but we can actually use the <strong>repeat</strong> syntax to say “repeat this row or column X number of times,” which is more elegant and efficient:</p><pre>.grid {<br> display: grid;<br> grid-template-columns: repeat(6, 150px);<br> grid-template-rows: repeat(3, 150px);<br>}</pre><p>Right now there’s no space between our rows and columns, but let’s add some. To do this, we turn to <strong>grid-gap</strong>. You can use any number of values to specify the gap, I’m using pixels, but you could use other values as well (ems, rems, etc.)</p><pre>.grid {<br> display: grid;<br> grid-template-columns: repeat(6, 150px);<br> grid-template-rows: repeat(3, 150px);<br> <strong>grid-gap: 30px;<br></strong>}</pre><p>Which gives us this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*nPPBAYrbK1v_KQIwXSJ9Eg.png" /></figure><p>(As a side note I just recreated a <a href="https://en.wikipedia.org/wiki/Grid_illusion#Hermann_grid_illusion">famous optical illusion</a>, where your brain tries to “see” light gray dots between the gutters, but if you look at one directly it disappears!).</p><p>The code for this example can be found <a href="http://codepen.io/josborn/pen/NjvdwG"><strong>here</strong></a>. Take a look and play around, you can also experiment with setting either the column gap or row gap independently, to do that, you would use the following syntax:<br>grid-gap: 15px 100px;<em> </em>here the first value (15px) is the row gap and the second value (100px) is the column gap.</p><p>So we’ve just gotten started, but think of how useful this already is! Creating a reliable image gallery, for example, is still really annoying with our current tools, but with Grid Layout it becomes almost trivial to build one on the fly. Here’s an <a href="http://codepen.io/josborn/pen/OmjpNR"><strong>example</strong></a> I quickly mocked up. Feel free to dive in and play around with the rows, columns, gap, and the size of the cells.</p><h3>A taste of something new</h3><p>I remember when I first encountered CSS Grid concepts back in 2012, I kept trying to apply my old school CSS skills to this new model and getting in my own way. Finally something clicked, the clouds parted, and I yelled, “I see the light! I SEE IT!”</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FlX5tfRdkoY0%3Ffeature%3Doembed&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlX5tfRdkoY0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FlX5tfRdkoY0%2Fhqdefault.jpg&amp;key=d04bfffea46d4aeda930ec88cc64b87c&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/adc513a20d5eef642eddc6e0644cd62c/href">https://medium.com/media/adc513a20d5eef642eddc6e0644cd62c/href</a></iframe><p>Here’s what I mean: Let’s start with a single &lt;div&gt; element that has been given a background color and border so we can visually understand what is happening; then we throw some text in there. Let’s try the first amendment to the US Constitution. Here is the HTML for the following example:</p><pre>&lt;div class=&quot;grid&quot;&gt;<br>      &lt;div class=&quot;grid-item&quot;&gt;  <br>        &lt;h1&gt;The Bill of Rights&lt;/h1&gt;<br>        &lt;h2&gt;Amendment I&lt;/h2&gt;<br>&lt;p&gt;Congress shall make no law respecting an establishment of religion, or prohibiting the free exercise thereof; or abridging the freedom of speech, or of the press; or the right of the people peaceably to assemble, and to petition the government for a redress of grievances.&lt;/p&gt;<br>       &lt;/div&gt;<br>&lt;/div&gt;</pre><p>If you want to play along, <a href="http://codepen.io/josborn/pen/vmdMRz?editors=1000"><strong>here is the starting code</strong></a>. This is the only CSS used: a basic background color and border on the .grid-item class selector to help you understand the behavior of the div within our rows and columns.</p><pre>.grid-item {<br> background-color: #d8d8d8;<br> border: thin black solid;<br>}</pre><p>As you might expect, the div expands to the edge of the browser, the default behavior.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tJXgNfV43W87Ljl7u6-HyQ.png" /></figure><p>Now let’s bring in some new firepower named the fr unit which is the standard fluid unit of measure for Grid Layout. It’s similar to percentages, but best defined as representing a fraction of the available space in the grid container (fraction = fr , see how they did that?). To see it in action we’re going to create a four column layout, and each column will have a value of 1fr. The following animation demonstrates this behavior.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*pa5X9b0aubA2djzccdinmw.gif" /></figure><p>With 1fr the width of the div is a single column taking up all the available space, so there is no change. Adding another 1fr creates another column and makes the width of our div take up exactly half of the available space. Adding yet <em>another</em> 1fr unit creates a third column and makes the width of our div take up one third the available space. Finally, adding the last 1fr unit creates a four column layout and our div takes up a quarter or 25 percent of the available space.</p><p>Here’s our code, simple as can be:</p><pre>.grid {<br> display: grid;<br> grid-template-columns: 1fr 1fr 1fr 1fr; <br>}</pre><p>But we’re just getting started, because having 1 fractional unit implies that we can increase that value, (which we can!) so let’s make the first column 2fr wide.</p><pre>.grid {<br> display: grid;<br> grid-template-columns: <strong>2fr</strong> 1fr 1fr 1fr; <br>}</pre><p>This has the visual effect of increasing the width of our div. Just to be clear, we still have four columns, we’ve simply defined 5fr units and two of them are reserved for the first column, which means it occupies ⅖ of the available screen space (or 40% if you like thinking that way.) The first screenshot here has all four columns set to 1fr, the second screenshot has the first column set to 2fr and the remaining three columns at 1fr.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MxI15soA2hdLr_xW74TheQ.png" /><figcaption><strong>grid-template-columns: 1fr 1fr 1fr 1fr;</strong></figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*j4nDtZT7G3Thqh5PMLMAYQ.png" /><figcaption><strong>grid-template-columns: 2fr 1fr 1fr 1fr;</strong></figcaption></figure><h4>A small palate cleanser</h4><p>So you still might be struggling with visualizing this; I know I was originally, so allow me to help. One of the challenges of Grid Layout is that your grid tracks and lines are invisible by default. One of the best methods to visualize your grid overlay is with the Firefox web browser. Using the Inspector (located within the Developer Tools) you can toggle the grid overlay in order to see your layout structure.</p><p>Chrome has a <a href="https://developers.google.com/web/updates/2017/08/devtools-release-notes#css-grid-highlighting">similar feature </a>that allows you to highlight CSS grid layout, however, I prefer the <a href="https://www.mozilla.org/en-US/firefox/new/">Firefox</a> interface. In Firefox, to trigger the grid overlay you locate display: grid using the Inspector and then click the “waffle” icon as seen in this animation.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4M-eCCB-Sqcbc_6T9IzU5g.gif" /></figure><p>Again, this isn’t required to follow along with this tutorial — merely a helpful tip for later. Let’s continue our exploration of the fr unit by looking at rows. Let’s add the following code to our styles:</p><pre>.grid {<br> display: grid;<br> grid-template-columns: 2fr 1fr 1fr 1fr;<br> <strong>grid-template-rows: 1fr 1fr; </strong><br>}</pre><p>Following the previous logic of what we did with grid columns, can you guess what this will do?</p><p>If you said “split the available horizontal space into two equal areas,” then you are correct. However our div container has not been affected, it’s still sitting in the first row.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gkc92zaY86OnFtY0blo2PQ.png" /></figure><p>Now for our next trick: we have a single div and a grid layout with four columns and two rows (all using fr units), so let’s have some fun and start moving our div around the grid. Note that we are now declaring this rule in the class selector .grid-item, so let’s put it on the second row.</p><pre>.grid-item {<br> background: #D8D8D8;<br> border: thin black solid;<br> <strong>grid-row: 2;</strong><br>}</pre><p>Which gives us this:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2SVkJvE8_ulcETxFo1W2DQ.png" /></figure><p>What if we wanted to move our div to the second column on the second row? Sure!</p><pre>.grid-item {<br> background: #d8d8d8;<br> border: thin black solid;<br> grid-row: 2;<br> <strong>grid-column: 2;</strong><br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*vbBJHKQRODS_TUdoVoo2nQ.png" /></figure><p>Let’s just pause here for a moment because in the education business this is what we call the “teachable moment.” You’re witnessing layout behavior here that is completely different from our existing models of floats and even Flexbox. For many people new to CSS Grid Layout this is the “Aha!” moment:</p><blockquote><strong>Grid Layout represents an independent system of rows and columns, and we can position (and reposition) our content within it easily!</strong></blockquote><p>To further clarify, our div has a shorter width because it is placed in the second column which is 1fr. This is a feature, not a bug. If we want our div to span columns two and three, we have to instruct it to do so.</p><pre>.grid-item {<br> background: #d8d8d8;<br> border: thin black solid;<br> grid-row: 2;<br> <strong>grid-column: 2 / span 2;</strong><br>}</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ebxv362iVL1mwmKFTkRsZQ.png" /></figure><p>In the previous screenshots I have Firefox’s grid overlay turned on, but as a reality check we should look at this in the browser without the overlay.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-xfdt0-3_IHLPPxdo0iR7w.gif" /></figure><p>As a “layout” in the browser it’s pretty uninspiring I admit, but as an exercise in understanding Grid Layout, it raises some important questions. For example, our div is collapsing and expanding based on the width of the browser; how could we prevent that if we wanted to? One solution lies in the units we’re using for our columns. Remember that we are exclusively using fr units, which are designed to adapt to the available space, but we’re allowed to mix and match fluid and fixed units (of measure). Let’s set the width of columns 2 and 3 to be 150px each:</p><pre>.grid {<br> display: grid;<br> grid-template-columns: 2fr <strong>150px 150px</strong> 1fr;<br> grid-template-rows: 1fr 1fr;<strong> </strong><br>}</pre><p>Once we’ve done that, let’s see what happens in the browser now. I’m going also to turn the grid overlay back on to make the fluid and fixed column behavior more obvious.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2OGcU-OToQMH5EQbkR62cQ.gif" /></figure><p>As you can see, the width of our div stays fixed at 300 pixels and the two columns on either side adapt based on the available space. This ability to define a “fixed” width for specific columns (or rows) is incredibly useful for certain scenarios. For example, imagine you’re building a responsive video player with a number of button controls (play, stop, skip, etc.). You could set the tracks where the controls are located to be fixed units and thereby force them to stay the same size, while the rest of the player could still be completely flexible.</p><p>If you look back at the previous animation, note that because there is no content in columns one or four, when the browser window reaches its narrowest point, these empty columns collapse to zero and our content is centered.</p><p>Its easy to adjust and experiment with your Grid Layouts. For example, to place our content div back into the first row and center it horizontally requires two small tweaks. The first change is to the parent grid container stating that the fourth column should be 2fr wide instead of 1fr.</p><pre>.grid {<br> display: grid;<br> grid-template-columns: 2fr 150px 150px <strong>2fr</strong>; <br> grid-template-rows: 1fr 1fr; <br>}</pre><p>The second change is to move the div from row two back to row one:</p><pre>.grid-item {<br> <strong>grid-row: 1;</strong><br> grid-column: 2 / span 2;<br>}</pre><p>If we also remove the background color and border, the final result is underwhelming, I know. However, it’s not the final layout that is the star of the show; it’s how we got here.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*i05TuIey54flNjxbvY0uYQ.png" /></figure><p>You can check out and tinker with the final code <a href="http://codepen.io/josborn/pen/gWxREb"><strong>here</strong></a><strong>. </strong>In the next section, I’ll walk through a more complex “real world” layout.</p><h3>Digging into the main course</h3><p>In this section is a working demo of a page that uses three different Grid Layouts, each contained within a different media query. The project I have in mind is a short snippet of content pulled from <a href="https://en.wikipedia.org/wiki/Ella_Fitzgerald_Sings_the_Duke_Ellington_Song_Book">Wikipedia</a> describing the classic jazz album, “Ella Fitzgerald Sings the Duke Ellington Song Book.” The material I’ll be working with is minimal, consisting of a heading, a few paragraphs, and three photos. To give you sense of what I’ll be working toward, here is the final version of the project (with a responsive layout and all that jazz).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/590/1*xdmaZa1NvcqcyfXH5ZlkSA.gif" /></figure><p>There will be a few new concepts thrown in, the most notable being <strong>grid area. </strong>With grid areas we can use plain English to describe sections of our Grid Layout. With that in mind, we will start by defining some grid areas in a layout designed for “mobile-first.” Here is my HTML:</p><pre>&lt;div class=”container”&gt;<br>   &lt;div class=”albumtitle”&gt;&lt;/div&gt;<br>   &lt;img class=”duke”&gt;<br>   &lt;img class=”ella”&gt;<br>   &lt;div class=”album-desc”&gt;&lt;/div&gt;<br>   &lt;img class=”bandphoto”&gt;<br>   &lt;div class=”credits”&gt;&lt;/div&gt;<br>&lt;/div&gt;</pre><p>I left out the content and image src information here for space reasons, but I want to point out something very important. The items with the class selectors duke, ella, and bandphoto are attached to &lt;img&gt; elements. What this tells us is that <strong>grid items can be any element </strong>and this goes a long way toward simplifying our markup. Again, if you’ve been a web developer for any period of time, this structure might feel too elementary, but it’s another example of how we need to “unlearn” old habits based on our traditional way of doing things (in this case, we might feel tempted to nest those images within another &lt;div&gt; element, but it’s not necessary).</p><p>In terms of the CSS for our Grid Layout, we’ll specify a new container as a grid with grid-gap and padding; nothing new here so far.</p><pre>.container {<br>  display: grid;<br>  grid-gap: 1em;<br>  padding: 1em;<br>}</pre><p>Now for the new stuff — on the left is my desired layout, and on the right is the naming convention I will use:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/948/1*kMDTujVAWSmH3LwRkf4m2Q.png" /></figure><p>The code looks like this:</p><pre>.container {<br> display: grid;<br> grid-gap: 1em;<br> padding: 1em;<br> <strong>grid-template-areas: “head head”<br>                      “photo-1 photo-2”<br>                      “main main”<br>                      “spread spread”<br>                      “footer footer”;</strong><br>}</pre><p>Here is your first lesson when defining grid areas — <strong>your syntax must match the number of columns (and rows) for your desired layout. </strong>In this case, we need a two-column layout to support the two side-by-side images in the second row. Next, for each class we declare the <strong>grid-area </strong>property and then the value of the relevant grid area we want associated:</p><pre>.albumtitle {<br> grid-area: head; <br>}</pre><pre>.duke {<br> grid-area: photo-1;<br>}</pre><pre>.ella {<br> grid-area: photo-2;<br>}</pre><pre>.album-desc {<br> grid-area: main; <br>}</pre><pre>.bandphoto {<br> grid-area: spread; <br>}</pre><pre>.credits {<br> grid-area:footer;<br>}</pre><p>Here’s the <a href="http://codepen.io/josborn/pen/ce72198787edb8343f1ed530c70cb27a?editors=0100"><strong>code for this</strong></a><strong> </strong>— take a good, hard look at what’s happening in the browser as well as the code.</p><p>Previously we saw how you could position a div to a specific row or column using the grid-template<em> </em>syntax, and you could also force that div to span using the span syntax. This is essentially the same thing; <strong>the key difference here is that we are using grid areas that have logical content-based names</strong>, thereby creating a better mental model of your grid structure. It may be easier for you to work like this moving forward, and it will <em>definitely </em>be easier for other people looking at your code to understand.</p><p>If you’re a web designer/developer reading this, I hope you’re getting excited about the potential of this new model. If you need a bit more persuasion or evidence, in the next section I’ll add some more flavor to our meal with the addition of classic responsive design techniques.</p><h3>Pigging out with media queries</h3><p>Our existing layout is simple and works well on small screens, but as we expand the browser window, we can see that the layout is in need of some help.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/686/1*48nSESas5Opd1DURHTXfVA.gif" /></figure><p>As I mentioned earlier, there’s <em>a lot</em> going on in the Grid Layout spec, there’s actually an <a href="https://www.w3.org/TR/css3-grid-layout/#common-uses-auto-placement">auto-placement algorithm</a> and a few other tricks that allow you to place content on screen based on the available empty space, but that’s for another time and place. For now, I’d like to keep exploring the basics of using grid areas to define your layout. To do this, we’re going to turn to our old friend media queries for some help, and when our viewport hits a certain width, we’re going to display a more complex layout.</p><p>This is where it gets really fun; we’re going to add a media query at 34em (equivalent to 550px) and then do two things:</p><ol><li>Add another column using our grid-area property.</li><li>Reposition our two photos by placing them into the first column.</li></ol><pre><a href="http://twitter.com/media">@media</a> (min-width: 34em) {<br>   .container {<br>   grid-template-areas: “head head head”<br>                        “photo-1 main main”<br>                        “photo-2 spread spread”<br>                        “footer footer footer”;<br> }<br>}</pre><p>The first screenshot below shows the layout as seen normally in the browser. In the second screenshot I’ve turned on the grid overlay in Firefox to help you see and understand the structure.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-klvtwDy-YPommVNd8qxsQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BgPGlmNlEuMpvJ1-QPSiSw.png" /></figure><p>Pretty cool! Again, note that our CSS grid-template-area syntax is mapped to the page layout structure, helping you visualize your rows and columns.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/654/1*ACsViq32JBV31oS9zI1XdA.png" /></figure><p>Let’s keep digging in and add a third media query with a completely different layout.</p><pre><a href="http://twitter.com/media">@media</a> (min-width: 72em) {<br> .container {<br>       grid-template-areas: “.      .        head”<br>                            “photo-1 photo-2 main”<br>                            “.      .        spread”<br>                            “footer footer   footer”;<br> }</pre><p>The syntax for row 1 (“. . head”) and row 3 (“. . spread”) is new for us. You can think of the “.” syntax in grid-template-area as a placeholder; in other words, we’re choosing <em>not</em> to explicitly label those areas. So here we’re saying:</p><ol><li>In the first row, the “head” area starts at column three.</li><li>In the second row the “photo-1” area starts in column 1, the “photo-2” area starts in column 2, and the “main” area starts in column 3.</li><li>In the third row, we start the “spread” area in column 3.</li><li>In the last row, we specify the &quot;footer&quot; area across the entire grid.</li></ol><p>Here’s the resulting layout. Again, the first screenshot shows the image as normally seen in the browser, and the second shows the grid overlay in Firefox.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Ckm5RlnjFMoAl1OuN4cI5g.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cbkhZk_-wwYUIaZscHYNvw.png" /></figure><p>The Duke and Ella photos might feel overpowering compared to the other content. So what if we wanted to make them smaller? You’ve already seen the tools needed for this. Can you guess what they are?</p><p>The answer is the grid-template-columns<strong> </strong>property, which we looked at earlier. We can define the width of the first two columns using any of the units of measurement at our disposal. In my example, I’ve decided to use the vw unit<strong> </strong>mostly because I can. The syntax vw stands for “viewport width,” and it has a companion named the vh unit which stands for “viewport height.” If you haven’t used these units before, they allow sizing of elements to be relative to the size of the viewport. Here’s a <a href="http://tutorialzine.com/2015/05/simplify-your-stylesheets-with-the-magical-css-viewport-units/">good introduction</a> to them (useful but not required to continue).</p><pre><a href="http://twitter.com/media">@media</a> (min-width: 72em) {<br> .container {<br> grid-template-areas: “. . head”<br> “photo-1 photo-2 main”<br> “. . spread”<br> “footer footer footer”;<br> <br> <strong>grid-template-columns: 18vw 18vw 1fr;</strong><br> <br> }</pre><p>So here, the width of column one and two are each set to 18vw making the width of the combined columns 36vw, which is roughly ⅓ of the browser window and gives us this in our final layout.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VVpWP2XyKxH9ZR80f4DH8g.gif" /></figure><p>If you’d like to examine this project as is, the code is <a href="http://codepen.io/josborn/pen/bWLGyZ/"><strong>here</strong></a><strong>.</strong></p><p>One of the things I would like to emphasize is that the grid-area syntax makes it quick and easy to explore different variants of layout. For example, <a href="https://twitter.com/meyerweb">Eric</a>, a reviewer of this article made a few quick changes to the syntax and created something a little different:</p><pre>grid-template-areas:<br>“. . head”<br>“photo-1 photo-2 main”<br>“photo-1 photo-2 spread”<br>“footer footer footer”;</pre><p>This change probably took him a grand total of 5 seconds in the code and the result is a layout that emphasizes the band photo and makes everything a bit less “grid-like” than my example.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*riISbEvVLe0b2UtPovhKLQ.png" /></figure><p>The overall point is that this type of layout change would have taken much longer with our old model. Actually, to take it even further, I would argue that the technical hurdles we faced all these years often discouraged us from this type of experimentation. CSS Grid Layout has the potential to unlock our creativity by giving us the ability to control the placement of our content using very simple syntax.</p><h4>A bit of dessert</h4><p>Limiting my demonstrations in this tutorial has been difficult, namely because there’s so much more to explore. I hope you have room for one more new concept. It’s a small but important feature of working with grids and has to do with alignment of individual items within your rows and columns.</p><p>To illustrate my point, let’s look at our second layout, and specifically what’s happening in the third row with the alignment of the Ella photo and the band photo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/556/1*g8zPoeRuQ2VE93rbyr0zIw.gif" /></figure><p>The images of Ella and the band are always aligned to the top of the row, and this is fine at the most narrow width(s), but as the browser gets wider and the Ella photo begins to scale, the bottom edges of the two photos are no longer aligned and this creates a gap that some might find annoying.</p><p>So, as with most things involving web design, there are a few different ways we could address this. The one I’ll focus on is the property align-self which is a feature in Grid Layout that allows you control the way items are aligned <em>within a grid row. </em>Let’s look at a snapshot of this layout with the grid overlay turned on.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SaWhfv2BAoBQSi9QcM8ocw.png" /></figure><p>The first thing we need to do is create a new class selector for the item we want to control, which in this case is the band photo. Then we’ll add the align-self property with the value of start.</p><pre><a href="http://twitter.com/media">@media</a> (min-width: 36em) {<br> .container {<br> grid-template-areas: “head head head”<br> “photo-1 main main”<br> “photo-2 spread spread”<br> “footer footer footer”;<br> }<br> <br><strong> .bandphoto {<br> align-self: start;<br> }</strong><br>}</pre><p>And this does…absolutely nothing. The reason being that start is actually the default value for items within a row — they always start at the top. Let’s change the value to end. (I’m going to leave out the other styles for space reasons).</p><pre><strong>.bandphoto {<br> align-self: end;<br> }</strong></pre><p>Aha! This aligns the band photo to the end of the row. The first screenshot shows this with the grid overlay on; the second one shows this with the grid overlay off.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MKR6PjFwJrLiRuqfrcWuig.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kBQmhUAJDi9ERHDovRwAKw.png" /></figure><p>There are only three values you can use for the align-self property. Let’s try the last one, which is center.</p><pre><strong>.bandphoto {<br> align-self: center;<br> }</strong></pre><p>This is the result:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Yv6d-Nxqw14euBghVXMeqQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xfsrAI-ixIXvlPZyjrCL_g.png" /></figure><p>You can see the final result <a href="https://codepen.io/josborn/pen/QvZZbm/"><strong>here</strong></a><strong>. </strong>This is probably the choice I would make as it gives us equal amounts of space above and below the band photo at all times. It’s fantastic that we have this level of control. In a similar fashion, if you want to control the alignment of items within a <em>column</em>, there is also the property justify-self available (although I won’t be exploring that here). This feature of Grid Layout raises an interesting question: by having access to what is essentially an override, are we defeating the purpose of the system? In other words, if one of the benefits of Grid Layout is to make objects line up easily and automatically, doesn’t this “break” that?</p><p>I would argue no, it doesn’t; in fact, this feature gives designers great power in creating complex and sophisticated layouts, but it needs to be used wisely and with intent. In the book, <a href="https://www.amazon.com/Making-Breaking-Grid-Graphic-Workshop/dp/1592531253">Making and Breaking the Grid</a>, Timothy Samara discusses the struggle many print designers have had with grid systems over the years. He states that while some designers feel they can bring “precision, order, and clarity” to the design process, others fear they are “symbolic of Old Guard aesthetic oppression, a stifling cage that hinders the search for expression.” Regardless of where one stands, the real winners are all of us in the web community. Now we can actually have this debate with a legitimate grid system at our fingertips.</p><p>Here is the <a href="https://codepen.io/josborn/pen/QvZZbm/"><strong>final code again</strong></a>, including the center-aligned band photo. Please explore, fork, and modify as you wish. If you want some guidance as to where to start, here are some things to try:</p><ul><li>Increase/decrease the media query values and see the effect it has as you change the browser width. Try adding a fourth media query for even larger screens (assuming you have a monitor capable of displaying it).</li><li>Keep your browser at one size and experiment with changing values such as the grid-gap as well the column sizes and layouts</li><li>Instead of the vw units I used in the final example, try ems, px and fr units to size the columns. Do the same thing for the rows.</li><li>Add some background-color properties to the various class styles and see what effect it has.</li></ul><p>That’s it for our main project. We still need a reality check to discuss how and when we can realistically begin using CSS Grid Layout though.</p><h3>Here comes the bill . . .</h3><p>We’ve had our small, yet satisfying feast, and believe me when I tell you that there’s a lot left on the buffet table that we haven’t even touched. Let’s cut to the chase — what’s the cost of all this grid goodness? We’ve already hinted at the fact that Grid Layout is extremely new and that older browsers will display your content but with none of the layout. So what exactly is the status in browsers anyway?</p><p>Our go-to resource for these questions is the invaluable <a href="http://www.caniuse.com/">caniuse.com</a> which constantly updates browser support for <em>all the things</em>. At the time of this writing, they state CSS Grid Layout support is at 62.4 percent global support; be sure to check <a href="http://caniuse.com/#feat=css-grid">this page</a> for the most recent numbers because this changes frequently. Specifically, we have browser support in the <strong>most recent</strong> desktop versions of Google Chrome, Firefox, Safari, and Opera. Microsoft’s IE 11 and Edge offer partial support, and the future roadmap for those browsers includes full support. If that 62.4 percent support number is bumming you out, stay with me for just a few more paragraphs, where I’ll present the solution that makes this more palatable — I promise.</p><p>On the mobile side, the most recent versions of Safari for iOS and Chrome for Android support Grid Layout, although if you go back a few versions, you’re going to have problems. So we need to look at the road-map for browser support a bit closer — otherwise all of this was just an interesting technical exercise and not something you could use anytime soon.</p><h4>Browser Support</h4><p>Although caniuse.com is a fantastic resource, its support numbers only tell part of the story. Rachel Andrew recently posted this encouraging tweet:</p><h3>Rachel Andrew on Twitter</h3><p>From 0 to 83% in 2 months. Look at CSS Grid go!</p><p>The context here is user visitor data from a single website that Rachel has access to, and 83 percent is an encouraging number. The caveat is that this is data from a tech site, so the average visitor is more likely to have an up-to-date browser. But the key point is the rate of growth; 0–83 percent support in two months is unheard of and very inspiring news.</p><p>In the “old days,” browser technology was updated on a much slower timeline and required users to manually download and install the software. Today, not only do browser updates come more frequently, but they tend to auto-update as well. Most users get fresh versions of the most recent browser behind-the-scenes, and manual updates are becoming more of the exception — not the rule. Based on this trajectory, it’s possible that we’ll have close to 100 percent support for Grid Layout across all modern browsers by the end of 2017 (please do <strong>not</strong> quote me on that).</p><h4>Fallbacks</h4><p>While browser support for Grid Layout is encouraging, it’s obviously only part of the picture. We still have all of those older browsers out there in the wild, and they will never support Grid Layout. So these days we naturally turn toward fallbacks. Fallbacks are a common part of today’s web development landscape, and web developers have become quite accustomed to using them. I’m not going to go deep into code at this point. Instead I will get straight to the primary solution I hinted at earlier which is <strong>CSS Feature Queries</strong>.</p><p>A CSS Feature Query is a way to test a user’s browser for support of any given CSS property. The basic code of a feature query looks like this:</p><pre>@supports (display: grid) {<br>    .container {<br>        /* add rules for grid supporting browsers here. */<br>    }<br>}</pre><p>If this syntax looks familiar to you, it should. Feature queries are very similar to media queries. Let’s say you have an existing site that uses floats and want to enhance it with Grid Layout. You would start with a feature query, similar to the one above, and then add your CSS grid code. Additionally, you would need to add rules that <em>remove</em> anything required for the older layout.</p><p>That’s the basic idea. The great news is that because feature queries are supported in all the browsers that support Grid Layout, you can use it exclusively to provide dual support. How to do this is a topic for another day, but there are a number of excellent resources I can point you to — the first is <a href="https://hacks.mozilla.org/2016/08/using-feature-queries-in-css/">this article</a> by Jen Simmons, which is a good introduction to the subject of feature queries, and then this more grid-specific tutorial, <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout/CSS_Grid_and_Progressive_Enhancement">CSS Grid Layout and Progressive Enhancement.</a></p><h4>Worthwhile examples of Grid Layout in the wild</h4><p>An obvious question that comes up is what sites are using Grid Layout “for real” today — i.e., in a production website, not just as a technical demo? The examples are few and far between as I write this, but there are a few sites I can recommend.</p><ul><li><a href="http://gridbyexample.com/">Grid by Design</a> is your one-stop-shop for all things grid. The aforementioned Rachel Andrew created this site to share examples, tutorials, and resources, and the site itself uses Grid Layout. Required reading!</li><li>The website for <a href="https://patternsday.com/">Patterns Day</a>, a web conference, uses Grid Layout to a degree. Jeremy Keith, designer of the site, documented <a href="https://adactio.com/journal/12211">this process </a>on his blog as well, and there are some good takeways to be found there.</li><li>Eric Meyer’s personal website <a href="https://meyerweb.com/">meyerweb.com</a> uses Grid Layout, and just as importantly, he documented his process with an article, “<a href="https://alistapart.com/article/practical-grid">Practical CSS Grid: Adding Grid to an Existing Design</a>” over at <em>A List Apart</em>.</li></ul><h3>Additional resources</h3><ul><li>The <a href="https://www.w3.org/TR/css-grid-1/">grid specification</a> is the official source of truth for laying out the rules and syntax for Grid Layout and should be your first stop when you need definitive answers. Over the years these specifications have become a little easier to read, but a lot of people still have trouble sorting through all of the syntax and examples. Luckily for us, Rachel Andrew has a blog series that can help you interpret the specification; here’s <a href="https://rachelandrew.co.uk/archives/2017/04/24/refer-to-the-spec-what-is-all-that-stuff-at-the-top-of-the-spec/">Part One,</a> if you’re interested.</li><li>Speaking of <a href="https://twitter.com/rachelandrew">Rachel Andrew</a>, her work is the gold standard for all things grid, and she has created so much content including <a href="https://rachelandrew.co.uk/archives/">articles</a> and <a href="https://thecssworkshop.com/">tutorials</a> that you could spend quite a bit of time with that material before ever looking elsewhere.</li><li>However, having multiple resources is always a good thing, so be sure to explore the material that <a href="https://twitter.com/jensimmons">Jen Simmons</a> has created, which includes Grid Layout theory and techniques. In addition to her <a href="http://labs.jensimmons.com/">fantastic lab demos</a>, there is also her <a href="http://jensimmons.com/post/feb-27-2017/learn-css-grid">Learn CSS Grid</a> page which will do a better job than this section of staying up-to-date — so just go there.</li><li>If you don’t subscribe to the email newsletter, <a href="http://responsivedesignweekly.com/">Responsive Design Weekly</a>, you’re missing out on a lot of important news, so get on that. For example, <a href="http://mailchi.mp/responsivedesign/kvz8ar9wyq?e=7356ad1f40">Edition #256</a> lists a number of resources on both Grid Layout and Flexbox and has lots of links to excellent articles, interactive demos, and more.</li><li>For comparison, in the old days of CSS layout there was a 3-column liquid layout referred to as the “holy grail,” due to its elusive qualities. This was such a headache that in 2006, it required <a href="https://alistapart.com/article/holygrail">a 2,000 word article</a> to explain all of its intricacies. Here is the holy grail layout reproduced in about 35 lines of CSS. Go ahead and <a href="http://codepen.io/geoffgraham/full/ggBbqe/">check it out for yourself</a>.</li></ul><p>Last, but hopefully not least, here are all my code examples on Codepen from this article:</p><ul><li><a href="http://codepen.io/josborn/pen/ybXPQP">6 column 3 row grid layout</a></li><li><a href="http://codepen.io/josborn/pen/NjvdwG">6 column 3 row grid layout with gap grid + shorthand</a></li><li><a href="http://codepen.io/josborn/pen/OmjpNR">Image gallery example</a></li><li><a href="http://codepen.io/josborn/pen/gWxREb">4 columns 2 rows with mixed fr and px units (finished file)</a></li><li><a href="http://codepen.io/josborn/pen/ZKvgBp/">Ella &amp; Duke Grid Layout (2 col mobile-first)</a></li><li><a href="http://codepen.io/josborn/pen/bWLGyZ/">Ella &amp; Duke Grid Layout (3 col w/media queries)</a></li><li><a href="https://codepen.io/josborn/pen/QvZZbm/">Ella &amp; Duke Grid Layout (3 col media queries + align-self)</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=90a5ee10ad9f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/gymnasium/css-grid-layout-a-cornucopia-of-options-90a5ee10ad9f">CSS Grid Layout: A Cornucopia of Options</a> was originally published in <a href="https://medium.com/gymnasium">Gymnasium</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Creating a vector logo in Sketch 3]]></title>
            <link>https://medium.com/gymnasium/creating-a-vector-logo-in-sketch-3-6d67e72a1449?source=rss-ab925ef276d3------2</link>
            <guid isPermaLink="false">https://medium.com/p/6d67e72a1449</guid>
            <category><![CDATA[tutorial]]></category>
            <category><![CDATA[design]]></category>
            <category><![CDATA[logo-design]]></category>
            <category><![CDATA[sketch]]></category>
            <dc:creator><![CDATA[Jeremy Osborn]]></dc:creator>
            <pubDate>Fri, 19 Dec 2014 17:33:26 GMT</pubDate>
            <atom:updated>2018-11-05T15:23:47.103Z</atom:updated>
            <content:encoded><![CDATA[<h3>Creating a vector logo in Sketch</h3><p>This tutorial will walk you through how to create a logo from start to finish. It will probably take you between 20-30 minutes to complete depending on your prior experience in Sketch and/or other creative applications. To follow along, feel free to <a href="https://www.dropbox.com/s/73c0jamwgdcbbr0/vectorflo-handdrawn.png?dl=0">download the image file here</a>. If you’re looking for a tutorial on how to create prototypes in Sketch, <a href="http://gymnasium.aquent.com/courses/GYM/005/0/about">check out my free course</a> over on Aquent Gymnasium.</p><p>I highly recommend using the<a href="http://bohemiancoding.com/static/download/sketch.zip"> latest version of Sketch</a>, which at the time of this article is version 52.3. If you have earlier versions, it will probably work fine, but there may be some differences in the user interface. Ready, set, let’s go!</p><h3>Importing a graphic</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*J7GCL5x-VPMFhNCZcxC4qQ.png" /><figcaption>The scanned logo you’ll be tracing over with vector tools in Sketch</figcaption></figure><p>Sketch’s strong suit is <a href="http://designshack.net/articles/layouts/vector-vs-raster-what-do-i-use/">vector graphics</a>, but you can also import and edit bitmaps. For example here’s a hand-drawn sketch that was scanned and converted to a PNG file which you’ll be importing for the tutorial. Tracing over hand-drawn sketches in order to obtain clean vector artwork in Sketch is quite common and easy to do. Again, if you want to follow along with this exercise you can <a href="https://medium.com/gymnasium/creating-a-vector-logo-in-sketch-3-6d67e72a1449">download the image here</a>. This graphic is named “vectorflo-handrawn.png”.</p><ul><li>Launch Sketch, and on the Welcome screen click <em>New Document</em> and then <em>Choose</em> and a blank document appears. Choose <em>File &gt; Save</em> and name this file <strong>vectorflo-logo </strong>and click ok.</li><li>Choose <em>Insert &gt; Image</em>, find the vectorflo-handrawn.png file and then click OK. The graphic appears on your Canvas. Let’s take a quick tour of the workspace. In Sketch your toolbar is at the top, the Layers List is on the left, the Canvas is in the center and the Inspector is on the Right.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*MUHnKUrMGgcprI9yulLORA.png" /><figcaption>The Sketch workspace</figcaption></figure><ul><li>In the Inspector, click within the Width field and then press the down arrow on your keyboard. This scales the logo down one pixel at a time. If you want to speed up the process, press and hold the <em>Shift</em> key and now it will scale downwards <strong>10</strong> pixels at a time. (You could have also scaled the image manually by clicking any corner and dragging to the center.) Get some practice with this and bring the Width of the image down to 600 pixels.</li></ul><p>This trick of using the up or down arrows works within *any* field in Sketch. Lets try it with opacity.</p><ul><li>Click inside the Opacity field and press <em>Shift</em> + the down arrow until you reach <strong>50%</strong>. Fading this image creates virtual “tracing paper” which will allow you to easily layer your vector shapes on top.</li><li>Locate the Arrange menu at the top of your screen and then choose <em>Lock Layer.</em> This prevents you from accidentally moving or selecting the image. If you ever need to unlock it, click the padlock icon in the Layer List (or you can right-click the shape and choose <em>Unlock Layer</em> from the contextual menu).</li></ul><h3>Adding Vector Shapes</h3><p>Vector artwork and shapes are all based on <em>paths </em>which are mathematically defined points, lines and curves used to build anything you can imagine: UI elements, illustrations and more. For this reason, vector artwork can be scaled without a loss of quality while maintaining a very small file size, quite a winning combination!</p><p>One way to create a path is to draw it by hand. In Sketch the primary tools for this are the Pencil tool and the Vector tool (which is typically called the Pen tool in other programs). The Vector tool is the most often used but it’s a little tricky to master and I’m not going to cover it here, mainly because it’s not right for this project. However, if you are interested, here is a great tutorial on <a href="https://medium.com/sketch-app/mastering-the-bezier-curve-in-sketch-4da8fdf0dbbb">how to use the Vector tool in Sketch</a>.</p><p>In order to build this logo you’re going to use a combination of Compound Paths and the Make Grid feature. Specifically what you’ll be doing is creating a number of circles and then combining them into a complex shape that would be difficult to draw by hand.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/687/1*J52V1zbvTmE_uaMP6gTdlQ.jpeg" /></figure><p>The first step is draw a circle that matches the one in the top left of the hand-drawn logo. Click the Insert button at the top-left of the application and a flyout menu appears. Choose the Shape category and then select Oval. Now Sketch knows you want to create a vector oval of some sort!</p><ul><li>Place your cursor in the <strong>middle</strong> of the top-left circle and then press and hold the <em>Option</em> key, (this forces the circle to be drawn from the center), now drag slowly up and to the left. Notice that this does *not* create a perfect circle by default, so stretch your fingers and press and hold the <em>Shift</em> key at the same time. This constrains the circle’s proportions to a perfect circle. Keep dragging until the outside border extends slightly beyond the original, you’ll have a chance to resize this later, so don’t worry too much about getting it perfect.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/630/1*V1wGZU7ly2fhcKv-6cPzmg.gif" /><figcaption>Press Option + Shift to draw a perfect circle from the center.</figcaption></figure><ul><li>In the Inspector, locate the options for Fills and Borders and if the checkbox for Border is checked go ahead and click it to deselect. You’ll be working with the border later.</li><li>Click on the color swatch in the Fills section and choose a shade of red that won’t burn your eyes out. This color will *not* be the final color of your artwork, so don&#39;t spend too much time on choosing.</li><li>Locate the Opacity slider (its above the Fills section) and drag the slider to 50%. The transparency of your circle drops by half and you can now see the hand-drawn artwork easily.</li><li>Now resize and re-position your circle if necessary. The goal is to make sure the vector circle covers the hand-drawn one completely.</li><li>You will now duplicate this circle multiple times (3 on a top row and 3 on a bottom row). To do this, make sure the circle is selected and then choose <em>Arrange &gt; Make Grid</em>. Type <strong>2</strong> for the rows and <strong>3</strong> for the columns and change the margins for both to <strong>0px</strong>. This ensures that each circle is sitting flush next to the other. Click Make Grid and now you have 6 perfectly aligned circles in two rows and three columns!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/892/1*l4yrNjszhrDDtq1wl6YoTw.png" /></figure><p>The circles will not necessarily line up with the original hand-drawn logo, but this is expected. You are making the transition from the loosely sketched logo to a geometrically precise one.</p><p>The Make Grid feature I just showed you is amazingly useful, there are so many times when you need to quickly duplicate and repeat objects within a grid structure. In chapter 2 of <a href="https://www.thegymnasium.com/courses/GYM/005/0/about">my course</a> I show you how to use Make Grid for entire artboards, which makes the creation of multiple screens for prototypes dead simple.</p><h3>Grouping and renaming objects</h3><p>Before you start building the logo you should do a little housekeeping first by grouping and renaming the layers. If you look at your Layers List you will see the 6 circles have default names and numbers but they’re a bit awkward: “Oval 1 copy 2”and so on. Let’s rename the first circle you created “Oval 1&quot;, the second circle in the top row “Oval 2&quot; and so on.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/462/1*4wNPLlj5w7tVDnaVzcKyxA.png" /></figure><p>As it turns out Oval 1 is already correctly named, so in your Layer List double-click on the second layer and rename it “Oval 2&quot;. Press the <em>Tab</em> key and the next Layer Name will be selected. Continue renaming the remaining circles in numerical order. In the end, your Layer List should look like mine.</p><ul><li>Select all the circles by clicking and dragging over them. You will see all six ovals in the Layers List light up. Notice the hand-drawn sketch wasn’t selected? That’s because you locked it earlier! (You did lock it right?)</li><li>Now go to the Arrange menu and choose <em>Group Layers</em> (you could also use the keyboard shortcut <em>Command + G</em>). Double-click the folder name and rename the group <strong>Circles</strong>. While you’re here, click on the arrow to the left of the folder to toggle it open. You’re going to need access to the contents in just a moment.</li><li>To help you visualize the next step, place your cursor on the far right side of the Circles group. You will see a small eye icon appear, click on this to toggle off the visibility of the group. Click again to make it reappear. Do this a few times so you can understand the relationship of the vector circles to the sketch.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/680/1*aIThqEn_F-hILTu3LguZ6w.gif" /></figure><p>You’re about to merge all of these circle shapes and do some “virtual sculpting” to create your logo, but we need to take a brief detour into the world of compound paths. Stick with this next section, I promise this technique will come in handy over and over again, no matter what type of artwork you’re creating!</p><h3>Working with Compound Paths</h3><p>Compound Paths are not unique to Sketch (In Adobe Illustrator these commands are found in the Pathfinder panel) and in the mathematical realm, compound paths are referred to as <a href="http://en.wikipedia.org/wiki/Boolean_operations_on_polygons">Boolean Operations</a>. The basic idea is that you combine two or more shapes in order to create a new shape. The two most common operations are <em>Union</em> and <em>Subtract, </em>but there is also<em> Intersect </em>and<em> Difference, </em>neither of which you will be using in this exercise.</p><p>Compound paths are a simple concept in principle, but in practice they can be tricky if you forget the rules. There are two key things to remember:</p><ol><li>Compound paths need <strong>overlapping paths </strong>in order to work.</li><li>All the paths you are trying to combine need to be selected first.</li></ol><p>Lets look at an example unrelated to your project: here we see a rectangle which is overlapping a circle. When I select them both and click <em>Union</em> I get this new shape.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/271/1*CHxF-t4tBYoVnNY57b5dMw.gif" /></figure><p>Next, lets look at the Subtract operation, which subtracts one path from the other. Pay close attention to the order of the layers in the following examples: The top layer is always subtracted from the lower layer. In the first example, the blue rectangle is the top layer and overlaps the circle, when the two shapes are selected and I click Subtract, we get the resulting shape:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*etiik8j5X-YD0tgbXv6tbg.jpeg" /></figure><p>If the <em>circle</em> is the top layer and is overlapping the rectangle, clicking Subtract results in a very different shape:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*ILrXqNKnG_4FLcItGbM8fA.jpeg" /></figure><p>Now that you get the basic idea, you’ll apply it to your artwork. You’ll be using a combination of the Union and Subtract methods here.</p><ul><li>To make the following steps as clear as possible I’d like you to turn off the visibility of Ovals 2, 4 &amp; 6. You’ll turn them back on later. Note the gaps between the 3 circles. To “fill” these gaps you are going to have to get a little creative.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*43aHToCBAa4EuDwNp4K97w.jpeg" /></figure><ul><li>Double-click on the bottom circle (Oval 5) to select it. Press and hold down your <em>Option</em> key and then drag the duplicated circle up and to the left until you see the “snapping” that takes place with the smart guides.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/306/1*_O0agFLF3gNm76FSsjfZ-Q.gif" /><figcaption>Press the Option key to duplicate the circle and then drag it to desired location.</figcaption></figure><ul><li>Repeat the last step, but drag this duplicate up and to the right until you see the snapping effect. You see where you’re headed with this? You are about to select these 5 circles and then combine them using Union to create a new shape.<br>(<em>If you’re wondering why there is a darker red on the overlapping paths it’s because the opacity of the original circle was changed to 50% earlier in the tutorial, and you are seeing the transparent colors mixing.</em>)</li><li>To select all 5 circles press and hold down the <em>Shift</em> key and then click each one (it doesn’t matter what order). (If you’re having trouble selecting, the Circles group is probably selected, you will need to select any one of the circles in that group and then proceed.) You can double-check that all 5 are selected by looking in the Layers List. Now click the <em>Union</em> button in your toolbar and all 5 circles are combined into a new layer which Sketch renames <strong>Combined Shape</strong> in the layers list.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/447/1*62h9AMEPekV8mDpNozTQMA.png" /></figure><p>This next part is the trickiest part of the whole procedure, so proceed cautiously. You are now going to use the original circles (2, 4 and 6 respectively) to subtract the paths from your combined shape that you don’t want.</p><ul><li>Start by clicking on the eye for the top layer (Oval 2) to reveal it. Then click Oval 2 in the Canvas to select it. Now <em>Shift + Click</em> the Combined Shape layer in the Canvas and press Subtract.. This subtracts the overlapping paths below and we’re left with the shape we want.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/885/1*QJUzUEJBk5QBbpH8usvYAA.gif" /><figcaption>Command + Click will select any layer to the current selection.</figcaption></figure><ul><li>Now it’s just rinse and repeat. Turn on the layer for Oval 4, select it first and then select your Combined Shape and press Subtract to remove the path below.<br>Only one more to go, but watch out, there is a trap waiting!<br>If you selected the Combined Shape layer and Oval 6 prematurely and subtracted, the result probably surprised you. (If you’re curious, go ahead and try it now, just be sure to press Undo.)</li></ul><p>The trap is that it’s easy to forget that <strong>the top layer is always subtracted from the bottom</strong>. Currently, Combined Shape is the top layer, so subtracting removes everything except a small piece of Oval 6. To do this correctly, you need to reposition Oval 6 to the top layer and <em>then</em> subtract.</p><ul><li>Select Oval 6 and then choose <em>Arrange &gt; Move to Front</em>. You could also just drag the layer in the Layer List to the top, but sometimes it’s possible to make mistakes doing this so stick with the command.</li><li>Now select both layers again and press <em>Subtract</em>. You now have a completed vector logo. Yay! Be sure to save your document, you don’t want to lose all this hard work!</li></ul><h3>Important difference between Illustrator and Sketch</h3><p>There’s an important behavior in Sketch that relates to the way compound paths work. In Sketch all of the paths you combine are always available for modification afterwards. This is very different than Illustrator, where compound paths are “flattened” by default into a single path. Whether you have used Illustrator before or not, it’s important to understand how Sketch’s compound paths work and why it matters.</p><ol><li>In the Layers List you will notice an arrow to the left of the Combined Shape layer. Click on this to expand and you will see all of the circle shapes you have created. Additionally, on the far right you will see small icons that indicate what type of compound path is being applied. Actually, this is more than just an icon, its a menu. If you click on any one of the icons it will show you the different compound path options and you can change them on the fly. Feel free to play around with these, although don’t make any permanent changes.</li></ol><p>This feature means vector artwork in Sketch is incredibly flexible. You can always return to your paths and move them, or change their shapes or the operations you used. This encourages experimentation and makes recombining the elements of your artwork simple. Having said that, the Illustrator method of flattening compound paths can be done in Sketch (and sometimes it does make sense to do this). If you want to see it in action try selecting the Combined Shape and then choosing <em>Layer &gt; Paths &gt; Flatten</em>. (Just be sure to Undo afterward).</p><h3>Adding fills to your logo</h3><p>Time to give your logo some style. In the next few exercises you’ll be using fills, borders and effects. Lets begin with the standard fill.</p><ul><li>The original hand drawn sketch is a bit of a distraction at the moment, so turn it off by clicking the padlock in the “hand-drawn sketch” layer and then click the eye icon to hide it. (Or alternatively, you could <em>Ctrl + Click </em>or <em>Right + Click</em> the layer and and choose <em>Hide Layer</em>.)</li><li>The other thing you need to do is restore the opacity of the logo to 100%. Click your Combine Shape layer to select it, then change the Opacity to <strong>100%. </strong>This ensures the color you are about to choose is at full strength.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/436/1*TXGrO9-LVjk4baSWkLFXqA.png" /></figure><p>Next, click on the Fill color swatch to open the Fills panel. A panel appears with the 6 options for Fills at the top. From left to right the 6 options for Fills are <em>flat color</em>, <em>linear gradient</em>, <em>radial gradient</em>, <em>angular gradient</em>, <em>pattern fill</em> and finally <em>noise fill</em>. You’re only going to focus on flat color and linear gradients for now.</p><ul><li>You will now change your fill color from red to a specific shade of green. If you want to follow my example exactly feel free, or choose another color to your liking! I made green with a Red value of <strong>99</strong>, a Green value of <strong>197 </strong>and a Blue value of <strong>115</strong>. You can find and update these RGB values in the bottom half of the Color panel. Also note the fourth value of A or <em>alpha</em>. Let’s take a few moments to explore alpha color, as it will become a valuable part of your color arsenal.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/420/1*VIxEOr459mqK4LbV4AQE9g.png" /></figure><ul><li>Type <strong>10</strong> as the value for A and press return. Your logo will become extremely faint because you have just set the opacity of the color to 10%. It’s important you don’t confuse the opacity of an alpha color with the Opacity value of the object. To clarify: your logo still has an opacity of 100%, it’s just the fill color that is set to 10% using alpha.</li><li>Type <strong>100</strong> as the value for A and this will restore it to the pure color. Now you’ll add another Fill on top of this one, but this will be a gradient with a little more complexity.</li><li>Click on the “+” sign located on the far right of the Fills panel to add another fill. By default, this new fill obscures the first one, until you change the opacity that is!</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*cvl40ODTM_NSSxmx4ChhjA.png" /></figure><p>Click on the linear gradient option (the second icon from the left) and a gradient tool with two color stops appears on your logo. In addition, a default gradient will appear.</p><p>(<em>Chances are your gradient will look like mine, if not it’s because I believe that Sketch “remembers” the last setting used for gradients, you will be able to ‘reset’ your style in the next step.)</em></p><p>It’s worth exploring the properties of a gradient in Sketch, since it may not be immediately obvious. My logo, for example, starts light at the top and then fades to dark and my green fill color is still apparent, why is that? (Here’s a hint, it has to do with the alpha color value we just looked at.)</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/424/1*HkzjO3mYExENJ_0lG8x6rA.png" /><figcaption>The RGB values are set to black, but a value of 50 for A (alpha) creates 50% transparency resulting in the appearance of gray.</figcaption></figure><p><strong>Click the bottom circle of the gradient editor</strong> (this circle is called a “gradient stop”) and then look at the <em>RGBA</em> values. The value for R, G and B are all 0 which typically displays as pure black, but if the A value is set to 50 (as mine is) this displays as a 50% black or middle gray.</p><ul><li>Now choose any color you’d like in the color picker or if you’d like to continue following my example, type <strong>86 </strong>for R, <strong>104 </strong>for G and <strong>180 </strong>for B<strong>. </strong>This results in a shade of blue with an opacity of 50%.</li><li>Now click the white gradient stop (at the top of the gradient editor)and drag it to the top-left corner of your logo. If the Alpha value is currently <strong>50</strong>, leave it alone, otherwise go ahead and type 50 now.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/648/1*e7E8-CXrCCctC7x27cyaBQ.png" /></figure><p>You can see that the overlay of the semi-transparent gradient and the solid fill create a nice, complex color, and you’re only using two layers. It’s not unheard of to have three or four fill colors interacting with each other for unique effects. The advantage here is that you can experiment with either of the fills without affecting the other. To experiment with this try changing the base color fill or adjusting the gradient.</p><p>(If you’re a little more experienced, Sketch also has blending modes for the color fills or you could create more complex gradients using the gradient editor.)</p><h3>Working with borders and other effects</h3><p>Web design is firmly in the <a href="http://www.creativebloq.com/graphic-design/what-flat-design-3132112">“flat” era</a> at the moment and this is reflected in Sketch’s feature set. For example, you will not find the vast array of layer styles that have been used and abused in Photoshop for years (bevel, emboss, molten glass, etc.) What you will find are styling options that by and large <em>translate directly to features found in CSS </em>including <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/border">borders</a>, <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow">shadows</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/filter#blur%28%29">blurring</a>. Let’s just take a look at borders and shadows for now. Earlier in the tutorial I had you remove the border from your logo entirely, let’s add it back on and then experiment with some of the options.</p><ul><li>Make sure your logo is selected, then click on the checkbox to the left of the color swatch in the Borders section. You may not see a noticeable change because the default thickness is set to 1. In addition to Thickness you also have Color and Position options.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TkLSjdpGyFlTMd-SDWtaNQ.png" /></figure><p>Click inside the field for Thickness and press the up arrow on your keyboard to increase the size of the border to <strong>10. </strong>This border size is a little heavy handed, but it will help you better understand border effects.</p><ul><li>Click the Borders color swatch and experiment with different colors. Don’t get too carried away, though; you’ll be adding a gradient border shortly.</li><li>Within the Color panel, click on the linear gradient option. You’ll now manipulate the color and direction of this gradient to create an interesting effect similar to a bevel (but perhaps with a bit more sophistication!).</li><li>Click on the top color stop in the gradient editor and then drag it to the top edge of the top-left circle. Change the color to a blue-green shade; I used the hex color <strong>38968F.</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qTndSzooPh9xDiE6UBPg7A.png" /></figure><p>Now click on the color stop at the bottom of the gradient editor and change the color to a lighter blue. I used <strong>92BBD7. </strong>I didn’t move this bottom color stop, but feel free to experiment on your version.</p><p>You can create quite complex effects using the preceding techniques, but lets look at one more tool in your arsenal: shadows.</p><ul><li>Click on the plus sign in the Inner Shadows section to add the default shadow. If you’ve ever worked with shadow effects in other programs the options here will be familiar. The values <em>X</em> and <em>Y</em> allow you to position the shadow horizontally and vertically. The <em>Blur</em> property allows you to control the amount of blur and the <em>Spread</em> property defines the “falloff” of the shadow with larger numbers creating a larger shadow. I used the following values <strong>X = 3</strong>, <strong>Y = 12</strong>, <strong>Blur = 3</strong> and <strong>Spread = 2.</strong></li></ul><p>Feel free to tweak any of the various attributes of the logo to suit your taste, but you’ll stop here for now and add some text for the logo. You’re almost at the finish line!</p><h3>Adding Text</h3><p>The text features in Sketch are not as sophisticated as Photoshop and Illustrator but are sufficient for our needs.</p><ul><li>Click on the eye icon for the “vectorflo-handdrawn” layer to bring it back into view.</li><li>Choose<em> Insert &gt; Text </em>and then click once in the area of the letter “v” and the insert text cursor will appear.</li><li>Click on the Typeface menu and if you have <strong>Helvetica Neue </strong>then choose it. If you don’t have Helvetica or Helvetica Neue, then choose Arial as a last resort, but please never use Arial for real logos!</li><li>Additionally, if you have Helvetica Neue, click on the Weight menu and choose <strong>Ultra Light </strong>if available.</li><li>Now type the word <strong>vectorflo </strong>and set the font size to <strong>96.</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/680/1*CGI-yhs6fQp0bOXwxQ3wxA.png" /><figcaption>Sketch’s smart guides “light up” when the text layer is centered.</figcaption></figure><p>You want the text to be centered below the logo, but don’t try to be faithful to the sketched version. Click and drag the text layer until you see the smart guides appear indicating that it is truly centered.</p><ul><li>Now that the text is all set, your hand-drawn layer is officially a distraction. Click on the eye icon to turn it off. There is no need to delete the layer unless you want to reduce the file size slightly.</li><li>Most professional logos have text that modified in some way, it is seldom good enough “out of the box”. In our example (zoom in if you need to) look at the space between the letter “r” and “f”. The letters are touching and that space could be opened up slightly. Let’s see how Sketch does this.</li><li>Double-click the type layer if necessary and then select the letters <strong>r</strong> and <strong>f</strong> and then place your cursor over the word “Character” in the Spacing section. When you see your cursor change to a double arrow this indicates that you can now click and drag to the left or right to change the spacing. Because you want to expand the space, you should drag to the right until the value reaches approximately 8 or whatever value you prefer.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/732/1*YQZt0jn_mwBeyiJT9t0Ueg.gif" /><figcaption>Changing the Character Spacing (kerning) of two letters</figcaption></figure><p>Notice in my example that the spacing is changing not just between the characters <em>r </em>and <em>f</em>, but <em>r</em>, <em>f</em>, and <em>l. </em>If you wanted to adjust the space between <em>r </em>and <em>f </em>only and nothing else, you would need to select just the letter <em>r </em>and perform the same operation. Give it a try to see the difference and then find a balance that works for you.</p><p>Nice work! The only thing left to do is export.</p><h3>Exporting your Graphic</h3><p>Exporting is another one of Sketch’s strong suits. In today’s web environment with its plethora of high resolution screens and mobile devices there is an increasing need to export images in multiple sizes, resolutions and formats. To see how Sketch handles this, you will now export your logo in a number of ways including both bitmap and vector.</p><ul><li>Make sure nothing is selected on your page and then choose<em> File &gt; Export</em> and Sketch will automatically define a box around your logo. This box is technically called a slice and you can see the slice icon has appeared in your Layers List. Sketch uses the name of your document as the default slice name.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/420/1*2OiPIpAx6RqeQL8fFX6QDQ.png" /></figure><p>Sketch will automatically define the boundaries of the slice but you can adjust manually by clicking and dragging the edges of the slice or typing values into Size field. For example, I wanted my height and width to be equal so I typed in <strong>400 </strong>for height and <strong>400</strong> for width. I then repositioned the slice to ensure even distribution of space on all four sides.</p><ul><li>In the Export panel you will note that there are settings for Size, Suffix and Format. The default value for Size is <strong>1x, </strong>Suffix is currently empty and Format is <strong>PNG.</strong></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/422/1*u0xXUHEoHUxBwjTg9DPhtw.png" /></figure><p>A 1x Size simply means your graphic will be exported at 100% size (which is currently 400 pixels by 400 pixels). The Suffix field allows you to add an automatic file name and is typically only used when creating multiple exports. The Format is simply the file type, Sketch can export the following bitmap formats: PNG, JPG, TIFF and for vector: SVG, EPS and PDF.</p><ul><li>Click on the (+) on the right side of the Export section and another row of settings appears. Now the Size is <strong>2x</strong>, the Suffix is <strong>@2x</strong> and the Format is still <strong>PNG. </strong>If you chose this setting your graphic would be exported at twice its current size (so 800 x 800) and the suffix “@2x” will be added to the file name to distinguish it from the base image.</li><li>Click on the (+) one more time. Sketch automatically adds a 3x value, but that can be changed. Click on the Size menu and select <strong>0.5x</strong> from the list and note the suffix reflects this change. Choosing this option will export an image 50% smaller than the original so 200 pixels x 200 pixels.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/430/1*3gCBJh_mutQDm6o3iMJzzQ.png" /></figure><ul><li>Click the (+) one more time and now click on the Format menu and change it to <strong>SVG. </strong>Since this is a native vector format the Size menu is now grayed out. Select the @3X value within the Suffix field and delete it.</li><li>Click the Export vectorflo-logo button at the very bottom of the Inspector and the Export window appears. Click the New Folder button in the bottom left and name it <strong>vectorflo-exports </strong>and then click Export. If you navigate to that folder you will see three files, three of which are the PNG files and one of which is the SVG file.</li></ul><p>Congratulations! You made it to the end of the tutorial. Hopefully you know more about creating artwork in Sketch then when you started. If you liked this tutorial, check out the free courses on topics such as UX, responsive web design and much more at <a href="http://www.thegymnasium.com/">Aquent Gymnasium</a>. Hope to see you there.</p><h4>Further Resources</h4><p>I was going to come up with some Sketch Resources on my own but I’m just going to point you to the superb list that James Young (<a href="https://twitter.com/jydesign">@jydesign</a>) has <a href="http://jydesign.com/resources">put together here</a>. Thanks James!</p><p><strong>Acknowledgements: </strong>Thanks to <a href="http://wedelivery.com/">Justin Gagne</a>, <a href="https://twitter.com/MattTGrant">Matt Grant</a> and <a href="https://twitter.com/andrewpmiller">Andrew Miller</a> for their invaluable help with this article.</p><p><a href="http://sketchtricks.com/">Sketch Tricks</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6d67e72a1449" width="1" height="1" alt=""><hr><p><a href="https://medium.com/gymnasium/creating-a-vector-logo-in-sketch-3-6d67e72a1449">Creating a vector logo in Sketch 3</a> was originally published in <a href="https://medium.com/gymnasium">Gymnasium</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Does your Mobile Strategy have an end game?]]></title>
            <link>https://medium.com/gymnasium/does-your-mobile-strategy-have-an-end-game-35d921f15dd2?source=rss-ab925ef276d3------2</link>
            <guid isPermaLink="false">https://medium.com/p/35d921f15dd2</guid>
            <dc:creator><![CDATA[Jeremy Osborn]]></dc:creator>
            <pubDate>Sun, 05 Jan 2014 23:11:59 GMT</pubDate>
            <atom:updated>2018-01-24T16:53:05.439Z</atom:updated>
            <content:encoded><![CDATA[<h4>Responsive Web Design fits the bill</h4><p>Do you advertise on the web or know someone who does? When it comes to mobile ads, you may be wasting your money if a responsive website is not part of the equation. (If you don’t know what responsive design is at this point, I’ve got you covered, I conveniently teach <a href="http://bit.ly/19mrIwU">an online course</a> on the subject.) Let’s begin with a well known fact: More people are accessing the web on<a href="http://pewinternet.org/Reports/2013/Cell-Activities/Main-Findings.aspx"> cell phones </a>and <a href="http://pewinternet.org/Commentary/2012/February/Pew-Internet-Mobile.aspx">tablets</a> than ever before, AND the rate of increase from year to year is downright staggering, especially for phones. There is nearly one mobile-cell subscription for every human on the planet, an estimated 6.8 billion.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8DA1ClCQ2W0h0DR43HZXlQ.png" /><figcaption>Source: <a href="http://www.itu.int/en/ITU-D/Statistics/Pages/publications/wtid.aspx">ITU World Telecommunication/ICT Indicators database.</a></figcaption></figure><p>Impressive, no doubt, but is it still “news”? After all, it’s obvious if you look around that smartphones and tablets are everywhere. The real question is how does this change business behavior?</p><p>I’m more of a designer and and educator than a businessman, but I found a lot of value in recent data about how more money than ever is being targeted at mobile users. This fact illustrates something important about mobile strategy and responsive design as a whole. Let’s take a closer look.</p><h4><strong>Follow The Money</strong></h4><p>Every year in preparation for the Thanksgiving and Black Friday consumer spending frenzy in the United States, businesses have to decide how much money they will spend on targeting potential customers who are <strong>searching for stuff</strong> on the Web. Specifically they have to decide <strong>where</strong> they will allocate those dollars: Will they target computer users (laptops, desktops) or will they target phone or tablet users?</p><p>So let’s follow that cash: Over the two day span of November 25 &amp; 26 in 2013, businesses spent <em>twice as much </em>money targeting ads for tablet users and <em>almost twice as much</em> on phone users than they did a year ago. Here are the specific data points if you’re interested:</p><blockquote>In 2012 on Thanksgiving and Black Friday, businesses focused 79.5% of their budgets on computer users, 11.8% on phone users and 8.7% on tablet users.</blockquote><blockquote>This year, only 60.3% went to computer users, while <strong>21.2%</strong> went to phone and <strong>18.5%</strong> to tablet users.</blockquote><blockquote><a href="http://www.kenshoo.com/blog-post/thanksgiving-black-friday-2013/">- (Source: http://www.kenshoo.com/blog-post/thanksgiving-black-friday-2013</a>)</blockquote><p>Those are fairly significant numbers when you consider 5 years ago nearly 100% of that budget was for computers, heck, tablets weren’t even a category! Instead of focusing on the abstract stats, though, let’s look at one simple example.</p><h4>Samantha’s life will change with a little help from Responsive Design</h4><p>Samantha is 25, and her gums have just been shot up with a hefty dose of Novacaine. She’s about to get a cavity filled and has 15 minutes until the dentist returns. Samantha’s been thinking about getting a commercial license to drive a truck and with this <a href="http://brand-e.biz/multiscreen-consumers-use-screens-to-manage-their-lives-says-google_23402.html#">found time</a> on her hands, she launches the browser on her smartphone and types in “cdl training” into Google’s search engine (she’s done a little research already). A few sponsored ads appear and she taps the first result for “King’s Driving School”.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*V5mJezb-nxgvxWqxfaVuqQ.jpeg" /><figcaption>The home page of a “Mobile Site” featuring a list of links to content</figcaption></figure><p>The site that appears is very different than what she would see if she were on a desktop computer. She sees a home page with vertical navigation, the two top items “Call us” and “Find us” might have been helpful if that’s what she was here to do, but she has no idea who this company is, what their reputation is or anything else. All she has to go on is what she sees here.</p><p>She taps on the link for Commercial Vehicles, but the resulting page is generic, uninspiring and does not compel her to explore further. She exits the site.</p><p><em>Strike one.</em></p><p>Samantha goes back to the search results and tries the next result. For some reason the page doesn’t load immediately, she waits for 9 or 10 seconds watching the loading animation, grows impatient and then leaves.</p><p><em>Strike two.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/320/1*58KfBzWQM9_-PGAGM5tW6w.jpeg" /></figure><p>She goes back to the search results and is thinking about abandoning this whole web browsing thing and going for level 165 of Candy Crush, but gives it one more shot.</p><p>On the third site there are some clear and strong messages on the home page that speak to Samantha. She scrolls down the page and likes what she sees.</p><p>She explores a bit, but the next step is clear, she’s got about 10 minutes left before the dentist comes back and so she decides to apply for training right there and then.</p><p>The application is a 5 step process broken up logically into separate forms and it’s pretty thorough: asking for personal information, past work history and all sorts of things, it takes Samantha about 7 minutes to fill out and when she finishes the last step she sets up an appointment to have her application reviewed. I’ll take some literary license here and let you know that she went for the training the next week, eventually passed her exam and is loving her new job.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*9DBPnykICMlOuqbWflZxQQ.png" /><figcaption>5 step process for applying for a CDL</figcaption></figure><p><em>Home run.</em></p><h4>What went wrong for sites #1 and #2?</h4><p>Samantha’s new job began with the results of a Google search found while sitting in a dentist’s chair. Let’s break down why site #3 won her attention and not the first two. The owners of the first site were savvy enough to buy an advertisement targeted for mobile users (btw, yeah you can do that now using Google’s <a href="https://support.google.com/adwords/answer/2909484?hl=en">“enhanced campaigns”</a>) and then send them to their mobile site, but their site was “mobile” in only the most technical sense, it didn’t do any of the other things that make a website compelling such as including clear and engaging content or a focused marketing message. There is no silver bullet that makes a website effective just because of its format or template (which is true of any website really), Brad Frost put it best in his 2012 article <a href="http://bradfrostweb.com/blog/web/responsive-web-design-missing-the-point/">Missing the Point:</a></p><blockquote><strong>Your visitors don’t give a shit if your site is responsive.</strong> They don’t care if it’s a separate mobile site. They don’t care if it’s just a plain ol’ desktop site. They <strong>do</strong> give a shit if they can’t get done what they need to get done.</blockquote><p>Let’s expand on Brad’s point and look at the second site’s problem. Actually, that site might have had really great content, design and marketing messages, maybe even better than site #3, but we’ll never know because the page never loaded. Perhaps the images were too large or maybe it was using a bloated content management system, maybe the owner cut corners with a cheap server, whatever the issue was, after 10 seconds Samantha was history.</p><p>The third site (the successful one) not only had a pleasing design and strong, yet simple content but the home page had a file size of <em>287k</em>, (roughly 75% smaller than the average web page these days), this resulted in speedy load time and performance while Samantha was stuck in the dentist’s chair. More importantly, the entire user experience was carefully considered, everything from the home page to the design of the forms and this makes all the difference in the world. Oh and did I mention that the site was <em>responsive?</em> This means the content on the phone and the desktop are one and the same and so if Samantha waited until she got home on her PC everything would have looked very familiar and possibly be even more compelling by taking full advantage of the larger desktop screen.</p><p>A “mobile strategy” is simple: if you pay for an ad that targets mobile users, make sure the destination site is responsive.</p><p><strong>Resources from this article:</strong></p><ul><li>My free <a href="http://bit.ly/19mrIwU">responsive web design course</a> at Aquent Gymnasium.</li><li>The <a href="http://www.itu.int/en/ITU-D/Statistics/Pages/publications/wtid.aspx">2013 ITU World Telecommunication/ICT Indicators report</a>. Lots of great data on trends around the world.</li><li>HTTP Archive’s<a href="http://httparchive.org/trends.php#bytesTotal&amp;reqTotal"> trends in load times</a>.</li><li>Kenshoo’s post on <a href="http://www.kenshoo.com/blog-post/thanksgiving-black-friday-2013/">Mobile paid search on Thanksgiving and Black Friday</a>.</li><li>Brad Frost’s article <a href="http://bradfrostweb.com/blog/web/responsive-web-design-missing-the-point/">“Responsive Web Design: Missing the Point”</a>.</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=35d921f15dd2" width="1" height="1" alt=""><hr><p><a href="https://medium.com/gymnasium/does-your-mobile-strategy-have-an-end-game-35d921f15dd2">Does your Mobile Strategy have an end game?</a> was originally published in <a href="https://medium.com/gymnasium">Gymnasium</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Responsive Web Design Trends]]></title>
            <link>https://medium.com/gymnasium/responsive-web-design-trends-e67589bf9b73?source=rss-ab925ef276d3------2</link>
            <guid isPermaLink="false">https://medium.com/p/e67589bf9b73</guid>
            <dc:creator><![CDATA[Jeremy Osborn]]></dc:creator>
            <pubDate>Fri, 13 Dec 2013 18:01:55 GMT</pubDate>
            <atom:updated>2018-01-24T16:51:37.105Z</atom:updated>
            <content:encoded><![CDATA[<h4>As gleaned from the Artifact Conference</h4><p>In November 2013 I attended the<a href="http://artifactconf.com/"> Artifact Conference</a> in Providence, RI for two days. The conference was adeptly organized by Jennifer Robbins (<a href="https://twitter.com/jenville">@jenville</a>) and Christopher Schmitt (<a href="https://twitter.com/teleject">@teleject</a>) and billed as a conference for “DESIGNERS who are adapting to the challenge of designing for a MULTI-DEVICE world”.</p><p>Like all great conferences, I came away energized and inspired with all of the great discussions and ideas that were bouncing around, but also with a small sense of relief as I watched a number of speakers confirm thoughts, trends and processes that I have been observing recently. My job requires me to stay closely on top of industry trends, and responsive web design is certainly a topic which <a href="http://bit.ly/19mrIwU">I have more than a passing interest in!</a></p><p>So, there were a lot of themes that could be extrapolated from the talks given over the two days, but two stuck out as being particularly notable and I’d like to share them here.</p><h3>The evolving landscape of the web</h3><p>We are living in a really interesting time for web design and development, the fundamentals of HTML, CSS and Javascript as well as the technologies and services that surround and support them (browsers, GitHub and TypeKit to name just a few) are changing and growing on a daily basis.</p><p>In many ways this is nothing new, but it is the rapid ascent of designing for “mobile” that is altering the design landscape for good. This reality can best be confirmed by the multiple design professionals who over and over again said on stage a variation on this theme: <em>“None of us *really* know what we’re doing!”</em>.</p><h4>Amid the uncertainty, clear trends are emerging</h4><p>Of course these folks actually <em>do</em> know what they’re doing. You don’t get to keep making responsive sites such as The Boston Globe, Microsoft, Entertainment Weekly among others if you are clueless. The larger point is that the craft of web design and development is in yet another phase of re-invention and it’s worth taking a step back and clarifying what this means. Here’s my take on it:</p><ol><li>The process of taking your content from inception to publication and how you collaborate with team-members and clients along the way could be called workflow. Specifically, a <strong>responsive workflow</strong> understands that the diversity of screen sizes and devices requires a new way of interpreting content and new methods of collaboration.</li><li>Responsive design is forcing <strong>site performance</strong> to get a true seat at the table. Slow-loading and bloated sites are just as much of a design flaw as confusing layout, clashing colors, and the rampant proliferation of typefaces on a page.</li></ol><h4>Responsive workflow is disrupting past methods of page design</h4><p>Let’s examine responsive workflow first: the goal of making web pages that are adaptable <a href="http://alistapart.com/article/dao">is not a new idea</a> and yet we have held onto some concepts that are <em>not</em> so adaptable for years. The most notable example may be page designs based on mockups in Photoshop. Photoshop mockups are fixed-width by default. The responsive web is not fixed-width. Done deal, we need to move away from Photoshop right? Actually it’s more complex than that, there is no consensus on the matter, however many designers are relying on Photoshop less and some are even <a href="https://medium.com/ux-design-8/53e4fdd4457">abandoning it altogether</a>.</p><p>Sounds intriguing right? But if Photoshop page mockups are out, what takes their place? Plausible alternatives are emerging. For example, consider the use of<a href="http://styletil.es/"> style tiles</a> or<a href="http://danielmall.com/articles/rif-element-collages/"> element collages</a> two related techniques used to help pin down the look and feel of a site without resorting to a “mockup”. The idea here is to obtain consensus on the direction of a design, and then move into the browser as early as possible. One of the best quotations to illustrate this updated workflow was from Kevin Sharon and Sophie Shepherd’s presentation <a href="https://speakerdeck.com/kevinsharon/a-new-toolbox-artifact-conference-providence-2013">“A New Toolbox”</a>:</p><blockquote>“Most of what I do doesn’t look like a website.”</blockquote><p>This relates specifically to the style tile and element collage concepts mentioned earlier but is also tightly connected to the idea that today’s modern designer needs to be continually involved (for realsies!) in all stages from research to final documentation. However you slice it, the times are a changing if you consider yourself a “responsive” designer or developer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/708/1*xNbSZAtta2SK3vdRmYhWGg.png" /><figcaption>Slide from the presentation “A New Toolbox” by Kevin Sharon and Sophie Shepherd</figcaption></figure><h4><strong>Site performance no longer an afterthought</strong></h4><p>The second trend involving site performance was well represented on the second day of the conference by <a href="http://unstoppablerobotninja.com/">Ethan Marcotte</a> who kicked things off with a call for designers to improve the health of the web, specifically he encouraged asking the following question:</p><blockquote>“Is this design worth its performance cost?”</blockquote><p>The <a href="http://httparchive.org/trends.php?s=All&amp;minlabel=Dec+1+2012&amp;maxlabel=Dec+1+2013#bytesTotal&amp;reqTotal">average file size of a web page</a> in December of 2013 is approximately 1.635 megabytes. So every time you load a <em>single</em> page on the average website you are downloading more data (by about 200kb) than fits on the floppy disk used back in the day.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/225/1*fyEul7UaCWdTjpS8RwZQWw.jpeg" /><figcaption>The 3,5 floppy stored 1447 kb of data</figcaption></figure><p>The increasing size of web pages shows no signs of slowing down, and it’s a markedly unhealthy situation. Slow-loading sites are one of those universal frustrations that cut across every single category of user you have. I ride the subway to work everyday, and magically there is always some network connection, albeit often a weak one. As I observe my fellow passengers on their phones and tablets I wonder how many sales are being lost, how many articles are never fully read, how much productivity is being wasted all because a site is not optimized for this scenario.</p><p>Images are the primary culprit behind page bloat and admittedly, dealing with the landscape of responsive images feels like a descent into the lower circles of Dante’s Hell. To deal effectively with responsive images you need a sense of humor as exemplified by my new hero <a href="http://daverupert.com/">Dave Rupert</a>, whose presentation <a href="http://vimeo.com/79265962">Mo’ Pixels, Mo’ Problems</a> was one of the highlights of the entire conference. Yes, dealing with the page bloat incurred by images is a little tricky, start with basic solutions such as <a href="http://imageoptim.com/">image</a> <a href="https://tinypng.com/">optimization</a> and <a href="http://mobile.smashingmagazine.com/2013/07/22/simple-responsive-images-with-css-backgrounds/">mindful use of background images</a> and you’ll be ahead of the pack already.</p><p>Making responsive websites accessible, beautiful and low-weight is absolutely within our reach and totally worth the effort. The distinction between “web design” and “responsive web design” is feeling sillier every day. How long before every project is responsive?</p><p><strong>Further Resources</strong><br>Many of the presenters put their slides online. I’ve provided links to some of them here as well as a few other resources.</p><ul><li>My course on <a href="http://bit.ly/19mrIwU">Responsive Web Desig</a>n includes lessons relating to the highlights of this article, Responsive Workflow, Optimization &amp; Performance and Responsive Images.</li><li><a href="http://responsivelayouts.jensimmons.com/">Responsive Layouts beyond the Sidebar</a> by Jen Simmons (@jensimmons)</li><li><a href="https://speakerdeck.com/bencallahan/get-your-visual-style-on">Get your (Visual) Style On</a> by Yesenia Perez-Cruz (@yesenia) and Ben Callahan (@bencallahan)</li><li><a href="https://speakerdeck.com/kevinsharon/a-new-toolbox-artifact-conference-providence-2013">A New Toolbox</a> by Kevin Sharon (@kevinsharon) and Sophie Shepherd (@sophshepherd)</li><li><a href="http://dev.kingdesignllc.com/artifact/links/">Artifact Bookmarks</a> offers a goldmine of online resources gathered by Artifact attendee King Design (@KingDesignLLC).</li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e67589bf9b73" width="1" height="1" alt=""><hr><p><a href="https://medium.com/gymnasium/responsive-web-design-trends-e67589bf9b73">Responsive Web Design Trends</a> was originally published in <a href="https://medium.com/gymnasium">Gymnasium</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>