diff --git a/lang/medias_fr.php b/lang/medias_fr.php
index f0e33f946ce9843258aad8b6917c12a84fffd049..d41fe2cecb3d6971e4a902b6da51c11aca2351e9 100644
--- a/lang/medias_fr.php
+++ b/lang/medias_fr.php
@@ -146,6 +146,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'label_credits' => 'Crédits',
 	'label_fichier' => 'Fichier',
 	'label_fichier_vignette' => 'Vignette',
+	'label_titre_mimetype' => 'Type de fichier',
 	'label_paginer_par' => 'Paginer par :',
 	'label_parents' => 'Ce document est lié à',
 	'label_refdoc_joindre' => 'Document numéro',
diff --git a/prive/squelettes/inclure/mediatheque-choisir.html b/prive/squelettes/inclure/mediatheque-choisir.html
index bf8d5b5d9d887a6bc070395ab3b77ed28ef40b11..9bc14f3f3ae5f286808546d930b24d3d22e80dc7 100644
--- a/prive/squelettes/inclure/mediatheque-choisir.html
+++ b/prive/squelettes/inclure/mediatheque-choisir.html
@@ -1,82 +1,143 @@
 #SET{editable,#ENV{editable,' '}|oui}
-<div class="galerie[ media-(#ENV{media,''})]">
+<div class="liste-objets galerie galerie-choisir mini[ media-(#ENV{media,''})]">
 	<B_galerie>
