Prérequis

Ce tutoriel a été réalisé sur la version 2.3.6 de Grails. Je supposerai par la suite que vous avez un projet Grails sous la version susmentionnée, et que vous avez déjà ajouté le plugin twitter-bootstrap dans vos dépendance (si ce n'est pas le cas, vous pouvez suivre la documentation d'installation de ce plugin).

Démarche

Ainsi que le mentionne la documentation du plugin Grails ''twitter-bootstrap, l'idée est d'utiliser les ressources less'' de Bootstrap pour le personnaliser sans modifier les sources.

Sous Grails nous remarquons cependant que ni le plugin less-ressources en version 1.3.3.2, ni le plugin lesscss-ressources en version 1.3.3 ne fonctionne pour le moment avec twitter-boostrap en version 3.1.1.

Heureusement, le plugin less-asset-pipeline:1.7.0 est là !

Installation du plugin less-asset-pipeline

Pour installer ce plugin, il vous suffit d'éditer votre fichier BuildConfig.groovy pour ajouter la dépendance suivante :

compile ":less-asset-pipeline:1.7.0"

... ou de l'installer via la commande :

grails install-plugin less-asset-pipeline

Configuration du plugin less-asset-pipeline

Pour activer l'utilisation de ce plugin, il vous faut éditer le fichier Config.groovy pour ajouter l'instruction suivante :

grails.assets.less.compiler = 'less4j'

... et c'est tout !

Personnalisation de twitter-bootstrap

Pour personnaliser Bootstrap, il vous faudra déposer des fichier *.less dans le répertoire grails-app/assets/stylesheets de votre projet Grails.

Pour ma part, j'ai ainsi créé un fichier nommé custom-boostrap.less qui contient, en haut de fichier, l'import suivant :

@import "bootstrap.less";

... puis dans lequel j'ai coller l'ensemble des variables de base déclarées par la version de Bootstrap que j'utilise (au format less, évidemment). Vous pouvez trouver le fichier variables.less d'origine de chaque version de Boostrap en ligne; par exemple, pour la version 3.1.1, ce fichier est accessible ici.

Vous n'avez plus qu'à modifier ce fichier pour voir les changements s'opérer !