S02E07 — 07-01-2026.
challenge technique.
jour 7.
Mmmh! Je viens de réaliser le défi technique derrière mon langage de programmation zo. Pour te donner un peu de contexte, le compilateur est capable de créer du code pour MacOS et pour le web. Jusqu’ici tout va bien et ça fonctionne parfaitement. Par contre, l’une des problématique est comment harmoniser le rendu de deux moteurs de rendu différents.
En effet, pour les applications natives, j’utilise la bibliothèque egui qui possède son propre thème, ce qui veut dire que le design des boutons, des marges, des couleurs, etc ont un style propre à egui. Concernant le web, c’est la même, par défaut — boutons, marges, police d’écriture, etc ont un style propre qui est différent de egui.
Maintenant, imagines-toi, créer un programme avec zo pour afficher un bouton de couleur bleu avec un text “Ok” en blanc:
fun main() {
imu view: </> ::= <input class="btn-blue" role="button" type="submit" value="Ok">;
#dom view;
}
On assume dans cette exemple que la classe .btn-blue définit un ensemble de règle CSS pour styliser mon bouton selon les critères que j’ai définit plus haut. Ce code peut compiler vers une application native ou une application web. Mais en interne, le compilateur doit être capable d’unifier la classe .btn-blue pour les deux plateformes. Un challenge technique parce que chacune des plateforme à un comportement propre. Je ne sais pas encore comment je vais me débrouiller pour ce challenge technique. N’hésites pas si tu as des suggestions.
Ce que je me dis, c’est qu’il faut que j’ajoute de la glue capable de tranformer le css vers le système de style d’egui.
TRiLU!