<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kevin Powell</title>
    <description>The latest articles on DEV Community by Kevin Powell (@kevinpowell).</description>
    <link>https://dev.to/kevinpowell</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F144699%2Fe8deb008-29e7-4df1-a4c4-747dcc090c3a.png</url>
      <title>DEV Community: Kevin Powell</title>
      <link>https://dev.to/kevinpowell</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kevinpowell"/>
    <language>en</language>
    <item>
      <title>Dealing with the "webiness" of the web</title>
      <dc:creator>Kevin Powell</dc:creator>
      <pubDate>Tue, 27 Oct 2020 15:58:06 +0000</pubDate>
      <link>https://dev.to/kevinpowell/dealing-with-the-webiness-of-the-web-56ak</link>
      <guid>https://dev.to/kevinpowell/dealing-with-the-webiness-of-the-web-56ak</guid>
      <description>&lt;p&gt;&lt;strong&gt;CSS is hard&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;It's not broken, counter-intuitive, or stupid. It's just hard.&lt;/p&gt;

&lt;p&gt;People falsy assume that it's simple because it has a simple syntax, and then they hate on it because they can't get it to work properly.&lt;/p&gt;

&lt;p&gt;One of the reasons CSS is hard because &lt;strong&gt;we don’t have total control over the output&lt;/strong&gt;. We have to tell the browser our intended output, and then depending on a ton of variables, it gives the user the best it can.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When we're writing CSS, we don't know a lot of things&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The browser that each visitor is using&lt;/li&gt;
&lt;li&gt;The viewports size&lt;/li&gt;
&lt;li&gt;The OS that they are on&lt;/li&gt;
&lt;li&gt;The device that they are on&lt;/li&gt;
&lt;li&gt;The main input device that they are using&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As Robin Rendle put it in a response to me awhile back, it’s one reason a lot of people coming from a computer science background don’t like CSS. They have to face the “webniness”, or the changing nature and the unknown variables of the web, when writing CSS. &lt;/p&gt;

&lt;p&gt;How can we possibly deal with all those unknowns and variables? &lt;/p&gt;

&lt;h2&gt;
  
  
  Anticipating the variables
&lt;/h2&gt;

&lt;p&gt;I know people are going to use small screens, large screens, and everything in between, so I’m going to test my site in both those situations, as well as the ones in between. &lt;/p&gt;

&lt;p&gt;But it's more than just testing it after the fact, it's anticipating those variables from the beginning and taking them into account.&lt;/p&gt;

&lt;p&gt;For viewport size, the easiest way to do that is to avoid absolutes as much as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Avoiding absolutes
&lt;/h3&gt;

&lt;p&gt;If I set &lt;code&gt;width: 1000px&lt;/code&gt; on a container, it’s locked in. If the screen is smaller than that, it’s going to overflow and cause horizontal scrolling.&lt;/p&gt;

&lt;p&gt;Instead, I might set the width using a percentage. Something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;90%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now I know that my container will grow and shrink with the device width. Awesome.&lt;/p&gt;

&lt;p&gt;But then when testing I realize that at large screens, my container is too big! Now I can come in with a max-width and solve that issue.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;90%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;max-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1000px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This can all be hard at first, especially when we don’t know all the tools that are available to us, but that’s just like how JavaScript can be hard when we don’t know how to write a loop, for example.&lt;/p&gt;

&lt;p&gt;CSS is the same, &lt;strong&gt;it becomes hard to solve specific problems when we don’t know all the tools we have at our disposal&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding how it works from the ground up
&lt;/h2&gt;

&lt;p&gt;With CSS people find out about all the cool tools that it has to offer, but &lt;strong&gt;they don't have the core skills to be able to use those tools properly&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;When this is the case, we can get things to work, but often with messy and fragile solutions.&lt;/p&gt;

&lt;p&gt;Take, for instance, an electrician. &lt;/p&gt;

&lt;p&gt;Just like an electrician, I can change a light fixture or some other simple operation. But I'm not about to wire a house.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7vg2qdgngyu7hoeq6b2v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F7vg2qdgngyu7hoeq6b2v.jpg" alt="Wall of a house during a renovation with 4 circular holes with wires sticking out of some of them"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If I did try to wire a house, I bet I could watch some YouTube videos and get things to be connected, but when I go and turn on the power some fuses would probably blow and the house might even burn down.&lt;/p&gt;

&lt;p&gt;This is what happens when people try to build a full design when they don't have the fundamental skills in CSS (though it's a lot safer when they screw up).&lt;/p&gt;

&lt;p&gt;They have all the tools and they might know how to use them in isolation, but &lt;strong&gt;they don't have the core fundamental skills to be able to use them properly&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Just like my wiring would be a complete mess, when you don't have a good understanding of the different tools and fundamentals, your CSS becomes a complete mess. &lt;/p&gt;

&lt;p&gt;The layout might work, but it's fragile, and can easily fall apart when some of the variables that we talked about above change.&lt;/p&gt;

&lt;h3&gt;
  
  
  Relying on pre-made solutions
&lt;/h3&gt;

