<?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" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Templarian]]></title><description><![CDATA[design.develop.deploy[.drink]]]></description><link>http://templarian.com/</link><image><url>http://templarian.com/favicon.png</url><title>Templarian</title><link>http://templarian.com/</link></image><generator>Ghost 1.23</generator><lastBuildDate>Fri, 18 Jun 2021 06:29:35 GMT</lastBuildDate><atom:link href="http://templarian.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[NodeJS SVG to Animated Gif]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Needed an to take an SVG and individually grab frames of the same SVG and place them into an animated gif. This lib simplifies it to <code>await gif.addFrame(svgString, delay)</code>.</p>
<p><img src="http://templarian.com/content/images/2020/02/img-min--1--1.gif" alt="img-min--1--1"></p>
<p>The <code>SvgGif</code> util below simplified the use of <code>gif-encoder</code>, <code>convert-svg-to-png</code>, and <code>png-js</code>.</p>
<pre><code class="language-javascript">const fs = require('fs');
const GifEncoder = require(</code></pre></div>]]></description><link>http://templarian.com/2020/02/13/svg-to-animated-gif/</link><guid isPermaLink="false">5e44ea48d3fc436b88b1450c</guid><category><![CDATA[Code]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Thu, 13 Feb 2020 06:34:44 GMT</pubDate><media:content url="http://templarian.com/content/images/2020/02/img-min--1-.gif" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2020/02/img-min--1-.gif" alt="NodeJS SVG to Animated Gif"><p>Needed an to take an SVG and individually grab frames of the same SVG and place them into an animated gif. This lib simplifies it to <code>await gif.addFrame(svgString, delay)</code>.</p>
<p><img src="http://templarian.com/content/images/2020/02/img-min--1--1.gif" alt="NodeJS SVG to Animated Gif"></p>
<p>The <code>SvgGif</code> util below simplified the use of <code>gif-encoder</code>, <code>convert-svg-to-png</code>, and <code>png-js</code>.</p>
<pre><code class="language-javascript">const fs = require('fs');
const GifEncoder = require('gif-encoder');
const { convert } = require('convert-svg-to-png');
const Png = require('png-js');

function decode(data) {
    return new Promise((resolve) =&gt; {
        new Png(data).decode((pixels) =&gt; {
            resolve(pixels);
        });
    });
}

class SvgGif {
    constructor({ width, height, fileName = 'img.gif', repeat = 0 }) {
        // Create GIF
        this.gif = new GifEncoder(width, height);
        this.gif.setRepeat(0);
        this.gif.on('error', (err) =&gt; console.log(err));

        // Collect output
        const file = fs.createWriteStream('img.gif');
        this.gif.pipe(file);
        this.gif.writeHeader();
    }

    async addFrame(svg, delay = 1000) {
        this.gif.setDelay(delay);
        const data = await convert(svg);
        const pixels = await decode(data);
        this.gif.addFrame(pixels);
    }

    finish() {
        this.gif.finish();
    }
}

module.exports = SvgGif;
</code></pre>
<p>Example usage:</p>
<pre><code class="language-javascript">const SvgGif = require('./SvgGif');

const width = 1280;
const height = 720;

var svg = `
    ... place full svg file contents here ...
`;

