<?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: Ellaine Tolentino</title>
    <description>The latest articles on DEV Community by Ellaine Tolentino (@tolentinoel).</description>
    <link>https://dev.to/tolentinoel</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%2F493720%2F744614c7-6854-4e44-ba6e-d23ec2073c42.jpeg</url>
      <title>DEV Community: Ellaine Tolentino</title>
      <link>https://dev.to/tolentinoel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tolentinoel"/>
    <language>en</language>
    <item>
      <title>Gifts for the dev/s in your life 2021</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Wed, 22 Dec 2021 01:19:19 +0000</pubDate>
      <link>https://dev.to/tolentinoel/gifts-for-the-devs-in-your-life-2021-4g1e</link>
      <guid>https://dev.to/tolentinoel/gifts-for-the-devs-in-your-life-2021-4g1e</guid>
      <description>&lt;p&gt;Hello! Since Christmas is coming up, and most of us have made some friends being in the great community of tech, I thought of curating this list of things I think would be a great gift to any of your loved ones or colleagues who is in the tech business.&lt;/p&gt;

&lt;p&gt;This list is not the holy grail of lists and might be a little last minute but may help anyone who need any clue what to get for upcoming Christmas or the next occasion that calls for gift-giving! All of the items below can be purchased through Amazon (Affiliate links provided).&lt;/p&gt;

&lt;h3&gt;
  
  
  Programming Books/ E-books
&lt;/h3&gt;

&lt;p&gt;Whether a new bootcamp grad or a early-career professional, they might need a good refresher book like these;&lt;br&gt;
&lt;a href="https://www.amazon.com/Common-Sense-Guide-Structures-Algorithms-Second/dp/1680507222?keywords=data+algorithms&amp;amp;qid=1640127236&amp;amp;s=books&amp;amp;sprefix=data+algo%2Cstripbooks%2C445&amp;amp;sr=1-3&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=0da23504da3cf91f35f0d8470ec18353&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=1680507222&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pw1A42GO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3D1680507222" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pw1A42GO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3D1680507222" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.amazon.com/Common-Sense-Guide-Structures-Algorithms-Second/dp/1680507222?keywords=data+algorithms&amp;amp;qid=1640127236&amp;amp;s=books&amp;amp;sprefix=data+algo%2Cstripbooks%2C445&amp;amp;sr=1-3&amp;amp;linkCode=li2&amp;amp;tag=tolentinoel-20&amp;amp;linkId=80d3283e9541b0f9c60e21d99833a162&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;A Common-Sense Guide to Data Structures and Algorithms Book&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230?pd_rd_w=jnxRn&amp;amp;pf_rd_p=0a3ad226-8a77-4898-9a99-63ffeb1aef90&amp;amp;pf_rd_r=0XBR08Q5Y9B9NG205459&amp;amp;pd_rd_r=4851e95f-4584-463a-bc1b-13b919833e3a&amp;amp;pd_rd_wg=pJrJp&amp;amp;pd_rd_i=1617292230&amp;amp;psc=1&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=f21da9d1bf8207856445f0e820bb1a26&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=1617292230&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4yP2Bx97--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3D1617292230" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4yP2Bx97--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3D1617292230" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230?pd_rd_w=jnxRn&amp;amp;pf_rd_p=0a3ad226-8a77-4898-9a99-63ffeb1aef90&amp;amp;pf_rd_r=0XBR08Q5Y9B9NG205459&amp;amp;pd_rd_r=4851e95f-4584-463a-bc1b-13b919833e3a&amp;amp;pd_rd_wg=pJrJp&amp;amp;pd_rd_i=1617292230&amp;amp;psc=1&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=f21da9d1bf8207856445f0e820bb1a26&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Monitor Lamp or Screen Light Bar
&lt;/h3&gt;

&lt;p&gt;I have one myself and has been one great addition to my desk setup. This is a great alternative if you have limited desk space and are looking for a light source other than desk lamps or the clamp-on ones.&lt;/p&gt;

&lt;p&gt;Most popular one:&lt;br&gt;
&lt;a href="https://www.amazon.com/dp/B07DP7RYXV?_encoding=UTF8&amp;amp;aaxitk=271d7fb82ae2026de56dec090b6690f9&amp;amp;hsa_cr_id=5823767390901&amp;amp;pd_rd_plhdr=t&amp;amp;pd_rd_r=93cc3848-d5c2-4825-9208-e5c0e070f7fa&amp;amp;pd_rd_w=7iOvW&amp;amp;pd_rd_wg=gwqoQ&amp;amp;th=1&amp;amp;linkCode=li2&amp;amp;tag=tolentinoel-20&amp;amp;linkId=355ac28f345a6ffe7af9f2a7bbdf482c&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B07DP7RYXV&amp;amp;Format=_SL160_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KON8e9-X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli2%26o%3D1%26a%3DB07DP7RYXV" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KON8e9-X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli2%26o%3D1%26a%3DB07DP7RYXV" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.amazon.com/dp/B07DP7RYXV?_encoding=UTF8&amp;amp;aaxitk=271d7fb82ae2026de56dec090b6690f9&amp;amp;hsa_cr_id=5823767390901&amp;amp;pd_rd_plhdr=t&amp;amp;pd_rd_r=93cc3848-d5c2-4825-9208-e5c0e070f7fa&amp;amp;pd_rd_w=7iOvW&amp;amp;pd_rd_wg=gwqoQ&amp;amp;th=1&amp;amp;linkCode=li2&amp;amp;tag=tolentinoel-20&amp;amp;linkId=355ac28f345a6ffe7af9f2a7bbdf482c&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;BenQ ScreenBar Plus with Desktop Dial&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Quntis-Computer-Reading-Auto-Dimming-Adjustment/dp/B08DKQ3JG1?crid=24ITOVRQEVVZ9&amp;amp;keywords=quntis+computer+monitor+lamp&amp;amp;qid=1640128221&amp;amp;sprefix=quntis%2Caps%2C445&amp;amp;sr=8-1-spons&amp;amp;psc=1&amp;amp;smid=AURY2T3X4G86C&amp;amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEyQ0o1UDZYTUJOMDJVJmVuY3J5cHRlZElkPUEwNTI1NDMzMldJUlJPM0tNM1VVUCZlbmNyeXB0ZWRBZElkPUEwMjI2MDI4M1JMTEZCQzQwODRPUyZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU%3D&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=614ec5be25b7a84ec24fb293b198ad4b&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B08DKQ3JG1&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--03ZFKrY2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB08DKQ3JG1" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--03ZFKrY2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB08DKQ3JG1" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.toQuntis%20Computer%20Monitor%20Lamp"&gt;Quntis Computer Monitor Lamp&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  USB-C hub
&lt;/h3&gt;

