<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Vuetify - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Vuetify - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sat, 27 Jun 2026 11:23:54 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/vuetify/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Learn Vuetify in 5 Minutes ]]>
                </title>
                <description>
                    <![CDATA[ By Leanne Rybintsev Welcome to a whistle-stop tour of Vuetify - a popular component library for Vue.js. It allows you to create attractive, accessible apps with 80 elements ready to use from the get-go, plus it gives you the option to customize eleme... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learn-vuetify-in-5-minutes/</link>
                <guid isPermaLink="false">66d46016d1ffc3d3eb89de1e</guid>
                
                    <category>
                        <![CDATA[ Scrimba ]]>
                    </category>
                
                    <category>
                        <![CDATA[ vue ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Vuetify ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 12 Jun 2020 16:38:26 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/06/Screenshot-2020-06-12-at-17.19.31--2-.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Leanne Rybintsev</p>
<p>Welcome to a whistle-stop tour of Vuetify - a popular component library for Vue.js. It allows you to create attractive, accessible apps with 80 elements ready to use from the get-go, plus it gives you the option to customize elements for a bespoke design.</p>
<p>In the next five minutes, I'll you show you the following hot Vuetify elements:</p>
<ul>
<li>Typography</li>
<li>Spacing</li>
<li>Buttons</li>
<li>Navigation</li>
<li>Grid</li>
<li>Card</li>
</ul>
<p>And by the end of this article, you'll feel confident in making stunning apps with just a few lines of code.</p>
<p>While reading, head over to <a target="_blank" href="https://scrimba.com/course/gvuetify?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">Scrimba's 2-hour Vuetify course</a> to find out more and explore the code in the platform's interactive playground. Plus you can test your new skills with some interactive coding challenges. Let's get started!</p>
<h2 id="heading-creating-a-vuetify-object">Creating a Vuetify object</h2>
<p>To use Vuetify, we first pull in Vue and Vuetify from their CDNS. </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
</code></pre>
<p>This allows us to instantiate a Vue application with a Vuetify property and create a new Vuetify object:</p>
<pre><code class="lang-js"><span class="hljs-keyword">new</span> Vue({ 
    <span class="hljs-attr">el</span>: <span class="hljs-string">'#app'</span>,
    <span class="hljs-attr">vuetify</span>: <span class="hljs-keyword">new</span> Vuetify({}),
    <span class="hljs-attr">data</span>: {
        <span class="hljs-attr">message</span>: <span class="hljs-string">'Using Single File Components'</span>
    }
});
</code></pre>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/ckPbepSM?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">Click through</a> to see this in detail. </p>
<h2 id="heading-typography">Typography</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cMqPmeTG?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/uey76nlf4hxjttq9krzh.png" alt="Vuetify typography" width="594" height="287" loading="lazy"></a>
<em>Click the image to go to the cast.</em></p>
<p>Vuetify provides plenty of options for creating stunning typography, from headings of various sizes, to titles, subtitles and body text:</p>
<pre><code class="lang-vue">&lt;h1 class="display-4"&gt;Heading 1&lt;/h1&gt;
&lt;h2 class="display-3"&gt;Heading 2&lt;/h2&gt;
&lt;h3 class="display-2"&gt;Heading 3&lt;/h3&gt;
&lt;h4 class="title"&gt;Title&lt;/h4&gt;
&lt;h5 class="subtitle-1"&gt;Subtitle&lt;/h5&gt;
&lt;p class="body-1"&gt;Body&lt;/p&gt;
</code></pre>
<p>Changing text color and background color is easy with Vuetify, too. For the background color, simply add the name of the required color to the element's class. For text color, just add the color name followed by <code>--text</code>. </p>
<p>This works for around 20 standard colors and can be customized using accompanying classes such as <code>lighten</code> and <code>darken</code>.</p>
<pre><code class="lang-vue">&lt;h1 class="display-4 purple yellow--text text--darken-2"&gt;Heading 1&lt;/h1&gt;
</code></pre>
<p>Vuetify also offers classes to change the font weight and style, as well as truncate and transform text. <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cMqPmeTG?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">Head over to the cast</a> to find out more. </p>
<h2 id="heading-spacing">Spacing</h2>
<p>Anyone who's ever used CSS knows that margins and padding can be tricky. Not with Vuetify! To add and adjust the spacing between elements, simply use classes with the following abbreviations:</p>
<p><code>m</code> = margin
<code>p</code> = padding
<code>t</code> = top
<code>r</code> = right
<code>b</code> = bottom
<code>l</code> = left
<code>x</code> = right + left
<code>y</code> = top + bottom
<code>a</code> = all </p>
<p>Spacing size is adjusted using the numbers 1 to 12, which correspond to four-pixel increments. For example <code>ml-5</code> denotes a left margin of 20 pixels. </p>
<pre><code class="lang-vue">&lt;h3 class="ml-5"&gt;Spacing&lt;/h3&gt;
</code></pre>
<p>Centering elements is also easy with Vuetify. Simply wrap the element in a container that spans the page, then give it a right and left margin of <code>auto</code>:</p>
<pre><code class="lang-vue">&lt;v-row&gt;
     &lt;h3 class="mx-auto"&gt;Spacing&lt;/h3&gt;
&lt;/v-row&gt;
</code></pre>
<p>That's not the end of Vuetify's handy tips and tricks for element spacing. <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cD7pnzSw?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">Click through</a> to the cast to see more!</p>
<h2 id="heading-buttons">Buttons</h2>
<p>Vuetify offers dozens of options for styling buttons, including regular clickable buttons, outline buttons with ready-positioned icons, and icon-only buttons. </p>
<p>Keeping reading to see some of the options available straight out the box, or <a target="_blank" href="https://scrimba.com/p/pP4xZu3/crmrBwtP?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">click through</a> to see how to customize buttons. </p>
<p><strong>Large outline button:</strong></p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/i/uobelihs9l8ab86duimx.png" alt="Large outline button" width="127" height="71" loading="lazy"></p>
<pre><code class="lang-vue">&lt;v-btn large outlined&gt;Submit&lt;/v-btn&gt;
</code></pre>
<p><strong>Button with icon:</strong></p>
<p><img src="https://dev-to-uploads.s3.amazonaws.com/i/zbs74uvuqnyfyrg529yq.png" alt="Button with icon" width="114" height="62" loading="lazy"></p>
<pre><code class="lang-vue">&lt;v-btn tile outlined color="success"&gt;
     &lt;v-icon left&gt;mdi-pencil&lt;/v-icon&gt; Edit
&lt;/v-btn&gt;
</code></pre>
<p><strong>Floating action icon button:</strong>
<img src="https://dev-to-uploads.s3.amazonaws.com/i/39p0zcaeyr8plveu2tjj.png" alt="Floating action button with icon" width="100" height="93" loading="lazy"></p>
<pre><code class="lang-vue">&lt;v-btn class="mx-2" fab dark color="indigo"&gt;
     &lt;v-icon dark&gt;mdi-plus&lt;/v-icon&gt;
&lt;/v-btn&gt;
</code></pre>
<h2 id="heading-navigation">Navigation</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/czkwwQCw?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/z4iz7cjvdttvdk31227f.png" alt="Vuetify navigation bar" width="385" height="180" loading="lazy"></a>
<em>Click the image to go the cast.</em></p>
<p>The two main navigation options available in Vuetify are <code>&lt;v-app-bar&gt;</code> and <code>&lt;v-toolbar&gt;</code>. </p>
<pre><code class="lang-vue">&lt;v-app-bar
     color="deep-purple accent-4"
     dense
     dark
&gt;
</code></pre>
<p>Although the two elements are interchangeable to some extent, <code>&lt;v-app-bar&gt;</code> is designed for use as a site's main navigation and includes features such as scroll animations and a range of props and options. </p>
<p><code>&lt;v-toolbar&gt;</code> is a smaller, more versatile component which is designed to provide functionality to other areas of an app. For instance, it could be used for the basic edit features on a small text editor.</p>
<p>Both navigation elements handle list drop-downs and automatically size navigation icons and buttons. </p>
<h2 id="heading-grid">Grid</h2>
<p>Vuetify has a built-in grid system which makes sizing and positioning elements in an app simpler than ever. The grid is split into 12 columns and has five media breakpoints for handling a variety of screen sizes.</p>
<p>While the default width of an element is 12 columns, it's easy to adjust this by changing the column value. For example, an item with a column value of 6 takes up half the page width. Items can be positioned using the <code>offset</code> property. </p>
<pre><code class="lang-vue">&lt;v-col sm="6" offset-sm="3"&gt;
    &lt;v-card
    class="pa-2"
    outlined
    tile
    &gt;
    Column
    &lt;/v-card&gt;
&lt;/v-col&gt;
</code></pre>
<p>Columns in Vuetify come with pre-set spacing. <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cWKBnPSV?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">Click through</a> to the scrim to see how this affects the element and how to customize it. </p>
<h2 id="heading-card">Card</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cdNW42t8?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/mvxtqa1l2dfze9mu8acv.png" alt="Customised Vuetify card" width="404" height="207" loading="lazy"></a>
<em>Click the card to access the scrim.</em></p>
<p>Adding cards to your app is simple with Vuetify's <code>&lt;v-card&gt;</code> element, which is easily customisable with its four optional nested elements: <code>&lt;v-card-title&gt;</code>, <code>&lt;v-card-text&gt;</code>, <code>&lt;v-card-actions&gt;</code> and <code>&lt;v-list-item-content&gt;</code>. </p>
<p>I've played around with the card provided <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cdNW42t8?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">in the cast</a> to make my own Coffee Card. Why not head over and see where your imagination takes you, too?</p>
<pre><code class="lang-vue"> &lt;v-card class="mx-auto" color="brown" dark &gt;
    &lt;v-card-title&gt;
    &lt;v-icon large left&gt; mdi-coffee&lt;/v-icon&gt;
    &lt;span class="title font-weight-light"&gt;Coffee Card&lt;/span&gt;
    &lt;/v-card-title&gt;

    &lt;v-card-text class="headline font-weight-bold"&gt;"Coffee Rocks!"&lt;/v-card-text&gt;

    &lt;v-card-actions&gt;
    &lt;v-list-item class="grow"&gt;
        &lt;v-list-item-content&gt;
        &lt;v-list-item-title&gt;Miss C Bean&lt;/v-list-item-title&gt;
        &lt;/v-list-item-content&gt;

        &lt;/v-row&gt;
    &lt;/v-list-item&gt;
    &lt;/v-card-actions&gt;
&lt;/v-card&gt;
</code></pre>
<p>That's all for our hyper-speed tour of Vuetify's basic functions. To explore further, head over <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cdNW42t8?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">to the course</a> and check out the Playground.vue file, where you can test out the code and see more of what it can do.</p>
<p>The course also includes a bunch of interactive challenges to put your newfound knowledge to the test and get you well on your way to becoming a Vuetify pro. When you're done there, why not check out <a target="_blank" href="https://scrimba.com/?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_5_minute_article">Scrimba's</a> huge range of other topics to continue your learning journey? </p>
<p>Whatever you choose to do next, happy coding :) </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Want to Learn Vuetify? Here's Our Free 15-Part Course by Gwen Faraday ]]>
                </title>
                <description>
                    <![CDATA[ By Per Harald Borgen If you love building apps in Vue.js but struggle to know where to start with UI design, look no further than Vuetify. It's a UI library containing handcrafted material components which give apps a beautiful finish and professiona... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/want-to-learn-vuetify-heres-our-free-15-part-course-by-gwen-faraday/</link>
                <guid isPermaLink="false">66d8527fb56109a3fff9ddbc</guid>
                
                    <category>
                        <![CDATA[ Scrimba ]]>
                    </category>
                
                    <category>
                        <![CDATA[ vue ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Vuetify ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sat, 23 May 2020 16:02:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/05/Screenshot-2020-05-23-at-17.06.55.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Per Harald Borgen</p>
<p>If you love building apps in Vue.js but struggle to know where to start with UI design, look no further than Vuetify. It's a UI library containing handcrafted material components which give apps a beautiful finish and professional feel.</p>
<h2 id="heading-why-learn-vuetify">Why learn Vuetify?</h2>
<p>Vuetify is the most popular component library for Vue.js, enabling you to create great-looking, accessible apps even if UI design isn't your area. </p>
<p>While the library has over 80 elements ready to use straight out the box, it also allows you to create custom elements, giving your apps a clean yet bespoke feel.</p>
<p>This article takes you through Scrimba's free <a target="_blank" href="https://scrimba.com/course/gvuetify?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">two-hour Vuetify course</a> by Gwen Faraday. The course teaches you all the core skills needed to get started with Vuetify, including:</p>
<ul>
<li>Typography</li>
<li>Spacing</li>
<li>Buttons</li>
<li>Navigation</li>
<li>Grid</li>
<li>Card</li>
</ul>
<p>In the first half, Gwen introduces all the Vuetify elements needed to build a great app. As with all Scrimba courses, you can pause the scrims and explore the code.</p>
<p>The second half lets you get your hands dirty by building a webshop. This puts your new skills to good use and lets you apply your newfound knowledge.</p>
<p>By the end, you'll be fully versed in building professionally-styled apps with Vuetify.</p>
<h2 id="heading-intro-to-the-instructor">Intro to the Instructor</h2>
<p>Gwen Faraday is a software engineer, author, speaker, and &amp; content creator who also runs a Youtube channel, <a target="_blank" href="https://www.youtube.com/channel/UCxA99Yr6P_tZF9_BgtMGAWA/featured">the Faraday Academy</a>, where she teaches a wide range of subjects including Vue.js and Vuetify. This makes her the perfect teacher to take you through this learning journey and bring your Vuetify skills to the next level.</p>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>To learn the most from this tutorial, you'll need a decent understanding of HTML, CSS, Javascript and Vue.js. If you're not there yet, check out Scrimba's great free courses to get you up to speed:</p>
<ul>
<li><a target="_blank" href="https://scrimba.com/course/ghtmlcss?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">HTML and CSS</a></li>
<li><a target="_blank" href="https://scrimba.com/course/gintrotojavascript?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Javascript</a></li>
<li><a target="_blank" href="https://scrimba.com/course/glearnvue?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Vue.js</a></li>
</ul>
<p>If you’re ready to hit the ground running with Vuetify, let’s get into it!</p>
<h2 id="heading-intro-to-vuetify">Intro to Vuetify</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cEKyEkuB?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">In the first cast</a>, Gwen introduces us to Vuetify and shares the two Github repositories where she has stored all the code, <a target="_blank" href="https://github.com/gwenf/vuetify-basic-components">basic-components</a> and <a target="_blank" href="https://github.com/gwenf/vuetify-responsive">vuetify-responsive</a>. This allows us to download the code and try it out for ourselves.</p>
<h2 id="heading-what-is-material-design">What is Material Design?</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/c4PDDZtg?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Next up</a>, we learn about Material Design, a standard developed by Google for implementing accessible, user-friendly interfaces.</p>
<p>The Material Standard provides a set of rules for the most common elements found on web pages including buttons, text, navigation and more advanced features such as movement and elevation.</p>
<p>Vuetify takes the hard work out of implementing this standard by providing a bunch of ready-made compliant UI elements which we can add to our Vue.js application straight out the box.</p>
<h2 id="heading-first-look-at-vuetify-code">First Look at Vuetify Code</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/ckPbepSM?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">In the next cast</a>, Gwen gives us our first look at Vuetify code by instantiating a Vue application, adding a Vuetify property and creating a new Vuetify object:</p>
<pre><code class="lang-js"><span class="hljs-keyword">new</span> Vue({
    <span class="hljs-attr">el</span>: <span class="hljs-string">"#app"</span>,
    <span class="hljs-attr">vuetify</span>: <span class="hljs-keyword">new</span> Vuetify({}),
    <span class="hljs-attr">data</span>: {
        <span class="hljs-attr">message</span>: <span class="hljs-string">"Using Single File Components"</span>,
    },
});
</code></pre>
<p>Next, Gwen shows us the <code>&lt;v-app&gt;</code> element, which is the root component of all Vuetify elements (Vuetify components must fall within <code>&lt;v-app&gt;</code>):</p>
<pre><code class="lang-vue">&lt;v-app&gt;
     &lt;v-content&gt;
          &lt;playground&gt;&lt;/playground&gt;
     &lt;/v-content&gt;
&lt;/v-app&gt;
</code></pre>
<h2 id="heading-typography">Typography</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cMqPmeTG?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/lrmuhh5orzx32c4jdlsd.png" alt="Vuetify typography" width="670" height="541" loading="lazy"></a>
<em>Click the image to access the course.</em></p>
<p>In <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cMqPmeTG?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">the next scrim</a>, we see some of the options Vuetify offers to handle typography, including headings, titles, subtitles and body text. We also see how to change text color and background color.</p>
<pre><code class="lang-vue">&lt;v-card-text&gt;
     &lt;h1 class="display-4 purple yellow--text"&gt;Heading 1&lt;/h1&gt;
     &lt;h2 class="display-3"&gt;Heading 2&lt;/h2&gt;
     &lt;h3 class="display-2"&gt;Heading 3&lt;/h3&gt;
     &lt;h4 class="title"&gt;Title&lt;/h4&gt;
     &lt;h5 class="subtitle-1"&gt;Subtitle&lt;/h5&gt;
     &lt;p class="body-1"&gt;Body&lt;/p&gt;
&lt;/v-card-text&gt;
</code></pre>
<p>Finally, we see how to use Vuetify classes to adjust font weight and style:</p>
<pre><code class="lang-vue">&lt;h1 class="font-italic font-weight-light"&gt;Heading 1&lt;/h1&gt;
</code></pre>
<p><strong>Note:</strong> Vuetify classes override any other styles that the browser applies to HTML tags.</p>
<h2 id="heading-spacing">Spacing</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cD7pnzSw?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Next up</a>, we explore some of the spacing classes in Vuetify, which allow us to add margins and padding. We also see how to change spacing size.</p>
<pre><code class="lang-vue">&lt;h3 class="ml-5"&gt;Spacing&lt;/h3&gt;
</code></pre>
<p>Best of all, Gwen also shows us how Vuetify classes can help with that holy grail of app styling - centering an element! Click through to the course to find out more.</p>
<h2 id="heading-buttons">Buttons</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/crmrBwtP?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/ollkzqisck44bqdnc1r9.png" alt="Vuetify buttons" width="363" height="427" loading="lazy"></a>
<em>Click the image to access the course.</em></p>
<p>In the <a target="_blank" href="https://scrimba.com/p/pP4xZu3/crmrBwtP?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">next scrim</a>, we look at some of the options available with Vuetify's button component, including buttons with text, icons or both.</p>
<pre><code class="lang-vue">&lt;v-btn large block&gt;Submit&lt;/v-btn&gt;
</code></pre>
<p>Lastly, we look at how to build custom buttons using classes from earlier.</p>
<pre><code class="lang-vue">&lt;button v-ripple class="elevation-2 py-2 px-4"&gt;
     Submit
&lt;/button&gt;
</code></pre>
<h2 id="heading-navigation">Navigation</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/czkwwQCw?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/je40l0odaw1l68pi8a71.png" alt="Vuetify navigation" width="380" height="176" loading="lazy"></a>
<em>Click the image to access the course.</em></p>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/czkwwQCw?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Next up</a>, we look at the two main navigation options available in Vuetify,<code>&lt;v-app-bar&gt;</code> and <code>&lt;v-toolbar&gt;</code>. Both navigation elements provide automatic button and icon sizing, navigation icons and the ability to handle list dropdowns.</p>
<pre><code class="lang-vue">&lt;v-toolbar color="deep-purple accent-4" dense dark&gt;
    &lt;v-app-bar-nav-icon&gt;&lt;/v-app-bar-nav-icon&gt;
&lt;v-toolbar-title&gt;App Title&lt;/v-toolbar-title&gt;&lt;/v-toolbar&gt;
</code></pre>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/czkwwQCw?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Click through</a> to see all this in action!</p>
<h2 id="heading-grid">Grid</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cWKBnPSV?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/hddtxtqh91j6z9gjb1up.png" alt="Vuetify grid" width="431" height="220" loading="lazy"></a>
<em>Click the image to access the course.</em></p>
<p>In <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cWKBnPSV?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">the next scrim</a>, Gwen takes us through Vuetify's grid system, which is split into 12 columns, with five built-in media breakpoints for handling different screen sizes.</p>
<pre><code class="lang-vue">&lt;v-row&gt;
    &lt;v-col cols="12" sm="6"&gt;
        &lt;v-card
        class="pa-2"
        outlined
        tile
        &gt;
        Column
        &lt;/v-card&gt;
    &lt;/v-col&gt;
&lt;/v-row&gt;
</code></pre>
<h2 id="heading-card">Card</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cdNW42t8?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/dbh0863c4we6t4sncpf2.png" alt="Vuetify card" width="383" height="258" loading="lazy"></a>
<em>Click the image to access the course.</em></p>
<p>In <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cdNW42t8?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">this cast</a>, Gwen explains that Vuetify uses a <code>&lt;v-card&gt;</code> component as the wrapper for any UI card. This component can take props, classes and slots and has custom events, allowing for neat, well-aligned cards in any use case.</p>
<pre><code class="lang-vue"> &lt;v-card-title&gt;
    &lt;v-icon
        large
        left
    &gt;
        mdi-twitter
    &lt;/v-icon&gt;
    &lt;/v-card-title&gt;

    &lt;v-card-text class="headline font-weight-bold"&gt;
    "Vue Rocks!"
    &lt;/v-card-text&gt;

&lt;/v-card&gt;
</code></pre>
<p>Gwen also introduces us to the <code>&lt;v-spacer&gt;</code> element, which lets us easily add whitespace between elements.</p>
<p>Finally, we check out the <code>Playground.vue</code> file - a space for us to explore the features of Vuetify Gwen has shown us so far. Head over <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cdNW42t8?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">to the course</a> to try it out for yourself and see what Vuetify can do.</p>
<h2 id="heading-store-navigation">Store Navigation</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cMZMQbu9?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/tc2s63qss1f3tc7vyyhu.png" alt="Vuetify web store navigation" width="445" height="234" loading="lazy"></a>
<em>Click the image to access the course.</em></p>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cMZMQbu9?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Next</a>, it's time to start building our store application. Gwen starts us off by adding a navigation bar including responsiveness and a drawer menu. We also run through some options for styling, including icons and a dense menu.</p>
<h2 id="heading-home-page">Home Page</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/c33vv6fz?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Next up</a>, it's time to add a home page. Gwen adds the header and a footer and then sets us the challenge of coding the mid-section using the mock-ups provided. Head over <a target="_blank" href="https://scrimba.com/p/pP4xZu3/c33vv6fz?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">to the screencast</a> to test out your new Vuetify skills and compare your work to Gwen's solution.</p>
<p>To finish off, Gwen shows us the <code>&lt;v-snackbar&gt;</code> element, which can be used to notify a user when a product has been added to the cart.</p>
<pre><code class="lang-vue">&lt;v-snackbar
    v-model="$store.state.snackbar.show"
    :multi-line="true"
    :right="true"
    :top="true"
    :timeout="6000"
    :color="$store.state.snackbar.variant"
&gt;
    {{ $store.state.snackbar.message }}
    &lt;v-btn
    dark
    text
    @click="$store.commit('updateSnackbar', { show: false })"
    &gt;
    Close
    &lt;/v-btn&gt;
&lt;/v-snackbar&gt;
</code></pre>
<h2 id="heading-store-page">Store Page</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cvdrn6Ar?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/m1d909j9guwo0q1da9jj.png" alt="Vuetify web store page" width="970" height="531" loading="lazy"></a>
<em>Click the image to access the course.</em></p>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/cvdrn6Ar?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">In the next Scrim</a> we build out our store page using Vuetify grid elements. First up, we add product cards by reusing the cards we built for our home page. Next, Gwen challenges us to build out a sidebar with the <code>&lt;v-sheet&gt;</code> and <code>&lt;v-expansion-panels&gt;</code> elements.</p>
<p>Head over <a target="_blank" href="https://scrimba.com/p/pP4xZu3/cvdrn6Ar?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">to the cast</a> to give the challenge a try.</p>
<h2 id="heading-cart-page">Cart Page</h2>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/caZyp7um?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article"><img src="https://dev-to-uploads.s3.amazonaws.com/i/drbsnxpy6p95kzj3aph5.png" alt="Vuetify cart page" width="414" height="521" loading="lazy"></a>
<em>Click the image to access the course.</em></p>
<p><a target="_blank" href="https://scrimba.com/p/pP4xZu3/caZyp7um?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Next up</a>, we add a cart page to our app. Once again, Gwen sets us the challenge of coding out the page as per her mock-ups, which is great practice for real-world coding and flexes the muscle memory needed to become a Vuetify wizard.</p>
<p>Click through to give the challenge your best shot before comparing your work with Gwen's final code. Don't forget, you can always look back at the previous scrims or check out the Vuetify docs if you're having trouble.</p>
<h2 id="heading-checkout-screen">Checkout Screen</h2>
<p>In the final code scrim, we build a simple checkout flow using the <code>&lt;v-stepper&gt;</code> element.</p>
<pre><code class="lang-vue">&lt;v-stepper-header&gt;
    &lt;v-stepper-step
        step="1"
        :complete="step &gt; 1"
    /&gt;
    &lt;v-divider /&gt;
    &lt;v-stepper-step
        step="2"
        :complete="step &gt; 2"
    /&gt;
    &lt;v-divider /&gt;
    &lt;v-stepper-step
        step="3"
    /&gt;
    &lt;/v-stepper-header&gt;
</code></pre>
<p>To finish the course, Gwen points out that there are a few features in the mockups which we haven't covered and encourages us to have a go at coding them ourselves using Scrimba's interactive interface.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>A huge well done for completing the course! I hope you've found it useful and now have the confidence to build stunning apps using Vuetify. Why not continue your learning journey by checking out the huge range of other topics available over at <a target="_blank" href="https://scrimba.com/?utm_source=dev.to&amp;utm_medium=referral&amp;utm_campaign=gvuetify_launch_article">Scrimba</a>?</p>
<p>Wherever you go next, happy coding :)</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/rJIRv-_oYnA" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