(async () =&gt; {

    const gif = new SvgGif({
        width,
        height,
        fileName: 'img.gif'
    });

    console.log(`Generating...`);
    
    // Render 1 frame for 1 second
    await gif.addFrame(svg, 1000);
    
    // Modify SVG here and render frame
    await gif.addFrame(svg, 1000);
    
    // Done
    gif.finish();
    console.log(`Done.`);
})();
</code></pre>
</div>]]></content:encoded></item><item><title><![CDATA[LWC and GitHub Actions / Pages]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Sharing what you create with <a href="https://lwc.dev">lwc.dev</a> can be as easy as adding a GitHub Action to deploy to GitHub Pages.</p>
<ul>
<li><strong>GitHub Pages</strong> are static pages hosted at <code>user.github.io/</code></li>
<li>These static files live in your <code>github.com/user/user.github.io</code> repo.
<ul>
<li>Create a blank repo with this</li></ul></li></ul></div>]]></description><link>http://templarian.com/2019/09/29/lwc-and-github-actions-pages/</link><guid isPermaLink="false">5d914977d3fc436b88b144f4</guid><category><![CDATA[Code]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Mon, 30 Sep 2019 00:19:43 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Sharing what you create with <a href="https://lwc.dev">lwc.dev</a> can be as easy as adding a GitHub Action to deploy to GitHub Pages.</p>
<ul>
<li><strong>GitHub Pages</strong> are static pages hosted at <code>user.github.io/</code></li>
<li>These static files live in your <code>github.com/user/user.github.io</code> repo.
<ul>
<li>Create a blank repo with this name if it doesn't exist.</li>
</ul>
</li>
<li><strong>GitHub Actions</strong> are <code>.yml</code> files in the <code>.github/workflow/file.yml</code> directory of your project. These can subscribe to events, like a user pushing to the <code>master</code> branch, and then spin up a docker container to do anything.</li>
</ul>
<p>The script below is going to do a few things.</p>
<ul>
<li>Checkout your projects files</li>
<li><code>npm install</code></li>
<li><code>npm run build</code> (build LWC application to <code>/dist</code>)</li>
<li>Clone our <code>user.github.io</code> repo.</li>
<li>Copy <code>/dist/*</code> to a folder in the <code>user.github.io/</code> folder.</li>
<li>(optional, we need non-absolute paths in <code>index.html</code>, so remove <code>/</code> at the start of urls)</li>
<li>Git Add + Commit + Push to <code>user.github.io</code>.</li>
</ul>
<p>The script will also need a few secrets added. Once a secret is set in the repo settings tab it becomes readonly.</p>
<ul>
<li><code>GIT_USER</code> - Your username or bot account</li>
<li><code>GIT_TOKEN</code> - <a href="https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line">Personal Token</a> (treat this like a password!)</li>
<li><code>GIT_EMAIL</code> - Used for commit.</li>
<li><code>GIT_NAME</code> - Your name or a &quot;Bot&quot;</li>
</ul>
<blockquote>
<p>Secrets are also <strong>removed</strong> from logs. For instance if you don't want your email or name in the logs, save them as secrets!<br>
You can use any user as long as they have <em>write</em> access to the repository.</p>
</blockquote>
<pre><code class="language-yaml">name: CD

on:
  push:
    branches:
    - master

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v1
    - name: Checkout
      uses: actions/setup-node@v1
      with:
        node-version: 10.x
    - name: npm install, build, and deploy
      run: |
        npm install
        npm run build
        git clone https://${{ secrets.GIT_USER }}:${{ secrets.GIT_TOKEN }}@github.com/Templarian/templarian.github.io
        cp -rf dist/. templarian.github.io/lwc-ui/
        cd templarian.github.io
        git config --global user.email &quot;${{ secrets.GIT_EMAIL }}&quot;
        git config --global user.name &quot;${{ secrets.GIT_NAME }}&quot;
        sed -i 's/&quot;\//&quot;/g' lwc-ui/index.html
        git add .
        git commit -m &quot;Deploy lwc-ui&quot;
        git push
</code></pre>
<p>In the above script replace <code>templarian</code> with the name of your user. The secret <code>GIT_USER</code> could be used here, but it's important to illustrate that another user with access could be used. Such as a bot account.</p>
<p>Similar GitHub Actions can be used to sync files between repositories. You can also parse the commit message and only build when a certain word is found.</p>
<ul>
<li><a href="https://github.com/Templarian/lwc-ui">lwc-ui</a> uses this script.
<ul>
<li>This deploys to <a href="https://templarian.github.io/lwc-ui/">https://templarian.github.io/lwc-ui/</a></li>
</ul>
</li>
</ul>
</div>]]></content:encoded></item><item><title><![CDATA[LWC Create Component]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Short post for a very easy to use script that creates components for <a href="https://lwc.dev">Lightning Web Component</a>. Already saved me a lot of time wiring up presentation only components.</p>
<pre><code class="language-bash">npx lwc-component
</code></pre>
<p><img src="http://templarian.com/content/images/2019/09/lwc-component.PNG" alt="lwc-component"></p>
<blockquote>
<p>You will be prompted to select a namespace from a list if more than one is found in your <code>src/</code></p></blockquote></div>]]></description><link>http://templarian.com/2019/09/21/create-lwc-component/</link><guid isPermaLink="false">5d85bb80d3fc436b88b144ec</guid><category><![CDATA[Code]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Sat, 21 Sep 2019 06:00:15 GMT</pubDate><media:content url="http://templarian.com/content/images/2019/09/lwc-component-1.PNG" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2019/09/lwc-component-1.PNG" alt="LWC Create Component"><p>Short post for a very easy to use script that creates components for <a href="https://lwc.dev">Lightning Web Component</a>. Already saved me a lot of time wiring up presentation only components.</p>
<pre><code class="language-bash">npx lwc-component
</code></pre>
<p><img src="http://templarian.com/content/images/2019/09/lwc-component.PNG" alt="LWC Create Component"></p>
<blockquote>
<p>You will be prompted to select a namespace from a list if more than one is found in your <code>src/modules</code> folder.</p>
</blockquote>
<p>Open Source: <a href="https://github.com/Templarian/lwc-component">https://github.com/Templarian/lwc-component</a><br>
License: MIT</p>
</div>]]></content:encoded></item><item><title><![CDATA[Debug LWC Jest Tests with VS Code]]></title><description><![CDATA[Debug Lightning web components Jest unit tests with Visual Studio Code.]]></description><link>http://templarian.com/2019/06/23/debug-lwc-jest-tests-with-vs-code/</link><guid isPermaLink="false">5d124637d3fc436b88b144da</guid><category><![CDATA[Code]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Sun, 23 Jun 2019 16:06:00 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>It's as easy as adding a <code>launch.json</code> in the <code>.vscode</code> folder.</p>
<pre><code class="language-js">{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    &quot;version&quot;: &quot;0.2.0&quot;,
    &quot;configurations&quot;: [
      {
        &quot;type&quot;: &quot;node&quot;,
        &quot;request&quot;: &quot;launch&quot;,
        &quot;name&quot;: &quot;Jest Tests&quot;,
        &quot;program&quot;: &quot;${workspaceRoot}/node_modules/.bin/jest&quot;,
        &quot;cwd&quot;: &quot;${workspaceRoot}&quot;,
        &quot;args&quot;: [&quot;-i&quot;, &quot;--runInBand&quot;, &quot;${relativeFile}&quot;, &quot;--no-cache&quot;]
      }
    ]
  }
  
</code></pre>
<p>On the left select the debug menu, and the play while viewing the <code>.spec.js</code> file you wish to debug. Be sure to place a breakpoint first.</p>
</div>]]></content:encoded></item><item><title><![CDATA[MDI Light v0.2.63]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Around 2 years ago I got the idea of making an alternative to <a href="https://materialdesignicons.com">MDI</a> that favored a slightly lighter style with the same consistent design. Unfortunately it always sat second to all of my other open source efforts (mainly MDI).</p>
<p><img src="http://templarian.com/content/images/2018/12/mdipreview.png" alt="MDI Light Preview"></p>
<ul>
<li><a href="https://cdn.materialdesignicons.com/light/0.2.63">Preview on the CDN</a></li>
</ul>
<p>Now with the effort of the</p></div>]]></description><link>http://templarian.com/2018/12/09/material-design-icons-light-0-2-63/</link><guid isPermaLink="false">5c0deb252f4d834399549666</guid><category><![CDATA[Icons]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Mon, 10 Dec 2018 04:38:35 GMT</pubDate><media:content url="http://templarian.com/content/images/2018/12/mdilight0263.png" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2018/12/mdilight0263.png" alt="MDI Light v0.2.63"><p>Around 2 years ago I got the idea of making an alternative to <a href="https://materialdesignicons.com">MDI</a> that favored a slightly lighter style with the same consistent design. Unfortunately it always sat second to all of my other open source efforts (mainly MDI).</p>
<p><img src="http://templarian.com/content/images/2018/12/mdipreview.png" alt="MDI Light v0.2.63"></p>
<ul>
<li><a href="https://cdn.materialdesignicons.com/light/0.2.63">Preview on the CDN</a></li>
</ul>
<p>Now with the effort of the MDI contributor team we're working to make MDI Light a first class icon set! This will mean regular updates and improvements from the community.</p>
<ul>
<li>Managed by the same awesome team as MDI
<ul>
<li><a href="https://github.com/Templarian/MaterialDesignLight">MaterialDesignLight</a></li>
</ul>
</li>
<li>Similar structured NPM Packages as MDI</li>
<li><a href="https://dev.materialdesignicons.com/history/light">View History of Changes</a></li>
</ul>
<p>The only real difference is that for an icon to exist in MDI Light it must first exist in MDI. The team views this as a way to ensure MDI gets icons first and that we can perfectly map codepoints in the font between the two.</p>
<h2 id="npm">NPM</h2>
<ul>
<li><code>npm i @mdi/light-font</code> | <a href="https://www.npmjs.com/package/@mdi/light-svg">NPM</a> | <a href="https://github.com/Templarian/MaterialDesignLight-Webfont">GitHub</a></li>
<li><code>npm i @mdi/light-svg</code> | <a href="https://www.npmjs.com/package/@mdi/light-svg">NPM</a> <a href="https://github.com/Templarian/MaterialDesignLight-SVG">GitHub</a> |</li>
<li><code>npm i @mdi/light-js</code> | <a href="https://www.npmjs.com/package/@mdi/light-js">NPM</a> | <a href="https://github.com/Templarian/MaterialDesignLight-JS">GitHub</a></li>
<li><code>npm i @mdi/react</code> - Same react library works great for MDI Light.</li>
</ul>
<h2 id="future">Future</h2>
<p>MDI Light is a side project for our team, but over the next year we're going to quickly add icons to ensure it's a great alternative for everyone.</p>
<p>Everything will live under the <a href="https://www.npmjs.com/org/mdi">@mdi</a> organization on NPM.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Update to @mdi/react v1.1.0]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Spent this Saturday going through a large backlog of Open Source tasks. One of them is fixing a bug in <code>@mdi/react</code>.</p>
<p><a href="https://www.npmjs.com/package/@mdi/react">View @mdi/react on NPM</a></p>
<p>This library is used by ReactJS developers to quickly render icon path data with a lot of nice helper props.</p>
<ul>
<li>Fixed a bug</li></ul></div>]]></description><link>http://templarian.com/2018/10/20/update-to-mdi-react-1-1-0/</link><guid isPermaLink="false">5bcbb42e2f4d83439954965c</guid><category><![CDATA[Code]]></category><category><![CDATA[Icons]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Sat, 20 Oct 2018 23:10:37 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Spent this Saturday going through a large backlog of Open Source tasks. One of them is fixing a bug in <code>@mdi/react</code>.</p>
<p><a href="https://www.npmjs.com/package/@mdi/react">View @mdi/react on NPM</a></p>
<p>This library is used by ReactJS developers to quickly render icon path data with a lot of nice helper props.</p>
<ul>
<li>Fixed a bug with <code>horizontal</code> and <code>vertical</code> being ignored.</li>
<li>Added support for <code>spin</code> prop that allows a negative value.
<ul>
<li>Negatives values will rotate counterclockwise -X seconds.</li>
<li>Positive values rotate clockwise.</li>
<li>Still defaults to <code>2</code> seconds rotation speed clockwise for <code>true</code>.</li>
</ul>
</li>
<li>Fixed a edge case nesting <code>horizontal</code> and <code>spin</code> in a <code>stack</code>. I doubt anyone ran into this since this was also broken by the first bug.</li>
</ul>
<pre><code class="language-jsx">&lt;Icon path={mdiLoading} spin={-2}/&gt;
</code></pre>
<p>This component should be considered feature complete now. This means all new code changes will be to optimize the Unit Tests and ensure the outputted markup is as optimized as possible.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Material Design Icons v3.0.39]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://materialdesignicons.com">Material Design Icons</a> released with <strong><code>145</code> icons</strong> and updated several older icons. The team is very excited to finally have the 3.0 release out only 1 month after the <code>2.8.94</code> release.</p>
<p>Our goal was to fix some of the outstanding issues and add a lot of the</p></div>]]></description><link>http://templarian.com/2018/10/20/material-design-icons-3-0-39/</link><guid isPermaLink="false">5bcb74232f4d834399549658</guid><category><![CDATA[Icons]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Sat, 20 Oct 2018 18:41:04 GMT</pubDate><media:content url="http://templarian.com/content/images/2018/10/release3039.png" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2018/10/release3039.png" alt="Material Design Icons v3.0.39"><p><a href="https://materialdesignicons.com">Material Design Icons</a> released with <strong><code>145</code> icons</strong> and updated several older icons. The team is very excited to finally have the 3.0 release out only 1 month after the <code>2.8.94</code> release.</p>
<p>Our goal was to fix some of the outstanding issues and add a lot of the outline variants of many of the existing icons. This will be a continued goal as we reach 4000 icons.</p>
<ul>
<li><code>fridge-filled</code> renamed to <code>fridge</code>.</li>
<li><code>fridge</code> renamed to <code>fridge-outline</code>.</li>
<li><code>tooltip-outline-plus</code> renamed to <code>tooltip-plus-outline</code></li>
<li><code>script</code> was updated will an solid and outline style.</li>
<li><code>eventbrite</code> Updated with latest logo.</li>
<li><code>diamond</code> renamed to <code>diamond-stone</code>
<ul>
<li>Also added <code>diamond</code> and outline as shapes.</li>
</ul>
</li>
</ul>
<h2 id="documentation">Documentation</h2>
<p>Really proud of the teams work to improve the documentation.</p>
<p><a href="https://dev.materialdesignicons.com/getting-started">View the new Documentation</a></p>
<p>All of these docs are stored in GitHub and can be edited in markdown. This allows for richer formatting and more specific doc pages for various frameworks.</p>
<h2 id="websiteupdates">Website Updates</h2>
<p>We're very focused working on the new site. In addtion to adding mere aliases and cleaning up tagging the icons will be getting styles assigned for future searching.</p>
<p>This means for example <code>account-circle-outline</code> will have the styles listed <code>circle</code> and <code>outline</code>. There are a lot of plans to use these new properties to allow more clean searching and tracking of missing icons.</p>
<p>Basically there can be a grid of missing variants for each base icon now for us to work toward filling in, so that each icon has as many style variations as possible. This will allow more consistent UI's going forward.</p>
<h2 id="thanks">Thanks!</h2>
<p>I tell our core team all the time, but also want to say thanks to all the open source projects that continue to use the icons and the individual developers for all the suggestions and feedback. Especially those that have submitted PR's to the new documentation.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Material Design Icons v2.8.94]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://materialdesignicons.com">Material Design Icons</a> released with <strong>100 icons</strong> and updated several older icons.</p>
<p>With the next release being the <code>3.x.xx</code> we're excited to get through the backlog and continue focus on the website and tooling to empower developers and designers.</p>
<ul>
<li><code>alpha-a</code> to <code>alpha-z</code> with boxes were added.</li>
<li><code>numeric-0</code> to</li></ul></div>]]></description><link>http://templarian.com/2018/09/21/material-design-icons-2-8-94/</link><guid isPermaLink="false">5ba51a052f4d834399549634</guid><category><![CDATA[Icons]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Fri, 21 Sep 2018 16:22:22 GMT</pubDate><media:content url="http://templarian.com/content/images/2018/09/release2894.png" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2018/09/release2894.png" alt="Material Design Icons v2.8.94"><p><a href="https://materialdesignicons.com">Material Design Icons</a> released with <strong>100 icons</strong> and updated several older icons.</p>
<p>With the next release being the <code>3.x.xx</code> we're excited to get through the backlog and continue focus on the website and tooling to empower developers and designers.</p>
<ul>
<li><code>alpha-a</code> to <code>alpha-z</code> with boxes were added.</li>
<li><code>numeric-0</code> to <code>numeric-9</code> were added.</li>
<li><code>uber</code> Updated with latest logo.</li>
<li><code>bullhorn</code> Updated with a cleaner design.</li>
<li><code>google-fit</code> Updated with latest logo.</li>
<li><code>hexagon-slice-5</code> Glyph oversight fixed.</li>
</ul>
<h2 id="documentation">Documentation</h2>
<p>With this release we've also removed the getting started page from the current site and are linking to the development server.</p>
<p><a href="https://dev.materialdesignicons.com/getting-started">View the new Documentation</a></p>
<p>All of these docs are stored in GitHub and can be edited in markdown. This allows for richer formatting and more specific doc pages for various frameworks.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Material Design Icons v2.7.94]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://materialdesignicons.com/">Material Design Icons</a> released with 100 new icons and several renames.</p>
<ul>
<li><code>phone-locked</code> renamed to <code>phone-lock</code></li>
<li><code>email-secure</code> renamed to <code>email-lock</code></li>
<li><code>send-secure</code> renamed to <code>send-lock</code></li>
<li><code>book-secure</code> renamed to <code>book-lock</code></li>
<li><code>book-unsecure</code> renamed to <code>book-lock-open</code></li>
<li><code>account-settings-variant</code> replaced with <code>account-details</code>
<ul>
<li>This was removed as we standardized on <code>...</code> for settings related icons to be inline with</li></ul></li></ul></div>]]></description><link>http://templarian.com/2018/09/02/material-design-icons-2-7-94/</link><guid isPermaLink="false">5b8c0c952f4d83439954961d</guid><category><![CDATA[Icons]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Sun, 02 Sep 2018 16:29:13 GMT</pubDate><media:content url="http://templarian.com/content/images/2018/09/release2794.png" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2018/09/release2794.png" alt="Material Design Icons v2.7.94"><p><a href="https://materialdesignicons.com/">Material Design Icons</a> released with 100 new icons and several renames.</p>
<ul>
<li><code>phone-locked</code> renamed to <code>phone-lock</code></li>
<li><code>email-secure</code> renamed to <code>email-lock</code></li>
<li><code>send-secure</code> renamed to <code>send-lock</code></li>
<li><code>book-secure</code> renamed to <code>book-lock</code></li>
<li><code>book-unsecure</code> renamed to <code>book-lock-open</code></li>
<li><code>account-settings-variant</code> replaced with <code>account-details</code>
<ul>
<li>This was removed as we standardized on <code>...</code> for settings related icons to be inline with the Material Design guidelines.</li>
</ul>
</li>
<li>Various <code>bell</code> icons were updated to match the official updates.</li>
</ul>
<p>Reminder we support several libraries to help developers.</p>
<ul>
<li><code>@mdi/js</code> All the icons for JavaScript and TypeScript developers</li>
<li><code>@mdi/react</code> React component with full TypeScript support</li>
<li><code>@mdi/font</code> Webfont with all glyphs</li>
<li><code>@mdi/angular-material</code> For use with Angular Material.</li>
<li><code>@mdi/util</code> Helper library for working with NodeJS and <code>@mdi/svg</code>.</li>
<li><code>@mdi/svg</code> Release of all icons in individual SVG files with the sites meta data, like aliases and tags.</li>
</ul>
<blockquote>
<p><strong>Note:</strong> The Angular and VueJS components are still under development.</p>
</blockquote>
<p>The new site is still under development, but has been slow as summer wraps up. Prioritization on components and icon releases still comes first.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Release of @mdi/react]]></title><description><![CDATA[Today we released the first version of the `@mdi/react` NPM package. Hoping this helps with adoption of Material Design Icons in exisiting ReactJS projects.]]></description><link>http://templarian.com/2018/08/10/mdi-react-release/</link><guid isPermaLink="false">5b6d2a162f4d834399549601</guid><category><![CDATA[Icons]]></category><category><![CDATA[Code]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Fri, 10 Aug 2018 06:07:34 GMT</pubDate><media:content url="http://templarian.com/content/images/2018/08/npminstall-react.png" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2018/08/npminstall-react.png" alt="Release of @mdi/react"><p>Today we released the first version of the <code>@mdi/react</code> NPM package. Hoping this helps with adoption of <a href="https://materialdesignicons.com">Material Design Icons</a> in exisiting <a href="https://reactjs.org">ReactJS</a> projects.</p>
<pre><code class="language-text">npm install @mdi/react
</code></pre>
<p><a href="https://github.com/Templarian/MaterialDesign-React">MaterialDesign-React</a></p>
<pre><code class="language-jsx">import Icon from '@mdi/react'
import { mdiAccount, mdiLoading } from '@mdi/js'

const Example = (props) =&gt; (
  &lt;div&gt;
    &lt;Icon path={mdiAccount}/&gt;
    &lt;Icon path={mdiLoading} spin/&gt;
  &lt;/div&gt;
)
</code></pre>
<h2 id="props">Props</h2>
<p><code>path</code>: string - SVG path data. Usually from <code>@mdi/js</code><br>
<code>size</code>: number, string <em>(1)</em> - <code>{size * 1.5}rem</code><br>
<code>horizontal</code>: bool <em>(false)</em> - Flip Horizontal<br>
<code>vertical</code>: bool <em>(false)</em> - Flip Vertical<br>
<code>rotate</code>: number <em>(0)</em> - degrees 0 to 360<br>
<code>color</code>: string <em>(#000)</em> - Ex: <code>rgb()</code> / <code>rgba()</code> / <code>#000</code><br>
<code>spin</code>: bool, number <em>(false)</em> - Ex: <code>true = 2s</code>, <code>{spin}s</code></p>
<h2 id="mdijs">@mdi/js ?</h2>
<p>The <a href="http://templarian.com/2018/07/31/mdi-js/"><code>@mdi/js</code></a> package contains all the icons after each release as both CommonJS for Node and a module for use with import/export. Ideal for TypeScript and ES6 developers.</p>
<h2 id="whataboutxframework">What about x Framework</h2>
<p>The team is working on VueJS and Angular 6 components that will offer similar functionality. In the future we'll hopefully get to other more niche frameworks.</p>
</div>]]></content:encoded></item><item><title><![CDATA[PrismJS VS Code Dark Theme]]></title><description><![CDATA[<div class="kg-card-markdown"><p>This blog post is used to test the <a href="https://prismjs.com">PrismJS</a> VS Code dark theme that this blog uses.</p>
<p>A lot of attention to detail around <code>JSX</code>, <code>JavaScript</code>, <code>TypeScript</code> and <code>HTML</code> has been carefully crafted to match VS Code. Lot of random ugly hacky CSS is used to handle most of the</p></div>]]></description><link>http://templarian.com/2018/08/08/prismjs-visual-studio-code-dark-theme/</link><guid isPermaLink="false">5b6a7c6e2f4d8343995495fc</guid><category><![CDATA[Code]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Wed, 08 Aug 2018 05:21:36 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>This blog post is used to test the <a href="https://prismjs.com">PrismJS</a> VS Code dark theme that this blog uses.</p>
<p>A lot of attention to detail around <code>JSX</code>, <code>JavaScript</code>, <code>TypeScript</code> and <code>HTML</code> has been carefully crafted to match VS Code. Lot of random ugly hacky CSS is used to handle most of the common uses cases in <code>JSX</code>.</p>
<pre><code class="language-jsx">import * as foo from '@foo/bar'
import foo from '@foo/bar'
import { foo } from '@foo/bar'

export default class foo extends something {
  func() {
    // testing
    /* testing */
    const foo = 'bar';
    let bar = true;
    var test = { object: &quot;test&quot; };
    var jar = 2;
    var a = () =&gt; { return 'test'; };
    var b = function() { return 'test'; };
    var b = function foo() { return 'test'; };
    return (
      &lt;Test foo={'test'}
          bar={true}
          test={{ object: &quot;test&quot; }}
          jar={2}/&gt;
      &lt;a href=&quot;#&quot;&gt;Test&lt;/a&gt;
    )
  }
}
</code></pre>
</div>]]></content:encoded></item><item><title><![CDATA[Release of @mdi/js]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Backported to <code>v2.5.94</code> developers will now have access to <a href="http://materialdesignicons.com">MDI</a> through <a href="https://www.npmjs.com/package/@mdi/js">@mdi/js</a> for use in their projects.</p>
<p>We are in the process of writing first party components for each of the main frameworks with the communities help (and updating 3rd party components to use <code>@mdi/js</code>).</p>
<p>A</p></div>]]></description><link>http://templarian.com/2018/07/31/mdi-js/</link><guid isPermaLink="false">5b607d192f4d8343995495ef</guid><category><![CDATA[Icons]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Tue, 31 Jul 2018 15:25:04 GMT</pubDate><media:content url="http://templarian.com/content/images/2018/07/mdijs.png" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2018/07/mdijs.png" alt="Release of @mdi/js"><p>Backported to <code>v2.5.94</code> developers will now have access to <a href="http://materialdesignicons.com">MDI</a> through <a href="https://www.npmjs.com/package/@mdi/js">@mdi/js</a> for use in their projects.</p>
<p>We are in the process of writing first party components for each of the main frameworks with the communities help (and updating 3rd party components to use <code>@mdi/js</code>).</p>
<p>A basic example for React would look like below.</p>
<pre><code class="language-jsx">import { mdiAccount } from '@mdi/js'

