CSS selectors all exist within the same global scope. Anyone who has worked with CSS long enough has had to come to terms with its aggressively global nature — a model clearly designed in the age of documents, now struggling to offer a sane working environment for today’s modern web applications. Every selector has the potential to have unintended side effects by targeting unwanted elements or clashing with other selectors. More surprisingly, our selectors may even lose out in the global specificity war, ultimately having little or no effect on the page at all.

Any time we make a change to a CSS file, we need to carefully consider the global environment in which our styles will sit. No other front end technology requires so much discipline just to keep the code at a minimum level of maintainability. But it doesn’t have to be this way. It’s time to leave the era of global style sheets behind.

It’s time for local CSS.

In other languages, it’s accepted that modifying the global environment is something to be done rarely, if ever.

In the JavaScript community, thanks to tools like Browserify, Webpack and JSPM, it’s now expected that our code will consist of small modules, each encapsulating their explicit dependencies, exporting a minimal API.

Yet, somehow, CSS still seems to be getting a free pass.

Many of us — myself included, until recently — have been working with CSS so long that we don’t see the lack of local scope as a problem that we can solve without significant help from browser vendors. Even then, we’d still need to wait for the majority of our users to be using a browser with proper Shadow DOM support.

We’ve worked around the issues of global scope with a series of naming conventions like OOCSS, SMACSS, BEM and SUIT, each providing a way for us to avoid naming collisions and emulate sane scoping rules.

We no longer need to add lengthy prefixes to all of our selectors to simulate scoping. More components could define their own foo and bar identifiers which — unlike the traditional global selector model—wouldn’t produce any naming collisions.

import styles from './MyComponent.css';
import React, { Component } from 'react';
export default class MyComponent extends Component {
 render() {
    return (
      <div>
        <div className={styles.foo}>Foo</div>
        <div className={styles.bar}>Bar</div>
      </div>
    );
  }

The benefits of global CSS — style re-use between components via utility classes, etc. — are still achievable with this model. The key difference is that, just like when we work in other technologies, we need to explicitly import the classes that we depend on. Our code can’t make many, if any, assumptions about the global environment.

Writing maintainable CSS is now encouraged, not by careful adherence to a naming convention, but by style encapsulation during development.

Once you’ve tried working with local CSS, there’s really no going back. Experiencing true local scope in our style sheets — in a way that works across all browsers— is not something to be easily ignored.

Introducing local scope has had a significant ripple effect on how we approach our CSS. Naming conventions, patterns of re-use, and the potential extraction of styles into separate packages are all directly affected by this shift, and we’re only at the beginning of this new era of local CSS.

process.env.NODE_ENV === 'development' ?
    '[name]__[local]___[hash:base64:5]' :
    '[hash:base64:5]'
)

Understanding the ramifications of this shift is something that we’re still working through. With your valuable input and experimentation, I’m hoping that this is a conversation we can have together as a larger community.

Note: Automatically optimising style re-use between components would be an amazing step forward, but it definitely requires help from people a lot smarter than me.

Ci Sono Due Modi Di Pensare – Uno Dei Due Non Funziona

Entro limiti ragionevoli, non mi interessa se le mie convinzioni sono vere. Perché dovrei?

Per un individuo, in molte situazioni, ci sono più narrazioni ugualmente corrette tra cui scegliere. In questi casi, dovresti scegliere la rappresentazione che funziona meglio per te.

"Giudichi un modello in base a quanto ti è utile, non in base a quanto sia giusto." - Charles Chu

0 Commenti4 Minuti

CCleaner backdoor

0 Commenti6 Minuti

Cloud e On-Prem

0 Commenti3 Minuti

Calm over the horizon

Many years ago, I worked for my parents who own a video production company. Because it is a family business, you inevitably end up wearing many hats and being the czar of many different jobs. I mainly managed projects and worked as a video editor. On production, there were times that I was called on to work as an audio tech and was made to wear headphones on long production days. In those days, having a really good set of headphones that picked up every nuance of sound was essential to making sure the client got what they needed.

3 Commenti4 Minuti

Inspired by clouds

Last year I wrote about why booking too far in advance can be dangerous for your business, and this concept of margin so eloquently captures what I had recognized had been my problem: I was so booked up with clients that I wasn’t leaving any margin for error, growth, planning, or reflection.

3 Commenti8 Minuti

Make it clean and simple

Just the other day I happened to wake up early. That is unusual for an engineering student. After a long time I could witness the sunrise. I could feel the sun rays falling on my body. Usual morning is followed by hustle to make it to college on time. This morning was just another morning yet seemed different.

