diff --git a/app/assets/images/communication/blocks/templates/chapter.jpg b/app/assets/images/communication/blocks/templates/chapter.jpg
index 58c250a4de4690d0339e225541b16e77c41667f4..fc5b66a30e0513eee757ccf3123870dee2d14219 100644
Binary files a/app/assets/images/communication/blocks/templates/chapter.jpg and b/app/assets/images/communication/blocks/templates/chapter.jpg differ
diff --git a/app/assets/images/communication/blocks/templates/datatable.jpg b/app/assets/images/communication/blocks/templates/datatable.jpg
index de66f462ccf6e2ca5a376e7c32a6da9919036d5b..9d48836cdb9e38fb82e353be43a802ff50d87f5f 100644
Binary files a/app/assets/images/communication/blocks/templates/datatable.jpg and b/app/assets/images/communication/blocks/templates/datatable.jpg differ
diff --git a/app/assets/images/communication/blocks/templates/embed.jpg b/app/assets/images/communication/blocks/templates/embed.jpg
index de66f462ccf6e2ca5a376e7c32a6da9919036d5b..997bc384f4d75afc7cfa9dcd5fa97998b8c628ae 100644
Binary files a/app/assets/images/communication/blocks/templates/embed.jpg and b/app/assets/images/communication/blocks/templates/embed.jpg differ
diff --git a/app/assets/images/communication/blocks/templates/files.jpg b/app/assets/images/communication/blocks/templates/files.jpg
index de66f462ccf6e2ca5a376e7c32a6da9919036d5b..205148939609de1b78fbede980368218c8801897 100644
Binary files a/app/assets/images/communication/blocks/templates/files.jpg and b/app/assets/images/communication/blocks/templates/files.jpg differ
diff --git a/app/assets/images/communication/blocks/templates/gallery.jpg b/app/assets/images/communication/blocks/templates/gallery.jpg
index 60cf4ffcc87ff8929a55bdffd81db9b3d2a143eb..45afa470ce8e5838321fb9b90f5f58de8af61407 100644
Binary files a/app/assets/images/communication/blocks/templates/gallery.jpg and b/app/assets/images/communication/blocks/templates/gallery.jpg differ
diff --git a/app/assets/images/communication/blocks/templates/gallery/carousel.png b/app/assets/images/communication/blocks/templates/gallery/carousel.png
new file mode 100644
index 0000000000000000000000000000000000000000..a501916c49d13df62df70ae84b970d6946ec8c05
Binary files /dev/null and b/app/assets/images/communication/blocks/templates/gallery/carousel.png differ
diff --git a/app/assets/images/communication/blocks/templates/gallery/grid.png b/app/assets/images/communication/blocks/templates/gallery/grid.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ea31c57506b2c621da78b27a68afc8d5046b559
Binary files /dev/null and b/app/assets/images/communication/blocks/templates/gallery/grid.png differ
diff --git a/app/assets/images/communication/blocks/templates/image.jpg b/app/assets/images/communication/blocks/templates/image.jpg
index 2655d4549f569d44d5ef2f38d143f04d28a4c8f4..9d977c6f29a6b9b92cc4c9dea8fb0e114aabe075 100644
Binary files a/app/assets/images/communication/blocks/templates/image.jpg and b/app/assets/images/communication/blocks/templates/image.jpg differ
diff --git a/app/assets/images/communication/blocks/templates/key_figures.jpg b/app/assets/images/communication/blocks/templates/key_figures.jpg
index de66f462ccf6e2ca5a376e7c32a6da9919036d5b..cc2ea4e13b522da3b69998accfe2abc7c3a11d45 100644
Binary files a/app/assets/images/communication/blocks/templates/key_figures.jpg and b/app/assets/images/communication/blocks/templates/key_figures.jpg differ
diff --git a/app/assets/images/communication/blocks/templates/pages/cards.png b/app/assets/images/communication/blocks/templates/pages/cards.png
index ed9736d2345e6cef341922794bc84c1cfde498ba..b753b43ffd23dd83e1ba09a525b0d149bd07bfc6 100644
Binary files a/app/assets/images/communication/blocks/templates/pages/cards.png and b/app/assets/images/communication/blocks/templates/pages/cards.png differ
diff --git a/app/assets/images/communication/blocks/templates/pages/grid.png b/app/assets/images/communication/blocks/templates/pages/grid.png
index 1a4c8c09c66707d73601cd22b37bf1634a85b853..94238864c2e4b7f0d71dedd2aa97e76a48098f5d 100644
Binary files a/app/assets/images/communication/blocks/templates/pages/grid.png and b/app/assets/images/communication/blocks/templates/pages/grid.png differ
diff --git a/app/assets/images/communication/blocks/templates/pages/list.png b/app/assets/images/communication/blocks/templates/pages/list.png
index 2c9bf9b8c6267b543e165f16c7f27dadac5af22e..7bad244337f02a5db45b0297b2862ab9023c9358 100644
Binary files a/app/assets/images/communication/blocks/templates/pages/list.png and b/app/assets/images/communication/blocks/templates/pages/list.png differ
diff --git a/app/assets/images/communication/blocks/templates/video.jpg b/app/assets/images/communication/blocks/templates/video.jpg
index de66f462ccf6e2ca5a376e7c32a6da9919036d5b..234cf1fdfb7b17dcca55e2dd3db6bbba97044d43 100644
Binary files a/app/assets/images/communication/blocks/templates/video.jpg and b/app/assets/images/communication/blocks/templates/video.jpg differ
diff --git a/app/models/communication/block/template/gallery.rb b/app/models/communication/block/template/gallery.rb
index 91e6e4c22e2e55734d1fd6dc1d955ebab4135b36..d0f7136c07ced04bc783f6eb707aedea4a1d68d0 100644
--- a/app/models/communication/block/template/gallery.rb
+++ b/app/models/communication/block/template/gallery.rb
@@ -1,4 +1,9 @@
 class Communication::Block::Template::Gallery < Communication::Block::Template