function Icon(props) {
  return (
    &lt;svg viewBox=&quot;0 0 24 24&quot;
      style={{ width: '1.5rem' }}&gt;
      &lt;path d={props.path}/&gt;
    &lt;/svg&gt;
  )
}

function App(props) {
  return (
    &lt;Icon path={mdiAccount}/&gt;
  )
}
</code></pre>
<p>Importing only the icons you need will ensure shaking works out of the box for Webpack and Rollup.</p>
<p>We're in the process of working on the new website and wrapping up the release for <code>v2.6.xx</code>. A helper package <code>@mdi/meta</code> will also be releasing shortly that contains the <code>meta.json</code> from <code>@mdi/svg</code> including all the website's icon data for 3rd party apps.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Material Design Icons v2.5.94]]></title><description><![CDATA[<div class="kg-card-markdown"><p><a href="https://materialdesignicons.com">Material Design Icons</a> has had another busy month this summer adding many new icons. One goal we set this release cycle was to add more outline icons. We were able to add <code>41</code> outline icons and <code>69</code> various others.</p>
<ul>
<li>110 New Icons</li>
<li>16 Icon Updates</li>
<li><a href="http://dev.materialdesignicons.com/history">Learn More</a></li>
</ul>
</div>]]></description><link>http://templarian.com/2018/07/09/material-design-icons-2-5-94/</link><guid isPermaLink="false">5b4577e52f4d8343995495cc</guid><category><![CDATA[Icons]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Tue, 10 Jul 2018 03:25:00 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p><a href="https://materialdesignicons.com">Material Design Icons</a> has had another busy month this summer adding many new icons. One goal we set this release cycle was to add more outline icons. We were able to add <code>41</code> outline icons and <code>69</code> various others.</p>
<ul>
<li>110 New Icons</li>
<li>16 Icon Updates</li>
<li><a href="http://dev.materialdesignicons.com/history">Learn More</a></li>
</ul>
</div>]]></content:encoded></item><item><title><![CDATA[Switched Servers]]></title><description><![CDATA[<div class="kg-card-markdown"><p>Still working on restoring things from some backups.</p>
<p>Definitely broke my custom theme a bit updating a lot of versions of the ghost blog.</p>
</div>]]></description><link>http://templarian.com/2018/06/01/switched-servers/</link><guid isPermaLink="false">5b10e6212f4d834399549564</guid><category><![CDATA[Blog]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Fri, 01 Jun 2018 06:23:21 GMT</pubDate><content:encoded><![CDATA[<div class="kg-card-markdown"><p>Still working on restoring things from some backups.</p>
<p>Definitely broke my custom theme a bit updating a lot of versions of the ghost blog.</p>
</div>]]></content:encoded></item><item><title><![CDATA[Material Design Icons v2.4.85]]></title><description><![CDATA[<div class="kg-card-markdown"><p>[Due to a bad backup this was removed, will retype soon]</p>
</div>]]></description><link>http://templarian.com/2018/05/23/material-design-icons-2-4-85/</link><guid isPermaLink="false">5b10e4fc2f4d834399549561</guid><category><![CDATA[Icons]]></category><dc:creator><![CDATA[Austin Andrews]]></dc:creator><pubDate>Wed, 23 May 2018 06:18:00 GMT</pubDate><media:content url="http://templarian.com/content/images/2018/06/mdi-v2485-release.png" medium="image"/><content:encoded><![CDATA[<div class="kg-card-markdown"><img src="http://templarian.com/content/images/2018/06/mdi-v2485-release.png" alt="Material Design Icons v2.4.85"><p>[Due to a bad backup this was removed, will retype soon]</p>
</div>]]></content:encoded></item></channel></rss>