<?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: Dan Vega</title>
    <description>The latest articles on DEV Community by Dan Vega (@therealdanvega).</description>
    <link>https://dev.to/therealdanvega</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%2F123336%2Fbefc7694-d0ab-46eb-801a-ed67a9258ad6.png</url>
      <title>DEV Community: Dan Vega</title>
      <link>https://dev.to/therealdanvega</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/therealdanvega"/>
    <language>en</language>
    <item>
      <title>Lessons learned from redesigning my website</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Sun, 17 May 2020 20:59:43 +0000</pubDate>
      <link>https://dev.to/therealdanvega/lessons-learned-from-redesigning-my-website-2ngf</link>
      <guid>https://dev.to/therealdanvega/lessons-learned-from-redesigning-my-website-2ngf</guid>
      <description>&lt;p&gt;A couple of months ago I decided it was time to update &lt;a href="https://www.danvega.dev"&gt;https://www.danvega.dev&lt;/a&gt;. I normally get this feeling every couple of years but this time it was different. I liked the look and feel but there was a list of things that I wanted to improve on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Areas of improvement
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Design&lt;/li&gt;
&lt;li&gt;Removing CSS frameworks&lt;/li&gt;
&lt;li&gt;Home Page Layout&lt;/li&gt;
&lt;li&gt;Dark Mode&lt;/li&gt;
&lt;li&gt;Responsive Design&lt;/li&gt;
&lt;li&gt;Lighthouse Scores&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Design
&lt;/h3&gt;

&lt;p&gt;I am not a designer, but I like to wear this hat from time to time and pretend I am one. I have gravitated towards &lt;a href="https://www.adobe.com/products/xd.html"&gt;Adobe XD&lt;/a&gt;, and I have been using it for a lot of my projects lately. I find it's easy to use and it allows me to prototype my application quickly. Once I have something I like its really easy for me to grab the colors, fonts, and assets and build out the design in HTML &amp;amp; CSS. Below are some artboards from a couple of months ago when I decided to start redesigning the site.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TKNi9Kpb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c6ruquwgx9tfdjv7xo91.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TKNi9Kpb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/c6ruquwgx9tfdjv7xo91.png" alt="Adobe XD"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Lesson Learned
&lt;/h4&gt;

&lt;p&gt;It might seem like extra work upfront to sit down and come up with a design but it pays off in the long run. When I know what I need to build I spend so much less time in development. Looking at a design, I know what content is needed, so I start with my HTML structure. With my content in place with the semantic structure, I use CSS to make my look and feel match my design.&lt;/p&gt;

&lt;h3&gt;
  
  
  Removing CSS frameworks
&lt;/h3&gt;

&lt;p&gt;The previous version of my website used a CSS framework called Bulma. I need to make something clear and say that I have absolutely nothing bad to say about Bulma. If I had to select a CSS framework not named Tailwind CSS Bulma would be my framework of choice. I didn't know Bluma when I started using it and that caused a lot of my problems. If you combine that with a lack of CSS foundational knowledge I had a pretty messy codebase.&lt;/p&gt;

&lt;p&gt;Now that I understand layouts in CSS and how to accomplish different designs I find component-based frameworks less useful. In the past few years, my frontend skills have gotten better and I thought this was a great time to put them to use. My redesign makes use of a variety of tools that make frontend development a lot of fun&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CSS Variables&lt;/li&gt;
&lt;li&gt;Flexbox&lt;/li&gt;
&lt;li&gt;CSS Grid&lt;/li&gt;
&lt;li&gt;Responsive Design&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Lesson Learned
&lt;/h4&gt;

&lt;p&gt;Learn the foundations of HTML &amp;amp; CSS. I have been building websites for 20+ years and a lot has changed in the last 5 years. I am constantly hearing the same from other developers who have been doing this for a long time. Learn modern techniques like Flexbox &amp;amp; CSS Grid, they are both awesome and a real joy to work with.&lt;/p&gt;

&lt;h3&gt;
  
  
  Home Page Layout
&lt;/h3&gt;

&lt;p&gt;My previous home page was really boring and I just wanted to add some style to it. I started messing around with some different designs and one thing that always stuck out to me with a total "cool factor" was layouts that had some type of wave or diagonal design. I came up with the wave on the home page and now it was time to implement it.&lt;/p&gt;

&lt;p&gt;I attempted to figure this out on my own and failed a few times. I was trying to use an image that I exported from XD as a background image and had issues with it not being responsive and not working well in dark mode. I finally did some digging around and came across this &lt;a href="https://blog.prototypr.io/how-to-add-svg-waves-to-your-next-web-project-b720efe1c692"&gt;great tutorial by Richard Zimerman&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Lessons Learned
&lt;/h4&gt;