+  LAYOUTS = [
+    :grid,
+    :carousel
+  ]
+
   def build_git_dependencies
     add_dependency active_storage_blobs
   end
diff --git a/app/models/communication/block/template/page.rb b/app/models/communication/block/template/page.rb
index 108f5501e371b751cbff5ffafb113c6ab8c79278..73ea5deea61ff7d4f23c73d592539b6cf2bcc684 100644
--- a/app/models/communication/block/template/page.rb
+++ b/app/models/communication/block/template/page.rb
@@ -1,4 +1,11 @@
 class Communication::Block::Template::Page < Communication::Block::Template
+
+  LAYOUTS = [
+    :grid,
+    :list,
+    :cards
+  ]
+
   def build_git_dependencies
     add_dependency main_page
     selected_pages.each do |page|
diff --git a/app/views/admin/communication/blocks/_layouts.html.erb b/app/views/admin/communication/blocks/_layouts.html.erb
new file mode 100644
index 0000000000000000000000000000000000000000..90f5434265bf59934063fb23ba497793ba68dd2e
--- /dev/null
+++ b/app/views/admin/communication/blocks/_layouts.html.erb
@@ -0,0 +1,42 @@
+<%
+horizontal ||= false
+%>
+<% if horizontal %><div class="row"><% end %>
+<% layouts.each do |layout| %>
+  <%
+  name = t "admin.communication.blocks.templates.#{template}.layouts.#{layout}.label"
+  description = t "admin.communication.blocks.templates.#{template}.layouts.#{layout}.description"
+  %>
+  <% if horizontal %><div class="col-md-4"><% end %>
+  <div class="card mb-4">
+    <label for="layout-<%= layout %>">
+      <div class="row">
+        <div class="col-md-6">
+          <div class="card-body">
+            <div class="form-check">
+              <input  class="form-check-input"
+                      type="radio"
+                      name="layout"
+                      v-model="data.layout"
+                      value="<%= layout %>"
+                      id="layout-<%= layout %>">
+              <h3 class="h4">
+                <%= name %>
+              </h3>
+            </div>
+            <p>
+              <%= description %>
+            </p>
+          </div>
+        </div>
+        <div class="col-md-6">
+            <%= image_tag "communication/blocks/templates/#{template}/#{layout}.png",
+                          alt: name,
+                          class: 'img-fluid' %>
+        </div %>
+      </label %>
+    </div>
+  </div>
+  <% if horizontal %></div><% end %>
+<% end %>
+<% if horizontal %></div><% end %>
diff --git a/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb b/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
index 8ac88883e05e4594248bbe503f7a90fd1a114945..d91f60fb465eff1b0e561147c683d178c2a6068b 100644
--- a/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/gallery/_edit.html.erb
@@ -1,3 +1,8 @@
+<%= render 'admin/communication/blocks/layouts',
+            layouts: Communication::Block::Template::Gallery::LAYOUTS,
+            template: 'gallery',
+            horizontal: true %>
+
 <a  class="<%= button_classes('mb-4') %>"
     v-on:click="data.elements.push({alt: '', credit: '', file: {}})">
     <%= t '.add_image' %>
