Skip to main content

My Toolkit

Every developer needs a nice set of tools to help him to be more productive and focused towards his work. It may not be very easy for everyone to find a good set of tools. In this post, I am listing the tools that I have used and which may be very useful for you. IDEs IDEs are one of the most important tools that every developer needs. Some of the awesome IDEs that I have used and would recommend you are- 1) Adobe Brackets Brackets is a very lightweight IDE with many extensions giving it superpowers. If you are working on a small scale project and need speed, then Brackets is for you. It has awesome support for HTML, CSS and JS including smart autocomplete suggestions. Support for more languages can be extended via numerous extensions. Smart live preview gives more to programmers as they can see the changes as they code. This IDE is absolutely free of cost and available for downloading at  http://brackets.io/  . 2) VS Code Visual Studio Code gives the power of Microsoft's Visual S

Let's get Sassy.


Have you ever tried Sass in your StyleSheets? If not, then you will start using it from today.

Sass is a CSS Preprocessor. Although, I am not going to explain what is Sass etc, but I am going to share some of the most useful features of Sass which I use a lot.

So without wasting a single minute let's get started.

1)Variables:

We would have used variables in programming languages like JavaScript, Python, C etc. But we can use variables in Sass also.
Variables in Sass are mostly used to store colors, font size, etc. When we are dealing with many colors like #ffc000 or #ffff00 etc and our StyleSheets become very large it becomes very difficult for us to remember each color's hex code and we mess up. We can overcome this problem by using variables. We can save #ffff00 as $yellow and use the color by the variable name wherever we want.
You can see this in action in the below embed -

 See the Pen Sass Variables by PraneetDixit (@PraneetDixit) on CodePen

2)Nesting:

Nesting many selectors can be a tedious job in CSS. But Sass makes it a lot more easier. You can see it in action in the below snippet:

Note that I have used @mixin, which is another feature of SaSS. For now, you can consider it as a class (although it isn't).
The above code will be basically compiled into the following CSS:


You can try switching the tab to Result and compare the results of both snippets. Both have the same result. But the one with SaSS is more readable. (I have replaced the @mixin with a class and added the class in html as needed).

3)The & Selector 

The & sign is called the parent selector in Sass. It is used to select the parent of the current element. It can be very useful while using pseudo elements. For example, rather than styling a button like this:


We can use a much more readable syntax using the parent selector like this:



I use the parent selector mostly for pseudo elements like the example in the above snippet. Scrollbars can also be styled like this. 


:root{
	&::-webkit-scrollbar {
    	width: 1em;
	}

	&::-webkit-scrollbar-track {
    	box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
	}

	&::-webkit-scrollbar-thumb {
    	background-color: darkgrey;
    	outline: 1px solid slategrey;
	}
}

4)Modules

Like CSS, Sass also has modules. But the major difference is that instead of sending a separate HTTP request for each module, Sass does the importing at the compile time only. It means no more HTTP requests and faster loading. 

Like CSS, Sass also uses @import for importing modules, but the use of @import rule has been depreciated and @use is used instead these days. And we have yet another feature - "All the variables and mixins are also imported from the imported module.

An example is given below:
-Module 1:

//button.scss
button{
    background-color: red;
    padding: 20px;
    font-size: 2rem;
    border-radius: 25px;
    
    &:hover{
    	background-color: transparent;
        border: 5px solid red;
    }
}

-Module 2:

//body.scss
$blue: #012268;
body{
    background-color: $blue;
    margin: 0px;
    padding: 3rem;
    height: 100vh;
}

Main SCSS: 

//main.scss
@use 'body';
@use 'button;'

Compiled CSS

//compiled.css
body{
    background-color: #012268;
    margin: 0px;
    padding: 3rem;
    height: 100vh;
}

button{
    background-color: red;
    padding: 20px;
    font-size: 2rem;
    border-radius: 25px;
}

button:hover{
    background-color: transparent;
    border: 5px solid red;
}


Its all for now. I will be back with another post with some more knowledge. Till then, Happy Coding!!

You may have noticed that I have embedded many interactive code snippets in this article. I have used Codepen for this purpose. Codepen is basically an in-browser Front-end IDE. I will be discussing about Codepen in a later post.

Comments

Popular posts from this blog

Playing with CSS Cards

New design trends are coming everyday. Card layout in CSS has been a very popular layout type in the recent times and many companies like Google are using card layout in their designs. We will try to create a card layout in this short tutorial. - Prerequisites : Basic knowledge of HTML and CSS. Flexbox will be our friend in layout. 1) Basic file structure - The basic project structure will go as below : Project Directory     |-index.html     |-style.css 2)Basic html - <!--index.html--> <!DOCTYPE html> <html> <head> <title>CSS Cards</title> <link rel="stylesheet" href="style.css"> <!--CSS link--> </head> <body> <div id="container"> <div class="card one"> Card 1 </div> <div class="card two"> Card 2 </div> <div class="card

A coin toss program in Python and JS

Today, we will increase our confidence in programming by making a coin toss program in two popular languages : Python and JavaScript. Starting from Python: Python is a very popular and readable language. Python developers have a large demand in the industry. So keeping this in mind, we will start with python. First of all, we will make an algorithm on which we will work. 1)Make two choices. 2)Have random computer input and human input. 3)Check if both inputs are same. 4)Print the result of the toss. These are the basic steps. We will add additional features afterwards. So let's go... 1)Importing packages First ly, we will import a package which will help us to generate random computer choice. import random 2)Creating choices For creating two choices to select, we will make a list as follows- options = ['heads', 'tails'] 3)Selection We can get user's choice using input() - userchoice = input("Enter your choice - heads/tails ->") For