&lt;p&gt;For a lot of people, that leads them to frameworks like Bootstrap.&lt;/p&gt;

&lt;p&gt;The problem then is when you need to make a change or modification that isn't in the tools that framework gives you, it can be a complete nightmare. &lt;/p&gt;

&lt;p&gt;As much as things like Bootstrap and Tailwind can help, having a proper understanding of CSS makes it so, rather than relying on those tools, you can leverage them in new ways or avoid using them altogether.&lt;/p&gt;

&lt;h2&gt;
  
  
  You can start writing CSS with confidence
&lt;/h2&gt;

&lt;p&gt;When people don't have a great understanding of CSS, they like Bootstrap and Tailwind because it can save them a ton of time and frustration.&lt;/p&gt;

&lt;p&gt;And yes, it can be frustrating but &lt;strong&gt;when you know how it really works&lt;/strong&gt;, and how it's meant to work, a lot of that goes away.&lt;/p&gt;

&lt;p&gt;It means that &lt;strong&gt;you run into fewer problems, and when you do run into them, you can figure out the solutions much faster&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;You aren't guessing so much, or when you do guess, it's an educated guess where you can go in with a pretty good idea that it'll work... and when it doesn't work you probably know why!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And that’s why I’ve created the course &lt;a href="https://cssdemystified.com/" rel="noopener noreferrer"&gt;CSS Demystified&lt;/a&gt;&lt;/strong&gt;. It’s not to teach you all the tools at your disposal (there are way too many to cover everything), but it’s to teach you the fundamentals of how CSS works so you can better predict issues before they happen, figure out how to fix them quicker, and how to problem-solve when you run into issues that you are having trouble figuring out.&lt;/p&gt;

&lt;p&gt;It's for people who have been writing CSS for a little while but feel like they've hit a bit of a wall now that things have gotten a bit more complicated. &lt;/p&gt;

&lt;p&gt;If you'd like to register, the registration period opened today, and will be opened until November 2nd. If you're reading this after the 2nd and are interested, you can sign up for updates, it will be relaunched again in mid-2021.&lt;/p&gt;

</description>
      <category>css</category>
      <category>webiness</category>
    </item>
    <item>
      <title>Stop making responsive websites the hard way!</title>
      <dc:creator>Kevin Powell</dc:creator>
      <pubDate>Sat, 04 Apr 2020 15:02:59 +0000</pubDate>
      <link>https://dev.to/kevinpowell/stop-making-responsive-websites-the-hard-way-kgb</link>
      <guid>https://dev.to/kevinpowell/stop-making-responsive-websites-the-hard-way-kgb</guid>
      <description>&lt;p&gt;CSS gets a bad wrap for a number of reasons. Based on polls and surveys that I've done, &lt;strong&gt;one of the things people are most frustrated with is making websites responsive&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Some of the most common issues I hear are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Media queries are a nightmare&lt;/li&gt;
&lt;li&gt;It's difficult to find what's causing the problems&lt;/li&gt;
&lt;li&gt;Too many breakpoints to  worry about&lt;/li&gt;
&lt;li&gt;There are too many moving parts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I recently put up a &lt;a href="https://youtu.be/0ohtVzCSHqs"&gt;YouTube video&lt;/a&gt; looking at why I think many people could simplify their life by changing their approach to mobile-first, because much to my surprise, it seems like &lt;a href="https://twitter.com/KevinJPowell/status/1244427032957784066"&gt;most people still do things desktop-first&lt;/a&gt;. &lt;strong&gt;A switch to a mobile-first approach would solve many of the above issues&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's the designer's fault
&lt;/h2&gt;

&lt;p&gt;In the comments section, I asked people if they prefer desktop first to tell me why they do.&lt;/p&gt;

&lt;p&gt;The most common justification I got was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Our designer only supplies us with desktop mockups&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I understand why they start with writing their CSS to match the mocks in that situation, but I honestly don't think it's a good enough excuse. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;the one good reason I did get was that they were creating web apps and admin dashboards that were only intended to be used on desktop computers, which, well, fair enough!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The reason that people starting with the desktop layout bugs me so much is that I honestly think people would have &lt;strong&gt;a much easier time with responsive websites if they would start mobile-first, even if they only had a desktop comp to start from&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As I talked about in my above video, we are the reasons a website is not responsive. Turn off all the CSS, and you have a responsive layout. We cause issues when we write our CSS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why mobile-first is a simpler approach
&lt;/h2&gt;

&lt;p&gt;When I write my CSS, &lt;strong&gt;I don't worry about the layout at all to start&lt;/strong&gt;. I always start with my typography. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;font-family&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;font-sizes&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;margin&lt;/code&gt;s on my text&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With that done, you probably have a decent looking mobile website already.&lt;/p&gt;

&lt;p&gt;Next up, you can have a large majority of your mobile site done simply by adding two more properties:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;padding&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;background-image&lt;/code&gt;s / &lt;code&gt;background-color&lt;/code&gt;s&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you've knocked that out, most of the time the mobile version of the website is pretty far along. Some components might need some detailing and some tweaking, but the majority of the work is done.&lt;/p&gt;

