How to Master CSS?

This is a complete guide to Master CSS

  • CSS Curriculum & Resources
  • Best tips to master CSS
  • How to make money with CSS?
  • CSS vs CSS Frameworks Debate
  • Lots more ...

If you like the guide, please do practice & share it with others.

Do you want to learn how to master CSS? Maybe you know the fundamentals but want to go deeper. Perhaps you've dabbled in styling websites and want to take it to the next level.


An expert in any field is someone who has spent the time and effort to learn every nook and cranny of that subject so that they can tackle any challenge with ease. If you want to become a CSS expert, keep reading to learn everything you need to know about CSS mastery and becoming an expert.

Experienced Developer Insight by Fredrik Christenson

CSS is one of those technologies that will take you 5 mins to learn & it will take you years and years and years to master

Some people never master it & I can say I'm not some sort of Ninja but I have spent a very good amount of time with CSS when it comes to best practices, architecture, scalability, tips and so on.

This guide is highly subjective and you can come up with your own guide and recommendation.

Why Should You Learn to Master CSS?

CSS is the foundation of every website. CSS is what makes everything work, from the most basic blog to the most complex eCommerce store. You must understand CSS and how to use it if you want to be a successful web designer.


This is especially true in today's web design world, where more and more designers are gravitating toward front-end-only tools that necessitate a thorough understanding of CSS.


Unlike many other design skills, mastering CSS can be useful in a variety of industries. It can not only help you build websites and applications, but it can also teach you how to create mockups and visual concepts. To create your designs and mockups, all you need is a computer, core understanding of css and a code editor.

What does it take to master CSS?

There are no shortcuts to becoming a CSS master. What you do, how you go about it, and the time it takes to master CSS all depend on you. That’s why there is no absolute right path to mastering CSS.


If you want to master CSS, you need to spend time practicing. You need to spend hours reading articles, watching tutorials, and trying new things. You need to challenge yourself and keep practicing until you get things right.


Also, you need to be consistent. You need to practice every day, and you need to keep pushing yourself. Mastering anything takes time, even if you’re learning at a quicker rate than other people.


The path to CSS mastery is a long journey that is different for everyone. How long it takes to become a CSS master will depend on your skill level when you start. It will also depend on your learning style and what works best for you.


There is no single path to mastering CSS. Instead, there are many points that you can choose to go down on the journey to CSS mastery.


There are a few essential steps that you need to take before you can start mastering CSS. First, you need to understand what CSS is and how it works. You can’t master something if you don’t know the basics. Before you can truly master CSS, you need to understand its origins and how it came to be. You need to know about its history, who created it, and why it was developed. You also need to understand the various limitations of CSS, and how to deal with them. This will help you better understand how to use CSS in the real world.?


I understand the fundamentals of CSS, but I'd like to know what the core skills are that I should learn and improve on.

👇

Tips to Master CSS

1. Give respect to the CSS, the way it is structured. In other words, don't forget the CSS is a global namespace.

2. Use BEM or utility class naming convention

3. How cascade work?

4. specificity rules

5. reset

6. normalization

7. Learn CSS pre-processor like SASS or post CSS for better project setup and extra features.

The above tips are not about making sites prettier, though making things nice is a good thing. Instead, the above tips help you maintain CSS projects for a longer period of time.


Making things prettier and nicer, you will learn but having long term maintenance is the key factor.

Things you should know about learning structure

  • Learn which is relevant
  • You don't need to dive deeper into every topic. There are certain things you should have surface knowledge that's it.
  • Dig more about core concepts
  • To learn fast, do that thing a lot
  • Don't change what works for you

The best way to obtain knowledge is from an experienced professional in that field. "Life is a Reflection," according to me - this is a general quote from which anyone can derive a different interpretation.


In my opinion, we create things on top of existing things or we create the same thing in a different way. "The Web as a Whole is Re-Creation."

"With the little mind, no one can comprehend the knowledge that exists within the universe."

Are you feeling painful to learn CSS?

Well, learning css is not painful but writing good maintainable css code is challenging.

Consider, few tips below to reduce your css pain


* How does the cascade work?

* What is css specificity?

Next, learn Responsive Design Layouts

* Media queries

* Positioning

* Relative units such as %, em, rem

* Mobile first

* Flexbox & Grid

When you understand how the above things work, move on to architecture part. I recommend BEM or utility first architecture.


From then it's all about putting into practice.

The best way to practice it, take an arbitrary website & make static version of the page using html & css.At first, don't worry about making it work just copy paste the html & css code & focus on css part.


