Conventions save you from having to take some time to figure out how the project is structured; these 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. Remember, this only applies to directories. For files use the singular variant.
The General rule to name files
background files:
bg(-group)?(-name)
sprites:
sp(-group)?(-name)
buttons:
bt(-group)?(-name)
icons:
ic(-group)?(-name)
other:
(group-)?(name)
When the file is going to have several variants; it's a good practice to append the change, in type or dimention, using the following pattern.
(name)((-HEIGHTx)(WIDTH)?)?
logo-300x.jpg
logo-500x.jpg
logo-300x-grayscale.jpg
/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-100x.jpg
user-display-200x.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.