&lt;p&gt;The trick here was using an SVG and setting it to &lt;code&gt;display:block&lt;/code&gt;. I am still pretty new to using SVG images but I am finding them really useful. In this case, I combined CSS custom properties with an SVG and now I have the header for the home page that looks nice, is responsive, and looks good in dark mode!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.wave-container&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;relative&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="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--home-header-background&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#4a4a4a&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;overflow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;hidden&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nc"&gt;.wave-container&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;svg&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&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;h3&gt;
  
  
  Dark Mode
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--A0Zsx8pH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xvak9uq1vh6yxato6cyk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A0Zsx8pH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/xvak9uq1vh6yxato6cyk.png" alt="Dark Mode"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have always loved the idea of having a dark mode on my website. I don't know how much my readers were asking for it but this is my website and I wanted to add it 🤷‍♂️. I have used CSS Custom Properties (variables) before but maybe not at this scale. The way this works is by setting some custom properties on the &lt;code&gt;:root&lt;/code&gt; which will be your default light theme. For each property you create you will create a dark theme property as well.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nd"&gt;:root&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="nt"&gt;data-theme&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;"dark"&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;--background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;black&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 in your CSS instead of setting the background color to white or black you refer to the custom property&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&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="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&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;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--background&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;border-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="n"&gt;var&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;--bright-blue&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;"Roboto Slab"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;serif&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;Next, I setup some icons using Font Awesome and by default the moon is displayed. When you click on that icon you are enabling dark mode. A little custom JavaScript will set the &lt;code&gt;data-theme&lt;/code&gt; to dark:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;documentElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;data-theme&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;documentElement&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setAttribute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;data-theme&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dark&lt;/span&gt;&lt;span class="dl"&gt;"&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;h4&gt;
  
  
  Lessons Learned
&lt;/h4&gt;

&lt;p&gt;If you are going to implement something like dark mode do it right from the start. If you notice yourself defining colors anywhere that don't use a CSS property you probably need to think about doing so. This is something I need to go back and fix up. I feel like I have too many properties defined and can probably condense this down.&lt;/p&gt;

&lt;h3&gt;
  
  
  Responsive Design
&lt;/h3&gt;

&lt;p&gt;I know that both myself and my audience use my website on a variety of form factors so making sure my design was responsive was important. As you can tell by XD designs I didn't have a mobile-first approach and that caused me some issues along the way. It's important to always be thinking about how a layout or design element will scale up or down. I am really thankful for tools like Flexbox and CSS Grid which are really helpful in creating responsive designs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B6O0Fkf_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fa5ip4335pkoltvsw0e5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B6O0Fkf_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/fa5ip4335pkoltvsw0e5.png" alt="Responsive Design"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Lessons Learned
&lt;/h4&gt;

&lt;p&gt;When I design a layout in Adobe XD I need to make sure I have a plan for my responsive designs. The term mobile-first means that your layout starts out with a mobile layout and scales up. This ensures that the mobile design is not just an after thought. Take some time to look at the analytics and understand what devices your visitors are using.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lighthouse Audits
&lt;/h3&gt;

&lt;p&gt;I knew that once I finished my site I wanted to take a look at the &lt;a href="https://web.dev/measure/"&gt;Lighthouse Audits&lt;/a&gt; and try to improve scores where I could. If you aren't aware the Google Developer Tools has a tab called Audits where you can check your site for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance&lt;/li&gt;
&lt;li&gt;Accessibility&lt;/li&gt;
&lt;li&gt;Best Practices&lt;/li&gt;
&lt;li&gt;SEO&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Right now the site is doing well on some page but still needs some work on others. My advice here is let these audits guide you to improve your site but do not obsess over them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1y_aCFA8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bwbdfgc7cf3fzpwslikt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1y_aCFA8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/bwbdfgc7cf3fzpwslikt.png" alt="Lighthouse Audits"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Lessons Learned
&lt;/h4&gt;

&lt;p&gt;The first big lesson I learned here was that pulling in the entire Font Awesome library for &amp;lt; 10 icons was a big no no. I mean I knew this but I needed to find a way to resolve this and the audit gave me a big kick in the rear to do so. I was just going to grab the icons I needed but what happens if I want to use more in the future? There had to be a way to pull in just the icons I needed and thanks to the Gridsome documentation I came across a wonderful &lt;a href="https://github.com/FortAwesome/vue-fontawesome"&gt;library from Fort Awesome&lt;/a&gt; for using Font Awesome in Vue.&lt;/p&gt;

