Steve Schoger | Refactoring UI | CSS Day 2019

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
(driving rock music) Thank you. (audience clapping) - Okay everyone. So yeah, I'm Steve Schoger. I'm from Canada, as he said. Any other Canadians in the audience? (audience whooping) Yeah there's one. (audience laughing) Yeah I'm from, I'm outside of Toronto. Our local team just won the basketball tournament. (audience applauding) The championship, sorry. And so, yeah, my entire Twitter feed is all the Toronto Raptors and CSS Day. Anyway so most people know me as the guy who teaches design to developers. So I like to show how you can use tactics instead of talent to do a design. Today I hope to do just that. So in this talk I'm gonna be sharing a few tips that will help you improve your own designs. Now I found that the best way to teach this stuff is by example, so my approach today is not gonna be any different. We're gonna be taking a look at an example that I created that addresses some of the more common problems that I've observed developers struggling with. So it's gonna be filled with a ton of mistakes I see being made. And in that I'm gonna try my best to explain what goes through my head when I work on a project like this. So let's start by taking a look at the example we'll be refactoring today. This is designed for like a fictional flight booking application. Now I just wanna emphasize that this is just an arbitrary example that I made because I felt it covered a lot of the concepts I wanted to share. I realized that not everyone's working on a flight booking application, maybe you work at booking.com, I guess. But I took a lot of ideas here from existing booking application sort of get my own twist. So this is our starting point. So as you can see, it covers everything from form design, table design, and data schemas. It's more or less using a lot of bootstrap defaults, which I see many developers relying on. Now I don't want to like poo poo on bootstrap. It's a great starting point but there's a lot of quick wins here that we can apply to make it more polished and just bring it to that next level. So like I said, there's a lot of commonly used components here that can use on a variety of applications. So our goal today is just to touch on some cosmetic changes so without affecting the overall structure. So let's start by moving back to the top here, and we'll just kind of work our way down as I get through it. So the most glaring problem here is, it sort of starts that text on that background image. So it's because it's on a photo, photos are pretty dynamic, they have a lot of light areas and a lot of dark areas and you need to give text consistent contrast. So using a background image like this, it's really easy. It's a really easy way to add impact to your Hero, but without you run the risk of having poor contrast with texts when it's overlaid on top, especially on top of a busy area. In this case, there's a source of background interference with some of the labels on the left. Now, the easy way to work around this is to find an image that contains a lot of negative space that provides you with like an area for text. But sometimes that's easier said than done, especially when you're like digging through like a royalty free library for that perfect photo. So the way to solve this problem is to limit the amount of dynamic elements on the image. So one way to do that is by simply adding like a semi transparent overlay, this will tone down the light areas, giving them less contrast against the dark areas and help the texting out and of course, you can invert this treatment and use like a white overlay with dark text. Now you can do this in CSS, of course, but for a little more control, if you have access to graphical editing software like Sketch or Figma, you can bring in the image there and adjust the contrast and brightness for similar results. But you can even take this a step further and colorize the image with a single color. This is just a great way to add impact to Hero and parent with your existing brand colors. So, again, this can be achieved in code by using CSS blending modes, but that does have limited browser support. So again, I personally recommend bringing it into some graphical editing software to create that effect. So I'm gonna show you how to do that in Figma. Figma, it's free until you start using projects and so everyone should have access to this. Now, when you import the image and click on it, you'll be presented with a few options on the right sidebar. Figma has this kind of progressive disclosure where if you like, it kind of gives you the options based on the stuff you're interacting with. So the first thing you wanna do is desaturate the image. So click on the thumbnail and you'll be presented with a bunch of editing options. From there, you can reduce the saturation to zero. So it's a black and white image and then you can adjust the contrast and a few other things just to level things out of it. Then you're gonna add a filter on top of that by clicking the Plus icon next to the Fill title on the sidebar, and then from there, you can choose the color you want, so I chose this blue. And then in the color panel, go up to that little drop icon up in the top right corner and from there, you're gonna wanna change the blending mode to multiply. And what this does is it allows the image to sort of show through, and after this, you can even adjust the opacity to like of the solid color and just bring some of those more details out of it more. Now, if you're working with a darker color, like this blue I'm using here, you'll definitely have enough contrast free text. Now, Figma is free, like I said, you should have access to it, but another great tool I found, someone told me about it on Twitter. I wish I can give them credit but I was trying to dig it up, I couldn't find who told me about this, but it's this web tool called Duotone, it's by ShapeFactory, it allows you to take two colors and use them on the highlights and lowlights of an image. So in the example here, using the bright sign for the highlights and a purple for the lowlights. So you can mix it up and choose two completely different colors that sort as if you want like Spotify those album covers have that that effect to it. So check it out, play around with it, it's pretty cool. And this web app actually allows you to upload your own images or search for images from Unsplash. By the way, I thought everyone knew about Unsplash but every time I mention it I always get a few surprised faces. So it's basically just a great resource, if you're looking for high quality free Royalty free images, basically, you can just search based on the subject and you'll get a ton of great results. Oh, yeah, like I said, it's just a great way to add impact to Hero and pair the image with your existing brand colors so. And of course it gives you a nice consistent contrast in the background, so our text is much more legible. Now I chose this dark blue for the site, but I do want to just glaze over that, I thought it'd be helpful to share how I choose primary colors for a site, the answers to that is quite simple, I steal them, I spent a lot of time looking on inspiration sites, I go to landbook.com, land-book.com. Another one is siteinspired.com, these are all just web galleries, we're all familiar with them. They're usually created by designers, so there's a few just to name a few. And while browsing if I see a combination of colors or I mean book market or just sample the colors for reference later. Another great place we're all probably familiar with is Dribbble. Now, if you have a general idea of what colors you wanna use already, Dribbble has this color picker tool, so you can access it, so if you gonna look that three dotted menu thing up at the top and open that up, it has this color link at the bottom and there you can search for shots based on a specific color you have in mind. So having like a limited palette like this should make that a bit easier to make that decision. So from there, you get a ton of great results using colors handpicked by professional designer. So once I find an example I like, I usually sample the colors found in the bottom right of the Dribbble shot. Now, to be perfectly honest, I usually find something I like like the blue and yellow from the shot and then I end up using Tailwind CSS default colors. So Tailwind CSS, it's a framework created by my friend Adam Wathan. It takes utility first approach, I'm not gonna get much into Tailwind that's a whole another thing. But I'm quite involved with this project. So admittedly, I'm quite biased but I spent a ton of time choosing these colors on the framework, so the default colors, so I mostly just wanna emphasize the benefits of working with a constraint palette, right? So if Tailwind is such a thing, that's fine but approach a project with a constraint set of colors. So in this case, if I'm using the blue and the yellow from that Dribbble shot, I might just use the blue and yellow or an orange from the Palette and Tailwind so I find it much easier to work with constrained palette this instead of aimlessly picking colors from a color picker, I like to have like nine or 10 shades with single hue to work with, in by using a constrained palette, you avoid having 40 unique text colors and 50 unique background colors where many of the colors are very close to each other. So this data comes from css.stats.com. And these are the stats from Facebook. And so for example, if we take a closer look at the text colors here, you can probably consolidate all these dark grays into a single text color, right? The same could probably be said about some of the reds you see there all the reds are really close to each other, and some of the blues there too. So yeah, now we've added the blue, we'll be introducing that yellow from the shot shortly. But I just wanna get into the navbar. So first, navbars don't need to be in a bar. And by putting a navigation elements directly on the background, it helps things. I'll open up a little bit more and makes things more comfortable, gives everything more room to breathe. So and if you wanna give it a little more subtle boundary, you can add a light border like I did here. I just use a single white pixel border with reduced opacity. This wall, so kind of ... I like using borders like this, where it sort of draws, it kinda connects to the elements with the left of the elements on the right, it's sort of associated to them a bit better. So it's much cleaner than like having it contained in a bar. Now we've adjusted the background, this headline, it's looking better. But I wanna create a little more contrast between the headline and the subtitle, right now just kinda using size, which is fine. So it does create that contrast, but it's not the only way like to approach that. Another way to do that is by using a softer color. Now to make white text softer on a dark background, your first instinct might be to darken in the text by decreasing the lightness, so it's like a light gray. And this does that trick of de-emphasizing it, but it always looks a bit off on a colored background. So, tip number two, don't use gray text on colored backgrounds. You need to consider that what we're trying to achieve is reduced contrast, and that you want to make text closer to the background color, not gray. Now, you might think the best way to do this is by reducing the capacity. Well, this does reduce the contrast, it often results in the text looking a little dull and washed out. So I find a better approach to this is to handpick a color based on the background color. Now if you're using something like I do, I use the Catalan colors, so it already considers this. And you can just use one a little lighter colors, right? But if you're choosing your own colors, I typically just start by sampling the background and adjusting the saturation and lightness until it looks a bit bright. So if you're familiar with the color picker like this, this is HSB picker, that's what you get on most graphical editing tools and browser DevTools. Even though they use HSL, they give you an HSB picker, whatever. I would just drag the picker to the top left for a lighter color. And the end result might look something like this. So it's a subtle change, but it looks better. Now, you can even take this a step further by rotating the Hue, by using the perceived brightness to your advantage. So what do I mean by that? Well, every Hue has an inherent proceed brightness. So in this diagram, I have the Hue shown on the left and then on the right, I'm showing how they're actually perceived, how blackness is actually perceived. So when you're working with colors like yellow and blue, even when each Hue have the same light and small yellow still, it's brighter, right? So this is called luminance, that's a technical term. And by taking samples of different use with 100% saturation and 50% brightness, we get a good sense of how the proceed brightness of different colors work. So if you look at this chart, I plotted all the different hues to show what colors have the highest and most proceed brightness. So you can see that yellow is the brightest, like I said and blues is the darkest. One thing that's notable is that it's not like a linear pattern. So how does all this help us? Well, the cool part about all this, is that normally, when you want to change how light a color looks, you can simply adjust the lightness value, right? As shown on the top here. Well, this does work to light and dark in color, you often lose some of the colors intensity. So since different hues have a different proceed brightness, you can also change the brightness of a color by rotating the hue to the nearest bright color. So if we go back to our chart here, because the background you're using is blue, we're going to rotate the hue to the nearest bright color. So saiyan in this case. And so going back to this, you can see that it's a pretty nifty trick to create some like sexy looking gradients, but this trick also works great when we're working with white text on colored backgrounds. So if we go back to our design here, here's what our original just lighter blue. But if we rotate the hue, it's just a great way to make text a little bit more accessible but while still keeping a colorful. Okay, so it's starting to get a little more interesting here. Now, as much as this dark background helps to distinguish individual inputs, it's still tricky to just see some of those labels, because the text is pretty small. So I'm gonna contain this whole component into just a white container. Now adding a panel like this, so you're gonna wanna introduce some a bit of space, just to give some everything more room to breath. Lack of white space, it's probably one of the biggest mistakes I see developers make when designing for the web. So I wanna share a little bit of a framework I used to help solve this problem. So the common approach to introducing space is to add just a bit at a time, and if it still feels too tight, you continue adding a bit more, right? But the problem with this approach is that you're only adding like the minimum amount of space until the site no longer looks bad. So as you introduce more space, it's gonna look better than your cramp starting point. But this may cause you almost stopped too early when trying to find that right amount and sort of leaving you a bit uncertain. So I find a better approach is to start with way too much white space and then remove it until you're sort of happy with the result. Now, at first, when focused on an individual component, you might think it feels like too much white space, but in context of the rest of the UI ends up looking like just the right amount. Next, let's take a look at these inputs. So first, always remember to use input length in accordance. You wanna create an expectation of how long and entry should be. All these cases, you can probably fit the input into a field that's about half the size of the current one. So in this case that allows us to comfortably fit all the fields into online, went on a full desktop view like this. Now, major elements like the container aren't the only thing on the page that needs room to breathe it. This also applies to components like inputs, so I'm gonna increase the height of the inputs, I can be generous with space on inputs, like usually give them a total height of 40 or 48 pixels, that so that's like the size of the font plus the padding around it. Now at the moment, the inputs have just a simple border around them in the right space. This isn't that distinct when the inputs on a white background. A nice way to add a bit more distinction is to add like a subtle off white background to the input. I find there's like a fine line of just enough to create that distinction, but not too much where it looks disabled. And just to give you the inputs, a little more visual interest in scalability, we're gonna add some icons. Now we're not gonna replace the labels with icons because the icons we're using aren't that obvious, and it's generally just bad for accessibility to remove the labels. But when adding icons to support text, it might make sense to give them the same color as the text. But the problem with this is that icons, they end up looking more emphasized as you see here. You want a balanced weight and contrast. So when working with solid icons like this, they tend to look heavy because they cover a lot more of that surface area. And this creates that unbalanced contrast when placed next to text that contains a lot less that surface area. So a simple way to reduce the contrast is by giving the icons of softer colors. So this sort of works like a counterbalance making heavier elements feel lighter, even though the weight hasn't changed at all. Now, we've given these inputs a nice treatment. What about the radio buttons and the checkboxes? Like right now they're just that boring browser default look. If you're on like Safari, for example. So sure way to make an App look more polished is to work moving either browser defaults with something more custom, this is a great opportunity to add some color and take something from feeling boring and feeling more well designed. This goes the same for inputs, you can change that drop down arrow to something that's more consistent with your icons you're using on the set. So that's a small change there. In that change also reduce the size of the labels, just so they're not taking away from the value itself, they're just there to support the value. Let's also better utilize the horizontal space here by moving the search button to the far right, so it's aligned with the checkboxes on the left. So overall, reduce the overall vertical space, which is always nice. And this also lines up nicely. So it's below the last input users are likely to interact with, so they aren't jumping from left to right. Let's also increase the height of the button so it's consistent with the inputs, plus, we can add an icon to the... Just provide a little bit more clarity to so add a search icon to that. Let's introduce that yellow now, that I found on the Dribbble shot. Now, it's always difficult to achieve high contrast ratios with white text on bright colors like yellow or green. So like if you wanna get a high contrast ratio with yellow, you end up getting something closer to bronze, and that's not really any good. So the creative way to work around this is to invert the colors. So instead of using white text on a dark background, you need to use dark text on a white bright background. Now we already learned in the subtitle that we don't want to use black or white text on a colored background. So once again, we're going to saturate this with a bit of the background color. So and again, if I'm using the Tailwind colors, I would just take a darker yellow or orange. So we're sort of doing the opposite of what we did with the subtitle, because yellow is brighter color we need you to find a darker color. Now just to better associate the check boxes on the far left here, we're going to just contain them in a gray box here, it's a nice way of creating a border without actually having a border, so it's a lot cleaner. So now having the panel here like this, it does a great job of standing out, but it's not very interesting. So an easy way to get this pop out more is give it some depth, now there's a few ways of doing that. One way is to overlap elements to create that depth. In this case, instead of continuing the card entirely within the Hero section, you can offset it, so it sits between the two background sections using a negative margin. So that looks sort of cool but because the panels shares the same background color as the panel below, it's looking a bit funny, so we need to add some distinction. So since we're trying to give it some depth let's give it a heavy back shadow to convey elevation. That gives us some nice depth, but I want to explain my process for creating shadows bit more. So the first thing worth noting, is that I often use multiple shadows within the design to position elements differently on the virtual Z index. The larger the shadow you use, the closer is gonna feel to the user. So usually how it goes is I'll have a small shadow for elements that are closer to the background of the page. This is typically for buttons or inputs. Then I'll have one that's a little further off the page, usually for the elements like drop down menus or small panels. And then sometimes I'll have an additional one for large panels. For example, if I'm using, I'll be using this one on the panel we're currently discussing, because I really wanted to pop. And then finally I'll have a large one for modal. So I might go between one of the two shadows on the far right there. So here it is, again, in context. So you can see that the middle shadow on the previous page, it's quite heavy in context. But there's a bit more to that than just offsetting a block shadow without the blur. You need to consider that shadows have two parts. So what do I mean by that? Well, when you look at shadows in the real world, they are typically created by more than one light source that gets disrupted by an object. One is usually an ambient light and the other is a direct light source. The shadow created by the ambient light is usually a tighter and darker with less of a vertical offset and a small and blur radius. So that's kinder seen below the base there. And the shadow created by the direct light source is usually a larger and softer with more of a... it has more of a vertical offset than with a larger blur radius. So I like to get through to that when I want to make the shadows on the web. So furthermore, as an object gets further, it's solely covers the direct light source. So consider that by introducing a negative spread value. So if you're gonna use this to shadow technique on your own projects, make sure you make the direct light shadow more subtle for shadows that represent a higher elevation. And this just gives you a little bit more creative control when then working with a single shadow. Okay, back to the design. Now, though you offset the background below, it gave it and we give it a shadow. We're gonna do one more thing, and that is to use color to convey depth. So in general, with screen design, lighter objects feel closer to us than darker objects. So to make something feel more raised off the background, we can make it a subtle off white, just create that additional contrast. So yeah, that helps a pop out a lot more. There's three little techniques there. So now that we made the background off light, sort of push the table back, still further emphasizing my point about color and depth. So we're gonna contain that in a panel too. Now we don't want this to have the same amount of depth as the search panel, we want this to send this back of it further. So just going back to the shadows we have, we're gonna use the second shadow shown here just to bring it back a little bit. Now, styling tables, it can be tricky. It's often a lot of data to present in the condensed space. So there are a few tricks that will go through here. The first thing is, we're gonna use alignment. So for most content, it makes sense to left align the content but for content like dollar values sometimes and sometimes dates, it's always nice to write align them, just so the decimal places are in columns and makes much easier to compare the numbers magnitudes. Now, here's a cool little CSS trick since it's a CSS day. (laughing) Another cool thing you can do is apply tabular numbers. So this can be achieved by setting the font features-settings tnum as seen here. And it basically makes the text value act like a model space font without actually using amount of space font. Now the borders on this table, they're looking a bit busy. So whenever possible, use fewer borders to make a design look pretty cluttered. A nice way to do that with what table designers use Zebra striping, of course. Okay, let's also look at the headings on here. There's sort of this preconceived notion that headings need to be big and bold to stand out against the rest of the page text, but in many cases, headings like this, they're more or less acting like labels that they're, there to support the content, they shouldn't be stealing the attention away. So that means that headings like this should be a bit more subtle. So I find a great treatment for headings like this, is that small, bold uppercase text with the softer color that the small, softer treatment helps them stand back against that table content, but that bolder uppercase treatment helps them maintain that heading status. So I like to use that quite a bit. So that's looking cleaner but striking more ideas here. Think outside of the database. Now if columns don't need to be sortable, try consolidate secondary information just for like a bit of a cleaner, look it opens things up a little bit. Consider de-emphasizing that with smaller and lighter text so to highlight but like that primary information and if the data calls for try enhancing it using images and also these book now buttons on the right there, it's looking pretty heavy on the right because it darkening a single column. So it really draws you away from the other important elements on it. So we wanna give them more of a secondary treatment. So a popular approach to this is styling buttons by simply aligning them. This does give them that secondary appearance but I find a great alternative to this is to give the buttons soft, solid background based on the text color. So it's just isn't quite as heavy, it's a lot cleaner. Let's also make this text link the same color as the top, like the text link up on the top. We'll make it the same colors of brand colors everywhere else. So there, and just to give it more of a link style, we often use an underlying to solid as links, but I find like something to give it a little bit more style to use like a generic icon, like a chevron to the right of it makes it look more clickable. Okay, so I think that's in a pretty good spot now. Let's review these vacation package deals at the bottom. So there I'm using cards to display them. Often working with images like this, you may run into the issue of having different aspect ratios. This can really throw off the layout. If you're using multiple images, it might be working like you're doing like a Pinterest layout, you can do something like that. But when it's displayed side-by-side here you can really throw things off. So instead of just using the image at the current aspect ratio, we're gonna center the image inside of fixed container and then cropping on anything that doesn't fit. We all know the beauty of this is you don't have to edit the image in a tool before bringing it into the web, you can just make the image your background image and then setting the CSS background size property to cover. This cleans up the entire layout. Now we don't necessarily need these buttons at the bottom here, those those primary buttons. Sites like Airbnb, and YouTube, they're both great examples of how car-based layouts can get away without including buttons and they still managed to look clickable. Now the details of these cards, it's looking pretty busy. So let's see what we can do to clean it up a bit. The first thing I wanna address is the labels on the price in the website. In many cases, you don't need a label at all. So for example, 1295 is a price 'cause it has a dollar valuing and vacationspots.com is a website 'cause it has the dotcom, so you don't need a label to identify that. Now, when you're able to present data without labels, you get much more creative control and you can really emphasize important information. So in this case, the price is probably way more important to the user than the website it's getting the deal from. Let's also reduce the noise creative with these borders by just using that same technique I showed you earlier by using that subtle off white background to distinguish the sections. And again, try to get creative with the data hierarchy by using a combination of font size, weight color, and again, using that uppercase treatment, it's always a bit cleaner. Furthermore, we can also use color to enrich some of the data to make it a little bit easier to interpret. So for an example we have these offerings, so on the first card there has like only five left, and so we can put this into like a pill and using these colored badges, just to take them in on a quick glance. Much like our button at the top, we're gonna give these badges. So I have another one on the right here and green one. We gonna give that soft background color with dark text, just to make them a bit more subtle and more accessible because like if you put like white text on red sometimes it's tricky to work, it's tricky to get like those high contrast ratio so I find it better to make the background a bit lighter and using a darker text color. Let's also look at this newsletter section. We're getting close to the bottom here. So right now it's just sitting directly on the background, there's nothing distinguishing it, so it's not very compelling. So one way to add excitement to the background is to simply by changing the color. This is just a great way to distinguish, add distinction between entire page sections like this. This actually is a great technique to use on like marketing pages, you go to like marketing websites and it splits up the Hero two different feature sections. So I see that being used quite a bit. So here I applied the brand blue to the footer or to the newsletter section and then to the footer I use like a darker treatment. You can even go as far as like adding a background pattern. So, as mentioned earlier, I made this site a while ago called Hero patterns. It's basically a collection of SVG background patterns. It's great for backgrounds on like marketing pages or sections, like a word we're working with, that typography, one's pretty popular. I haven't updated this in a long time, I think there's about 100 patterns on there now. Maybe I'll update again soon (laughing). Now, next, let's make a few changes. So these elements are consistent with the changes we've talked about already. So I'm not gonna go through them all again. But basically, I made the newsletter description text, I made it that same... again, that same color treatment as the subtitle the top, I also reintroduce that yellow button as it has that great contrast on the blue background and then finally, I increase the size of the inputs to be the same as everywhere else. Now this section, it's a little heavy, it's taken up a lot more vertical space than it needs to. So if you working with design like this, that takes up a lot of vertical space, you can better utilize your horizontal space by trying to splitting up into columns. Sort of it works great, especially in a case like this where you have that solid background, that solid color background and still manages to associate the elements quite nicely. So yeah. Let's move on to the footer now. Now I love big footers like this, it's sort of acts like a catch all, if you have a lot of nav items, but you need to include but they're not important enough to occupy that real estate at the top, in the top nav but with that, it's still nice to have some structure when you have a large sitemap like this. So to handle this, I like adding those subtle labels to each section using that small bolts like uppercase treatment for headings. So I've used that quite a bit already, and finally, the last thing that stands out is legal jargon and social media links at the bottom there. Right now there is sort of floating there. Now, I know I mentioned like I keep preaching it, like use for your borders. But I talked about this earlier that on the top bar at how using borders, it sort of helps associate elements a bit better. So yeah, that pretty much wraps everything up. I have a few more finishing touches, though. Just to bring this to the next level. First thing is grays don't have to be gray. Pure grays can make a UI look pretty dull and unnatural. So what I like to do saturate the grays with a bit of blue or brown for a cooler or warmer look. So the thinking here is that you're sort of adjusting the overall temperature of the site. This is similar to what you we experience in the real world by a combination of things, right? Maybe like a light source, like if you're using a warm light or like a white light. You may even get this effect by look like reflective surface, so it just makes everything feel more natural when you saturate the grays a bit. So if you wanna make your design more cool, saturate your grays with a bit of blue. I'm not sure if you can see it on this projector but the bottom one has a bit of a cooler look. So I just adjusted the saturation in here a little bit. And you want to make them a bit warmer, try saturated with a bit of yellow or brown. I mostly saturate my grays with a bit of blue because I'm working, especially in this case I'm working with... Like my primary color is blue, I might use warmer colors from working with warmer colors like red or sometimes purple. Sometimes it can work with blue, like I know Base Camp they consciously made their site, their primary colors blue but they use kind of some warmer colors to their background. So experiment and play with both. Now when doing this if you're working with like HSL which I recommend, don't forget to increase the saturation for the lighter and darker shades to maintain a consistent temperature. So if you don't, those shades will look a bit washed out compared to the grays that are closer to 50% lightness, and how much you wanna saturate your grays is completely up to you. So just a little if you want to tip the temperature slightly or crank it up if you wanna increase it to lean strongly one direction or the other. And just because it's hard to see on that chart, here's what it looks like on their side-by-side. So this is what it looks like when it's not quite as saturated, there's a bit more saturated, you can kind of see the change there. There they are if it's hard to tell, there they are stacked. So you can mostly see it on the latter grays there, so they're a bit more saturated at the bottom. Okay, so, I usually go for the more saturated look. So here's the difference that makes. So I'm just kind of liven things up a little bit. And finally, I just wanna share a few insights on choosing the fonts. This is one of the biggest mistakes I see developers make, and it does have one of the highest impact. So at the moment this designer here is using the system default stock. So in this case, San Francisco, CA Mac. This is a great font, but like actually quite like San Francisco, I especially like using the system font stack on a nap experience, and then if I'm working on a marketing page then I might use a custom font. But I think it's worth exploring a few different options 'cause this is a design talk, I think it's worth talking about fonts. So I thought I'd share how to discover new formats. So there's a lot of ways to do this for entrepreneurs everywhere. You can simply just search for popular fonts on Google Fonts or like Typekit or Adobe Fonts which it is now. They're all great services, but it's not very fun. I wanna get into a little bit more detail. I get much more interesting results by digging a bit further so this involves a combination of getting inspiration from existing sites, sort of the same way I find color combinations, I'll find a site I like and then look at the Browser DevTools and see what fonts are being used. Sometimes I go right to the Font Foundry website, so these are the companies that design the fonts and I see what fonts are they have available, I like going to have their fonts a lot. Commercial type is one of my favorites and the Current Typefoundry just to name a few. But I wanna share how I use a combination of these methods to choosing fonts, Highlander with the font that I'm gonna be using for this design. So just like choosing color, I go to all the same spots for inspiration. So I'll go to Land-Book, or I'll go to siteInspire and see what fonts are being used there. In this particular case, one time I was casually browsing the web looking for inspiration, I found myself looking at the official bootstrap themes, just kinda looking, see what they had there. I came across this one that had... was quite nice and excusable from being used, so from naturally open the DevTools to see what fonts was being used, but I didn't want to stop there, I wanted to learn more about this font, so I Googled it, and just to learn more information about it, and from there, I learned it was designed by a Foundry called Hanken Design, where they've designed a ton of custom high quality fonts. So I picked up the bundle they had for sale, and then from that bundle, I noticed a phone call, I found the phone called barter exchange that I thought would be perfect for this project. So let's take a look at that change. So here's what San Francisco and here's with barter exchange and it's not a crazy change, but it's something a little more unique. And I've been doing a combination of these methods for Foundry Fonts for a long time, and I built up a decent collection so that I've been going back to regular, so it's just a great approach to finding new fonts. So that pretty much wraps everything up. Let's just compare this to what we started with. So here's our starting point, and here's where we landed. So, yeah, I think it just goes to show that it can be overwhelming to go from your starting point to the end point, but really, it's just a bunch of small little changes and at by the end, you'll end up with a more polished looking website. I'm gonna plug my book right now, if you enjoyed the talk and found it useful, I recently watch this book with my friend Adam Wathan and it's called "Refactoring UI". So it's loaded with a ton of practical tips like the ones I've shared today and it's 40% off right now. (laughing) I'm also quite active on Twitter, so you can find me @steveschoger, where I share a ton of tips like the ones I shared today. So thank you. (audience clapping) Bare feet very nice. - Always. Always. Anyone who's walked me previous talks knows that that's how I do. - Yeah. - First off, I love those sort of breakdowns and sort of comprehensive thing, that's always a beautiful thing to see. So we got a few interesting questions here. - Yes. - First off, you mentioned a little bit of color accessibility. But a lot of your changes seem to be like on a wild cutting and about, how much do you pay attention to color contrast, like in terms of WK Accessibility? - Yeah, I follow that quite closely. Like I have this menu bar tool called contrast, it was by Matt Smith and Sam Soffes. Their names are epic. I'm saying their name or his name, right. And I always kind of check that to make sure it's accessible. You're probably not like seeing the same thing that I'm seeing on my Retina Display monitors for this projector that's it but I'm always quite active on that. - Yeah, and now that's why WK Accessibility exists because these are still readable on this sort of scheme. And with a very depressed color depth. - Yeah, so I'm always using that, and the contrast app I use, I think it's just contrastapp.com and it's just a little menu bar tool, and I can just sample the colors and reference in there. - Very cool. Can I get to that. So interesting question here. So you did a lot of color theme and this was largely a blue like underlying theme - Yes. - For a lot of this. But some things come with their own color scheme, kinda naturally warnings and alerts and whatnot of in green, yellow or red or something. - Yes. - What do you do with the site's branding guidelines were already in those colors, and then they want to do - yeah, that's tricky. - Something like this. - Like if if the site's red but then you have like a red alert. - Yeah. - I still stick with red alerts. I've been asked this a lot and I don't know how to answer that question. But I usually just work with like, red is high severity, I think many people know that. Usually if the primary color is red, most sites are white and grays, right? White for backgrounds and gray for tax and then you use the primary color for black actions and so I might tone down and just use a cadence of the red and then that helps if you're using alerts and stuff you can emphasize that a bit more, right? - Mm-hmm, okay. So I notice that your placeholders for your input fields, it's gonna be styled the same as the value while you're typing. What's your opinion on styling or on placeholders for inputs? - Sorry. - I'm talking 'bout the feeling of the placeholder, they look the same, like color contrast whatnot. - Oh, yeah, I actually, like for my example, I had them look just pre-filled as if that was definitely the placeholder. - Oh, okay. - Yeah. I should have maybe mentioned that. - Okay. - But yeah, I'd make it a little bit lighter, like just enough where it's accessible on and make the value that you're typing in your normal text color, dark as gray. - Okay, final question before we head off to lunch, how important you think it is for designers to stay up with CSS progress in terms of new things available and not versus just learning some basics and then continuing to focus mostly on design sensibilities? What do you think the good balance is? - I think it's important to understand, what you're capable of, what CCS is capable of. I think that helped me early in my career is learning a little bit of code. It helped differentiate me from like other designers and I was able to, it's more like making it easier to communicate with developers, so like speaking their language a little bit. - Mm-hmm. - But if you work closely with developers, you can count on them to kind of teach you that stuff but I think it's important to learn the basics, right? Like how it actually works, yeah. - All right, well, thank you so much Steve. - Yeah, thank you. (audience clapping) (driving rock music)
Info
Channel: Web Conferences Amsterdam
Views: 53,083
Rating: 4.9847546 out of 5
Keywords: css, design, ui, interfaces, refactoring, polish, usability, accessibility, developers
Id: 7Z9rrryIOC4
Channel Id: undefined
Length: 44min 13sec (2653 seconds)
Published: Mon Jun 17 2019
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.