diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3f755ed..19a9609 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@ et le versionnement sur [Semantic Versioning](http://semver.org/).
### Changed
+- Formulaires mis en forme : champs en grille, sections titrées dans l'onglet « Modèle », contenu des panneaux dépliés sur fond clair, messages sous les champs lisibles. Titre du modèle dans l'en-tête de sa vue. Bandeau du modèle réduit aux problèmes ; identifiant du modèle, chemin du fichier en bas de vue, tuiles et types de fichiers retirés. « Monter » et « Descendre » retirés des colonnes. Carte d'un problème et fenêtre des corrections proposées mises en forme (gravité en pastille, conseil encadré, correction « sûre » signalée).
- Clés étrangères et conditions affichées comme du SQL (mots-clés en bleu gras, chaînes en vert), modifiables par un crayon. Badges colorés : présence des fichiers attendus (obligatoire en rouge, recommandé en orange, facultatif en vert), contraintes des colonnes (valeur obligatoire, colonne obligatoire, unique). « Monter » et « Descendre » retirés des fichiers attendus. Bouton « Équivalents » renommé « Appliquer aux colonnes / fichiers / listes semblables ».
- Arborescence des fichiers attendus (arbre et vue du modèle) : à chaque niveau, les fichiers d'abord, puis les dossiers. Regex mises en valeur : encadrées en police à chasse fixe, variables de `variables.json` en bleu gras, variables facultatives en jaune. Accueil de l'éditeur en ligne : pleine largeur, sans les paragraphes de confidentialité et de commandes.
- Vue d'un modèle en onglets « Modèle », « Fichiers », « Tables » (nouveau : modèles de table du modèle avec présence, nombre de colonnes et problèmes, tables non référencées) et « Listes de codes » ; l'onglet suit l'adresse (fichier de l'arbre, problème cliqué). Bandeau de synthèse en tuiles qui ouvrent l'onglet correspondant, types de fichiers au pluriel. Bouton « Listes de codes (N) » retiré. « Télécharger le JSON » (ou le CSV) à côté des onglets Vue / Source, et non plus dans le titre.
diff --git a/src/ui/App.vue b/src/ui/App.vue
index 601991c..fddcda9 100644
--- a/src/ui/App.vue
+++ b/src/ui/App.vue
@@ -25,7 +25,9 @@ const online = import.meta.env.MODE === 'pages'
// Site en lecture seule produit par `vce site` (013) : instantané statique, champs en lecture seule.
const site = isSite()
const siteSource = site ? new SiteSource() : undefined
-const READ_ONLY = { VTextField: { readonly: true }, VTextarea: { readonly: true }, VSelect: { readonly: true }, VCombobox: { readonly: true }, VCheckbox: { readonly: true } }
+// Champs : pas d'espace réservé sous un champ sans message ; en lecture seule (013), non modifiables.
+const FIELDS = { VTextField: { hideDetails: 'auto' }, VTextarea: { hideDetails: 'auto' }, VSelect: { hideDetails: 'auto' }, VCombobox: { hideDetails: 'auto' } }
+const READ_ONLY = { VTextField: { hideDetails: 'auto', readonly: true }, VTextarea: { hideDetails: 'auto', readonly: true }, VSelect: { hideDetails: 'auto', readonly: true }, VCombobox: { hideDetails: 'auto', readonly: true }, VCheckbox: { readonly: true } }
const showHome = ref(false)
watch(() => store.session, () => (showHome.value = false))
@@ -119,7 +121,7 @@ const view = computed(() => VIEWS[kindOf(route.value.file)])
Lecture seule — pour modifier cette configuration, ouvrez son dépôt avec vce serve ou l'éditeur en ligne.
Éditeur v{{ siteSource.version }}.
-
+ {{ store.error }}
diff --git a/src/ui/components/FileFrame.vue b/src/ui/components/FileFrame.vue
index 4cbe93f..629635d 100644
--- a/src/ui/components/FileFrame.vue
+++ b/src/ui/components/FileFrame.vue
@@ -56,8 +56,6 @@ watch(tab, highlight)
-
-