&lt;p&gt;I still have some work to do here but I am trying to take my own advice and not obsess over it. I think there are two big things that would really help me out. Right now on the home page all of the images for recent posts are pulling from GraphQL. There is a way to resize them but unlike when you use a &lt;code&gt;&amp;lt;g-image&amp;gt;&lt;/code&gt; tag this isn't lazy loading the images and I need to figure out a way around this. The other problem is all of my ConvertKit forms are pulled in via JavaScript. I would like to just create these forms myself so I can make sure they are accessible and at the same time it would reduce some page weight.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;I have had a lot of fun working on the redesign for my website and I hope it shows. If you have any questions about anything I did here you can check out the &lt;a href="https://github.com/danvega/danvega-dev"&gt;source code&lt;/a&gt; for it here. If you would like me to explain anything in more detail please leave me a comment below or reach out to me on &lt;a href="http://twitter.com/therealdanvega"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>css</category>
      <category>javascript</category>
      <category>vue</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Send an HTTP GET Request using Java 11 HttpClient</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Wed, 18 Mar 2020 02:13:33 +0000</pubDate>
      <link>https://dev.to/therealdanvega/send-an-http-get-request-using-java-11-httpclient-1iki</link>
      <guid>https://dev.to/therealdanvega/send-an-http-get-request-using-java-11-httpclient-1iki</guid>
      <description>&lt;p&gt;In this tutorial, you will learn how to make an HTTP request in Java using the HttpClient class from Java 11. This class makes it really easy to send a request and in this demo, you will learn how to call a REST API. The REST API is going to return a JSON array and you will then learn how to convert each item in the array into a Java Object using Jackson. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/5MmlRZZxTqk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;When you have completed this tutorial you should understand: &lt;br&gt;
  ✅ What is the HttpClient class and why would you need it&lt;br&gt;
  ✅ Use Java HttpClient to send an HTTP GET Request&lt;br&gt;
  ✅ Call a REST Client in Java&lt;br&gt;
  ✅ Use Jackson Databind to parse JSON into Java Objects&lt;br&gt;
  ✅ Use a reference method to print out each Java Object&lt;/p&gt;

</description>
      <category>java</category>
    </item>
    <item>
      <title>How to create a Pull Request by Submitting your first Pull Request to Github</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Wed, 11 Mar 2020 01:37:31 +0000</pubDate>
      <link>https://dev.to/therealdanvega/how-to-create-a-pull-request-by-submitting-your-first-pull-request-to-github-5ai9</link>
      <guid>https://dev.to/therealdanvega/how-to-create-a-pull-request-by-submitting-your-first-pull-request-to-github-5ai9</guid>
      <description>&lt;p&gt;In this tutorial, I am going to show you how to create a simple pull request by submitting your first pull request to Github. After we walk through submitting your first pull request to Github I am going to show you how to find issues that you can work on in some of your favorite open-source projects. If you want to contribute on open-source projects these days it is important to understand how to find issues that you can work on and understand the process for getting your changes into a project.  &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/TWPXAbPVcio"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;When you have completed this tutorial you should understand: &lt;br&gt;
 ✅ How does a Github Pull Request differ from your normal daily workflow&lt;br&gt;
 ✅ What is a Pull Request?&lt;br&gt;
 ✅ Creating a simple Github pull request&lt;br&gt;
 ✅ Submitting your first pull request to Github&lt;br&gt;
 ✅ Finding issues to work on in your favorite open source projects&lt;br&gt;
 ✅ This process would also work on Bitbucket, Gitlab or any other Git-based hosting.&lt;/p&gt;

</description>
      <category>github</category>
      <category>git</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Spring Boot Quick Start: Spring Boot Tutorial for Beginners</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Thu, 05 Mar 2020 19:45:39 +0000</pubDate>
      <link>https://dev.to/therealdanvega/spring-boot-quick-start-spring-boot-tutorial-for-beginners-3emm</link>
      <guid>https://dev.to/therealdanvega/spring-boot-quick-start-spring-boot-tutorial-for-beginners-3emm</guid>
      <description>&lt;p&gt;In this Spring Boot quick start, you are going to learn how to create a simple Spring Framework application using Spring Boot. We will discuss different IDE &amp;amp; Text editor options, create the new Spring Boot application using the Spring Initializr and then import it into IntelliJ IDEA. This Spring Boot Tutorial for Beginners will follow a new quick start guide on the Spring.io website.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/df7Dso9q700"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;When you have completed this tutorial you should understand: &lt;br&gt;
  ✅ Understand what Spring Boot is and what it gives us&lt;br&gt;
  ✅ Create a new project using the Spring Initializr&lt;br&gt;
  ✅ Import the project into your IDE of choice&lt;br&gt;
  ✅ Create a REST controller in Spring Boot&lt;br&gt;
  ✅ Use the @GetMapping annotation from the Spring Framework&lt;br&gt;
  ✅Running a Spring Boot Application&lt;/p&gt;

&lt;p&gt;🔗Resources &amp;amp; Links mentioned in this video:&lt;/p&gt;

&lt;p&gt;Spring Boot Quick Start: &lt;a href="https://spring.io/quickstart"&gt;https://spring.io/quickstart&lt;/a&gt;&lt;br&gt;
Spring Boot in Visual Studio Code: &lt;a href="https://youtu.be/5mpHejytgFE"&gt;https://youtu.be/5mpHejytgFE&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>spring</category>
      <category>springboot</category>
      <category>rest</category>
    </item>
    <item>
      <title>Vue 3: Smaller, Faster &amp; Stronger.</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Thu, 05 Mar 2020 02:04:17 +0000</pubDate>
      <link>https://dev.to/therealdanvega/vue-3-smaller-faster-stronger-25gf</link>
      <guid>https://dev.to/therealdanvega/vue-3-smaller-faster-stronger-25gf</guid>
      <description>&lt;p&gt;In this presentation, I am going to talk to you about some of the new and exciting features coming to Vue 3. I originally put this presentation together for a conference called CodeMash. I put a lot of work into this presentation and have only given it twice now so I decided to sit down and record it for a larger audience.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HmdKqXP8JR8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;This presentation will cover: &lt;br&gt;
  ✅ Vue.js release history&lt;br&gt;
  ✅ Request for Comments (RFC) process&lt;br&gt;
  ✅ Smaller ( Global API Change, Tree shaking, TypeScript &amp;amp; Fragments)&lt;br&gt;
  ✅ Faster (Virtual DOM, Reactivity Updates) &lt;br&gt;
  ✅ Stronger (Composition API) &lt;/p&gt;