&lt;h2&gt;
  
  
  There are parts/sections/components that are more complicated on mobile
&lt;/h2&gt;

&lt;p&gt;Yes, it is true that some things, such as navigation, can seem more complex. We often hide them away and have to add some JavaScript to get them to appear. &lt;/p&gt;

&lt;p&gt;But &lt;strong&gt;from a layout perspective, are they more complex?&lt;/strong&gt; Most navigation on mobile are just a &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt; with the bullets turned off and some extra spacing. &lt;/p&gt;

&lt;p&gt;There is added complexity in how the user might interact with it, but from a layout perspective, it's very simple. &lt;/p&gt;

&lt;h2&gt;
  
  
  Changing your mindset
&lt;/h2&gt;

&lt;p&gt;One of the hardest things to do is break out of what you are used to doing. &lt;/p&gt;

&lt;p&gt;I really think a lot of people stick with desktop-first because &lt;strong&gt;we learn to create desktop sites first as static sites&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Because of that, it's just the natural starting place any time we start creating a website. But I really believe it leads to many of the issues people have with making sites responsive in the first place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;We have to override so many of the styles we already applied when we start desktop-first&lt;/strong&gt;, rather than letting the site be naturally responsive. By changing our mindset and &lt;strong&gt;by starting mobile-first&lt;/strong&gt; and adding complexity, we can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;simplify the process&lt;/li&gt;
&lt;li&gt;write less code&lt;/li&gt;
&lt;li&gt;run into less issues&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Overcoming the challenges of responsive layouts
&lt;/h2&gt;

&lt;p&gt;I want to show people how, if they simplify their approach, responsive layouts aren't that difficult. &lt;/p&gt;

&lt;p&gt;To help do that, &lt;strong&gt;I'm launching a free course&lt;/strong&gt; called &lt;a href="https://courses.kevinpowell.co/conquering-responsive-layouts"&gt;Conquering Responsive Layouts&lt;/a&gt;. It's not a deep dive into anything except for responsive layouts. I've set it up as a 21-day challenge.&lt;/p&gt;

&lt;p&gt;If you'd like to join up, the challenge is starting on April 13th. After that, the doors will be closed for a few months. So if you struggle with responsive layouts, &lt;a href="https://courses.kevinpowell.co/conquering-responsive-layouts"&gt;take the challenge and learn to conquer them&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you missed out on this round, I'll be opening the course again every few months, and it'll always be free. You can still head over to the page and sign up, and I'll notify you when it's going to relaunch&lt;/em&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>responsivewebdesign</category>
    </item>
    <item>
      <title>CSS Tip of the Day</title>
      <dc:creator>Kevin Powell</dc:creator>
      <pubDate>Mon, 06 Jan 2020 03:24:26 +0000</pubDate>
      <link>https://dev.to/kevinpowell/css-tip-of-the-day-1b97</link>
      <guid>https://dev.to/kevinpowell/css-tip-of-the-day-1b97</guid>
      <description>&lt;p&gt;I'm a self-described CSS evangelist. I know a lot of people don't like it very much for a whole range of reasons, but I really do think it's a wonderful language.&lt;/p&gt;

&lt;p&gt;While I realize this won't convert everyone, I thought it'd be fun to highlight some fun things we can do with CSS, as well as show some of the newer things that CSS has on offer that make our lives a lot easier, so I've decided to start the &lt;strong&gt;#CSSTipOfTheDay&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Originally I wasn't sure if I'd just do this for only January, but we're only 5 days in and the reception has been so good I feel like I need to try and see if I can't pull this off for all of 2020. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lZcpOdxJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/dxvemd92p3flhit1whku.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lZcpOdxJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/dxvemd92p3flhit1whku.jpg" alt="Tip of the day #5: blending modes"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are easily enough awesome things we can do with CSS that I should be able to pull it off for the entire year!&lt;/p&gt;

&lt;p&gt;I'll occasionally be posting roundup some of the more popular ones here, as well as over on &lt;a href="https://www.kevinpowell.co"&gt;my website&lt;/a&gt;, and I might do a video roundup of them on &lt;a href="https://youtube.com/kevinpowell"&gt;YouTube&lt;/a&gt; from time to time as well.&lt;/p&gt;

&lt;p&gt;If you don't want to miss out on any of them though, I'd encourage you to give me a follow over on &lt;a href="https://twitter.com/KevinJPowell"&gt;Twitter&lt;/a&gt; or &lt;a href="https://instagram.com/kevinpowell.co"&gt;Instagram&lt;/a&gt;, where I'm posting the tips daily. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hoRLLT4t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/a1d2hmwgmkk2h5inqm04.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hoRLLT4t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/a1d2hmwgmkk2h5inqm04.jpg" alt="Tip of the day #5: scroll-behavior: smooth"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you know of any awesome CSS tips that you think I should share, please leave a comment below. I have a file with a tonne of them already planned, but if I'm going to hit 365, I'd be a fool not to accept community suggestions as well 😂&lt;/p&gt;

