GET https://test.fitmetrics.ch/fr/exercice/68f3fc66425d3-shadow-boxing

Components

20 Twig Components
117 Render Count
639 ms Render Time
84.5 MiB Memory Usage

Components

Name Metadata Render Count Render Time
media:icon
"App\Twig\Components\Media\Icon"
components/media/icon.html.twig
67 4.35ms
ui:badge
"App\Twig\Components\Ui\Badge"
components/ui/badge.html.twig
16 3.06ms
faq
"App\Twig\Components\Ui\FaqComponent"
components/ui/faq.html.twig
5 1.46ms
raw-faq
"App\Twig\Components\Ui\RawFaqComponent"
components/ui/raw-faq.html.twig
5 0.44ms
utils:theme-switcher
[Anonymous]
components/utils/theme-switcher.html.twig
3 1.63ms
ad:square:fluid
"App\Twig\Components\Ad\AdSquareFluid"
components/ad/square-fluid.html.twig
3 0.62ms
app:lang-selector
"App\Twig\Components\App\LangSelector"
components/app/lang-selector.html.twig
2 0.63ms
app:page-sharer
"App\Twig\Components\App\PageSharer"
components/app/page-sharer.html.twig
2 4.62ms
ui:editor-render
"App\Twig\Components\Ui\Editor\EditorRender"
components/ui/editor/render.html.twig
2 0.95ms
app:loading_spinner
"App\Twig\Components\App\LoadingSpinner"
components/app/loading-spinner.html.twig
2 0.93ms
menu:main
"App\Twig\Components\Menu\MainMenu"
components/menu/main.html.twig
1 41.73ms
menu:connexion-menu
"App\Twig\Components\Menu\ConnexionMenu"
components/menu/user-menu.html.twig
1 11.72ms
menu:breadcrumb
"App\Twig\Components\Menu\Breadcrumb"
components/menu/breadcrumb.html.twig
1 0.57ms
ad:banner
"App\Twig\Components\Ad\AdBanner"
components/ad/banner.html.twig
1 0.44ms
media:video
"App\Twig\Components\Media\Video"
components/media/video.html.twig
1 0.38ms
anatomy:avatar
"App\Twig\Components\Anatomy\Avatar"
components/anatomy/avatar.html.twig
1 577.46ms
training:difficulty-badge
"App\Twig\Components\Training\DifficultyBadge"
components/training/difficulity-badge.html.twig
1 0.84ms
ui:widget-embed
"App\Twig\Components\Ui\WidgetEmbed"
components/ui/widget_embed.html.twig
1 2.48ms
ad:wide-skyscraper
"App\Twig\Components\Ad\AdWideSkyscraper"
components/ad/wide-skyscraper.html.twig
1 1.08ms
ad:horizontal:fluid
"App\Twig\Components\Ad\AdHorizontalFluid"
components/ad/horizontal-fluid.html.twig
1 0.84ms

Render calls