&lt;p&gt;Question: What are your favorite new features in Vue 3? &lt;/p&gt;

</description>
      <category>vue</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Spring Boot in Visual Studio Code</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Thu, 14 Nov 2019 14:03:57 +0000</pubDate>
      <link>https://dev.to/therealdanvega/spring-boot-in-visual-studio-code-bme</link>
      <guid>https://dev.to/therealdanvega/spring-boot-in-visual-studio-code-bme</guid>
      <description>&lt;p&gt;I use Visual Studio Code for everything these days. In the past couple of months alone I have used it for HMTL, CSS, JavaScript, Java, Spring, C#, Go, Vue, Angular, and TypeScript. &lt;/p&gt;

&lt;p&gt;A few folks were surprised when I told them that I was doing Java + Spring Boot development in VS Code so I thought I would put a video together to show it off. &lt;/p&gt;

&lt;p&gt;In this video, I will create a new Spring Boot Project in Visual Studio Code. Then we will add a REST API controller that our front end project can talk to. Finally, we will create a simple Vue project that talks to our Spring Boot backend. &lt;/p&gt;

&lt;p&gt;Here is the video along with the extensions you should install.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/5mpHejytgFE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Extensions:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-boot-dev-pack"&gt;https://marketplace.visualstudio.com/items?itemName=Pivotal.vscode-boot-dev-pack&lt;/a&gt;&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack"&gt;https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anyone else using Visual Studio Code for Spring Development? Are you facing any issues, got any tips?&lt;/p&gt;

</description>
      <category>java</category>
      <category>spring</category>
      <category>vscode</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>A beginners guide to unit testing in Vue</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Thu, 31 Oct 2019 13:22:14 +0000</pubDate>
      <link>https://dev.to/therealdanvega/a-beginners-guide-to-unit-testing-in-vue-596g</link>
      <guid>https://dev.to/therealdanvega/a-beginners-guide-to-unit-testing-in-vue-596g</guid>
      <description>&lt;p&gt;All three articles that I did on *&lt;em&gt;Unit Testing in Vue for beginners&lt;/em&gt; that I did for Vue Mastery are now live. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.vuemastery.com/blog/unit-testing-vue-1"&gt;Unit Testing in Vue: What to test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.vuemastery.com/blog/Unit-Testing-in-Vue-Your-First-Test"&gt;Unit Testing in Vue: Writing your first Test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.vuemastery.com/blog/Unit-Testing-in%20Vue-More-complex-components"&gt;Unit Testing in Vue: Testing More Complex Components&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In part one of the series, we really focused on identifying what to test and more importantly what NOT to test in your components. From there we wrote our first test in part two and spent some time understanding the different libraries involved. In part three we learn through repetition by writing more unit tests with a couple of components that add some new wrinkles.&lt;/p&gt;

&lt;p&gt;I want to thank Adam and Gregg over at Vue Mastery for giving me this opportunity to write for them. I have always looked up to them for their unique style of teaching and everything they do for the Vue community. I don't think this is the last time you will see me collaborating with them and I am looking forward to what we do next.&lt;/p&gt;

&lt;p&gt;I put a lot of hard work into this series and if you enjoyed it please let them know. I hope you're having a wonderful day and as always friends...&lt;/p&gt;

&lt;p&gt;Happy Coding&lt;br&gt;
Dan&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you found this article interesting please consider &lt;a href="https://www.danvega.dev/signup/"&gt;subscribing to my newsletter&lt;/a&gt; or following me on &lt;a href="http://twitter.com/therealdanvega"&gt;Twitter&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>vue</category>
    </item>
    <item>
      <title>Hello, Philadelphia! </title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Fri, 13 Sep 2019 17:55:55 +0000</pubDate>
      <link>https://dev.to/therealdanvega/tech-elevator-launches-in-philidelphia-54eo</link>
      <guid>https://dev.to/therealdanvega/tech-elevator-launches-in-philidelphia-54eo</guid>
      <description>&lt;p&gt;This was a huge week at &lt;a href="https://www.techelevator.com/"&gt;Tech Elevator&lt;/a&gt; where we announced our 6th location would be opening up in Philadelphia. If you want to read more about why we are so excited about this opportunity I would encourage you to &lt;a href="https://www.linkedin.com/pulse/liberating-potential-birthplace-america-anthony-hughes/"&gt;read this article&lt;/a&gt; by our CEO, Anthony Hughes. As exciting as expansion is, growth without a mission isn't sustainable. &lt;/p&gt;

&lt;p&gt;You will find a lot of coding bootcamps boasting about their numbers without any verified data to back them up. Here at Tech Elevator, we submit all of our results to &lt;a href="https://cirr.org/"&gt;CIRR&lt;/a&gt;, The Council on Integrity in Results Reporting. CIRR is an independent, non-profit organization whose members believe that prospective students should know a school's outcomes before deciding whether to enroll.&lt;/p&gt;