diff --git a/app/views/admin/communication/blocks/templates/pages/_edit.html.erb b/app/views/admin/communication/blocks/templates/pages/_edit.html.erb
index bb6af5961b2d91a57fef9acbd682778658df6b7c..c71c2283f3bee8a031bd5fa14b338c2affed4137 100644
--- a/app/views/admin/communication/blocks/templates/pages/_edit.html.erb
+++ b/app/views/admin/communication/blocks/templates/pages/_edit.html.erb
@@ -1,9 +1,9 @@
 <% pages = collection_tree(@block.about&.website.pages) %>
 
 <div class="row mb-4">
-  <div class="col-md-6">
+  <div class="col-lg-6">
     <div class="mb-4">
-      <h2 class="h3">Type de liste</h2>
+      <h2 class="h3"><%= t '.kind.title' %></h2>
       <div class="form-check form-check-inline mb-3">
         <input  class="form-check-input"
                 type="radio"
@@ -12,7 +12,7 @@
                 value="children"
                 id="kind-children">
         <label class="form-check-label" for="kind-children">
-          La page principale et ses enfants
+          <%= t '.kind.children' %>
         </label>
       </div>
       <div class="form-check form-check-inline">
@@ -23,31 +23,31 @@
                 value="selection"
                 id="kind-selection">
         <label class="form-check-label" for="kind-selection">
-          Une sélection spécifique de pages
+          <%= t '.kind.selection' %>
         </label>
       </div>
     </div>
 
     <div class="mb-4">
-      <h2 class="h3">Page principale</h2>
-      <label class="form-label"
-            for="page_id">Sélectionnez une page principale</label>
+      <h2 class="h3"><%= t '.main_page.title' %></h2>
+      <label  class="form-label"
+              for="page_id"><%= t '.main_page.label' %></label>
       <select id="page_id"
             class="form-select select"
             v-model="data.page_id">
-        <option value="">Aucune page sélectionnée</option>
+        <option value=""><%= t '.main_page.none' %></option>
         <% pages.each_with_index do |page, index| %>
           <option value="<%= page[:id] %>"><%= page[:label].html_safe %></option>
         <% end %>
       </select>
-      <div class="form-text">Cette page principale définira le titre et le lien du bloc. Si vous choisissez une page sans remplir le titre ci-dessus, le titre de la page sera utilisé. Si le titre est rempli, il remplacera le titre de la page sélectionnée, en utilisant le lien de la page.</div>
+      <div class="form-text"><%= t '.main_page.hint' %></div>
     </div>
 
     <div class="mb-4" v-if="data.kind == 'selection'">
-      <h2 class="h3">Pages sélectionnées</h2>
+      <h2 class="h3"><%= t '.selection.title' %></h2>
       <a  class="<%= button_classes('mb-3') %>"
           v-on:click="data.elements.push({id: ''})">
-          <%= t '.add_page' %>
+          <%= t '.selection.add' %>
       </a>
       <draggable :list="data.elements" handle=".dragHandle" class="list-group">
         <div v-for="(page, index) in data.elements" class="list-group-item">
@@ -59,11 +59,11 @@
             </div>
             <div class="flex-fill">
               <label  class="form-label d-none"
-                      :for="'page-' + index + '-name'">Page</label>
+                      :for="'page-' + index + '-name'"><%= t '.selection.label' %></label>
               <select :id="'page-' + index + '-name'"
                       class="form-select select"
                       v-model="page.id">
-                <option value="" disabled>Aucune page</option>
+                <option value="" disabled><%= t '.selection.none' %></option>
                 <% pages.each_with_index do |page, index| %>
                   <option value="<%= page[:id] %>"><%= page[:label].html_safe %></option>
                 <% end %>
