(pseudo)random backgrounds, 62-65
.lightbox, 235
3D rotation, for trapezoids, 109-113
::backdrop, for dimming, 238
:nth-child() pseudo-class, 178, 271-275
:only-child, 272
<blink>, 314
<code> element, 182
<dd>, 173-177
<dialog>, 238
<div>, 252
<dt>, 173-177
<labels>, 229
<main>, 241
<path>, 211
<pre> element, 182
<textPath>, 211
@font-face, 189
(soft hyphens), 168
absolute positioning, for vertical centering, 281
acceleration, timing function and, 296-299
affordance, 225
align-items, vertical centering and, 286
ampersands, fancy, 188-193
Anderson, James, 280
animated GIFs, shortcomings of, 308
animation, 294-345
along a circular path, 334-345
blinking, 314-318
bouncing, 295-299
converting to transition, 301
duration vs. effectiveness, 321
elastic transitions, 294-305
for pie charts, 119-121
frame-by-frame, 308-312
smooth state, 328-332
typing, 320-326
animation-playstate, 332
animation-timing-function, 296
APNG, 309
assumptions, xxiv
Atlas system, xxii
automatic table layout algorithm, 266
background(s)
(pseudo)random, 62-65
and inner-rounded borders, 37
and zebra-striped lines, 180
checkerboards, 55-60
complex patterns, 50-60
diagonal stripes, 43-47
flexible positioning, 32-35
fluid with fixed content, 276-279
grids, 52
polka dots, 53
striped, 40-48
vertical stripes, 43
background-attachment, 246
background-blend mode, 141
background-image, text underlining and, 196
background-origin, 33
background-position, 33, 310, 330
background-size
for (pseudo)random backgrounds, 62-65
for stripes, 43
Bézier curves, 298
blending modes
filters vs., 142
for color tinting, 141-143
for interactive image comparison, 259
blinking, 314-318
blinking caret, 323
block elements, 173
blur() filter, 149
blurring, for de-emphasis, 240-243
border-bottom, 195
border-box, 26
border-image
for curved cutout corners, 102-105
limitations of, 68
with gradients, 73
border-radius
for ellipses, 76-81
for pie charts, 116
borders, 24
continuous image, 68-74
inner rounding of, 36-38
multiple, 28-30
translucent, 24-26
Bos, Bert, 5
bouncing animations, 295-299
bouncing effect, 294
box-shadow
and extension of clickable area, 226
and inner-rounded borders, 37
for dimming, 237
for multiple borders, 29
for one-sided shadows, 130
with irregular drop shadows, 134
box-sizing, 30
brevity, maintainability vs., 12
brightness() filter, 242
browser support, xxix-xxxiv
buttons, 10-12
parallelograms and, 84
regular v. toggle, 232
toggle buttons, 231
calc() (function)
and vertical centering, 282
for flexible background positioning, 35
for sticky footers, 290
callouts, elastic transitions for, 300-304
caret, blinking, 323
cell cursor, 219
Centering in the Unknown (Chris Coyier), 281
centering, vertical, 280-286
ch unit, 323
checkboxes
custom, 228-232
toggle buttons vs., 232
checked (pseudo-class), 229
checkerboards, 55-60
circular path, animations along, 334-345
circular text, 210-214
clickable area, extending, 224-227
clip-path
for cutout corners, 105-107
for diamond images, 93
clipped top border, 73
code duplication, minimizing, 9-12
coding tips, 9-22
and eyes behavior, 15
and Responsive Web Design, 15-17
currentColor, 13
inheritance, 13
maintainability vs. brevity, 12
minimize code duplication, 9-12
preprocessors, 19-22
shorthand use, 17-19
color, 11
and elastic transitions, 305
currentColor, 13
for pie charts, 115
with curved cutout corners, 104
with flexible subtle stripes, 48
color stops
and checkerboard patterns, 56
and striped backgrounds, 44
for grids, 52
color tinting, 138-143
blending modes for, 141-143
filters for, 139
column widths, table, 266-268
complex background patterns, 50-60
checkerboards, 55-60
grids, 52
polka dots, 53
continuous image borders, 68-74
contrast() filter, 242
control points, 298
corners, cutout, 96-107
CSS
recent growth and transformation of, xvii
standards/specifications, 2-8
CSS 1, 5
CSS 2, 5
CSS 3, 6
CSS Working Group (CSS WG), 2-8
cubic-bezier () function, 298-299, 302
currentColor, 13
cursors
built-in, 218-221
hiding, 221
indicating disabled state, 220
curved cutout corners, 100
cutout corners, 96-107
clipping path method for, 105-107
curved, 100
gradients for, 97
inline SVG/border-image method, 102-105
de-emphasis
by blurring, 240-243
by dimming, 234-238
definition lists, line breaks for, 172
diagonal stripes, 43-47
diamond images, 90-94
dimming
backdrop method, 238
de-emphasis by, 234-238
pseudo-element method, 236
disabled state, cursor, 220
discretionary ligatures, 184
display: flex
and vertical centering, 285
for sticky footers, 291
drop shadows, irregular, 134-137
drop-shadow () filter, 135, 137
DRY programming, xviii
duplication of code, minimizing, 9-12
ease (keyword), 296
Eden, Dan, 300
elastic transitions, 294-305
bouncing animations, 295-299
for callouts, 300-304
ellipses
flexible, 76-81
half, 79-81
quarter, 81
extended background-position method, 33
extending the clickable area, 224-227
extruded text, 206
eye, human, 15
fill (keyword), 103
fill: none, 213
filter(s)
blending modes vs., 142
for color tinting, 139
for interactive image comparison, 259
with irregular drop shadows, 135
Fitts Law, 224
Fitts, Paul, 224
fixed content, fluid backgrounds with, 276-279
fixed table layout algorithm, 268
flex-flow, 291
Flexbox
for vertical centering, 285
flexible background positioning, 32-35
background-origin method for, 33
calc() method for, 35
extended backgrounds for, 33
flexible ellipses, 76-81
flexible subtle stripes, 48
fluid backgrounds, fixed content with, 276-279
folded corner effect, 156-165
for 45° angles, 157-159
for angles other than 45°, 159-165
font size, 10
font-family declarations, 189
font-variant-ligatures, 185
footers, sticky, 288-292
footnote border, 73
formats and conventions, xxvi
frame-by-frame animations, 308-312
frosted glass effect, 146-154
future sections, xxviii
Gaussian blur algorithm, 131
GIFs, animated, shortcomings of, 308
glowing text, 205
glyphs, ligatures as, 184
Google Reader, 244
Google+, 334
gradient-based patterns, 71
gradients, for cutout corners, 97
Greedy algorithm, 169
Gregor, Aryeh, 340
habrahabr.ru, 334
half ellipses, 79-81
Hattab, Hakim El, 243
hiding the cursor, 221
hue-rotate() filter, 140
hyphenation, 168-170
hyphens: auto, 169
image comparison, interactive, 250-259
CSS resize method for, 251-254
range input method for, 255-259
image, as border, 68
infinite (keyword), 324
inherit (keyword), 13
inheritance, 13
inner border radius, 100
inner rounding (borders), 36-38
interactive image comparison, 250-259
intrinsic sizing, 262-264
irregular drop shadows, 134-137
Jacobs, Ian, 5
JavaScript
for frame-by-frame animation, 309
for typing animation, 324
justification, text, 168
justify-content, 286
Knuth-Pass algorithm, 169
Komarov, Roman, 249
latency, 20
Law of Leaky Abstractions, 20
layout, 262-292
fluid backgrounds with fixed content, 276-279
intrinsic sizing, 262-264
sticky footers, 288-292
styling by sibling count, 270-275
table column widths, 266-268
vertical centering, 280-286
least common multiple (LCM), for (pseudo)random backgrounds, 64
letterpress effect, 201
Lie, Håkon Wium, 5
ligatures, 184-186
Lilley, Chris, 5
line breaks, inserting, 172-177
linear gradient
and grids, 52
and striped backgrounds, 41
for cutout corners, 97
lines, text, zebra-striped, 178-181
local() function, 190
longhands, 18
maintainability, brevity vs., 12
marching ants border, 72
max-width, 264
McClellan, Drew, 193
media queries, 15-17
Meyer, Eric, 66
min-content (keyword), 263
mix-blend mode, 141
modal dialog, 238
Montulli, Lou, 314
mouse pointer, 218
Mozilla, 309
multiple borders, 28-30
box-shadow for, 29
outlines for, 30
negative animation delays, 119-121
nested elements, for parallelograms, 85
nested transforms, 337
not-allowed cursor, 220
one-sided shadows, 130-133
outline-offset, 30
outlines, for multiple borders, 30
overflow: visible, 213
parallelograms, 84-87
pattern, as border, 68
pie charts
SVG solution for, 122-128
transform-based solution for, 115
pie charts, simple, 114-128
PNG sprite animation, 309-312
polka dot backgrounds, 53
polygon(), for diamond images, 93
position: relative/absolute, 86
preprocessors, 19-22
for complex background patterns, 50
for folded-corner effect, 165
prerequisites, xxv
prime numbers, for (pseudo)random backgrounds, 65
pseudo-elements
for parallelograms, 86
for pie charts, 116
pseudo-elements
for dimming, 236
for pie charts, 117
for trapezoids, 110
mouse interaction capture by, 226
Pythagorean theorem, 160
and inner-rounded borders, 38
and striped backgrounds, 44
for curved cutout corners, 103
quarter ellipses, 81
radial gradients
for curved cutout corners, 100
for polka dots, 53
random backgrounds, 62-65
readability, justification and, 168
repeating-linear-gradient(), 45-47
repeating-radial-gradient(), 45
resize, for interactive image comparison, 251-254
Responsive Web Design (RWD), 15-17
rotate() transform
for animation along circular path, 337-340
for diamond images, 91
for parallelograms, 87
for pie charts, 117
rounding, inner (borders), 36-38
Saly, Martijn, 105
saturate () filter, 139
scale() transform
for diamond images, 92
for elastic transitions, 302
scrolling, 244-249
Seddon, Ryan, 231
shadows
irregular drop, 134-137
on one side, 130-132
on two adjacent sides, 132
on two opposite sides, 133
one-sided, 130-133
shapes, 76-128
cutout corners, 96-107
diamond images, 90-94
flexible ellipses, 76-81
half ellipses, 79-81
parallelograms, 84-87
pie charts, 114-128
quarter ellipses, 81
trapezoid tabs, 108-113
shorthands, use of, 17-19
sibling count, styling by, 270-275
simple pie charts, 114-128
Simurai, 312
sizing, intrinsic, 262-264
skew() transform, 84
slider control, 256-259
smooth state animations, 328-332
soft hyphens (), 168
sprite animation, 309-312
steps() timing function, 311, 317, 322
sticky footers, 288-292
Storey, Dudley, 66, 144, 259, 264
striped backgrounds, 40-48
diagonal stripes, 43-47
flexible subtle stripes, 48
vertical stripes, 43
striped text lines, 178-181
stroke-dasharray, 122-126
stroked text, 203
style elements, sibling count and, 270-275
SVG
for checkerboard patterns, 59
for pie charts, 122-128
tab width adjustments, 182
tab-size, 183
table-layout (property), 266
tables
column widths, 266-268
zebra-striped lines in, 178-181
text effects
circular text, 210-214
extruded text, 206
glowing text, 205
letterpress, 201
realistic, 200-208
stroked text, 203
typing animation, 320-326
text justification, 168
text lines, zebra-striped, 178-181
text underlines, custom, 194-197
text-decoration: blink, 315
text-shadow
and extruded text, 207
and glowing text, 205
and letterpress effect, 202
and stroked text, 203
and text underlining, 197
with irregular drop shadows, 137
three-dimensional (3D) rotation, for trapezoids, 109-113
timing function, 296-299
tinting, 138-143
toggle buttons, 231
transform(s)
and parallelograms, 86
for diamond images, 91
for trapezoids, 109-113
interdependence of transform functions, 341
transform-origin, 163
for trapezoids, 111
translate() vs., 340
transform-style, vertical centering and, 283
transition-duration, 304
transition-property, 305
transition-timing-function, 296
transitions and animations, 294-345
animations along a circular path, 334-345
blinking, 314-318
converting animation to transition, 301
elastic transitions, 294-305
frame-by-frame animations, 308-312
smooth state animations, 328-332
typing animation, 320-326
translate()
and vertical centering, 282
for animation along circular path, 343
transform-origin vs., 340
translucent borders, 24-26
transparency, gray checkerboard patterns for depicting, 55
trapezoid tabs, 108-113
triangles
and folded corner effect, 156-165
for checkerboard patterns, 55
typing animation, 320-326
typography, 168-214
circular text, 210-214
custom underlines, 194-197
extruded text effect, 206
fancy ampersands, 188-193
glowing text effect, 205
hyphenation, 168-170
inserting line breaks, 172-177
letterpress effect, 201
ligatures, 184-186
realistic text effects, 200-208
stroked text effect, 203
tab width adjustments, 182
zebra-striped text lines, 178-181
underlines, custom, 194-197
unicode-range descriptor, 191
user experience, 218-259
cursor selection, 218-221
custom checkboxes, 228-232
de-emphasis by blurring, 240-243
de-emphasis by dimming, 234-238
extending the clickable area, 224-227
interactive image comparison, 250-259
scrolling, 244-249
toggle buttons, 231
vendor prefixes, 6-8
vertical centering, 280-286
absolute positioning for, 281
Flexbox for, 285
viewport unit for, 284
vertical stripes, 43
viewBox, 212
viewport units, 237
vintage envelope themed border, 71
visual effects, 130-165
color tinting, 138-143
folded corner effect, 156-165
frosted glass effect, 146-154
irregular drop shadows, 134-137
one-sided shadows, 130-133
W3C (World Wide Web Consortium), 2
web standards, 2-8
and CSS evolution, 5
and vendor prefixes, 6-8
creation process, 2-4
WET programming, xviii
white-space:, 174
Wichary, Marcin, 198
word wrapping, 169
wrapping, word, 169
z-index, 235
zebra-striped text lines, 178-181