Horizon Argent

À propos d’Horizon Argent

Mission

Connecter la robotique à la vie quotidienne des îles: énergie, mobilité, environnement et artisanat. Nous privilégions la simplicité, le coût maîtrisé et la sécurité.

Histoire

Né d’ateliers locaux, Horizon Argent a structuré des contenus modulaires et des projets concrets: irrigation automatisée, tri sélectif intelligent et balises météo communautaires.

Valeurs

  • Accessibilité: parcours courts et progressifs.
  • Utilité: projets au service du quotidien.
  • Ouverture: outils libres quand c’est possible.
  • Responsabilité: sécurité et frugalité énergétique.

Équipe

Formateurs et formatrices en électronique, programmation, et pédagogie par projet. Nous travaillons avec des partenaires éducatifs et des ateliers de fabrication.

Impact local (indicateur expérimental)

Suivez notre indicateur synthétique: taux d’emploi des compétences acquises, projets réutilisables, et rayonnement communautaire.

Indice global 62

Connexion

Créer un compte

Thème du site

'), fetch('footer.html').then(r=>r.text()).catch(()=>' ') ]); document.getElementById('site-header').innerHTML=h; document.getElementById('site-footer').innerHTML=f; bindHeaderActions(); initCookieBanner(); } function bindHeaderActions(){ document.querySelectorAll('[data-open]').forEach(b=>b.addEventListener('click',()=>openModal(b.getAttribute('data-open')))); document.querySelectorAll('[data-theme]').forEach(b=>b.addEventListener('click',()=>{const t=b.getAttribute('data-theme');window.__setTheme?.(t)})); document.addEventListener('keydown',e=>{ if(e.key==='Escape'){document.querySelectorAll('dialog[open]').forEach(d=>d.close());} }); } function openModal(sel){ const d=document.querySelector(sel); if(d&&d.showModal)d.showModal(); } document.addEventListener('click',e=>{ if(e.target.matches('dialog [data-close]')) e.target.closest('dialog')?.close(); if(e.target.matches('#cookie-banner [data-close]')) document.getElementById('cookie-banner')?.classList.add('hidden'); }); function initCookieBanner(){ const b=document.getElementById('cookie-banner'); if(!b) return; if(localStorage.getItem('cookieConsent')!=='1'){b.classList.remove('hidden');} b.querySelector('[data-accept]')?.addEventListener('click',()=>{localStorage.setItem('cookieConsent','1');b.classList.add('hidden');}); } (function impactControl(){ const val=document.getElementById('impact-val'); const bar=document.getElementById('impact-bar'); const detail=document.getElementById('impact-detail'); const btnCal=document.getElementById('btn-calibrate'); const metrics={skills:60,projects:65,community:62}; const saved = JSON.parse(localStorage.getItem('impactData')||'null'); let n = 62; function computeIndex(){ return Math.round(metrics.skills*0.4 + metrics.projects*0.35 + metrics.community*0.25); } function render(target){ const current = typeof target==='number'?target:n; val.textContent=current; bar.style.width=current+'%'; bar.classList.toggle('bg-emerald-600', current>=50); bar.classList.toggle('bg-amber-500', current<50 && current>=25); bar.classList.toggle('bg-rose-600', current<25); } if(saved && typeof saved.n==='number' && saved.m){ metrics.skills = +saved.m.skills||metrics.skills; metrics.projects = +saved.m.projects||metrics.projects; metrics.community = +saved.m.community||metrics.community; n = Math.max(0,Math.min(100,+saved.n)); document.querySelectorAll('[data-metric]').forEach(r=>{ const k=r.getAttribute('data-metric'); if(metrics[k]!=null){r.value=metrics[k];} }); document.querySelectorAll('[data-metric-val]').forEach(s=>{ const k=s.getAttribute('data-metric-val'); if(metrics[k]!=null){s.textContent=metrics[k];} }); }else{ n = computeIndex(); } render(n); function persist(){ localStorage.setItem('impactData', JSON.stringify({n, m:metrics})); } document.querySelectorAll('[data-impact]').forEach(btn=>btn.addEventListener('click',()=>{ const dir = btn.dataset.impact==='up'?+5:-5; n = Math.max(0,Math.min(100,n+dir)); render(n); persist(); })); btnCal?.addEventListener('click',()=>{ const isHidden = detail.classList.contains('hidden'); detail.classList.toggle('hidden',!isHidden?true:false); btnCal.setAttribute('aria-expanded', String(isHidden)); }); document.querySelectorAll('[data-metric]').forEach(input=>{ input.addEventListener('input',()=>{ const k=input.getAttribute('data-metric'); metrics[k]=+input.value; const s=document.querySelector(`[data-metric-val="${k}"]`); if(s) s.textContent=metrics[k]; n=computeIndex(); render(n); persist(); }); }); const sec=document.getElementById('impact'); sec.addEventListener('keydown',(e)=>{ if(e.key==='ArrowUp'){e.preventDefault();n=Math.min(100,n+1);render(n);persist();} if(e.key==='ArrowDown'){e.preventDefault();n=Math.max(0,n-1);render(n);persist();} },{passive:false}); })(); (function tocEnhancements(){ const links=[...document.querySelectorAll('[data-toc]')]; const map = new Map(links.map(a=>[a.getAttribute('data-toc'),a])); links.forEach(a=>{ a.addEventListener('click',e=>{ e.preventDefault(); const id=a.getAttribute('href').slice(1); const el=document.getElementById(id); if(el){el.scrollIntoView({behavior:'smooth',block:'start'});history.replaceState(null,'','#'+id);} }); }); const obs=new IntersectionObserver((entries)=>{ entries.forEach(en=>{ const id=en.target.id; const l=map.get(id); if(!l) return; if(en.isIntersecting){ links.forEach(x=>x.classList.remove('text-blue-900','dark:text-blue-300','font-extrabold')); l.classList.add('text-blue-900','dark:text-blue-300','font-extrabold'); } }); },{rootMargin:'-40% 0px -55% 0px',threshold:0.01}); ['mission','histoire','valeurs','equipe','impact'].forEach(id=>{ const el=document.getElementById(id); if(el) obs.observe(el); }); })(); loadPartials();