Discover the captivating world of acrobatics in Châteaubriant in 2025

plongez dans l'univers fascinant des voltigeurs à châteaubriant en 2025. assistez à des performances époustouflantes et découvrez la passion et l'engagement de ces artistes aériens lors d'un événement inoubliable. ne manquez pas cette expérience unique qui vous transportera dans le monde de la voltige !

In Châteaubriant, 2025 promises to be a year full of excitement and sporting adventure with the Voltigeurs, a true and dynamic emblem of this vibrant town. More than just a team, they embody passion, performance, and innovation in the National 2 football landscape. Under the guidance of a renewed and ambitious coaching staff, the Voltigeurs continue their quest for success while captivating their fans with a high-quality spectacle that blends aeronautical sporting technique with on-field commitment. Between intensive training, thrilling matches, and strategic recruitment, discover how this club is making its mark in the captivating world of local sport, while building a loyal community that follows the rhythm of its exhilarating performance.

Voltigeurs de Châteaubriant: A team buzzing with energy for the 2025 season The 2025 season marks a turning point for Voltigeurs de Châteaubriant, competing in National 2. Under the leadership of Michel Audrain, appointed coach at the beginning of the year, the club is banking on a renewed dynamic, with the departure of some members and the arrival of new, dedicated players committed to collective success. ✨ A new playing strategy combining tight defenses and aerial attacks⚽ Targeted recruitment to strengthen key positions, notably the search for a high-performing goalkeeper

  • 🛫 Emphasis on tactical rigor inspired by aeronautical principles to optimize movement
  • 👥 Development of an experienced and motivated coaching staff around Michel Audrain
  • Key Event 🔥
  • Date 📅
Impact on the Voltigeurs 💪Appointment of Michel Audrain as coachJune 2025
Injection of new ambition and experienceOpening match against Angers SCO (B)July 2025
Start of preseason training and team buildingSelection of players for the French national team6 months later
Recognition of local talentThe club, visible on platforms such astheir official website

or Made in Foot Ouest-France , demonstrates growing support, reflecting genuine popular enthusiasm. https://www.youtube.com/watch?v=Ys_e2FRNAO8

A strong relationship between local tradition and sporting innovation

Châteaubriant blends its rich history with modernity by anchoring the Voltigeurs in a spirit that is both respectful of tradition and committed to innovation. This balance is manifested in:

🛩️ The integration of technical elements inspired by aeronautics into physical preparation and game strategy

  • 🎯 The staff’s meticulous approach to optimizing individual and collective performance
  • 📸 Detailed and interactive media coverage on social networks and official platforms
  • 📅 Local events and competitions that promote community involvement around the club
  • Aspect 🔍
DescriptionConcrete Example 💡Aerodynamic Innovation
Training routines based on fluidity and anticipation of movementsPrograms based on video analysis and motion sensorsStrategic choices
Adaptation to the playing style of opponents through analytical dataMatch against Angers SCO with real-time tactical adjustmentsLocal involvement
Regular organization of meetings and events to motivate the communityMatches with more than 10,000 spectators, such as the home game against Bordeauxhttps://www.youtube.com/watch?v=zHrzdLlFrLw
Notable performances in the National 2 championship

In the midst of a qualifying season, the Voltigeurs are displaying intense energy against renowned opponents, with:

⚡ Strategic victories and thrilling matches that electrify the fans

Observation 📌Match against Saint-MaloUS Saint-Malo0-1 Loss
Notable performance despite the defeat on a difficult pitchHome Match against BordeauxGirondins de Bordeaux2-1 Victory
A comeback and effective tactics in front of a large crowdFriendly Match against Angers SCO (B)Angers SCO Reserves1-1 Draw
A pre-season phase demonstrating the work in progressThis journey is marked by results visible onLiveFootor

Actu.fr , providing well-deserved exposure for the team’s hard work. /* Container styling */ #voltigeurs-stats { max-width: 800px;margin: 1em self;