After that, try making same website without checking browser developer tools, write all the css and when you are done see how you did.

Is CSS the biggest issue in Front-end development?

No, it's not the biggest issue but it's one of the part of issue in whole frontend development stack.


CSS is one of the layer in Front-end development.If you don't write maintanable css then css can be the biggest issue.

Biggest issue in Front-end development stack

The major issue in front-end development is to: how to take care a codebase for a long period of time.


The issue is not making a nice looking and responsive page because anyone with skills can do that, but maintaining code for the long run and best practices in the frontend, which is why companies hire senior developers to look over their codebase and train their juniors to adopt best practices, for example, they may hire just to fix their frontend code.


The issue is not the quality of the software, but rather how to maintain the code in a sustainable way over time, such as adding or removing features without breaking the entire codebase.


Frontend dev don’t think long term healthy project, they don’t think about:


* Performance

* Naming convention

* Testability

* How many dependencies I have to maintain

And the solution is, keep the code maintainable over time.

write the code with other people’s minds. Yes, it makes sense to you but who’s gonna take care of it after you. Your colleague yes.


Learn & practice above tips that will help you to write scalable css code.


The main issue with the frontend is sustainability over time. The frontend is more tech-death a hundred times worse in general at least what I have seen than it is in the backend world.

Browser Compatibility Issue

Is it possible to create a website that supports all browsers? Find from experienced programmer by Fredrik Christenson from his channel

What is vanilla CSS & CSS Frameworks?

Vanilla CSS - pure css without frameworks & liabraries is a style sheet language that is used for laying out and formatting HTML documents in a manner consistent with the World Wide Web Consortium's (W3C) style sheet standard, CSS. Vanilla CSS is the original CSS style sheet language and is the most widely used style sheet language.


CSS Frameworks are the css code written by somebody else in specific paradigm to make development faster.

CSS frameworks are a great way to organize and structure your CSS. Frameworks offer conventions for naming and formatting your CSS rules, and they can help you to more easily maintain your styles.


Some popular CSS frameworks include Foundation, Bootstrap, Tailwind and Skeleton.


When using a CSS framework, you should generally only include the files that are specific to that framework. For example, if you're using Foundation, you would include the foundation.css file, but you wouldn't include the style.css file.

CSS vs CSS Frameworks

  • Beginner should stick to css at first.
  • You'll lack fundamental of CSS, if you directly learn any CSS Frameworks.
  • Frameworks like Tailwindcss classes placed directly in html markup which makes html file more verbose & untidy.
  • Bootstrap or Tailwindcss framework break the "separation of concern" coding principle.
  • Core CSS Knowledge can help you to create new awesome CSS Framework wherese CSS Frameworks itself built on pure(vanilla) CSS. So CSS Framwork can't give you how things work under the hood. Core CSS skills can help you to create new style guide for your team.easeCSS is custom css framwork based on core css skills.
  • By default Backend Developers love CSS Frameworks to get instant UI on their page because for backend devs, UI doesn't matter much so they just copy paste from css framework docs.
  • Some CSS Framework like Foundation is designed for email template development wherese CSS can't do that because email development don't support modern css like flexbox & grid also there is cross browser compatability issue.
  • CSS framework is best when you don't want any customization like backend dev.
  • Adding your own css code in css framework need some manually setup to customize it.
  • CSS Frameworks like tailwindcss provide the consistent approach of doing things that hepls team to stay on the same practice wherese css best practice differs in every company.
  • Putting css classes directly in html markup makes debugging difficult.
  • CSS Frameworks saves a lot of time by throwing a bunch of classes in html markup.
  • You don't need to worry about cross browser compatability in css frameworks wherese you need to take care a lot of browser compatability while writing pure css code.
  • By default css frameworks provide best code optimization.
  • CSS Frameworks like tailwindcss is awesome.Vanilla css can be really messy sometimes & vice versa.

Note: Consider the above points & choose what's best for your project

Reason to Ignore CSS Frameworks

What you can do with framework can also be achieve through css which helps not to use framework.

  • Learn Modern CSS - Flexbox & Grid
  • Learn Best practices - BEM or utility-first approach
  • CSS has separation of concern coding standard
  • Debugging & maintanance is easy because of separate css file
  • Use pre-processor like SASS or LESS for better structure
  • Create your own style guide with utility first approach or use exisiting guide of google
  • Learn core css skills to build next css framework

Reason to ignore Vanilla CSS

Actually, pros of css frameworks make to ignore vanilla css.

  • By default code optimization is not there
  • Require you to manually take care a cross browser compatability
  • Hard to provide unique css classname
  • Best practices differs
  • Not best choice for backend developers

