Isso é quase completamente possível hoje sem nenhuma alteração de código, aproveitando Hamburger Theme Selector
Uma solução simples com a configuração e o código atuais seria apenas configurar, digamos, três temas diferentes com instâncias diferentes do componente Topic List Previews (ou equivalente) que tenha configurações diferentes, chamá-los de algo óbvio e permitir que o usuário alterne entre eles. Nenhum trabalho de código, usa funcionalidade principal. Feito.
Eu uso essa técnica no momento para permitir que um usuário ative e desative uma animação de lua rotativa bastante computacionalmente cara (veja https://starzen.space). Desativado por padrão, se você quiser a lua e as estrelas animadas, selecione o outro tema no menu Hamburger, que é idêntico em outros aspectos. Se você quiser apenas uma visualização de lista chata sem distrações, há um tema “Manutenção” (que no meu caso inclui imagens, mas você entendeu a ideia). Fácil!
Outra maneira de tornar isso um pouco mais flexível seria adicionar um TC com botões para alterar o CSS e ativar e desativar as partes individuais. Então você pode precisar apenas de dois temas, um para alvenaria e o outro para lista?