<?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: Christian Andrei</title>
    <description>The latest articles on DEV Community by Christian Andrei (@christianandrei).</description>
    <link>https://dev.to/christianandrei</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%2F153949%2Fcb441d6e-6255-4fca-b429-136e7189a3a1.jpg</url>
      <title>DEV Community: Christian Andrei</title>
      <link>https://dev.to/christianandrei</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/christianandrei"/>
    <language>en</language>
    <item>
      <title>What If. Dev Edition</title>
      <dc:creator>Christian Andrei</dc:creator>
      <pubDate>Wed, 16 Dec 2020 10:51:43 +0000</pubDate>
      <link>https://dev.to/christianandrei/what-if-dev-edition-2hj2</link>
      <guid>https://dev.to/christianandrei/what-if-dev-edition-2hj2</guid>
      <description>&lt;p&gt;A lot of topics here in dev are mostly fall on a category of &lt;strong&gt;How to&lt;/strong&gt;, &lt;strong&gt;Tips to&lt;/strong&gt; and &lt;strong&gt;Learn to&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But what if there's a category about &lt;strong&gt;What if&lt;/strong&gt;? Well, that's a topic for another... What If.&lt;/p&gt;

&lt;p&gt;There is an entertaining platform &lt;code&gt;What if&lt;/code&gt; with 12M followers on &lt;a href="https://www.facebook.com/What.If.science"&gt;Facebook&lt;/a&gt; and 4.5M subscribers on &lt;a href="https://www.youtube.com/c/WhatIfScienceShow"&gt;Youtube&lt;/a&gt; at the time of this writing. Its more on science and exploration of possibilities. Here are some awesome topics on it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Q4Xys-IRMr0"&gt;What If We Dumped Our Trash into Volcanoes?&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=30j6WfQMlCw"&gt;What If You Fell From the International Space Station?&lt;/a&gt; &lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=Ze3DNE3uknI"&gt;What If a Black Neutron Star Entered the Solar System?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The narrator will start with some introduction, then tell what would happen and open another &lt;code&gt;What If&lt;/code&gt; topic at the end.&lt;/p&gt;

&lt;p&gt;How about on tech? These are some of &lt;code&gt;What If&lt;/code&gt; in my mind:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What if jQuery was not free to use before?&lt;/li&gt;
&lt;li&gt;What if nodejs never existed?&lt;/li&gt;
&lt;li&gt;What if there is no Open Source projects?&lt;/li&gt;
&lt;li&gt;What if the idea of reconciliation or Virtual Dom implemented on early 2000?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hope that great minds and content creators write something like this, that would be very interesting to read.&lt;/p&gt;

&lt;p&gt;What's your What If? Comment down below! 👇👇&lt;/p&gt;

</description>
      <category>topic</category>
      <category>content</category>
      <category>suggestion</category>
      <category>whatif</category>
    </item>
    <item>
      <title>5 steps to change antd theme on runtime using create-react-app</title>
      <dc:creator>Christian Andrei</dc:creator>
      <pubDate>Fri, 30 Oct 2020 09:20:01 +0000</pubDate>
      <link>https://dev.to/christianandrei/5-steps-to-change-antd-theme-on-runtime-using-create-react-app-p2k</link>
      <guid>https://dev.to/christianandrei/5-steps-to-change-antd-theme-on-runtime-using-create-react-app-p2k</guid>
      <description>&lt;p&gt;Before we start, install &lt;a href="https://github.com/ant-design/ant-design/" rel="noopener noreferrer"&gt;antd&lt;/a&gt; on your app (create-react-app) and add some &lt;a href="https://ant.design/components/layout/" rel="noopener noreferrer"&gt;layout&lt;/a&gt;, &lt;a href="https://ant.design/components/overview/" rel="noopener noreferrer"&gt;components&lt;/a&gt; and toggle switch to it. We will also use &lt;code&gt;antd.css&lt;/code&gt; for the default styling of components but we will remove it later and use &lt;code&gt;less&lt;/code&gt; instead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fypqov3q71wnitiqa1mxg.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fypqov3q71wnitiqa1mxg.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 1 - Install packages needed
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;react-app-rewired&lt;/li&gt;
&lt;li&gt;customize-cra&lt;/li&gt;
&lt;li&gt;babel-plugin-import&lt;/li&gt;
&lt;li&gt;less&lt;/li&gt;
&lt;li&gt;less-loader&lt;/li&gt;
&lt;li&gt;antd-theme-webpack-plugin
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install react-app-rewired customize-cra babel-plugin-import less less-loader antd-theme-webpack-plugin  --save-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;explanation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;react-app-rewired&lt;/strong&gt;: tweak the create-react-app webpack config(s) without using 'eject' and without creating a fork of the react-scripts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;customize-cra&lt;/strong&gt;: we need customize-cra along with react-app-rewired due to new &lt;a href="https://github.com/timarney/react-app-rewired#alternatives" rel="noopener noreferrer"&gt;react-app-rewired@2.x&lt;/a&gt; issue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;babel-plugin-import&lt;/strong&gt;: for importing components on demand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;less&lt;/strong&gt;: default development language for styling in antd.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;less-loader&lt;/strong&gt;: compiler for translating less into css.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;antd-theme-webpack-plugin&lt;/strong&gt;: a webpack plugin to generate color specific less/css and inject into your index.html file so that you can change Ant Design specific color theme in browser.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  Step 2 - Create vars.less file
&lt;/h1&gt;