&lt;p&gt;CIRR posted our result this week and Tech Elevator is graduating 95% of students across all our campuses and of that 94% are getting placed within 180 days of graduating. The starting salary of students entering our program is $30,000 and the average starting salary when they leave is $58,000. This means that in just 14 weeks students are leaving with double their salary and a career that they are excited about. &lt;/p&gt;

&lt;p&gt;This allows all of you to see what I already know, Tech Elevator is all about changing our student's lives. This makes me so happy because not only are we growing but we are doing it the right way and this is something I am incredibly proud of. &lt;/p&gt;

&lt;p&gt;So enough bragging, what does this mean for you? First, we are hiring across many of our &lt;a href="https://www.techelevator.com/join-our-team"&gt;locations for multiple positions&lt;/a&gt;. If you enjoy mentoring and have a real passion for software development you might be a great fit as an instructor. If you would like to hear more about becoming an instructor or have any questions please feel free to contact me. &lt;/p&gt;

&lt;p&gt;This also means that if you have any friends or family in the Philadelphia area that are interested in a career in software development you need to tell them about Tech Elevator. Our results speak for themselves, we give you everything you need to start a new career in software development. I truly believe in what we do here and again if you have any questions, please feel free to reach out. As always friends...&lt;/p&gt;

&lt;p&gt;Happy Coding&lt;br&gt;
Dan Vega&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you found this article interesting please consider &lt;a href="https://www.danvega.dev/signup/"&gt;subscribing to my newsletter&lt;/a&gt; or following me on &lt;a href="http://twitter.com/therealdanvega"&gt;Twitter&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>career</category>
      <category>coding</category>
      <category>bootcamp</category>
      <category>juniordevs</category>
    </item>
    <item>
      <title>Join my Discord Community</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Tue, 27 Aug 2019 15:40:22 +0000</pubDate>
      <link>https://dev.to/therealdanvega/join-my-discord-community-1jcf</link>
      <guid>https://dev.to/therealdanvega/join-my-discord-community-1jcf</guid>
      <description>&lt;p&gt;I have decided to create a &lt;a href="https://discordapp.com"&gt;Discord&lt;/a&gt; community. I have been giving this a lot of thought for the last few months and I am really excited about it. In this article, I am going to give you a quick introduction to what Discord is, why I chose it as a platform and how it compares to something like Slack or Facebook Groups.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Discord?
&lt;/h2&gt;

&lt;p&gt;If you're not familiar with Discord it is an all-in-one voice and text chat for gamers that's free, secure and works on both your desktop and phone. For a long time Discord was primarily geared towards gamers, and it still is. With that said it has been building some pretty great features on that has been attracting communities to it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3IGUTPdo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ez8n7gaozngjbmeyy8bo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3IGUTPdo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/ez8n7gaozngjbmeyy8bo.png" alt="Discord Home"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have been a part of 5 or so communities this year on Discord and have really fallen in love with how easy it to use. I also love in the communities I am in everyone has been very helpful and nice.&lt;/p&gt;

&lt;p&gt;People want to join communities where they are going to have helpful discussions without being ridiculed. That is why Discord has a strong focus on preventing spam as well as giving server administrators the tools they need to moderate them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do I need a community?
&lt;/h2&gt;

&lt;p&gt;The real question that I have been fighting with is &lt;strong&gt;&lt;em&gt;Do I really need to start a community&lt;/em&gt;&lt;/strong&gt;? I mean who am I? I am just a guy on his small corner of the internet who likes to help people learn how to code. The more and more I started thinking about it though the more it made a lot of sense to me.&lt;/p&gt;

&lt;h3&gt;
  
  
  Course Student Discussions
&lt;/h3&gt;

&lt;p&gt;If you're new here I teach courses online and currently have over 85,000 students across multiple platforms. First It's become really hard to manage students questions across these platforms. The platforms I teach on have ways for students to ask questions but they aren't great for getting students to engage with each other.&lt;/p&gt;

&lt;p&gt;I think by moving these students to Discord I can get a better handle on the questions being asked. Once I can get a better handle on what questions are being asked I can try and correct these problems in my courses and cut down on the number of questions I have to respond to. I also think this might turn into something where students can help other students with their questions. The reality is with a full-time job and a family I need to make the most of what little free time I have.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iXufugcH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/hps1bo2zams3a91g5gi8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iXufugcH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/hps1bo2zams3a91g5gi8.jpeg" alt="Library"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Not just for students
&lt;/h3&gt;

&lt;p&gt;If you're not a student of mine don't worry, there is something for you here as well. I like to teach through articles and videos. If you have questions about one of these pieces of content there will be a place here for you to ask questions.&lt;/p&gt;

&lt;p&gt;I also try and answer questions on Twitter from time to time. These might be questions that I see others asking or someone might have asked me something. While I love Twitter this isn't the greatest place to give an answer to technical or coding questions. So these are other types of discussions I would love to see started in my community.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why not Slack?
&lt;/h3&gt;

