I am tempted to close this as "subject to opinion", but as a moderator my vote would be decisive so I am going to let the community decide that part. And I'll try to answer in a way that isn't subject to debate.
WordPress Core does not require any particular folder structure except that your theme be in wp-content/themes/{your_theme_name}
. You can put all of your files in that folder if you want, and for a small theme you probably should.
As your theme gets larger, breaking things up into folders becomes necessary for organization. A folder of stylesheets, one for Javascript, and one for theme images is pretty reasonable, but the names don't matter at all, so long as you don't use ridiculous names. Any programmer worth being called that will be able to sort out that js
, javascript
, and scripts
are probably the same kind of thing-- likewise with css
and stylesheets
, or styles
. Don't worry too much about it.
If you have classes, I tend to group those into a folder, but, again, it isn't necessary.
I also group page templates (the bundled ones don't always do this and in some cases do it in what I consider peculiar ways).
That brings me to... get_template_part()
and some related functions are capable of handling nested folders if you feed in the correct arguments, but in my opinion it becomes awkward with too much nesting so I would avoid more than a layer or two for files that are loaded by those functions.
Again, all of this is optional. The key consideration is the effectiveness of the organization. Does the structure make sense? Will someone look at this later and wonder what the $#%% you did? Will you look back in a year and wonder?