&lt;p&gt;I realize that little tips like this won't really help people grasp CSS if they've been struggling with it, but hopefully, it can help people see what it's capable of and maybe inspire them to dig a little deeper!&lt;/p&gt;

</description>
      <category>css</category>
    </item>
    <item>
      <title>You'd be better at CSS if you knew how it worked</title>
      <dc:creator>Kevin Powell</dc:creator>
      <pubDate>Mon, 16 Sep 2019 17:49:07 +0000</pubDate>
      <link>https://dev.to/kevinpowell/you-d-be-better-at-css-if-you-knew-how-it-worked-38jn</link>
      <guid>https://dev.to/kevinpowell/you-d-be-better-at-css-if-you-knew-how-it-worked-38jn</guid>
      <description>&lt;p&gt;*This post was originally published on &lt;a href="https://www.kevinpowell.co/article/get-better-at-css/"&gt;my blog&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;CSS looks so simple. It gives off that impression because &lt;strong&gt;the syntax is so basic and easy to understand&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Show the following snippet to someone who has never seen CSS and I bet they can get at least a rough idea of what is going on.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.textbox&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;pink&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One of the problems with the syntax being so basic is that it gives off the impression that it is a simple language. It's simple in how it's written but &lt;strong&gt;it can be downright complex in how it actually works&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;People are tricked into thinking it's simple and then when it doesn't work they expect it to, they say it's broken.&lt;/p&gt;

&lt;p&gt;Even people who are wizards at "real" programming languages get frustrated with it. They're tricked by it just as much as a someone who hasn't written a line of code in their life.&lt;/p&gt;

&lt;p&gt;As much as they'd like us to think it, CSS isn't broken. &lt;strong&gt;They don't know how CSS works&lt;/strong&gt; and they don't take the time to figure it out because "it's so basic".&lt;/p&gt;

&lt;h2&gt;
  
  
  A common hack people don't understand
&lt;/h2&gt;

&lt;p&gt;For example, a lot of people will use &lt;code&gt;overflow: auto&lt;/code&gt; on a parent element to stop weird things happening when some of the children are using float.&lt;/p&gt;

&lt;p&gt;They know that it works, but they don't know &lt;em&gt;why&lt;/em&gt; it works.&lt;/p&gt;

&lt;p&gt;Do you know why it works?&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/kevinpowell/embed/gEZmXy?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Or what about when you set margin-top or padding-top as a percentage like so?&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/kevinpowell/embed/pYqPKV?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Maybe you knew that the padding-top is based on the width and not the height. Did you know that it isn't based on the width of that element though?&lt;/p&gt;

&lt;p&gt;Go take another look at that pen above. The blue box there has width: 300px. Resize the window. The padding-top grows and shrinks almost as if it was set with vw.&lt;/p&gt;

&lt;h2&gt;
  
  
  It's not counterintuitive, you don't know how it works
&lt;/h2&gt;

&lt;p&gt;You might think I'm being a jackass here, but I'm not trying to be mean.&lt;/p&gt;

&lt;p&gt;I teach CSS in the classroom as well as to 10s of thousands of people over on &lt;a href="https://youtube.com/kevinpowell"&gt;my YouTube channel&lt;/a&gt;. When I do deep dives into certain topics, people always reply with an "ohhh, that's how it works."&lt;/p&gt;

&lt;p&gt;Sometimes it's something &lt;a href="https://www.youtube.com/watch?v=zGiirUiWslI"&gt;they've been using for years&lt;/a&gt;. It worked for all these years, but they didn't know &lt;em&gt;why&lt;/em&gt; it worked.&lt;/p&gt;

&lt;p&gt;Many beginners start to figure out how it works, then they try to make their first site on their own without any help from a tutorial and they panic. It's no longer as easy as it looked!&lt;/p&gt;

&lt;p&gt;With more practice and by learning to &lt;a href="https://www.kevinpowell.co/article/creating-a-website-getting-over-the-anxiety-of-starting-with-a-blank-file/"&gt;plan things out more&lt;/a&gt;, they get better. But then they fall into the trap of thinking they know more than they do.&lt;/p&gt;

&lt;p&gt;It's the same for people who come from computer science backgrounds. The language gives off the impression of being very basic, so it must be!&lt;/p&gt;

&lt;p&gt;In both situations, they don't dive in and actually learn how it's meant to work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That also means they can't take advantage of how it works&lt;/strong&gt;! I'm sure you've seen a few ridiculously awesome CSS hacks. People don't just pull them out of thin air, they figure them out because they understand the specification.&lt;/p&gt;

&lt;p&gt;In this article, we'll look at an example that, from my experience, a lot of people don't really understand. More importantly, I'll also explore how you can learn how things are working in the future.&lt;/p&gt;

&lt;p&gt;I'll give you a fish to start, but then I'll teach you how to fish, so to speak.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do you really know how pseudo-elements work?
&lt;/h2&gt;

