The Ultimate CSS Survey 2017

1,657 responses

1. How long have you been writing/developing CSS?

1K out of 1K answered

1
1-5 years
37% / 615 resp.
2
More than 10 years
29% / 486 resp.
3
6-10 years
14% / 243 resp.
4
Less than a year
4% / 70 resp.

2. Which of the following most accurately describes you?

1K out of 1K answered

1
I'm a full-stack developer
29% / 492 resp.
2
I'm a front-end developer who does some design
28% / 475 resp.
3
I'm strictly a front-end developer
20% / 347 resp.
4
I'm a designer that writes CSS
14% / 236 resp.
5
I'm a back-end developer who writes CSS occasionally
3% / 61 resp.
6
Other
2% / 46 resp.

3. How would you rate your CSS skills?

1K out of 1K answered

1
High Intermediate
45% / 760 resp.
2
Intermediate
28% / 465 resp.
3
Expert
19% / 320 resp.
4
Low Intermediate
5% / 96 resp.
5
Beginner
1% / 16 resp.

4. In your job, how many people work on the same CSS files that you work on?

1K out of 1K answered

1
Me and 1-3 others
52% / 862 resp.
2
Just me
33% / 557 resp.
3
Me and 4-10 others
10% / 179 resp.
4
Me and 11+ others
3% / 59 resp.

5. How do you primarily format your CSS?

1K out of 1K answered

1
Multi-line (property/value pair on each line)
90% / 1K resp.
2
Single-line (all property/value pairs on a single line for each selector)
9% / 163 resp.

6. How do you order your CSS properties within a single declaration block?

1K out of 1K answered

1
Grouped by type (dimensions, typography, layout, etc.)
36% / 607 resp.
2
Randomly but certain parts are grouped (e.g. width and height together)
32% / 543 resp.
3
Randomly based on the order I first write them
16% / 279 resp.
4
Alphabetically
13% / 221 resp.
5
By length
0% / 7 resp.

7. Do you indent your selectors to match HTML hierarchy?

1K out of 1K answered

1
No, I use nesting with a preprocessor
43% / 727 resp.
2
No
27% / 460 resp.
3
Yes
24% / 400 resp.
4
I don't know what that means
4% / 70 resp.

8. Do you currently use IDs as selectors in your CSS files?

1K out of 1K answered

1
No
63% / 1K resp.
2
Yes
36% / 610 resp.

9. How often do you chain classes in your selectors?

1K out of 1K answered

1
Occasionally
46% / 775 resp.
2
Rarely
31% / 517 resp.
3
All the time
16% / 265 resp.
4
I don't know what that means
3% / 56 resp.
5
Never
2% / 44 resp.

10. For new projects, what is your current primary layout technique for a page's basic structure?

1K out of 1K answered

1
Floats and/or positioning
38% / 630 resp.
2
Flexbox with no polyfills or fallbacks
31% / 515 resp.
3
Flexbox polyfilled
14% / 235 resp.
4
Absolute/relative positioning with no floats
4% / 74 resp.
5
W3C Grid Layout (i.e. using "display: grid", etc.)
2% / 41 resp.
6
Table-based layouts
1% / 26 resp.
7
Other
5% / 95 resp.

11. How do you normally control typography?

1K out of 1K answered

1
I set the body font size, then use mostly rems and ems
41% / 694 resp.
2
I use px mostly everywhere
31% / 516 resp.
3
I use ems mostly everywhere
10% / 165 resp.
4
I use rems mostly everywhere
9% / 161 resp.
5
I use a third-party framework that does it for me
5% / 95 resp.
6
Other
1% / 26 resp.

12. What CSS unit do you use the most?

1K out of 1K answered

1
px
45% / 759 resp.
2
em
21% / 358 resp.
3
rem
19% / 329 resp.
4
percentages
11% / 189 resp.
5
other
1% / 22 resp.

13. How do you primarily define colors in CSS?

1K out of 1K answered