&lt;p&gt;Create a &lt;code&gt;vars.less&lt;/code&gt; file somewhere inside the src folder and inside the file, import the default less that used by antd:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhgdaak2vhqsvdwfuhkat.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhgdaak2vhqsvdwfuhkat.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Step 3 - Create config-overrides.js file
&lt;/h1&gt;

&lt;p&gt;On the root directory of your app (where package.json reside), create &lt;code&gt;config-overrides.js&lt;/code&gt; file and add the following code:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;



&lt;p&gt;Some &lt;em&gt;options&lt;/em&gt; explanation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;stylesDir&lt;/strong&gt;: path of the parent directory of vars.less file that you created on &lt;strong&gt;Step 2&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;varFile&lt;/strong&gt;: path of vars.less file that you created on &lt;strong&gt;Step 2&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;themeVariables&lt;/strong&gt;: listed values on this are the only less variables that you can modify on &lt;strong&gt;Step 5&lt;/strong&gt;. &lt;a href="https://github.com/ant-design/ant-design/blob/master/components/style/themes/default.less" rel="noopener noreferrer"&gt;Here&lt;/a&gt; (default less used by antd) are the list of variables that you can add to it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: if you are using less-loader@5 please check &lt;a href="https://github.com/ant-design/ant-design/issues/23624#issuecomment-619548269" rel="noopener noreferrer"&gt;this&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 4 - Modify package.json
&lt;/h1&gt;

&lt;p&gt;On the &lt;code&gt;script&lt;/code&gt; part of package.json, we will use &lt;code&gt;react-app-rewired&lt;/code&gt; instead of &lt;code&gt;react-scripts&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuhwwzhcr319dj481ocxv.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%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fuhwwzhcr319dj481ocxv.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note: Do NOT flip the call for the eject script.&lt;/p&gt;

&lt;p&gt;You can now start your app:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Step 5 - Modify less vars in javascript
&lt;/h1&gt;

&lt;p&gt;If the app started without errors, then you are good to go to the final step.&lt;/p&gt;

&lt;p&gt;Here is a sample code on how to modify a less variables:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//less variables that will be used here must be declared in themeVariables on config-overrides.js&lt;/span&gt;
&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;less&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;modifyVars&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@primary-color&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;#52c41a&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;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;//do other stuff here&lt;/span&gt;
     &lt;span class="p"&gt;})&lt;/span&gt;
     &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;catch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;error&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;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fudsemug3ig5eyran6lju.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fudsemug3ig5eyran6lju.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can now remove your import &lt;code&gt;antd.css&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live preview&lt;/strong&gt;: &lt;a href="https://antd-change-theme-color.netlify.app/" rel="noopener noreferrer"&gt;https://antd-change-theme-color.netlify.app/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Code&lt;/strong&gt;: &lt;a href="https://github.com/christianandrei/antd-change-theme-color" rel="noopener noreferrer"&gt;https://github.com/christianandrei/antd-change-theme-color&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

&lt;h1&gt;
  
  
  SOON: Antd Darkmode Tutorial!
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fujqas16de0pz8xnn67dy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fujqas16de0pz8xnn67dy.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;stay tuned!&lt;/p&gt;

</description>
      <category>antd</category>
      <category>theming</category>
      <category>antdthemewebpackplugin</category>
    </item>
  </channel>
</rss>
