In regards to the skin, the problem faced here is that the YUI loader automatically loads the requirements for the menunav component, which in this case include the skin files. Unfortunately there is not much we can do about that, however there are solutions to this problem.
Restructure the use of the yui3-sam-skin class.
This would be a core change, the YUI sam skin is only put into use if the components wrapping container or the body have the `yui3-skin-sam` class. Within Moodle this class is added to the body of every page, leading every YUI component to be skinned by default.
Obviously the solution is to remove that class from the body and instead require any use of components that wish to be skinned to ensure they wrap the components content in a div with that class.
Deciding to go this way would require that we review all YUI component usages and if required modify to either print the required node in PHP or inject the node prior to component's initialisation.
The other thing to decide upon would be whether we some how give the theme a chance to include the skin or not... I'm not sure how we would go, would it be a one off thing, or per component??
Alternatively we could use another menu.
Another core change, we could of course move away from the YUI3 menunav component, and create a custom drop down menu. It wouldn't be as flexible presumably, but would have the advantage that we could include the core CSS in base, and the style CSS in standard, then theme's could copy the style CSS if they desire to use it.
I don't like this solution one bit, but it is a solution.
Stick with what we've got and write a doc on overwriting the menunav component.
I've got a mountain of stuff on my plate at the moment but I believe I could whip up a doc in a couple of hours if required. The goal of the doc would simply be to look at how to destyle the custom menu and then how to build it up again. If there is a certain theme + look you would like me to do for the doc I can, even better if there is some existing CSS.
And finally I'm open to suggestions, if any possible solutions spring to mind let me know
My personal preference: Restructure the use of the yui3-sam-skin class is ideal if we had time to come up with a solution that worked in all cases and didn't overcomplicate the matter, however writing the doc may be a more immediate solution. Not that the first solution could potentially introduce and API change so we need to get this sorted ASAP.
That being said perhaps I'm overlooking the obvious in someway so please you two let me know if you have any ideas!