{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/156","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"Ever wondered how I work? No? Well, too bad, I'm still gonna write about it. Hello and welcome to a blog post dedicated to me. In this…","fields":{"slug":"/engineering/my-name-is-darryl-this-is-how-work/"},"html":"<p>Ever wondered how I work? No? Well, too bad, I'm still gonna write about it. Hello and welcome to a blog post dedicated to me. In this episode, I'm going to tell you about the tools I use, the things I do to get design inspiration, and what I do when I get stuck on a project.</p>\n<p>Let's get started!</p>\n<h2 id=\"tools-i-use\" style=\"position:relative;\"><a href=\"#tools-i-use\" aria-label=\"tools i use permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Tools I use</h2>\n<h4 id=\"coffee\" style=\"position:relative;\"><a href=\"#coffee\" aria-label=\"coffee permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Coffee</h4>\n<p>Let's face it, you all know this is the number 1 priority for pretty much everyone you know. Getting my fuel up and over driving my brain... And hope to god I don't break down in the middle of the day.</p>\n<h4 id=\"sublime-text-3\" style=\"position:relative;\"><a href=\"#sublime-text-3\" aria-label=\"sublime text 3 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Sublime Text 3</h4>\n<p>The Photoshop to my coding skills. Sure, there are other text editors out there but this one really knows what it's doing. I have come to the point where I've installed so many Sublime Packages that I cannot function without them.</p>\n<p>Some of those packages are:</p>\n<ol>\n<li><strong>Emmet</strong> Boy, oh boy, Let me tell you about Emmet. But, it would take a long time to explain what it is, so just go to their <a href=\"http://emmet.io/\">site</a>. It's basically premade snippets for pretty much everything you need.</li>\n<li><strong>SidebarEnhancement</strong>Sublime's sidebar is a little bit underdeveloped. Then again, that's what packages are for, right? This nifty little package ehances your sidebar with more options to choose from like: '<em>Reveal...</em>' (which opens the file folder).</li>\n<li><strong>ColorHighlighter</strong>If you're the kind of person who remembers the hex code for colors, you are one talented individual. Ya see, it's hard to visualize colors using hex code. ColorHighlighter puts a background on those colors for you to easily visualize what kind of color #00427c is (regal blue, btw).</li>\n<li><strong>SFTP</strong>This one is a cool package. It lets you edit, sync, and save on-upload files from any of your sftp or ftp servers. But only if you configure it properly. If you use any preprocessors and you're worried that you have to upload the processed file manually. Worry no more as you can make sftp monitor that file if it has changed and automatically upload it. Pretty neat, huh?</li>\n</ol>\n<p><em>And since we're talking about sublime and packages, <a href=\"/beginners-guide-for-sublime-text/\">check out this nifty blog about sublime text and their packages.</a></em></p>\n<h4 id=\"codekit\" style=\"position:relative;\"><a href=\"#codekit\" aria-label=\"codekit permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Codekit</h4>\n<p>If you don't know what is codekit, you should. It compiles everything from SASS to HAML to Coffeescript. It also auto refresh your browser on every save. It... it just works. Bower is also built-in so you have access to over 6,000 components. Best part? No command line usage. Just drop your project files and go.</p>\n<h2 id=\"what-i-do-to-get-inspired\" style=\"position:relative;\"><a href=\"#what-i-do-to-get-inspired\" aria-label=\"what i do to get inspired permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What I do to get inspired.</h2>\n<p>As a normal human being — and not an extraterrestrial or alien as you tiny humans may call it. I tend to get stuck in a design black hole. It is where every ideas you have is just 1 big blank canvas — or as some artists call it \"modern art\". So what do I do when I don't have any ideas? It's simple really. The first website I go to is <a href=\"http://dribbble.com\">dribbble.com</a>. Dribble used to be an invite-only social network for designers. I think they probably opened their doors to everyone. I'm not really sure. But, I am sure that most of the designers there are still the best of the best. What I really like about it is when some designers show how their designs interact with users. With the help of GIF or <a href=\"https://codepen.io/\">codepen</a>. Speaking of codepen, That's the place I go to if I am in need of some CSS trickery. At some point, I do get inspiration from that place too. If dribbble can't help my —oh so in the dark— brain, I go to Pinterest. Pinterest have their own design category with a bunch of different sub categories from Graphic Design to UI/UX. The best thing about it? It links back to another site with more design inspiration. YAY for Pinterest.</p>\n<h3 id=\"getting-out-of-a-sticky-situation\" style=\"position:relative;\"><a href=\"#getting-out-of-a-sticky-situation\" aria-label=\"getting out of a sticky situation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Getting out of a sticky situation</h3>\n<p>Now that my brain is full of design food. How do I put it to work? There's this thing called a notebook. If you don't know what that is. It looks like this. <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 261px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.9463601532567%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAPABQDASIAAhEBAxEB/8QAFwAAAwEAAAAAAAAAAAAAAAAAAAQFAv/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/9oADAMBAAIQAxAAAAFubVWho2V//8QAGxAAAgIDAQAAAAAAAAAAAAAAAgMBEQAEExT/2gAIAQEAAQUCfscs9bLS0jAly2R1IErrP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EAB0QAAICAQUAAAAAAAAAAAAAAAARAQISIUFhgZH/2gAIAQEABj8CWHY2O1fCc9K7QcCP/8QAHBABAAIDAAMAAAAAAAAAAAAAAQARITFRQWGB/9oACAEBAAE/IbVEvWo4b5rEG5seIRXT2xIrfEoQFBon/9oADAMBAAIAAwAAABC4z//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8QP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8QP//EAB4QAQACAQQDAAAAAAAAAAAAAAERIQAxQVGhYXHw/9oACAEBAAE/EFn00pfqNesfEnBHTAQDYFUnN4MVEaF+VG2P2lpMr4njAZgQBQZ//9k='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"notebook\"\n        title=\"notebook\"\n        src=\"/static/dabb81722b8957c787f016d75fc760ff/677e6/notebook.jpg\"\n        srcset=\"/static/dabb81722b8957c787f016d75fc760ff/677e6/notebook.jpg 261w\"\n        sizes=\"(max-width: 261px) 100vw, 261px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span> This is where I start sketching or wireframing all the things I need before moving on to the digital format. And there you have it. A sneak peek on how I work. I hope that this gave you an idea on how to improve your everyday design life. A word of advice. <em>There are a thousand ways to do 1 thing. If someone told you it can't be done; prove them wrong.</em></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"September 22, 2015","updated_date":null,"description":null,"title":"Hi, My Name is Darryl, and This is How I Work","tags":["Tools","Engineering"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1,"src":"/static/c79f21489b740148a259277d35e3bbd5/630fb/darryl-how-i-work-300x300.png","srcSet":"/static/c79f21489b740148a259277d35e3bbd5/69585/darryl-how-i-work-300x300.png 200w,\n/static/c79f21489b740148a259277d35e3bbd5/630fb/darryl-how-i-work-300x300.png 300w","sizes":"(max-width: 300px) 100vw, 300px"}}},"author":{"id":"Team LoginRadius","github":"LoginRadius","avatar":null}}}},{"node":{"excerpt":"Sublime is no doubt the highly preferred light weight editor for developers, it doesn't require major installation space and working with it…","fields":{"slug":"/engineering/beginners-guide-for-sublime-text/"},"html":"<p>Sublime is no doubt the highly preferred light weight editor for developers, it doesn't require major installation space and working with it is just plain fun. The goal of this blog is to help you set-up the basic extensions that are required while working with Sublime: Package Control, a professional, sharp looking theme pack, and a core feature of Sublime, \"Goto Everywhere\". I am using a Mac, but the concept also works well in Windows, check the corresponding shortcut online, and it should be an easy and smooth process.</p>\n<p>Before marching forward, make sure Sublime Text Editor 3 is properly installed, if you haven't installed it yet, you can download it <a href=\"http://www.sublimetext.com/3\">here</a>.</p>\n<h3 id=\"1-package-control\" style=\"position:relative;\"><a href=\"#1-package-control\" aria-label=\"1 package control permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Package Control</h3>\n<p>Still with me? Awesome! Let's get started. First of all, the most amazing thing about Sublime is the diverse collection of packages you can install. The packages vary from big ones such as Git and SublimetoCodeIntel to small handy widgets like color picker and path auto fill. Keep checking and digging for the most useful packages for yourself is a very important part for your daily coding with Sublime. Therefore, first things first, let's install the Package Control.</p>\n<p><a href=\"https://packagecontrol.io/installation\">Installation Guide is here</a></p>\n<p>Press</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">ctrl + `(Normally the one under Esc)</span></code></pre>\n<p>Then paste the code from above link into your console, it could be confusing to paste a big graph of code into your sublime python console, but it does work, so Let's do it.</p>\n<p>Now try pressing</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">Cmd + Shift + p</span></code></pre>\n<p>Then type \"Install Package\", you should see it now:  </p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 34.92307692307692%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAIAAACHqfpvAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA3klEQVQY02NoqK6vqWuprmmGoJr6luraZiCqrG8trWstqWmqbOyobOqsbO6sau6CooY2iBoGCzt3MysXONLUNVNRN5BW0i6JT1nT2rGuu299/6SNHd0bmtvXNbWtaWzd1t6dEx4rpailqmHI4Ojq5+TmD0e6hpaqmobKmoau1o5Rrt6hTh4Rbj6xnn6h9m7+lg4BVo5B1k42xlZABepaRgwOLr5w5Ojqq2toAdSsrm2kqGEgp64vD0Rq+nJqQIaBggYUAXWqaRmp4dIMlAAarK5tjIIggmBEQDMxiCLNAPCScduXVlh4AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"install-package\"\n        title=\"install-package\"\n        src=\"/static/d67c00b6fd9b0c2cc32fe60f6307293b/e5715/install-package.png\"\n        srcset=\"/static/d67c00b6fd9b0c2cc32fe60f6307293b/a6d36/install-package.png 650w,\n/static/d67c00b6fd9b0c2cc32fe60f6307293b/e5715/install-package.png 768w,\n/static/d67c00b6fd9b0c2cc32fe60f6307293b/42b11/install-package.png 2364w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>2. Theme</p>\n<p>Prior to installing any functional package, let's make sublime even prettier, let's search for a theme!</p>\n<ol>\n<li>Install Package from above</li>\n<li>Then type \"Theme\"</li>\n</ol>\n<p>You should see a big list of themes right now, you can first search on the internet to have some previews of the themes, pick a good color scheme that you like and then search for it here. What I would suggest is the one I am using it, is called \"Theme - itg.flat\"</p>\n<p>After installing your preferred theme, the font and color scheme for sublime may have already been updated. But it doesn't quiet look like what you have seen from elsewhere does it? It's because you also need to update the UI preferences for sublime, for itg.flat it will give you a more flat look after the update.</p>\n<p>Navigate to:</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 51.53846153846153%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsTAAALEwEAmpwYAAAB2klEQVQoz2PIq587Y8nuyfO3HdhzePPGndOnL5w1e8nyVZv2HTi+/+DJAwdPbN6yZ9qMBVOnL5g8de6UafPmLVixaMma2XOXzpu/nKGqc9WCZbvmLN0zY/WpZdNXbCgpmZVbOH/+0r17DyxfsWrDxs1z5y10dPGxtHWzdfC0d/K2cfCwsfewsnUDijDUtS2csWzX/DUHZq46tGL9vi3rtqxeuf7A4VM5+WXmFrbmNs5G5nYmFva6hpZ6Rpb6xlYGxpYGxlZqWkaqmoYMZRPXbNy4fcu2vYcOn9yyfd+iZRsWLl23ZceB/OJKZzcvL+8ASzsXTX0LNR0TVQ1DVbAeIAJqBiKG3hkr2run9kyY2T9l7txFq9du2Llq3fbtuw8np+fr6JsZm9lq65vpGpgDrdXSM4Nrg2puaGoxs3KxcfAyNHUoKq3ZtfvAxs07Tp+9mJaRp6KhrwdyrYWeoQVYs6mqphGK5pb6Gjsnb2f3QHtn34iY5MLiyvTM/JzcIgdnL0VVPYjfVMAIzVqQ5pLSeqC1jq7+Di5+to7e1g7e5tauckrayur66qhKMRGDR0CCvbMPUCcQObr6ObkF2Dp6aeiYqGsbqxHUnJiSB7QQYjNYv7+NgydBbRAEAGry0u0vurhVAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"user-preference\"\n        title=\"user-preference\"\n        src=\"/static/a602ff94ac5602306887c7a97e24c473/e5715/user-preference.png\"\n        srcset=\"/static/a602ff94ac5602306887c7a97e24c473/a6d36/user-preference.png 650w,\n/static/a602ff94ac5602306887c7a97e24c473/e5715/user-preference.png 768w,\n/static/a602ff94ac5602306887c7a97e24c473/6f175/user-preference.png 2036w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>What this file does is actually overwrite the settings in the default-setting JSON file, if you mess up with this user file, just delete them to recover back to the original settings. So feel free to play around with it, from here you can define the settings from your theme provider's guidance, here I will post mine as a sample</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"json\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk12\">&quot;color_scheme&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk8\">&quot;Packages/Theme - itg.flat/itg.dark.tmTheme&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk12\">&quot;font_size&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk7\">14</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk12\">&quot;highlight_line&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk4\">true</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk12\">&quot;highlight_modified_tabs&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk4\">true</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk12\">&quot;theme&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk8\">&quot;itg.flat.dark.sublime-theme&quot;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p>Please note JSON format is significant to Sublime Settings, when you are not sure about it, check it with an online JSON validator. Now with this step done, you will have a delightful working environment to write your code in:  </p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.92307692307692%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAAsTAAALEwEAmpwYAAACGUlEQVQoz4WQbWvTUBxH81EUl6VJmzTNvclNcpOb9CG0TZqkbrYUhnWOMkWnFQWnMIdMhrgXIugHEFFXVCwda+t86FAZ+PDGj+SNFXEiCoc/vzeHeznM2q37D7d7T/p7z4eT3s6b7cHrl6P93dG74Xh/NKZjQvf7D58+f/n28eDro8cvdodvJ5OD/uDVYLDHLHfv3uks3Tx9Zr3VvjbXWq03u3EjqJ1othbnW4tB1JxvnHzae9Yf7IxG44V2xykGxXLsVY6XynXm+sXNs16wEsytlONzXnjBC5cKfjanO7qDABZElRfVrIIlCc0K8CgrHZnJJrDZY1yWaVzZQk5FL4aoGNJrlGLV8XlJS2Wgr1n5et2LKtUyIQ7WTF3B2LKRZWvIQJwAmPPrD4hbLXhxvhRR6LBdPy0hNg0KENtBNYosz7dJ6IeRTYlqOApx4GNCDOb21j3sVPNe7JYiCh12PkjLSJI0As2sakHdgBpWJMTxOZZXZnkluYLCiwqzcWMNu8HvMklk3QRm1cwD3dZ02zCJJKu8BIQpIhTSgPpU3sCu/8fLGVmXROiRkhWUixWSd3Wka0BVZQXmAJQVpNAoacC0O1dJIXBLP2UKKdRkaOVyhqHZKVHjMiorADb5LUhGgkLhqOxHC06x9sucypJiIohFUeUyIJUA/wrTXd203EPBLNenVWZS8jTMP2BOXbpsHw5GZe5Hj//yHYsRzk25NLPyAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"sample-code\"\n        title=\"sample-code\"\n        src=\"/static/5a168dc0844dfec74f7bce1dfa4359d0/e5715/sample-code.png\"\n        srcset=\"/static/5a168dc0844dfec74f7bce1dfa4359d0/a6d36/sample-code.png 650w,\n/static/5a168dc0844dfec74f7bce1dfa4359d0/e5715/sample-code.png 768w,\n/static/5a168dc0844dfec74f7bce1dfa4359d0/ac307/sample-code.png 2058w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>3. Goto Everywhere</p>\n<p>One of the most awesome features provided by sublime is called \"Goto Everywhere\", to me it is more like a \"Find Everything\". Once you get used to it, it will boost your productivity incredibly by saving enormous amount of time on finding stuff. Here is a brief list of its most common usage purpose:</p>\n<ul>\n<li>Quickly navigate to a file</li>\n<li>Quickly jump to a line</li>\n<li>Quickly locate an symbol</li>\n</ul>\n<p>To trigger this feature, press key combination:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">Cmd + p</span></code></pre>\n<p>Then for different purpose you just press different buttons to trigger the function,</p>\n<ul>\n<li>Goto file: directly type in the file name</li>\n<li>Goto line number: press <code>:</code> then input the number of line you want to jump into</li>\n<li>Goto symbol: press <code>@</code>, then you will see a list of options automatically show up. Navigate through or directly input the symbol you are looking for, this is most commonly used by search for HTML ids and classnames.</li>\n</ul>\n<p>So far I have briefly covered the essential features sublime provides.In the next blog of this series I will explain how to make your work even easier by utilizing sublime Project, Snippet and Macro.\nUntil then, Adios!!!</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n  .dark-default-dark .mtk8 { color: #CE9178; }\n  .dark-default-dark .mtk7 { color: #B5CEA8; }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n</style>","frontmatter":{"date":"September 15, 2015","updated_date":null,"description":"Getting started with one of the lightweight Code Editor Sublime Text and it's package control and shortcut commends","title":"Beginner's Guide for Sublime Text 3","tags":["SublimeText","CodeEditor"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1,"src":"/static/fe6e52be480d783d993428df72436141/7d145/Beginner-Guide-Sublime-Text.png","srcSet":"/static/fe6e52be480d783d993428df72436141/69585/Beginner-Guide-Sublime-Text.png 200w,\n/static/fe6e52be480d783d993428df72436141/497c6/Beginner-Guide-Sublime-Text.png 400w,\n/static/fe6e52be480d783d993428df72436141/7d145/Beginner-Guide-Sublime-Text.png 610w","sizes":"(max-width: 610px) 100vw, 610px"}}},"author":{"id":"Team LoginRadius","github":"LoginRadius","avatar":null}}}},{"node":{"excerpt":"I am here to tell you that Facebook, Google, Twitter, or LinkedIn aren’t going to be happy when they find out that you changed their icon…","fields":{"slug":"/engineering/social-network-branding-guidelines/"},"html":"<p>I am here to tell you that Facebook, Google, Twitter, or LinkedIn aren’t going to be happy when they find out that you changed their icon color to green. But, hey at least you didn’t distort the logo.</p>\n<p>Hello and welcome to another segment of me telling you things that you need to know but will ignore at some point. Let’s get started.</p>\n<p>Social Login and Social Sharing are everywhere. Some people even combine it with with their User Registration. There’s no surprise that on every website you go to, you’ll see either well designed social icons or just plain ugliness. We can’t blame them, they want their icons to be unique and eye catching.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 398px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 90.20100502512564%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAIAAADUsmlHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEPklEQVQ4yxWT6VMaBxjG909ov3UmnU5nek5nOjU9MuP0tmk0UyfxaGxM03Q0MegYFJGoETwqWhqPeN8XR0DEg0NZlkNYzt1lQSUssOAuqCBgWq1mpt+7zvw+PPN8eOb98P4ALHGMJl56D08xKoXRaTR6iFAZVyjhDEQdQcoWOtwiM6ZwxkAcWcisMZRW4QmJa08bSFljWQBNZFEqje6feKmkN3qIR+I+6shPpbxhGgvTHoK2hw7gSNJApEDiSLeblLiiYidpp0+XXQEApbNILIkfnGLhOELEvBEKT2QZkDCNRuKeSMJOpizBfVMgDpNHOj8ldURAIg2FkpMaI+Chs8ypRjwKuXbgbdK+E4OJhDWYMPsiZm/I6A3rfbTWS6kcQTHolpoQKLiPJs+f27D+RQXgPfhbYdphCZbLOLIfK+cKqhavs8TFdc9LOfKiR9KyBnkJE+pkJXWygvvT9SLVqBoXKZDumZVe+Qawnfqncxy8w57/5peRD66KPrr2V05hf3H1bHHN7NXfxour5woqpopYs0WsmZtVU3nlg5/fHHjv+6dlXPGojQQ8e0eLOgd/AupasHbMGDsX4Y4Fm0ju6VOgIpmbP21pm7Px52xN01behJk/Y6nuWcmrHK+bhMcdNOA6PMc2QbqDmxA2U61suq2BFjQcdD5OCZtTwqZ4RyPdxqUEDVE+J9zKCTWzsa4nDj5PJ1UP2PcBZ+qVe2wscvt6uOi7QM6bgU/fDua+Hy3LJ5mm8KvYnUKy6Fvqdn68ooQouIJ8fMn/w2fRD19DuHXK2CtgK7RvXVX7OnheARdrqvUy2y1sfzvP3/4Y53MZsCecrfqH7lYO0trg4FSbeoSbAgGkWDfGz4ENJ670kD22zBB2MoyfDfnOBvGzfvS074J/LwJy2gLuCaB4n+dkwJlusWQqzf/1uE+XPCQAE/TIFjnpzvbCx1/PHeRLU4XydKXm+IH2+O5qtnrj+N56pkr3skaXvSGmb8wFf5razZuNV0n9fQsKAPRH9TtxqZNsVO3ek+5WyAL3nwe4q6HGtRB7meCsELWqUP0q8Uix/VCMDuq3J8xBgcTEFk2z2p4CUgOssrmal9xSJKHyXaDEaLGDZGA+cX4rIHMxOSyBgxXT1i+F+msD1twuqPzPJXZnP7AAwkqr+/cxw61B42W++h3e+rtN6ssd+i+6DDnt+it/gJ/wtTmtmlzB2lu10jdq5ZfYitdrFKXPQK5oFJhSQxII7l+zChVbg2qHcMXx6wh4dxQqHzIUijSsKUgghZh+fNM3CfmHNJ7eNadw2V7RNVnO6wGGl7RTGqPE7NahLzbRFxqPf82FL9mweYNrdsM6rzOJ9RY9TjDmeRh/fGEQJ7tnl3/mdN5q7AaEM8pncs2wCpzUmhU2VG7DGGOUdnzV6ZdbEbHJtWhyGwNxB5naRAkdGhpSGUs5XWWN3Qz/AxCwwItWSHCuAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"1\"\n        title=\"1\"\n        src=\"/static/e80e77e8a6b533b0dc4f09be8ffa6ed0/692d4/1.png\"\n        srcset=\"/static/e80e77e8a6b533b0dc4f09be8ffa6ed0/692d4/1.png 398w\"\n        sizes=\"(max-width: 398px) 100vw, 398px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span><em>Beauty!</em></p>\n<p>But, the universe is full of holes inside an “A” whom sometimes destroy a thing of beauty.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 608px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 55.59210526315789%; position: relative; bottom: 0; left: 0; background-image: url('data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAALABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAwAE/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgAB/9oADAMBAAIQAxAAAAEj1iLTPDf/xAAaEAEBAAIDAAAAAAAAAAAAAAACAQADEiEz/9oACAEBAAEFAq1y6Vm7CYlsBh1+f//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQMBAT8BP//EABQRAQAAAAAAAAAAAAAAAAAAABD/2gAIAQIBAT8BP//EAB0QAAIBBAMAAAAAAAAAAAAAAAABAhESMXEhMmH/2gAIAQEABj8Cq3Z4XPOdnRk680kSaRHR/8QAGhABAAMBAQEAAAAAAAAAAAAAAQARITGR0f/aAAgBAQABPyH1YzI9GlyAfjGM2wt5NkA5DUn/2gAMAwEAAgADAAAAEAQ//8QAFBEBAAAAAAAAAAAAAAAAAAAAEP/aAAgBAwEBPxA//8QAFxEBAQEBAAAAAAAAAAAAAAAAAQAxUf/aAAgBAgEBPxATJTl//8QAHBABAQADAQADAAAAAAAAAAAAAREAITFRQWFx/9oACAEBAAE/EGFybpWE6E998c4eFgGHSN1aYK6ozVYjZIaMSzJujCVYATv64QTkfP1n/9k='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"2\"\n        title=\"2\"\n        src=\"/static/d9f3adbfcce30730d342e96fc0827857/640be/2.jpg\"\n        srcset=\"/static/d9f3adbfcce30730d342e96fc0827857/640be/2.jpg 608w\"\n        sizes=\"(max-width: 608px) 100vw, 608px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span><em>Just. Stop!</em></p>\n<p>Then there’s the “I use my own brand color” kind of people.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 213px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 23.474178403755868%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAIAAADKYVtkAAAACXBIWXMAAAsTAAALEwEAmpwYAAAA10lEQVQY002OMWvCUBSF8+fcHborDtLi6lKLQkFLSwUFRUpA0aEOQqggdqi4WGgHK3RUUUQ6KNghlHaQ5OXre8kj5lsu59x77r0Gnofk74dRl9kYIbSz+sSq8bUk4Nfmucn7UHd9DDyhaqtA+ZzbJK99JXcbyhf0KlQz2Afl9B946dLJ8zZQUogg7G+6SdDIcn2GVVdyPqWYZGKRjbHfKqddYj1nWOOp4YfdyOXFB3cpzEvsbyXlxoHJVZzRo35RDtynMXOnARUOcZ3gGY1sC4cozjE4GPIPJwoMAiLQPlwAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"3\"\n        title=\"3\"\n        src=\"/static/4ce836d9065945fda5629a56a7097075/3cb16/3.png\"\n        srcset=\"/static/4ce836d9065945fda5629a56a7097075/3cb16/3.png 213w\"\n        sizes=\"(max-width: 213px) 100vw, 213px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p><em>So, what’s happening here? What’s the orange f? Does that stands for forangebook? *badum tsss* I’ll see myself out.</em></p>\n<p>Changing the branding color is a big no no for them. You’ll be surprised how strict those social branding guidelines can be. Yet, we still violate them.</p>\n<p>One thing we need to realize is, we don’t own these icons. The companies still own them. So, for your convenience I searched the interwebs to gather most of the things you need to remember for social network branding guidelines.</p>\n<p>Let’s start with the most used social network, Facebook and their “ f ” logo. They’re pretty straightforward, as long as you don’t modify the “ f ” logo’s design and color, you’re good to go. To simplify this more; don’t make the facebook logo look like it’s been scratched by a chicken and made it bleed too much that it turns red.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 160px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 100%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsTAAALEwEAmpwYAAADT0lEQVQ4y51UW0gUURgewagniXqIbg9BvWZBmqC9FERFkIFJYFFQUSHlBRJ6UNEiyoqwQKNEQSsqgozCW5qrqburstPObuvuzuZldbd2ZnZ3dmbnemaOnXFWDUEf+pk5/Ofwf//tfP/B5hcFQh0t8ysF6ro2v4pgS5oqiYogIFukszMzQJSgDjUA0Jb5gStM1PRlxoELSgqsA6CIosxxEsMY1l6fGDOsNVVVJPF32yvB7TbTSNkbaS6AdV1PUpTAssgb43IlwyGgaVHPhMyyXDhEE06ZogAAyJEGVKAoQJEX015IROG5cP+38Js3DEEoDGMpKR0pOANZlhofs169Ntn4nMLxiMPBBoOSkEQu4FJkTZZ4mkq43d6794K9vcDv/7h7z4v1G+ZeNtnv3Bm9fOV3T89EQ0N4wJKMMjoq2GjhYs2oYCZA0i7XdHu7s6LCW1npqqqqSUu7jWE1GGa9cNF246b/yRNubjY8Nh7/9cvsmZk21FQg8/wfgojZbQP5p+9hWGv2wZGKiuHi4k9HjtjLyjoz940VnRNIknI4+LnQ8lUZSagq0kKW/h+VVa3799/CsMGTJ6UAOS/LfcdPBOrqxi5d6jqQFevppvr69MWwJtjQNEGYfPsu2NLSlZX9OCPja25uDMc5q+39lq3uktJn27c1bd4cbm4O2+0xv285bRMMNU2gmXggwFosnXl5tnPn0f2pNO0+eoy8/+BRWtrnw4dj/f2Rn+5EMKhrKc5hBvtgijf0xETcam3fsdN1vRgdCA6HvfCsp7r6wbr0F7t2TdXXB7u7Efn+adgC25ALtAo0HXcSg6fyX2/cOFpe/iX/dEdBQduhvLr0dFdtbYIkEzNBTQP/cBtCLhRSBZHGcdrpDHV0+hoaidra4aKiD3sz6zdtepWTYykt91RW+eseSvG4weqlhqEfSBIaA1QzNTTE4jjj9SapiJJg+e9D00+f0XZbYm5WmJ2N2GwCzymisBxZijJxjwf1AFEPfego6vPFAqSkqkmC8BUU8lOTsiQiPiMu6Ij0iroM1lVFk+WlPfIiczwX+SOLYnJ6arq1LRog0VQYXFKUVec5BTaabw4sNKaNYYAs6ypAujkMa4FXONI1YLYHQrjWS/If8hefngQyGLMKGwAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"4\"\n        title=\"4\"\n        src=\"/static/8a87d2a538d0b9b3426e197dbd1753d0/69538/4.png\"\n        srcset=\"/static/8a87d2a538d0b9b3426e197dbd1753d0/69538/4.png 160w\"\n        sizes=\"(max-width: 160px) 100vw, 160px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p><em>Quick, somebody call 911!</em></p>\n<p><a href=\"https://about.twitter.com/press/twitter-brand-policy\">Twitter branding</a> is a little bit complicated. Probably because they had multiple drastic changes in their logo design.</p>\n<p> <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 475px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 71.57894736842105%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAAAsTAAALEwEAmpwYAAAESklEQVQ4yx2SeVDTRxTH3y+AA3KYwQFGLHQsx6CUTgerolCEWi3qtLS0dgpKgaAUkiAo2kKlctRBKtS2giDQIgW5QlJNgYHIfSSB6HAlAQIhXJEQTLgTSghuN/zxnZ19u+/z3bfvgQrAFAEY3/pHAo6xXBCIxkOwyGKJFI7mjkNM9ZhpDENqT2dNAo0pw5oAGmuSoNZIIbZi2JzKmjyL86HH/tDurgOHLSCyUWWXlNf57g953ZQExuitwXHZl9z+0T0ILcOV6h2AFwZpsXK+ezJIRKc/gRjOItCrJdZRbPmhuDLhCQw0qT3+uVmH63EAepVkH3YR05kydL1koOIeQoBCrSDFsGLnUOYogWHNWAjDP4pmyyG+ahRink4HfV/UG4AVR2dI28I5ajKlEdd7s0EFtJqJUlwGL6pWYYshu1o8z+xhHQ0kKgMiISmt0gC8i2GptCqJY2omG+6mVhpNgNFufJdEZcpacG5edL0SaP/KCYguFZF+bJSafZI/A6GsVzuvEti5Gncd8LQaJlmYnFxDxtSiHhL12QxkJxZDy0GfXVyH96y63HxMDHfBN4NI5MwDKucCo1gAEIEM4TTcGr6xa+4rY8B7sb0zRHOWoMnD3xKfEjdK+gHHCf5bHuadTkcMsR1jr+4tgOs9+AiBb6UUTrNmCPAuWHBJ4Gl7r3Zqx76oWXkUzNbif50lXaudJSgJTEgoF35z+2E75ebfAy+SigVeNx50QFCNnATA2gEFsuVhtKbZdqusfpu3C8YBAguV71P7dChTjlBc0zqPPYuAOaQ2+oqtJj2sH4Yrj0Xx9DIxii0RKrw9b1vmVXAhkq818nqmhI+rZa6Xnis1KYIlhUehyPo0YxLAv0jpHtW8rkoe2ESUutW6jBFkKA/qGwQmg5y2z5429WXcb5a9LuVN/i7u5l1ozy5wNrzs6wuJcO5+nT2V8TJEpkN2EU0KCG+cJeA8QqQPf5Xvs/xDYwNryCzhBBWYez1Mus9f3Cto7z04MqdwQm9GrBUzYw582ZxbT3Utme95itwWcNE0ObsOrrUqIJOngrByCYRXjBOQ5p6563IYB4pcUsl3PvjNudXWwWyevN/8uaE5sjkQLmsg6z89PFasQfP8GvRPK+HFBoIBPMxFlFSbb1lTtmGsqWPhlWNu4YwJgJ/88l2S/QsLU/zypXf8czofiBEIVrYuizT6v6bWNs5J13U04bqe93J1q6pvRRcnWds8O7SquyR7g/YHY1NacV9+RLUUhTGnWkMaVgCOBQ0TaSdzx9N9c1D6mUefFvzZC/WKjavNS3rEWdTr6tT67YbFbV2tWo8a8L5leRt1LOk60IqKDGWIRKkay44qFU3TC3oC4nO7ALiO7hZZ3hm+yX4Fh38+8svOKGy/VhnzFzQuHQtaZ96CxmlWveogVmuchCrNOwNqrZtyYdFCuLwJLdxhUjBr2mroVNxOI1vdfCz/B+jLUVumjzDyAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"5\"\n        title=\"5\"\n        src=\"/static/63a308fca903d85f9325c3411a62d9df/466da/5.png\"\n        srcset=\"/static/63a308fca903d85f9325c3411a62d9df/466da/5.png 475w\"\n        sizes=\"(max-width: 475px) 100vw, 475px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span> Nonetheless, it’s simple.</p>\n<ul>\n<li>Don’t use their old logo (because, let’s face it, it’s ugly).</li>\n<li>Don’t use a speech bubble (because that’s so 1995)</li>\n<li>Don’t rotate the logo (because the bird might get dizzy)</li>\n<li>Don’t surround with other birds or creatures (he’s a lonebird)</li>\n<li>And the most obvious one, the color. (Use <strong>#55ACEE</strong>)</li>\n</ul>\n<p>On Google+ (yes “ + “ not “plus“), they prefer that you don’t change or remake their icon. But if you must, you can style it to match your design, as long as you don’t...</p>\n<ul>\n<li>Change the color (Use <strong>#dd4b39</strong>)</li>\n<li>Change the font of the “g” and reposition the “+”</li>\n<li>Reposition the icon (it must be centred)</li>\n</ul>\n<p>If you’re using the icon with the title, You should use “Google” without the plus (word and sign), because… well… that’s redundant.</p>\n<p>LinkedIn is kind of ridiculous with their <a href=\"https://brand.linkedin.com/en-us\">branding guidelines</a>. They still have the same drill with no distorting or changing the color and so forth. But there’s one thing you won’t expect, you cannot change the radius or the box. <span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 646px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.959752321981426%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAIAAABM9SnKAAAACXBIWXMAAAsTAAALEwEAmpwYAAABWUlEQVQY0z1QS0sCURSe/9GiZfQj2rVqG7TIWrSICCOEFgkteixchKs2JUgSU5Qm9CIwRakssslspmHEMS3naTX3zkxl5WP0dh0rOBzO9x3Od875iIYEO9FS9HZ+Njvw/UmrlEBVhFURYGjJ+mdJ+xaAJQMEKsVQQo5QBG7URYhUnUzkezxxJ5luyvpXCcyGmb6Vi66F6NwujV7NNC0NBajupdiw/8oqm1qS1W/yRE0EqGywtDTgvx7ZoXu9Z+HTByRDZ4iZ2uccQWZyK4O0t7VobjTIuA65fl8qzypI+2ioBmGvNTAe275zR3KD5G3kstiU4HT4fjUluE94z3EWq/tj/GK84D1/dB1wRU5FCqwJoH12zZ5PUoJjndqI8/iFqgCWj7iZEDNOpgMxHg8Xsur8HjuxmfFFc9afTcSvYSJsqQZ6MVtlo24zWAIpOhbFBYbYiDZjx7/HP4UMJuvtAsvNAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"6\"\n        title=\"6\"\n        src=\"/static/fddb1e321a13e0234b5d04b7051c8154/27524/6.png\"\n        srcset=\"/static/fddb1e321a13e0234b5d04b7051c8154/27524/6.png 646w\"\n        sizes=\"(max-width: 646px) 100vw, 646px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span> </p>\n<p><em>We’re all going to LinkedIn Jail!</em></p>\n<p>Keep it to a minimal radius, like 2px. That means no circle, square, iOS style rounded icons — hold the phone, did LinkedIn just violate their own branding guidelines? Tsk tsk, LinkedIn. Breaking your own rules, eh?</p>\n<p>What about the other 30+ social icons? Well, by now you’ve probably seen the pattern here. No? Well, let me break it down for you.</p>\n<ul>\n<li>Don’t distort, remake, or change the style of the logo</li>\n<li>Don’t rotate the logo</li>\n<li>Don’t change the color</li>\n<li>Always use the most recent logo</li>\n</ul>\n<p>But, who am I to tell you what to do? Just do what makes you happy and hope to god they don’t catch you. Keep in mind too that these branding guidelines are part of your user experience and affect your users impression of the site.</p>\n<p>Let me know in the comments if there’s a specific guideline that I miss.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"September 08, 2015","updated_date":null,"description":null,"title":"Social Network Branding Guidelines","tags":["Social","SocialLogin","Branding"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1,"src":"/static/5e82ea46808325c644771116384e3aad/630fb/social-network-branding-300x300.png","srcSet":"/static/5e82ea46808325c644771116384e3aad/69585/social-network-branding-300x300.png 200w,\n/static/5e82ea46808325c644771116384e3aad/630fb/social-network-branding-300x300.png 300w","sizes":"(max-width: 300px) 100vw, 300px"}}},"author":{"id":"Team LoginRadius","github":"LoginRadius","avatar":null}}}},{"node":{"excerpt":"Index is a typical way to speed-up queries in normal database system. There is no difference between MongoDB and a document-based database…","fields":{"slug":"/engineering/index-in-mongodb/"},"html":"<p> Index is a typical way to speed-up queries in normal database system. There is no difference between MongoDB and a document-based database system. This article gives insight about the index in MongoDB, for query optimization.</p>\n<h3 id=\"index-in-mongo\" style=\"position:relative;\"><a href=\"#index-in-mongo\" aria-label=\"index in mongo permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Index in Mongo:</h3>\n<h4 id=\"default\" style=\"position:relative;\"><a href=\"#default\" aria-label=\"default permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Default</h4>\n<p>_id is an ObjectId object, 12-byte BSON type that guarantees uniqueness within the collection. The ObjectId is generated based on timestamp, machine ID, process ID, and a process-local incremental counter.</p>\n<h4 id=\"single-field\" style=\"position:relative;\"><a href=\"#single-field\" aria-label=\"single field permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Single Field</h4>\n<p>For a single-field index and sort operations, the sort order (i.e. ascending or descending) of the index key does not matter because MongoDB can traverse the index in either direction. The value of index is the type of index. For example, 1 indicates ascending order and -1 specifies the descending order.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">db.friends.createIndex( { &quot;name&quot; : 1 } )</span></code></pre>\n<h4 id=\"\" style=\"position:relative;\"><a href=\"#\" aria-label=\" permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h4>\n<p>Compound Field</p>\n<p>The order of fields listed in a compound index has significance. For instance, if a compound index consists of { userid: 1, score: -1 }, the index sorts first by userid and then, within each userid value, sorts by score.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">db.products.createIndex( { &quot;item&quot;: 1, &quot;stock&quot;: 1 } )</span></code></pre>\n<h4 id=\"-1\" style=\"position:relative;\"><a href=\"#-1\" aria-label=\" 1 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a></h4>\n<p>Multiple Key</p>\n<p>MongoDB uses multiple index to index the content in an array. MongoDB creates separate index entries for every element of the array. You do not need explicitly create multiple key.</p>\n<h4 id=\"text-index\" style=\"position:relative;\"><a href=\"#text-index\" aria-label=\"text index permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Text Index</h4>\n<p>A collection can have at most one text index.<br>\nPerformance cost for text index:<br>\ntext indexes can be large. They contain one index entry for each unique post-stemmed word in each indexed field for each document inserted.<br>\ntext indexes will impact insertion throughput because MongoDB must add an index entry for each unique post-stemmed word in each indexed field of each new source document.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">db.reviews.createIndex( { comments: &quot;text&quot; } )</span></code></pre>\n<h4 id=\"hash-index\" style=\"position:relative;\"><a href=\"#hash-index\" aria-label=\"hash index permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Hash index</h4>\n<p>Query content by its hashed value. The hash is a function to computed by its value. The hashed value is designed to be distinct value. The one advantage is it is so quick, which take O(1) at most but by contract the normal binary search tree will take O(Log(N)). Hash will be theoretically quicker than normal binary search tree implementation. But the disadvantage is hash index performing range search will be extremely slowly than normal index.</p>\n<p>This an example in python to build a hash index</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">db.active.createIndex( { a: &quot;hashed&quot; } )</span></code></pre>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n</style>","frontmatter":{"date":"September 01, 2015","updated_date":null,"description":null,"title":"Index in MongoDB","tags":["MongoDB","Database"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/37f07a89ba1a1b4fd56cbd7c0548d86a/ee604/mongo-db-index1.png","srcSet":"/static/37f07a89ba1a1b4fd56cbd7c0548d86a/69585/mongo-db-index1.png 200w,\n/static/37f07a89ba1a1b4fd56cbd7c0548d86a/497c6/mongo-db-index1.png 400w,\n/static/37f07a89ba1a1b4fd56cbd7c0548d86a/ee604/mongo-db-index1.png 800w,\n/static/37f07a89ba1a1b4fd56cbd7c0548d86a/f3583/mongo-db-index1.png 1200w,\n/static/37f07a89ba1a1b4fd56cbd7c0548d86a/196bc/mongo-db-index1.png 1278w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Mark Duan","github":null,"avatar":null}}}},{"node":{"excerpt":"Hey there, spider. It’s me again, your amazing blog writer, Darryl. Have you ever wanted to select the second or third child of an element…","fields":{"slug":"/engineering/ab-use-css2-sibling-selectors/"},"html":"<p>Hey there, spider. It’s me again, your amazing blog writer, Darryl. Have you ever wanted to select the second or third child of an element without using CSS3 nth-child —which aren’t working on grandpa browsers. Let’s face it, a lot of human beings are afraid of change that they tend to stick to what they know.</p>\n<p>I’m not a pro “support the older browser” kind of guy because I still think that people won’t upgrade if we keep spoiling them. But for the sake of knowing a workaround I’m gonna teach you how to ab-use sibling selectors for better compatibility.</p>\n<h3 id=\"what-are-sibling-selectors\" style=\"position:relative;\"><a href=\"#what-are-sibling-selectors\" aria-label=\"what are sibling selectors permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What are sibling selectors.</h3>\n<p>Sibling selectors consists of a squiggly line ( ~ ) and a plus sign ( + ).</p>\n<p>Squiggly line selects all the siblings below that element where you use that sign. Plus sign select only the next sibling.</p>\n<h3 id=\"great-give-me-the-deets\" style=\"position:relative;\"><a href=\"#great-give-me-the-deets\" aria-label=\"great give me the deets permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Great, give me the deets.</h3>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 64.3076923076923%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAIAAAAmMtkJAAAACXBIWXMAAAsTAAALEwEAmpwYAAABNklEQVQoz5VSTU/DMAzNj+fInb/CmQMnrogDSKMd0qaNItYmaeLYCc/JVpD40HhKEzfx87MtmyHkbjv06z7nXH6CiDjvI9EcAhE5p/YYJXI2lCRE8rOXrBBZ1ifgnVLSL3GMlJgTC7MYeDWFSlQOQmy229WqWz136/VL1/evw1Adcssun2DaAUbio2aqUlHTCUhKbYiJ+rCIWgv5VFgeAxODWQ4w1LVYEkd4KdhtZM4FdY4RbIjrOpKJ67MGhatGge0ihyQwPIknfWxr6aVpLanFHJNZasJNOd2U+otYV3dvl7f7i5vd9eNkWpMW5D8B9ae3+LAP97uwmZJBR1yD99baydpyNgw6+n44gDZOEyLk/wBDkkJUzBW/zdl3KNnPM5QnyHqPHQN4JhntMdC01mEkvoY8Ex9I3Pu7f8F4aAAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"lr-home\"\n        title=\"lr-home\"\n        src=\"/static/dc8135cd3405bb1ca1bf6b09196fa2ab/e5715/lr-home.png\"\n        srcset=\"/static/dc8135cd3405bb1ca1bf6b09196fa2ab/a6d36/lr-home.png 650w,\n/static/dc8135cd3405bb1ca1bf6b09196fa2ab/e5715/lr-home.png 768w,\n/static/dc8135cd3405bb1ca1bf6b09196fa2ab/2ba99/lr-home.png 1221w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></p>\n<p>Have you ever seen our <a href=\"https://docs.loginradius.com/\">support docs</a>?  </p>\n<p>Would you believe me if I tell you that from “Getting Started” to the “Social Sharing” section, they are all siblings with the same class and everything… well except for the css code and the search, we’ll get to that later.</p>\n<p>Anyhoo, how did I do it? It’s easy, since I know that the sibling I want to get was the first child. I just used the :first child pseudo element to style the first element.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"css\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk6\">.sibling:first-child</span><span class=\"mtk1\"> {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk3\">/*styles for first sibling*/</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p>Then again, that’s not a sibling selector, that’s a pseudo element. Calm your feets, this is the part where we ab-use those selectors.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"css\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk6\">.sibling:first-child</span><span class=\"mtk1\"> ~ </span><span class=\"mtk6\">.sibling</span><span class=\"mtk1\"> {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk3\">/*styles for the rest of the sibling*/</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p>Why would we do this? This is so it doesn’t add the style for the rest of the sibling to the first-child and vice versa. Less CSS to overwrite and eliminates the use of !important.</p>\n<h3 id=\"lets-go-crazy\" style=\"position:relative;\"><a href=\"#lets-go-crazy\" aria-label=\"lets go crazy permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Let’s go crazy.</h3>\n<p>How do we get the third child without using :nth-child pseudo element? It’s simple. Get the first child and ab-use your plus sign(+) sibling selector.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"css\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">&lt;</span><span class=\"mtk6\">div:first-child</span><span class=\"mtk1\"> + </span><span class=\"mtk6\">div</span><span class=\"mtk1\"> + </span><span class=\"mtk6\">div</span><span class=\"mtk1\"> {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk3\">/*styles*/</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p>The best part is. It’s backwards compatible.</p>\n<p>What about the 12th child? Well, you can just painfully type all those “+ div”.</p>\n<p>Now, why would we do this? To support IE8, which I don’t like supporting but, maybe you do.</p>\n<p>Keep experimenting with this technique and be free from any restrictions of IE8.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n  .dark-default-dark .mtk6 { color: #D7BA7D; }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk3 { color: #6A9955; }\n</style>","frontmatter":{"date":"August 18, 2015","updated_date":null,"description":null,"title":"How to ab-USE CSS2 sibling selectors","tags":["Engineering","Selector","CSS"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1,"src":"/static/945890eb5408214619f2dbcdf3da2fcf/7d145/sibling-selectors.png","srcSet":"/static/945890eb5408214619f2dbcdf3da2fcf/69585/sibling-selectors.png 200w,\n/static/945890eb5408214619f2dbcdf3da2fcf/497c6/sibling-selectors.png 400w,\n/static/945890eb5408214619f2dbcdf3da2fcf/7d145/sibling-selectors.png 610w","sizes":"(max-width: 610px) 100vw, 610px"}}},"author":{"id":"Team LoginRadius","github":"LoginRadius","avatar":null}}}},{"node":{"excerpt":"Did you ever want to customize your registration or login page on Drupal 7, but did not know how? Customizing these pages by adding new text…","fields":{"slug":"/engineering/customize-user-login-register-and-forgot-password-page-in-drupal-7/"},"html":"<p>Did you ever want to customize your registration or login page on Drupal 7, but did not know how? Customizing these pages by adding new text or changing theme is not a difficult task.</p>\n<p>To help you out with that, I have compiled some simple steps to customize your registration or login page. All that you need to do is to add the following code :</p>\n<h3 id=\"steps\" style=\"position:relative;\"><a href=\"#steps\" aria-label=\"steps permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Steps:</h3>\n<ol>\n<li>In the first step of customization, you need to implement <a href=\"https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_theme/7.x\">hook_theme</a> in your module file.</li>\n</ol>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"php\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk11\">array</span><span class=\"mtk1\">(</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;template&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk8\">&#39;user_login&#39;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;render element&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk8\">&#39;form&#39;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;path&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk11\">drupal_get_path</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&#39;module&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;yourmodule&#39;</span><span class=\"mtk1\">) . </span><span class=\"mtk8\">&#39;/templates&#39;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    ),</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&#39;user_pass&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk11\">array</span><span class=\"mtk1\">(</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;template&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk8\">&#39;user_pass&#39;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;render element&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk8\">&#39;form&#39;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;path&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk11\">drupal_get_path</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&#39;theme&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;yourmodule&#39;</span><span class=\"mtk1\">) . </span><span class=\"mtk8\">&#39;/templates&#39;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    ),</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk8\">&#39;user_register&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk11\">array</span><span class=\"mtk1\">(</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;template&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk8\">&#39;user_register&#39;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;render element&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk8\">&#39;form&#39;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">      </span><span class=\"mtk8\">&#39;path&#39;</span><span class=\"mtk1\"> =&gt; </span><span class=\"mtk11\">drupal_get_path</span><span class=\"mtk1\">(</span><span class=\"mtk8\">&#39;theme&#39;</span><span class=\"mtk1\">, </span><span class=\"mtk8\">&#39;yourmodule&#39;</span><span class=\"mtk1\">) . </span><span class=\"mtk8\">&#39;/templates&#39;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     ),</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  );</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span><span class=\"mtk15\">return</span><span class=\"mtk1\"> </span><span class=\"mtk12\">$theme</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}--&gt;</span></span></code></pre>\n<p>Now that you have implemented hook theme in module file, the next step is to implement three pre-process functions. These functions are used if module needs to override or you want to add something in theme pre-processing.</p>\n<p>In the third step, you need to create following template files for login/register/forgot password.</p>\n<ol>\n<li>user_login.tpl.php</li>\n<li>user_register.tpl.php</li>\n<li>user_pass.tpl.php</li>\n</ol>\n<p>Now paste the following code into user_login.tpl.php. Also, don’t forget to modify user_register.tpl.php and user_pass.tpl.php template files accordingly.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"php\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">&lt;!--</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">--&gt;</span></span></code></pre>\n<p>Now your login page will contain new intro text <strong>This is my awesome login form</strong>. Customization of registration page in Drupal 7 is not difficult and if you follow above mentioned tips, you can design an amazing registration / login / forgot password page according to your audience.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk11 { color: #DCDCAA; }\n  .dark-default-dark .mtk8 { color: #CE9178; }\n  .dark-default-dark .mtk15 { color: #C586C0; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n</style>","frontmatter":{"date":"August 11, 2015","updated_date":null,"description":null,"title":"Customize User Login, Register and Forgot Password  Page in Drupal 7","tags":["Drupal"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1,"src":"/static/26f698c9942b635d0137bd4039e85ba7/7d145/drupal-custom-login-register-password-pages1.png","srcSet":"/static/26f698c9942b635d0137bd4039e85ba7/69585/drupal-custom-login-register-password-pages1.png 200w,\n/static/26f698c9942b635d0137bd4039e85ba7/497c6/drupal-custom-login-register-password-pages1.png 400w,\n/static/26f698c9942b635d0137bd4039e85ba7/7d145/drupal-custom-login-register-password-pages1.png 610w","sizes":"(max-width: 610px) 100vw, 610px"}}},"author":{"id":"Versha Gupta","github":"vershagupta","avatar":null}}}}]},"markdownRemark":{"excerpt":"Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards…","fields":{"slug":"/identity/developer-first-identity-provider-loginradius/"},"html":"<p>Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards and refining approaches to building secure, seamless experiences.</p>\n<p>We’re here to support developers on that journey. We know how important simplicity, efficiency, and well-structured documentation are when working with identity and access management solutions. That’s why we’ve redesigned the <a href=\"https://www.loginradius.com/\">LoginRadius website</a>—to be faster, more intuitive, and developer-first in every way.</p>\n<p>The goal? Having them spend less time searching and more time building.</p>\n<h2 id=\"whats-new-and-improved-on-the-loginradius-website\" style=\"position:relative;\"><a href=\"#whats-new-and-improved-on-the-loginradius-website\" aria-label=\"whats new and improved on the loginradius website permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What’s New and Improved on the LoginRadius Website?</h2>\n<p>LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve spent the last few months redesigning our interface— making navigation more intuitive and reassuring that essential resources are easily accessible.</p>\n<p>Here’s a closer look at what’s new and why it’s important:</p>\n<h3 id=\"a-developer-friendly-dark-theme\" style=\"position:relative;\"><a href=\"#a-developer-friendly-dark-theme\" aria-label=\"a developer friendly dark theme permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>A Developer-Friendly Dark Theme</h3>\n<p><img src=\"/f46881583c7518a93bb24e94c32320de/a-developer-friendly-dark-theme.webp\" alt=\"This image shows how LoginRadius offers several authentication methods like traditional login, social login, passwordless login, passkeys and more in a dark mode.\">    </p>\n<p>Developers spend long hours working in dark-themed IDEs and terminals, so we’ve designed the LoginRadius experience to be developer-friendly and align with that preference.</p>\n<p>The new dark mode reduces eye strain, enhances readability, and provides a seamless transition between a coding environment and our platform. Our new design features a clean, modern aesthetic with a consistent color scheme and Barlow typography, ensuring better readability. High-quality graphics and icons are thoughtfully placed to enhance the content without adding visual clutter.</p>\n<p>So, whether you’re navigating our API docs or configuring authentication into your system, our improved interface will make those extended development hours more comfortable and efficient.</p>\n<h3 id=\"clear-categorization-for-loginradius-capabilities\" style=\"position:relative;\"><a href=\"#clear-categorization-for-loginradius-capabilities\" aria-label=\"clear categorization for loginradius capabilities permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Clear Categorization for LoginRadius Capabilities</h3>\n<p><img src=\"/e5358b82be414940f3fb146013845933/capabilities.webp\" alt=\"This image shows a breakdown of all the LoginRadius CIAM capabilities, including authentication, security, UX, scalability and multi-brand management.\"></p>\n<p>We’ve restructured our website to provide a straightforward breakdown of our customer identity and access management platform capabilities, helping you quickly find what you need:</p>\n<ul>\n<li>Authentication: Easily understand <a href=\"https://www.loginradius.com/blog/identity/authentication-option-for-your-product/\">how to choose the right login method</a>, from traditional passwords and OTPs to social login, federated SSO, and passkeys with few lines of code.</li>\n<li>Security: Implement no-code security features like bot detection, IP throttling, breached password alerts, DDoS protection, and adaptive MFA to safeguard user accounts.</li>\n<li>User Experience: Leverage AI builder, hosted pages, and drag-and-drop workflows to create smooth, branded sign-up and login experiences.</li>\n<li>High Performance &#x26; Scalability: Confidently scale with sub-100ms API response times, 100% uptime, 240K+ RPS, and 28+ global data center regions.</li>\n<li>Multi-Brand Management: Efficiently manage multiple identity apps, choosing isolated or shared data stores based on your brand’s unique needs.</li>\n</ul>\n<p>This structured layout ensures you can quickly understand each capability and how it integrates into your identity ecosystem.</p>\n<h3 id=\"developer-first-navigation\" style=\"position:relative;\"><a href=\"#developer-first-navigation\" aria-label=\"developer first navigation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Developer-First Navigation</h3>\n<p><img src=\"/a8c155c2b6faf3d5f4b4de4e2b14d763/developers-menu.webp\" alt=\"This image shows the LoginRadius menu bar, highlighting the developer dropdown.\">   </p>\n<p>We’ve been analyzing developer workflows to identify how you access key resources. That’s why we redesigned our navigation with one goal in mind: to reduce clicks and make essential resources readily available.</p>\n<p>The new LoginRadius structure puts APIs, SDKs, and integration guides right at the menu bar under the Developers dropdown so you can get started faster. Our Products, Solutions, and Customer Services are also clearly categorized, helping development teams quickly find the right tools and make informed decisions.</p>\n<h3 id=\"quick-understanding-of-integration-benefits\" style=\"position:relative;\"><a href=\"#quick-understanding-of-integration-benefits\" aria-label=\"quick understanding of integration benefits permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Quick Understanding of Integration Benefits</h3>\n<p><img src=\"/b2f9a964a2da0ea83e2f8596b833bba7/we-support-your-tech-stack.webp\" alt=\"This image shows a list of popular programming languages and frameworks offered by LoginRadius.\"></p>\n<p>Developers now have a clear view of the tech stack available with LoginRadius, designed to support diverse business needs.</p>\n<p>Our platform offers pre-built SDKs for Node.js, Python, Java, and more, making CIAM integration seamless across popular programming languages and frameworks.</p>\n<h2 id=\"over-to-you-now\" style=\"position:relative;\"><a href=\"#over-to-you-now\" aria-label=\"over to you now permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Over to You Now!</h2>\n<p>Check out our <a href=\"https://www.loginradius.com/\">revamped LoginRadius website</a> and see how the improved experience makes it easier to build, scale, and secure your applications.</p>\n<p>Do not forget to explore the improved navigation and API documentation, and get started with our free trial today. We’re excited to see what you’ll build with LoginRadius!</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"February 21, 2025","updated_date":null,"description":"LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve redesigned our website interface, making navigation more intuitive and reassuring that essential resources are easily accessible.","title":"Revamped & Ready: Introducing the New Developer-First LoginRadius Website","tags":["Developer tools","API","Identity Management","User Authentication"],"pinned":true,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7857142857142858,"src":"/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp","srcSet":"/static/80b4e4fbe176a10a327d273504607f32/61e93/hero-section.webp 200w,\n/static/80b4e4fbe176a10a327d273504607f32/1f5c5/hero-section.webp 400w,\n/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp 800w,\n/static/80b4e4fbe176a10a327d273504607f32/99238/hero-section.webp 1200w,\n/static/80b4e4fbe176a10a327d273504607f32/7c22d/hero-section.webp 1600w,\n/static/80b4e4fbe176a10a327d273504607f32/1258b/hero-section.webp 2732w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.jpg"}}}},"pageContext":{"limit":6,"skip":930,"currentPage":156,"type":"///","numPages":161,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}