1
Hex format and/or color keywords (e.g. #cf631d and "maroon")
49% / 819 resp.
2
A combination of two or three of the above
39% / 647 resp.
3
RGB/RGBA format (e.g. rgb(0, 20, 130))
9% / 160 resp.
4
HSL/HSLA format (e.g. hsl(207, 38%, 47%))
1% / 17 resp.
5
Other
0% / 8 resp.

14. How often do you use flexbox?

1K out of 1K answered

1
On every new project
33% / 562 resp.
2
On most new projects
28% / 469 resp.
3
Not very often
20% / 335 resp.
4
Haven't started using it yet
17% / 291 resp.

15. Which of the following formats do you prefer for your class names and/or ID selectors?

1K out of 1K answered

1
Hyphenated (e.g. my-class)
33% / 559 resp.
2
I use a CSS methodology (e.g. BEM) with a defined style
31% / 522 resp.
3
Combination of two or three of the above
13% / 228 resp.
4
Camel cased (e.g. myClass)
10% / 174 resp.
5
Underscored (e.g. my_class)
4% / 79 resp.
6
Hyphen/underscore for classes, camel case for IDs
3% / 53 resp.
7
Another combination or style not listed here
2% / 42 resp.

16. Do you comment your CSS?

1K out of 1K answered

1
Yes, but very little
40% / 662 resp.
2
Yes, but probably not as much as I should
33% / 560 resp.
3
No
13% / 218 resp.
4
Yes, extensively
13% / 215 resp.
5
I don't know how to comment CSS
0% / 1 resp.

17. Have you adopted a "mobile-first" CSS strategy?

1K out of 1K answered

1
Yes, for most projects
34% / 572 resp.
2
Yes, for every project
29% / 486 resp.
3
No
26% / 433 resp.
4
I've done it a few times, but don't plan to do it again
9% / 150 resp.
5
I don't know what "mobile-first" is
0% / 15 resp.

18. How often do you use the calc() function for values?

1K out of 1K answered

1
Occasionally
35% / 593 resp.
2
Rarely
30% / 505 resp.
3
Never
19% / 323 resp.
4
All the time
10% / 165 resp.
5
I've never heard of it
4% / 71 resp.

19. Not including pre-built framework files, how many CSS files do you typically create for a single project?

1K out of 1K answered

1
Multiple files, but my build process concatenates into a single file for production
60% / 1K resp.
2
One file for all styles
22% / 379 resp.
3
Multiple files, even for production
13% / 230 resp.
4
Does not apply to me (e.g. using CMS, etc.)
2% / 44 resp.

20. When writing CSS, how conscious are you of keeping your code maintainable for yourself or future developers?

1K out of 1K answered

1
I try very hard to keep my CSS maintainable
44% / 738 resp.
2
I use a CSS methodology that helps keep my code maintainable
35% / 583 resp.
3
I do a mediocre job at keeping my code maintainable
16% / 266 resp.
4
I do a poor job at keeping my code maintainable
3% / 59 resp.
5
I'm not interested in keeping my code maintainable
0% / 11 resp.

21. How often do you refactor CSS on older projects?

1K out of 1K answered

1
Rarely
39% / 658 resp.
2
Occasionally
34% / 577 resp.
3
Never
10% / 165 resp.
4
Often
8% / 137 resp.
5
I try to refactor just about every project
3% / 64 resp.
6
I don't know what "refactor" means
3% / 55 resp.

22. How often do you use the !important keyword?

1K out of 1K answered

1
Only when absolutely necessary, but I always refactor later
40% / 677 resp.
2
Occasionally (e.g. for single-purpose utility classes)
36% / 597 resp.
3
Never
20% / 343 resp.
4
All the time, it's the easiest way to overcome specificity issues
1% / 27 resp.
5
I've never heard of that keyword
0% / 13 resp.

23. How often do you include custom print styles in a project?

1K out of 1K answered

1
For some projects
43% / 722 resp.
2
Never
33% / 555 resp.
3
For most projects
10% / 172 resp.
4
I don't know how to define print styles
6% / 107 resp.
5
For every project
6% / 101 resp.

24. Which of the following lesser-known CSS units have you used in a real project?

1K out of 1K answered

1
vw, vh, vmin, vmax
89% / 1K resp.
2
dpi, dpcm, dppx
14% / 204 resp.
3
grad, rad, turn
13% / 192 resp.
4
cm, mm, q, in, pc
12% / 175 resp.
5
ex, ch
8% / 126 resp.
6
Hz, kHz
3% / 56 resp.

25. How often do you use a 3rd-party CSS framework (e.g. Bootstrap, Foundation)?

1K out of 1K answered

1
Some projects
20% / 332 resp.
2
Most projects
19% / 327 resp.
3
Never
19% / 325 resp.
4
Rarely
18% / 306 resp.
5
Every project
15% / 259 resp.
6
Most/every/some projects, but not by choice
5% / 92 resp.
7
Does not apply to me
1% / 16 resp.

26. What is your primary CSS Framework for new projects?

1K out of 1K answered

1
Bootstrap
38% / 631 resp.
2
I don't use a CSS framework
27% / 449 resp.
3
My own (or my company's own) custom solution
17% / 288 resp.
4
Foundation
7% / 116 resp.
5
Does not apply to me
3% / 54 resp.
6
Semantic UI
0% / 14 resp.
7
UIkit
0% / 12 resp.
8
Pure by Yahoo!
0% / 3 resp.
9
Other
5% / 87 resp.

27. Do you use a CSS preprocessor (like Sass) or post-processor (like PostCSS) for the majority of new projects?

1K out of 1K answered

1
Yes
72% / 1K resp.
2
No
27% / 451 resp.

28. Over the past year, which of the following CSS processors/tools have you used on a real project?

1K out of 1K answered

1
Sass
84% / 1K resp.
2
Less
34% / 500 resp.
3
PostCSS
30% / 434 resp.
4
CSS Modules (by Glen Maddern)
7% / 113 resp.
5
Stylus
6% / 99 resp.
6
Pleeease
3% / 54 resp.
7
Rework
0% / 6 resp.
8
CSS-Crush
0% / 3 resp.
9
Myth
0% / 2 resp.

29. Do you feel CSS preprocessors like Sass and Less are the way CSS should have been designed in the first place?

1K out of 1K answered

1
Yes
35% / 580 resp.
2
Yes, but not all features
30% / 503 resp.
3
I have no opinion, doesn't matter, etc.
17% / 297 resp.
4
No
16% / 277 resp.

30. What is your primary code editor for CSS development?

1K out of 1K answered

1
Sublime Text
26% / 434 resp.
2
Atom
17% / 282 resp.
3
Visual Studio / VS Code
13% / 224 resp.
4
PhpStorm
9% / 151 resp.
5
Brackets
6% / 99 resp.
6
WebStorm IDE
5% / 88 resp.
7
Dreamweaver
5% / 85 resp.
8
Notepad++
4% / 69 resp.
9
Coda
2% / 43 resp.
10
Intellij Idea
2% / 40 resp.
11
NetBeans
1% / 29 resp.
12
Vim
1% / 26 resp.
13
Eclipse / Aptana
1% / 17 resp.
14
BBEdit
0% / 11 resp.
15
Komodo IDE / Edit
0% / 6 resp.
16
TextPad
0% / 5 resp.
17
TextMate
0% / 4 resp.
18
Other
2% / 44 resp.

31. What is your primary CSS reset?

1K out of 1K answered

1
Normalize.css
42% / 702 resp.
2
Eric Meyer's CSS reset
11% / 196 resp.
3
I normally use a framework that has a reset built in
10% / 179 resp.
4
My own custom reset
10% / 169 resp.
5
I don't use a CSS reset
7% / 126 resp.
6
A customized version of Normalize.css
6% / 112 resp.
7
A customized version of Eric Meyer's CSS reset
4% / 68 resp.
8
* { margin: 0; padding: 0 } and nothing else
4% / 66 resp.
9
Does not apply to me
1% / 29 resp.
10
Other
0% / 10 resp.

32. What is your primary CSS methodology?

1K out of 1K answered

1
I just write CSS, I don't use any of those systems
34% / 573 resp.
2
BEM
28% / 478 resp.
3
A combination of two or more of the above
13% / 215 resp.
4
I don't know what a CSS methodology is
8% / 132 resp.
5
SMACSS
3% / 65 resp.
6
OOCSS
3% / 57 resp.
7
Atomic CSS
2% / 39 resp.
8
CSS Modules (by Glen Maddern)
2% / 34 resp.
9
ITCSS
1% / 26 resp.
10
SUIT CSS
1% / 16 resp.
11
Other
1% / 22 resp.

33. Do you minify your CSS?

1K out of 1K answered

1
Yes, for every project
51% / 858 resp.
2
Yes, for most projects
20% / 335 resp.
3
Not regularly, but I have done it on some projects
19% / 315 resp.
4
No, I've never minified my CSS
7% / 131 resp.
5
Does not apply to me
1% / 18 resp.

34. Have you ever found a CSS-related bug in a browser? (e.g. Firefox, Chrome, etc.)

1K out of 1K answered

1
No
43% / 720 resp.
2
Yes, but I didn't report it
41% / 681 resp.
3
Yes, and I reported it
15% / 256 resp.

35. How do you feel about managing CSS via JavaScript (e.g. using React or similar)?

1K out of 1K answered

1
It's only a good idea in certain circumstances
33% / 552 resp.
2
I don't have a strong opinion on this
31% / 515 resp.
3
It's not a good idea
25% / 423 resp.
4
I've never heard of this
6% / 109 resp.
5
It's always a good idea
3% / 58 resp.

36. How often do you use a ready-to-use pure CSS animation library (e.g. Animate.css)?

1K out of 1K answered

1
Never
31% / 522 resp.
2
Rarely
29% / 490 resp.
3
Occasionally
28% / 473 resp.
4
On most projects
6% / 102 resp.
5
Does not apply to me
3% / 53 resp.
6
On every project
1% / 17 resp.

37. How often do you use browser developer tools for debugging CSS?

1K out of 1K answered

1
All the time
84% / 1K resp.
2
Fairly often
8% / 133 resp.
3
Rarely
1% / 30 resp.
4
Occasionally
1% / 28 resp.
5
Never, I debug directly in my CSS
1% / 27 resp.
6
Never, I didn't know my browser had such tools
0% / 9 resp.

38. Do you implement some kind of critical "above the fold" CSS workflow?

1K out of 1K answered

1
No
52% / 875 resp.
2
I don't know what "above the fold" CSS means
20% / 335 resp.
3
Yes, using a task runner or similar tool that automates it
12% / 201 resp.
4
Yes, I do it manually
12% / 199 resp.
5
Does not apply to me
2% / 41 resp.

39. Do you (or does your team) produce documentation for your CSS?

1K out of 1K answered

1
No
77% / 1K resp.
2
Yes, it's written manually
17% / 286 resp.
3
Yes, using a tool that automates it
5% / 93 resp.

40. How often do you use the command line for CSS-related tasks?

1K out of 1K answered

1
Never
32% / 545 resp.
2
Just about every work day
21% / 361 resp.
3
Rarely
20% / 343 resp.
4
Occasionally
14% / 233 resp.
5
Fairly often
10% / 175 resp.

41. How meticulous are you (or is your team) at testing CSS on a variety of mobile browsers and platforms?

1K out of 1K answered

1
I do a moderate amount of mobile testing
50% / 839 resp.
2
I thoroughly test on a number of different mobile browsers and platforms
30% / 507 resp.
3
I do very little mobile testing
15% / 261 resp.
4
I don't do any mobile testing
3% / 50 resp.

42. What's the oldest Microsoft browser that you test and support in your CSS?

1K out of 1K answered

1
IE11
26% / 436 resp.
2
IE10
25% / 426 resp.
3
IE9
24% / 397 resp.
4
IE8
9% / 155 resp.
5
I don't support any Microsoft browser
6% / 100 resp.
6
Edge
5% / 84 resp.
7
IE7
1% / 32 resp.
8
IE6
1% / 25 resp.
9
IE5.5
0% / 2 resp.

43. Do you think the W3C (or another organization) should introduce a better technology to replace CSS?

1K out of 1K answered

1
No
61% / 1K resp.
2
Yes
17% / 281 resp.
3
I have no opinion on this (don't care, etc.)
11% / 183 resp.

44. Are you satisfied with the standards process used by the W3C in releasing and approving new CSS features?

1K out of 1K answered

1
Yes
56% / 939 resp.
2
I don't know, don't care, etc.
29% / 481 resp.
3
No
14% / 237 resp.

45. How often do you read the official CSS specifications?

1K out of 1K answered

1
Rarely
40% / 663 resp.
2
Sometimes
33% / 547 resp.
3
Never
17% / 283 resp.
4
Fairly often
9% / 153 resp.
5
Just about every work day
0% / 11 resp.

46. Which of the following CSS concepts do you have trouble with or don't understand?

1K out of 1K answered

1
Pseudo-class expressions (e.g. 4n+1)
42% / 430 resp.
2
Controlling typography (ems, px, etc.)
28% / 289 resp.
3
Styling forms
23% / 243 resp.
4
Clearing floats
21% / 216 resp.
5
Specificity
15% / 157 resp.
6
Absolute/relative positioning
11% / 118 resp.
7
z-index and stacking
8% / 82 resp.
8
Selectors
3% / 36 resp.

47. Which of the following CSS features have you worked with and have trouble understanding?

1K out of 1K answered

1
3D Animations
48% / 549 resp.
2
Grid Layout (using display: grid, etc)
36% / 415 resp.
3
Flexbox
34% / 391 resp.
4
rem units
20% / 235 resp.
5
calc()
16% / 189 resp.
6
Selectors Level 4
15% / 176 resp.
7
Media Queries
9% / 109 resp.

48. Have you ever attended a CSS conference?

1K out of 1K answered

1
Yes
22% / 379 resp.
2
No
77% / 1K resp.

49. In the past year, which of the following have you used to look up something about CSS? (You can select more than one)

1K out of 1K answered

1
Stack Overflow
83% / 1K resp.
2
Online Search (Google, Duck Duck Go, etc.)
77% / 1K resp.
3
MDN
57% / 960 resp.
4
CSS-Tricks Almanac
56% / 936 resp.
5
w3schools
54% / 905 resp.
6
The official specs (W3C)
46% / 765 resp.
7
Codrops CSS Reference
29% / 493 resp.
8
One or more e-books
26% / 438 resp.
9
A print book
20% / 339 resp.
10
A chart/table (or similar) printed from the web
18% / 310 resp.
11
Other
2% / 47 resp.

50. How important is it for you to learn about CSS from "view source" or "inspect element" on random websites?

1K out of 1K answered

1
Very important, I do it all the time
42% / 711 resp.
2
Somewhat important, I do it ocassionally
34% / 573 resp.
3
Not very important, but I do it a little
17% / 287 resp.
4
Not important at all
4% / 69 resp.
5
I don't understand this question
0% / 14 resp.
6
Other
0% / 3 resp.