Inizialmente pensavo che avrei dovuto sostituire interi template per aggiungere le classi di utilità di Tailwind all’HTML. Sostituire completamente i template di Discourse è una cattiva idea, mi è stato detto. Fortunatamente, Tailwind ti permette anche di applicare il suo CSS a nomi di classe arbitrari.
Qualcosa di simile a quanto segue è possibile…
@layer components {
.d-header {
@apply bg-blue-100;
}
#main-outlet.wrap {
@apply bg-yellow-200;
}
}
…il che è una buona notizia. Quindi ho impostato un nuovo tema usando la CLI discourse_theme. Ho creato un file tailwind-input.css e ho chiesto a Tailwind di consumarlo e generare da esso un common/common.scss.
Ma poi Sass si è lamentato. Ha detto
✘ Error in common scss: Error: Function rgb manca l'argomento $green.
on line 477 of common.scss
>> background-color: rgb(239 246 255 / var(--tw-bg-opacity));
A quanto pare, non si dovrebbe inserire CSS generato da Tailwind in un file Sass. La soluzione consigliata è configurare la tua app Rails con questo
config.assets.css_compressor = nil
Non conosco Rails né come è configurato il backend di Discourse, e sono su hosting gestito, quindi non so se questa sia una soluzione fattibile per me.
Quindi ho continuato a cercare un’altra soluzione, e ho scoperto che potevo dire a Tailwind di non usare quella sintassi rgb problematica.
Quindi è quello che ho fatto per ora, e le cose sembrano funzionare finora… ma questo sembra più una soluzione temporanea che una soluzione adeguata…
Una buona soluzione sarebbe fornire al tema Discourse un semplice file CSS, come common.css invece di common.scss. Ho provato, ma Discourse ha ignorato il mio file CSS.
È possibile dire a Discourse di usare quel file CSS al posto del file Sass? O esiste un’altra buona soluzione a questo problema?