&lt;p&gt;Take a look at this code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.blockquote&lt;/span&gt;&lt;span class="nd"&gt;::before&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;""&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;-2em&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#42d7f4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Where would that &lt;code&gt;::before&lt;/code&gt; pseudo-element live?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tr3sIwQx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6qy6zwgujh17g710tri8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tr3sIwQx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/6qy6zwgujh17g710tri8.jpg" alt="A code snippet with option A pointing to before the actual element, and B pointing to just inside the element, before it's content" width="608" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do you know how many people pick A? I always assumed it was A. People in the comments of my videos often tell me they thought it was A. Intuitively, A makes sense because... well, we are going &lt;em&gt;before&lt;/em&gt; &lt;code&gt;.blockquote&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That's not right though. We are going &lt;em&gt;before&lt;/em&gt; the content that is inside of &lt;code&gt;.blockquote&lt;/code&gt;. The same applies to &lt;code&gt;::after&lt;/code&gt;. It goes &lt;em&gt;after&lt;/em&gt; all the content of its parent, but it lives inside its parent.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V3axo2wI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/g5vdyyuwsgsqug2d0qfe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V3axo2wI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/g5vdyyuwsgsqug2d0qfe.png" alt="The DOM, showing a pseudo-element inside its parent" width="509" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a good thing of course. If not it would be a nightmare to use.&lt;/p&gt;

&lt;p&gt;Knowing that it lives &lt;em&gt;inside&lt;/em&gt; its parent means that if we declare a position other than static on the parent, we can use &lt;code&gt;position: absolute&lt;/code&gt; and get our pseudo-element right where we want it.&lt;/p&gt;

&lt;p&gt;People work with pseudo-elements all the time and use them just like I described above, yet they think that A is still the answer.&lt;/p&gt;

&lt;p&gt;If you picked A, I'd also suggest &lt;strong&gt;you don't use your DevTools enough&lt;/strong&gt;. Get in there and look at why and how things are happening (and I was guilty here for the longest time as well)!&lt;/p&gt;

&lt;h2&gt;
  
  
  How to get a better understanding of CSS
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uamwC_kV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/8omx16s06sd7z99hathb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uamwC_kV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/8omx16s06sd7z99hathb.jpg" alt="Woman biting pencil in frustration of her code not working" width="880" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since I started teaching CSS, I've had to dive in and learn things better. It's transformed how I think about and how I approach CSS.&lt;/p&gt;

&lt;p&gt;If you can find the time to teach, that's awesome, but I realize that isn't an option (or desire) for a lot of people. That's okay, there are other ways to figure things out.&lt;/p&gt;

&lt;p&gt;My single biggest piece of advice would be to &lt;strong&gt;stop using StackOverflow so much&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Don't get me wrong, StackOverflow is awesome. It's full of &lt;em&gt;amazing&lt;/em&gt; information. It's so nice to be able to quickly get answers. I wish I had something like StackOverflow when I first started making websites in the late 90s (and yes, I'm old).&lt;/p&gt;

&lt;p&gt;The problem with it is when you copy and paste a solution from there, you didn't learn a damn thing. And let's be honest, that's what you do most of the time.&lt;/p&gt;

&lt;p&gt;The resource I rely on the most when trying to understand something better is the &lt;a href="https://developer.mozilla.org"&gt;MDN Web Docs&lt;/a&gt; or the actual specification. I find the MDN easier, so I start there and if I have to I'll go into the actual spec.&lt;/p&gt;

&lt;p&gt;I literally google whatever I'm looking for and just stick MDN on the end to make sure it's the first result.&lt;/p&gt;

&lt;p&gt;If we did that for &lt;code&gt;::before&lt;/code&gt; you'd see this as the &lt;em&gt;very first sentence:&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In CSS, ::before creates a pseudo-element that is the first child of the selected element.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's not always so clear, and sometimes you need to dive into their examples or read a bit more in-depth for &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context"&gt;more complicated matters&lt;/a&gt;, but they do an amazing job of putting the information out there in a well organized and concise way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting it into practice
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nQ0c8gZc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/jyjdyrlnykkg1pkywd2s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nQ0c8gZc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/jyjdyrlnykkg1pkywd2s.jpg" alt="A man sitting in front of his computer screen with CSS open in the text editor" width="880" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's use that &lt;code&gt;padding-top&lt;/code&gt; example from above as a bit of a case study.&lt;/p&gt;

&lt;p&gt;Let's say that you put the &lt;code&gt;padding-top&lt;/code&gt; like I did above and it didn't really behave like you'd expect that it would. You get a bit annoyed.&lt;/p&gt;

&lt;p&gt;Next step? Google "padding-top mdn".&lt;/p&gt;

&lt;p&gt;Turns out they have &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top"&gt;an actual page dedicated to &lt;/a&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top#Values"&gt;padding-top&lt;/a&gt; and not just some generic "padding" page. That's cool.&lt;/p&gt;

