My scenario is that I've got a document library that is configured as a custom document set content type. In order to achieve quick adoption of the library for users who don't get into Sharepoint much, I wanted to hide those buttons that could cause problems.
For instance, in this library, the Home Page is a list of all the document sets (e.g. list of projects) and from here the user would click on the title of a project in the list to be taken to the Welcome Page for that set (of documents related to the project). Here they would see the document set/project properties and a list of contained documents.
As the home page represents document sets/projects and not documents – it’s really list items, I want to hide the entire 'Upload Documents' menu item on the ribbon. On the Welcome Page, where it's expected the list contains documents, this menu should be visible.
So far, and with way too much time spent, I was able to come up with the proper CSS ribbon selector syntax to hide that particular button: #Ribbon.Documents.New.AddDocument-Large. I now have an interest in knowing how to do this to a wider selection of ribbon elements, but I'm finding it brutal to figure out what the ribbon id selector syntax should be for any given ribbon element, whether it’s a menu, splitbutton, button, etc. I've looked at the CMDUI.xml file and can see the ribbon ids, and identify what type of object they are, but as in the example, I had no idea that it was supposed to have the "-Large" suffix. So, I'm looking for some rules that tell me how to construct the ribbon id selectors for the various ribbon elements.
I realize there's a time and a place for using CSS instead of a server-side solution, but I'd like to be able to act quickly using CSS or javascript when needed. For javascript, I think the ribbon IDs are sufficient and I wouldn't need to know the specialized CSS selector syntax that starts with the ribbon ID.