Book Image

Accelerating Angular Development with Ivy

By : Lars Gyrup Brink Nielsen, Mateus Carniatto, Jacob Andresen
Book Image

Accelerating Angular Development with Ivy

By: Lars Gyrup Brink Nielsen, Mateus Carniatto, Jacob Andresen

Overview of this book

Angular Ivy is the latest rendering engine and compiler introduced in Angular. Ivy helps frontend developers to make their Angular applications faster, better optimized, and more robust. This easy-to-follow guide will help you get to grips with the new features of Angular Ivy and show you how to migrate your Angular apps from View Engine to Ivy. You'll begin by learning about the most popular features of Angular Ivy with the help of simple stand-alone examples and realize its capabilities by working on a real-world application project. You'll then discover strategies to improve your developer workflow through new debugging APIs, testing APIs, and configurations that support higher code quality and productive development features. Throughout the book, you'll explore essential components of Angular, such as Angular Component Dev Kit (CDK), Ahead-of-time (AOT) compilation, and Angular command line interface (CLI). Finally, you'll gain a clear understanding of these components along with Angular Ivy which will help you update your Angular applications with modern features. By the end of this Angular Ivy book, you will learn about the core features of Angular Ivy, discover how to migrate your Angular View Engine application, and find out how to set up a high-quality Angular Ivy project.
Table of Contents (14 chapters)

Using CSS Custom Properties with Angular

CSS Custom Properties are native, runtime CSS variables. They can be scoped to a sub-tree of the DOM, such as Angular's element injector hierarchy. We are used to doing this with CSS classes with increased specificity or CSS source ordering.

CSS Custom Properties do not rely on specificity or CSS source ordering. Instead, we can dynamically change the value at runtime or override it for a specific part of the DOM.

Let's look at a simple example. Here, we have listed both a global and a scoped declaration of the --background-color CSS custom property:

:root {
  --background-color: rebeccapurple;
}
.contrast {
  --background-color: hotpink;
}
.panel {
  background-color: var(--background-color);
}

Now, look at the following HTML and try to reason about the global and scoped CSS Custom Properties. Don't worry if you do not understand it immediately. We will discuss it in detail in a moment...