Consider if the GUI specification is required for commercial or design reasons?
The depth of detail required of a GUI specification will generally be driven by the commercial requirements of the commerce surrounding the software project rather than the end user requirements. A GUI specification that contains extensive details such as font selections, icons, pixel border widths etc is generally created so as to capture the scope of the project so as to avoid potential commercial disputes at the end of the project.
My experience is that asking the customer (end users) to make selections on lots of small GUI details at the start of the project only adds unnecessary noise to the overall customer engagement.
Iterate The GUI Specification
If it is a new software project (as mentioned in the question), then often the GUI needs to be discovered by all team members, developers and end users included. Therefore I would suggest taking an iterative approach to your GUI specification. Start simple, only a few screen shots, that when combined allow the user to complete something useful (this could be one or more use cases). Then each subsequent iteration adds more appropriate detail.
What does a GUI specification document template look like?
IF the GUI spec is for design reasons; I would recommend a word document with the following structure:
- On the top half of each page place a mock screen shot [a].
- On the bottom half of each page write what you think is important [b] about the above screen shot.
If the GUI spec is for commercial reasons; I would recommend a word document with the same structure as above plus the following:
- Font, color, logos, pixel border widths, glossary etc. Pretty much as much as you can document within the time available.
[a] Tools to generate mock screen shots: Balsamiq, Visual Studio + Snagit with useful comments overlaid are great.
[b] What's important? The short answer is "..it depends.." and it is up to the GUI designer and end users to collaborate so as to discover and then identify what is important.