Reason to choose css framework - Tailwindcss

Actually, cons of css helps to choose css framework.

  • Best code optimization capability by default
  • Support of cross browser compatability
  • Fast UI development
  • Helpful plugins & advance features are available
  • Best for backend devs for fast prototype

Which is the best CSS framework?

The short answer is Tailwindcss.


Choosing the best CSS framework is not a straightforward task. There are many frameworks out there that are competing with each other. Some of them are more popular than others and some of them have more features than others.


There are many CSS frameworks available in the market today. So which one is best?


The answer to this question largely depends on the project requirements and needs. For instance, if you need a framework that is lightweight, more features & functionality, fast & highly customizable, then Tailwindcss would be the best option.

But if your project don't need much customization, then Bootstrap would be the best choice.


Note: If you have been using bootstrap or any other then continue using it. Switching from one framework to another is not a condition. We have a lot of frameworks that does same thing.

Resources, What to Learn & How to Learn CSS

On the Web:

* text
* colors
* images
* videos
*animation
* shapes

Note: The above list are common things that you'll find on the web in a different or more interactive way like text can be a link, bold, italic and so on. Recognizing which is text, video or image on the web is the first part in web development.

When you visit web page, you should know which type of element is on web page.


Networking

Who maintains CSS?

What is internet, web, and network?

Web browser introduction

Who owns the internet?

HTTP and SSL?

IP vs Local Network

Proxy & Cookies

What are Domain and Hosting?

What is URL and how the website loads in our browser?

What are clients and servers?

What is a peer-to-peer connection?

Code Editors

what is an extension/plugin?

what is a file extension?

Editor vs Code Editor?

Code editor vs IDE

VS Code

Atom

Bracket

Notepad++
Cloud Editor like Codepen

HTML

overview of html

use case

learn semantic tags

html-5 structure

elements

tags

images

links

forms

colors