@@ -81,89 +81,43 @@
       </draggable>
     </div>
   </div>
-  <div class="col-md-6">
-    <h2 class="h3">Options d'affichage</h2>
-    <div class="form-check">
-      <input  v-model="data.show_main_description"
-              class="form-check-input boolean optional"
-              id="show_main_description"
-              type="checkbox">
-      <label  class="form-check-label boolean optional"
-              for="show_main_description">
-        Afficher la description courte de la page principale
-      </label>
-    </div>
-    <div class="form-check">
-      <input  v-model="data.show_description"
-              class="form-check-input boolean optional"
-              id="show_description"
-              type="checkbox">
-      <label  class="form-check-label boolean optional"
-              for="show_description">
-        Afficher les descriptions courtes des pages
-      </label>
-    </div>
-    <div class="form-check">
-      <input  v-model="data.show_image"
-              class="form-check-input boolean optional"
-              id="show_image"
-              type="checkbox">
-      <label  class="form-check-label boolean optional"
-              for="show_image">
-        Afficher les images des pages
-      </label>
-    </div>
-    <hr>
-
-    <div class="row">
-      <div class="col-md-4">
-        <div class="form-check form-check-inline mb-3">
-          <input  class="form-check-input"
-                  type="radio"
-                  name="layout"
-                  v-model="data.layout"
-                  value="grid"
-                  id="layout-grid">
-          <label class="form-check-label" for="layout-grid">
-            Grille
-            <%= image_tag 'communication/blocks/templates/pages/grid.png',
-                          alt: 'Grille',
-                          class: 'img-fluid' %>
-          </label>
-        </div>
+  <div class="col-lg-6">
+    <h2 class="h3"><%= t '.display.title' %></h2>
+    <div class="mb-4">
+      <div class="form-check">
+        <input  v-model="data.show_main_description"
+                class="form-check-input boolean optional"
+                id="show_main_description"
+                type="checkbox">
+        <label  class="form-check-label boolean optional"
+                for="show_main_description">
+          <%= t '.display.main_description' %>
+        </label>
       </div>
-      <div class="col-md-4">
-        <div class="form-check form-check-inline">
-          <input  class="form-check-input"
-                  type="radio"
-                  name="layout"
-                  v-model="data.layout"
-                  value="list"
-                  id="layout-list">
-          <label class="form-check-label" for="layout-list">
-            Liste
-            <%= image_tag 'communication/blocks/templates/pages/list.png',
-                          alt: 'Liste',
-                          class: 'img-fluid' %>
-          </label>
-        </div>
+      <div class="form-check">
+        <input  v-model="data.show_description"
+                class="form-check-input boolean optional"
+                id="show_description"
+                type="checkbox">
+        <label  class="form-check-label boolean optional"
+                for="show_description">
+          <%= t '.display.pages_descriptions' %>
+        </label>
       </div>
-      <div class="col-md-4">
-        <div class="form-check form-check-inline">
-          <input  class="form-check-input"
-                  type="radio"
-                  name="layout"
-                  v-model="data.layout"
-                  value="cards"
-                  id="layout-cards">
-          <label class="form-check-label" for="layout-cards">
-            Cartes
-            <%= image_tag 'communication/blocks/templates/pages/cards.png',
-                          alt: 'Grille',
-                          class: 'img-fluid' %>
-          </label>
-        </div>
+      <div class="form-check">
+        <input  v-model="data.show_image"
+                class="form-check-input boolean optional"
+                id="show_image"
+                type="checkbox">
+        <label  class="form-check-label boolean optional"
+                for="show_image">
+          <%= t '.display.pages_images' %>
+        </label>
       </div>
     </div>
+
+    <%= render 'admin/communication/blocks/layouts',
+                layouts: Communication::Block::Template::Page::LAYOUTS,
+                template: 'pages' %>
   </div>
 </div>
diff --git a/config/locales/communication/en.yml b/config/locales/communication/en.yml
index cd6b7dba1818fa50c32c0aee7086652725a5f7bf..45fb35a7900e2a3d9a26290ea0c8e33daf1d46c7 100644
--- a/config/locales/communication/en.yml
+++ b/config/locales/communication/en.yml
@@ -189,6 +189,13 @@ en:
               title_placeholder: Enter title here
               remove_file: Remove a file
           gallery:
+            layouts:
+              grid:
+                label: Grid
+                description: Images are presented as a grid, from left to right and top to bottom, with constant width.
+              carousel:
+                label: Carousel
+                description: Images are big, with a previous / next navigation and a constant height.
             edit:
               add_image: Add image
               image_label: Image (.png, .jpg)
@@ -219,8 +226,36 @@ en:
               drag_title: Drag and drop to organize persons
               delete_title: Remove person
           pages:
+            layouts:
+              cards:
+                label: Cards
+                description: Side by side cards, same height, strong color on rollover. Perfect for a small amount of pages.
+              grid:
+                label: Grid
+                description: As a grid, left to right and top to bottom.
+              list:
+                label: List
+                description: The main page's short description is used as a big text, and the pages are listed on the right.
             edit:
-              add_page: Select a page
+              kind:
+                title: List kind
+                children: Main page and children
+                selection: A specific selection of pages
+              main_page:
+                title: Main page
+                label: Select the main page
+                none: No page selected
+                hint: This page will set the title and main link of the block on the website. If you select a page and fill no title above, the page title will be used. If you set a title, it will replace the main page's title.
+              selection:
+                add: Select a page
+                label: Page
+                none: No page
+                title: Selected pages
+              display:
+                title: Layout options
+                main_description: Show main page short description
+                pages_descriptions: Show pages short descriptions
+                pages_images: Show pages images
           partners:
             edit:
               add_partner: Add partner
diff --git a/config/locales/communication/fr.yml b/config/locales/communication/fr.yml
index 838825281a4c80cbd5ae665e2b8a039cb4846064..e464d5ca1a8e64b411fedc1b407909c9ae7f79a5 100644
--- a/config/locales/communication/fr.yml
+++ b/config/locales/communication/fr.yml
@@ -190,6 +190,13 @@ fr:
               title_placeholder: Entrer le titre du fichier
               remove_file: Supprimer le fichier
           gallery:
+            layouts:
+              grid:
+                label: Grille
+                description: Les images sont présentées en grille, de gauche à droite puis de haut en bas.
+              carousel:
+                label: Carrousel
+                description: Les images sont présentées en grand, avec une navigation suivant / précédent.
             edit:
               add_image: Ajouter une image
               image_label: Image (.png, .jpg)
@@ -220,8 +227,36 @@ fr:
               drag_title: Glisser-déposer pour organiser les personnes
               delete_title: Enlever la personne
           pages:
+            layouts:
+              cards:
+                label: Cartes
+                description: Des cartes côte à côte, de même hauteur, avec une couleur forte au survol. Ce format est idéal pour un petit nombre de pages.
+              grid:
+                label: Grille
+                description: Les pages sont présentées en grille, de gauche à droite puis de haut en bas.
+              list:
+                label: Liste
+                description: Le chapô de la page principale sert d'édito en gros et les pages sont présentées sous forme de liste à droite.
             edit:
-              add_page: Sélectionner une page
+              kind:
+                title: Type de liste
+                children: La page principale et ses enfants
+                selection: Une sélection spécifique de pages
+              main_page:
+                title: Page principale
+                label: Sélectionnez une page principale
+                none: Aucune page sélectionnée
+                hint: Cette page principale définira le titre et le lien du bloc. Si vous choisissez une page sans remplir le titre ci-dessus, le titre de la page sera utilisé. Si le titre est rempli, il remplacera le titre de la page sélectionnée, en utilisant le lien de la page.
+              selection:
+                add: Sélectionner une page
+                label: Page
+                none: Aucune page
+                title: Pages sélectionnées
+              display:
+                title: Options d'affichage
+                main_description: Afficher la description courte de la page principale
+                pages_descriptions: Afficher les descriptions courtes des pages
+                pages_images: Afficher les images des pages
           partners:
             edit:
               add_partner: Ajouter un partenaire
@@ -386,6 +421,7 @@ fr:
           files: Fichiers
           gallery: Galerie
           image: Image
+          key_figures: Chiffres-clés
           organization_chart: Organigramme
           pages: Liste de pages
           partners: Partenaires