&lt;p&gt;This sounds exactly like what Slack is made for right? I use Slack for work and I actually like it a lot but it isn't great for communities. I already understood this at some level because if you aren't paying for Slack messages start to disappear which isn't great when you want to archive content.&lt;/p&gt;

&lt;p&gt;I could go on and on about the problems with using Slack building a community but I won't. Instead, you should check out this amazing article by Zach Shallbetter titled &lt;strong&gt;&lt;em&gt;&lt;a href="https://medium.com/@zachshallbetter/slack-is-destroying-communities-1ce49dad96ca"&gt;Slack is destroying Communities&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dcgX9gD_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/j3ljtgfmhn0nmzgoshwg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dcgX9gD_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/j3ljtgfmhn0nmzgoshwg.png" alt="Slack is destroying communities"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why not Facebook Groups?
&lt;/h3&gt;

&lt;p&gt;I currently run a Facebook group for &lt;a href="https://www.facebook.com/groups/157072618416340/"&gt;Spring Boot Developers&lt;/a&gt;. I have grown the group to over 11,000 people but to be honest it's become really hard to manage. Approving new members is pretty easy but I have to weed through about 50 posts a day most of which is someone trying to post their article or video.&lt;/p&gt;

&lt;p&gt;There is nothing wrong with wanting to share something you created but with Facebook I just don't find that its a good place to do so. There are no channels on facebook so it's all one big feed and questions get lost too easy so I try and limit the group to just discussions. On top of the self promotion links I get a bunch of spam and Facebook Groups Tools aren't great for moderation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Join my Discord
&lt;/h3&gt;

&lt;p&gt;Now that you know what Discord is and why I ultimately decided I needed a community it's time for you to join. This is free to you and none of your personal information is shared with me or anyone else and you can leave at any time.&lt;/p&gt;

&lt;p&gt;Below is a link to my Discord Community and look what my current chat room layout looks like. This will probably change by the time you get there but this is iteration #1.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WdHvfskA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5up9n4yqo4iyotalx32f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WdHvfskA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5up9n4yqo4iyotalx32f.png" alt="My Discord Channels"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Join my Discord Community: &lt;a href="https://discord.gg/gx4Z8XY"&gt;https://discord.gg/gx4Z8XY&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you want to learn how to code, help others learn to code or just love learning I think you're going to find a lot of value here. If you have any questions you can ask them in the Discord or reach out to me on Twitter. As always friends...&lt;/p&gt;

&lt;p&gt;Happy Coding&lt;br&gt;
Dan Vega&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was first posted on my blog at &lt;a href="https://www.danvega.dev/blog"&gt;https://www.danvega.dev/blog&lt;/a&gt;. If you found this article interesting please consider &lt;a href="https://www.danvega.dev/signup/"&gt;subscribing to my newsletter&lt;/a&gt; or following me on &lt;a href="http://twitter.com/therealdanvega"&gt;Twitter&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>community</category>
      <category>career</category>
    </item>
    <item>
      <title>Giddy for Gridsome: Learn how to use VueJS Static Site Generator Gridsome</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Sat, 17 Aug 2019 18:24:03 +0000</pubDate>
      <link>https://dev.to/therealdanvega/giddy-for-gridsome-learn-how-to-use-vuejs-static-site-generator-gridsome-np1</link>
      <guid>https://dev.to/therealdanvega/giddy-for-gridsome-learn-how-to-use-vuejs-static-site-generator-gridsome-np1</guid>
      <description>&lt;p&gt;In this live stream, we are going to be talking all about Static Site Generators. I built my new personal website using a static site generator called Gridsome and I want to show you how you can get a basic site up and running with it. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/UEBTiMpvgas"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;If you're interested in finding out when I will be live streaming sign up for my newsletter over at &lt;a href="https://www.danvega.dev"&gt;https://www.danvega.dev&lt;/a&gt;. If there are certain projects that you would like me to work on during these live streams please &lt;a href="https://twitter.com/therealdanvega"&gt;let me know&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>livecoding</category>
      <category>vue</category>
      <category>gridsome</category>
      <category>staticsitegenerator</category>
    </item>
    <item>
      <title>What is your conference talk walkup song? </title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Tue, 13 Aug 2019 19:08:14 +0000</pubDate>
      <link>https://dev.to/therealdanvega/what-is-your-conference-talk-walkup-song-36kb</link>
      <guid>https://dev.to/therealdanvega/what-is-your-conference-talk-walkup-song-36kb</guid>
      <description>&lt;p&gt;I was at a baseball game yesterday (Go Tribe!)&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5hadhj643i4nuynpj0ai.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F5hadhj643i4nuynpj0ai.png" alt="Indians"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and I remembered a tweet from &lt;/p&gt;
&lt;div class="ltag__user ltag__user__id__38627"&gt;
    &lt;a href="/aspittel" class="ltag__user__link profile-image-link"&gt;
      &lt;div class="ltag__user__pic"&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%2Fuploads%2Fuser%2Fprofile_image%2F38627%2F77a2a5e7-603e-41b4-afcc-f7aff468ae2f.jpg" alt="aspittel image"&gt;
      &lt;/div&gt;
    &lt;/a&gt;
  &lt;div class="ltag__user__content"&gt;
    &lt;h2&gt;
