<?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>Forem: Saurav  Kanchan</title>
    <description>The latest articles on Forem by Saurav  Kanchan (@sauravkanchan).</description>
    <link>https://forem.com/sauravkanchan</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%2F392918%2Fb82ad228-fc22-4581-bce0-8e5a157f475b.jpeg</url>
      <title>Forem: Saurav  Kanchan</title>
      <link>https://forem.com/sauravkanchan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sauravkanchan"/>
    <language>en</language>
    <item>
      <title>Svelte Bootstrap with Material Design</title>
      <dc:creator>Saurav  Kanchan</dc:creator>
      <pubDate>Wed, 27 May 2020 06:53:26 +0000</pubDate>
      <link>https://forem.com/sauravkanchan/svelte-bootstrap-with-material-design-1j99</link>
      <guid>https://forem.com/sauravkanchan/svelte-bootstrap-with-material-design-1j99</guid>
      <description>&lt;p&gt;This project is based on the latest &lt;strong&gt;Bootstrap 4&lt;/strong&gt; and &lt;strong&gt;Svelte 3&lt;/strong&gt;. Absolutely &lt;strong&gt;no jQuery&lt;/strong&gt;. It is inspired by &lt;a href="https://github.com/mdbootstrap/React-Bootstrap-with-Material-Design"&gt;mdbreact&lt;/a&gt;. This blog post will be about how to install it and use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Install the package
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i mdbsvelte
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Add CSS
&lt;/h3&gt;

&lt;p&gt;This package does not contain any CSS you need to add in your project manually &lt;/p&gt;

&lt;p&gt;Add in your HTML layout:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Font Awesome --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://use.fontawesome.com/releases/v5.8.2/css/all.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Google Fonts --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&amp;amp;display=swap"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Bootstrap core CSS --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Material Design Bootstrap --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.16.0/css/mdb.min.css"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;or add it your svelte app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;svelte:head&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Font Awesome --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://use.fontawesome.com/releases/v5.8.2/css/all.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Google Fonts --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://fonts.googleapis.com/css?family=Roboto:300,400,500,700&amp;amp;display=swap"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Bootstrap core CSS --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.4.1/css/bootstrap.min.css"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Material Design Bootstrap --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://cdnjs.cloudflare.com/ajax/libs/mdbootstrap/4.16.0/css/mdb.min.css"&lt;/span&gt; &lt;span class="na"&gt;rel=&lt;/span&gt;&lt;span class="s"&gt;"stylesheet"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/svelte:head&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;MDBBtn&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mdbsvelte&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;MDBBtn&amp;gt;&lt;/span&gt;Default&lt;span class="nt"&gt;&amp;lt;/MDBBtn&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;For server-side side rendering (Sapper). you need to import from the component source directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;MDBBtn&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mdbsvelte/src/MDBBtn.svelte&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Components Implemented
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/layout--containers"&gt;Containers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/layout--grid"&gt;Grid&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--alerts"&gt;Alert&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--buttons"&gt;Button&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--buttons-groups"&gt;Button Group&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--cards"&gt;Card&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--dropdowns"&gt;Dropdown&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--jumbotron"&gt;Jumbotron&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--list-groups"&gt;List Groups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--badges"&gt;Badges&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--spinner"&gt;Spinner&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--pagination"&gt;Pagination&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/components--progress"&gt;Progress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/navigation--navbar"&gt;Navbar&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/navigation--footer"&gt;Footer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/navigation--navs"&gt;Navs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/navigation--breadcrumb"&gt;Breadcrumbs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/forms--basic-examples"&gt;Forms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/forms--input-groups"&gt;Input Groups&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/tables--basic-examples"&gt;Tables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/tables--data-tables"&gt;Data Tables&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/modals--basic-examples"&gt;Modals&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/charts--installation"&gt;Charts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/css--masks"&gt;Masks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/?path=/story/content--icons-list"&gt;Icons&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9hT7Dof1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/d10lrh4fln9tw0cptzbv.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9hT7Dof1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/d10lrh4fln9tw0cptzbv.gif" alt="demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Detailed documentation about all the components can be found in &lt;a href="https://saurav.tech/mdbsvelte/"&gt;saurav.tech/mdbsvelte&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Charts
&lt;/h2&gt;

&lt;p&gt;mdbreact includes chart.js by default, but mdbsvelte has kept chart.js package as optional. I made a &lt;a href="https://github.com/SauravKanchan/svelte-chartjs"&gt;svelte wrapper for chart.js&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i svelte-chartjs
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Usage
&lt;/h3&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
  &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Line&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;svelte-chartjs/src/Line.svelte&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;Line&lt;/span&gt; &lt;span class="na"&gt;data=&lt;/span&gt;&lt;span class="s"&gt;{...}&lt;/span&gt; &lt;span class="na"&gt;options=&lt;/span&gt;&lt;span class="s"&gt;{...}&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;&lt;code&gt;options&lt;/code&gt; prop is optional. Expected data format is&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt; &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;labels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[],&lt;/span&gt;
    &lt;span class="na"&gt;datasets&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;span class="na"&gt;values&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;span class="na"&gt;yMarkers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{},&lt;/span&gt;
    &lt;span class="na"&gt;yRegions&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;h4&gt;
  
  
  Cutom Size
&lt;/h4&gt;

&lt;p&gt;In order for Chart.js to obey the custom size you need to set &lt;code&gt;maintainAspectRatio&lt;/code&gt; to false, example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;Bar&lt;/span&gt;
  &lt;span class="na"&gt;data=&lt;/span&gt;&lt;span class="s"&gt;{data}&lt;/span&gt;
  &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;{100}&lt;/span&gt;
  &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;{50}&lt;/span&gt;
  &lt;span class="na"&gt;options=&lt;/span&gt;&lt;span class="s"&gt;{{&lt;/span&gt; &lt;span class="na"&gt;maintainAspectRatio:&lt;/span&gt; &lt;span class="na"&gt;false&lt;/span&gt; &lt;span class="err"&gt;}}&lt;/span&gt;
&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1&gt;
  
  
  Admin Dashboard
&lt;/h1&gt;

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

&lt;p&gt;I also made and Admin Dashboard using mdbsvelte. You can find live version &lt;a href="https://mdbsvelte.netlify.app/"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Important Links:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/SauravKanchan/mdbsvelte"&gt;MDBSvelte Github Repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://saurav.tech/mdbsvelte/"&gt;MDBSvelte Documentaion&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SauravKanchan/mdbsvelte-dashboard"&gt;MDBSvelte Dashboard repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mdbsvelte.netlify.app/"&gt;MDBSvelte Dashboard Live Demo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/SauravKanchan/svelte-chartjs"&gt;svelte-chartjs Repo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>svelte</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
