{"id":2552,"date":"2016-08-11T18:03:06","date_gmt":"2016-08-11T17:03:06","guid":{"rendered":"https:\/\/marvel7077.wpengine.com\/?p=2552"},"modified":"2020-08-21T14:08:45","modified_gmt":"2020-08-21T13:08:45","slug":"god-is-in-the-details","status":"publish","type":"post","link":"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/","title":{"rendered":"&#8220;God is in the details&#8221;"},"content":{"rendered":"<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It applied to <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/en.wikipedia.org\/wiki\/Ludwig_Mies_van_der_Rohe\" target=\"_blank\" rel=\"noopener noreferrer\">Ludwig Mies van der Rohe<\/a> when he was designing buildings in the mid 1900\u2019s, and it remains true in product design today. Though I don\u2019t profess to know much about architecture, another likely commonality with product design is that it\u2019s those same details that are the easiest to forget. But it\u2019s those little things, the tiny minutia of detail, that ultimately make beautiful products, and beautiful houses.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Unfortunately, when I refer to the \u201cdetails\u201d in product design, I\u2019m not talking about obvious design things; like colours, drop-shadows or placement. Instead I\u2019m referring to something harder to define; experience and subconscious patterns that help the user feel more at-ease with an interaction. That detail might come in the form of a change in cursor, a \u201cdown\u201d style for a button, or a helpful animation.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Whatever form that detail takes, I\u2019ll bet that it wasn\u2019t designed in Photoshop, or included in even the most detailed spec document. It\u2019s the details that fall outside of titles like UX, or UI. It\u2019s interaction detail that can only be found after using a product for real, then dedicating solid design and engineering time to building.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The details are difficult to include when you\u2019re building a product; they\u2019re expensive both in terms of time and technical overhead\u200a\u2014\u200awhich is why they\u2019re rare. I spend my time in pursuit of these details, and as the designer and developer of <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/prevue.it\/\" target=\"_blank\" rel=\"noopener noreferrer\">Prevue<\/a>, I have two luxuries which thankfully afford me the ability to obsess over them:<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The first<\/strong> is that I have the capacity to <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/blog.prevue.it\/posts\/use-improve-repeat\" target=\"_blank\" rel=\"noopener noreferrer\">use, improve and repeat<\/a>. I\u2019m not just talking about about the technical ability to implement the details\u200a\u2014\u200aI\u2019m also talking about having the time to do so. Sometimes an interaction will take me 50% longer to build, simply because I\u2019ve spent hours obsessing about the animated states that occur over a 0.65 second duration. That\u2019s not a luxury that many products can afford, or are willing to build into scope. Understandably so.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The second<\/strong> is that I use my product, for real, every single day. If there\u2019s an annoying interaction, unnecessarily lengthy animation or a dumb user-flow\u200a\u2014\u200athe chances are pretty high that I\u2019m going to spot it. That\u2019s the difference between functional testing:<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><em><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u201cDoes X do Y when you press Z?\u201d<\/strong><\/em><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Versus true-to-life user-testing:<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><em><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\u201cDoes the product intuitively help me achieve a task, quickly, when I\u2019m up against a deadline?\u201d<\/strong><\/em><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">But let\u2019s be honest; using a product over-and-over, re-building functionality, and obsessing about the little things takes <em>a lot<\/em> of time\u200a\u2014\u200aperhaps a luxury afforded to side-projects like Prevue, or products with too much money. They\u2019re usually too hard to justify, and they\u2019re definitely the first thing to be sacrificed when push comes to shove. That\u2019s probably why Ludwig Mies van der Rohe only designed a handful of buildings that weren\u2019t ugly skyscrapers\u200a\u2014\u200aor why Prevue doesn\u2019t ship features very often.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Having spent the last 7 years polishing my own side-project, I\u2019ve learned where to look for \u201cquick wins\u201d when it comes to building detail-oriented design into larger, fast-moving commercial products. So instead of professing to knowing the perfect solution for forcing \u201cdetail-mining\u201d into your release schedule, I thought I\u2019d share a few places where you can start looking for improvement in your own projects, and why those details can make all the difference.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Visually Confirm Interactions<\/strong><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I\u2019m going to start with something that applies to most products, yet is so commonly overlooked\u200a\u2014\u200abutton states. Even on a fast internet connection, there\u2019s likely going to be a delay after pressing a button before the next action takes place; like a new page load, image upload, or some kind of event. Yet so few products give any visual confirmation that something is happening in the background.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Leaving the user hanging there, with no confirmation that their click actually did anything, is likely causing an unnecessary break in their journey. Whilst your servers are processing the action, your user is wondering whether their click actually registered. They\u2019re <em>thinking<\/em> about your UI. That\u2019s the very opposite of what you want.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The solution is to consider adding a button style for when the user has clicked, then another style or animation for when the submission has been made. At the very least, this shows that the user did, indeed, <em>click<\/em>.<\/p>\n<div id=\"attachment_2553\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Button-Colour-Change.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2553\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Button-Colour-Change.gif\" alt=\"Every button in Prevue has a \u2018down\u2019 state, and animation to confirm that your click was understood\" width=\"700\" height=\"200\" class=\"size-full wp-image-2553\" \/><\/a><p id=\"caption-attachment-2553\" class=\"wp-caption-text\">Every button in Prevue has a \u2018down\u2019 state, and animation to confirm that your click was understood<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Better still, if the action is likely going to take a little while\u200a\u2014\u200aconsider actually <em>telling<\/em> the user what\u2019s happening. If you can\u2019t explain something adequately through design, then there\u2019s no shame in literally spelling it out.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Click-Recognition.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Click-Recognition.gif\" alt=\"Click Recognition\" width=\"700\" height=\"132\" class=\"aligncenter size-full wp-image-2578\" \/><\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Of course, attention to detail can run deeper than basic styling. A good example is when it comes to uploading images (an action that takes considerable time). In the event where user interaction is predicted to last into the 2+ second range, you might be better off faking success than making your user wait.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Use Subtle Animation<\/strong><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I could talk for days about the importance of animation, and the role it plays in helping users understand an interface\u200a\u2014\u200afortunately there are already plenty of better resources out there. Instead, I\u2019ll just touch on the importance of subtle, almost <em>invisible<\/em> animation.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Take the following as an example; dragging an image to a folder doesn\u2019t <em>require<\/em> feedback\u200a\u2014\u200ait just works\u2026 but the user doesn\u2019t know that. So a small animation that infers success is all it takes to alleviate uncertainty.<\/p>\n<div id=\"attachment_2579\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Animation-Feedback.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2579\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Animation-Feedback.gif\" alt=\"Animation Feedback\" width=\"700\" height=\"350\" class=\"size-full wp-image-2579\" \/><\/a><p id=\"caption-attachment-2579\" class=\"wp-caption-text\">Notice how the \u201cX images\u201d number takes slightly longer to update? That\u2019s the actual time it takes for the server to respond. In this case, the \u201cnom\u201d animation helps the user continue about their business<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Animation can also help to indicate context, and transition between views. Instead of abruptly moving between states, risking losing the focus of your user, animation can help indicate where things <em>came<\/em> from.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Transition-Animation.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Transition-Animation.gif\" alt=\"Transition Animation\" width=\"700\" height=\"331\" class=\"aligncenter size-full wp-image-2580\" \/><\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Remember, Things Load<\/strong><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I recall reviewing the notes from a user testing session whilst working at Skype\u200a\u2014\u200awhere we had given people a drag-and-drop UI that saved <em>\u2018on drop\u2019<\/em>. It was so well-built, that the action of saving was almost instantaneous, and didn\u2019t even require a loading state.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It was <em>so<\/em> fast, in fact, that users had a total disbelief that their action was successful\u200a\u2014\u200aultimately causing more confusion and anxiety than necessary. The solution? Pretending that the product was \u201cthinking\u201d, by adding a loading spinner on event of a drop. Even though it wasn\u2019t.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">That was a good use-case for a loading spinner. But most of the time, I see designers adding spinners, simply because they <em>can<\/em>. Most of the time, the user doesn\u2019t need to be told that something is loading at all, and adding a spinning graphic is likely to command more attention than necessary.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Take the following example\u200a\u2014\u200athe image, which is dynamically generated (slow) then loaded via AJAX, isn\u2019t the point of the page\u2026 the text is. In this case, animation replaces the need for spinners or delays.<\/p>\n<div id=\"attachment_2581\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Blank-Slate-Transition.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2581\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Blank-Slate-Transition.gif\" alt=\"Blank Slate Transition\" width=\"700\" height=\"326\" class=\"size-full wp-image-2581\" \/><\/a><p id=\"caption-attachment-2581\" class=\"wp-caption-text\">Loading a dynamically generated image is costly. So instead of commanding the users\u2019 attention with a spinning graphic, there\u2019s a simple blank slate<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Optimise for Context<\/strong><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">With any product that contains data, images or reporting\u200a\u2014\u200ait\u2019s likely that no screen is ever going to look the same. Yet when designing, we optimise for the best-case scenario, and often forget about when there\u2019s no data, lots of data, or somewhere in-between. A good start is to ditch lorem ipsum, stock-quality images or perfectly rounded numbers in designs\u200a\u2014\u200aand optimise for context instead. What does <em>real<\/em> data look like?<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">By considering the various states of a UI, you can begin to get creative about how to design accordingly. For example, a group of images in Prevue will change configuration depending on how many there are\u200a\u2014\u200ato make sure that no matter what, the users images always looks nice.<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"By considering the various states of a UI, you can begin to get creative about how to design accordingly.\"<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Image-Configuration.jpeg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Image-Configuration.jpeg\" alt=\"Image Configuration\" width=\"700\" height=\"366\" class=\"aligncenter size-full wp-image-2582\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/08\/Image-Configuration.jpeg 700w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/08\/Image-Configuration-600x314.jpeg 600w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Being context-aware isn\u2019t just about looking good, either. Situational context is about identifying when and where extra attention should be paid to seemingly straight-forward, commonplace UI.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Take credit card forms for example\u200a\u2014\u200aan area where extra care and attention can help users subconsciously understand what\u2019s required of them, and prevent potential errors.<\/p>\n<div id=\"attachment_2583\" style=\"width: 367px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Credit-Card-Form.gif\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2583\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Credit-Card-Form.gif\" alt=\"Credit Card Form\" width=\"357\" height=\"171\" class=\"size-full wp-image-2583\" \/><\/a><p id=\"caption-attachment-2583\" class=\"wp-caption-text\">A modified version of Stripe\u2019s Payment plugin using learnings from Brad Frost\u2019s article<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">They\u2019re also a perfect example of the value of real-life testing\u200a\u2014\u200athere\u2019s so much anxiety involved in entering secure, financial details that you simply can\u2019t appreciate it until you try for yourself. When building the credit card form for Prevue (<em>above<\/em>), I tested several live versions in an attempt to perfect the experience. Every time, my card was actually charged $10\u200a\u2014\u200awhich was a great incentive to get it right.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Context is key in a situation like this, and even the tiniest details can help users understand what they\u2019re doing. For example:<\/p>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>Format the numbers in the same way as on the physical card<\/li>\n<li>Preventing non-numerical characters, or more numbers than necessary<\/li>\n<li>Assuming MM\/<strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">YYYY<\/strong> if MM\/<strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">YY<\/strong> is entered<\/li>\n<\/ul>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">By considering what content might be displayed, the circumstances in which a task might be undertaken, or the feeling of the user at the time\u200a\u2014\u200ayou\u2019ll be able to balance what <em>looks<\/em> best with what <em>works<\/em> best.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Respect Native Functionality<\/strong><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Your product should respect the functionality of the platform in which it lives\u200a\u2014\u200awhich means it definitely shouldn\u2019t alter native functionality, like \u2018hijacking\u2019 your scrollbar, and should ideally complement existing user experience patterns.<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"Your product should respect the functionality of the platform in which it lives...\"<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">For example, some people are used to using keyboard commands to perform common actions. So if your product allows the user to perform a potentially disruptive action (like moving content around, or deleting lots of text)\u200a\u2014\u200athen you should strongly consider allowing Ctrl+Z functionality to \u2018Undo\u2019. The same applies for saving (Ctrl+S), pressing ESC to dismiss a modal window, or \u201cclicking away\u201d to close a dropdown or open menu.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">By preventing your user from performing an interaction they\u2019re familiar with\u200a\u2014\u200ayou\u2019re creating an unnecessary <em>pause<\/em>; a moment of uncertainty for them.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">There should also be no <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">wrong way<\/strong> for a user to perform an action. For example, in both Prevue and <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.campaignmonitor.com\/email-templates\/\" target=\"_blank\" rel=\"noopener noreferrer\">Email Builder<\/a>, users can upload an image by pressing the \u201cupload\u201d button\u200a\u2014\u200abut if dragging a handful of images directly into the browser is what someone is used to; both products are built to allow for that too.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Building two or three different ways to perform the <em>exact same<\/em> action seems like unnecessary complexity, especially if you don\u2019t even tell users that functionality exists. But when users are able to use your product how <em>they<\/em> want; you end up creating a seamless and fluid experience that people feel comfortable using. It\u2019s why iPad\u2019s were designed to emulate the familiar actions of leafing through a magazine\u2019s pages.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Set the Tone<\/strong><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The final, and arguably easiest detail to implement, is <em>tone of voice<\/em>. In the midsts of designing tough UI and writing functional documentation\u200a\u2014\u200ait\u2019s easy to forget that you\u2019re building a product for real people. Forgetting to add a human touch to your copywriting can result in error messages reading as though they\u2019re composed by robots\u200a\u2014\u200areminding users that they\u2019re dealing with a faceless machine, right at the moment they need the most guidance. <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/twitter.com\/davegreiner\/\" target=\"_blank\" rel=\"noopener noreferrer\">Dave Greiner<\/a> gave me some good advice about copywriting:<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"Read your copy aloud, and imagine you\u2019re talking to your user face-to-face\" - Dave Greiner<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It\u2019s great advice for two reasons; firstly because you quickly spot when your message becomes unnecessarily lengthy, impersonal, or even rude. And secondly, because reading your message aloud will inform you when being overtly personal isn\u2019t appropriate for the context either.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Take the following as an example of the latter\u200a\u2014\u200awhere I got the tone and context completely wrong for an error message:<\/p>\n<div id=\"attachment_2584\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Tone-for-error-message.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2584\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Tone-for-error-message.png\" alt=\"Tone for error message\" width=\"700\" height=\"239\" class=\"size-full wp-image-2584\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/08\/Tone-for-error-message.png 700w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/08\/Tone-for-error-message-600x205.png 600w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-2584\" class=\"wp-caption-text\">Not helpful.<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">In an attempt to be disarming and <em>human<\/em>, I wrote the above message to be displayed on the rare occasion when uploads failed due to server error. What I didn\u2019t consider was <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">context<\/strong>. At a point when the user had waited patiently for their upload to process, the app responded with an unhelpful and unapologetic response. If I was a user on my way to a client presentation, or up against a deadline, this would be less than ideal. This has fortunately been fixed, but not before I received a justifiably angry email from a customer.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Of course there are also occasions when you <em>can<\/em> have fun, and where a bit of personality can add value to an otherwise boring user experience. Like on the <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/prevue.it\/#signup\" target=\"_blank\" rel=\"noopener noreferrer\">Prevue signup<\/a>, where submitting the form without entering any details will return this message:<\/p>\n<div id=\"attachment_2585\" style=\"width: 710px\" class=\"wp-caption aligncenter\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Playful-tone-with-error-message.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2585\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/08\/Playful-tone-with-error-message.png\" alt=\"Playful tone with error message\" width=\"700\" height=\"237\" class=\"size-full wp-image-2585\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/08\/Playful-tone-with-error-message.png 700w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/08\/Playful-tone-with-error-message-600x203.png 600w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-2585\" class=\"wp-caption-text\">For me, this is preferable to putting an error state on every input<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The details are the last 1% of a product. They\u2019re hard to define, they\u2019re impossible to scope, and they\u2019re absolutely no substitute to thorough research, great design and clever engineering. They can, however, be the difference between an <em>average<\/em> experience and a great one.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The details will help your product feel natural, fun, intuitive, and even make your users feel smart. <\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"It\u2019s in the small things, that easy-to-forget 1%, where you\u2019ll find the key to making people fall in love your product.\"<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">In the details\u200a\u2014\u200a<em>that\u2019s<\/em> where you\u2019ll find God.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><em>This post was <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/medium.com\/prevue-app\/god-is-in-the-details-bc3a9a9a5d88#.rxwkrksta\" target=\"_blank\" rel=\"noopener noreferrer\">originally posted<\/a> on Buzz\u2019s <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/medium.com\/@buzzusborne\" target=\"_blank\" rel=\"noopener noreferrer\">Medium profile<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>It applied to Ludwig Mies van der Rohe when he was designing buildings in the mid 1900\u2019s, and it remains true in product design today. Though I don\u2019t profess to know much about architecture, another likely commonality with product design is that it\u2019s those same details that are the easiest to forget. But it\u2019s those little things, the tiny minutia&#8230; <a class=\"link link--blue fontWeight-4\" href=\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/\">Read More &#65515;<\/a><\/p>\n","protected":false},"author":19,"featured_media":2587,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[493],"tags":[],"class_list":["post-2552","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product-design"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"description\" content=\"More than just details in product design, Buzz shares his experiences in helping users feel at ease with details in interaction - and how to delight.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"&quot;God is in the details&quot; - Attention To Interaction Details\" \/>\n<meta property=\"og:description\" content=\"More than just details in product design, Buzz shares his experiences in helping users feel at ease with details in interaction - and how to delight.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/\" \/>\n<meta property=\"og:site_name\" content=\"Marvel Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/marvelapp\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-11T17:03:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-08-21T13:08:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/08\/The-\u2018Farnsworth-House\u2019-by-Ludwig-Mies-van-der-Rohe-.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1333\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:site\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"9 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\",\"name\":\"Marvel\",\"url\":\"https:\/\/marvelapp.com\/blog\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/marvelapp\",\"https:\/\/www.instagram.com\/marvelapp\/\",\"https:\/\/www.linkedin.com\/company\/marvel-app\/\",\"https:\/\/twitter.com\/marvelapp\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#logo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/marvelapp.com\/wp-content\/uploads\/2018\/06\/Logo-Light.png\",\"width\":1605,\"height\":1130,\"caption\":\"Marvel\"},\"image\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#website\",\"url\":\"https:\/\/marvelapp.com\/blog\/\",\"name\":\"Marvel Blog\",\"description\":\"Ideas and words on user experience, design, collaboration and more\",\"publisher\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/marvelapp.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/#primaryimage\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/08\/The-\\u2018Farnsworth-House\\u2019-by-Ludwig-Mies-van-der-Rohe-.jpeg\",\"width\":2000,\"height\":1333,\"caption\":\"The \\u2018Farnsworth House\\u2019 by Ludwig Mies van der Rohe\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/#webpage\",\"url\":\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/\",\"name\":\"\\\"God is in the details\\\" - Attention To Interaction Details\",\"isPartOf\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/#primaryimage\"},\"datePublished\":\"2016-08-11T17:03:06+00:00\",\"dateModified\":\"2020-08-21T13:08:45+00:00\",\"description\":\"More than just details in product design, Buzz shares his experiences in helping users feel at ease with details in interaction - and how to delight.\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/#webpage\"},\"author\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#\/schema\/person\/198bc4da89adfc6c273aa07ab35bb389\"},\"headline\":\"&#8220;God is in the details&#8221;\",\"datePublished\":\"2016-08-11T17:03:06+00:00\",\"dateModified\":\"2020-08-21T13:08:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/#primaryimage\"},\"articleSection\":\"Product Design\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/marvelapp.com\/blog\/god-is-in-the-details\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#\/schema\/person\/198bc4da89adfc6c273aa07ab35bb389\",\"name\":\"Buzz\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#personlogo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/29d004566b4be7eccd09949d571837afd6cf6b4f335bdd790c04f5dab3ae1279?s=96&d=mm&r=g\",\"caption\":\"Buzz\"},\"description\":\"Product designer &amp; Founder @PrevueIt. Previously UX Director @CampaignMonitor and designer @Skype. Follow me on Twitter @buzzusborne.\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts\/2552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/comments?post=2552"}],"version-history":[{"count":0,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts\/2552\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/media\/2587"}],"wp:attachment":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/media?parent=2552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/categories?post=2552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/tags?post=2552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}