&lt;a class="ltag__user__link" href="/aspittel"&gt;Ali Spittel&lt;/a&gt;Follow
&lt;/h2&gt;
    &lt;div class="ltag__user__summary"&gt;
      &lt;a class="ltag__user__link" href="/aspittel"&gt;Passionate about education, Python, JavaScript, and code art.&lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;
 

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1159987559390482433-328" src="https://platform.twitter.com/embed/Tweet.html?id=1159987559390482433"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1159987559390482433-328');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1159987559390482433&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;I think this is an amazing idea and more conferences should do this. I know that &lt;a href="https://www.vuejs.amsterdam/" rel="noopener noreferrer"&gt;VueJS Amsterdam&lt;/a&gt; does this but I am not aware of any other. This got me thinking about what my walk-up song would be and while I can't narrow it down to 1 here is my shortlist. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/EF0lVn3n12I"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/j5-yKhDd64s"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/2tzSjtuMGOQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;So now the question is... What would your walkup song be? &lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>Learn how to use CSS Grid with a FREE tool CSS Grid Generator</title>
      <dc:creator>Dan Vega</dc:creator>
      <pubDate>Mon, 12 Aug 2019 13:09:19 +0000</pubDate>
      <link>https://dev.to/therealdanvega/learn-how-to-use-css-grid-with-a-free-tool-css-grid-generator-26lm</link>
      <guid>https://dev.to/therealdanvega/learn-how-to-use-css-grid-with-a-free-tool-css-grid-generator-26lm</guid>
      <description>&lt;p&gt;As someone who has been developing web applications for almost 20 years now, I have seen it all. I started in FrontPage, moved to Dreamweaver, nested tables inside of tables and learned how to float and clear fix everything.&lt;/p&gt;

&lt;p&gt;While you won't see any awards for my designs on my bookshelf I am able to create some very nice simple and clean layouts. That said I have never really enjoyed it because it has always been a huge pain in the a$$. I have always felt like I was just hacking away until my layout looked almost like what I had in mind.&lt;/p&gt;

&lt;p&gt;This is why when tools like &lt;a href="https://css-tricks.com/snippets/css/complete-guide-grid/" rel="noopener noreferrer"&gt;CSS Grid&lt;/a&gt; &amp;amp; &lt;a href="https://css-tricks.com/snippets/css/a-guide-to-flexbox/" rel="noopener noreferrer"&gt;Flexbox&lt;/a&gt; came along I was beyond excited about the possibilities of creating clean layouts. I think if you combine these 2 technologies along with just how far JavaScript has come it is what has really got me excited about front end development these days.&lt;/p&gt;

&lt;p&gt;While I have a pretty good understanding of CSS Grid at this point I know it can be a little bit confusing to get started. That is why I am really excited to share with you a new tool that I came across that I really think can help you out if you're trying to understand CSS Grid.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdejgtogde2on4hdl1a8f.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdejgtogde2on4hdl1a8f.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS Grid Generator by Sarah Drasner
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cssgrid-generator.netlify.com/" rel="noopener noreferrer"&gt;CSS Grid Generator&lt;/a&gt; is a free tool created by the super talented &lt;a href="https://twitter.com/sarah_edo" rel="noopener noreferrer"&gt;Sarah Drasner&lt;/a&gt;. It is a visual design tool that allows you to create a basic grid layout and then copy the code that was used to create it. When you first open the tool you will be presented with a default layout but from here you can easily customize the layout to your needs.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frzwgnls7kmv26osi88rq.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frzwgnls7kmv26osi88rq.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS Grid Layout Example
&lt;/h3&gt;

&lt;p&gt;When I am learning something I find the best way to learn is by building something practical with my shiny new toy. In this article, you are going to take a very simple layout and then use the CSS Grid Generator to create the code needed to use in a real project. This is the finished layout with a little bit of styling just so each section is apparent.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fr429t1u1xrz63kn4og85.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fr429t1u1xrz63kn4og85.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that you know what we are aiming for we can start building it out the layout. Start by updating the right hand side to the following.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Columns: 4&lt;/li&gt;
&lt;li&gt;Rows: 3&lt;/li&gt;
&lt;li&gt;Column Gap: 20&lt;/li&gt;
&lt;li&gt;Row Gap: 20&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The gaps allow us to have some margin between our content. I could have just used column gap but I wanted some margin after the header and before the footer so that is what the row gap is doing.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvqejqxt6zk92w2lbcpyx.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fvqejqxt6zk92w2lbcpyx.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next you will want to define the different areas of your application. In the CSS Grid Generator you can click and drag to create an area. You will want the header to span the entire grid, the sidebars to take up one cell, the main content area to span 2 columns and the footer to span 4 columns. If you do everything correctly you should end up with something that looks like this.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Flbgcfx65zlwd7wemo5hj.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Flbgcfx65zlwd7wemo5hj.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is starting to look more like our layout but you still need to define some sizes of different things. You will notice an input box next to each row and column that you can use to set a specific size.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Header: 100px height&lt;/li&gt;
&lt;li&gt;Sidebars: 200px width&lt;/li&gt;
&lt;li&gt;Footer: 50px height&lt;/li&gt;
&lt;/ul&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnshspqx0iq6hcnx7vghb.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fnshspqx0iq6hcnx7vghb.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is starting to look more like the layout we were going for but you might be asking what that &lt;code&gt;1fr&lt;/code&gt; unit is.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Tracks can be defined using any length unit. Grid also introduces an additional length unit to help us create flexible grid tracks. The new fr unit represents a fraction of the available space in the grid container.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The &lt;code&gt;1fr&lt;/code&gt; in 2nd row will tell that area to take up the rest of the available space. If you set the container to &lt;code&gt;100vh&lt;/code&gt; you can then have content that takes up the full page and same goes for the columns.&lt;/p&gt;

