En un tema, probablemente podrías hacer esto agregando una configuración que se guarde en el almacenamiento local, la desventaja es que los usuarios tendrían que cambiar la preferencia en cada navegador que usen.
Podrías tener varios temas, pero eso se complicaría si quieres ofrecer más temas que cambien estilos más allá de la fuente.
Un plugin sería un poco más complicado, pero probablemente sería la forma más fluida de hacerlo, ya que podrías agregar configuraciones reales en lugar de depender del almacenamiento del navegador o tener muchos temas.