CSS fundamentally transforms

Enabling the creation of maintainable sites and apps that look great across a variety of different devices and contexts.

css_lp_620

Choose your Learning Path. Our new Learning Paths will help you get where you want to go, whether it’s learning a programming language, developing new skills, or getting started with something entirely new.

CSS is different. Cascading Style Sheets provide a text-based way to describe what web pages should look like, but it isn’t a programming language and it relies on HTML document structures as a foundation. You need to have a grasp of HTML before you start CSS, but CSS doesn’t look anything like HTML. Nor does it look like JavaScript, the most common programming language on the Web. Whatever your background, getting comfortable with CSS’ unique approach can take some work.

CSS’ declarative model can be uniquely efficient, but requires an understanding not only of the features you want to use but the approach you want to take in decorating a document tree. That means understanding the document tree (and there may be many variations as you apply the same style sheet to multiple documents), the selectors used to identify points on the tree, the cascade that resolves conflicts among selectors, and the properties applied to that tree. Of course, the properties interact with each other and a shared model, so you’ll need to understand how the properties how to make those interactions produce your vision.
Read more…

Proposing CSS input modality

:focus'ing on users.

Image of a camera lens artfully out of focus

Editor’s note: The author would like to acknowledge her co-author, Brian Kardell, who contributed many insights to the ideas presented here, along with a substantial number of the words.

Web developers and web standards authors alike strive to live up to the promise of “universality” — the idea that the web should be available to all. This concept drives many innovations in web technology, as well as being fundamentally built in to the philosophy of the open standards on which the web is based.

In order to achieve this, we frequently find that having some carefully chosen information about how the user intends to view the content (a concept we’ll refer to in this article as “user context”) allows web developers to create more flexible and useful user experiences. In this post, we’ll lay out a case that it’s time to expand our view of user context to include the concept of modality (how the user is interacting with the page), but before we flesh that out, let’s take a look at “user context”.

Read more…

The Web welcomes

Access not just to content, but technology.

stairs

“They learn a bit of Web stuff, and the next thing you know they think they understand programming.” I’ve heard variations of that lament for the past two decades. I’ve heard it less lately, because so many recent computing professionals built their technical careers from that bit of Web stuff.

The Web succeeded in large part because it was the easiest way for people to create electronic content and share it. Indexes and search engines made it easier to find that content. While administering files on a server and learning HTML weren’t trivial, they were much more approachable tasks than creating and distributing traditional (now largely considered desktop or native) applications.

For the most part, they still are easier.
Read more…

JavaScript shares its ubiquity

WebAssembly changes the rules of the JavaScript game.

engineroom

I’ve never seen a technology lay down its primary advantage and prepare to hand over its ubiquity. I’m proud of JavaScript for doing this, and I’m sure that in the long run this will be good for the Web, but in the meantime I’m wondering where WebAssembly will take us.

Brendan Eich’s announcement of the effort makes clear that this builds on the earlier asm.js (and Google’s similar PNaCl), a highly efficient JavaScript subset that compilers of other languages could target. Eich enjoyed using Unreal Engine for demos of the speed asm.js could provide, but compiling to JavaScript, even weird JavaScript, still needed to go through a JavaScript parser. (Other approaches compiled to more comprehensible but less optimized JavaScript.)

WebAssembly – wasm – skips that final step, producing a binary format, technically a compressed AST encoding. Unless you’re going to be building compilers, you can compare wasm to a bytecode system. There is a text format for debugging, but the binary emphasis yields substantial extra speed as it skips parsing and minimizes decompression.
Read more…

Defining front-end architecture

Raising the banner for a new discipline.

frontend_architecture

In this excerpt taken from the upcoming book, Front-End Architecture: A Modern Blueprint for Scalable and Sustainable Design Systems, Micah Godbolt details the history of this new discipline and explains why it is such a vital role to embrace in our industry.

With the evolution of the web came changes to the roles of the modern web team. We went from a small group of generalist webmasters to a team of talented specialists. As each of these specialties developed, and members became more proficient in them, the web began to form a new set of roles… or disciplines.

Read more…

The power of connection

URLs are the Web's unique superpower.

iron_chain_620
Over the past two decades, the heart of the Web has come to seem ordinary, forgettable. Some software has gone so far as to bury it and make it invisible, but it still worked its magic behind the scenes. As competing systems have made it disappear, though, absence has made many hearts grow fonder.

The humble URL is pretty ugly. The Web’s creator, Tim Berners-Lee, was embarrassed that people looked at them. It’s plain text, the computing interface that came right after punchcards and switches. The openings are always verbose, with a long “http://” (or similar) preceding the actual place you want to go. Excessively abstract debates about URIs aside, automated systems’ fondness for opaque identifiers has made many URLs hideous piles of characters that only a lookup table could enjoy. (Are QR codes even uglier?)

Even done badly, however, the URL is perhaps the most powerful innovation in networking history. While prior systems (IP addresses, DNS, and similar) had let us connect computers, URLs let us connect people’s creations. URLs let us share other people’s ideas, and promote our own ideas. The power to say “this bit of text will (mostly) reliably get you this content today” is a basic feature fundamental to the Web’s triumph.
Read more…