Tiffany B. Brown is a freelance web developer and technical writer based in Los Angeles. Brown offers web development and consulting services to larger agencies and small businesses. A former member of the Opera Software developer relations team, Brown is also co-author of SitePoint's JumpStart HTML5 book. She sporadically writes about web development technology on her blog. You can follow her on Twitter at @webinista.
Tiffany's articles
Explore the four broad categories of CSS sizing units, how to apply them in your layouts, and how to choose the best ones in each scenario.
Learn how to use CSS variables (custom properties) to make it easier to manage colors, fonts, and size consistently across web applications.
By using SVGs with media queries, we can change their appearance based on user interaction or viewport size, and use them in multiple places.
In this series on troubleshooting and optimizing your CSS, Tiffany Brown looks at ensuring code efficiency with the CSS Optimizer (or CSSO), a minification tool that runs on Node.js and which makes sure our file sizes are as small as they can be.
In this series on troubleshooting and optimizing your CSS, Tiffany Brown delves into the browser-based developer tools for Chrome, Safari, Firefox, and Microsoft Edge, covering the styles panel, cascade and inheritance problems, spotting invalid properties and values, and debugging responsive layouts.
In this series on troubleshooting and optimizing your CSS, Tiffany Brown introduces UnCSS and stylelint, two code-quality tools for analyzing the quality of your CSS.
Tiffany Brown introduces Flexbox, explaining the basic principles behind flex layout, with examples of laying out a basic media object, flexible form components, vertical centering, and creating grid-like layouts, as well as explaining when to use Flexbox over CSS Grid.
Tiffany Brown introduces the basics of CSS Grid, covering the grid formatting context, defining a grid layout, explicit versus implicit grids, specifying track size for an implicit grid, creating flexible grids with flex units, using the grid-template shorthand property, and repeating rows and columns.
Scroll snap lets developers define the distance an interface should travel during a scroll action. You might use it to build slide shows or paged interfaces―features that currently require JavaScript and expensive DOM operations.
Transforms allow us to create effects and interactions that are otherwise impossible. When combined with transitions and animations, we can create elements and interfaces that rotate, dance, and zoom. In this piece, we'll look at 2D transform functions.
Think of CSS animation as the more sophisticated sister to CSS transitions. Animations differ from transforms in a few key ways, which we'll explore in this article
We’ll now look at two methodologies for naming things in CSS: Block-Element-Modifier (better known as BEM) and Atomic CSS.
Variables make it easier to manage colors, fonts, size, and animation values, and to ensure their consistency across a codebase.
Learn the most important point to understand about CSS is this: Everything is a box and every element in a document generates a box.
In this exclusive excerpt from our book, CSS Master, we teach you how to minify CSS with a CSS Optimizer.
In this exclusive book excerpt, we examine CSS properties and values that trigger reflows.
In this exclusive excerpt from our book, CSS Master, we look at the importance of file organization and how it benefits CSS architecture overall.
In this exclusive excerpt from our book, CSS Master, we give you the ultimate guidelines for writing clean CSS.
What exactly is Atomic CSS, and how do you use it? We give the lowdown through this exclusive excerpt from our book, CSS Master.
Learn how to use the Block-Element Modifier (BEM) in CSS. This an exclusive excerpt from our SitePoint book, titled CSS Master, written by Tiffany Brown.
CSS also provides selectors for matching elements based on their position in the document subtree. These are known as child–indexed pseudo-classes.
Let’s take a look at some pseudo-classes that are specific to form fields and form field input. These pseudo-classes can be used to style fields
Perhaps the most powerful of this new crop of pseudo-classes is :not(). It returns all elements except for those that match the selector argument.
Think of specificity as a score or rank that determines which style declarations are ultimately applied to an element
The CSS Pseudo-elements Module Level 4 specification clarifies behavior for existing pseudo-elements and defines several new ones. Only a few, however, have any degree of support in current browsers. Those are the ones we’ll talk about in this article.
In this article, We’ll focus on the new and lesser-known attribute selectors.
In this chapter, we’ll look at the current browser landscape for CSS selectors, with a focus on newer selectors.
This article shows how PouchDB can be used to create a note taking app that works even when an Internet connection is not available.
Read Server-sent Events and learn with SitePoint. Our web development and design tutorials, courses, and books will teach you HTML, CSS, JavaScript, PHP, Python, and more.