Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
38818f77ae | ||
|
|
d9f934a8b2 |
@@ -189,7 +189,7 @@
|
|||||||
<NuxtLink to="/" class="block px-4 py-2.5 text-sm font-medium transition-opacity hover:opacity-70" :style="route.path === '/' ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">Écosystème Entraide</NuxtLink>
|
<NuxtLink to="/" class="block px-4 py-2.5 text-sm font-medium transition-opacity hover:opacity-70" :style="route.path === '/' ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">Écosystème Entraide</NuxtLink>
|
||||||
<NuxtLink to="/agences" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path === '/agences' ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">Réseaux AEP</NuxtLink>
|
<NuxtLink to="/agences" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path === '/agences' ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">Réseaux AEP</NuxtLink>
|
||||||
<NuxtLink to="/trouver-du-taf" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path === '/trouver-du-taf' ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">Jobs</NuxtLink>
|
<NuxtLink to="/trouver-du-taf" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path === '/trouver-du-taf' ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">Jobs</NuxtLink>
|
||||||
<NuxtLink to="/rag" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" style="color: var(--nav-text);">recherche-média</NuxtLink>
|
<NuxtLink to="/media" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path.startsWith('/media') ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">recherche-média</NuxtLink>
|
||||||
<NuxtLink to="/codev" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path.startsWith('/codev') ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">Codev</NuxtLink>
|
<NuxtLink to="/codev" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path.startsWith('/codev') ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text);'">Codev</NuxtLink>
|
||||||
<div style="height: 1px; background: var(--nav-bg-alt); margin: 4px 0;"></div>
|
<div style="height: 1px; background: var(--nav-bg-alt); margin: 4px 0;"></div>
|
||||||
<NuxtLink to="/manifeste" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path === '/manifeste' ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text-muted);'">Manifeste</NuxtLink>
|
<NuxtLink to="/manifeste" class="block px-4 py-2.5 text-sm transition-opacity hover:opacity-70" :style="route.path === '/manifeste' ? 'color: var(--nav-primary-solid); font-weight: 700;' : 'color: var(--nav-text-muted);'">Manifeste</NuxtLink>
|
||||||
|
|||||||
@@ -54,7 +54,6 @@
|
|||||||
<div v-if="messages.length === 0" class="onboarding-bubble">
|
<div v-if="messages.length === 0" class="onboarding-bubble">
|
||||||
<p>Explore les 120 structures de la carte par la conversation. Je peux t'aider à trouver des collectifs, agences ou réseaux selon ta situation, ta pratique ou tes inspirations du moment.</p>
|
<p>Explore les 120 structures de la carte par la conversation. Je peux t'aider à trouver des collectifs, agences ou réseaux selon ta situation, ta pratique ou tes inspirations du moment.</p>
|
||||||
<p class="example">Exemple : "Je cherche des acteurs de la rénovation de maisons individuelles en France, plutôt en milieu rural, avec des approches biosourcées ou low-tech."</p>
|
<p class="example">Exemple : "Je cherche des acteurs de la rénovation de maisons individuelles en France, plutôt en milieu rural, avec des approches biosourcées ou low-tech."</p>
|
||||||
<p style="margin-top: 8px; font-size: 0.72rem; opacity: 0.6;">Propulsé par Mistral FR - serveur européen souverain, zéro rétention.</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Messages -->
|
<!-- Messages -->
|
||||||
|
|||||||
@@ -69,7 +69,6 @@
|
|||||||
<div ref="messagesContainer" class="flex-1 overflow-y-auto px-4 py-4 flex flex-col gap-3">
|
<div ref="messagesContainer" class="flex-1 overflow-y-auto px-4 py-4 flex flex-col gap-3">
|
||||||
<!-- Message onboarding (avant la première question) -->
|
<!-- Message onboarding (avant la première question) -->
|
||||||
<div v-if="messages.length === 0" class="onboarding-bubble">
|
<div v-if="messages.length === 0" class="onboarding-bubble">
|
||||||
<p>Ce chatbot fonctionne sur un serveur européen souverain (Mistral FR, zéro rétention), conçu sobre en énergie.</p>
|
|
||||||
<p>Pour m'aider à te répondre efficacement, formule ta requête ainsi :</p>
|
<p>Pour m'aider à te répondre efficacement, formule ta requête ainsi :</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>• Besoin : [ce que tu cherches]</li>
|
<li>• Besoin : [ce que tu cherches]</li>
|
||||||
|
|||||||
@@ -0,0 +1,121 @@
|
|||||||
|
<template>
|
||||||
|
<section class="echelle-tete" :class="{ 'echelle-tete--compact': compact }" :aria-label="`Échelle ${e.id} : ${e.titre}`">
|
||||||
|
<p class="echelle-tete__kicker">
|
||||||
|
<span class="echelle-tete__badge" aria-hidden="true">{{ e.id }}</span>
|
||||||
|
<span class="echelle-tete__titre">{{ e.titre }}<span v-if="e.sousTitre" class="echelle-tete__sous-titre">{{ ' ' + e.sousTitre }}</span></span>
|
||||||
|
</p>
|
||||||
|
<ul class="echelle-tete__mots">
|
||||||
|
<li v-for="m in e.mots" :key="m">{{ m }}</li>
|
||||||
|
</ul>
|
||||||
|
<p class="echelle-tete__phrase">{{ e.phrase }}</p>
|
||||||
|
<slot />
|
||||||
|
<p v-if="contribuer" class="echelle-tete__contribuer">
|
||||||
|
<span>{{ ECHELLES_CADRE_COURT }}</span>
|
||||||
|
<NuxtLink :to="`/proposer?categorie=${e.categorieProposer}`" @click="$emit('navigate')">Proposer une ressource →</NuxtLink>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ECHELLES, type EchelleId } from '~/utils/echelles'
|
||||||
|
|
||||||
|
const props = withDefaults(defineProps<{
|
||||||
|
echelle: EchelleId
|
||||||
|
/** Variante resserrée, pour une popup ou un en-tête centré. */
|
||||||
|
compact?: boolean
|
||||||
|
/** Affiche la ligne « on pose l'infrastructure, le collectif nourrit ». */
|
||||||
|
contribuer?: boolean
|
||||||
|
}>(), { compact: false, contribuer: true })
|
||||||
|
|
||||||
|
defineEmits<{ navigate: [] }>()
|
||||||
|
|
||||||
|
const e = computed(() => ECHELLES[props.echelle])
|
||||||
|
const ECHELLES_CADRE_COURT = 'Chaque section est ouverte aux contributions.'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.echelle-tete {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: var(--space-sm);
|
||||||
|
margin: 0 0 var(--space-md);
|
||||||
|
}
|
||||||
|
|
||||||
|
.echelle-tete__kicker {
|
||||||
|
display: flex;
|
||||||
|
align-items: baseline;
|
||||||
|
gap: var(--space-sm);
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.echelle-tete__badge {
|
||||||
|
display: inline-flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
min-width: 2rem;
|
||||||
|
padding: 0.1rem 0.5rem;
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
background: var(--accent);
|
||||||
|
color: var(--on-accent);
|
||||||
|
font-weight: var(--fw-bold);
|
||||||
|
font-size: var(--fs-sm);
|
||||||
|
letter-spacing: 0.04em;
|
||||||
|
line-height: 1.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.echelle-tete__titre {
|
||||||
|
font-size: var(--fs-lg);
|
||||||
|
font-weight: var(--fw-bold);
|
||||||
|
color: var(--text);
|
||||||
|
line-height: var(--lh-tight);
|
||||||
|
}
|
||||||
|
|
||||||
|
.echelle-tete__sous-titre {
|
||||||
|
font-weight: var(--fw-regular);
|
||||||
|
color: var(--text-muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
.echelle-tete__mots {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.15rem 0;
|
||||||
|
font-size: var(--fs-sm);
|
||||||
|
color: var(--text);
|
||||||
|
line-height: var(--lh-base);
|
||||||
|
}
|
||||||
|
.echelle-tete__mots li:not(:last-child)::after {
|
||||||
|
content: '·';
|
||||||
|
margin: 0 0.5rem;
|
||||||
|
color: var(--accent);
|
||||||
|
font-weight: var(--fw-bold);
|
||||||
|
}
|
||||||
|
|
||||||
|
.echelle-tete__phrase {
|
||||||
|
margin: 0;
|
||||||
|
font-size: var(--fs-sm);
|
||||||
|
font-style: italic;
|
||||||
|
color: var(--text-muted);
|
||||||
|
line-height: var(--lh-base);
|
||||||
|
}
|
||||||
|
|
||||||
|
.echelle-tete__contribuer {
|
||||||
|
margin: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.25rem 0.75rem;
|
||||||
|
font-size: var(--fs-xs);
|
||||||
|
color: var(--text-muted);
|
||||||
|
}
|
||||||
|
.echelle-tete__contribuer a {
|
||||||
|
color: var(--link);
|
||||||
|
text-decoration: underline;
|
||||||
|
text-underline-offset: 2px;
|
||||||
|
}
|
||||||
|
.echelle-tete__contribuer a:hover { color: var(--link-hover); }
|
||||||
|
|
||||||
|
.echelle-tete--compact { text-align: left; }
|
||||||
|
.echelle-tete--compact .echelle-tete__titre { font-size: var(--fs-base); }
|
||||||
|
</style>
|
||||||
@@ -275,6 +275,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-1 overflow-y-auto px-5 py-4" style="color:var(--nav-text);font-size:0.875rem;line-height:1.6;">
|
<div class="flex-1 overflow-y-auto px-5 py-4" style="color:var(--nav-text);font-size:0.875rem;line-height:1.6;">
|
||||||
|
<EchelleTete echelle="XL" compact @navigate="ragInfoOpen = false" />
|
||||||
<p class="mb-3">Une bibliothèque parlante des pensées écologiques, organisée pour aider à créer une pensée complexe et nuancée, à soutenir l'écriture de nouveaux récits, des alternatives concrètes et des projets collectifs.</p>
|
<p class="mb-3">Une bibliothèque parlante des pensées écologiques, organisée pour aider à créer une pensée complexe et nuancée, à soutenir l'écriture de nouveaux récits, des alternatives concrètes et des projets collectifs.</p>
|
||||||
<p class="mb-4" style="color:var(--nav-text-muted);font-size:0.8rem;">Projet open source, ouvert à toutes et à tous - <a href="https://bonpote.com/la-carte-des-pensees-ecologiques/" target="_blank" rel="noopener" style="text-decoration:underline;">article + carte FRACAS Bonpote V2</a>.</p>
|
<p class="mb-4" style="color:var(--nav-text-muted);font-size:0.8rem;">Projet open source, ouvert à toutes et à tous - <a href="https://bonpote.com/la-carte-des-pensees-ecologiques/" target="_blank" rel="noopener" style="text-decoration:underline;">article + carte FRACAS Bonpote V2</a>.</p>
|
||||||
<div class="flex flex-col gap-3">
|
<div class="flex flex-col gap-3">
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
<div class="mission-body">
|
<div class="mission-body">
|
||||||
<h2 id="mission-title" class="mission-title">{{ title }}</h2>
|
<h2 id="mission-title" class="mission-title">{{ title }}</h2>
|
||||||
|
<EchelleTete v-if="echelle" :echelle="echelle" compact @navigate="close" />
|
||||||
<slot>
|
<slot>
|
||||||
<p class="mission-text">
|
<p class="mission-text">
|
||||||
L'architecture est l'une des professions les plus complexes qui soit ; elle croise droit, technique, esthétique, économie, social, écologie — tout à la fois, tout simultanément, souvent sans filet. Paradoxalement, c'est aussi l'une des moins structurées sur le plan de l'entraide : peu de transmission horizontale, beaucoup d'isolement, une culture du chacun-pour-soi héritée d'une formation qui prépare à la compétition plus qu'à la coopération. On sort de l'école seul·e. On s'installe seul·e. On réinvente ce que d'autres ont déjà traversé.
|
L'architecture est l'une des professions les plus complexes qui soit ; elle croise droit, technique, esthétique, économie, social, écologie — tout à la fois, tout simultanément, souvent sans filet. Paradoxalement, c'est aussi l'une des moins structurées sur le plan de l'entraide : peu de transmission horizontale, beaucoup d'isolement, une culture du chacun-pour-soi héritée d'une formation qui prépare à la compétition plus qu'à la coopération. On sort de l'école seul·e. On s'installe seul·e. On réinvente ce que d'autres ont déjà traversé.
|
||||||
@@ -52,11 +53,15 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import type { EchelleId } from '~/utils/echelles'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
modelValue: boolean
|
modelValue: boolean
|
||||||
title?: string
|
title?: string
|
||||||
ctaLabel?: string
|
ctaLabel?: string
|
||||||
storageKey?: string
|
storageKey?: string
|
||||||
|
/** Tête d'échelle du deck (S / M / XL) affichée sous le titre. Absente sur /agences tant que l'arbitrage n° 1 n'est pas rendu. */
|
||||||
|
echelle?: EchelleId
|
||||||
}>(), {
|
}>(), {
|
||||||
title: "L'écosystème d'entraide architecte",
|
title: "L'écosystème d'entraide architecte",
|
||||||
ctaLabel: 'Explorer la carte',
|
ctaLabel: 'Explorer la carte',
|
||||||
|
|||||||
@@ -27,14 +27,6 @@
|
|||||||
Ce site tourne sur un VPS - un serveur privé loué en Europe - construit entièrement avec des logiciels open source, quasi gratuits. Pas de services Google, pas d'Amazon, pas de Microsoft dans la chaîne. C'est un choix délibéré : contrôler son infrastructure, c'est contrôler ses données.
|
Ce site tourne sur un VPS - un serveur privé loué en Europe - construit entièrement avec des logiciels open source, quasi gratuits. Pas de services Google, pas d'Amazon, pas de Microsoft dans la chaîne. C'est un choix délibéré : contrôler son infrastructure, c'est contrôler ses données.
|
||||||
</p>
|
</p>
|
||||||
<div class="badges-row">
|
<div class="badges-row">
|
||||||
<div class="badge">
|
|
||||||
<span class="badge-icon" aria-hidden="true">
|
|
||||||
<!-- Mistral logo placeholder -->
|
|
||||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><path d="M12 8v4l3 3"/></svg>
|
|
||||||
</span>
|
|
||||||
<span class="badge-label">IA souveraine</span>
|
|
||||||
<span class="badge-detail">Mistral AI, Paris - conforme RGPD ; pas de collecte ni de profiling ; aucun transfert hors UE</span>
|
|
||||||
</div>
|
|
||||||
<div class="badge">
|
<div class="badge">
|
||||||
<span class="badge-icon" aria-hidden="true">
|
<span class="badge-icon" aria-hidden="true">
|
||||||
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
|
||||||
|
|||||||
@@ -484,6 +484,7 @@
|
|||||||
title="Réseaux AEP — l'architecture qui s'engage"
|
title="Réseaux AEP — l'architecture qui s'engage"
|
||||||
ctaLabel="Explorer les 120 réseaux"
|
ctaLabel="Explorer les 120 réseaux"
|
||||||
storageKey="aep_reseaux_seen"
|
storageKey="aep_reseaux_seen"
|
||||||
|
echelle="M"
|
||||||
>
|
>
|
||||||
<p class="mission-text">
|
<p class="mission-text">
|
||||||
Cette carte rassemble <strong>120 réseaux, collectifs et agences</strong> qui pratiquent une architecture engagée — écologique, politique, biorégionale. Ce ne sont pas seulement des agences « vertes » : ce sont celles et ceux qui assument des positions, refusent des projets, expérimentent des modèles de gouvernance, mettent leurs ressources et leurs savoirs en commun.
|
Cette carte rassemble <strong>120 réseaux, collectifs et agences</strong> qui pratiquent une architecture engagée — écologique, politique, biorégionale. Ce ne sont pas seulement des agences « vertes » : ce sont celles et ceux qui assument des positions, refusent des projets, expérimentent des modèles de gouvernance, mettent leurs ressources et leurs savoirs en commun.
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
<div class="lock-header">
|
<div class="lock-header">
|
||||||
<h1>Co-développement</h1>
|
<h1>Co-développement</h1>
|
||||||
<p class="lock-subtitle">Entraide entre pairs</p>
|
<p class="lock-subtitle">Entraide entre pairs</p>
|
||||||
|
<EchelleTete echelle="M" compact :contribuer="false" class="lock-echelle" />
|
||||||
<p class="lock-intro">Cet espace est un cercle. Pour entrer, il y a un mot.</p>
|
<p class="lock-intro">Cet espace est un cercle. Pour entrer, il y a un mot.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -104,6 +105,13 @@ async function submit() {
|
|||||||
margin: 0 0 1rem;
|
margin: 0 0 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.lock-echelle {
|
||||||
|
text-align: left;
|
||||||
|
padding: var(--space-md);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
background: var(--bg-alt);
|
||||||
|
}
|
||||||
|
|
||||||
.lock-intro {
|
.lock-intro {
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
color: var(--nav-text-muted, #6b7280);
|
color: var(--nav-text-muted, #6b7280);
|
||||||
|
|||||||
@@ -391,6 +391,7 @@
|
|||||||
<MissionPopup
|
<MissionPopup
|
||||||
:modelValue="missionOpen"
|
:modelValue="missionOpen"
|
||||||
@update:modelValue="missionOpen = $event"
|
@update:modelValue="missionOpen = $event"
|
||||||
|
echelle="M"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h1 class="outils-header__title">Outils</h1>
|
<h1 class="outils-header__title">Outils</h1>
|
||||||
|
<EchelleTete echelle="S" :contribuer="false" />
|
||||||
<p class="outils-header__intro">
|
<p class="outils-header__intro">
|
||||||
En tant qu'architecte, on jongle avec une multitude d'outils — simulation, dessin,
|
En tant qu'architecte, on jongle avec une multitude d'outils — simulation, dessin,
|
||||||
calcul, recherche, partage. Les mutualiser, se conseiller dessus, savoir lequel
|
calcul, recherche, partage. Les mutualiser, se conseiller dessus, savoir lequel
|
||||||
|
|||||||
+4
-1
@@ -52,7 +52,10 @@ const TABS = [
|
|||||||
{ id: 'references', label: 'Références (bibliothèque)' },
|
{ id: 'references', label: 'Références (bibliothèque)' },
|
||||||
] as const
|
] as const
|
||||||
|
|
||||||
const activeTab = ref<string>('ecosysteme')
|
// ?categorie=outils (lien « Proposer une ressource » des têtes d'échelle) présélectionne l'onglet
|
||||||
|
const route = useRoute()
|
||||||
|
const categorie = String(route.query.categorie ?? '')
|
||||||
|
const activeTab = ref<string>(TABS.some(t => t.id === categorie) ? categorie : 'ecosysteme')
|
||||||
const success = ref(false)
|
const success = ref(false)
|
||||||
|
|
||||||
function onSuccess() {
|
function onSuccess() {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
<div class="taff-header">
|
<div class="taff-header">
|
||||||
<div class="taff-header-inner">
|
<div class="taff-header-inner">
|
||||||
<h1 class="taff-title">Trouver du taf en archi</h1>
|
<h1 class="taff-title">Trouver du taf en archi</h1>
|
||||||
|
<EchelleTete echelle="S" :contribuer="false" class="taff-echelle-tete" />
|
||||||
<p class="taff-subtitle">
|
<p class="taff-subtitle">
|
||||||
Annuaire critique des plateformes de mise en relation et d'appels d'offres,
|
Annuaire critique des plateformes de mise en relation et d'appels d'offres,
|
||||||
pour les <strong>architectes indépendants</strong> — 70 % de la profession et sa part la plus précaire économiquement.
|
pour les <strong>architectes indépendants</strong> — 70 % de la profession et sa part la plus précaire économiquement.
|
||||||
@@ -296,7 +297,7 @@
|
|||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<p class="taff-chat-footer-note">Propulsé par Mistral · 20 questions/jour</p>
|
<p class="taff-chat-footer-note">20 questions/jour</p>
|
||||||
</div>
|
</div>
|
||||||
</Transition>
|
</Transition>
|
||||||
</Teleport>
|
</Teleport>
|
||||||
@@ -649,6 +650,10 @@ const parsedDescription = computed(() => {
|
|||||||
|
|
||||||
.taff-header { padding: 2.5rem 1.5rem 1.5rem; border-bottom: 1px solid var(--nav-bg-alt); text-align: center; }
|
.taff-header { padding: 2.5rem 1.5rem 1.5rem; border-bottom: 1px solid var(--nav-bg-alt); text-align: center; }
|
||||||
.taff-header-inner { max-width: 680px; margin: 0 auto; }
|
.taff-header-inner { max-width: 680px; margin: 0 auto; }
|
||||||
|
/* En-tête Jobs centré : la tête d'échelle suit. */
|
||||||
|
.taff-echelle-tete { text-align: center; margin-bottom: var(--space-md); }
|
||||||
|
.taff-echelle-tete :deep(.echelle-tete__kicker),
|
||||||
|
.taff-echelle-tete :deep(.echelle-tete__mots) { justify-content: center; }
|
||||||
.taff-title { font-size: 1.875rem; font-weight: 800; color: var(--nav-text); margin-bottom: 0.5rem; letter-spacing: -0.02em; }
|
.taff-title { font-size: 1.875rem; font-weight: 800; color: var(--nav-text); margin-bottom: 0.5rem; letter-spacing: -0.02em; }
|
||||||
.taff-subtitle { font-size: 0.9375rem; color: var(--nav-text-muted); line-height: 1.6; margin-bottom: 0.625rem; }
|
.taff-subtitle { font-size: 0.9375rem; color: var(--nav-text-muted); line-height: 1.6; margin-bottom: 0.625rem; }
|
||||||
.taff-cible { font-size: 0.875rem; color: var(--nav-text-muted); line-height: 1.55; margin-bottom: 1rem; font-style: italic; }
|
.taff-cible { font-size: 0.875rem; color: var(--nav-text-muted); line-height: 1.55; margin-bottom: 1rem; font-style: italic; }
|
||||||
|
|||||||
@@ -0,0 +1,68 @@
|
|||||||
|
/**
|
||||||
|
* Les trois échelles du deck du 23/09/2026 (conférence AEP), slides 15 à 18.
|
||||||
|
* Texte repris mot pour mot : c'est la tête de chaque onglet (directive Jules du 25/09, point 2).
|
||||||
|
* Source unique : la future nav S / M / XL (arbitrage n° 1, table R) lira aussi ce fichier.
|
||||||
|
*/
|
||||||
|
export type EchelleId = 'S' | 'M' | 'XL'
|
||||||
|
|
||||||
|
export interface Echelle {
|
||||||
|
id: EchelleId
|
||||||
|
titre: string
|
||||||
|
sousTitre?: string
|
||||||
|
mots: string[]
|
||||||
|
phrase: string
|
||||||
|
/** Catégorie de /proposer présélectionnée par le lien de contribution. */
|
||||||
|
categorieProposer: 'ecosysteme' | 'reseau' | 'jobs' | 'outils' | 'references'
|
||||||
|
}
|
||||||
|
|
||||||
|
export const ECHELLES: Record<EchelleId, Echelle> = {
|
||||||
|
S: {
|
||||||
|
id: 'S',
|
||||||
|
titre: 'Partir de soi',
|
||||||
|
sousTitre: "pour s'émanciper",
|
||||||
|
mots: [
|
||||||
|
'quête de sens',
|
||||||
|
'où habiter, avec qui',
|
||||||
|
'gagner sa vie',
|
||||||
|
'santé mentale',
|
||||||
|
'mener ses projets',
|
||||||
|
'naviguer avec soi',
|
||||||
|
'les compétences psychosociales',
|
||||||
|
],
|
||||||
|
phrase: 'Des ressources, des méthodes, des pairs : matériel et mutualisé.',
|
||||||
|
categorieProposer: 'outils',
|
||||||
|
},
|
||||||
|
M: {
|
||||||
|
id: 'M',
|
||||||
|
titre: 'La communauté',
|
||||||
|
mots: [
|
||||||
|
'entraide',
|
||||||
|
'mutualisation',
|
||||||
|
'appartenance',
|
||||||
|
'être vu, soutenu',
|
||||||
|
'traverser les creux',
|
||||||
|
'accomplissement',
|
||||||
|
'le codev',
|
||||||
|
],
|
||||||
|
phrase: "C'est le groupe qui remet un individu debout. L'affinité fait tenir, la confrontation fait avancer.",
|
||||||
|
categorieProposer: 'ecosysteme',
|
||||||
|
},
|
||||||
|
XL: {
|
||||||
|
id: 'XL',
|
||||||
|
titre: 'Contribuer',
|
||||||
|
mots: [
|
||||||
|
'contribution',
|
||||||
|
'affiliation, filiation',
|
||||||
|
'identité',
|
||||||
|
'sens',
|
||||||
|
'de nouveaux récits',
|
||||||
|
'un nouveau contrat social',
|
||||||
|
'la médecine du corps social',
|
||||||
|
],
|
||||||
|
phrase: 'La bibliothèque, les récits, la filiation entre projets.',
|
||||||
|
categorieProposer: 'references',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Slide 15, commune aux trois échelles. */
|
||||||
|
export const ECHELLES_CADRE = "Trois échelles, imbriquées. Pas un escalier : ça circule dans les deux sens. Entrez par celle qui presse."
|
||||||
Reference in New Issue
Block a user