&lt;p&gt;After you click through and scroll down a little, you find &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/padding-top#Values"&gt;a section devoted to possible values&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And in there it mentions fixed lengths and, well look at that, &lt;em&gt;percentages&lt;/em&gt;. That's convenient. You read the following:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The size of the padding as a percentage, relative to the width of the containing block. Must be nonnegative.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There is your answer. &lt;strong&gt;It's relative to the width of the containing block&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now that we know how it's being calculated, we can use it properly (or in this case, perhaps, use a unit other than percentage).&lt;/p&gt;

&lt;p&gt;In this case, that's sort of the end of the journey.&lt;/p&gt;

&lt;p&gt;Sometimes the docs will explain why things behave in that way as well. Other times, like this, they don't really talk about why. In this case, it comes down to it creating a circular loop that could break your page. &lt;a href="https://www.hongkiat.com/blog/calculate-css-percentage-margins/"&gt;This article does a nice job of breaking it down&lt;/a&gt; if you'd like to read up more on it.&lt;/p&gt;

&lt;h2&gt;
  
  
  You don't need to do this for every single property
&lt;/h2&gt;

&lt;p&gt;I know we can't do a deep dive into all of the CSS properties or else you'd never have time to write a line of code, plus I think we all know how &lt;code&gt;color&lt;/code&gt; works. But the number of people who use flexbox and have no idea how flex-basis work is, well, probably 90% of people who use flexbox.&lt;/p&gt;

&lt;p&gt;When you understand how a property is meant to work, you can use it more effectively and write better code that works the way &lt;em&gt;you expect it to&lt;/em&gt; each and every time.&lt;/p&gt;

&lt;p&gt;Wouldn't that be nice?&lt;/p&gt;

&lt;p&gt;So the next time you're writing code and something doesn't work, don't jump straight onto StackOverflow or find some patchwork answer that you can paste into your own code and hope that it works.&lt;/p&gt;

&lt;p&gt;Take an extra 5 to 10 minutes and find out how that property actually is intended to work. Those extra minutes will save you tenfold that much time in the long run.&lt;/p&gt;

&lt;h2&gt;
  
  
  You will still get stuck
&lt;/h2&gt;

&lt;p&gt;The most important thing is to keep pushing. The more code you write, the more you use the tools at your disposal and the better easier everything gets. But there is one thing I can guarantee: you will still get stuck from time to time.&lt;/p&gt;

&lt;p&gt;Whatever you do, don't fret if you run into something that really stumps you. &lt;strong&gt;Find someone, or a group, where you feel comfortable asking questions&lt;/strong&gt;, whether its a community or someone you can shoot a DM to, it can make all the difference.&lt;/p&gt;

&lt;p&gt;And if you don't have that option, StackOverflow is always there. As I said earlier, it's an amazing resource that I wish I had access to when I started! The big problem is that people too often want a solution to their problem, rather than trying to figure out what the problem is in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding problems vs getting solutions
&lt;/h2&gt;

&lt;p&gt;When you get a solution on StackOverflow (or anywhere else), you're super happy because you copy and paste some code and it works!&lt;/p&gt;

&lt;p&gt;You just banged your head against the wall for 2-hours and now it's fixed, woohoo!&lt;/p&gt;

&lt;p&gt;But you didn't learn anything because you moved on. The problem was solved after all!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The real trick is asking questions that, instead of asking for a solution, ask what is causing the problem in the first place&lt;/strong&gt;. Using high-quality questions that ask people what is causing the problem in the first place opens up a lot more learning.&lt;/p&gt;

&lt;p&gt;And people, when faced with questions like that, will give you the solution too, but most of the time it's much more detailed and insightful.&lt;/p&gt;

&lt;p&gt;I know they work because I answer peoples questions &lt;em&gt;all the time&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;If it's a low-value question, I answer quickly and move on, if they ask in the right way, I end up providing a lot more value because, while I want to answer quickly, I still want to actually answer their question!&lt;/p&gt;

&lt;p&gt;You win twice because &lt;strong&gt;you walk away with a solution, but even more importantly, you walk away with more understanding as well&lt;/strong&gt;. That means the next time it happens, you'll know why it happened and how to fix it, and that's amazing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not sure how to ask high-value questions?
&lt;/h2&gt;

&lt;p&gt;I've got a free PDF that goes deeper into the subject which you can get &lt;a href="https://askbetterquestions.kevinpowell.co/"&gt;right here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It goes into more detail into low- and high-value questions and gives concrete examples of ways you can ask the same question but in ways that extract maximum value.&lt;/p&gt;

</description>
      <category>css</category>
    </item>
    <item>
      <title>Learn to master CSS with the Responsive Web Design Bootcamp</title>
      <dc:creator>Kevin Powell</dc:creator>
      <pubDate>Tue, 20 Aug 2019 13:42:06 +0000</pubDate>
      <link>https://dev.to/kevinpowell/learn-to-master-css-with-the-responsive-web-design-bootcamp-2i4o</link>
      <guid>https://dev.to/kevinpowell/learn-to-master-css-with-the-responsive-web-design-bootcamp-2i4o</guid>
      <description>&lt;p&gt;My audience &lt;a href="https://www.youtube.com/kevinpowell"&gt;on YouTube&lt;/a&gt; has been asking me to create an in-depth course on building websites for a while now, so today I’m &lt;em&gt;super&lt;/em&gt; excited to let you know that I’ve teamed up with Scrimba to bring you &lt;a href="https://scrimba.com/g/gresponsive"&gt;the Responsive Web Design Bootcamp&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The primary focus of the course is on how to build responsive websites, but &lt;em&gt;only&lt;/em&gt; focusing on responsiveness didn’t feel right to me. &lt;/p&gt;