font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif; color: #222; background: #f9f9fb; border-radius: 12px; box-shadow: 0 3px 8px rgb(0 0 0 / 0.15); overflow:hidden; user-select:none; } #voltigeurs-stats h2 { background: #004080; color: #fff; margin: 0; padding: 1rem; font-weight: 700; font-size: 1.5rem; text-align: center; } table { width: 100%; border-collapse: collapse; background:white; } thead tr { background: #e1eaff; } thead th { text-align: left; padding: 0.75rem 1rem; font-weight: 600; font-size: 1.1rem; } tbody tr { border-bottom: 1px solid #ddd; cursor: pointer; transition: background-color 0.25s ease; } tbody tr:focus-visible, tbody tr:hover { background-color: #d8e4ff; outline:none; } tbody td { padding: 0.7rem 1rem; font-size: 1rem; } /* Tooltip style */ #tooltip { position: absolute; pointer-events: none; background: #004080cc; color: #fff; padding: 0.5rem 0.75rem; border-radius: 6px; font-size: 0.9rem; max-width: 300px; z-index: 1000; box-shadow: 0 0 8px rgb(0 64 128 / 0.7); transition: opacity 0.15s ease; opacity: 0; } /* Chart container */ #stats-chart { padding: 1rem 1rem 1.5rem; } #stats-chart svg { width: 100%; height: 300px; display:block; } /* Responsive */ @media (max-width: 600px) { #voltigeurs-stats { margin: 0.5em 1em; } thead th, tbody td { padding: 0.5rem 0.7rem; font-size: 0.9rem; } } // Internationalized text strings for easy editing