By default all HTML tags are responsive (we'll learn more about the responsive design later on)


If you're fresher, spend more time with HTML. A lot of things you can do with HTML but with support of Javascript like drag and drop, local storage, etc. Start answering HTML questions on a solo learn forum which is a great place for a newbie.


CSS Basics

overview of css

ways to include css in html file

why css?

tagscss units like px,rem,em

selector: ID vs Classes

box model

making image responsive

float layout
positioning

working with text

z-index

overflow

border

opacity

why there are default margins and padding on an element?

what is default user style guide in browser?

why CSS user style doesn't look consistent in all browser?

what is border box?
the best way to write CSS class names is BEM. why?

what is CSS icons?

how to add icons?

how to view the localhost project in a mobile browser?

inspecting HTML and CSS code

Is it possible to hide HTML/CSS code?

Basic Git & Github

What is git & github?

use case of git & github

you don't need to learn how git works under the hood

install git

how to clone a project from Github?

what is a repository?

how to upload HTML/CSS code on GitHub using basic git command from terminal?

what are branches and how to switch between branches?

how to make repository into the live site?

learn how to add, delete, push, and pull?

is there any alternative of git and GitHub?

Learn how to contribute to open source project

Learn Browser Dev tools inspection

You should learn how to inspect html & css code using browser dev tools.open the web browser & pres CTRL+SHIFT+I


Chrome plugins

How to use chrome plugins?

colorZilla to pick a color from other sites

RWD tester

What font

VisBug

Waplyzer

Learn Emmet Tool

What is emmet and how it is useful to write faster HTML/CSS code?

VS Code Extensions and tips

Press CTRL + Space for properties recommendation

what are a live server and its extension?

Auto tag complete extension

indentation extension

HTML CSS supports extension

Formatter - prettier extension

ore vscode tips from devs link: rb.gy/aqpcan

Intermediate Level CSS

reset

css variables

z-index

box-shadow

Colors in HEX and hash

how does the cascade work?

specificity

gradients

pseudo-elements & classes

focus & hover

animation

shapes

vendor prefix

border-radius

background

Basic of Responsive Design and Media Queries

breakpoints

why layout shrinks instead of behaving?

viewport unit

Responsive units

relative vs fixed units

rem, em, vh, vw, vmin, vmax, ch units

ch unit and use case

Color palette

color palette generator: mycolor.space

Typography & fonts

at the beginning of your career use one font or two

use free google font in CSS and HTML

basic understanding of typography

alignments of text

line-height

letter-spacing

Separation of CSS

use @import to separate CSS files

demerits of @import

Create Travel Agency, Portfolio, Product page without Flexbox, and Grid. Learn more CSS properties

Flexbox Layout

flexbox overview

why flexbox

flex container and child items properties

flexbox vs display

browser support

responsive layout with flexbox

gotchas of flexbox

Inspect the source code and you'll see how flexbox layout properties are applied. Look more layouts and create it with a flexbox. For more mini projects take free flexbox course by wesbos link: flexbox.io

Responsive Web Design

css overview

CSS resolution vs Device resolution

mobile-first design

desktop first

basic first

Create a responsive layout with flexbox like digital agency theme with flexbox properties like this site: https://livewp.site/wp/md/ewebot/home-12/ and just look design from other site and try to achieve the same layout with flexbox

CSS Grid Layout

grid overview

why css grid

grid container and child items properties

flexbox vs grid

browser support

responsive layout with flexbox and grid

create your own 12 grid column bootstrap features with vanilla Grid

gotchas of grid

Learn Basic Design Principles & Figma Design tool

what is a design and web design?

what is UI/UX?

Web vs Mobile Interface Design

What is Prototype & Mockup?

Learn how to use Figma design tool

What is Web-flow?

Web-flow is a web design and development platform that allows you to quickly and easily build responsive websites. It offers the following features:

Drag and drop interface

Built in CMS

Responsive layouts

SEO optimization

Mobile first approach

Learn CSS pre-processor

overview

options to choose: SASS, LESS, Post-css

SASS

overview

Basics from official docs

SCSS vs sass file extension

Learn and do exercise

Sass extensions like Live Sass Compiler

mixins

placeholder

why extend is evil?

variables

nesting

partial

CSS @import vs sass @import

operators

interpolation

file structure (7-1 patter)

best practices

create components

sass for big projects

How to find all websites on the web?

Go to this link: nternet-map.net

How to find total number of user on the internet?

Go to this link to see live data counting: internet-live-stats

Live total number of websites counting is here

Free Resources

List of Free Resources for you to use to master css:

Where to ask questions?

stackoverflow

sololearn forums

Facebook Groups

Ask from your senior

Join Discord Channels

CSS Blogs

stop writing messy css

Handy guide to css

css style guide by google

Are frontend developers happy?

Simplest way to handle html includes

5 things you can do with CSS instead of JavaScript

css only components

13 ways to vertical center

Centering in modern CSS

How the minmax() Function Works

Live Sass Compiler

SASS variables

How to structure a Sass project

CSS Specificity: Things You Should Know

What are Compass and Sass and how do they differ?

Structuring your Sass Projects

Sass Guidelines

20 of the best/largest icon libraries.

Concept of Nesting & Variables in SASS

Is Sass worth learning in 2020?

& nbsp ; stands for "non-breaking space" 🤯

Tell me about the worst CSS you've ever had to deal with

Why the World Needs CSS Developers by elad

Storytelling CSS Class Names

Basic Skills Web Developers Should Learn

Creating Interactive HTML5 Inputs

Advance your frontend skills with CSS preprocessor

The most in-demand CSS technologies in 2020

Web layouts like it’s 2020

Why I don't use Bootstrap anymore.

Why CSS Grid is better than Bootstrap for creating layouts

A Modern CSS Reset

10 Awesome SASS (SCSS) Mixins

How to Use CSS clip-path Property to Make Amazing Websites

7 Projects to Practice HTML & CSS Skills for Beginners

CSS Grid or CSS frameworks?

free bootstrap template

Flexbox

What the Flexbox by wesbos?

Flexbox Guide

Basics of flexbox

Flexbox by w3school

“Old” Flexbox and “New” Flexbox

HTML & CSS

Flexbox cheatsheet

Understanding Flexbox: Everything you need to know

flexbox games

flexbox defense

flexy boxes

flexbox grid

w3.org flexbox intro

flexbox examples

Flexbox pattern

flexbox visuals

Flexbox Cheatsheet

Flexbox another cheatsheet

flexbugs

yoksel github

flexbox help

Advanced Cross-Browser Flexbox

Flexbox course on youtube

By freecodecamp

By Acedemind

By Traversy Media

By Techsith

By Thapa Technical in Hindi

By Kevin Powell

CSS Grid

Grid vs CSS Frameworks

Grid vs Flexbox

Grid-template-areas

by wesbos

grid ninja

css grid right away

css grid complete guide

learncss grid.com

by freecodecamp youtube channnel

grid by example

about grid

Grid by w3school

CSS Grid by MDN docs

Grid Games

w3.org intro

CSS Grid Layout Module

Mastery Games

CSS Specificity

css specificity rules

specificity.com

keegan

specific on css specifity

css spicificity wars

cssspecificity.com

BEM Architecture

css methodologies example

official BEM site

BEM info

Youtube Playlist

BEM Examples

BEM explained by Fredrik Christenson

BEM explained by Dcode channel

BEM in 6 mins

Responsive Web Design

multi-single line css

youtube

media Query pro tips-desk and mobile

youtube

responsive images

responsive multimedia

youtube

design revolution

css resolution vs device resolution

responsive image

Design Sources

Learn Design

books on design and dev

Learning Design vs. Becoming a Designer

Design for Non-Designers: Part 1

Design for Non-Designers: Part 2

Design for Non-Designers: Part 3

Useful Web Design Resources – Learning Coding & Design

Design For Developers

Design Fundamentals

The Principles of Graphic Design: How to Use Proximity Effectively

proximity-principle-design

Improve Your Designs With The Principles Of Similarity And Proximity (Part 1)

principles-of-design-proximity

Forums for design

professional-web-design-forums

sitepoint comunity

graphicdesignforum.com

www.webdesignerforum

design collection

site-for-UI/UX

podcast

How-do-you-become-a-graphic-designer

figma themes

figma freebies

ui store

webdesign.tutplus

speckboy

UI design daily

Illustration and Svg

Undraw

D3.js

Free Images

Find list of sites here

Colors

color scheme generator

colors.co

adobe palletes

my color space

Logo

logo inspiration

logoPond

Icons

css icons

collection-of-best-icons-site

icons8

alternative to fontawesomeIcons

freepik

flaticon

fontAwesome Icons

Website & Landing Pages

leadpages

dribble

pintrest

benhance

abuzedo

template

html5 templates

CSS animation

5 great css animation

css animation examples

keyframe css plugins

Git

Git and GitHub - CS50 Beyond 2019

A Beginner’s Guide to Git — How to Write a Good Commit Message

Udacity Git Commit Message Style Guide

Conventional Commits

How do I convert my team to Git?

Daily git commands for a professional programmer pt1

Daily git commands for a professional programmer pt2

Daily git commands for a professional programmer pt3

Git bisect and how small commits can help with finding bugs

Youtubers who post css video oftentimes

MDN

Layout Land

Kevin Powell

devED

Brad

Webdev Simplified

Angela Delise

Must Watch

conquering responsive layouts

What I hate most about being a frontend developer

Frontend vs Backend by Ex-google clement

What makes a good frontend developer?

What advanced tools do you need to learn as a frontend developer?

What tools do I need to learn for frontend development?

Not another frontend video

You are doing :focus wrong (and I was too)

sass vs scss - what's the difference and which should you use?

Organizing Sass | Front-End Architecture

6 simple typography tips to more professional looking sites

Smooth scrolling with one line of CSS


How to practice CSS?

Practicing CSS can help you improve your skills and get better at designing. You can practice CSS by following tutorials and reading articles about the best practices in CSS design.

When you practice, you should start with something simple and then gradually work your way up to more complex designs.

Practice CSS by creating various layouts and styles.

Practice CSS by creating a portfolio website for yourself.

Practice CSS by making a website for your favorite pet.

Practice CSS by making a website for your favorite movie or TV show.

Practice CSS by making a website for your favorite hobby.

The best way to practice css is to go in theme marketplace like themeforest, choose on of the template & try to clone the website

How to make money with HTML & CSS only?

There are various ways to make money with just html & css skills

Below are the list of ligit ways to make money with html & css

Freelancing: If you want to make money with HTML & CSS only, then you need to be a freelancer. There are many freelance websites out there where you can find jobs related to HTML & CSS coding.You can make gigs on Fiver "I will create landing page with just html css or I will create responsive landing page with tailwindcss"

Sell Source Codes:There are many platforms where you can sell your own design templates, such as Themeforest, Creative Market, and Creative Market Pro. There are also many websites where you can sell your designs for others to use such as Dribbble and Behance. You can also create wordpress themes with html & css & sell it on marketplace.

Blogging: You can target specific niche blogging about just CSS & monetize with google adsense.

Writing Articles: You can also write articles on free blogging platforms like on Hashnode or Medium & monetize it.

Conclusion

This article has given you a list of some of the best practices to follow when it comes to mastering CSS.

We have discussed the importance of mastering CSS, the core skills, tips, CSS framework pross & cons and we have mention ways to make money with html & css.

Share

Share:

Get the best marketing content in your inbox

I don’t spam users and usually send Newsletters for important updates and worth sharing ideas.

ABOUT

Ali Run Paid Ads for Business Owners on Social Media