menu:main App\Twig\Components\Menu\MainMenu 74.5 MiB 41.73 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Menu\MainMenu {#5826
  -routingManager: App\BusinessLogic\Training\Exercise\Url\ExerciseRoutingManager {#208 …}
  -em: Doctrine\ORM\EntityManager {#550 …}
  -cache: Symfony\Component\Cache\Adapter\TraceableAdapter {#205 …}
  -kernel: App\Kernel {#14 …}
  -mediaManager: App\BusinessLogic\Media\Manager\MediaManager {#214 …}
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.42 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "header--logo-dark header--logo dark:hidden h-[80px] w-[130px] max-w-[130px]"
  "data-front--header-target" => "logoDark"
]
Attributes
[
  "class" => "header--logo-dark header--logo dark:hidden h-[80px] w-[130px] max-w-[130px]"
  "data-front--header-target" => "logoDark"
]
Component
App\Twig\Components\Media\Icon {#5873
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "header--logo-white header--logo hidden dark:block h-[80px] w-[130px] max-w-[130px]"
  "data-front--header-target" => "logoWhite"
]
Attributes
[
  "class" => "header--logo-white header--logo hidden dark:block h-[80px] w-[130px] max-w-[130px]"
  "data-front--header-target" => "logoWhite"
]
Component
App\Twig\Components\Media\Icon {#5884
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
utils:theme-switcher
[Anonymous]
68.5 MiB 1.14 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#5935
  -props: [
    "class" => "max-w-fit"
  ]
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "block header--logo-dark header--logo w-full dark:hidden h-[50px] scale-150"
  "data-front--header-target" => "logoDark"
]
Attributes
[
  "class" => "block header--logo-dark header--logo w-full dark:hidden h-[50px] scale-150"
  "data-front--header-target" => "logoDark"
]
Component
App\Twig\Components\Media\Icon {#5950
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "hidden header--logo-white header--logo w-full dark:block h-[50px] scale-150"
  "data-front--header-target" => "logoWhite"
]
Attributes
[
  "class" => "hidden header--logo-white header--logo w-full dark:block h-[50px] scale-150"
  "data-front--header-target" => "logoWhite"
]
Component
App\Twig\Components\Media\Icon {#6000
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 ms
Input props
[
  "name" => "search"
  "class" => "h-7 w-7 mr-4 fill-current"
]
Attributes
[
  "class" => "h-7 w-7 mr-4 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6028
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "search"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "flexed-biceps"
  "class" => "h-7 w-7 mr-4 fill-current"
]
Attributes
[
  "class" => "h-7 w-7 mr-4 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6044
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "flexed-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "barbell"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6068
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "barbell"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.04 ms
Input props
[
  "name" => "category"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6092
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "category"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "fire"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6116
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fire"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "discipline "
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6140
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "discipline "
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "stats-chart"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6164
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "stats-chart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.03 ms
Input props
[
  "name" => "latest"
  "class" => "h-7 w-7 mr-4 fill-current"
]
Attributes
[
  "class" => "h-7 w-7 mr-4 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6188
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "latest"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.05 ms
Input props
[
  "name" => "random"
  "class" => "h-8 w-8 mr-3 fill-current"
]
Attributes
[
  "class" => "h-8 w-8 mr-3 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6212
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "random"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 68.5 MiB 0.07 ms
Input props
[
  "name" => "chevron-down"
  "class" => "w-7 h-7 fill-black dark:fill-white transition group-hover:rotate-180"
]
Attributes
[
  "class" => "w-7 h-7 fill-black dark:fill-white transition group-hover:rotate-180"
]
Component
App\Twig\Components\Media\Icon {#6485
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "chevron-down"
  +title: null
  +symbolDefsName: null
}
utils:theme-switcher
[Anonymous]
70.5 MiB 0.14 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#6472
  -props: [
    "class" => "max-w-fit"
  ]
}
menu:connexion-menu App\Twig\Components\Menu\ConnexionMenu 74.5 MiB 11.72 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Menu\ConnexionMenu {#6563
  -authenticationUtils: Symfony\Component\Security\Http\Authentication\AuthenticationUtils {#6564 …}
  -formFactory: Symfony\Component\Form\FormFactory {#6562 …}
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.05 ms
Input props
[
  "name" => "close"
  "class" => "w-[26px] h-[26px] md:w-[15px] md:h-[15px] cursor-pointer"
]
Attributes
[
  "class" => "w-[26px] h-[26px] md:w-[15px] md:h-[15px] cursor-pointer"
]
Component
App\Twig\Components\Media\Icon {#6715
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.03 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "hidden dark:block h-[80px] w-[300px]"
]
Attributes
[
  "class" => "hidden dark:block h-[80px] w-[300px]"
]
Component
App\Twig\Components\Media\Icon {#6750
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.03 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "block dark:hidden h-[80px] w-[300px]"
]
Attributes
[
  "class" => "block dark:hidden h-[80px] w-[300px]"
]
Component
App\Twig\Components\Media\Icon {#6780
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.04 ms
Input props
[
  "name" => "google"
  "class" => "h-[24px] w-[20px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "h-[24px] w-[20px]"
]
Component
App\Twig\Components\Media\Icon {#6812
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "google"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 72.5 MiB 0.03 ms
Input props
[
  "name" => "apple"
  "class" => "h-[24px] w-[20px] fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "h-[24px] w-[20px] fill-white"
]
Component
App\Twig\Components\Media\Icon {#6831
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "apple"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.05 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "h-[80px] w-[300px]"
]
Attributes
[
  "class" => "h-[80px] w-[300px]"
]
Component
App\Twig\Components\Media\Icon {#6941
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "chevron-down"
  "class" => "fill-white w-[20px] h-[20px]"
]
Attributes
[
  "class" => "fill-white w-[20px] h-[20px]"
]
Component
App\Twig\Components\Media\Icon {#6975
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "chevron-down"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "flexed-biceps"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#6991
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "flexed-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "fire"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7015
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fire"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "category"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7039
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "category"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "barbell"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7063
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "barbell"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "discipline"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7087
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "discipline"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "stats-chart"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7111
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "stats-chart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "latest"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7135
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "latest"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "random"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7159
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "random"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "favorites"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7183
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "favorites"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "more"
  "class" => "h-5 w-5 mr-2 fill-current"
]
Attributes
[
  "class" => "h-5 w-5 mr-2 fill-current"
]
Component
App\Twig\Components\Media\Icon {#7207
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "more"
  +title: null
  +symbolDefsName: null
}
app:lang-selector App\Twig\Components\App\LangSelector 74.5 MiB 0.51 ms
Input props
[
  "defaultOpenLeft" => true
]
Attributes
[]
Component
App\Twig\Components\App\LangSelector {#7252
  +routeName: null
  +params: null
  +withQuery: true
  +defaultOpenLeft: true
  -seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  -router: Symfony\Bundle\FrameworkBundle\Routing\Router {#681 …}
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "close"
  "class" => "w-[26px] h-[26px] md:w-[15px] md:h-[15px] cursor-pointer text-white"
]
Attributes
[
  "class" => "w-[26px] h-[26px] md:w-[15px] md:h-[15px] cursor-pointer text-white"
]
Component
App\Twig\Components\Media\Icon {#7242
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "h-16 w-full"
]
Attributes
[
  "class" => "h-16 w-full"
]
Component
App\Twig\Components\Media\Icon {#6883
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
menu:breadcrumb App\Twig\Components\Menu\Breadcrumb 74.5 MiB 0.57 ms
Input props
[
  "builder" => App\BusinessLogic\App\Menu\BreadcrumbBuilder {#4552
    -items: [
      [
        "label" => "menu.home"
        "url" => "/fr/"
      ]
      [
        "label" => "menu.exercises"
        "url" => "/fr/exercices"
      ]
      [
        "label" => "Boxing Drill"
        "url" => "/fr/exercices/groupe/345-boxing-drill"
      ]
      [
        "label" => "Shadow Boxing"
        "url" => null
      ]
    ]
  }
]
Attributes
[]
Component
App\Twig\Components\Menu\Breadcrumb {#7335
  +items: [
    [
      "label" => "menu.home"
      "url" => "/fr/"
    ]
    [
      "label" => "menu.exercises"
      "url" => "/fr/exercices"
    ]
    [
      "label" => "Boxing Drill"
      "url" => "/fr/exercices/groupe/345-boxing-drill"
    ]
    [
      "label" => "Shadow Boxing"
      "url" => null
    ]
  ]
  +builder: App\BusinessLogic\App\Menu\BreadcrumbBuilder {#4552
    -items: [
      [
        "label" => "menu.home"
        "url" => "/fr/"
      ]
      [
        "label" => "menu.exercises"
        "url" => "/fr/exercices"
      ]
      [
        "label" => "Boxing Drill"
        "url" => "/fr/exercices/groupe/345-boxing-drill"
      ]
      [
        "label" => "Shadow Boxing"
        "url" => null
      ]
    ]
  }
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "chevron-right"
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Attributes
[
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7365
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "chevron-right"
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Attributes
[
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7387
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "chevron-right"
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Attributes
[
  "class" => "w-[10px] h-[10px] fill-black dark:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7410
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "chevron-right"
  +title: null
  +symbolDefsName: null
}
ad:banner App\Twig\Components\Ad\AdBanner 74.5 MiB 0.44 ms
Input props
[
  "containerClass" => "my-4"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdBanner {#7453
  +includeScript: true
  +labelClass: null
  +containerClass: "my-4"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2932 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
media:video App\Twig\Components\Media\Video 74.5 MiB 0.38 ms
Input props
[
  "media" => App\Entity\Media\MediaVideo {#4483
    #uploadedFile: null
    #file: Vich\UploaderBundle\Entity\File {#4485 …}
    #credits: Doctrine\ORM\PersistentCollection {#4487 …}
    -source: null
    -zone: null
    -urlExternal: null
    #id: 2865
    -notes: null
    #translations: Doctrine\ORM\PersistentCollection {#4534 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -tiersId: null
    -tiersName: null
    #createdAt: DateTimeImmutable @1760884060 {#4521
      date: 2025-10-19 16:27:40.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884060 {#4473
      date: 2025-10-19 16:27:40.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    -duration: null
    -format: null
    -startTime: 240
    -endTime: 260
    -youtubeId: "tSNybMUpMKk"
  }
  "title" => "Shadow Boxing"
  "showCredits" => false
]
Attributes
[]
Component
App\Twig\Components\Media\Video {#7540
  +media: App\Entity\Media\MediaVideo {#4483
    #uploadedFile: null
    #file: Vich\UploaderBundle\Entity\File {#4485 …}
    #credits: Doctrine\ORM\PersistentCollection {#4487 …}
    -source: null
    -zone: null
    -urlExternal: null
    #id: 2865
    -notes: null
    #translations: Doctrine\ORM\PersistentCollection {#4534 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -tiersId: null
    -tiersName: null
    #createdAt: DateTimeImmutable @1760884060 {#4521
      date: 2025-10-19 16:27:40.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884060 {#4473
      date: 2025-10-19 16:27:40.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    -duration: null
    -format: null
    -startTime: 240
    -endTime: 260
    -youtubeId: "tSNybMUpMKk"
  }
  +title: "Shadow Boxing"
  +posterSm: null
  +posterLg: null
  +hasPipButton: true
  +loop: false
  +mute: false
  +showCredits: false
  +creditsTitle: "label.media_video.credits"
  -mediaManager: App\BusinessLogic\Media\Manager\MediaManager {#214 …}
  -appManager: App\BusinessLogic\App\Manager\AppManager {#152 …}
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "favorites"
  "class" => "h-4 w-4 stroke-yellow text-transparent"
  "data-front--favorite-target" => "icon"
]
Attributes
[
  "class" => "h-4 w-4 stroke-yellow text-transparent"
  "data-front--favorite-target" => "icon"
]
Component
App\Twig\Components\Media\Icon {#7556
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "favorites"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "program"
  "class" => "w-5 h-5 text-white inline-flex"
]
Attributes
[
  "class" => "w-5 h-5 text-white inline-flex"
]
Component
App\Twig\Components\Media\Icon {#7589
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
app:page-sharer App\Twig\Components\App\PageSharer 74.5 MiB 1.34 ms
Input props
[
  "class" => "mt-2 md:m-0"
]
Attributes
[
  "class" => "mt-2 md:m-0"
]
Component
App\Twig\Components\App\PageSharer {#7613
  +shareUrl: "https://test.fitmetrics.ch/fr/exercice/68f3fc66425d3-shadow-boxing"
  +title: "Shadow Boxing - Exercice - FitMetrics"
  +description: "Le shadow boxing est un exercice cardiovasculaire libre qui consiste à simuler un combat de boxe sans adversaire ni équipement. Très utilisé dans la préparation sportive et le conditionnement fonctionnel, il permet de travailler la coordination, la vitesse de réaction et la fluidité des mouvements tout en améliorant l'endurance globale. L'objectif est de reproduire des enchaînements de frappes, de déplacements et d'esquives comme dans un véritable contexte de combat, ce qui favorise la conscience corporelle, la gestion du rythme et la maîtrise posturale. Adaptable à tous les niveaux, le shadow boxing peut être exécuté à intensité modérée comme échauffement progressif ou de manière dynamique pour un travail cardio plus engagé. Sa grande polyvalence en fait un outil particulièrement efficace pour développer l'agilité, la précision gestuelle et la concentration mentale, tout en mobilisant l'ensemble du corps sans contrainte de matériel. Facile à pratiquer à domicile ou en salle, il constitue également une méthode idéale pour améliorer la coordination neuromusculaire, l'expressivité motrice et la qualité des déplacements dans les sports de combat ou les entraînements fonctionnels."
  +quote: null
  +hashtags: [
    "fitmetrics"
  ]
  +alignMobileLeft: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  -seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "check"
  "class" => "w-5 h-5 text-white fill-white"
]
Attributes
[
  "class" => "w-5 h-5 text-white fill-white"
]
Component
App\Twig\Components\Media\Icon {#7643
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "reddit"
  "class" => "w-6 h-6 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-6 h-6 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7671
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "reddit"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "twitter"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7696
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "twitter"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "threads"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7719
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "facebook"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7742
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "linkedin"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7765
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "linkedin"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "whatsapp"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7788
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.03 ms
Input props
[
  "name" => "email"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#7811
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "email"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 74.5 MiB 0.04 ms
Input props
[
  "name" => "program"
  "class" => "w-6 h-6 mr-3 !text-white"
]
Attributes
[
  "class" => "w-6 h-6 mr-3 !text-white"
]
Component
App\Twig\Components\Media\Icon {#7842
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
ui:editor-render App\Twig\Components\Ui\Editor\EditorRender 74.5 MiB 0.85 ms
Input props
[
  "data" => [
    "time" => 1760948184
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Instructions"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "ordered"
          "items" => [
            [
              "content" => "Adoptez une garde de boxe avec les poings près du menton."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Transférez légèrement votre poids et lancez des coups de poing contrôlés dans le vide."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Restez léger sur vos appuis tout en gardant la garde en place."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Alternez continuellement les coups de poing en ajustant votre position de pieds."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Conseils techniques"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Gardez la sangle abdominale engagée et les coudes proches du corps."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Pointez avec une extension complète sans verrouiller les articulations."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Conservez un mouvement de tête fluide et un rythme continu."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Conseils de respiration"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Inspirez légèrement par le nez en position de garde."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Expirez vivement par la bouche à chaque coup de poing."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Respirez de façon régulière en restant détendu entre les frappes."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
]
Attributes
[]
Component
App\Twig\Components\Ui\Editor\EditorRender {#7891
  +title: null
  +data: [
    "time" => 1760948184
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Instructions"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "ordered"
          "items" => [
            [
              "content" => "Adoptez une garde de boxe avec les poings près du menton."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Transférez légèrement votre poids et lancez des coups de poing contrôlés dans le vide."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Restez léger sur vos appuis tout en gardant la garde en place."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Alternez continuellement les coups de poing en ajustant votre position de pieds."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Conseils techniques"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Gardez la sangle abdominale engagée et les coudes proches du corps."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Pointez avec une extension complète sans verrouiller les articulations."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Conservez un mouvement de tête fluide et un rythme continu."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
      [
        "type" => "header"
        "data" => [
          "level" => 2
          "text" => "Conseils de respiration"
        ]
      ]
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Inspirez légèrement par le nez en position de garde."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Expirez vivement par la bouche à chaque coup de poing."
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Respirez de façon régulière en restant détendu entre les frappes."
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
  +spacing: 4
  +adsInterval: 5
  +withAds: true
  +withMarketingBanner: false
  +marketingBannerPosition: 8
  -host: "https://test.fitmetrics.ch"
  #requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
}
ui:editor-render App\Twig\Components\Ui\Editor\EditorRender 74.5 MiB 0.10 ms
Input props
[
  "data" => [
    "time" => 1760948184
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Eviter en cas de blessure aiguë à l'épaule ou au poignet"
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Eviter en cas de pathologie cardiovasculaire non contrôlée"
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
]
Attributes
[]
Component
App\Twig\Components\Ui\Editor\EditorRender {#7952
  +title: null
  +data: [
    "time" => 1760948184
    "version" => "2.31.0-rc.7"
    "blocks" => [
      [
        "type" => "list"
        "data" => [
          "style" => "unordered"
          "items" => [
            [
              "content" => "Eviter en cas de blessure aiguë à l'épaule ou au poignet"
              "items" => []
              "meta" => []
            ]
            [
              "content" => "Eviter en cas de pathologie cardiovasculaire non contrôlée"
              "items" => []
              "meta" => []
            ]
          ]
          "meta" => []
        ]
      ]
    ]
  ]
  +spacing: 4
  +adsInterval: 5
  +withAds: true
  +withMarketingBanner: false
  +marketingBannerPosition: 8
  -host: "https://test.fitmetrics.ch"
  #requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
}
ad:square:fluid App\Twig\Components\Ad\AdSquareFluid 74.5 MiB 0.23 ms
Input props
[
  "containerClass" => "mt-6"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#7939
  +includeScript: true
  +labelClass: null
  +containerClass: "mt-6"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2932 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
faq App\Twig\Components\Ui\FaqComponent 74.5 MiB 0.69 ms
Input props
[
  "faq" => App\Entity\Faq {#5447
    -news: Doctrine\ORM\PersistentCollection {#5430 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5432 …}
    #id: 6166
    #createdAt: DateTimeImmutable @1760884169 {#5442
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5417
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5476 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#7996
  +faq: App\Entity\Faq {#5447
    -news: Doctrine\ORM\PersistentCollection {#5430 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5432 …}
    #id: 6166
    #createdAt: DateTimeImmutable @1760884169 {#5442
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5417
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5476 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 74.5 MiB 0.25 ms
Input props
[
  "question" => "Quels sont les bienfaits du shadow boxing pour la condition physique ?"
  "answer" => "Le shadow boxing améliore l'endurance cardiovasculaire, la coordination motrice, la vitesse de réaction et le contrôle corporel, tout en ne nécessitant aucun équipement."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8024
  +question: "Quels sont les bienfaits du shadow boxing pour la condition physique ?"
  +answer: "Le shadow boxing améliore l'endurance cardiovasculaire, la coordination motrice, la vitesse de réaction et le contrôle corporel, tout en ne nécessitant aucun équipement."
}
faq App\Twig\Components\Ui\FaqComponent 74.5 MiB 0.19 ms
Input props
[
  "faq" => App\Entity\Faq {#5478
    -news: Doctrine\ORM\PersistentCollection {#5485 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5482 …}
    #id: 6167
    #createdAt: DateTimeImmutable @1760884169 {#5473
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5480
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5492 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8055
  +faq: App\Entity\Faq {#5478
    -news: Doctrine\ORM\PersistentCollection {#5485 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5482 …}
    #id: 6167
    #createdAt: DateTimeImmutable @1760884169 {#5473
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5480
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5492 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 74.5 MiB 0.05 ms
Input props
[
  "question" => "Le shadow boxing est-il sûr pour les épaules ?"
  "answer" => "Oui, s'il est effectué avec des mouvements contrôlés et sans sur-extension articulaire, mais il doit être évité en cas de douleur ou blessure aiguë."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8100
  +question: "Le shadow boxing est-il sûr pour les épaules ?"
  +answer: "Oui, s'il est effectué avec des mouvements contrôlés et sans sur-extension articulaire, mais il doit être évité en cas de douleur ou blessure aiguë."
}
faq App\Twig\Components\Ui\FaqComponent 74.5 MiB 0.17 ms
Input props
[
  "faq" => App\Entity\Faq {#5491
    -news: Doctrine\ORM\PersistentCollection {#5674 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5548 …}
    #id: 6168
    #createdAt: DateTimeImmutable @1760884169 {#5489
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5488
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5464 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8103
  +faq: App\Entity\Faq {#5491
    -news: Doctrine\ORM\PersistentCollection {#5674 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5548 …}
    #id: 6168
    #createdAt: DateTimeImmutable @1760884169 {#5489
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5488
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5464 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 74.5 MiB 0.05 ms
Input props
[
  "question" => "Quelle est l'erreur la plus fréquente en shadow boxing ?"
  "answer" => "L'erreur courante est de frapper avec des bras raides sans utiliser les appuis ni le mouvement de tête, ce qui réduit l'efficacité et augmente le stress articulaire."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8147
  +question: "Quelle est l'erreur la plus fréquente en shadow boxing ?"
  +answer: "L'erreur courante est de frapper avec des bras raides sans utiliser les appuis ni le mouvement de tête, ce qui réduit l'efficacité et augmente le stress articulaire."
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.26 ms
Input props
[
  "faq" => App\Entity\Faq {#5460
    -news: Doctrine\ORM\PersistentCollection {#5459 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5457 …}
    #id: 6169
    #createdAt: DateTimeImmutable @1760884169 {#5462
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5461
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5455 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8150
  +faq: App\Entity\Faq {#5460
    -news: Doctrine\ORM\PersistentCollection {#5459 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5457 …}
    #id: 6169
    #createdAt: DateTimeImmutable @1760884169 {#5462
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5461
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5455 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.05 ms
Input props
[
  "question" => "Combien de temps dois-je pratiquer le shadow boxing pour progresser ?"
  "answer" => "Un débutant peut commencer par 2 à 3 rounds de 2 minutes et augmenter progressivement la durée ou l'intensité selon son objectif de conditionnement."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8194
  +question: "Combien de temps dois-je pratiquer le shadow boxing pour progresser ?"
  +answer: "Un débutant peut commencer par 2 à 3 rounds de 2 minutes et augmenter progressivement la durée ou l'intensité selon son objectif de conditionnement."
}
faq App\Twig\Components\Ui\FaqComponent 76.5 MiB 0.15 ms
Input props
[
  "faq" => App\Entity\Faq {#5407
    -news: Doctrine\ORM\PersistentCollection {#5406 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5404 …}
    #id: 6170
    #createdAt: DateTimeImmutable @1760884169 {#5409
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5408
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5402 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
]
Attributes
[]
Component
App\Twig\Components\Ui\FaqComponent {#8197
  +faq: App\Entity\Faq {#5407
    -news: Doctrine\ORM\PersistentCollection {#5406 …}
    -exercises: Doctrine\ORM\PersistentCollection {#5404 …}
    #id: 6170
    #createdAt: DateTimeImmutable @1760884169 {#5409
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #updatedAt: DateTimeImmutable @1760884169 {#5408
      date: 2025-10-19 16:29:29.0 Europe/Zurich (+02:00)
    }
    #createdBy: App\Entity\User {#2753 …}
    #updatedBy: App\Entity\User {#2753 …}
    #translations: Doctrine\ORM\PersistentCollection {#5402 …}
    #newTranslations: null
    #currentLocale: "fr"
    #defaultLocale: "en"
    -published: true
    #publishedAt: null
    -publishedBy: null
  }
}
raw-faq App\Twig\Components\Ui\RawFaqComponent 76.5 MiB 0.04 ms
Input props
[
  "question" => "Quelle est la différence entre un shadow boxing avec déplacements et un statique ?"
  "answer" => "Le shadow boxing avec déplacements inclut une gestion active de la distance et améliore davantage l'agilité et la réactivité qu'une version strictement statique."
]
Attributes
[]
Component
App\Twig\Components\Ui\RawFaqComponent {#8241
  +question: "Quelle est la différence entre un shadow boxing avec déplacements et un statique ?"
  +answer: "Le shadow boxing avec déplacements inclut une gestion active de la distance et améliore davantage l'agilité et la réactivité qu'une version strictement statique."
}
anatomy:avatar App\Twig\Components\Anatomy\Avatar 84.5 MiB 577.46 ms
Input props
[
  "class" => "relative"
  "primaryMuscles" => [
    6
    28
  ]
  "secondaryMuscles" => [
    8
    10
    12
    13
    15
    24
  ]
  "displayFront" => true
]
Attributes
[
  "class" => "relative"
]
Component
App\Twig\Components\Anatomy\Avatar {#8169
  #container: Symfony\Component\DependencyInjection\Argument\ServiceLocator {#8252 …}
  +primaryMuscles: [
    6
    28
  ]
  +secondaryMuscles: [
    8
    10
    12
    13
    15
    24
  ]
  +type: "url"
  +urlReferenceType: 2
  +displayFront: true
  +selectedMuscles: []
  +displayTagMuscles: false
  +hoverMuscleDefaultText: "-"
  #entityManager: Doctrine\ORM\EntityManager {#550 …}
  #localeSwitcher: Symfony\Component\Translation\LocaleSwitcher {#1600 …}
  #avatarData: App\BusinessLogic\Anatomy\AvatarData {#8250 …}
  -liveResponder: Symfony\UX\LiveComponent\LiveResponder {#8251 …}
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.94 ms
Input props
[
  "name" => "Abdominaux"
  "url" => "/fr/exercices/muscle/6-abdominaux"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9320
  +name: "Abdominaux"
  +url: "/fr/exercices/muscle/6-abdominaux"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.19 ms
Input props
[
  "name" => "Épaules"
  "url" => "/fr/exercices/muscle/28-epaules"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9372
  +name: "Épaules"
  +url: "/fr/exercices/muscle/28-epaules"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.17 ms
Input props
[
  "name" => "Mollets"
  "url" => "/fr/exercices/muscle/8-mollets"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9396
  +name: "Mollets"
  +url: "/fr/exercices/muscle/8-mollets"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.15 ms
Input props
[
  "name" => "Triceps"
  "url" => "/fr/exercices/muscle/10-triceps"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9420
  +name: "Triceps"
  +url: "/fr/exercices/muscle/10-triceps"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.14 ms
Input props
[
  "name" => "Dos"
  "url" => "/fr/exercices/muscle/12-dos"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9444
  +name: "Dos"
  +url: "/fr/exercices/muscle/12-dos"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.13 ms
Input props
[
  "name" => "Trapèzes"
  "url" => "/fr/exercices/muscle/13-trap%C3%A8zes"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9468
  +name: "Trapèzes"
  +url: "/fr/exercices/muscle/13-trap%C3%A8zes"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.14 ms
Input props
[
  "name" => "Obliques"
  "url" => "/fr/exercices/muscle/15-obliques"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9492
  +name: "Obliques"
  +url: "/fr/exercices/muscle/15-obliques"
  +color: "primary"
  +small: false
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.13 ms
Input props
[
  "name" => "Biceps"
  "url" => "/fr/exercices/muscle/24-biceps"
  "color" => "primary"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9516
  +name: "Biceps"
  +url: "/fr/exercices/muscle/24-biceps"
  +color: "primary"
  +small: false
  +selected: false
}
ad:square:fluid App\Twig\Components\Ad\AdSquareFluid 84.5 MiB 0.17 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#9308
  +includeScript: true
  +labelClass: null
  +containerClass: "max-h-[300px] max-w-[300px]"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2932 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
training:difficulty-badge App\Twig\Components\Training\DifficultyBadge 84.5 MiB 0.84 ms
Input props
[
  "difficulty" => "beginner"
]
Attributes
[]
Component
App\Twig\Components\Training\DifficultyBadge {#9549
  +difficulty: "beginner"
  +small: false
  +link: true
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.16 ms
Input props
[
  "name" => "Composé"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9580
  +name: "Composé"
  +url: null
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.14 ms
Input props
[
  "name" => "Sans matériel"
  "url" => "/fr/exercices/equipement/29-sans-mat%C3%A9riel"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9620
  +name: "Sans matériel"
  +url: "/fr/exercices/equipement/29-sans-mat%C3%A9riel"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.13 ms
Input props
[
  "name" => "Callisthénie"
  "url" => "/fr/exercices/sport/3-callisthenie"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9644
  +name: "Callisthénie"
  +url: "/fr/exercices/sport/3-callisthenie"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.14 ms
Input props
[
  "name" => "Fitness"
  "url" => "/fr/exercices/sport/5-fitness"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9668
  +name: "Fitness"
  +url: "/fr/exercices/sport/5-fitness"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.14 ms
Input props
[
  "name" => "Cardio"
  "url" => "/fr/exercices/categorie/57-cardio"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9692
  +name: "Cardio"
  +url: "/fr/exercices/categorie/57-cardio"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.13 ms
Input props
[
  "name" => "Échauffement"
  "url" => "/fr/exercices/categorie/62-echauffement"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9716
  +name: "Échauffement"
  +url: "/fr/exercices/categorie/62-echauffement"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.10 ms
Input props
[
  "name" => "Haut du corps"
  "url" => "/fr/exercices/categorie/67-haut-du-corps"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9740
  +name: "Haut du corps"
  +url: "/fr/exercices/categorie/67-haut-du-corps"
  +color: "gray"
  +small: true
  +selected: false
}
ui:badge App\Twig\Components\Ui\Badge 84.5 MiB 0.13 ms
Input props
[
  "name" => "Entraînement fonctionnel"
  "url" => "/fr/exercices/categorie/77-entrainement-fonctionnel"
  "small" => true
  "color" => "gray"
]
Attributes
[]
Component
App\Twig\Components\Ui\Badge {#9764
  +name: "Entraînement fonctionnel"
  +url: "/fr/exercices/categorie/77-entrainement-fonctionnel"
  +color: "gray"
  +small: true
  +selected: false
}
ad:square:fluid App\Twig\Components\Ad\AdSquareFluid 84.5 MiB 0.22 ms
Input props
[
  "containerClass" => "hidden lg:flex items-center justify-center my-6"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdSquareFluid {#9530
  +includeScript: true
  +labelClass: null
  +containerClass: "hidden lg:flex items-center justify-center my-6"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2932 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
app:loading_spinner App\Twig\Components\App\LoadingSpinner 84.5 MiB 0.81 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\App\LoadingSpinner {#7503
  +color: "fill-primary"
  +size: 8
  +centered: true
  +inline: false
}
app:loading_spinner App\Twig\Components\App\LoadingSpinner 84.5 MiB 0.12 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\App\LoadingSpinner {#9813
  +color: "fill-primary"
  +size: 8
  +centered: true
  +inline: false
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.14 ms
Input props
[
  "name" => "program"
  "class" => "w-6 h-6 mr-3 !text-white"
]
Attributes
[
  "class" => "w-6 h-6 mr-3 !text-white"
]
Component
App\Twig\Components\Media\Icon {#9853
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "program"
  +title: null
  +symbolDefsName: null
}
ui:widget-embed App\Twig\Components\Ui\WidgetEmbed 84.5 MiB 2.48 ms
Input props
[
  "class" => "hidden md:block"
  "route" => "https://test.fitmetrics.ch/fr/widgets/exercise/preview-68f3fc66425d3?video=1"
  "parameters" => [
    [
      "name" => "orientation"
      "description" => "Change the layout: horizontal (side by side) or vertical (stacked)"
      "example" => "?orientation=vertical"
      "values" => [
        "horizontal"
        "vertical"
      ]
    ]
    [
      "name" => "video"
      "description" => "Show the exercise video (if available): yes"
      "example" => "?video=1"
      "values" => [
        "0"
        "1"
        "true"
        "false"
      ]
    ]
  ]
  "defaultWidth" => 350
  "defaultHeight" => 700
]
Attributes
[
  "class" => "hidden md:block"
]
Component
App\Twig\Components\Ui\WidgetEmbed {#9889
  +route: "https://test.fitmetrics.ch/fr/widgets/exercise/preview-68f3fc66425d3?video=1"
  +parameters: [
    [
      "name" => "orientation"
      "description" => "Change the layout: horizontal (side by side) or vertical (stacked)"
      "example" => "?orientation=vertical"
      "values" => [
        "horizontal"
        "vertical"
      ]
    ]
    [
      "name" => "video"
      "description" => "Show the exercise video (if available): yes"
      "example" => "?video=1"
      "values" => [
        "0"
        "1"
        "true"
        "false"
      ]
    ]
  ]
  +defaultWidth: 350
  +defaultHeight: 700
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.15 ms
Input props
[
  "name" => "check"
  "class" => "me-1"
  "style" => "width: 20px; height: 20px;"
]
Attributes
[
  "class" => "me-1"
  "style" => "width: 20px; height: 20px;"
]
Component
App\Twig\Components\Media\Icon {#9927
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.16 ms
Input props
[
  "name" => "close"
  "class" => "w-[26px] h-[26px] cursor-pointer text-black dark:text-white"
]
Attributes
[
  "class" => "w-[26px] h-[26px] cursor-pointer text-black dark:text-white"
]
Component
App\Twig\Components\Media\Icon {#9960
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "close"
  +title: null
  +symbolDefsName: null
}
app:page-sharer App\Twig\Components\App\PageSharer 84.5 MiB 3.28 ms
Input props
[
  "class" => "content-container"
  "title" => "Shadow Boxing"
  "description" => "Le shadow boxing est un exercice cardiovasculaire libre qui consiste à simuler un combat de boxe sans adversaire ni équipement. Très utilisé dans la préparation sportive et le conditionnement fonctionnel, il permet de travailler la coordination, la vitesse de réaction et la fluidité des mouvements tout en améliorant l'endurance globale. L'objectif est de reproduire des enchaînements de frappes, de déplacements et d'esquives comme dans un véritable contexte de combat, ce qui favorise la conscience corporelle, la gestion du rythme et la maîtrise posturale. Adaptable à tous les niveaux, le shadow boxing peut être exécuté à intensité modérée comme échauffement progressif ou de manière dynamique pour un travail cardio plus engagé. Sa grande polyvalence en fait un outil particulièrement efficace pour développer l'agilité, la précision gestuelle et la concentration mentale, tout en mobilisant l'ensemble du corps sans contrainte de matériel. Facile à pratiquer à domicile ou en salle, il constitue également une méthode idéale pour améliorer la coordination neuromusculaire, l'expressivité motrice et la qualité des déplacements dans les sports de combat ou les entraînements fonctionnels."
]
Attributes
[
  "class" => "content-container"
]
Component
App\Twig\Components\App\PageSharer {#10000
  +shareUrl: "https://test.fitmetrics.ch/fr/exercice/68f3fc66425d3-shadow-boxing"
  +title: "Shadow Boxing"
  +description: "Le shadow boxing est un exercice cardiovasculaire libre qui consiste à simuler un combat de boxe sans adversaire ni équipement. Très utilisé dans la préparation sportive et le conditionnement fonctionnel, il permet de travailler la coordination, la vitesse de réaction et la fluidité des mouvements tout en améliorant l'endurance globale. L'objectif est de reproduire des enchaînements de frappes, de déplacements et d'esquives comme dans un véritable contexte de combat, ce qui favorise la conscience corporelle, la gestion du rythme et la maîtrise posturale. Adaptable à tous les niveaux, le shadow boxing peut être exécuté à intensité modérée comme échauffement progressif ou de manière dynamique pour un travail cardio plus engagé. Sa grande polyvalence en fait un outil particulièrement efficace pour développer l'agilité, la précision gestuelle et la concentration mentale, tout en mobilisant l'ensemble du corps sans contrainte de matériel. Facile à pratiquer à domicile ou en salle, il constitue également une méthode idéale pour améliorer la coordination neuromusculaire, l'expressivité motrice et la qualité des déplacements dans les sports de combat ou les entraînements fonctionnels."
  +quote: null
  +hashtags: [
    "fitmetrics"
  ]
  +alignMobileLeft: false
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  -seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.14 ms
Input props
[
  "name" => "check"
  "class" => "w-5 h-5 text-white fill-white"
]
Attributes
[
  "class" => "w-5 h-5 text-white fill-white"
]
Component
App\Twig\Components\Media\Icon {#10008
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "check"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.12 ms
Input props
[
  "name" => "reddit"
  "class" => "w-6 h-6 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-6 h-6 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10030
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "reddit"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "twitter"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10054
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "twitter"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "threads"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10077
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.12 ms
Input props
[
  "name" => "facebook"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10100
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.11 ms
Input props
[
  "name" => "linkedin"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10123
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "linkedin"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.11 ms
Input props
[
  "name" => "whatsapp"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10146
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "email"
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-5 h-5 fill-slate-600 transition-colors group-hover:fill-white dark:fill-white dark:group-hover:fill-white"
]
Component
App\Twig\Components\Media\Icon {#10169
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "email"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
ad:wide-skyscraper App\Twig\Components\Ad\AdWideSkyscraper 84.5 MiB 1.08 ms
Input props
[]
Attributes
[]
Component
App\Twig\Components\Ad\AdWideSkyscraper {#719
  +includeScript: true
  +labelClass: null
  +containerClass: ""
  +adClass: null
  +showBgColor: false
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2932 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
  +right: true
  +left: true
}
ad:horizontal:fluid App\Twig\Components\Ad\AdHorizontalFluid 84.5 MiB 0.84 ms
Input props
[
  "containerClass" => "content-container my-4"
]
Attributes
[]
Component
App\Twig\Components\Ad\AdHorizontalFluid {#10216
  +includeScript: true
  +labelClass: null
  +containerClass: "content-container my-4"
  +adClass: null
  +showBgColor: true
  #kernel: App\Kernel {#14 …}
  #accountManager: App\BusinessLogic\User\Manager\AccountManager {#2932 …}
  #parameterBag: Symfony\Component\DependencyInjection\ParameterBag\ContainerBag {#686 …}
  #seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
}
app:lang-selector App\Twig\Components\App\LangSelector 84.5 MiB 0.12 ms
Input props
[
  "defaultOpenLeft" => false
]
Attributes
[]
Component
App\Twig\Components\App\LangSelector {#10271
  +routeName: null
  +params: null
  +withQuery: true
  +defaultOpenLeft: false
  -seoPage: App\BusinessLogic\App\Seo\SeoPage {#210 …}
  -requestStack: Symfony\Component\HttpFoundation\RequestStack {#865 …}
  -router: Symfony\Bundle\FrameworkBundle\Routing\Router {#681 …}
}
utils:theme-switcher
[Anonymous]
84.5 MiB 0.35 ms
Input props
[
  "class" => "max-w-fit"
]
Attributes
[
  "class" => "max-w-fit"
]
Component
Symfony\UX\TwigComponent\AnonymousComponent {#10263
  -props: [
    "class" => "max-w-fit"
  ]
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.14 ms
Input props
[
  "name" => "fitmetrics-biceps"
  "class" => "h-12 sm:h-16 max-w-[116px] mr-3 dark:hidden"
]
Attributes
[
  "class" => "h-12 sm:h-16 max-w-[116px] mr-3 dark:hidden"
]
Component
App\Twig\Components\Media\Icon {#10305
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.11 ms
Input props
[
  "name" => "fitmetrics-white-biceps"
  "class" => "h-12 sm:h-16 max-w-[116px] mr-3 hidden dark:block"
]
Attributes
[
  "class" => "h-12 sm:h-16 max-w-[116px] mr-3 hidden dark:block"
]
Component
App\Twig\Components\Media\Icon {#10337
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "fitmetrics-white-biceps"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "heart"
  "class" => "heart h-5 w-5 text-[#eb2a2a]"
]
Attributes
[
  "class" => "heart h-5 w-5 text-[#eb2a2a]"
]
Component
App\Twig\Components\Media\Icon {#10360
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "heart"
  +title: null
  +symbolDefsName: null
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "whatsapp"
  "class" => "w-[28px] h-[28px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[28px] h-[28px]"
]
Component
App\Twig\Components\Media\Icon {#10383
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "whatsapp"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.11 ms
Input props
[
  "name" => "instagram"
  "class" => "w-[28px] h-[28px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[28px] h-[28px]"
]
Component
App\Twig\Components\Media\Icon {#10406
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "instagram"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "threads"
  "class" => "w-[28px] h-[28px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[28px] h-[28px]"
]
Component
App\Twig\Components\Media\Icon {#10429
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "threads"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "tiktok"
  "class" => "w-[29px] h-[29px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[29px] h-[29px]"
]
Component
App\Twig\Components\Media\Icon {#10452
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "tiktok"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "facebook"
  "class" => "w-[19px] h-[28px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[19px] h-[28px]"
]
Component
App\Twig\Components\Media\Icon {#10475
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "facebook"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}
media:icon App\Twig\Components\Media\Icon 84.5 MiB 0.10 ms
Input props
[
  "name" => "youtube"
  "class" => "w-[28px] h-[24px]"
  "symbolDefsName" => "networks-symbol-defs.svg"
]
Attributes
[
  "class" => "w-[28px] h-[24px]"
]
Component
App\Twig\Components\Media\Icon {#10498
  #iconManager: App\BusinessLogic\Media\Manager\IconManager {#5876 …}
  +name: "youtube"
  +title: null
  +symbolDefsName: "networks-symbol-defs.svg"
}