Progressive Enhancement
There are several approaches that we can use when we are working with the web to make sure our websites provide the best experience possible for the greatest number of users. Unlike some closed systems, we cannot trust that all users will have the same capabilities or devices. What we can do is work from a baseline set of features and then enhance the experience for more capable browsers. This is called Progressive Enhancement.
An example of this technique is providing a simple, functional web page with text and links and then adding JavaScript to enhance the experience.
One particular challenge is CSS custom properties, or CSS variables because they are useful when used throughout your CSS declarations and are not available in IE 11. They are difficult to polyfill without having to restrict what they can do. One way of handling CSS variables is with the user of a CSS preprocessor and the build tools that replace the CSS variables at build time to...