Conventions save you from having to take some time to figure out how the project is structured; these conventions are the result of testing and polishing rules on production environment.
Grouping is important; especially when you're working with projects that have many assets. The following rule proposes a way to organize this files into a easy to navigate way.
RULE
IF images FROM same GROUP > 5
store in new directory
repeat RULE
else
store in root
Names for individual files should always be in singular, even if when they're a sprite that contains several elements. This is by convention a good practice that is taken from other frameworks.
Sub-Directories a.k.a. Groups should be named in their plural form when possible; there are some exceptions, like names.
background files:
bg{-group?}{-name}
sprites:
sp{-group?}{-name}
buttons:
bt{-group?}{-name}
icons:
ic{-group?}{-name}
other:
{group?}{-name}
Example:
/bg-content.jpg
/bg-content-light.jpg
/sp-main.jpg
/ic-form-submit.jpg
/placeholders/
content-big.jpg
content-small.jpg
content-medium.jpg
user-display-small.jpg
user-display-medium.jpg
video-medium.jpg
+1 to everything here.
images are tricky because... well. i normally end up with two sprites... one is a big spritesheet, the other is a vertically very long sprite.. aside from that i rarely have other backgrounds or icon img files.