¿Es mejor desde el punto de vista del rendimiento/un uso más eficiente de la memoria que el CSS se cree con los elementos HTML generados dinámicamente, o que las clases estén predefinidas en un archivo CSS a la espera de ser utilizadas?
Podría imaginar que tener CSS sentado esperando a ser utilizado podría hacer que el archivo CSS fuera innecesariamente grande, mientras que usar JS para crear el CSS podría ser un uso menos eficiente de la memoria y la potencia de procesamiento.
Me encantaría escuchar los pensamientos de otros al respecto.
Voto por usar clases css en un archivo separado:
Personalmente, prefiero tener las cosas separadas, ya que es más fácil encontrar/leer/actualizar una más adelante. Tener un montón de estilos CSS mezclados con JS podría dificultar la lectura y el mantenimiento a largo plazo.
Tampoco me preocuparía por la optimización hasta que sienta que su código está tardando en cargarse.
Definido en un archivo css, es una buena práctica. Si necesita actualizar el css después de generar html, será bueno definirlo en las clases de css.