&lt;h3&gt;
  
  
  CSS Grid Generated Code
&lt;/h3&gt;

&lt;p&gt;If you look under the columns and row inputs on the right hand side you will see a button that says "Please may I have some code", click it. You should see some generated code that looks something like this. Click the copy button to copy the code and then head over to a text editor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight scss"&gt;&lt;code&gt;&lt;span class="nc"&gt;.parent&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="na"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt; &lt;span class="m"&gt;1fr&lt;/span&gt; &lt;span class="m"&gt;1fr&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="na"&gt;grid-template-rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;1fr&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="na"&gt;grid-column-gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="na"&gt;grid-row-gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nc"&gt;.div1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.div2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.div3&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.div4&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nc"&gt;.div5&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&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;Create a new document &lt;code&gt;simple-layout.htm&lt;/code&gt; and add the following code which will reset the margin and padding for the body.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;"X-UA-Compatible"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"ie=edge"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Simple Layout&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;body&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="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;padding&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="p"&gt;}&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next add in the CSS (the copied code was in SASS but you can pull the divs out)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"en"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;http-equiv=&lt;/span&gt;&lt;span class="s"&gt;"X-UA-Compatible"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"ie=edge"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Simple Layout&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;style&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;body&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="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;padding&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="p"&gt;}&lt;/span&gt;
    &lt;span class="nc"&gt;.parent&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="py"&gt;grid-template-rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="py"&gt;grid-column-gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="py"&gt;grid-row-gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vh&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nc"&gt;.div1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="py"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nc"&gt;.div2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="py"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nc"&gt;.div3&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="py"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nc"&gt;.div4&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="py"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nc"&gt;.div5&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="py"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What the tool gave you was the css needed to create this layout. You will need to add markup needed which by looking at the CSS is just a &lt;code&gt;.parent&lt;/code&gt; with 5 &lt;code&gt;.div&lt;/code&gt; nested. I am adding the text just so you can see each section.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"parent"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"div1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Header
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"div2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Left Sidebar
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"div3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Main Content
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"div4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Right Sidebar
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"div5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      Footer
    &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally add the follow CSS that will just add some padding a background color for &lt;code&gt;.div1&lt;/code&gt; - &lt;code&gt;.div5&lt;/code&gt;&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="nt"&gt;div&lt;/span&gt;&lt;span class="nd"&gt;:not&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;.parent&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&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-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;rgb&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;199&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;199&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;199&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;If you were to run this you would end up with the following.&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fc6hi2mlpjaw67fseytn9.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fc6hi2mlpjaw67fseytn9.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This looks pretty good but you want this to take up the entire browser window. An easy way to fix this is to add &lt;code&gt;height: 100vh&lt;/code&gt; to the &lt;code&gt;.parent&lt;/code&gt; class&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;.parent&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="n"&gt;fr&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-column-gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-row-gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100vh&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;With that, you have the layout you were looking for!&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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frhvltwrph1210jlvmsjn.png" 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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Frhvltwrph1210jlvmsjn.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This tool is meant to help you create a basic layout in CSS Grid really fast. From here it will be up to you to go out and learn more about CSS Grid so that you can start customizing and creating advanced layouts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The user interface of CSS Grid Generator is beautiful, clean and easy to use. I &lt;strong&gt;love&lt;/strong&gt; that the entire project was written in Vue and hosted on &lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt;, 2 of my favorite technologies.&lt;/p&gt;

&lt;p&gt;If you're ever curious how a project like this is built you can pop open the source code and take a look (Thanks Sarah!). There is a nice SVG animation in the upper right hand side that will take you to the &lt;a href="https://github.com/sdras/cssgridgenerator" rel="noopener noreferrer"&gt;Github repository&lt;/a&gt;. I hope you found this tool as useful as I have, as always...&lt;/p&gt;

&lt;p&gt;Happy Coding&lt;br&gt;&lt;br&gt;
Dan&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was first posted on my blog at &lt;a href="https://www.danvega.dev/blog" rel="noopener noreferrer"&gt;https://www.danvega.dev/blog&lt;/a&gt;. If you found this article interesting please consider &lt;a href="https://www.danvega.dev/signup/" rel="noopener noreferrer"&gt;subscribing to my newsletter&lt;/a&gt; or following me on &lt;a href="http://twitter.com/therealdanvega" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>css</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