&lt;p&gt;Speaking of desk setup gadgets, this USB C hub might also be a great addition! Besides a great protective design, you can also detach the main cable and switch it to a longer one if you need. Tad bit pricey (I also have one myself and it's been great so far.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/Ethernet-Adapter-uni-Detachable-Compatible/dp/B07Q6YS7W2?keywords=usb+c+hub+removable+cable&amp;amp;qid=1640130424&amp;amp;sprefix=usb+c+hub+remova%2Caps%2C195&amp;amp;sr=8-3&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=64a0c1f4df87b50ccc8e0d9af8276f31&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B07Q6YS7W2&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s1ZO9I5H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07Q6YS7W2" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s1ZO9I5H--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07Q6YS7W2" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.amazon.com/Ethernet-Adapter-uni-Detachable-Compatible/dp/B07Q6YS7W2?keywords=usb+c+hub+removable+cable&amp;amp;qid=1640130424&amp;amp;sprefix=usb+c+hub+remova%2Caps%2C195&amp;amp;sr=8-3&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=64a0c1f4df87b50ccc8e0d9af8276f31&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;USB C Hub, 8 in 1 Hub with Detachable Connector&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Desk Mats, Mouse Pads
&lt;/h3&gt;

&lt;p&gt;Now that a lot of individuals are work from home, these are also a very functional gift. This can also be a way to spice up their WFH setup!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/dp/B08LGGM7LF?pd_rd_i=B08LGGM7LF&amp;amp;pd_rd_w=hSGEO&amp;amp;pf_rd_p=887084a2-5c34-4113-a4f8-b7947847c308&amp;amp;pd_rd_wg=jBLaS&amp;amp;pf_rd_r=427H7SW109PHD1849TV7&amp;amp;pd_rd_r=45b9c756-dce5-47d2-bc6b-90dcb8424c03&amp;amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEzMEJQV0JSRjNTSFBVJmVuY3J5cHRlZElkPUEwMjA1OTIzMzNWMEdUREROUTM5USZlbmNyeXB0ZWRBZElkPUEwNTEyNjQ4MzJEMzdXRkkxMUM0VCZ3aWRnZXROYW1lPXNwX2RldGFpbCZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU&amp;amp;th=1&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=cdcec89ab147ccb1f05aa7ae365463e6&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B08LGGM7LF&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0ocwFV-4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB08LGGM7LF" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0ocwFV-4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB08LGGM7LF" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/dp/B08LGGM7LF?pd_rd_i=B08LGGM7LF&amp;amp;pd_rd_w=hSGEO&amp;amp;pf_rd_p=887084a2-5c34-4113-a4f8-b7947847c308&amp;amp;pd_rd_wg=jBLaS&amp;amp;pf_rd_r=427H7SW109PHD1849TV7&amp;amp;pd_rd_r=45b9c756-dce5-47d2-bc6b-90dcb8424c03&amp;amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEzMEJQV0JSRjNTSFBVJmVuY3J5cHRlZElkPUEwMjA1OTIzMzNWMEdUREROUTM5USZlbmNyeXB0ZWRBZElkPUEwNTEyNjQ4MzJEMzdXRkkxMUM0VCZ3aWRnZXROYW1lPXNwX2RldGFpbCZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU&amp;amp;th=1&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=cdcec89ab147ccb1f05aa7ae365463e6&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;Felt Desk Mat&lt;/a&gt; - currently @ $15.00&lt;/p&gt;

&lt;p&gt;If they're also a gamer, here's a budget-friendly option; &lt;br&gt;
&lt;a href="https://www.amazon.com/Psitek-Waterproof-Optimized-Precision-Anti-Fray/dp/B07RSVYSNF?crid=3OTRJT3Y7H0D6&amp;amp;keywords=XL%2Bgaming%2Bmouse%2Bpad&amp;amp;qid=1640134636&amp;amp;s=office-products&amp;amp;sprefix=xl%2Bgaming%2Bmouse%2Bpa%2Coffice-products%2C227&amp;amp;sr=1-20&amp;amp;th=1&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=42975cb65fa0bcbe89fa1f4882ef6c78&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B07RSVYSNF&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zYi6M83t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07RSVYSNF" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zYi6M83t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07RSVYSNF" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://amzn.to/3FiyQwU"&gt;Psitek 32x12 inches XXL Large Gaming Mouse Pad&lt;/a&gt; - currently @ $12.00&lt;/p&gt;

&lt;h3&gt;
  
  
  Bags
&lt;/h3&gt;

&lt;p&gt;A bag is a very useful tool to gift to someone who has to bring their laptop with them whether on their trips or to their office. &lt;/p&gt;

&lt;p&gt;I have a similar one like this and has been with me for years. The price might not be as friendly, but it's worth it.&lt;br&gt;
&lt;a href="https://www.amazon.com/Thule-TEBP-215-ROOIBOS-Backpack-18L-Rooibos/dp/B07L5F6PW2?crid=1RPAEF76750VS&amp;amp;keywords=thule%2Bbackpack&amp;amp;qid=1640135057&amp;amp;s=electronics&amp;amp;sprefix=thule%2Bback%2Celectronics%2C221&amp;amp;sr=1-3&amp;amp;th=1&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=bbf24be76dc894678eb7e990485240e6&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B07L5F6PW2&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BsVEjyDS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07L5F6PW2" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BsVEjyDS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07L5F6PW2" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://amzn.to/30P4RO5"&gt;Thule EnRoute Backpack 14L&lt;/a&gt; - currently @ $70.00&lt;/p&gt;

&lt;p&gt;Here's a budget-friendly option;&lt;br&gt;
&lt;a href="https://www.amazon.com/Lenovo-lightweight-water-repellent-breathable-GX40S69333/dp/B07J3VHD1S?ac_md=2-2-c2xlZWsgYmFja3BhY2sgZm9yIG1lbg%3D%3D-ac_d_rm_rm_rm&amp;amp;crid=1WGKTY959GOPL&amp;amp;cv_ct_cx=sleek+backpack&amp;amp;keywords=sleek+backpack&amp;amp;pd_rd_i=B07J3VHD1S&amp;amp;pd_rd_r=cd0a6587-e95d-4ef5-83c6-6b4bdf5fa505&amp;amp;pd_rd_w=dYu6o&amp;amp;pd_rd_wg=G5T2F&amp;amp;pf_rd_p=d9e880af-d5ab-454d-b7d5-c9013dd32f60&amp;amp;pf_rd_r=JE528FQSFJ6RTGBWJVNQ&amp;amp;psc=1&amp;amp;qid=1640135536&amp;amp;sprefix=sleek+backpack%2Caps%2C188&amp;amp;sr=1-3-12d4272d-8adb-4121-8624-135149aa9081&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=83763b562903a6c786f4e7af51bc9073&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B07J3VHD1S&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hw5puffD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07J3VHD1S" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hw5puffD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07J3VHD1S" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://amzn.to/32cqCIq"&gt;Lenovo Legion Recon 15.6 inch Gaming Backpack&lt;/a&gt; - currently @ $40.00&lt;/p&gt;

&lt;h3&gt;
  
  
  Mouse, Mice, Trackpads
&lt;/h3&gt;

&lt;p&gt;If they connect their laptop into a screen or just needs a refresh on their current, a trusty mouse/mice is never a bad gift!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.amazon.com/dp/B07QBCTKKH?coliid=I10IBAB0QCOXH0&amp;amp;colid=2AYZFDWVGG6LZ&amp;amp;psc=1&amp;amp;linkCode=li3&amp;amp;tag=tolentinoel-20&amp;amp;linkId=2c1e8c1c6ccff3ca0fa04d35e9debb37&amp;amp;language=en_US&amp;amp;ref_=as_li_ss_il"&gt;&lt;img src="//ws-na.amazon-adsystem.com/widgets/q?_encoding=UTF8&amp;amp;ASIN=B07QBCTKKH&amp;amp;Format=_SL250_&amp;amp;ID=AsinImage&amp;amp;MarketPlace=US&amp;amp;ServiceVersion=20070822&amp;amp;WS=1&amp;amp;tag=tolentinoel-20&amp;amp;language=en_US"&gt;&lt;/a&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l65EeicR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07QBCTKKH" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l65EeicR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://ir-na.amazon-adsystem.com/e/ir%3Ft%3Dtolentinoel-20%26language%3Den_US%26l%3Dli3%26o%3D1%26a%3DB07QBCTKKH" alt="" width="1" height="1"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://amzn.to/3EgGp5F"&gt;Logitech G305 Wireless Mouse&lt;/a&gt; - currently @ $45.00&lt;/p&gt;

&lt;p&gt;These are just a couple of things you can gift to friends/family who are in tech or likes gaming! I hope it helped you if you're still looking for last minute gifts for Christmas!&lt;/p&gt;

&lt;p&gt;Until the next!&lt;/p&gt;

</description>
      <category>giftideas</category>
      <category>webdev</category>
      <category>dev</category>
    </item>
    <item>
      <title>Backdrop-filters!</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Sun, 03 Oct 2021 23:17:10 +0000</pubDate>
      <link>https://dev.to/tolentinoel/backdrop-filters-3ec8</link>
      <guid>https://dev.to/tolentinoel/backdrop-filters-3ec8</guid>
      <description>&lt;p&gt;Hi! This blog is just to show recent backdrop-filters I've used!&lt;br&gt;
I am no expert but this is just me sharing what I've encountered in the hopes to help other newbie devs like me that might have an interest testing these effects out!&lt;/p&gt;
&lt;h2&gt;
  
  
  backdrop-filter:
&lt;/h2&gt;

&lt;p&gt;While filter applies the effect on the entire element including its children, backdrop-filter is more specific since it only applies as a ‘background effect’ or anything behind that element.&lt;/p&gt;

&lt;p&gt;It is limited on compatibility, so please bare with me since almost all of these would still need a workaround to apply the same effect.&lt;/p&gt;



&lt;p&gt;There are multiple values which backdrop-filter may be:&lt;/p&gt;
&lt;h3&gt;
  
  
  blur()
&lt;/h3&gt;

&lt;p&gt;Starting of with blur, which values can be of pixels or rem. The length value refers to the length of pixels blurring together hence, longer the length the blurry it is.&lt;br&gt;
I have examples on blur application on my previous blog(&lt;a href="https://dev.to/tolentinoel/frosted-glass-on-css-37bg"&gt;Frosted glass on CSS&lt;/a&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%2Fuploads%2Farticles%2Fqd7pq3h8nrx19m98zns2.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%2Fuploads%2Farticles%2Fqd7pq3h8nrx19m98zns2.png" alt="blur example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other workarounds for other browser were also discussed on &lt;a href="https://stackoverflow.com/questions/38145368/css-workaround-to-backdrop-filter" rel="noopener noreferrer"&gt;stackoverflow&lt;/a&gt; by other fellow devs!&lt;/p&gt;


&lt;h3&gt;
  
  
  sepia()
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;sepia&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;90&lt;/span&gt;&lt;span class="o"&gt;%)&lt;/span&gt; 

&lt;span class="c"&gt;/* Can be an IE &amp;amp; Firefox fallback: */&lt;/span&gt;
&lt;span class="c"&gt;/* Not exactly the same but definitely can be altered for a more similar effect*/&lt;/span&gt;
&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;#715515&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; 
&lt;span class="nt"&gt;opacity&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;6&lt;/span&gt;&lt;span class="o"&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%2Fuploads%2Farticles%2Fbnyvkt8arx3tenr9aem6.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%2Fuploads%2Farticles%2Fbnyvkt8arx3tenr9aem6.png" alt="Sepia example"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Workaround:&lt;br&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%2Fuploads%2Farticles%2Fx1u7vhw2wf0xx4pauxb5.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%2Fuploads%2Farticles%2Fx1u7vhw2wf0xx4pauxb5.png" alt="Sepia workaround"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  grayscale()
&lt;/h3&gt;

&lt;p&gt;Values can be a number or percentage.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;sepia&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;100&lt;/span&gt;&lt;span class="o"&gt;%);&lt;/span&gt;
&lt;span class="nt"&gt;backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;sepia&lt;/span&gt;&lt;span class="o"&gt;(.&lt;/span&gt;&lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c"&gt;/* 50% of the effect */&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%2Fuploads%2Farticles%2Fpfzbtzjvqx0x6gldoiid.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%2Fuploads%2Farticles%2Fpfzbtzjvqx0x6gldoiid.png" alt="grayscale"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  hue-rotate()
&lt;/h3&gt;

&lt;p&gt;I think this is my current favorite effect. This effect changes the whole hue of the image or background color depending on the angle values!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;hue-rotate&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;220&lt;/span&gt;&lt;span class="nt"&gt;deg&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c"&gt;/* same effect as -140deg */&lt;/span&gt;
&lt;span class="nt"&gt;backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;hue-rotate&lt;/span&gt;&lt;span class="o"&gt;(.&lt;/span&gt;&lt;span class="err"&gt;61&lt;/span&gt;&lt;span class="nt"&gt;turn&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c"&gt;/* same effect as 220deg */&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%2Fuploads%2Farticles%2Fs54a8bq3l6ewrp3o573b.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%2Fuploads%2Farticles%2Fs54a8bq3l6ewrp3o573b.png" alt="hue-rotate"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;If you wanted to take a peek of each's compatibility on browsers, check out &lt;a href="https://caniuse.com/" rel="noopener noreferrer"&gt;caniuse.com&lt;/a&gt; and browse around for any css compatibility you wanna know about.&lt;/p&gt;

&lt;p&gt;There are more backdrop-filter effects you should try! Check out these CodePens by other creators!&lt;/p&gt;
Simon's CodePen



&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/typo3-freelancer/embed/YzGQMmP?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
Mahdi's CodePen



&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/hamidimahdi92/embed/oNZZdjg?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>css</category>
      <category>codenewbie</category>
      <category>frontend</category>
    </item>
    <item>
      <title>CSS Learnings! - Part 2</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Sun, 26 Sep 2021 06:50:24 +0000</pubDate>
      <link>https://dev.to/tolentinoel/css-learnings-part-2-16j0</link>
      <guid>https://dev.to/tolentinoel/css-learnings-part-2-16j0</guid>
      <description>&lt;p&gt;For this weeks’ CSS learning, I recently got to try and play around with gradients! This curiosity for ‘textures’ kicked off after my recent blog! &lt;/p&gt;

&lt;p&gt;By the end of this blog, we should have a mock landing page like this with our own interpretation.&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%2Fuploads%2Farticles%2Ftvl2k1adgjgmof9xmdke.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%2Fuploads%2Farticles%2Ftvl2k1adgjgmof9xmdke.png" alt="result page"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s get started!&lt;/p&gt;

&lt;h2&gt;
  
  
  What are gradients?
&lt;/h2&gt;

&lt;p&gt;The easiest way I can explain it is the way 2 or more colors gradually transition from a point or position. Maybe in other media, it can be called blending or ombré(One hue to another).&lt;/p&gt;

&lt;h2&gt;
  
  
  Types of gradients
&lt;/h2&gt;

&lt;p&gt;I recently read that gradients can be multiple kinds. Below is the list:&lt;/p&gt;

&lt;h3&gt;
  
  
  Linear-gradient
&lt;/h3&gt;

&lt;p&gt;Can be adjusted with angle value.&lt;/p&gt;

&lt;p&gt;Syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;background:linear-gradient(&lt;span class="nt"&gt;&amp;lt;angle&amp;gt;&lt;/span&gt;, &lt;span class="nt"&gt;&amp;lt;color&lt;/span&gt;&lt;span class="na"&gt;#1&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;breakpoint&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="err"&gt;%&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;, &lt;span class="nt"&gt;&amp;lt;color&lt;/span&gt;&lt;span class="na"&gt;#2&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;breakpoint&lt;/span&gt; &lt;span class="na"&gt;in&lt;/span&gt; &lt;span class="err"&gt;%&lt;/span&gt; &lt;span class="na"&gt;value&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;Example&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;linear-gradient&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;180&lt;/span&gt;&lt;span class="nt"&gt;deg&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;navy&lt;/span&gt; &lt;span class="err"&gt;10&lt;/span&gt;&lt;span class="o"&gt;%,&lt;/span&gt; &lt;span class="nt"&gt;yellow&lt;/span&gt; &lt;span class="err"&gt;90&lt;/span&gt;&lt;span class="o"&gt;%);&lt;/span&gt;
&lt;span class="c"&gt;/* If angle is left out default is 180degrees.*/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result of that would look like this:&lt;br&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%2Fuploads%2Farticles%2Fs156g38wcjbabs3j2g8c.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%2Fuploads%2Farticles%2Fs156g38wcjbabs3j2g8c.png" alt="Linear gradient from blue to yellow"&gt;&lt;/a&gt;See that the navy starts to turn yellow at 10% position&lt;/p&gt;

&lt;p&gt;You can definitely use hexcodes, rgba or hsla for specific shades.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;rgb&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;238&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;174&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;202&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c"&gt;/* fallback background-color */&lt;/span&gt;
&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;linear-gradient&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;90&lt;/span&gt;&lt;span class="nt"&gt;deg&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;238&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;174&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;202&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;%,&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;148&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;187&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;233&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="err"&gt;100&lt;/span&gt;&lt;span class="o"&gt;%);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It should come out as this:&lt;br&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%2Fuploads%2Farticles%2Fj9x7jf1xv8yhsk36jz50.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%2Fuploads%2Farticles%2Fj9x7jf1xv8yhsk36jz50.png" alt="90 deg linear from pink to blue"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to see some good color combos for linear, &lt;a href="https://www.makeuseof.com/css-background-gradients/" rel="noopener noreferrer"&gt;makeuseof.com&lt;/a&gt; has a list of a few you can use!&lt;/p&gt;


&lt;h3&gt;
  
  
  Radial
&lt;/h3&gt;

&lt;p&gt;Radial can be used for that glow effect since the spread is circular or in radius. Can also be used for vignetting or sunflare-effect.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;rgb&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;131&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;58&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;180&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c"&gt;/* fallback background-color */&lt;/span&gt;
&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;radial-gradient&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;circle&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;131&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;58&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;180&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;%,&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;253&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;29&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;29&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="err"&gt;52&lt;/span&gt;&lt;span class="o"&gt;%,&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;252&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;176&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;69&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="err"&gt;100&lt;/span&gt;&lt;span class="o"&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%2Fuploads%2Farticles%2F00vjptsx7e1ybqtd7blf.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%2Fuploads%2Farticles%2F00vjptsx7e1ybqtd7blf.png" alt="Radial gradient"&gt;&lt;/a&gt;There are more ways to personalize a radial gradient. Like to where each color starts and ends and how many colors you can put.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tympanus.net/codrops/css_reference/radial-gradient/" rel="noopener noreferrer"&gt;Tympanus.net&lt;/a&gt; explained in their article on how to greatly utilize positions and personalize a radial-gradient.&lt;/p&gt;




&lt;h3&gt;
  
  
  Repeating
&lt;/h3&gt;

&lt;p&gt;I find this type great when creating custom patterns or textures. Example like checkers, chevron, stripes, 3d stripes and many more!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repeating Linear
Syntax:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;/* Simplest way I got to implement repeating-linear */
background: repeating-linear-gradient(&lt;span class="nt"&gt;&amp;lt;angle&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;color1&amp;gt;&lt;/span&gt;, &lt;span class="nt"&gt;&amp;lt;color2&amp;gt;&lt;/span&gt; &lt;span class="nt"&gt;&amp;lt;width&lt;/span&gt; &lt;span class="na"&gt;of&lt;/span&gt; &lt;span class="na"&gt;each&lt;/span&gt; &lt;span class="na"&gt;instance&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;Example&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;
&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;repeating-linear-gradient&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;215&lt;/span&gt;&lt;span class="nt"&gt;deg&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;black&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;yellow&lt;/span&gt; &lt;span class="err"&gt;30&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&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%2Fuploads%2Farticles%2F4um0bai6nigom5cnnhdd.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%2Fuploads%2Farticles%2F4um0bai6nigom5cnnhdd.png" alt="repeating linear gradient"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Repeating Radial
With repeating-radial-gradient, you can specify the shape;

&lt;ul&gt;
&lt;li&gt;ellipse &lt;/li&gt;
&lt;li&gt;circle&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Each ending shape can be specified into positions; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;closest-side&lt;/li&gt;
&lt;li&gt;closest-corner&lt;/li&gt;
&lt;li&gt;farthest-side&lt;/li&gt;
&lt;li&gt;farthest-corner&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/gradient/repeating-radial-gradient()#formal_syntax" rel="noopener noreferrer"&gt;formal syntax&lt;/a&gt; from MDN Web Docs. &lt;/p&gt;

&lt;p&gt;A very creative implementation I saw was from &lt;a href="https://codepen.io/bennettfeely/pen/jOEjmXK" rel="noopener noreferrer"&gt;Bennett Freely's&lt;/a&gt; CodePen!&lt;/p&gt;

&lt;p&gt;Check his design out!&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/bennettfeely/embed/jOEjmXK?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Conic-gradient
&lt;/h3&gt;

&lt;p&gt;I’ve seen it use as pie charts, color pickers.&lt;br&gt;
If done this way:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;conic-gradient&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;from&lt;/span&gt; &lt;span class="err"&gt;90&lt;/span&gt;&lt;span class="nt"&gt;deg&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;#9&lt;/span&gt;&lt;span class="nt"&gt;c27b0&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;#ffeb3b&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It would look like this:&lt;br&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%2Fuploads%2Farticles%2Fou85zxk1xrl4c8bdc8wr.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%2Fuploads%2Farticles%2Fou85zxk1xrl4c8bdc8wr.png" alt="Conic gradient"&gt;&lt;/a&gt;A conic gradient at 90degrees starting from '#9c27b0' to '#ffeb3b'&lt;/p&gt;

&lt;p&gt;Since I started sharing creative implementations of the ones above, I found one for conic-gradient too!&lt;/p&gt;

&lt;p&gt;Check out Lucas Bebber's &lt;a href="https://codepen.io/lbebber/pen/RPLQxN" rel="noopener noreferrer"&gt;CodePen&lt;/a&gt; using conic-gradient!&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/lbebber/embed/RPLQxN?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;There is also a variation of this called &lt;strong&gt;repeating-conic-gradient&lt;/strong&gt; which is the same principle as the repeating ones above, but is currently not compatible with IE browsers.&lt;/p&gt;




&lt;p&gt;There are accessibility factors to keep in mind when applying gradients, CSS-Tricks broke it down on their &lt;a href="https://css-tricks.com/a-complete-guide-to-css-gradients/#accessibility" rel="noopener noreferrer"&gt;article&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Results!
&lt;/h2&gt;

&lt;p&gt;In our mock landing page, I got to use linear-gradient in a couple of components!&lt;br&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%2Fuploads%2Farticles%2Fa4cwqx87hjwuqee9wzdx.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%2Fuploads%2Farticles%2Fa4cwqx87hjwuqee9wzdx.png" alt="Final result button"&gt;&lt;/a&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%2Fuploads%2Farticles%2Fkuvny6noenqk0p5ysmzf.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%2Fuploads%2Farticles%2Fkuvny6noenqk0p5ysmzf.png" alt="result - header content"&gt;&lt;/a&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%2Fuploads%2Farticles%2Flnby78sftpncmrxzpys3.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%2Fuploads%2Farticles%2Flnby78sftpncmrxzpys3.png" alt="background linear gradient"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's my CodePen for the final results!&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/tolentinoel/embed/vYZzmYq?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;A good web app I came across called &lt;a href="https://cssgradient.io/" rel="noopener noreferrer"&gt;CSS gradient generator&lt;/a&gt;! If you have your colors in mind and wanted to see it before typing all your CSS code, this is the quickest way to test! &lt;/p&gt;

&lt;p&gt;I hope you guys enjoy trying this out as much as I do!&lt;br&gt;
Until the next!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Icons used are from &lt;a href="https://www.flaticon.com/search?word=boost&amp;amp;type=icon&amp;amp;license=selection&amp;amp;order_by=4" rel="noopener noreferrer"&gt;Flaticon&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Other CodePen examples - &lt;a href="https://codepen.io/aepicos/pen/YzNebYr" rel="noopener noreferrer"&gt;Aepicos' Radial Gradient&lt;/a&gt; &amp;amp; &lt;a href="https://codepen.io/frytyler/pen/EGdtg" rel="noopener noreferrer"&gt;Tyler Fry's Linear gradient&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.makeuseof.com/css-background-gradients/" rel="noopener noreferrer"&gt;makeuseof.com&lt;/a&gt; - for the list of linear-gradient color combos.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://projects.verou.me/css3patterns/" rel="noopener noreferrer"&gt;projects.verou.me&lt;/a&gt; - More patterns using linear-gradient!&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://codepen.io/bennettfeely/pen/jOEjmXK" rel="noopener noreferrer"&gt;Bennett Freely's&lt;/a&gt; CodePen! - repeating-radial-gradient&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>codenewbie</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Frosted glass on CSS</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Fri, 17 Sep 2021 20:17:03 +0000</pubDate>
      <link>https://dev.to/tolentinoel/frosted-glass-on-css-37bg</link>
      <guid>https://dev.to/tolentinoel/frosted-glass-on-css-37bg</guid>
      <description>&lt;p&gt;Another week of learning something new! In this blog I am going to share with you how to make frosted glass just through CSS! There are a lot of variations you can do and that you can definitely find online. So let's go and explore together!&lt;/p&gt;

&lt;p&gt;By the end of this blog, we should have something like Kyle Wetton's frosted glass on &lt;a href="https://codepen.io/kylewetton/pen/bGbaazX" rel="noopener noreferrer"&gt;CodePen&lt;/a&gt;:&lt;br&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%2Fuploads%2Farticles%2Fnfeninxqehh9dv4g4acv.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%2Fuploads%2Farticles%2Fnfeninxqehh9dv4g4acv.png" alt="Kyle Wetton's Frosted Glass"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclaimer: Some are currently not compatible with Firefox, Firefox android and Internet Explorer. Checkout our Glass 4 for a more broad browser compatibility&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;So first of, let's make an html with all the elements we need. In my case, I wanted to make a mock login screen with that frosted glass design.&lt;br&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%2Fuploads%2Farticles%2F5jp722arh4c34dh7ul91.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%2Fuploads%2Farticles%2F5jp722arh4c34dh7ul91.png" alt="HTML Code"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now on our CSS file, we can apply our background-image to our 'body', adjust positioning and indicate the sizes you need then we'll get into the frosted glass.&lt;/p&gt;

&lt;p&gt;There's a lot of ways to implement this. Below are what I've tried:&lt;/p&gt;
&lt;h4&gt;
  
  
  Glass 1
&lt;/h4&gt;

&lt;p&gt;On your 'formDiv', you can apply backdrop-filter and box-shadow. In this case, box-shadow is inset with 200px spread with its shade and color opacity has been set. While backdrop-filter is set to blur at 8px. More of backdrop-filter on my next blog!&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nt"&gt;-webkit-backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;blur&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  &lt;span class="c"&gt;/* Safari 9+ */&lt;/span&gt;
&lt;span class="nt"&gt;backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;blur&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c"&gt;/* Chrome and Opera */&lt;/span&gt;
&lt;span class="nt"&gt;box-shadow&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;inset&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;200&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;255&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;255&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;255&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;08&lt;/span&gt;&lt;span class="o"&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%2Fuploads%2Farticles%2F93av4mcbqm19ikhr2cpn.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%2Fuploads%2Farticles%2F93av4mcbqm19ikhr2cpn.png" alt="Frosted glass 1"&gt;&lt;/a&gt;We got our frost! This looks more likely of a frosted film than glass.&lt;/p&gt;


&lt;h4&gt;
  
  
  Glass 2
&lt;/h4&gt;

&lt;p&gt;In this glass, we're setting the box-shadow darker, outset(the default by removing 'inset'), &amp;amp; less transparent, plus adding a background-color.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nt"&gt;-webkit-backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;blur&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;  &lt;span class="c"&gt;/* Safari 9+ */&lt;/span&gt;
&lt;span class="nt"&gt;backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;blur&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt; &lt;span class="c"&gt;/* Chrome and Opera */&lt;/span&gt;
&lt;span class="nt"&gt;box-shadow&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="err"&gt;10&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="err"&gt;15&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="err"&gt;10&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;rgb&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="err"&gt;15&lt;/span&gt;&lt;span class="o"&gt;%);&lt;/span&gt;
&lt;span class="nt"&gt;background-color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;rgb&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;228&lt;/span&gt; &lt;span class="err"&gt;228&lt;/span&gt; &lt;span class="err"&gt;228&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="err"&gt;15&lt;/span&gt;&lt;span class="o"&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%2Fuploads%2Farticles%2Fdvxvf5ezwkfmisb74pij.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%2Fuploads%2Farticles%2Fdvxvf5ezwkfmisb74pij.png" alt="frosted Glass 2"&gt;&lt;/a&gt;The shadow gives it a bit more perspective. But still similar to our first one.&lt;/p&gt;


&lt;h4&gt;
  
  
  Glass 3
&lt;/h4&gt;

&lt;p&gt;Another thing I have tried is using filter! but instead of using blur as the filter, I used drop-shadow with combination of background-color, and box-shadow(inset). &lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nt"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;drop-shadow&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;2&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="err"&gt;6&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;black&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="nt"&gt;background-color&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;rgb&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;152&lt;/span&gt; &lt;span class="err"&gt;151&lt;/span&gt; &lt;span class="err"&gt;151&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="err"&gt;25&lt;/span&gt;&lt;span class="o"&gt;%);&lt;/span&gt; &lt;span class="c"&gt;/* Just adjust the color or opacity to make the text pop! */&lt;/span&gt;
&lt;span class="nt"&gt;box-shadow&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;inset&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;200&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;rgb&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;255&lt;/span&gt; &lt;span class="err"&gt;255&lt;/span&gt; &lt;span class="err"&gt;255&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="o"&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%2Fuploads%2Farticles%2Fguvcse6cnj1qvi35kuk8.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%2Fuploads%2Farticles%2Fguvcse6cnj1qvi35kuk8.png" alt="Frosted glass 4"&gt;&lt;/a&gt;&lt;/p&gt;
In this case, it will look more of a tinted glass than frosted glass.




&lt;h4&gt;
  
  
  Glass 4
&lt;/h4&gt;

&lt;p&gt;Compatible with our IE and Firefox browsers!&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nt"&gt;background&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;#969899&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="c"&gt;/* Definitely adjustable to what shade you like */&lt;/span&gt;
&lt;span class="nt"&gt;opacity&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;6&lt;/span&gt;&lt;span class="o"&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%2Fuploads%2Farticles%2F120aco82g8vohp163lp1.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%2Fuploads%2Farticles%2F120aco82g8vohp163lp1.png" alt="Glass 4"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h4&gt;
  
  
  Glass 5
&lt;/h4&gt;

&lt;p&gt;If play around with it until you get the blur you want and want to add a little spice, you can also attach another backdrop-filter and some border!&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;

&lt;span class="nt"&gt;backdrop-filter&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;grayscale&lt;/span&gt;&lt;span class="o"&gt;(.&lt;/span&gt;&lt;span class="err"&gt;8&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="nt"&gt;blur&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;5&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="nt"&gt;box-shadow&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="nt"&gt;inset&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt; &lt;span class="err"&gt;200&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;255&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;255&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;255&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt;&lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;08&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;

&lt;span class="nt"&gt;border-top&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;2&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;solid&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;3&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="nt"&gt;border-left&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;2&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;solid&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="o"&gt;);&lt;/span&gt;
&lt;span class="nt"&gt;border-right&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;1&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;solid&lt;/span&gt; &lt;span class="nt"&gt;rgba&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;225&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="err"&gt;0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="err"&gt;2&lt;/span&gt;&lt;span class="o"&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%2Fuploads%2Farticles%2F4ohshv57sazjr6pzdulo.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%2Fuploads%2Farticles%2F4ohshv57sazjr6pzdulo.png" alt="Glass 5"&gt;&lt;/a&gt;See that grayscale take effect anything under the glass and the border gives it thickness!&lt;/p&gt;

&lt;p&gt;Check out my CodePen for the final results!&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/tolentinoel/embed/wvzbbEY?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;I had so much fun making this! I hope you did too!&lt;br&gt;
Until the next!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References/Links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://css-tricks.com/frosting-glass-css-filters/" rel="noopener noreferrer"&gt;CSS Tricks&lt;/a&gt; - Frosted Glass on CSS using filter()&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://images4.alphacoders.com/114/1144182.jpg" rel="noopener noreferrer"&gt;Background photo&lt;/a&gt; - Vector Nature wallpaper&lt;/li&gt;
&lt;li&gt;Google Fonts used:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://fonts.google.com/specimen/Raleway" rel="noopener noreferrer"&gt;Raleway&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://fonts.google.com/specimen/Fredoka+One" rel="noopener noreferrer"&gt;Fredoka One&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Inspiration in designing frosted glass : &lt;a href="https://codepen.io/motorlatitude/pen/JFkro" rel="noopener noreferrer"&gt;Lennart Hase's CodePen&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>codenewbie</category>
      <category>css</category>
      <category>html</category>
    </item>
    <item>
      <title>Learning MaterializeCSS</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Sun, 12 Sep 2021 00:03:55 +0000</pubDate>
      <link>https://dev.to/tolentinoel/learning-materializecss-15k5</link>
      <guid>https://dev.to/tolentinoel/learning-materializecss-15k5</guid>
      <description>&lt;h2&gt;
  
  
  What is &lt;a href="https://materializecss.com/getting-started.html" rel="noopener noreferrer"&gt;MaterializeCSS&lt;/a&gt;?
&lt;/h2&gt;

&lt;p&gt;From what I've seen, it's a CSS framework that's been used by thousands of websites around the world. &lt;a href="https://www.wappalyzer.com/technologies/ui-frameworks/materialize-css" rel="noopener noreferrer"&gt;List&lt;/a&gt; from wappalyzer.com. So far, I can see how it has a similar principles with Bootstrap but HTML! While a lot of times compared to Bootstrap, I learned that Bootstrap mainly uses JS-based templates unlike MaterializeCSS that mainly uses HTML &amp;amp; vanilla JS. But like Bootstrap, it's free, is an open-source tool and has a public repo on &lt;a href="https://github.com/Dogfalo/materialize" rel="noopener noreferrer"&gt;Github&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So how are we going to try our Materialize today? We'll try to apply some components to one of my projects and see how it works! I'm going to tinker this &lt;a href="https://github.com/tolentinoel/randomHex" rel="noopener noreferrer"&gt;project&lt;/a&gt; with materialize!&lt;/p&gt;




&lt;p&gt;So this is what we're working with..&lt;br&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%2Fuploads%2Farticles%2Ffuvudn0x4octaeqer7sa.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%2Fuploads%2Farticles%2Ffuvudn0x4octaeqer7sa.png" alt="Landing page"&gt;&lt;/a&gt;&lt;/p&gt;


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

&lt;p&gt;You can download it to you local machine with the &lt;a href="https://github.com/Dogfalo/materialize/releases/download/1.0.0/materialize-v1.0.0.zip" rel="noopener noreferrer"&gt;link&lt;/a&gt; they provided, through npm (&lt;code&gt;npm install materialize-css@next&lt;/code&gt;) or through a link that you can add to your html(which we'll be using today).&lt;/p&gt;

&lt;p&gt;Copy &amp;amp; paste these inside the &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; tag in your index.html.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;    &lt;span class="c"&gt;&amp;lt;!-- Compiled and minified CSS --&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://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- Compiled and minified JavaScript --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And viola! Now we can use Materialize to add more components to our mini project!&lt;/p&gt;




&lt;h3&gt;
  
  
  Navbar
&lt;/h3&gt;

&lt;p&gt;If you saw the page, it seems like it needed more components like a navbar. Application goes so easy like this;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Components, then &lt;a href="https://materializecss.com/navbar.html" rel="noopener noreferrer"&gt;Navbar&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;For demo purposes, let's just choose the first one. 
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmkamre8tp0xa5fmsihw9.png" alt="Right aligned navbar"&gt;Copy the html code snippet and paste it on your code.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once done, our code would look like this; &lt;br&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%2Fuploads%2Farticles%2F0e0w26ap04zqkll7vpfx.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%2Fuploads%2Farticles%2F0e0w26ap04zqkll7vpfx.png" alt="Code snippet"&gt;&lt;/a&gt;I had to change some attributes into JSX/JS format, and change the href values&lt;br&gt;
And for our page, now it has a navbar!&lt;br&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%2Fuploads%2Farticles%2Fhv0ghr3ea6fau1yzln8w.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%2Fuploads%2Farticles%2Fhv0ghr3ea6fau1yzln8w.png" alt="page navbar"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Icons
&lt;/h3&gt;

&lt;p&gt;Now you may ask, the examples on the website has icons. Yes! Materialize can also provide icons for your project with easy steps and a lot of options to choose from. &lt;br&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%2Fuploads%2Farticles%2Fpc3y32s9zujtioldw71t.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%2Fuploads%2Farticles%2Fpc3y32s9zujtioldw71t.png" alt="Icon list"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Components, then &lt;a href="https://materializecss.com/icons.html" rel="noopener noreferrer"&gt;Icons&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Copy &amp;amp; paste the script they have and paste it in the  tag of your index.html, just like how we installed Materialize in the beginning.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt; &lt;span class="nt"&gt;&amp;lt;link&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"https://fonts.googleapis.com/iconfamily=Material+Icons"&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;Syntax for usage: (JavaScript)&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="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;[SIZE] material-icons&lt;/span&gt;&lt;span class="dl"&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="nx"&gt;NAME&lt;/span&gt; &lt;span class="nx"&gt;OF&lt;/span&gt; &lt;span class="nx"&gt;ICON&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="c1"&gt;//So, if we want a small sun icon&lt;/span&gt;
&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;i&lt;/span&gt; &lt;span class="nx"&gt;className&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;small material-icons&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;wb_sunny&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/i&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then after adding it to our code, now we have this cool navbar with some nifty icons!&lt;br&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%2Fuploads%2Farticles%2F31zdumj2k3bymhn7canc.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%2Fuploads%2Farticles%2F31zdumj2k3bymhn7canc.png" alt="Navbar icons"&gt;&lt;/a&gt;I chose the icons that were more fitting to our page's style. For demo purposes only.&lt;/p&gt;


&lt;h3&gt;
  
  
  Color
&lt;/h3&gt;

&lt;p&gt;Now we have our navbar, but I want to change its color? Definitely can do this with CSS, but let's try and utilize more of our framework here. Materialize also provides a range of colors we can apply to our components!&lt;br&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%2Fuploads%2Farticles%2Ftoh1lxlb95wh9mrpyo9f.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%2Fuploads%2Farticles%2Ftoh1lxlb95wh9mrpyo9f.png" alt="Color component"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can use SASS/CSS for this. But the one we're using will be the className method.&lt;/p&gt;

&lt;p&gt;To add a specific color to our Navbar, let's add it in it's className:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;className=&lt;/span&gt;&lt;span class="s"&gt;"nav-wrapper pink lighten-3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
...
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Results using a couple of the color palettes:&lt;br&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%2Fuploads%2Farticles%2Fdr15lqhq08uzx2b9753x.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%2Fuploads%2Farticles%2Fdr15lqhq08uzx2b9753x.png" alt="Navbar color palette"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Finishing touches &amp;amp; Results
&lt;/h3&gt;

&lt;p&gt;Now that we had a chance to play around with some components, I tried to add more things in our mock website and this is how it turned out!&lt;br&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%2Fuploads%2Farticles%2F7rjikkkno4hs1yw8uo4j.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%2Fuploads%2Farticles%2F7rjikkkno4hs1yw8uo4j.png" alt="Day mode - showing navbar"&gt;&lt;/a&gt;Added another icon to represent the logo and I adjusted the logo's position using CSS&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%2Fuploads%2Farticles%2Fekpj4mtm39mkmk31ma1f.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%2Fuploads%2Farticles%2Fekpj4mtm39mkmk31ma1f.png" alt="Night mode"&gt;&lt;/a&gt;This is on night mode. Check out my &lt;a href="https://dev.to/tolentinoel/learning-to-toggle-dark-mode-through-react-hooks-43l1"&gt;blog&lt;/a&gt; on how I implemented the day/night mode.&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%2Fuploads%2Farticles%2Fybqao6rcxturwlws5hdi.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%2Fuploads%2Farticles%2Fybqao6rcxturwlws5hdi.png" alt="day mode - footer"&gt;&lt;/a&gt;I added a footer with links for a more complete webpage look.&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%2Fuploads%2Farticles%2Fzjlfmjawggb5dq1kpc98.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%2Fuploads%2Farticles%2Fzjlfmjawggb5dq1kpc98.png" alt="Night mode - footer"&gt;&lt;/a&gt;On night mode&lt;/p&gt;




&lt;p&gt;I hope i got you curious on MaterializeCSS's potential and inspire you to use it on your projects! &lt;/p&gt;

&lt;p&gt;Will definitely keep this in my arsenal and keep trying it out! What do you guys think of it? Let me know in comments below. Until the next!&lt;/p&gt;

</description>
      <category>css</category>
      <category>materializecss</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>CSS learnings!</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Thu, 02 Sep 2021 22:33:31 +0000</pubDate>
      <link>https://dev.to/tolentinoel/css-learnings-43g2</link>
      <guid>https://dev.to/tolentinoel/css-learnings-43g2</guid>
      <description>&lt;p&gt;I recently learned CSS things this week! It revolves around CSS due to certification exercises I have been taking. These are just a few but I hope someone can learn from this like how I did! So, here are some CSS attributes I've learned recently that you can try on you projects! &lt;/p&gt;

&lt;h3&gt;
  
  
  text-overflow
&lt;/h3&gt;

&lt;p&gt;If you're familiar with overflow, this does the same principle but specifically for text elements.&lt;/p&gt;

&lt;p&gt;Text-overflow can be set into these values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ellipsis&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In order for ellipsis to take effect, you need to set the text element's width, &lt;code&gt;white-space: hidden&lt;/code&gt; and &lt;code&gt;overflow: hidden&lt;/code&gt;.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo3dj9xjzu873q5ospy3q.png" alt="Sample ellipsis"&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;clip&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is basically the same way as how the &lt;code&gt;overflow : hidden&lt;/code&gt; works. Only thing is, text-overflow would only occur if overflow has been set.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb6b17w8qo8rwk3zqw8ro.png" alt="Comparison of ellipsis &amp;amp; clip"&gt;Above: Ellipsis - Bottom: Clip
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  object-fit
&lt;/h3&gt;

&lt;p&gt;I learned how to crop an image! More common solution to this is to use the photo as a background-image and apply adjustments from there but object-fit was said to be something more modern so I gave it a try.&lt;/p&gt;

&lt;p&gt;Object-fit values can be as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fill &lt;/li&gt;
&lt;li&gt;cover&lt;/li&gt;
&lt;li&gt;contain&lt;/li&gt;
&lt;li&gt;none&lt;/li&gt;
&lt;li&gt;scale-down&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out this &lt;a href="https://codepen.io/tolentinoel/pen/zYzBEod" rel="noopener noreferrer"&gt;CodePen&lt;/a&gt; for examples!&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/tolentinoel/embed/zYzBEod?height=600&amp;amp;default-tab=html,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;*object-position - Another attribute in line with object-fit. Since using object-fit will crop the image, this will help you adjust to change the point of focus of the element.&lt;br&gt;
Values can be positions (top, bottom, left &amp;amp; right) or length/percentages.&lt;/p&gt;

&lt;p&gt;Sample with using position value;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nf"&gt;#img1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;object-fit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;cover&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="err"&gt;//&lt;/span&gt; &lt;span class="err"&gt;Object&lt;/span&gt; &lt;span class="err"&gt;position&lt;/span&gt; &lt;span class="err"&gt;will&lt;/span&gt; &lt;span class="err"&gt;be&lt;/span&gt; &lt;span class="err"&gt;more&lt;/span&gt; &lt;span class="err"&gt;evident&lt;/span&gt; &lt;span class="err"&gt;with&lt;/span&gt; &lt;span class="err"&gt;object&lt;/span&gt; &lt;span class="err"&gt;fit&lt;/span&gt; &lt;span class="err"&gt;set&lt;/span&gt; &lt;span class="err"&gt;to&lt;/span&gt; &lt;span class="err"&gt;cover&lt;/span&gt;
  &lt;span class="nl"&gt;object-position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;left&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%2Fuploads%2Farticles%2Fsy15pdbf2dpochmeubxa.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%2Fuploads%2Farticles%2Fsy15pdbf2dpochmeubxa.png" alt="object-position left"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Sample using percentage value;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nf"&gt;#img2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;object-fit&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;cover&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;object-position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&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%2Fuploads%2Farticles%2Fqtwrisqmpcmyjiuaa46w.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%2Fuploads%2Farticles%2Fqtwrisqmpcmyjiuaa46w.png" alt="object-position at 100%"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Same photo different results! Neat right?&lt;/p&gt;




&lt;h3&gt;
  
  
  vertical-align
&lt;/h3&gt;

&lt;p&gt;For this one to work, the elements we need aligned need to be set as &lt;code&gt;display: inline&lt;/code&gt; or &lt;code&gt;display: inline-block&lt;/code&gt;. Then we align the elements altogether with vertical-align.&lt;/p&gt;

&lt;p&gt;Common values can be as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;middle&lt;/li&gt;
&lt;li&gt;baseline/bottom&lt;/li&gt;
&lt;li&gt;top&lt;/li&gt;
&lt;li&gt;length - length from it's parent's baseline.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79t9rgsnjn0w69hws70w.png" alt="Middle"&gt;Middle
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43juje8l2g7x7sv1bqmf.png" alt="top"&gt;Top
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbnksylq2f0dkjsh9u4ow.png" alt="baseline or bottom"&gt;Baseline or Bottom
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5bldzboxjl4td7h937ia.png" alt="length"&gt;Length (10px)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are also, &lt;code&gt;text-top&lt;/code&gt;, &lt;code&gt;text-bottom&lt;/code&gt;, &lt;code&gt;super&lt;/code&gt; &amp;amp; &lt;code&gt;sub&lt;/code&gt; but it's quite similar to the ones above it just follows it's parent's text element's alignment.&lt;/p&gt;

&lt;p&gt;I hope this blog got you curious to use these CSS attributes on your next project!&lt;/p&gt;

&lt;p&gt;Until the next!!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reference:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://css-tricks.com/" rel="noopener noreferrer"&gt;CSS Tricks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS" rel="noopener noreferrer"&gt;MDN Web Docs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>css</category>
      <category>codenewbie</category>
      <category>frontend</category>
    </item>
    <item>
      <title>SVGs &amp; Shapes!</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Mon, 30 Aug 2021 00:07:32 +0000</pubDate>
      <link>https://dev.to/tolentinoel/svgs-shapes-17kb</link>
      <guid>https://dev.to/tolentinoel/svgs-shapes-17kb</guid>
      <description>&lt;p&gt;Another week of learning again thanks to an opportunity in line with my job search.&lt;/p&gt;

&lt;p&gt;So what is this blog about? Well, I recently encountered a take home exercise where we have to use pure HTML/CSS. A figma design was given and there was a good chunk of elements that are indicated as polygon, rectangle, &amp;amp; ellipse. Never got use them beforehand, and if you haven't either, here's us trying it out together!&lt;/p&gt;

&lt;h3&gt;
  
  
  SVG
&lt;/h3&gt;

&lt;p&gt;SVG or Scalable Vector Graphics is a unique type of element that shares some attributes with CSS. My favorite about SVGs is that you don't lose quality whether zoomed in or resized. I got to see its potential when I helped built &lt;a href="https://github.com/tolentinoel/makegotchi-frontend" rel="noopener noreferrer"&gt;Makegotchi&lt;/a&gt; during bootcamp. &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fnnhk23%2Fmakegotchi-frontend%2Fblob%2Fmaster%2Fsrc%2Fimages%2FlogIn.png%3Fraw%3Dtrue" 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%2Fgithub.com%2Fnnhk23%2Fmakegotchi-frontend%2Fblob%2Fmaster%2Fsrc%2Fimages%2FlogIn.png%3Fraw%3Dtrue" alt="login page"&gt;&lt;/a&gt;We utilized SVG for the egg that is our login window&lt;/p&gt;

&lt;p&gt;Another good thing about SVGs is you can customize each point reference to make a shape! You can check out &lt;a href="https://boxy-svg.com/" rel="noopener noreferrer"&gt;Boxy SVG&lt;/a&gt; and try to play around with SVG shapes and designs!&lt;/p&gt;

&lt;p&gt;Further info on shared CSS attributes, check out &lt;a href="https://css-tricks.com/svg-properties-and-css/" rel="noopener noreferrer"&gt;CSS Tricks&lt;/a&gt; for a detailed list!&lt;/p&gt;
&lt;h3&gt;
  
  
  Polygon
&lt;/h3&gt;

&lt;p&gt;Polygon on html is made out of pairs of points that makes a shape. Try and play around with the code below.&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/tolentinoel/embed/wveKbwG?height=600&amp;amp;default-tab=html,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;strong&gt;Attributes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;stroke&lt;/code&gt; - is the line color of the polygon&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;stroke-width&lt;/code&gt; - corresponds to the line-weight &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;fill&lt;/code&gt; - for background-color&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;points&lt;/code&gt; - are the pair of points that make up each side of the shape. &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Rectangle
&lt;/h3&gt;

&lt;p&gt;Similar with the polygon, but simpler. You can definitely use polygon to make a rectangle or a square, you can also use &lt;code&gt;&amp;lt;rect&amp;gt;&lt;/code&gt; to make a rectangle. All you need is width and the height! Check out my CodePen below to try it out!&lt;br&gt;
&lt;iframe height="600" src="https://codepen.io/tolentinoel/embed/BaZoeRQ?height=600&amp;amp;default-tab=html,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
I had used a different color for the svg to distinguish the nesting.



&lt;p&gt;You can definitely just also use a div to create this square/rectangle, but for learning purposes I used &lt;code&gt;&amp;lt;rect&amp;gt;&lt;/code&gt; for more specificity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ellipse
&lt;/h3&gt;

&lt;p&gt;Yes! Ellipse like a circle! In this case, we can make ovals, egg shapes, teardrops, and other round-like shapes! Ellipse is also an SVG element and has a few attributes.&lt;/p&gt;

&lt;p&gt;As per &lt;a href="https://www.w3docs.com/learn-html/svg-ellipse.html" rel="noopener noreferrer"&gt;W3 schools&lt;/a&gt; here are each &lt;code&gt;attr&lt;/code&gt;'s roles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;cx - the x coordinate of the center of the ellipse.&lt;/li&gt;
&lt;li&gt;cy - the y coordinate of the center of the ellipse.&lt;/li&gt;
&lt;li&gt;rx - horizontal radius.&lt;/li&gt;
&lt;li&gt;ry - vertical radius.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/tolentinoel/embed/NWgGVag?height=600&amp;amp;default-tab=html,result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;There are so much more potential shapes to make using SVGs /polygons! There are elements like polyline, path and/or elements that are parallelogram in shape that used CSS &amp;amp; SVG element attributes. &lt;/p&gt;

&lt;p&gt;If you ask me, what else can you make using these elements? Check out this &lt;a href="http://www1.plurib.us/svg_gallery/" rel="noopener noreferrer"&gt;gallery&lt;/a&gt; of SVG, see their original file and inspect using your console. &lt;br&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%2Fuploads%2Farticles%2Fv7wj3yz3ostulwqxh9tl.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%2Fuploads%2Farticles%2Fv7wj3yz3ostulwqxh9tl.png" alt="SVG art inspected"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's a few I've learned to use as of recent! I hope I get to help you learn something new today!&lt;/p&gt;

&lt;p&gt;Until the next!&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.geeksforgeeks.org/svg-polygon-element/" rel="noopener noreferrer"&gt;GeeksforGeeks - More about polygons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.tutorialspoint.com/svg/svg_polygon.htm" rel="noopener noreferrer"&gt;Tutorialspoint - Polygons&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/rect" rel="noopener noreferrer"&gt;Rectangle - MDN&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/SVG/Element/ellipse" rel="noopener noreferrer"&gt;Ellipse examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www1.plurib.us/svg_gallery/" rel="noopener noreferrer"&gt;SVG Art gallery&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>codenewbie</category>
      <category>html</category>
      <category>svg</category>
    </item>
    <item>
      <title>String &amp; Array methods I recently learned - PART 2</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Thu, 19 Aug 2021 06:24:14 +0000</pubDate>
      <link>https://dev.to/tolentinoel/string-array-methods-i-recently-learned-part-2-1c58</link>
      <guid>https://dev.to/tolentinoel/string-array-methods-i-recently-learned-part-2-1c58</guid>
      <description>&lt;p&gt;Hi fellow code newbies! Yes! This is a 2nd part of my recent learnings of JavaScript methods! Mostly for this blog are Array methods! I didn't realize how much more methods I could've used in algorithms until I saw these!&lt;/p&gt;

&lt;h3&gt;
  
  
  .lastIndexOf()
&lt;/h3&gt;

&lt;p&gt;Returns the index/position of the element that meets the condition. In the example below, it returns the beginning index where the string "name" last occured.&lt;br&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%2Fuploads%2Farticles%2Fxvkzdlvkhyw9y518q9ze.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%2Fuploads%2Farticles%2Fxvkzdlvkhyw9y518q9ze.png" alt="code application in array &amp;amp; string"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  .match()
&lt;/h3&gt;

&lt;p&gt;Returns an array with key-value pairs if function call has a string as an argument and query.&lt;br&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%2Fuploads%2Farticles%2Fv3xbqdv9slc64jgpl2sp.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%2Fuploads%2Farticles%2Fv3xbqdv9slc64jgpl2sp.png" alt="match code application"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also use regular expression to filter out what you need to be matched from a string, and it will return an array of matched elements.&lt;br&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%2Fuploads%2Farticles%2F83dwk8hmuqym4rfcwqle.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%2Fuploads%2Farticles%2F83dwk8hmuqym4rfcwqle.png" alt="Trying out with regex"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  .flat()
&lt;/h3&gt;

&lt;p&gt;If you've heard of flattening the array, this is the method for it. Simple way to explain it, is that it concise a nested array into one. Sets the argument by default of 1.&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%2Fuploads%2Farticles%2Ffki468a3smzah3rhfi42.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%2Fuploads%2Farticles%2Ffki468a3smzah3rhfi42.png" alt="method in application"&gt;&lt;/a&gt;&lt;/p&gt;
Takes in an integer argument as the depth on how much into the array it will flatten.






&lt;h3&gt;
  
  
  .some()
&lt;/h3&gt;

&lt;p&gt;A boolean and returns true if any of the element from the array makes the function passed in true. This doesn't manipulate the array and may best work for validations.&lt;br&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%2Fuploads%2Farticles%2Fopittkzorjz1icc5jof3.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%2Fuploads%2Farticles%2Fopittkzorjz1icc5jof3.png" alt="Some method in application"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  .every()
&lt;/h3&gt;

&lt;p&gt;A boolean and will return true if &lt;strong&gt;ALL&lt;/strong&gt; of the elements in the array meets the function passed in as the argument. If the array is empty, it will still return true no matter the condition.&lt;br&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%2Fuploads%2Farticles%2Fep7r97udeau8v7iyjfhd.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%2Fuploads%2Farticles%2Fep7r97udeau8v7iyjfhd.png" alt="method in application"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  .copyWithin()
&lt;/h3&gt;

&lt;p&gt;This is an interesting one. It takes in 1-3 arguments depending on what you need. &lt;br&gt;
&lt;code&gt;copyWithin(target)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;copyWithin(target, start)&lt;/code&gt;&lt;br&gt;
&lt;code&gt;copyWithin(target, start, end)&lt;/code&gt;&lt;br&gt;
It copies part of the array and returns an array with all the copied parts you need &amp;amp; keeps its length same with the original array.&lt;br&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%2Fuploads%2Farticles%2F0g6l4hsmgl6m3qphkmsh.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%2Fuploads%2Farticles%2F0g6l4hsmgl6m3qphkmsh.png" alt="CopyWithin in 3 examples"&gt;&lt;/a&gt;&lt;/p&gt;
 Default value of end if left out is array.length 






&lt;p&gt;&lt;strong&gt;IDE themes used for code examples:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=dracula-theme.theme-dracula" rel="noopener noreferrer"&gt;Dracula&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=johnpapa.winteriscoming" rel="noopener noreferrer"&gt;Winter is Coming&lt;/a&gt; - Dark Blue&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sorcerer.mage.tools/" rel="noopener noreferrer"&gt;Sorcerer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=VictoriaDrake.kabukicho" rel="noopener noreferrer"&gt;Kabukichō&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=ankitcode.firefly" rel="noopener noreferrer"&gt;Firefly Pro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=idleberg.hopscotch" rel="noopener noreferrer"&gt;Hopscotch Mono&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" rel="noopener noreferrer"&gt;MDN - Array&lt;/a&gt; - for further examples if you need&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>codenewbie</category>
      <category>javascript</category>
      <category>arrays</category>
    </item>
    <item>
      <title>String &amp; Array Methods I recently learned!</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Wed, 11 Aug 2021 04:34:18 +0000</pubDate>
      <link>https://dev.to/tolentinoel/string-array-methods-i-recently-learned-50ec</link>
      <guid>https://dev.to/tolentinoel/string-array-methods-i-recently-learned-50ec</guid>
      <description>&lt;p&gt;Hi y'all! Below are my most recent discovery of some  string and array manipulation methods! I stumbled upon these methods while I was working through my daily algos. I can't pass up the chance to share what I learned! So, here it goes!&lt;/p&gt;

&lt;h3&gt;
  
  
  fill()
&lt;/h3&gt;

&lt;p&gt;It fills up an array of undefined elements.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7bNx7ju9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zweyevxahe3206ialqjs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7bNx7ju9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zweyevxahe3206ialqjs.png" alt="fill method applied"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  repeat()
&lt;/h3&gt;

&lt;p&gt;Takes a non-negative argument to determine the times of repetition and concats everything into one string. It is non-destructive and only makes a copy of the original string argument.&lt;br&gt;
 &lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w545-kA9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yceyea9qw9vmaj8caszc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w545-kA9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yceyea9qw9vmaj8caszc.png" alt="Repeat method applied"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---8eWjMnn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j161q9qisqeo692jnhsg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---8eWjMnn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j161q9qisqeo692jnhsg.png" alt="Using string literals"&gt;&lt;/a&gt;Using string literals or template literals&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--35x6Y5Cm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dn0k2d12i4dptnr9m8lx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--35x6Y5Cm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dn0k2d12i4dptnr9m8lx.png" alt="repeat with float num"&gt;&lt;/a&gt;Float number arguments will be considered as integers.&lt;/p&gt;


&lt;h3&gt;
  
  
  fromCodePoint()
&lt;/h3&gt;

&lt;p&gt;Static string method. Can't be used for a string object you created. Can be used for symbol matching&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&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="nb"&gt;String&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;fromCodePoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9731&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;☃&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;_Yes&lt;/span&gt; &lt;span class="nx"&gt;I&lt;/span&gt; &lt;span class="nx"&gt;think&lt;/span&gt; &lt;span class="nx"&gt;it&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;s a snowman too_)
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  codePointAt()
&lt;/h3&gt;

&lt;p&gt;You're maybe wondering how would you know which code point to use on the method beforehand. This is it!&lt;br&gt;
This method returns a integer(non-negative) that is UTF-16 code point value. Takes in the index/position of the character from the string you want to know the code point value of.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;★♲☃&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;codePointAt&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="c1"&gt;//9733 &lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
I think this can work really well in validations or comparison if needed.








&lt;h3&gt;
  
  
  padEnd()
&lt;/h3&gt;

&lt;p&gt;Yes! It pads the end of the string to reach the length you indicated in the argument. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Yup&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;padEnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;*&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;// Yup     *&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It can also take in a 2nd argument if you have a specific character or string to repeatedly pad your object.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&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="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Yup&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;str&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;padEnd&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;!&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="c1"&gt;// Yup.....!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same principle goes for &lt;strong&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart"&gt;padStart()&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  trim(), trimEnd(), trimStart()
&lt;/h3&gt;

&lt;p&gt;Removes whitespaces from both ends of the string. While trimEnd and trimStart removes whitespaces from a specific side of the string.&lt;/p&gt;

&lt;p&gt;trimEnd() &amp;amp; trimStart() are also known as &lt;strong&gt;&lt;a href="https://www.geeksforgeeks.org/javascript-trimstart-and-trimleft-method/"&gt;trimLeft()&lt;/a&gt; &amp;amp; &lt;a href="https://www.geeksforgeeks.org/javascript-trimend-and-trimright-method/"&gt;trimRight()&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You maybe wondering in what algorithm was I able to use some of these methods?&lt;/p&gt;

&lt;p&gt;Try and see if you can solve this &lt;a href="https://www.codewars.com/kata/5412509bd436bd33920011bc"&gt;Codewars&lt;/a&gt; Credit card mask challenge using some of the methods above!&lt;/p&gt;

&lt;p&gt;Another one you can try is from CodeSignal, called Frame Generator. The goal is to write a function that takes in a number and returns an array of strings that would look like frame of asterisks.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TP1GtM-j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjp44sl1p79fdn6q3ytz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TP1GtM-j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vjp44sl1p79fdn6q3ytz.png" alt="function call"&gt;&lt;/a&gt;Check out how I utilized some methods above to solve this! - &lt;a href="https://github.com/tolentinoel/algo_practice/blob/main/JS/frameGen.js"&gt;Github.com/tolentinoel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope this is trivial! Until the next!&lt;/p&gt;

</description>
      <category>algorithms</category>
      <category>codenewbie</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Pagination navigation</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Sun, 08 Aug 2021 00:56:54 +0000</pubDate>
      <link>https://dev.to/tolentinoel/pagination-navigation-2iof</link>
      <guid>https://dev.to/tolentinoel/pagination-navigation-2iof</guid>
      <description>&lt;h2&gt;
  
  
  What is Pagination in web development?
&lt;/h2&gt;

&lt;p&gt;Best way I can explain it is by splitting your website's content by using pages. Just like pages in a book, where it's a series of pages that contains the whole story.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pagination vs. Lazy-loading vs. Infinite scrolling?
&lt;/h2&gt;

&lt;p&gt;That really depends on what your website needs and what are your UX goals are. There is an &lt;a href="https://www.smashingmagazine.com/2016/03/pagination-infinite-scrolling-load-more-buttons/"&gt;article&lt;/a&gt; written by Christian Holst for Smash magazine that compares the three and what is the most common practice as per the studies in the eCommerce world.&lt;/p&gt;

&lt;p&gt;Since we're currently curious about pagination, I will try and implement it in a mock project and I'll take you in the learning journey with me!&lt;/p&gt;

&lt;p&gt;So for this blog, I tried to apply pagination in a mock gallery with around 80 photos. But what are we trying to solve right now? Current flaw I notice is loading the elements in the DOM flawlessly and there is less user interaction on the page. For sure there are more ways to utilize pagination in your advantage, but we're gonna focus on those 2 for now.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Here is the mock photo gallery I built to imitate the case we're trying to test with pagination. I added different types of image sources. &lt;br&gt;
( 1. Via url , 2. Photos saved in public folder )&lt;/em&gt;&lt;br&gt;
&lt;a href="https://i.giphy.com/media/dXNoNwdTgXWR9Us2zI/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/dXNoNwdTgXWR9Us2zI/giphy.gif" alt="scrolling the page gif"&gt;&lt;/a&gt; &lt;br&gt;
&lt;em&gt;See how upon refresh, our gallery doesn't load as quick as we want since it's all in one big dump of photos needed to be displayed.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Using pagination, users would have more interaction and control in our mock photo gallery and will help with loading time since it only had to load part of the whole gallery. Pros and Cons of using pagination have also been discussed in a blog from &lt;a href="https://uxplanet.org/ux-infinite-scrolling-vs-pagination-1030d29376f1"&gt;UXPlanet&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Application
&lt;/h3&gt;

&lt;p&gt;Quickest way to apply pagination are libraries!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/IEwEu42K8mQlF2AUP4/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/IEwEu42K8mQlF2AUP4/giphy.gif" alt="pagination applied"&gt;&lt;/a&gt; &lt;em&gt;In this one I have used, React-Bootstrap Tab component to apply the pagination principle. Splitting the gallery into 4 pages. Also checkout &lt;a href="https://react-bootstrap.github.io/components/pagination/"&gt;Pagination component&lt;/a&gt; in React- Bootstrap too!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;My code using the Tab component looks like this;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5617TXnE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9svibh1jmi5s84ho3w64.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5617TXnE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9svibh1jmi5s84ho3w64.png" alt="Code"&gt;&lt;/a&gt;&lt;br&gt;
Other ways to do this is &lt;strong&gt;manipulating the state&lt;/strong&gt;, or using a &lt;strong&gt;global variable&lt;/strong&gt; for the pool of photos to manipulate, or manipulating through your &lt;strong&gt;database query&lt;/strong&gt; (See this &lt;a href="https://dev.to/umpp101/different-types-of-pagination-3cgo"&gt;example&lt;/a&gt;). In this method I did, I had a global variable(links) &amp;amp; a folder of photos in my public folder. Hence, the different methods to slice them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Options for pagination:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Standard pagination: Numbers, arrows, dots/icons, tabs
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9Ney0DEr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bfv7x8r95eb88nheigpz.png" alt="Standard pagination - numbers"&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T1mjLBoD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/508b16cv3dnjqfzgvnnk.png" alt="Google pagination"&gt;
&lt;/li&gt;
&lt;li&gt;Load more/Click for more button
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pBH1_1hq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u3727cz6pwo7oex4l8zp.png" alt="Load more button"&gt;
&lt;/li&gt;
&lt;li&gt;Infinite Scroll
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ONkvvBB2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gh9ey31lhhdozvmgp7gw.png" alt="instagram infinite scroll"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Besides the options for pagination, you can also make your own and style it in many ways! In CSS, there are more pagination styles to choose from! Check this &lt;a href="https://www.geeksforgeeks.org/css-pagination/"&gt;article&lt;/a&gt; from Geeks for Geeks about it! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I hope this blog helped anyone looking into applying pagination into your projects!&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tada! The finish product!
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3sUIH50l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2z6wgcdk6jyi9ehx7xqt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3sUIH50l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2z6wgcdk6jyi9ehx7xqt.png" alt="Page 1"&gt;&lt;/a&gt;&lt;em&gt;Page 1&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--03q0jwgN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w2931mguj993mz6qwj5c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--03q0jwgN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w2931mguj993mz6qwj5c.png" alt="Page 3"&gt;&lt;/a&gt;&lt;em&gt;Page 3&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Github &lt;a href="https://github.com/tolentinoel/randomHex"&gt;Repo&lt;/a&gt; - repo I built for this blog and &lt;a href="https://dev.to/tolentinoel/cards-that-flip-169o"&gt;more&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.smashingmagazine.com/2016/03/pagination-infinite-scrolling-load-more-buttons/"&gt;Smash Magazine article&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://uxplanet.org/ux-infinite-scrolling-vs-pagination-1030d29376f1"&gt;Infinite Scrolling vs. Pagination&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://hipstew.herokuapp.com/"&gt;Hipstew web app&lt;/a&gt;- Load more button example&lt;/li&gt;
&lt;li&gt;Icons from IconFinder - &lt;a href="https://www.iconfinder.com/search?q=fantasy&amp;amp;price=free"&gt;Fantasy&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Pagination in Vue from &lt;a href="https://css-tricks.com/creating-a-reusable-pagination-component-in-vue/"&gt;CSS tricks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Charter Photos from &lt;a href="http://suciacharters.com/"&gt;Sucia Charters&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>pagination</category>
      <category>codenewbie</category>
      <category>navigation</category>
    </item>
    <item>
      <title>Git commands that you might not have used before.</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Thu, 29 Jul 2021 01:04:50 +0000</pubDate>
      <link>https://dev.to/tolentinoel/git-commands-that-you-might-not-have-used-before-4g9i</link>
      <guid>https://dev.to/tolentinoel/git-commands-that-you-might-not-have-used-before-4g9i</guid>
      <description>&lt;p&gt;Hello! This blog is for my fellow codenewbies out there that are trying to know more about Git/ Git workflow!&lt;/p&gt;

&lt;p&gt;I've recently encountered these commands and I thought might as well share it to everyone who is new in using git and are trying to learn more how to maneuver in it. There are so many git commands that needs to be learned, but these are the ones I recently have been able to use!&lt;/p&gt;

&lt;h2&gt;
  
  
  git log
&lt;/h2&gt;

&lt;p&gt;Lists out your commits starting from the most recent one. It includes the commit reference &amp;amp; the commit message you've attached with it. This is a good tool to utilize when you need to track down your commits. Looks like this;&lt;br&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%2Fuploads%2Farticles%2Fhztvhmh5mt08kli89tig.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%2Fuploads%2Farticles%2Fhztvhmh5mt08kli89tig.png" alt="git log list"&gt;&lt;/a&gt;(&lt;em&gt;To see further, press &lt;code&gt;Enter/Return&lt;/code&gt; key, to exit git log, press &lt;code&gt;q&lt;/code&gt;&lt;/em&gt;)&lt;/p&gt;




&lt;h2&gt;
  
  
  git log --all --decorate --oneline --graph
&lt;/h2&gt;

&lt;p&gt;If you're like me you like visuals. I didn't know that there is a way to show a graph of your branches, merges &amp;amp; commits in the command line! Once you ran the command, it should show something like this;&lt;br&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%2Fuploads%2Farticles%2Fu9no602nvf89px1w7g7q.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%2Fuploads%2Farticles%2Fu9no602nvf89px1w7g7q.png" alt="CLI command git log"&gt;&lt;/a&gt;&lt;br&gt;
(&lt;em&gt;To see further, press &lt;code&gt;Enter/Return&lt;/code&gt; key, to exit git log, press &lt;code&gt;q&lt;/code&gt;&lt;/em&gt;)&lt;/p&gt;




&lt;h2&gt;
  
  
  git shortlog
&lt;/h2&gt;

&lt;p&gt;Sorts out each commit by author. Good way to see who's working on what. Base on mine, since I am working alone on this repo, it showed my Github username for the commits, and Github public name for the merges. &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%2Fuploads%2Farticles%2F92edgjdx5atqtfa0hvbe.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%2Fuploads%2Farticles%2F92edgjdx5atqtfa0hvbe.png" alt="CLI shortlog"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  git cherry-pick
&lt;/h2&gt;

&lt;p&gt;Yes! As the name suggests, you get to cherry-pick through your commits and move one commit from a branch to another! You might think of using &lt;code&gt;git merge&lt;/code&gt; that is another way to it if you wanted to keep the history of change in Git. Good example of cherry-picking is for example you have 2 branches called devBranch &amp;amp; branch2a and you had your commit in devBrancg but supposedly need to be in branch2a.&lt;br&gt;
To use it, &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;take a note of the commit reference(&lt;em&gt;Ex.227aaf1&lt;/em&gt;) using git log, &lt;/li&gt;
&lt;li&gt;then checkout to branch2a. Once there,&lt;/li&gt;
&lt;li&gt;run &lt;code&gt;git cherry-pick [227aaf1]&lt;/code&gt; and it will show you the conflicts;
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe1r7j8mbme5240s16zya.png" alt="cherry-pick conflicts"&gt;
&lt;/li&gt;
&lt;li&gt;Once resolved, run add and commit the changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Visual examples for cherry-picking in Git can be found in &lt;a href="https://www.gitkraken.com/learn/git/cherry-pick" rel="noopener noreferrer"&gt;GitKraken&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  git commit --amend
&lt;/h2&gt;

&lt;p&gt;Seeing your git log, what if you thought of updating the most recent commit, whether to add more detail on the commit message or alter a little of the code?&lt;br&gt;
Example usage of &lt;code&gt;git commit --amend&lt;/code&gt;, let say you got your changes saved and you do your regular &lt;code&gt;git add .&lt;/code&gt; &amp;amp; commit but your commit message was short like this(according to &lt;code&gt;git log&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%2Fuploads%2Farticles%2Fftfioq1p305k78jkn0rm.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%2Fuploads%2Farticles%2Fftfioq1p305k78jkn0rm.png" alt="amend"&gt;&lt;/a&gt;-&lt;em&gt;See our most recent commit has a very short message and if we want to change that, we run &lt;code&gt;git commit --amend&lt;/code&gt;.&lt;/em&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%2Fuploads%2Farticles%2F2lnde0wwwyzvsf5j20lj.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%2Fuploads%2Farticles%2F2lnde0wwwyzvsf5j20lj.png" alt="In git amend"&gt;&lt;/a&gt;&lt;em&gt;This will come up, then you have the chance to alter the first line and as you see I changed the git message into "&lt;code&gt;whitespace removed from FlipCard.js&lt;/code&gt;" instead of just "space". &lt;br&gt;
To save the changes you did, press &lt;code&gt;Ctrl + C&lt;/code&gt; then type &lt;code&gt;:wq&lt;/code&gt; and press &lt;code&gt;Enter&lt;/code&gt;&lt;/em&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%2Fuploads%2Farticles%2Faa37fj7zjpm2x4z55rht.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%2Fuploads%2Farticles%2Faa37fj7zjpm2x4z55rht.png" alt="After amend"&gt;&lt;/a&gt;-&lt;em&gt;You can confirm it through git log again if it went through matching the new commit reference as well.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Other Vim commands are &lt;a href="http://www.fprintf.net/vimCheatSheet.html" rel="noopener noreferrer"&gt;here&lt;/a&gt; and further details or examples about git commit --amend from &lt;a href="https://www.atlassian.com/git/tutorials/rewriting-history" rel="noopener noreferrer"&gt;Git tutorials&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  git push --force-with-lease
&lt;/h2&gt;

&lt;p&gt;This command is ran after commands like git rebase or git commit --amend. This is a safer option on pushing commits and offers a bit of protection. Here is one source on further explanation for  &lt;a href="https://blog.developer.atlassian.com/force-with-lease/" rel="noopener noreferrer"&gt;--force-with-lease&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  git checkout -
&lt;/h2&gt;

&lt;p&gt;Brings you back to previous branch you were in. (&lt;em&gt;My  new current go-to command everytime I forget my branch names.&lt;/em&gt;) This command helped me alot while going through the branches for this blog!&lt;/p&gt;




&lt;p&gt;There are definitely tons of commands I want to learn and use, like &lt;code&gt;git rebase&lt;/code&gt;, &lt;code&gt;git reflog&lt;/code&gt;, even be more familiar with &lt;code&gt;git remote&lt;/code&gt;. I hope this blog helped you in a way if you are new to git.&lt;/p&gt;

&lt;p&gt;If you have any resource visual learning of Git commands, or if I have missed anything, please let me know in the comments below! Thank you! Until the next!&lt;/p&gt;

&lt;p&gt;References:&lt;br&gt;
&lt;a href="https://www.atlassian.com/git/tutorials/learn-git-with-bitbucket-cloud" rel="noopener noreferrer"&gt;Atlassian&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.iconfinder.com/" rel="noopener noreferrer"&gt;Header icons&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.gitkraken.com/learn/git" rel="noopener noreferrer"&gt;GitKraken&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>codenewbie</category>
      <category>git</category>
    </item>
    <item>
      <title>Cards that flip!</title>
      <dc:creator>Ellaine Tolentino</dc:creator>
      <pubDate>Sat, 24 Jul 2021 01:46:43 +0000</pubDate>
      <link>https://dev.to/tolentinoel/cards-that-flip-169o</link>
      <guid>https://dev.to/tolentinoel/cards-that-flip-169o</guid>
      <description>&lt;p&gt;Hi all! This blog is me sharing how I applied CSS to make the cards flip on my memory game web-app called &lt;a href="https://tolentinoel.github.io/flip/" rel="noopener noreferrer"&gt;Flip!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Browser view&lt;/em&gt;&lt;br&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%2Fuploads%2Farticles%2F78aph7amlfdx1jfswqr5.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%2Fuploads%2Farticles%2F78aph7amlfdx1jfswqr5.png" alt="Browser view"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Mobile view&lt;/em&gt;&lt;br&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%2Fuploads%2Farticles%2F33loluire4psh7ecvmrl.jpeg" 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%2Fuploads%2Farticles%2F33loluire4psh7ecvmrl.jpeg" alt="Flip memory game"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The game was built for a project submission while I was in the bootcamp. Main requirement is to utilize vanilla JavaScript. &lt;/p&gt;

&lt;p&gt;Besides the themes and APIs I’ve used, I am pretty proud that I was able to pull through the card flip effect using CSS!&lt;/p&gt;

&lt;p&gt;The animation we’re trying to breakdown looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/Gtj8CIgF5VNQxKcyIo/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/Gtj8CIgF5VNQxKcyIo/giphy.gif" alt="flip card on click"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm just going to breakdown how I did it with vanilla JavaScript. (You may definitely apply the similar principles with a library like React!)&lt;/p&gt;

&lt;p&gt;So where do we begin? &lt;/p&gt;
&lt;h4&gt;
  
  
  Making the container/deck for our cards:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Here, we add the &lt;code&gt;eventListener&lt;/code&gt; for a click, and use a built-in function called &lt;em&gt;toggle&lt;/em&gt; to switch the class. &lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Don't forget to append it to the body! (Ex. &lt;code&gt;body.appendChild(container)&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;


&lt;h4&gt;
  
  
  Inside our container are the cards. There are 4 parts of the card.
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The card container&lt;/strong&gt; - &lt;em&gt;I utilized this for size, shape and positioning of the 'cards' in the deck and also where we toggle class every click.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Flip-card&lt;/strong&gt; - &lt;em&gt;A div that contains our Front and Back divs and will have the animation&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Front&lt;/strong&gt; - &lt;em&gt;A div that will remain empty as if the card is facing down&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Back&lt;/strong&gt; - &lt;em&gt;A div where the icon or image will be in.&lt;/em&gt;

&lt;ul&gt;
&lt;li&gt;Don't forget to append them and nest them correctly! It will look like this;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Okay now we have our cards set and our class toggle is in code, let's work our CSS.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.card-container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;180px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;perspective&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1000px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Something new here is the perspective attribute. The higher the pixel, the tighter the turn as our card flips. Setting it lower will make it look like a big door swing.(&lt;em&gt;Try to set it at 200px and you'll see what I mean.&lt;/em&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.flip-card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;transition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;transform&lt;/span&gt; &lt;span class="m"&gt;1s&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;transform-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;preserve-3d&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;2 important things here, the &lt;code&gt;transition&lt;/code&gt; and &lt;code&gt;transform-style&lt;/code&gt;. For transition, there can be 4 attributes values you can declare. &lt;a href="https://css-tricks.com/almanac/properties/t/transition/" rel="noopener noreferrer"&gt;CSS tricks&lt;/a&gt; explains it in detail. But all we need is the transition-property of &lt;code&gt;transform&lt;/code&gt; with a duration of 1s or 1 second. Definitely can adjust slower or faster based on your preference. While for &lt;code&gt;transform-style&lt;/code&gt;, we need it in preserve-3d value to have our elements stack up together in 3d dimension. &lt;a href="https://tympanus.net/codrops/css_reference/transform-style/" rel="noopener noreferrer"&gt;Codrops&lt;/a&gt; explains other subcategories of &lt;code&gt;transform-style&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.card-container.flip&lt;/span&gt; &lt;span class="nc"&gt;.flip-card&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;rotateY&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;180deg&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;In here, we're setting our flip-card div to transform rotate in Y-axis at 180 degrees. In line with transform-style, CSS-tricks also explained how &lt;code&gt;perspective&lt;/code&gt; transform works and has examples &lt;a href="https://css-tricks.com/almanac/properties/t/transform/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.flip-card-front&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nc"&gt;.flip-card-back&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;backface-visibility&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;hidden&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So here we set the size for both front and back divs. You probably notice the &lt;code&gt;backface-visibility&lt;/code&gt; set as hidden. It's literally doing what it says. Hiding the backface of the element since we have them set in 3d dimension. Here's a &lt;a href="https://css-tricks.com/almanac/properties/b/backface-visibility/" rel="noopener noreferrer"&gt;link&lt;/a&gt; for a better breakdown of what it does.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.flip-card-front&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#333&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.flip-card-back&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#05486b&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#fff&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;rotateY&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;180deg&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;Of course! Colors! Just to differentiate the front and back, and see it flip better, I set it into 2 different background colors. But one div has also a transform rotate. We want the empty side to show first.&lt;/p&gt;

&lt;p&gt;Now you should have something like this!!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/1OdpQNRzjLy289lydW/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/1OdpQNRzjLy289lydW/giphy.gif" alt="gif of card flip"&gt;&lt;/a&gt;&lt;br&gt;
In game, I have a function that collects the event target, compares them, flips them back if it's not a match and adds 1 to the number of moves.&lt;/p&gt;

&lt;p&gt;I hope this is helpful for anyone wanting to build an app with this effect! Until the next!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;br&gt;
My CodePen: &lt;a href="https://codepen.io/tolentinoel/pen/VwKeQjw" rel="noopener noreferrer"&gt;Card flip&lt;/a&gt;&lt;br&gt;
CSS tricks: &lt;a href="https://css-tricks.com/" rel="noopener noreferrer"&gt;link&lt;/a&gt;&lt;br&gt;
RickMorty API: &lt;a href="https://rickandmortyapi.com/api/character/" rel="noopener noreferrer"&gt;Characters&lt;/a&gt;&lt;br&gt;
Flip! memory game: &lt;a href="https://tolentinoel.github.io/flip/" rel="noopener noreferrer"&gt;App&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
