diff --git a/.vscode/settings.json b/.vscode/settings.json
index c142123b64be691c10498efdc7cf9cc159d3e3e1..94ab4612f845554d72332bf498aa47216b5e1559 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -155,5 +155,6 @@
     "Usain",
     "userchallenge"
   ],
-  "typescript.tsdk": "node_modules/typescript/lib"
+  "typescript.tsdk": "node_modules/typescript/lib",
+  "conventionalCommits.scopes": ["ui"]
 }
diff --git a/src/components/Action/ActionView.tsx b/src/components/Action/ActionView.tsx
index 705a66031d0b2d791d1041f7bc8f874c019f5ace..7b5fbab5d6852111c2d6781d1045870ecc459227 100644
--- a/src/components/Action/ActionView.tsx
+++ b/src/components/Action/ActionView.tsx
@@ -3,7 +3,7 @@ import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import { UserActionState } from 'enums'
 import { UserChallenge } from 'models'
-import React, { useState } from 'react'
+import React from 'react'
 import { useAppSelector } from 'store/hooks'
 import ActionChoose from './ActionChoose/ActionChoose'
 import ActionDone from './ActionDone/ActionDone'
@@ -11,7 +11,6 @@ import ActionOnGoing from './ActionOnGoing/ActionOnGoing'
 
 const ActionView = () => {
   const { currentChallenge } = useAppSelector(state => state.ecolyo.challenge)
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
 
   const renderAction = (challenge: UserChallenge) => {
     switch (challenge.action.state) {
@@ -29,14 +28,8 @@ const ActionView = () => {
   return (
     <>
       <CozyBar titleKey="common.title_action" displayBackArrow={true} />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_action"
-        displayBackArrow={true}
-      />
-      <Content heightOffset={headerHeight}>
-        {currentChallenge && renderAction(currentChallenge)}
-      </Content>
+      <Header desktopTitleKey="common.title_action" displayBackArrow={true} />
+      <Content>{currentChallenge && renderAction(currentChallenge)}</Content>
     </>
   )
 }
diff --git a/src/components/Action/__snapshots__/ActionView.spec.tsx.snap b/src/components/Action/__snapshots__/ActionView.spec.tsx.snap
index 6197c430c16f23523cbf9163f61e433bc862f146..cd7ed71bda2e62a0f90c8c17df8c29aee1794b1d 100644
--- a/src/components/Action/__snapshots__/ActionView.spec.tsx.snap
+++ b/src/components/Action/__snapshots__/ActionView.spec.tsx.snap
@@ -10,9 +10,7 @@ exports[`ActionView component should render match snapshot with "Notification" s
     desktoptitlekey="common.title_action"
     displaybackarrow="true"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <mock-action-done
       currentchallenge="[object Object]"
     />
@@ -30,9 +28,7 @@ exports[`ActionView component should render match snapshot with "Unstarted" stat
     desktoptitlekey="common.title_action"
     displaybackarrow="true"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <mock-action-choose
       userchallenge="[object Object]"
     />
@@ -50,9 +46,7 @@ exports[`ActionView component should render match snapshot with "onGoing" state
     desktoptitlekey="common.title_action"
     displaybackarrow="true"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <mock-action-ongoing
       useraction="[object Object]"
     />
@@ -70,9 +64,7 @@ exports[`ActionView component should render match snapshot with default case 1`]
     desktoptitlekey="common.title_action"
     displaybackarrow="true"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <mock-action-choose
       userchallenge="[object Object]"
     />
diff --git a/src/components/Analysis/AnalysisView.tsx b/src/components/Analysis/AnalysisView.tsx
index 0047d6c501a1a73776a2652111f7b460de643e6e..85e543aca28f0ce4ed04e8fab04ce12505fd3326 100644
--- a/src/components/Analysis/AnalysisView.tsx
+++ b/src/components/Analysis/AnalysisView.tsx
@@ -26,7 +26,6 @@ const AnalysisView = () => {
     profile: { monthlyAnalysisDate, mailToken },
   } = useAppSelector(state => state.ecolyo)
   const dispatch = useAppDispatch()
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
 
   const dateChartService = new DateChartService()
 
@@ -106,10 +105,7 @@ const AnalysisView = () => {
   return (
     <>
       <CozyBar titleKey="common.title_analysis" />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_analysis"
-      >
+      <Header desktopTitleKey="common.title_analysis">
         <DateNavigator
           disableNext={isLastDateReached(analysisMonth, TimeStep.MONTH)}
           disablePrev={false}
@@ -120,7 +116,7 @@ const AnalysisView = () => {
           timeStep={TimeStep.MONTH}
         />
       </Header>
-      <Content heightOffset={headerHeight}>
+      <Content>
         <MonthlyAnalysis
           saveLastScrollPosition={saveLastScrollPosition}
           scrollPosition={scrollPosition}
diff --git a/src/components/Challenge/ChallengeView.tsx b/src/components/Challenge/ChallengeView.tsx
index d55765ebf5596fe03eb72362b2959a7031e826b7..6affdfee88aa882dd7fa7bd22f07be87ee98b64e 100644
--- a/src/components/Challenge/ChallengeView.tsx
+++ b/src/components/Challenge/ChallengeView.tsx
@@ -21,7 +21,6 @@ const ChallengeView = () => {
   const cardWidth =
     window.outerWidth < 500 ? window.outerWidth - marginPx * 6 : 285
   const cardHeight = window.outerHeight * 0.65
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
   const [touchStart, setTouchStart] = useState<number>()
   const [touchEnd, setTouchEnd] = useState<number>()
   const [index, setIndex] = useState<number>(0)
@@ -99,11 +98,8 @@ const ChallengeView = () => {
   return (
     <>
       <CozyBar titleKey="common.title_challenge" />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_challenge"
-      />
-      <Content heightOffset={headerHeight}>
+      <Header desktopTitleKey="common.title_challenge" />
+      <Content>
         <div
           className="challengeSlider"
           onClick={resetValues}
diff --git a/src/components/Challenge/__snapshots__/ChallengeView.spec.tsx.snap b/src/components/Challenge/__snapshots__/ChallengeView.spec.tsx.snap
index 3f3366ca5dc5e7798dbbe06ec4710fca25d1e5c3..0f0c1a5cb86a6d1aa750d9fccde498df95890c96 100644
--- a/src/components/Challenge/__snapshots__/ChallengeView.spec.tsx.snap
+++ b/src/components/Challenge/__snapshots__/ChallengeView.spec.tsx.snap
@@ -8,9 +8,7 @@ exports[`ChallengeView component should be rendered correctly 1`] = `
   <mock-header
     desktoptitlekey="common.title_challenge"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <div
       class="challengeSlider"
     >
diff --git a/src/components/Connection/GRDFConnect/GrdfConnectView.tsx b/src/components/Connection/GRDFConnect/GrdfConnectView.tsx
index 1ecf2d104ed46ae0f455995c9d6da648fbc828bd..8fc09abbe5803f974dc797f28e9829788032f368 100644
--- a/src/components/Connection/GRDFConnect/GrdfConnectView.tsx
+++ b/src/components/Connection/GRDFConnect/GrdfConnectView.tsx
@@ -20,7 +20,6 @@ export enum GrdfStep {
 }
 
 export const GrdfConnectView = () => {
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
   const [launchConnection, setLaunchConnection] = useState(false)
   const navigate = useNavigate()
   const { fluidStatus } = useAppSelector(state => state.ecolyo.global)
@@ -122,11 +121,10 @@ export const GrdfConnectView = () => {
     <>
       <CozyBar titleKey="common.title_gas_connect" displayBackArrow={true} />
       <Header
-        setHeaderHeight={setHeaderHeight}
         desktopTitleKey="common.title_gas_connect"
         displayBackArrow={true}
       />
-      <Content heightOffset={headerHeight}>
+      <Content>
         <div className="connectView">
           <div className="stepContainer">
             <FormProgress
diff --git a/src/components/Connection/SGEConnect/SgeConnectView.spec.tsx b/src/components/Connection/SGEConnect/SgeConnectView.spec.tsx
index d7c9af6ba030bc7974378d9cdb429050d76f1e0f..78c50f9b7869c29d52f36a96039a08bc7c381a1e 100644
--- a/src/components/Connection/SGEConnect/SgeConnectView.spec.tsx
+++ b/src/components/Connection/SGEConnect/SgeConnectView.spec.tsx
@@ -1,16 +1,13 @@
 import { render, screen } from '@testing-library/react'
-import { userEvent } from '@testing-library/user-event'
 import React from 'react'
 import { Provider } from 'react-redux'
 import { BrowserRouter } from 'react-router-dom'
-import * as storeHooks from 'store/hooks'
 import { createMockEcolyoStore } from 'tests/__mocks__/store'
 import SgeConnectView from './SgeConnectView'
 
 jest.mock('components/Content/Content', () => 'mock-content')
 jest.mock('components/Header/CozyBar', () => 'mock-cozybar')
 
-const mockAppDispatch = jest.spyOn(storeHooks, 'useAppDispatch')
 const store = createMockEcolyoStore()
 
 describe('SgeConnectView component', () => {
@@ -28,17 +25,25 @@ describe('SgeConnectView component', () => {
     expect(container).toMatchSnapshot()
   })
 
-  describe('SgeConnectView Navigation methods', () => {
-    it('should call nextStep method', async () => {
-      render(
-        <Provider store={store}>
-          <BrowserRouter>
-            <SgeConnectView />
-          </BrowserRouter>
-        </Provider>
-      )
-      await userEvent.click(screen.getAllByRole('button')[1])
-      expect(mockAppDispatch).toHaveBeenCalled()
+  it('should be on stepIdentity by default with button disabled', async () => {
+    render(
+      <Provider store={store}>
+        <BrowserRouter>
+          <SgeConnectView />
+        </BrowserRouter>
+      </Provider>
+    )
+    expect(
+      screen.getByText('auth.enedissgegrandlyon.identityTitle')
+    ).toBeInTheDocument()
+
+    const prevButton = screen.getByRole('button', {
+      name: 'profile_type.accessibility.button_previous',
+    })
+    const nextButton = screen.getByRole('button', {
+      name: 'profile_type.accessibility.button_next',
     })
+    expect(prevButton).toBeDisabled()
+    expect(nextButton).toBeDisabled()
   })
 })
diff --git a/src/components/Connection/SGEConnect/SgeConnectView.tsx b/src/components/Connection/SGEConnect/SgeConnectView.tsx
index 777e5556efc91f3840a973a9165c46b53b06de1d..99aac17f296715e5cc651abf077ccd18e878a7c7 100644
--- a/src/components/Connection/SGEConnect/SgeConnectView.tsx
+++ b/src/components/Connection/SGEConnect/SgeConnectView.tsx
@@ -33,7 +33,6 @@ const SgeConnectView = () => {
   const [currentStep, setCurrentStep] = useState<SgeStep>(
     SgeStep.IdentityAndPDL
   )
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
 
   const isNextValid = useCallback(() => {
     switch (currentStep) {
@@ -133,11 +132,10 @@ const SgeConnectView = () => {
     <>
       <CozyBar titleKey="common.title_sge_connect" displayBackArrow={true} />
       <Header
-        setHeaderHeight={setHeaderHeight}
         desktopTitleKey="common.title_sge_connect"
         displayBackArrow={true}
       />
-      <Content heightOffset={headerHeight}>
+      <Content>
         <div className="connectView">
           <div className="stepContainer">
             <FormProgress
diff --git a/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx b/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
index ef172bd9d6f3fb0345cd28e4816dc7d881da0b61..afb9b5b3902c398071ee639f1c97dcd327935d1b 100644
--- a/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
+++ b/src/components/Connection/SGEConnect/StepIdentityAndPdl.spec.tsx
@@ -17,55 +17,61 @@ describe('StepIdentityAndPdl component', () => {
     expect(container).toMatchSnapshot()
   })
 
-  describe('should change fields', () => {
-    beforeEach(() => {
-      jest.clearAllMocks()
-      render(
-        <StepIdentityAndPdl
-          sgeState={mockGlobalState.sgeConnect}
-          onChange={mockHandleChange}
-        />
-      )
-    })
-    it('should change firstName value', async () => {
-      const firstNameInput = screen.getByRole('textbox', {
-        name: 'auth.enedissgegrandlyon.firstName',
-      })
-      await userEvent.type(firstNameInput, 'n')
-      expect(mockHandleChange).toHaveBeenCalledWith('firstName', 'n')
-    })
-    it('should change lastName value', async () => {
-      const lastNameInput = screen.getByRole('textbox', {
-        name: 'auth.enedissgegrandlyon.lastName',
-      })
-      await userEvent.type(lastNameInput, 'n')
-      expect(mockHandleChange).toHaveBeenCalledWith('lastName', 'n')
+  it('should be able to change fields', async () => {
+    render(
+      <StepIdentityAndPdl
+        sgeState={mockGlobalState.sgeConnect}
+        onChange={mockHandleChange}
+      />
+    )
+    const firstNameInput = screen.getByRole('textbox', {
+      name: 'auth.enedissgegrandlyon.firstName',
     })
-    it('should change pdl value', async () => {
-      const pdlInput = screen.getByRole('spinbutton', {
-        name: 'auth.enedissgegrandlyon.pdlLabel',
-      })
-      await userEvent.type(pdlInput, '0')
-      expect(mockHandleChange).toHaveBeenCalledWith('pdl', '0', 14)
+    await userEvent.type(firstNameInput, 'n')
+    expect(mockHandleChange).toHaveBeenCalledWith('firstName', 'n')
+
+    const lastNameInput = screen.getByRole('textbox', {
+      name: 'auth.enedissgegrandlyon.lastName',
     })
-    it('should open hint modal', async () => {
-      const pdlModalButton = screen.getByRole('button', {
-        name: 'auth.enedissgegrandlyon.pdlModal.title',
-      })
-      await userEvent.click(pdlModalButton)
-      expect(screen.getByRole('dialog')).toBeInTheDocument()
+    await userEvent.type(lastNameInput, 'n')
+    expect(mockHandleChange).toHaveBeenCalledWith('lastName', 'n')
+
+    const pdlInput = screen.getByRole('spinbutton', {
+      name: 'auth.enedissgegrandlyon.pdlLabel',
     })
+    await userEvent.type(pdlInput, '0')
+    expect(mockHandleChange).toHaveBeenCalledWith('pdl', '0', 14)
   })
-  it('should have an existing pdl value', () => {
+
+  it('should open hint modal', async () => {
     render(
       <StepIdentityAndPdl
-        sgeState={{ ...mockGlobalState.sgeConnect, pdl: 11111111111111 }}
+        sgeState={mockGlobalState.sgeConnect}
         onChange={mockHandleChange}
       />
     )
-    const pdlInput = screen.getByRole('spinbutton', {
-      name: 'auth.enedissgegrandlyon.pdlLabel',
+    const pdlModalButton = screen.getByRole('button', {
+      name: 'auth.enedissgegrandlyon.pdlModal.title',
     })
-    expect(pdlInput).toHaveValue(11111111111111)
+    await userEvent.click(pdlModalButton)
+    expect(screen.getByRole('dialog')).toBeInTheDocument()
+  })
+
+  it('should be rendered with values in fields', () => {
+    render(
+      <StepIdentityAndPdl
+        sgeState={{
+          ...mockGlobalState.sgeConnect,
+          pdl: 11111111111111,
+          firstName: 'Zack',
+          lastName: 'Ichan',
+          zipCode: 69003,
+        }}
+        onChange={mockHandleChange}
+      />
+    )
+    expect(screen.getByDisplayValue(11111111111111)).toBeInTheDocument()
+    expect(screen.getByDisplayValue('Zack')).toBeInTheDocument()
+    expect(screen.getByDisplayValue('Ichan')).toBeInTheDocument()
   })
 })
diff --git a/src/components/Connection/SGEConnect/__snapshots__/SgeConnectView.spec.tsx.snap b/src/components/Connection/SGEConnect/__snapshots__/SgeConnectView.spec.tsx.snap
index 9b3fe3495ddab6c2dc20ce859e0800fca2a1b127..cdc58037adb76fba73cd409447e624c664bda733 100644
--- a/src/components/Connection/SGEConnect/__snapshots__/SgeConnectView.spec.tsx.snap
+++ b/src/components/Connection/SGEConnect/__snapshots__/SgeConnectView.spec.tsx.snap
@@ -76,9 +76,7 @@ exports[`SgeConnectView component should be rendered correctly 1`] = `
       class="header-bar"
     />
   </header>
-  <mock-content
-    heightoffset="-48"
-  >
+  <mock-content>
     <div
       class="connectView"
     >
diff --git a/src/components/Consumption/ConsumptionView.tsx b/src/components/Consumption/ConsumptionView.tsx
index 9fd4340a52517ed7256b032a789b756cbeb30d03..0f00bd72eee46238eee489a97a16ed05d8c48cb6 100644
--- a/src/components/Consumption/ConsumptionView.tsx
+++ b/src/components/Consumption/ConsumptionView.tsx
@@ -53,7 +53,6 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => {
     releaseNotes.show
   )
 
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
   const [active, setActive] = useState<boolean>(false)
   const [openExpiredConsentModal, setOpenExpiredConsentModal] =
     useState<boolean>(true)
@@ -214,10 +213,7 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => {
   return (
     <>
       <CozyBar titleKey="common.title_consumption" />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_consumption"
-      >
+      <Header desktopTitleKey="common.title_consumption">
         <DateNavigator
           disableNext={isLastDateReached(selectedDate, currentTimeStep)}
           disablePrev={disablePrev}
@@ -227,7 +223,7 @@ const ConsumptionView = ({ fluidType }: { fluidType: FluidType }) => {
           timeStep={currentTimeStep}
         />
       </Header>
-      <Content heightOffset={headerHeight}>
+      <Content>
         <FluidButtons activeFluid={fluidType} key={updateKey} />
 
         {fluidType === FluidType.GAS &&
diff --git a/src/components/Content/Content.tsx b/src/components/Content/Content.tsx
index c3674fab4235568755913bb00c4ff131373ea883..f30e26160617fbeb18479fcec8327522b93e548a 100644
--- a/src/components/Content/Content.tsx
+++ b/src/components/Content/Content.tsx
@@ -4,14 +4,12 @@ import React, { useEffect } from 'react'
 import { changeScreenType } from 'store/global/global.slice'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import './content.scss'
-interface ContentProps {
-  children: React.ReactNode
-  heightOffset?: number
-}
 
-const Content = ({ children, heightOffset = 0 }: ContentProps) => {
+const Content = ({ children }: { children: React.ReactNode }) => {
   const dispatch = useAppDispatch()
-  const { screenType } = useAppSelector(state => state.ecolyo.global)
+  const { screenType, headerHeight } = useAppSelector(
+    state => state.ecolyo.global
+  )
 
   const cozyBarHeight = 48
   const cozyNavHeight = 56
@@ -44,11 +42,11 @@ const Content = ({ children, heightOffset = 0 }: ContentProps) => {
       <div
         className="content-view"
         style={{
-          marginTop: heightOffset,
+          marginTop: headerHeight,
           paddingBottom: 0,
           minHeight:
             screenType !== ScreenType.DESKTOP
-              ? `calc(100vh - ${heightOffset}px - ${cozyBarHeight}px - ${cozyNavHeight}px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - env(safe-area-inset-bottom))`
+              ? `calc(100vh - ${headerHeight}px - ${cozyBarHeight}px - ${cozyNavHeight}px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - env(safe-area-inset-bottom))`
               : `unset`,
         }}
       >
diff --git a/src/components/Content/__snapshots__/Content.spec.tsx.snap b/src/components/Content/__snapshots__/Content.spec.tsx.snap
index 9fc72e1b3ca438b10ddb746aec2a30352432ed49..608a28e19dae437364ac8de19f5e836218911dc5 100644
--- a/src/components/Content/__snapshots__/Content.spec.tsx.snap
+++ b/src/components/Content/__snapshots__/Content.spec.tsx.snap
@@ -4,7 +4,7 @@ exports[`Content component should match snapshot 1`] = `
 <div>
   <div
     class="content-view"
-    style="margin-top: 0px; padding-bottom: 0px; min-height: calc(100vh - 0px - 48px - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - env(safe-area-inset-bottom));"
+    style="margin-top: 62px; padding-bottom: 0px; min-height: calc(100vh - 62px - 48px - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - env(safe-area-inset-bottom));"
   >
     children
   </div>
diff --git a/src/components/Duel/DuelView.tsx b/src/components/Duel/DuelView.tsx
index 1c60115ab09cdfac9793d86f43417f5f6763b3c2..b4004e0732b552ae5393eaa7b1ab0d8b32630ec3 100644
--- a/src/components/Duel/DuelView.tsx
+++ b/src/components/Duel/DuelView.tsx
@@ -3,7 +3,7 @@ import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import { UserDuelState } from 'enums'
 import { UserChallenge } from 'models'
-import React, { useState } from 'react'
+import React from 'react'
 import { useLocation, useNavigate } from 'react-router-dom'
 import { useAppSelector } from 'store/hooks'
 import DuelEmptyValueModal from './DuelEmptyValueModal/DuelEmptyValueModal'
@@ -14,7 +14,6 @@ import DuelUnlocked from './DuelUnlocked/DuelUnlocked'
 const DuelView = () => {
   const navigate = useNavigate()
   const { userChallengeList } = useAppSelector(state => state.ecolyo.challenge)
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
   const id = new URLSearchParams(useLocation().search).get('id')
   const challengeToDisplay: UserChallenge | undefined = userChallengeList.find(
     challenge => challenge.id === id
@@ -46,14 +45,8 @@ const DuelView = () => {
   return (
     <>
       <CozyBar titleKey="common.title_duel" displayBackArrow={true} />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_duel"
-        displayBackArrow={true}
-      />
-      <Content heightOffset={headerHeight}>
-        {renderDuel(challengeToDisplay)}
-      </Content>
+      <Header desktopTitleKey="common.title_duel" displayBackArrow={true} />
+      <Content>{renderDuel(challengeToDisplay)}</Content>
     </>
   )
 }
diff --git a/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.tsx b/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.tsx
index 78ef552bf893e62b384b11b20cb1274ab607098a..c4bf6436168bc290dd586869332eacff4c980af0 100644
--- a/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.tsx
+++ b/src/components/Ecogesture/EcogestureNotFound/EcogestureNotFound.tsx
@@ -5,7 +5,7 @@ import Content from 'components/Content/Content'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import { useI18n } from 'cozy-ui/transpiled/react/I18n'
-import React, { useState } from 'react'
+import React from 'react'
 import { useNavigate } from 'react-router-dom'
 import './ecogestureNotFound.scss'
 
@@ -18,16 +18,12 @@ const EcogestureNotFound = ({
 }) => {
   const { t } = useI18n()
   const navigate = useNavigate()
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
 
   return (
     <>
       <CozyBar titleKey="error_page.main" />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="error_page.main"
-      />
-      <Content heightOffset={headerHeight}>
+      <Header desktopTitleKey="error_page.main" />
+      <Content>
         <div className="error-container">
           <StyledIcon className="profile-icon" icon={BearIcon} size={250} />
 
diff --git a/src/components/Ecogesture/EcogestureNotFound/__snapshots__/EcogestureNotFound.spec.tsx.snap b/src/components/Ecogesture/EcogestureNotFound/__snapshots__/EcogestureNotFound.spec.tsx.snap
index a991c215c20992f6faf548741dfa93c8fe97e850..c6390dcbde7545e575c73c7134cb4eac3b4bc6a4 100644
--- a/src/components/Ecogesture/EcogestureNotFound/__snapshots__/EcogestureNotFound.spec.tsx.snap
+++ b/src/components/Ecogesture/EcogestureNotFound/__snapshots__/EcogestureNotFound.spec.tsx.snap
@@ -8,9 +8,7 @@ exports[`EcogestureNotFound component should be rendered correctly 1`] = `
   <mock-header
     desktoptitlekey="error_page.main"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <div
       class="error-container"
     >
diff --git a/src/components/Ecogesture/EcogestureTabsView.tsx b/src/components/Ecogesture/EcogestureTabsView.tsx
index a0491c0974d72c455e4ef61e9ec607394e6a465a..73492100aa51f1c9e88db3a045de3c4a348bf851 100644
--- a/src/components/Ecogesture/EcogestureTabsView.tsx
+++ b/src/components/Ecogesture/EcogestureTabsView.tsx
@@ -47,7 +47,6 @@ const EcogestureTabsView = () => {
     state => state.ecolyo
   )
 
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
   const [tabValue, setTabValue] = useState<EcogestureTab>(
     tab ? parseInt(tab) : EcogestureTab.OBJECTIVE
   )
@@ -173,10 +172,7 @@ const EcogestureTabsView = () => {
   return (
     <>
       <CozyBar titleKey="common.title_ecogestures" />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_ecogestures"
-      >
+      <Header desktopTitleKey="common.title_ecogestures">
         <Tabs
           value={tabValue}
           className="ecogestures-tabs"
@@ -215,7 +211,7 @@ const EcogestureTabsView = () => {
         </Tabs>
       </Header>
 
-      <Content heightOffset={headerHeight}>
+      <Content>
         {isLoading && (
           <div className="loaderContainer">
             <Loader text={t('ecogestures.loading')} />
diff --git a/src/components/Ecogesture/SingleEcogestureView.tsx b/src/components/Ecogesture/SingleEcogestureView.tsx
index 7f2c228dfa79fbf77c7a95633d6d9cd4c8211941..ee8465dcb2e964639066d7e48887bb653a2d2fcd 100644
--- a/src/components/Ecogesture/SingleEcogestureView.tsx
+++ b/src/components/Ecogesture/SingleEcogestureView.tsx
@@ -42,7 +42,6 @@ const SingleEcogestureView = () => {
     [client]
   )
   const { currentChallenge } = useAppSelector(state => state.ecolyo.challenge)
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
   const [, setValidExploration] = useExploration()
 
   const updateEcogesture = useCallback(
@@ -115,11 +114,10 @@ const SingleEcogestureView = () => {
     <>
       <CozyBar titleKey="common.title_ecogesture" displayBackArrow={true} />
       <Header
-        setHeaderHeight={setHeaderHeight}
         desktopTitleKey="common.title_ecogesture"
         displayBackArrow={true}
       />
-      <Content heightOffset={headerHeight}>
+      <Content>
         {isLoading && (
           <div className="loaderContainer">
             <Loader />
diff --git a/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap b/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
index e8ada2259dc01776e81f24afd7453e4054a9b768..005a8b9c5f797d13770f0b54ef608a7b9c551ef5 100644
--- a/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
+++ b/src/components/Ecogesture/__snapshots__/EcogestureTabsView.spec.tsx.snap
@@ -90,9 +90,7 @@ exports[`EcogestureView component should be rendered correctly 1`] = `
       </div>
     </div>
   </mock-header>
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <div
       aria-labelledby="simple-tab-0"
       id="simple-tabpanel-0"
diff --git a/src/components/Ecogesture/__snapshots__/SingleEcogestureView.spec.tsx.snap b/src/components/Ecogesture/__snapshots__/SingleEcogestureView.spec.tsx.snap
index d5009811f16c175b7b06d0b1940e281c59c30564..e035305baaeb0458c5215c6fdfcca0a0defea995 100644
--- a/src/components/Ecogesture/__snapshots__/SingleEcogestureView.spec.tsx.snap
+++ b/src/components/Ecogesture/__snapshots__/SingleEcogestureView.spec.tsx.snap
@@ -10,9 +10,7 @@ exports[`SingleEcogesture component should be rendered correctly 1`] = `
     desktoptitlekey="common.title_ecogesture"
     displaybackarrow="true"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <div
       class="single-ecogesture"
     >
diff --git a/src/components/EcogestureForm/EcogestureFormView.tsx b/src/components/EcogestureForm/EcogestureFormView.tsx
index dc4e57379310b77bddf7fa3b1bf3f3f6011e298a..1e51c9785fa35b30bc9b830b3c70d6c83363d31b 100644
--- a/src/components/EcogestureForm/EcogestureFormView.tsx
+++ b/src/components/EcogestureForm/EcogestureFormView.tsx
@@ -22,7 +22,6 @@ const EcogestureFormView = () => {
     profile: { isProfileTypeCompleted },
     profileEcogesture,
   } = useAppSelector(state => state.ecolyo)
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
 
   const shouldOpenModal = new URLSearchParams(useLocation().search).get('modal')
   const [step, setStep] = useState<EcogestureStepForm>(
@@ -91,11 +90,8 @@ const EcogestureFormView = () => {
   return (
     <>
       <CozyBar titleKey="common.title_ecogestures" />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_ecogestures"
-      />
-      <Content heightOffset={headerHeight}>
+      <Header desktopTitleKey="common.title_ecogestures" />
+      <Content>
         {isLoading && (
           <div className="loaderContainer">
             <Loader />
diff --git a/src/components/EcogestureForm/__snapshots__/EcogestureFormView.spec.tsx.snap b/src/components/EcogestureForm/__snapshots__/EcogestureFormView.spec.tsx.snap
index b759c1dabdb8f7bb39bb2352dfd9b5ce5e328f6a..843e5be16fa4073f91f44198153361d2f5bec129 100644
--- a/src/components/EcogestureForm/__snapshots__/EcogestureFormView.spec.tsx.snap
+++ b/src/components/EcogestureForm/__snapshots__/EcogestureFormView.spec.tsx.snap
@@ -8,9 +8,7 @@ exports[`EcogestureFormView component should be rendered correctly 1`] = `
   <mock-header
     desktoptitlekey="common.title_ecogestures"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <div
       class="ecogesture-profile-container"
     >
diff --git a/src/components/EcogestureSelection/EcogestureSelectionView.tsx b/src/components/EcogestureSelection/EcogestureSelectionView.tsx
index 749060770df62a29fd23f39092b29e6331b86dd1..bab8b655bdafe7fa35c090c19b94cb5ea4bc9ce2 100644
--- a/src/components/EcogestureSelection/EcogestureSelectionView.tsx
+++ b/src/components/EcogestureSelection/EcogestureSelectionView.tsx
@@ -21,7 +21,6 @@ const EcogestureSelectionView = () => {
   const navigate = useNavigate()
   const { profileEcogesture } = useAppSelector(state => state.ecolyo)
   const [isLoading, setIsLoading] = useState(true)
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
   const [indexEcogesture, setIndexEcogesture] = useState<number>(0)
   const [ecogestureList, setEcogestureList] = useState<Ecogesture[]>([])
   const [totalViewed, setTotalViewed] = useState<number>(0)
@@ -133,7 +132,6 @@ const EcogestureSelectionView = () => {
         backFunction={() => navigate('/ecogestures')}
       />
       <Header
-        setHeaderHeight={setHeaderHeight}
         desktopTitleKey="common.title_ecogestures_choice"
         displayBackArrow={true}
       >
@@ -143,7 +141,7 @@ const EcogestureSelectionView = () => {
             : ''}
         </div>
       </Header>
-      <Content heightOffset={headerHeight}>
+      <Content>
         {isLoading && (
           <div className="loaderContainer">
             <Loader />
diff --git a/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionView.spec.tsx.snap b/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionView.spec.tsx.snap
index d27b25cb74a62bbd1fb43d742645ba4059225031..b93b5cb8ea5343e60e55b3450120df58ffaf7ab9 100644
--- a/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionView.spec.tsx.snap
+++ b/src/components/EcogestureSelection/__snapshots__/EcogestureSelectionView.spec.tsx.snap
@@ -16,9 +16,7 @@ exports[`EcogestureSelection component should be rendered correctly 1`] = `
       1/1
     </div>
   </mock-header>
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <mock-ecogestureselectiondetail
       ecogesture="[object Object]"
       title="Bonhomme de neige"
diff --git a/src/components/Exploration/ExplorationView.tsx b/src/components/Exploration/ExplorationView.tsx
index 54106238c9db76a3568939e1d8555de613288457..ccde8fdb71798e3b0d362c581504a822cdfee278 100644
--- a/src/components/Exploration/ExplorationView.tsx
+++ b/src/components/Exploration/ExplorationView.tsx
@@ -3,7 +3,7 @@ import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import { UserExplorationState } from 'enums'
 import { UserChallenge } from 'models'
-import React, { useState } from 'react'
+import React from 'react'
 import { useAppSelector } from 'store/hooks'
 import ExplorationError from './ExplorationError'
 import ExplorationFinished from './ExplorationFinished'
@@ -11,7 +11,6 @@ import ExplorationOngoing from './ExplorationOngoing'
 
 const ExplorationView = () => {
   const { currentChallenge } = useAppSelector(state => state.ecolyo.challenge)
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
 
   const renderExploration = (challenge: UserChallenge) => {
     switch (challenge.exploration.state) {
@@ -30,11 +29,10 @@ const ExplorationView = () => {
     <>
       <CozyBar titleKey="common.title_exploration" displayBackArrow={true} />
       <Header
-        setHeaderHeight={setHeaderHeight}
         desktopTitleKey="common.title_exploration"
         displayBackArrow={true}
       />
-      <Content heightOffset={headerHeight}>
+      <Content>
         {currentChallenge && renderExploration(currentChallenge)}
       </Content>
     </>
diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx
index 9eba353d66a8156dd0a837e4a749c8b2271de4c3..b200f36a72621b30f136f0bc0c38706c9eb30129 100644
--- a/src/components/Header/Header.tsx
+++ b/src/components/Header/Header.tsx
@@ -6,6 +6,7 @@ import Icon from 'cozy-ui/transpiled/react/Icon'
 import { ScreenType } from 'enums'
 import React, { useCallback, useEffect, useRef } from 'react'
 import { useNavigate } from 'react-router-dom'
+import { setHeaderHeight } from 'store/global/global.slice'
 import { useAppDispatch, useAppSelector } from 'store/hooks'
 import { openFeedbackModal } from 'store/modal/modal.slice'
 import './header.scss'
@@ -16,7 +17,6 @@ interface HeaderProps {
   displayBackArrow?: boolean
   /** additional information to put below the main header */
   children?: React.ReactNode
-  setHeaderHeight(height: number): void
   backFunction?: () => void
 }
 
@@ -25,7 +25,6 @@ const Header = ({
   desktopTitleKey,
   displayBackArrow,
   children,
-  setHeaderHeight,
   backFunction,
 }: HeaderProps) => {
   const { t } = useI18n()
@@ -50,8 +49,8 @@ const Header = ({
   useEffect(() => {
     const headerHeight = header.current?.clientHeight || 0
     const adjustment = screenType === ScreenType.MOBILE ? cozyBarHeight : 0
-    setHeaderHeight(headerHeight - adjustment)
-  }, [screenType, children, setHeaderHeight])
+    dispatch(setHeaderHeight(headerHeight - adjustment))
+  }, [screenType, children, dispatch])
 
   return (
     <header ref={header}>
diff --git a/src/components/Options/GCU/GCUView.tsx b/src/components/Options/GCU/GCUView.tsx
index d5d525e538062eb138d3f08c670643efef9337c3..9f4e06c97017ace8a703e8db29d4229e106b950a 100644
--- a/src/components/Options/GCU/GCUView.tsx
+++ b/src/components/Options/GCU/GCUView.tsx
@@ -2,20 +2,14 @@ import Content from 'components/Content/Content'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import GCUContent from 'components/Options/GCU/GCUContent'
-import React, { useState } from 'react'
+import React from 'react'
 
 const GCUView = () => {
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
-
   return (
     <>
       <CozyBar titleKey="common.title_gcu" displayBackArrow={true} />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_gcu"
-        displayBackArrow={true}
-      />
-      <Content heightOffset={headerHeight}>
+      <Header desktopTitleKey="common.title_gcu" displayBackArrow={true} />
+      <Content>
         <GCUContent />
       </Content>
     </>
diff --git a/src/components/Options/GCU/__snapshots__/GCUView.spec.tsx.snap b/src/components/Options/GCU/__snapshots__/GCUView.spec.tsx.snap
index f5c466c4d47f425be2d8979d1c5a2995a763982b..918984408f738a1e931094280581679954ed37ce 100644
--- a/src/components/Options/GCU/__snapshots__/GCUView.spec.tsx.snap
+++ b/src/components/Options/GCU/__snapshots__/GCUView.spec.tsx.snap
@@ -10,9 +10,7 @@ exports[`GCUView component should be rendered correctly 1`] = `
     desktoptitlekey="common.title_gcu"
     displaybackarrow="true"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <div
       class="gcu-content-root"
     >
diff --git a/src/components/Options/LegalNotice/LegalNoticeView.tsx b/src/components/Options/LegalNotice/LegalNoticeView.tsx
index 4c68ee2a1b48cca408a1cae207e24ca4464cd182..660a1f14806934a8e5db9378dc5aed686b227709 100644
--- a/src/components/Options/LegalNotice/LegalNoticeView.tsx
+++ b/src/components/Options/LegalNotice/LegalNoticeView.tsx
@@ -1,22 +1,19 @@
 import Content from 'components/Content/Content'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
-import React, { useState } from 'react'
+import React from 'react'
 import LegalNoticeContent from './LegalNoticeContent'
 import './legalNoticeView.scss'
 
 const LegalNoticeView = () => {
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
-
   return (
     <>
       <CozyBar titleKey="common.title_legal_notice" displayBackArrow={true} />
       <Header
-        setHeaderHeight={setHeaderHeight}
         desktopTitleKey="common.title_legal_notice"
         displayBackArrow={true}
       />
-      <Content heightOffset={headerHeight}>
+      <Content>
         <LegalNoticeContent />
       </Content>
     </>
diff --git a/src/components/Options/LegalNotice/__snapshots__/LegalNoticeView.spec.tsx.snap b/src/components/Options/LegalNotice/__snapshots__/LegalNoticeView.spec.tsx.snap
index f236decc8ad65984c4fd9640a1be5cb9915c238d..cfcafe24c35d3ffa8d738027f2c04c6107e1a8c2 100644
--- a/src/components/Options/LegalNotice/__snapshots__/LegalNoticeView.spec.tsx.snap
+++ b/src/components/Options/LegalNotice/__snapshots__/LegalNoticeView.spec.tsx.snap
@@ -10,9 +10,7 @@ exports[`LegalNoticeView component should be rendered correctly 1`] = `
     desktoptitlekey="common.title_legal_notice"
     displaybackarrow="true"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <div
       class="legal-notice-root"
     >
diff --git a/src/components/Options/OptionsView.tsx b/src/components/Options/OptionsView.tsx
index 8da4b6a0fb4b806e59c4fd3fd206f89c00333724..21cd96a2ce4c7b4ad09e9141cb61f2eca33ff430 100644
--- a/src/components/Options/OptionsView.tsx
+++ b/src/components/Options/OptionsView.tsx
@@ -2,7 +2,7 @@ import logos from 'assets/png/logos_partenaires.svg'
 import Content from 'components/Content/Content'
 import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
-import React, { useState } from 'react'
+import React from 'react'
 import Accessibility from './Accessibility/Accessibility'
 import ExportData from './ExportData/ExportData'
 import GCULink from './GCU/GCULink'
@@ -14,16 +14,11 @@ import ReportOptions from './ReportOptions/ReportOptions'
 import Version from './Version/Version'
 
 const OptionsView = () => {
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
-
   return (
     <>
       <CozyBar titleKey="common.title_options" />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_options"
-      />
-      <Content heightOffset={headerHeight}>
+      <Header desktopTitleKey="common.title_options" />
+      <Content>
         <ProfileTypeOptions />
         <ExportData />
         <ReportOptions />
diff --git a/src/components/Options/__snapshots__/OptionsView.spec.tsx.snap b/src/components/Options/__snapshots__/OptionsView.spec.tsx.snap
index eee51c9ad1383e8c55bd7bbb53ab0d99fe3e5af1..7fb5e230cdcb6ac88ed868538296e64bed7c86e7 100644
--- a/src/components/Options/__snapshots__/OptionsView.spec.tsx.snap
+++ b/src/components/Options/__snapshots__/OptionsView.spec.tsx.snap
@@ -8,9 +8,7 @@ exports[`OptionsView component should be rendered correctly 1`] = `
   <mock-header
     desktoptitlekey="common.title_options"
   />
-  <mock-content
-    heightoffset="0"
-  >
+  <mock-content>
     <div
       class="profile-type-root"
     >
diff --git a/src/components/ProfileType/ProfileTypeView.tsx b/src/components/ProfileType/ProfileTypeView.tsx
index 2436c5bd0203f363949993fd39c456cb4f2e632a..d7c716aab43ddbf67ac87bb35a3b855bb4466f9b 100644
--- a/src/components/ProfileType/ProfileTypeView.tsx
+++ b/src/components/ProfileType/ProfileTypeView.tsx
@@ -37,7 +37,6 @@ const ProfileTypeView = () => {
     state => state.ecolyo
   )
 
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
   const [currentProfileType, setCurrentProfileType] = useState<ProfileType>({
     updateDate: DateTime.local()
       .setZone('utc', {
@@ -225,11 +224,10 @@ const ProfileTypeView = () => {
     <>
       <CozyBar titleKey="common.title_profiletype" displayBackArrow={true} />
       <Header
-        setHeaderHeight={setHeaderHeight}
         desktopTitleKey="common.title_profiletype"
         displayBackArrow={true}
       />
-      <Content heightOffset={headerHeight}>
+      <Content>
         <div className="profileType-view">
           <div className="progressContainer">
             <FormProgress
diff --git a/src/components/Quiz/QuizView.tsx b/src/components/Quiz/QuizView.tsx
index 380346fbe0fba125cf5b63b232dccee3b2f28b45..fc45df655cf53bcc4fc6851edb1b6ecb2d87a4b0 100644
--- a/src/components/Quiz/QuizView.tsx
+++ b/src/components/Quiz/QuizView.tsx
@@ -3,7 +3,7 @@ import CozyBar from 'components/Header/CozyBar'
 import Header from 'components/Header/Header'
 import { UserQuizState } from 'enums'
 import { UserChallenge } from 'models'
-import React, { useState } from 'react'
+import React from 'react'
 import { useAppSelector } from 'store/hooks'
 import QuizBegin from './QuizBegin/QuizBegin'
 import QuizFinish from './QuizFinish/QuizFinish'
@@ -11,7 +11,6 @@ import QuizQuestion from './QuizQuestion/QuizQuestion'
 
 const QuizView = () => {
   const { currentChallenge } = useAppSelector(state => state.ecolyo.challenge)
-  const [headerHeight, setHeaderHeight] = useState<number>(0)
 
   const renderQuiz = (challenge: UserChallenge) => {
     switch (challenge.quiz.state) {
@@ -29,14 +28,8 @@ const QuizView = () => {
   return (
     <>
       <CozyBar titleKey="common.title_quiz" displayBackArrow={true} />
-      <Header
-        setHeaderHeight={setHeaderHeight}
-        desktopTitleKey="common.title_quiz"
-        displayBackArrow={true}
-      />
-      <Content heightOffset={headerHeight}>
-        {currentChallenge && renderQuiz(currentChallenge)}
-      </Content>
+      <Header desktopTitleKey="common.title_quiz" displayBackArrow={true} />
+      <Content>{currentChallenge && renderQuiz(currentChallenge)}</Content>
     </>
   )
 }
diff --git a/src/models/global.model.ts b/src/models/global.model.ts
index 8885c78cd72d5debe8c04da2c799feef04e131c2..d0542952106660c0f2531adef5293c390a2a96b6 100644
--- a/src/models/global.model.ts
+++ b/src/models/global.model.ts
@@ -20,4 +20,5 @@ export interface GlobalState {
   partnersInfo: PartnersInfo
   ecogestureFilter: Usage
   lastEpglLogin: string
+  headerHeight: number
 }
diff --git a/src/store/global/global.slice.spec.ts b/src/store/global/global.slice.spec.ts
index 922f49c5768bb2fdab9e01738d6b75995eb6f5d2..494fe6fc6ab85a041c27694269deca550f0978a7 100644
--- a/src/store/global/global.slice.spec.ts
+++ b/src/store/global/global.slice.spec.ts
@@ -11,6 +11,7 @@ import {
   changeScreenType,
   globalSlice,
   setFluidStatus,
+  setHeaderHeight,
   setLastEpglLogin,
   setPartnersInfo,
   setShouldRefreshConsent,
@@ -113,6 +114,13 @@ describe('globalSlice', () => {
       screenType: ScreenType.DESKTOP,
     })
   })
+  it('should handle setHeaderHeight', () => {
+    const state = globalSlice.reducer(mockGlobalState, setHeaderHeight(100))
+    expect(state).toEqual({
+      ...mockGlobalState,
+      headerHeight: 100,
+    })
+  })
   it('should handle toggleChallengeExplorationNotification', () => {
     const state = globalSlice.reducer(
       mockGlobalState,
diff --git a/src/store/global/global.slice.ts b/src/store/global/global.slice.ts
index 3ef644bdb48c652f188905fcd3dfd67f1c31e043..f93aada9ec5f5ef8d0d77b340694d312f902b06b 100644
--- a/src/store/global/global.slice.ts
+++ b/src/store/global/global.slice.ts
@@ -12,6 +12,7 @@ import {
 } from 'models'
 
 const initialState: GlobalState = {
+  headerHeight: 62,
   screenType: ScreenType.MOBILE,
   releaseNotes: {
     show: false,
@@ -153,6 +154,9 @@ export const globalSlice = createSlice({
   name: 'global',
   initialState,
   reducers: {
+    setHeaderHeight: (state, action: PayloadAction<number>) => {
+      state.headerHeight = action.payload
+    },
     changeScreenType: (state, action: PayloadAction<ScreenType>) => {
       state.screenType = action.payload
     },
@@ -214,6 +218,7 @@ export const globalSlice = createSlice({
 })
 
 export const {
+  setHeaderHeight,
   changeScreenType,
   setFluidStatus,
   setLastEpglLogin,
diff --git a/tests/__mocks__/store/global.state.mock.ts b/tests/__mocks__/store/global.state.mock.ts
index ddc0d309f58fab3acdb351c8541b654f6df8e8a6..3c19efac32e4edefa90cb524f770d0c4d5b496f8 100644
--- a/tests/__mocks__/store/global.state.mock.ts
+++ b/tests/__mocks__/store/global.state.mock.ts
@@ -3,6 +3,7 @@ import { FluidSlugType, FluidState, FluidType, ScreenType, Usage } from 'enums'
 import { GlobalState } from 'models'
 
 export const mockGlobalState: GlobalState = {
+  headerHeight: 62,
   screenType: ScreenType.MOBILE,
   challengeExplorationNotification: false,
   challengeActionNotification: false,