3 Commenti4 Minuti

When you are alone

When you are alone for days or weeks at a time, you eventually become drawn to people. Talking to randos is the norm. I’ll never forget the conversation with the aquarium fisherman, forest ranger, and women at the Thai market. It’s refreshing to compare notes on life with people from vastly different backgrounds.

3 Commenti4 Minuti

Real time design tools

Just the other day I happened to wake up early. That is unusual for an engineering student. After a long time I could witness the sunrise. I could feel the sun rays falling on my body. Usual morning is followed by hustle to make it to college on time. This morning was just another morning yet seemed different.

3 Commenti4 Minuti

Stumbled the concept

Last year I wrote about why booking too far in advance can be dangerous for your business, and this concept of margin so eloquently captures what I had recognized had been my problem: I was so booked up with clients that I wasn’t leaving any margin for error, growth, planning, or reflection.

3 Commenti5 Minuti

Hey DJ play that song

Many years ago, I worked for my parents who own a video production company. Because it is a family business, you inevitably end up wearing many hats and being the czar of many different jobs. I mainly managed projects and worked as a video editor. On production, there were times that I was called on to work as an audio tech and was made to wear headphones on long production days. In those days, having a really good set of headphones that picked up every nuance of sound was essential to making sure the client got what they needed.

3 Commenti4 Minuti

Me Myself and I

Many years ago, I worked for my parents who own a video production company. Because it is a family business, you inevitably end up wearing many hats and being the czar of many different jobs. I mainly managed projects and worked as a video editor. On production, there were times that I was called on to work as an audio tech and was made to wear headphones on long production days. In those days, having a really good set of headphones that picked up every nuance of sound was essential to making sure the client got what they needed.

3 Commenti4 Minuti

My tech travel setup

One of the easiest ways to improve travel photos is shooting in better light, and the best light is often in the hour after sunrise and before sunset. That’s because the light takes on a warm golden hue and hits the subject from the side instead of the top. t’s difficult to recreate the grandeur of a vast landscape in the confines of a picture frame.

3 Commenti3 Minuti

Learn the rules first

I was recently quoted as saying, I don't care if Instagram has more users than Twitter. If you read the article you’ll note there’s a big “if” before my not giving of said shit. Numbers are important. Number of users is important. So are lots of other things. Different services create value in different ways. Trust your gut as much (or more) than the numbers. Figure out what matters and build something good.

3 Commenti1 Minuti

The new brand identity

When you are alone for days or weeks at a time, you eventually become drawn to people. Talking to randos is the norm. I’ll never forget the conversation with the aquarium fisherman, forest ranger, and women at the Thai market. It’s refreshing to compare notes on life with people from vastly different backgrounds.

3 Commenti5 Minuti

Sounds from the streets

Last year I wrote about why booking too far in advance can be dangerous for your business, and this concept of margin so eloquently captures what I had recognized had been my problem: I was so booked up with clients that I wasn’t leaving any margin for error, growth, planning, or reflection.

3 Commenti4 Minuti

A day alone at the sea

Just the other day I happened to wake up early. That is unusual for an engineering student. After a long time I could witness the sunrise. I could feel the sun rays falling on my body. Usual morning is followed by hustle to make it to college on time. This morning was just another morning yet seemed different.

3 Commenti4 Minuti

Some amazing buildings

When you are alone for days or weeks at a time, you eventually become drawn to people. Talking to randos is the norm. I’ll never forget the conversation with the aquarium fisherman, forest ranger, and women at the Thai market. It’s refreshing to compare notes on life with people from vastly different backgrounds.

3 Commenti3 Minuti

Working from your home?

Just the other day I happened to wake up early. That is unusual for an engineering student. After a long time I could witness the sunrise. I could feel the sun rays falling on my body. Usual morning is followed by hustle to make it to college on time. This morning was just another morning yet seemed different.

3 Commenti5 Minuti

Awwwards best websites

I was recently quoted as saying, I don't care if Instagram has more users than Twitter. If you read the article you’ll note there’s a big “if” before my not giving of said shit. Numbers are important. Number of users is important. So are lots of other things. Different services create value in different ways. Trust your gut as much (or more) than the numbers. Figure out what matters and build something good.

3 Commenti1 Minuti

Trust in your intuitions

When you are alone for days or weeks at a time, you eventually become drawn to people. Talking to randos is the norm. I’ll never forget the conversation with the aquarium fisherman, forest ranger, and women at the Thai market. It’s refreshing to compare notes on life with people from vastly different backgrounds.

3 Commenti6 Minuti

Top Deejay Headphones

