Solo está limitado por la longitud máxima del valor de un atributo (X) HTML, algo que está bien cubierto por this answer.
Los navegadores son a menudo muy indulgentes con las violaciones de las normas, por lo que los navegadores individuales pueden permitir atributos de clase mucho más largos. Además, es probable que pueda agregar un número prácticamente infinito de clases a un elemento DOM a través de JavaScript, limitado por la cantidad de memoria disponible para el navegador.
Para todos los efectos, no hay límite. Estoy asumiendo que estás preguntando por curiosidad; huelga decir que si estás seriamente preocupado por llegar a este límite, has hecho algo muy malo.
En general, con cualquier pregunta límite, * si tiene que preguntar, está haciendo algo mal *. A menos que sea solo una curiosidad inactiva :-) –
Estoy almacenando el estado de un elemento en el atributo 'clase', por lo que puedo tratar la visualización puramente a través de CSS: hay hasta 32 indicadores de estado posibles. –
A menos que tus banderas sean excepcionalmente largas, deberías estar bien. Recuerde que sus clases no pueden ser numéricas; deben comenzar con una letra. '32' no es válido mientras' f32' es válido. – meagar