const i18n = { title: ‘Key Statistics for the 2025 Voltigeurs’, tooltipPrefix: ‘Detail: ‘, chartYAxisLabel: ‘Values’, chartXAxisLabel: ‘Aspects’, noData: ‘No data available’, }; // Data provided (from ) // Structure: // { // ‘title’: string, // } const data = { title: ‘Key Statistics for the 2025 Voltigeurs’, rows: [ { Aspect: ‘Games Played’, Stat: ’15’ }, { Aspect: ‘Wins’, Stat: ‘7’ }, { Aspect: ‘Draws’, Stat: ‘5’ }, { Aspect: ‘Losses’, Stat: ‘3’ }, { Aspect: ‘Goals Scored’, Stat: ’20’ }, { Aspect: ‘Goals Conceded’, Stat: ’12’ } ] }; // Select DOM elements const container = document.getElementById(‘voltigeurs-stats’); const titleEl = container.querySelector(‘h2’); const theadRow = container.querySelector(‘thead tr’); const tbody = container.querySelector(‘tbody’); const chartContainer = document.getElementById(‘stats-chart’); const tooltip = document.getElementById(‘tooltip’); // Initialize component function init() { // Set title text titleEl.textContent = i18n.title; // Build table header theadRow.innerHTML = ”; data.headers.forEach(headerText => { const th = document.createElement(‘th’); th.textContent = headerText; th.scope = ‘col’; theadRow.appendChild(th); }); // Build table body rows tbody.innerHTML = ”; data.rows.forEach((row, idx) => { const tr = document.createElement(‘tr’); tr.setAttribute(‘tabindex’, ‘0’); // make rows keyboard-focusable for accessibility tr.setAttribute(‘role’, ‘row’); // Accessibility: associate tooltip described by tr.setAttribute(‘aria-describedby’, ‘tooltip’); // Cell aspect const tdAspect = document.createElement(‘td’); tdAspect.textContent = row.Aspect; tdAspect.setAttribute(‘role’, ‘rowheader’); tr.appendChild(tdAspect); // Cell statistics const tdStat = document.createElement(‘td’); tdStat.textContent = row.Statistic; tdStat.setAttribute(‘aria-label’, `${row.Aspect}: ${row.Statistic}`); tr.appendChild(tdStat); // Mouse & keyboard event listeners for tooltip tr.addEventListener(‘mouseenter’, ev => showTooltip(ev, row)); tr.addEventListener(‘mouseleave’, hideTooltip); tr.addEventListener(‘focus’, ev => showTooltip(ev, row)); tr.addEventListener(‘blur’, hideTooltip); tbody.appendChild(tr); }); // Draw chart drawBarChart(data.rows); } /** * Show tooltip near target element with detailed info * @param {Event} ev – Mouse or keyboard event * @param {Object} row – One data row */ function showTooltip(ev, row) { const aspect = row.Aspect; const stat = row.Statistics; tooltip.textContent = i18n.tooltipPrefix + aspect + ‘:’ + stat; tooltip.setAttribute(‘aria-hidden’, ‘false’); // Position tooltip near the focused/hovered row // Get bounding rect of target element const targetRect = ev.target.getBoundingClientRect(); const scrollTop = window.pageYOffset || document.documentElement.scrollTop; const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft; // Calculate position: right side and vertically centered relative to the row const top = targetRect.top + scrollTop + targetRect.height / 2 – tooltip.offsetHeight / 2; const left = targetRect.right + scrollLeft + 12; // Adjust horizontal position if tooltip goes off screen const maxLeft = document.documentElement.clientWidth + scrollLeft – tooltip.offsetWidth – 8; tooltip.style.top = top + ‘px’; tooltip.style.left = (left > maxLeft ? targetRect.left + scrollLeft – tooltip.offsetWidth – 12: left) + ‘px’; // Show tooltip tooltip.style.opacity = ‘1’; } /** * Hide tooltip and update aria-hidden */ function hideTooltip() { tooltip.style.opacity = ‘0’; tooltip.setAttribute(‘aria-hidden’, ‘true’); } /** * Draw a simple bar chart using SVG to visualize statistics * @param {Array} rows – Array of objects with Aspect and Statistics as strings */ function drawBarChart(rows) { // Clear chart container chartContainer.innerHTML = ”; if (!rows || rows.length === 0) { chartContainer.textContent = i18n.noData; return; } // Convert statistics to numbers & find max value const numericData = rows.map(r => ({ aspect: r.Aspect, value: +r.Statistic || 0, })); const maxVal = Math.max(…numericData.map(d => d.value), 1); // Dimensions const margin = { top: 25, right: 25, bottom: 70, left: 50 }; const width = chartContainer.clientWidth || 700; const height = 300; const barWidth = (width – margin.left – margin.right) / numericData.length * 0.7; const gap = ((width – margin.left – margin.right) / numericData.length) * 0.3; // Create SVG namespace element const svgns = “http://www.w3.org/2000/svg”; const svg = document.createElementNS(svgns, “svg”); svg.setAttribute(“width”, width); svg.setAttribute(“height”, height); svg.setAttribute(“role”, “img”); svg.setAttribute(“aria-labelledby”, “chart-title”); svg.setAttribute(“tabindex”, “0”); // Title for screen readers only const title = document.createElementNS(svgns, ‘title’); title.id = ‘chart-title’; title.textContent = i18n.title + ‘ – bar chart’; svg.appendChild(title); // Y axis lines and labels const yTicks = 5; for(let i = 0; i { const barHeight = (d.value / maxVal) * (height – margin.top – margin.bottom); const x = margin.left + i * (barWidth + gap) + gap / 2; const y = height – margin.bottom – barHeight; // Bar rect const rect = document.createElementNS(svgns, ‘rect’); rect.setAttribute(‘x’, x); rect.setAttribute(‘y’, y); rect.setAttribute(‘width’, barWidth); rect.setAttribute(‘height’, barHeight); rect.setAttribute(‘fill’, ‘#004080’); rect.setAttribute(‘tabindex’, ‘0’); rect.setAttribute(‘aria-label’, d.aspect + ‘: ‘ + d.value); rect.addEventListener(‘mouseenter’, e => { tooltip.textContent = i18n.tooltipPrefix + d.aspect + ‘ : ‘ + d.value; tooltip.setAttribute(‘aria-hidden’, ‘false’); const rectPos = rect.getBoundingClientRect(); const scrollTop = window.pageYOffset || document.documentElement.scrollTop; const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft; tooltip.style.top = (rectPos.top + scrollTop – tooltip.offsetHeight – 10) + ‘px’; tooltip.style.left = (rectPos.left + scrollLeft) + ‘px’; tooltip.style.opacity = ‘1’; }); rect.addEventListener(‘mouseleave’, () => { tooltip.style.opacity = ‘0’; tooltip.setAttribute(‘aria-hidden’, ‘true’); }); rect.addEventListener(‘focus’, e => { tooltip.textContent = i18n.tooltipPrefix + d.aspect + ‘ : ‘ + d.value; tooltip.setAttribute(‘aria-hidden’, ‘false’); const rectPos = rect.getBoundingClientRect(); const scrollTop = window.pageYOffset || document.documentElement.scrollTop; const scrollLeft = window.pageXOffset || document.documentElement.scrollLeft; tooltip.style.top = (rectPos.top + scrollTop – tooltip.offsetHeight – 10) + ‘px’; tooltip.style.left = (rectPos.left + scrollLeft) + ‘px’; tooltip.style.opacity = ‘1’; }); rect.addEventListener(‘blur’, () => { tooltip.style.opacity = ‘0’; tooltip.setAttribute(‘aria-hidden’, ‘true’); }); svg.appendChild(rect); // const labelText = document.createElementNS(svgns, ‘text’); labelText.setAttribute(‘x’, x + (barWidth/2)); labelText.setAttribute(‘y’, height – margin.bottom + 16); labelText.setAttribute(‘font-size’, ’11px’); labelText.setAttribute(‘fill’, ‘#222’); labelText.setAttribute(‘text-anchor’, ‘middle’); labelText.setAttribute(‘transform’, `translate(0,0) rotate(25 ${x + (barWidth/2)} ${height – margin.bottom + 16})`); labelText.textContent = d.aspect; svg.appendChild(labelText); }); // Y-axis label const yAxisLabel = document.createElementNS(svgns, ‘text’); yAxisLabel.setAttribute(‘x’, margin.left / 3); yAxisLabel.setAttribute(‘y’, margin.top + (height – margin.top – margin.bottom)/2); yAxisLabel.setAttribute(‘font-size’, ’14px’); yAxisLabel.setAttribute(‘fill’, ‘#004080’); yAxisLabel.setAttribute(‘text-anchor’, ‘middle’); yAxisLabel.setAttribute(‘transform’, `rotate(-90 ${margin.left/3} ${margin.top + (height – margin.top – margin.bottom)/2})`); yAxisLabel.textContent = i18n.chartYAxisLabel; svg.appendChild(yAxisLabel); // X-axis label const xAxisLabel = document.createElementNS(svgns, ‘text’); xAxisLabel.setAttribute(‘x’, margin.left + (width – margin.left – margin.right)/2); xAxisLabel.setAttribute(‘y’, height – 10); xAxisLabel.setAttribute(‘font-size’, ’14px’); xAxisLabel.setAttribute(‘fill’, ‘#004080’); xAxisLabel.setAttribute(‘text-anchor’, ‘middle’); xAxisLabel.textContent = i18n.chartXAxisLabel; svg.appendChild(xAxisLabel); chartContainer.appendChild(svg); } // Initialize on DOM ready if (document.readyState === ‘loading’) { document.addEventListener(‘DOMContentLoaded’, init);

} else {

init();

  • } A passionate community at the heart of the event
  • The enthusiasm surrounding the Voltigeurs goes beyond the purely sporting realm. The town of Châteaubriant pulsates to the rhythm of the matches, amplified by:
  • 🎉 Major local events that bring together all sports fans
🔥 A vibrant program throughout the season with innovative activities📣 Strong fan engagement on social media and at matches🪂 The “Voltigeur” ​​culture promoted through initiatives in schools and sports clubs
Event Type 🎪Frequency ⏰Description
Pre-match activitiesAt every matchShows, games, and workshops for all ages
Meet and greets with playersMonthlyAutograph sessions and passionate discussions

Campaigns in schools Quarterly Introduction to football and the club’s values

These initiatives enhance the club’s image, visible on

  • their official website and covered by numerous specialized media outlets, demonstrating a renewed energy around the Voltigeurs. FAQ about the Voltigeurs de Châteaubriant
    Q: Where can I follow the Voltigeurs’ news in real time? A: On theirofficial website
  • and platforms like Made in Foot Ouest-France
    Q:
  • Who is the Voltigeurs’ coach for the 2025 season?
    A: Michel Audrain, a former player and experienced coach, leads the team with determination.
  • Q:
    Q: How do the Voltigeurs incorporate innovation into their game?
  • A: Through aerodynamic and tactical methods inspired by aeronautics, optimizing performance and fluidity.
    Q: What are some recent notable results?
cc-castelbriantais
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.