Many years ago, I worked for my parents who own a video production company. Because it is a family business, you inevitably end up wearing many hats and being the czar of many different jobs. I mainly managed projects and worked as a video editor. On production, there were times that I was called on to work as an audio tech and was made to wear headphones on long production days. In those days, having a really good set of headphones that picked up every nuance of sound was essential to making sure the client got what they needed.

3 Commenti5 Minuti

Calm over the horizon

Many years ago, I worked for my parents who own a video production company. Because it is a family business, you inevitably end up wearing many hats and being the czar of many different jobs. I mainly managed projects and worked as a video editor. On production, there were times that I was called on to work as an audio tech and was made to wear headphones on long production days. In those days, having a really good set of headphones that picked up every nuance of sound was essential to making sure the client got what they needed.

3 Commenti4 Minuti

Inspired by clouds

Last year I wrote about why booking too far in advance can be dangerous for your business, and this concept of margin so eloquently captures what I had recognized had been my problem: I was so booked up with clients that I wasn’t leaving any margin for error, growth, planning, or reflection.

3 Commenti8 Minuti

Make it clean and simple

Just the other day I happened to wake up early. That is unusual for an engineering student. After a long time I could witness the sunrise. I could feel the sun rays falling on my body. Usual morning is followed by hustle to make it to college on time. This morning was just another morning yet seemed different.

3 Commenti4 Minuti

When you are alone

When you are alone for days or weeks at a time, you eventually become drawn to people. Talking to randos is the norm. I’ll never forget the conversation with the aquarium fisherman, forest ranger, and women at the Thai market. It’s refreshing to compare notes on life with people from vastly different backgrounds.

3 Commenti4 Minuti

Real time design tools

Just the other day I happened to wake up early. That is unusual for an engineering student. After a long time I could witness the sunrise. I could feel the sun rays falling on my body. Usual morning is followed by hustle to make it to college on time. This morning was just another morning yet seemed different.

3 Commenti4 Minuti

Stumbled the concept

Last year I wrote about why booking too far in advance can be dangerous for your business, and this concept of margin so eloquently captures what I had recognized had been my problem: I was so booked up with clients that I wasn’t leaving any margin for error, growth, planning, or reflection.

3 Commenti5 Minuti

Time is passing by

Every selector has the potential to have unintended side effects by targeting unwanted elements or clashing with other selectors. More surprisingly, our selectors may even lose out in the global specificity war, ultimately having little or no effect on the page at all. Any time we make a change to a CSS file, we need to carefully consider the global environment in which our styles will sit. No other front end technology requires so much discipline just to keep the code at a minimum level of maintainability.

3 Commenti5 Minuti

Hey DJ play that song

Many years ago, I worked for my parents who own a video production company. Because it is a family business, you inevitably end up wearing many hats and being the czar of many different jobs. I mainly managed projects and worked as a video editor. On production, there were times that I was called on to work as an audio tech and was made to wear headphones on long production days. In those days, having a really good set of headphones that picked up every nuance of sound was essential to making sure the client got what they needed.

3 Commenti4 Minuti

Me Myself and I

Many years ago, I worked for my parents who own a video production company. Because it is a family business, you inevitably end up wearing many hats and being the czar of many different jobs. I mainly managed projects and worked as a video editor. On production, there were times that I was called on to work as an audio tech and was made to wear headphones on long production days. In those days, having a really good set of headphones that picked up every nuance of sound was essential to making sure the client got what they needed.

3 Commenti4 Minuti

My tech travel setup

One of the easiest ways to improve travel photos is shooting in better light, and the best light is often in the hour after sunrise and before sunset. That’s because the light takes on a warm golden hue and hits the subject from the side instead of the top. t’s difficult to recreate the grandeur of a vast landscape in the confines of a picture frame.

3 Commenti3 Minuti

You have to learn the rules of the game. And then you have to play better than anyone else.

Albert Einstein

Learn the rules first

I was recently quoted as saying, “I don’t give a shit” if Instagram has more users than Twitter. If you read the article you’ll note there’s a big “if” before my not giving of said shit. Numbers are important. Number of users is important. So are lots of other things. Different services create value in different ways. Trust your gut as much (or more) than the numbers. Figure out what matters and build something good.

3 Commenti1 Minuti

The new brand identity

When you are alone for days or weeks at a time, you eventually become drawn to people. Talking to randos is the norm. I’ll never forget the conversation with the aquarium fisherman, forest ranger, and women at the Thai market. It’s refreshing to compare notes on life with people from vastly different backgrounds.

3 Commenti5 Minuti