&lt;p&gt;I wanted to make it as inclusive as possible, in that someone who’d just started learning HTML &amp;amp; CSS would be able to jump in without feeling intimidated, but I also wanted to make sure that it went deep enough to satisfy those who’ve already been in the game for a while.&lt;/p&gt;

&lt;p&gt;As you can imagine, that means that there is a lot of content! It clocks in with &lt;strong&gt;173 lessons&lt;/strong&gt; and &lt;strong&gt;over 15 hours of content&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To help stay organized with that much content, the course is split into several modules (you can find a more detailed breakdown of each one below):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Module 1: CSS Fundamentals&lt;/li&gt;
&lt;li&gt;Module 2: Starting to think responsively&lt;/li&gt;
&lt;li&gt;Module 3: Stepping up our style&lt;/li&gt;
&lt;li&gt;Module 4: Taking flexbox to the next level&lt;/li&gt;
&lt;li&gt;Module 5: CSS Grid: The ultimate layout tool&lt;/li&gt;
&lt;li&gt;Module 6: Taking it to the next level&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So in reality, &lt;strong&gt;the course is more like 6  stand-alone courses&lt;/strong&gt;, but where each one builds on the previous one. &lt;/p&gt;

&lt;h2&gt;
  
  
  Learning through doing
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;I’m a strong advocate of learning through doing&lt;/strong&gt;. I don’t see the point in learning &lt;em&gt;everything&lt;/em&gt; there is about something which can seem a bit complex (such as flexbox) before ever having used it. &lt;/p&gt;

&lt;p&gt;What’s the point in learning about what the cross-axis is and &lt;code&gt;flex-basis&lt;/code&gt; when at first you just want to create a few columns?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So this course is all about learning through doing.&lt;/strong&gt; I use this approach because, when you are finished with the course, you will not only be comfortable with what was covered in the course, but you will have hands-on knowledge with CSS. &lt;/p&gt;

&lt;p&gt;You will come out of this course being comfortable with CSS. We can’t cover it all but &lt;strong&gt;the foundation that you’ll build by going through this will set you up for success as you continue learning and building websites&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If this sounds like something you’d like to check out, &lt;a href="https://scrimba.com/g/gresponsive"&gt;click right here&lt;/a&gt;. As an added bonus, during the launch period, you can get it for 71% off! If you’d like more information on it first, keep on reading!&lt;/p&gt;

&lt;h2&gt;
  
  
  Scrimba is a game-changer
&lt;/h2&gt;

&lt;p&gt;As I mentioned off the top, I teamed up with the guys at &lt;a href="https://www.scrimba.com"&gt;Scrimba&lt;/a&gt; to put this course together. If you aren’t familiar with Scrimba, &lt;strong&gt;they’ve changed the game when it comes to learning web development online&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kU1E6Grc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/cfc2vwleovlrkebtvz6o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kU1E6Grc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/cfc2vwleovlrkebtvz6o.png" alt="screenshot of Scrimba's platform"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you first dive in, it might seem like any other video lesson, but you can interact with the code &lt;em&gt;directly&lt;/em&gt; in the video player. &lt;/p&gt;

&lt;p&gt;Yes, you heard that correctly, &lt;strong&gt;you can pause a video, change the code&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;in the video player&lt;/em&gt;&lt;/strong&gt; &lt;strong&gt;and see the updates live in the built-in preview window&lt;/strong&gt;. Hit play, and it resumes right where you left off. It's incredible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wait, who am I?
&lt;/h2&gt;

&lt;p&gt;My name is Kevin Powell and I have a &lt;a href="https://www.youtube.com/kevinpowell"&gt;YouTube channel&lt;/a&gt; devoted to CSS that currently has over 80,000 subscribers.&lt;/p&gt;

&lt;p&gt;I've also been teaching in the classroom, where I'm currently entering my 6th year of teaching. &lt;/p&gt;

&lt;p&gt;I teach everything from intro to HTML &amp;amp; CSS classes to page layout, typography, Photoshop and more.&lt;/p&gt;

&lt;p&gt;Through my experience teaching in the classroom, I've seen a lot of what works and what doesn't first hand with my students and I've brought that experience to how I've structured this course. &lt;/p&gt;

&lt;p&gt;I'm also very passionate about CSS. I see this course as an opportunity to help people see why I love it so much!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you're ready to take your CSS skills to the next level, &lt;a href="https://www.kevinpowell.co/learn-responsive"&gt;click here&lt;/a&gt; to sign up!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A more detailed breakdown of the modules
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Module 1 - CSS Fundamentals
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Module 1&lt;/strong&gt; continues from where my free &lt;a href="https://scrimba.com/g/ghtmlcss"&gt;HTML and CSS Crash Course&lt;/a&gt; leaves off. So it starts at a pretty basic level but quickly gears up! &lt;/p&gt;