-	
-	<h3>[(#GRAND_TOTAL|singulier_ou_pluriel{#VAL{medias:un_}|concat{#ENV{media,document}},#VAL{medias:des_}|concat{#ENV{media,document},s}})]</h3>
-	<nav class='pagination tri'>
-		[(#TRI{'>',#CHEMIN_IMAGE{tri-asc-16.png}|balise_img{<:par_tri_croissant:>}}) |]
-		[(#TRI{'<',#CHEMIN_IMAGE{tri-desc-16.png}|balise_img{<:par_tri_decroissant:>}}) |]
-		[(#TRI{id_document,<:medias:par_id:>}) |]
-		[(#TRI{date,<:medias:par_date:>}) |]
-		[(#TRI{taille,<:medias:par_taille:>}) |]
-		[(#TRI{largeur,<:medias:par_largeur:>}) |]
-		[(#TRI{hauteur,<:medias:par_hauteur:>}) |]
-		[(#TRI{titre,<:medias:par_titre:>}) |]
-	</nav>
-	[<nav class="pagination">(#PAGINATION{prive})</nav>]
-	<table>
+	<table class="spip liste">
+	<caption>
+		<strong class="caption">[(#GRAND_TOTAL|singulier_ou_pluriel{#VAL{medias:un_}|concat{#ENV{media,document}},#VAL{medias:des_}|concat{#ENV{media,document},s}})][ - (#GET{poids_total}|taille_en_octets)]</strong>
+	</caption>
 	<thead>
-		<th></th>
-		<th class="id"><:medias:id:></th>
-		<th></th>
-		<th><:medias:logo:></th>
-		<th><:medias:infos:></th>
-		<th><:medias:descriptif:></th>
-		<th></th>
+		<tr>
+			<th colspan="7">
+				<nav class='pagination tri'>
+					[(#TRI{'>',#CHEMIN_IMAGE{tri-asc-16.png}|balise_img{<:par_tri_croissant:>}}) |]
+					[(#TRI{'<',#CHEMIN_IMAGE{tri-desc-16.png}|balise_img{<:par_tri_decroissant:>}}) |]
+					[(#TRI{id_document,<:medias:par_id:>}) |]
+					[(#TRI{date,<:medias:par_date:>}) |]
+					[(#TRI{taille,<:medias:par_taille:>}) |]
+					[(#TRI{largeur,<:medias:par_largeur:>}) |]
+					[(#TRI{hauteur,<:medias:par_hauteur:>}) |]
+					[(#TRI{titre,<:medias:par_titre:>}) |]
+					[<:medias:label_paginer_par:> (#GRAND_TOTAL|>{100}|oui)
+						[(#SELF|parametre_url{pagination,''}|lien_ou_expose{10,#ENV{pagination,10}|=={10},ajax})]
+						[<span class="sep">|</span> (#SELF|parametre_url{pagination,50}|lien_ou_expose{50,#ENV{pagination,10}|=={50},ajax})]]
+					[(#GRAND_TOTAL|>{500}|oui)
+						[<span class="sep">|</span> (#SELF|parametre_url{pagination,100}|lien_ou_expose{100,#ENV{pagination,10}|=={100},ajax})]
+					]
+					[(#GRAND_TOTAL|>{5000}|oui)
+						[<span class="sep">|</span> (#SELF|parametre_url{pagination,500}|lien_ou_expose{500,#ENV{pagination,10}|=={500},ajax})]
+					]
+				</nav>
+			</th>
+		</tr>
+		[<tr>
+			<th colspan="7">
+				<nav class="pagination">(#PAGINATION{prive})</nav>
+			</th>
+		</tr>]
+		<tr class="first_row">
+			<th class="logo"><:medias:logo:></th>
+			<th class="infos"></th>
+			<th class="id"><:medias:id:></th>
+			<th class="statut"></th>
+			<th class="exif"><:medias:infos:></th>
+			<th class="editorial"><:medias:descriptif:></th>
+			<th class="action"></th>
+		</tr>
 	</thead>
-	<BOUCLE_galerie(DOCUMENTS) {id_rubrique ?}{id_article ?}{id_breve ?}{id_document ?}{recherche ?} {tri id_document,inverse}{media?}{extension?}{distant?}{brise?}{statut==#ENV{statut,.*}}{orphelins?}{titre==(#ENV{sanstitre}|?{'^$','.*'})}{pagination 10}>
-	<tr class="[(#ENV{media}|non)[ media-(#MEDIA)]]" id="#ENV{iddoc,media}#ID_DOCUMENT">
-		<td class='infos'>
-		[(#DISTANT|=={oui}|non)#SET{missing,#FICHIER|file_exists|non}]
-		[(#ENV{media}|non|et{#MEDIA|!={file}})[(#CHEMIN_IMAGE{media-#MEDIA|concat{-32.png}}|balise_img|inserer_attribut{alt,#VAL{medias:media_#MEDIA}|_T}|inserer_attribut{title,#VAL{medias:media_#MEDIA}|_T})]]
-		[(#GET{missing}|oui)<img src='#CHEMIN_IMAGE{document-manquant-24.png}' width='24' height='24' alt='<:medias:fichier_manquant:>' />]
-		[(#DISTANT|=={oui}|oui)<img src='#CHEMIN_IMAGE{document-distant-24.png}' width='24' height='24' alt='<:medias:fichier_distant:>' />]
-		</td>
-		<td class="id">
-			<strong>#ID_DOCUMENT</strong>
-		</td>
-		<td class='statut'>
-		[(#ID_DOCUMENT|medias_puce_statut_document{#STATUT})]
-		</td>
-		<td class="logo">
-		#SET{fichier,#DISTANT|=={oui}|?{#FICHIER,#FICHIER|basename}}
-		[(#MEDIA|=={image}|oui)[
-			(#LOGO_DOCUMENT{apercu,200,100}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})
-		]]
-		[(#MEDIA|=={image}|non)[<div class="#EDIT{vignette} resize-250">
-			(#LOGO_DOCUMENT{auto,200,100}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})
-		</div>]]
-		<div class="fichier">#GET{fichier}</div>
-		</td>
-		<td class="exif">
-			[<strong class="extension">(#EXTENSION)</strong>]
-			[<div class="dimensions">(#LARGEUR|?{[(#LARGEUR)[ x (#HAUTEUR) pixels]],''})</div>]
-			[<div class="taille">(#TAILLE|taille_en_octets)</div>]
-			[<div class="date">(#DATE|affdate{d/m/Y})</div>]
-			<B_liens>
-			[(#TOTAL_BOUCLE|>{1}|oui)
-			<a href='#' onclick="jQuery(this).next().show();$(this).hide();return false;">[(#TOTAL_BOUCLE|singulier_ou_pluriel{medias:une_utilisation,medias:des_utilisations})]</a><div style='display: none;'>
-			]
-			<BOUCLE_liens(documents_liens){id_document}{'<br />'}>
-			[(#ID_OBJET|generer_lien_entite{#OBJET}|inserer_attribut{target,_blank})]
-			</BOUCLE_liens>
-			[(#TOTAL_BOUCLE|>{1}|oui)</div>]
-			</B_liens>
-		</td>
-		<td class="descriptif">
-			[<strong class="titre #EDIT{titre}">(#TITRE|sinon{#VAL{<i>}|concat{<:info_sans_titre:>,'</i>'}})</strong>]
-			[<div class="descriptif #EDIT{descriptif}">(#DESCRIPTIF)</div>]
-			[<p class="credits #EDIT{credits}">(#CREDITS)</p>]
-		</td>
-		<td>
-		[(#REM) Utilisation de la galerie en mode selecteur, avec un bouton choix qui appelle une fonction js passee en argument]
-		[<span class="choisir"><input type="submit" onclick="(#ENV{selectfunc,''})([(#ID_DOCUMENT)]);return false;" value="<:bouton_choisir|attribut_html:>" /></span>]
-		</td>
-	</tr>
-	</BOUCLE_galerie>
+	<tbody>
+		<BOUCLE_galerie(DOCUMENTS) {id_rubrique ?}{id_article ?}{id_breve ?}{id_document ?}{recherche ?} {tri id_document,inverse}{media?}{extension?}{distant?}{brise?}{statut==#ENV{statut,.*}}{orphelins?}{titre==(#ENV{sanstitre}|?{'^$','.*'})}{pagination 10}>
+		<tr class="[(#ENV{media}|non)[ media-(#MEDIA)]]" id="#ENV{iddoc,media}#ID_DOCUMENT">
+			<td class="logo">
+				#SET{fichier,#DISTANT|=={oui}|?{#FICHIER,#FICHIER|basename}}
+				[(#MEDIA|=={image}|oui)[
+					(#LOGO_DOCUMENT{apercu,200,100}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})
+				]]
+				[(#MEDIA|=={image}|non)[<div class="#EDIT{vignette} resize-250">
+					(#LOGO_DOCUMENT{auto,200,100}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})
+				</div>]]
+			</td>
+			<td class='infos'>
+				[(#DISTANT|=={oui}|non)#SET{missing,#FICHIER|file_exists|non}]
+				[(#ENV{media}|non|et{#MEDIA|!={file}})[(#CHEMIN_IMAGE{media-#MEDIA|concat{-32.png}}|balise_img|inserer_attribut{alt,#VAL{medias:media_#MEDIA}|_T}|inserer_attribut{title,#VAL{medias:media_#MEDIA}|_T})]]
+				[<div class="extension">(#EXTENSION)</div>]
+				[(#GET{missing}|oui)<img src='#CHEMIN_IMAGE{document-manquant-24.png}' width='24' height='24' alt='<:medias:fichier_manquant:>' />]
+				[(#DISTANT|=={oui}|oui)<img src='#CHEMIN_IMAGE{document-distant-24.png}' width='24' height='24' alt='<:medias:fichier_distant:>' />]
+			</td>
+			<td class="id">
+				<strong>#ID_DOCUMENT</strong>
+			</td>
+			<td class='statut'>
+				[(#ID_DOCUMENT|medias_puce_statut_document{#STATUT})]
+			</td>
+			<td class="exif">
+				[(#REM) Infos résumées ]
+				[<div class="fichier" title="[(#GET{fichier}|attribut_html)]">(#GET{fichier})</div>]
+				[<div class="taille">(#TAILLE|taille_en_octets)</div>]
+
+				[(#REM) Infos détaillées ]
+				<a
+					role="button"
+					href="#"
+					class="btn btn_link btn_toggle"
+					title="<:medias:details_document_afficher_masquer|attribut_html:>"
+					onclick="jQuery(this).next().toggle();return false;"
+				><span class="sp-icone">+</span> <:medias:details_document:></a>
+				<dl class="detaillees" style="display:none;">
+					[<dt class="detaillees__label"><:medias:label_fichier:></dt>
+					<dd class="detaillees__valeur fichier">(#GET{fichier})</dd>]
+					[<dt class="detaillees__label"><:medias:label_titre_mimetype:></dt>
+					<dd class="detaillees__valeur mimetype">(#GET{titre_mimetype})</dd>]
+					[(#LARGEUR|ou{#HAUTEUR}|et{#MEDIA|=={image}})
+					[<dt class="detaillees__label"><:medias:info_dimensions_image:></dt>
+					<dd class="detaillees__valeur dimensions">(#VAL{info_largeur_vignette}|_T{#ARRAY{largeur_vignette,#LARGEUR,hauteur_vignette,#HAUTEUR}})</dd>]
+					[<dt class="detaillees__label"><:medias:info_resolution_image:></dt>
+					<dd class="detaillees__valeur resolution">(#VAL{medias:info_resolution_mpx}|_T{#ARRAY{resolution,#LARGEUR|mult{#HAUTEUR}|div{1000000}|round{1}|number_format{1}}})</dd>]
+					]
+					[(#MEDIA|in_array{#LISTE{audio,video}}|et{#DUREE|intval}|oui)
+					[<dt class="detaillees__label"><:medias:info_duree:></dt>
+					<dd class="detaillees__valeur duree">(#DUREE|duree_en_secondes)</dd>]
+					]
+					[<dt class="detaillees__label"><:medias:info_taille:></dt>
+					<dd class="detaillees__valeur taille">(#TAILLE|taille_en_octets)</dd>]
+					[<dt class="detaillees__label"><:date:></dt>
+					<dd class="detaillees__valeur date">(#DATE|affdate{d/m/Y})</dd>]
+				</dl>
+
+				[(#PIPELINE{afficher_metas_document,#ARRAY{args,#ARRAY{'quoi','galerie','id_document',#ID_DOCUMENT},data,''}})]
+
+				<B_utilisations>
+				[(#TOTAL_BOUCLE|>{1}|oui)
+				<a role="button" class="btn btn_link btn_toggle" href='#' onclick="jQuery(this).next().toggle();/*$(this).hide();*/return false;">
+					<span class="sp-icone">+</span> [(#TOTAL_BOUCLE|singulier_ou_pluriel{medias:une_utilisation,medias:des_utilisations})]
+				</a>
+				]
+				<ul class="utilisations"[ (#TOTAL_BOUCLE|>{1}|oui)style="display:none"]>
+					<BOUCLE_utilisations(documents_liens) {id_document} {fusion objet} {fusion id_objet}>
+					[<li class="utilisations__item">
+						<a class="" href="(#ID_OBJET|generer_url_entite{#OBJET})">[(#CHEMIN_IMAGE{vu-16.png}|balise_img{'',sp-icone}) ][(#INFO_TITRE{#OBJET,#ID_OBJET}|couper{50})]</a>
+					</li>]
+					</BOUCLE_utilisations>
+				</ul>
+				</B_utilisations>
+			</td>
+			<td class="editorial">
+				[<strong class="titre #EDIT{titre}">(#TITRE|sinon{#VAL{<i class="sans-titre">}|concat{<:info_sans_titre:>,'</i>'}})</strong>]
+				[<div class="descriptif #EDIT{descriptif}">(#DESCRIPTIF)</div>]
+				[<p class="credits #EDIT{credits}"><span class="label"><:medias:label_credits:></span><span class="sep"> &ndash; </span><span class="valeur">(#CREDITS)</span></p>]
+				[<p class="alt #EDIT{alt}"><span class="label"><:medias:label_alt:></span><span class="sep"> &ndash; </span><span class="valeur">(#ALT)</span></p>]
+			</td>
+			<td class="action">
+				[(#REM) Utilisation de la galerie en mode selecteur, avec un bouton choix qui appelle une fonction js passee en argument]
+				[<span class="choisir"><input class="btn" type="submit" onclick="(#ENV{selectfunc,''})([(#ID_DOCUMENT)]);return false;" value="<:bouton_choisir|attribut_html:>" /></span>]
+			</td>
+		</tr>
+		</BOUCLE_galerie>
+	</tbody>
 	</table>
 	[<nav class='pagination'>(#PAGINATION{prive})</nav>]
 	</B_galerie>
-	<h3>[(#VAL{medias:aucun_}|concat{#ENV{media,document}}|_T)]</h3>
+	<div class="liste-objets galerie galerie-choisir mini caption-wrap">
+		<h3 class="caption">[(#VAL{medias:aucun_}|concat{#ENV{media,document}}|_T)]</h3>
+	</div>
 	<//B_galerie>
 </div><!--#galerie-->
diff --git a/prive/squelettes/inclure/mediatheque-galerie.html b/prive/squelettes/inclure/mediatheque-galerie.html
index e1ad6e50818914abcf280328ce543f93ab0e8f75..aafa68297ba99d7e72e17796326e4df2f85fae10 100644
--- a/prive/squelettes/inclure/mediatheque-galerie.html
+++ b/prive/squelettes/inclure/mediatheque-galerie.html
@@ -1,101 +1,161 @@
 #SET{editable,#ENV{editable,oui}|=={non}|non}
 
-<div class="galerie[ media-(#ENV{media,''})]">
+<div class="liste-objets galerie[ media-(#ENV{media,''})]">
 	[(#SET{poids_total,0})]<BOUCLE_poids_total(DOCUMENTS){id_rubrique ?}{id_article ?}{id_breve ?}{id_document ?}{recherche ?}{media?}{extension?}{distant?}{brise?}{statut==#ENV{statut,.*}}{orphelins?}{titre==(#ENV{sanstitre}|?{'^$','.*'})}{id_vignette==(#ENV{sansvignette}|?{'^0','.*'})}>[(#SET{poids_total,#GET{poids_total}|plus{#TAILLE}})]</BOUCLE_poids_total>
 	<B_galerie>
-	<h2>[(#GRAND_TOTAL|singulier_ou_pluriel{#VAL{medias:un_}|concat{#ENV{media,document}},#VAL{medias:des_}|concat{#ENV{media,document},s}})][ - (#GET{poids_total}|taille_en_octets)]</h2>
-	<nav class='pagination tri'>
-		[(#TRI{'>',#CHEMIN_IMAGE{tri-asc-16.png}|balise_img{<:par_tri_croissant:>}}) |]
-		[(#TRI{'<',#CHEMIN_IMAGE{tri-desc-16.png}|balise_img{<:par_tri_decroissant:>}}) |]
-		[(#TRI{id_document,<:medias:par_id:>}) |]
-		[(#TRI{date,<:medias:par_date:>}) |]
-		[(#TRI{taille,<:medias:par_taille:>}) |]
-		[(#TRI{largeur,<:medias:par_largeur:>}) |]
-		[(#TRI{hauteur,<:medias:par_hauteur:>}) |]
-		[(#TRI{titre,<:medias:par_titre:>}) |]
-		
-		[<:medias:label_paginer_par:> (#GRAND_TOTAL|>{100}|oui)
-			[(#SELF|parametre_url{pagination,''}|lien_ou_expose{10,#ENV{pagination,10}|=={10},ajax})]
-			[<span class="sep">|</span> (#SELF|parametre_url{pagination,50}|lien_ou_expose{50,#ENV{pagination,10}|=={50},ajax})]]
-		[(#GRAND_TOTAL|>{500}|oui)
-			[<span class="sep">|</span> (#SELF|parametre_url{pagination,100}|lien_ou_expose{100,#ENV{pagination,10}|=={100},ajax})]
-		]
-		[(#GRAND_TOTAL|>{5000}|oui)
-			[<span class="sep">|</span> (#SELF|parametre_url{pagination,500}|lien_ou_expose{500,#ENV{pagination,10}|=={500},ajax})]
-		]
-	</nav>
-	[<nav class="pagination">(#PAGINATION{prive})</nav>]
-	<table>
+	<table class="spip liste">
+		<caption>
+			<strong class="caption">[(#GRAND_TOTAL|singulier_ou_pluriel{#VAL{medias:un_}|concat{#ENV{media,document}},#VAL{medias:des_}|concat{#ENV{media,document},s}})][ - (#GET{poids_total}|taille_en_octets)]</strong>
+		</caption>
 	<thead>
-		<th></th>
-		<th class="id"><:medias:id:></th>
-		<th></th>
-		<th><:medias:logo:></th>
-		<th><:medias:infos:></th>
-		<th><:medias:descriptif:></th>
-		<th></th>
+		<tr>
+			<th colspan="7">
+				<nav class='pagination tri'>
+					[(#TRI{'>',#CHEMIN_IMAGE{tri-asc-16.png}|balise_img{<:par_tri_croissant:>}}) |]
+					[(#TRI{'<',#CHEMIN_IMAGE{tri-desc-16.png}|balise_img{<:par_tri_decroissant:>}}) |]
+					[(#TRI{id_document,<:medias:par_id:>}) |]
+					[(#TRI{date,<:medias:par_date:>}) |]
+					[(#TRI{taille,<:medias:par_taille:>}) |]
+					[(#TRI{largeur,<:medias:par_largeur:>}) |]
+					[(#TRI{hauteur,<:medias:par_hauteur:>}) |]
+					[(#TRI{titre,<:medias:par_titre:>}) |]
+					[<:medias:label_paginer_par:> (#GRAND_TOTAL|>{100}|oui)
+						[(#SELF|parametre_url{pagination,''}|lien_ou_expose{10,#ENV{pagination,10}|=={10},ajax})]
+						[<span class="sep">|</span> (#SELF|parametre_url{pagination,50}|lien_ou_expose{50,#ENV{pagination,10}|=={50},ajax})]]
+					[(#GRAND_TOTAL|>{500}|oui)
+						[<span class="sep">|</span> (#SELF|parametre_url{pagination,100}|lien_ou_expose{100,#ENV{pagination,10}|=={100},ajax})]
+					]
+					[(#GRAND_TOTAL|>{5000}|oui)
+						[<span class="sep">|</span> (#SELF|parametre_url{pagination,500}|lien_ou_expose{500,#ENV{pagination,10}|=={500},ajax})]
+					]
+				</nav>
+			</th>
+		</tr>
+		[<tr>
+			<th colspan="7">
+				<nav class="pagination">(#PAGINATION{prive})</nav>
+			</th>
+		</tr>]
+		<tr class="first_row">
+			<th class="logo"><:medias:logo:></th>
+			<th class="infos"></th>
+			<th class="id"><:medias:id:></th>
+			<th class="statut"></th>
+			<th class="exif"><:medias:infos:></th>
+			<th class="editorial"><:medias:descriptif:></th>
+			<th class="action"></th>
+		</tr>
 	</thead>
-	<BOUCLE_galerie(DOCUMENTS) {id_rubrique ?}{id_article ?}{id_breve ?}{id_document ?}{recherche ?} {tri id_document,inverse}{media?}{extension?}{distant?}{brise?}{statut==#ENV{statut,.*}}{orphelins?}{titre==(#ENV{sanstitre}|?{'^$','.*'})}{id_vignette==(#ENV{sansvignette}|?{'^0','.*'})}{pagination #ENV{pagination,10}}>
-	<tr class="[(#ENV{media}|non)[ media-(#MEDIA)]]" id="#ENV{iddoc,media}#ID_DOCUMENT">
-		<td class='infos'>
-		[(#DISTANT|=={oui}|non)#SET{missing,#FICHIER|file_exists|non}]
-		[(#ENV{media}|non|et{#MEDIA|!={file}})[(#CHEMIN_IMAGE{media-#MEDIA|concat{-32.png}}|balise_img|inserer_attribut{alt,#VAL{medias:media_#MEDIA}|_T}|inserer_attribut{title,#VAL{medias:media_#MEDIA}|_T})]]
-		[(#GET{missing}|oui)[(#CHEMIN_IMAGE{document-manquant-32.png}|balise_img{<:medias:fichier_manquant:>}|inserer_attribut{title,<:medias:fichier_manquant:>})]]
-		[(#DISTANT|=={oui}|oui)[(#CHEMIN_IMAGE{document-distant-32.png}|balise_img{<:medias:fichier_distant:>}|inserer_attribut{title,<:medias:fichier_distant:>})]]
-		</td>
-		<td class="id">
-			<strong>#ID_DOCUMENT</strong>
-		</td>
-		<td class='statut'>
-		[(#ID_DOCUMENT|medias_puce_statut_document{#STATUT})]
-		</td>
-		<td class="logo">
-		#SET{fichier,#DISTANT|=={oui}|?{#FICHIER,#FICHIER|basename}}
-		[(#MEDIA|=={image}|oui)[
-			<a href="#URL_DOCUMENT" type="#MIME_TYPE"[ title="(#GET{fichier})"]>(#LOGO_DOCUMENT{apercu,250,100}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})</a>
-		]]
-		[(#MEDIA|=={image}|non)[<div class="#EDIT{vignette} resize-250">
-			<a href="#URL_DOCUMENT" type="#MIME_TYPE"[ title="(#GET{fichier})"]>(#LOGO_DOCUMENT{auto,250,100}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})</a>
-		</div>]]
-		<div class="fichier">#GET{fichier}</div>
-		</td>
-		<td class="exif">
-			[<strong class="extension">(#EXTENSION)</strong>]
-			[<div class="dimensions">(#LARGEUR|?{[(#LARGEUR)[ x (#HAUTEUR) pixels]],''})</div>]
-			[<div class="taille">(#TAILLE|taille_en_octets)</div>]
-			[<div class="date">(#DATE|affdate{d/m/Y})</div>]
-			[(#PIPELINE{afficher_metas_document,#ARRAY{args,#ARRAY{'quoi','galerie','id_document',#ID_DOCUMENT},data,''}})]
-			<B_liens>
-			[(#TOTAL_BOUCLE|>{1}|oui)
-			<a href='#' onclick="jQuery(this).next().show();$(this).hide();return false;">[(#TOTAL_BOUCLE|singulier_ou_pluriel{medias:une_utilisation,medias:des_utilisations})]</a><div style='display: none;'>
-			]
-			<BOUCLE_liens(documents_liens){id_document}{fusion objet}{fusion id_objet}{'<br />'}>
-			[(#ID_OBJET|generer_lien_entite{#OBJET})]
-			</BOUCLE_liens>
-			[(#TOTAL_BOUCLE|>{1}|oui)</div>]
-			</B_liens>
-		</td>
-		<td class="descriptif">
-			[<strong class="titre #EDIT{titre}">(#TITRE|sinon{#VAL{<i>}|concat{<:info_sans_titre:>,'</i>'}})</strong>]
-			[<div class="descriptif #EDIT{descriptif}">(#DESCRIPTIF)</div>]
-			[<p class="credits #EDIT{credits}">(#CREDITS)</p>]
-		</td>
-		<td>
-		[(#REM) Utilisation de la galerie en mode portfolio, avec renvoi vers l'edition]
-		[(#GET{editable})
-		[(#AUTORISER{modifier,document,#ID_DOCUMENT})&#91;<a href='#URL_ECRIRE{document_edit,id_document=#ID_DOCUMENT}'><:bouton_modifier:></a>&#93;]
-		[<span class='supprimer'>(#AUTORISER{supprimer,document,#ID_DOCUMENT})[(#BOUTON_ACTION{<:medias:bouton_supprimer:>,#URL_ACTION_AUTEUR{supprimer_document,#ID_DOCUMENT,#SELF},ajax,'','',[(function(){jQuery("##ENV{iddoc,media}(#ID_DOCUMENT)").animateRemove();return true;})()]})]</span>]
-		]
-		[(#PIPELINE{document_desc_actions,#ARRAY{args,#ARRAY{id_document,#ID_DOCUMENT,position,galerie},data,''}})]
-		</td>
-	</tr>
-	</BOUCLE_galerie>
+	<tbody>
+		<BOUCLE_galerie(DOCUMENTS) {id_rubrique ?}{id_article ?}{id_breve ?}{id_document ?}{recherche ?} {tri id_document,inverse}{media?}{extension?}{distant?}{brise?}{statut==#ENV{statut,.*}}{orphelins?}{titre==(#ENV{sanstitre}|?{'^$','.*'})}{id_vignette==(#ENV{sansvignette}|?{'^0','.*'})}{pagination #ENV{pagination,10}}>
+		#SET{titre_mimetype,''}
+		<BOUCLE_type(types_documents) {extension}>#SET{titre_mimetype,#TITRE}</BOUCLE_type>
+		<tr class="[(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})][ (#ENV{media}|non)[ media-(#MEDIA)]]" id="#ENV{iddoc,media}#ID_DOCUMENT">
+			<td class="logo">
+				#SET{fichier,#DISTANT|=={oui}|?{#FICHIER,#FICHIER|basename}}
+				[(#MEDIA|=={image}|oui)[
+					<a href="#URL_DOCUMENT" type="#MIME_TYPE"[ title="(#GET{fichier})"]>(#LOGO_DOCUMENT{apercu,250,100}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})</a>
+				]]
+				[(#MEDIA|=={image}|non)[<div class="#EDIT{vignette} resize-250">
+					<a href="#URL_DOCUMENT" type="#MIME_TYPE"[ title="(#GET{fichier})"]>(#LOGO_DOCUMENT{auto,250,100}|inserer_attribut{alt,[(#TITRE|couper{60}|texte_backend)]})</a>
+				</div>]]
+			</td>
+			<td class='infos'>
+				[(#DISTANT|=={oui}|non)#SET{missing,#FICHIER|file_exists|non}]
+				[(#ENV{media}|non|et{#MEDIA|!={file}})[(#CHEMIN_IMAGE{media-#MEDIA|concat{-32.png}}|balise_img{[(#VAL{medias:media_#MEDIA}|_T)],type-media}|inserer_attribut{title,#VAL{medias:media_#MEDIA}|_T})]]
+				[<div class="extension">(#EXTENSION)</div>]
+				[(#GET{missing}|oui)[(#CHEMIN_IMAGE{document-manquant-32.png}|balise_img{<:medias:fichier_manquant:>}|inserer_attribut{title,<:medias:fichier_manquant:>})]]
+				[(#DISTANT|=={oui}|oui)[(#CHEMIN_IMAGE{document-distant-32.png}|balise_img{<:medias:fichier_distant:>}|inserer_attribut{title,<:medias:fichier_distant:>})]]
+			</td>
+			<td class="id">
+				<strong>#ID_DOCUMENT</strong>
+			</td>
+			<td class='statut'>
+				[(#ID_DOCUMENT|medias_puce_statut_document{#STATUT})]
+			</td>
+			<td class="exif">
+
+				[(#REM) Infos résumées ]
+				[<div class="fichier" title="[(#GET{fichier}|attribut_html)]">(#GET{fichier})</div>]
+				[<div class="taille">(#TAILLE|taille_en_octets)</div>]
+
+				[(#REM) Infos détaillées ]
+				<a
+					role="button"
+					href="#"
+					class="btn btn_link btn_toggle"
+					title="<:medias:details_document_afficher_masquer|attribut_html:>"
+					onclick="jQuery(this).next().toggle();return false;"
+				><span class="sp-icone">+</span> <:medias:details_document:></a>
+				<dl class="detaillees" style="display:none;">
+					[<dt class="detaillees__label"><:medias:label_fichier:></dt>
+					<dd class="detaillees__valeur fichier">(#GET{fichier})</dd>]
+					[<dt class="detaillees__label"><:medias:label_titre_mimetype:></dt>
+					<dd class="detaillees__valeur mimetype">(#GET{titre_mimetype})</dd>]
+					[(#LARGEUR|ou{#HAUTEUR}|et{#MEDIA|=={image}})
+					[<dt class="detaillees__label"><:medias:info_dimensions_image:></dt>
+					<dd class="detaillees__valeur dimensions">(#VAL{info_largeur_vignette}|_T{#ARRAY{largeur_vignette,#LARGEUR,hauteur_vignette,#HAUTEUR}})</dd>]
+					[<dt class="detaillees__label"><:medias:info_resolution_image:></dt>
+					<dd class="detaillees__valeur resolution">(#VAL{medias:info_resolution_mpx}|_T{#ARRAY{resolution,#LARGEUR|mult{#HAUTEUR}|div{1000000}|round{1}|number_format{1}}})</dd>]
+					]
+					[(#MEDIA|in_array{#LISTE{audio,video}}|et{#DUREE|intval}|oui)
+					[<dt class="detaillees__label"><:medias:info_duree:></dt>
+					<dd class="detaillees__valeur duree">(#DUREE|duree_en_secondes)</dd>]
+					]
+					[<dt class="detaillees__label"><:medias:info_taille:></dt>
+					<dd class="detaillees__valeur taille">(#TAILLE|taille_en_octets)</dd>]
+					[<dt class="detaillees__label"><:date:></dt>
+					<dd class="detaillees__valeur date">(#DATE|affdate{d/m/Y})</dd>]
+				</dl>
+
+				[(#PIPELINE{afficher_metas_document,#ARRAY{args,#ARRAY{'quoi','galerie','id_document',#ID_DOCUMENT},data,''}})]
+
+				<B_utilisations>
+				[(#TOTAL_BOUCLE|>{1}|oui)
+				<a role="button" class="btn btn_link btn_toggle" href='#' onclick="jQuery(this).next().toggle();/*$(this).hide();*/return false;">
+					<span class="sp-icone">+</span> [(#TOTAL_BOUCLE|singulier_ou_pluriel{medias:une_utilisation,medias:des_utilisations})]
+				</a>
+				]
+				<ul class="utilisations"[ (#TOTAL_BOUCLE|>{1}|oui)style="display:none"]>
+					<BOUCLE_utilisations(documents_liens) {id_document} {fusion objet} {fusion id_objet}>
+					[<li class="utilisations__item">
+						<a class="" href="(#ID_OBJET|generer_url_entite{#OBJET})">[(#CHEMIN_IMAGE{vu-16.png}|balise_img{'',sp-icone}) ][(#INFO_TITRE{#OBJET,#ID_OBJET}|couper{50})]</a>
+					</li>]
+					</BOUCLE_utilisations>
+				</ul>
+				</B_utilisations>
+
+			</td>
+			<td class="editorial">
+				[<strong class="titre #EDIT{titre}">(#TITRE|sinon{#VAL{<i class="sans-titre">}|concat{<:info_sans_titre:>,'</i>'}})</strong>]
+				[<div class="descriptif #EDIT{descriptif}">(#DESCRIPTIF)</div>]
+				[<p class="credits #EDIT{credits}"><span class="label"><:medias:label_credits:></span><span class="sep"> &ndash; </span><span class="valeur">(#CREDITS)</span></p>]
+				[<p class="alt #EDIT{alt}"><span class="label"><:medias:label_alt:></span><span class="sep"> &ndash; </span><span class="valeur">(#ALT)</span></p>]
+			</td>
+			<td class="action">
+				[(#REM) Utilisation de la galerie en mode portfolio, avec renvoi vers l'edition]
+				[(#GET{editable}|oui)
+					<div class="groupe-btns groupe-btns_vertical">
+						[(#AUTORISER{modifier,document,#ID_DOCUMENT})<a class="btn" href='#URL_ECRIRE{document_edit,id_document=#ID_DOCUMENT}'><:bouton_modifier:></a>]
+						[(#AUTORISER{supprimer,document,#ID_DOCUMENT})[(#BOUTON_ACTION{<:medias:bouton_supprimer:>,#URL_ACTION_AUTEUR{supprimer_document,#ID_DOCUMENT,#SELF},ajax btn btn_secondaire btn_supprimer,'','',[(function(){jQuery("##ENV{iddoc,media}(#ID_DOCUMENT)").animateRemove();return true;})()]})]]
+					</div>
+				]
+				[(#REM) On ne sait pas si le contenu ajouté par le pipeline consiste en des boutons, donc pas inclus dans le groupe. ]
+				[(#PIPELINE{document_desc_actions,#ARRAY{args,#ARRAY{id_document,#ID_DOCUMENT,position,galerie},data,''}})]
+			</td>
+		</tr>
+		</BOUCLE_galerie>
+		</tbody>
 	</table>
 	[<nav class='pagination'>(#PAGINATION{prive})</nav>]
 	#SET{nb_orphelins,#GRAND_TOTAL}
 	</B_galerie>
-	<h2>[(#VAL{medias:aucun_}|concat{#ENV{media,document}}|_T)]</h2>
+
+	<div class="liste-objets galerie caption-wrap">
+		<h2 class="caption">[(#VAL{medias:aucun_}|concat{#ENV{media,document}}|_T)]</h2>
+	</div>
 	<//B_galerie>
+
 	[(#ENV{orphelins}|et{#AUTORISER{supprimer,orphelins,'',#SESSION{id_auteur}}})
 	[(#INCLURE{fond=prive/squelettes/inclure/bouton-supprimer-orphelins,env,nb_orphelins=#GET{nb_orphelins}})]
 	]
diff --git a/prive/squelettes/inclure/mediatheque-navigation.html b/prive/squelettes/inclure/mediatheque-navigation.html
index 28ec3ebbf0a7bdd679900cb443125b9331521848..70fb644317a1d13c6d7541e2afe1f0e43daa6f2a 100644
--- a/prive/squelettes/inclure/mediatheque-navigation.html
+++ b/prive/squelettes/inclure/mediatheque-navigation.html
@@ -56,6 +56,7 @@
 
 <div class='nettoyeur'></div>
 #FORMULAIRE_RECHERCHE_ECRIRE{#GET{self},ajax}
+<div class="nettoyeur"></div>
 
 <INCLURE{fond=#ENV{galerie,''}|spip_sanitize_from_request{galerie,vide}|sinon{prive/squelettes/inclure/mediatheque-galerie},ajax=documents,env} />
 
diff --git a/prive/style_prive_plugin_medias.html b/prive/style_prive_plugin_medias.html
index 079a164d08775bec31105c0b58b0cb287aae16b8..f6b319adf1f39bbb7cfe92569aab9b789006029c 100644
--- a/prive/style_prive_plugin_medias.html
+++ b/prive/style_prive_plugin_medias.html
@@ -63,46 +63,140 @@
 
 a.bouton_fermer {display:block;text-align:#GET{right};}
 
-.galerie { float: none; width: 100%; padding:0;margin-bottom: #ENV{margin-bottom};}
-.galerie .pagination {clear:both;font-size:0.95em;}
-.galerie .pagination + .pagination {border-top: 0;margin-top:-1px;}
-.galerie table { width: 100%; border: none; margin-bottom: 0}
-.galerie table thead,.galerie table thead th  { background: #e5e5e5;background: -webkit-gradient(linear, left top, left bottom, from(#f0f0f0), to(#e0e0e0));background-image: -webkit-linear-gradient(top, #f0f0f0, #e0e0e0);background-image: -moz-linear-gradient(top, #f0f0f0, #e0e0e0);background-image: -ms-linear-gradient(top, #f0f0f0, #e0e0e0);background-image: -o-linear-gradient(top, #f0f0f0, #e0e0e0);background-image: linear-gradient(top, #f0f0f0, #e0e0e0);filter:  progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#f0f0f0', endColorstr='#e0e0e0');}
-.galerie table tbody tr:hover { background: [#(#GET{claire}|couleur_eclaircir|couleur_eclaircir)]; }
-.galerie table td { min-height: 100px; vertical-align: top; word-break: break-word;}
-.galerie table th, .galerie table td { padding: 0.5em .3em; border-bottom: 1px solid #ccc; }
-.galerie table th.id { text-align: right; }
-.galerie table td.id { width: 80px; text-align: right; vertical-align: top; line-height: normal; }
-.galerie table td.id strong { font-size: 1.6em; color: #666; font-weight: normal; }
-.galerie table td.infos {min-width: 24px;}
-.galerie table td.statut { width: 9px; }
-.galerie table td.logo { width: 250px; overflow: hidden; }
-.galerie table td.logo img { /*border: 1px solid #666;*/ }
-.galerie table .fichier {font-size:0.8em;width:250px;overflow:hidden;font-style:italic;}
-
-.galerie table td.exif { width: 140px;  }
-.galerie table td.exif small { display: inline; }
-.galerie table td.exif .extension {}
-.galerie table td.exif .dimensions { font-size: .9em; }
-.galerie table td.exif .taille { font-size: .9em; font-weight: bold; color: #666; }
-.galerie table td.exif .date { font-size: .9em; }
-.galerie table td.descriptif { }
-
-.galerie table .supprimer {display:block;font-size:0.8em;margin-top:1em;}
-
-.galerie.media-image h2 { background: url(#CHEMIN_IMAGE{media-image-32.png}) no-repeat center left; padding: 6px;padding-left: 40px;background-size:32px;}
-.galerie.media-audio h2 { background: url(#CHEMIN_IMAGE{media-audio-32.png}) no-repeat center left; padding: 6px;padding-left: 40px;background-size:32px;}
-.galerie.media-video h2 { background: url(#CHEMIN_IMAGE{media-video-32.png}) no-repeat center left; padding: 6px;padding-left: 40px;background-size:32px;}
-
-.galerie table td.exif { background-repeat: no-repeat; background-position: top right; }
+/**
+ * Galerie
+ */
 
+/* Caption */
+.liste-objets.galerie[class*="media-"] .caption {
+	padding-left: var(--spip-list-heading-iconpadding);
+	background-size: var(--spip-list-heading-iconsize);
+	background-repeat: no-repeat;
+	background-position: var(--spip-left) var(--spip-list-spacing-x) center;
+}
+.liste-objets.galerie.media-image .caption {
+	background-image: url(#CHEMIN_IMAGE{media-image-32.png});
+}
+.liste-objets.galerie.media-audio .caption {
+	background-image: url(#CHEMIN_IMAGE{media-audio-32.png});
+}
+.liste-objets.galerie.media-video .caption {
+	background-image: url(#CHEMIN_IMAGE{media-video-32.png});
+}
+
+/* Colonne logo */
+.liste-objets.galerie th.logo,
+.liste-objets.galerie td.logo {
+	width: 270px; /* laisser un peu respirer (largeur max image = 250px) */
+	overflow: hidden;
+	text-align: center;
+}
+
+/* Colonne infos : media, extension, distant, orphelin */
+.liste-objets.galerie td.infos {
+	min-width: 24px;
+}
+.liste-objets.galerie .type-media {
+	margin-bottom: 0.2em;
+}
+.liste-objets.galerie .extension {
+	text-transform: uppercase;
+}
+
+/* Colonne exif : infos techniques */
+.liste-objets.galerie td.exif {
+	vertical-align: top;
+}
+.liste-objets.galerie .fichier,
+.liste-objets.galerie .taille {
+	margin-bottom: 0.25em;
+}
+.liste-objets.galerie .fichier {
+	display: block;
+	max-width: 15em;
+	overflow: hidden;
+	text-overflow: ellipsis;
+}
+.liste-objets.galerie .detaillees {
+	display: grid;
+	grid-template-columns: max-content 1fr;
+	margin-bottom: 0.5em;
+}
+.liste-objets.galerie .detaillees__label,
+.liste-objets.galerie .detaillees__valeur {
+	padding: 0.33em 0;
+	border-bottom: 1px solid var(--spip-box-sep-color);
+}
+.liste-objets.galerie .detaillees__valeur {
+	padding-#LEFT: 1em;
+	margin-bottom: 0;
+}
+.liste-objets.galerie .detaillees__label:last-of-type,
+.liste-objets.galerie .detaillees__valeur:last-of-type {
+	border-bottom: 0;
+}
+/* dans les détails il faut voir le nom de fichier en entier */
+.liste-objets.galerie .detaillees .fichier {
+	margin: 0;
+	word-wrap: break-word;
+}
+.liste-objets.galerie .detaillees .taille {
+	margin: 0;
+}
+.liste-objets.galerie .detaillees .taille {}
+.liste-objets.galerie .detaillees .date {}
+.liste-objets.galerie .exif .utilisations {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+}
+.liste-objets.galerie .exif .utilisations__item {}
+.liste-objets.galerie .exif .btn_link {
+	padding-#LEFT: 0;
+	margin: 0;
+}
+
+/* Colonne titre + crédits + descriptif */
+.liste-objets.galerie td.editorial {
+	vertical-align: top;
+}
+.liste-objets.galerie td.editorial .titre:not(:last-child),
+.liste-objets.galerie td.editorial .descriptif:not(:last-child),
+.liste-objets.galerie td.editorial p {
+	margin-bottom: 0.5em;
+}
+.liste-objets.galerie td.editorial p:last-child {
+	margin-bottom: 0;
+}
+.liste-objets.galerie .titre {
+	display: block;
+}
+.liste-objets.galerie .sans-titre {
+	font-weight: normal;
+	font-style: normal;
+	color: var(--spip-color-gray);
+}
+.liste-objets.galerie .descriptif { }
+.liste-objets.galerie .credits { }
+
+/* Modale avec galerie pour choisir */
 .popin-choisir_document {}
-.popin-choisir_document .onglets_simple.second {display:none;}
-.popin-choisir_document .galerie table td.id  {width:40px;}
-.popin-choisir_document .galerie table td.logo  {width:200px;}
-.popin-choisir_document .galerie table td.exif {width:120px;}
-.popin-choisir_document .galerie table td.descriptif {max-width:150px;}
-.popin-choisir_document .galerie table td {word-wrap: break-word;}
+.popin-choisir_document .onglets_simple.second {
+	display: none;
+}
+.popin-choisir_document .liste-objets.galerie td {
+	word-wrap: break-word;
+}
+.popin-choisir_document .liste-objets.galerie tr > .logo {
+	width: 200px;
+}
+.popin-choisir_document .liste-objets.galerie tr > .editorial {
+	max-width: 20em;
+}
+.liste-objets.galerie .fichier {
+	max-width: 12em;
+	word-wrap: initial;
+}
 
 .spip_documents_legende {border:1px solid #GET{foncee};text-align:center;font-size:0.9em;margin:0 0 1em;}
 .spip_documents_legende dt {background:#GET{foncee};color:#fff;padding:5px 3px;font-weight:bold;}