&lt;p&gt;In this module, we’re exploring fundamentals such as understanding the box model, as well as making sure we properly understand things like inheritance and specificity which many people, even experienced developers, get frustrated with.&lt;/p&gt;

&lt;p&gt;Even though the focus is on the basics, we add in Google fonts and some design tips and tricks to start making a few simple layouts look good while we are at it.&lt;/p&gt;

&lt;p&gt;It’s an essential module to make sure we all understand the basic concepts of CSS before we dive into the more complicated material.&lt;/p&gt;

&lt;h3&gt;
  
  
  Module 2 - Starting to think responsively
&lt;/h3&gt;

&lt;p&gt;This module is a big module, and at the heart of things, a very big focus for this course. It introduces units new units, media queries, and starts taking a look at flexbox.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It also dives into how to analyze a layout before even writing a line of code&lt;/strong&gt;. This is a foundational skill and something that &lt;em&gt;many&lt;/em&gt; people struggle with. &lt;/p&gt;

&lt;p&gt;Along with planning ahead, we also start to explore how to name our classes to avoid running into problems as a project scales up in size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This module concludes with building out a three-page site&lt;/strong&gt; and making sure that it’s fully responsive.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CuYfwB-X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/vilgqqpei6c0f4sr6w3k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CuYfwB-X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/vilgqqpei6c0f4sr6w3k.jpg" alt="screenshots of the different pages at small and large screens"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Module 3 - Stepping up our style
&lt;/h3&gt;

&lt;p&gt;This one is all about taking a look at the more nuanced side of CSS. &lt;/p&gt;

&lt;p&gt;It starts by continuing the last project to help make it even better before diving into another design where learn a few extras, such as background images, gradients, viewport units, some finer details on typography, as well as creating and styling a basic form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It’s about understanding CSS at a deeper level and starting to unlock some of its awesome potential&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This module wraps up with building a simple, responsive splash-page, but one which forces us to continue leveling up what we know about CSS.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3d9nMLJn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/niw2zebgsuyvx3e3icas.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3d9nMLJn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/niw2zebgsuyvx3e3icas.jpg" alt="Screenshot of the page we're building"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Module 4 - Taking flexbox to the next level
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Module 4&lt;/strong&gt; is a change of pace. &lt;/p&gt;

&lt;p&gt;At this point, we’ve created a lot. We’re starting to be comfortable with how it’s all working, so it’s time to take a real deep dive into flexbox (one of the two layout tools we have in CSS). &lt;/p&gt;

&lt;p&gt;We look at the finer details of it such as &lt;code&gt;flex-basis&lt;/code&gt;, &lt;code&gt;align-self&lt;/code&gt;, how auto margins inside of flexbox change (and more!). &lt;/p&gt;

&lt;p&gt;Once you’ve wrapped up this module, you’ll learn how to really control every element on a page properly. &lt;/p&gt;

&lt;h3&gt;
  
  
  Module 5 - CSS Grid: The ultimate layout tool
&lt;/h3&gt;

&lt;p&gt;Then it's time to get into CSS Grid, which is CSS’ newest layout tool. It’s a major step up from flexbox. It allows us to build much more complicated layouts while simplifying our HTML in the process!&lt;/p&gt;

&lt;p&gt;This module explores how it works, and how things like &lt;code&gt;auto-fit&lt;/code&gt;, &lt;code&gt;minmax()&lt;/code&gt;, and grid areas can make creating responsive websites &lt;em&gt;so much&lt;/em&gt; &lt;em&gt;easier!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;We’ll examine how we can recreate some of our old layouts with grid, as well as take a look at a few simple page designs and how grid can be super useful when looking at the big picture as well as at the component level.&lt;/p&gt;

&lt;h3&gt;
  
  
  Module 6 - Taking it to the next level
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Module 6&lt;/strong&gt; is the final project where we put everything together and build a 3-page site that uses everything we’ve learned so far, including CSS Grid. &lt;/p&gt;

&lt;p&gt;While we’re at it, we’ll take things to the next level by exploring new things, such as pseudo-elements, some neat tricks with shadows, as well a &lt;em&gt;very&lt;/em&gt; small dive into JavaScript.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xIk2rUap--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/261qb0dfkeu91yx5d27n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xIk2rUap--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/261qb0dfkeu91yx5d27n.jpg" alt="The three pages we're building for the final project"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready to step up your CSS game and master building responsive websites?
&lt;/h2&gt;

&lt;p&gt;If you’d like to step up your CSS game, during the launch period it is on sale for $29, which is 71% off the final price! &lt;a href="https://scrimba.com/g/gresponsive"&gt;Click here&lt;/a&gt; to dive in and take your CSS skills to the next level.&lt;/p&gt;

</description>
      <category>responsivewebdesign</category>
      <category>course</category>
      <category>html</category>
      <category>css</category>
    </item>
  </channel>
</rss>
