diff --git a/src/app/components/LiteModeButton/index.styles.tsx b/src/app/components/LiteModeButton/index.styles.tsx
new file mode 100644
index 00000000000..7fdbd76916d
--- /dev/null
+++ b/src/app/components/LiteModeButton/index.styles.tsx
@@ -0,0 +1,46 @@
+import pixelsToRem from '#app/utilities/pixelsToRem';
+import { css, Theme } from '@emotion/react';
+
+export default {
+ container: ({ palette, fontSizes, fontVariants, spacings }: Theme) =>
+ css({
+ color: `${palette.BLACK}`,
+ backgroundColor: `${palette.POSTBOX}`,
+ border: `${pixelsToRem(1)}rem solid ${palette.WHITE}`,
+ '&:nth-child(2)': {
+ ...fontSizes.minion,
+ ...fontVariants.sansRegular,
+ margin: `0.5rem 0.3rem`,
+ display: 'flex',
+ flexDirection: 'column',
+ '& span': {
+ display: 'block',
+ padding: `0.1rem 0.4rem`,
+ flex: '1',
+ alignItems: 'center',
+ },
+ },
+ '&:nth-child(1)': {
+ ...fontSizes.brevier,
+ ...fontVariants.sansRegular,
+ margin: `${pixelsToRem(2)}rem`,
+ padding: `0 ${pixelsToRem(2)}rem`,
+ '& span': {
+ padding: `${spacings.HALF}rem ${spacings.FULL}rem`,
+ margin: `${pixelsToRem(2)}rem 0`,
+ },
+ },
+ }),
+ mode: ({ palette }: Theme) =>
+ css({
+ display: 'inline-block',
+ color: `${palette.WHITE}`,
+ backgroundColor: `${palette.POSTBOX}`,
+ textAlign: 'center',
+ }),
+ on: ({ palette }: Theme) =>
+ css({
+ backgroundColor: `${palette.WHITE}`,
+ color: `${palette.BLACK}`,
+ }),
+};
diff --git a/src/app/components/LiteModeButton/index.tsx b/src/app/components/LiteModeButton/index.tsx
new file mode 100644
index 00000000000..b5873048a62
--- /dev/null
+++ b/src/app/components/LiteModeButton/index.tsx
@@ -0,0 +1,34 @@
+import { use } from 'react';
+import { RequestContext } from '#app/contexts/RequestContext';
+import { AUDIO_PAGE, MEDIA_ARTICLE_PAGE } from '#app/routes/utils/pageTypes';
+import useClickTrackerHandler from '#app/hooks/useClickTrackerHandler';
+import { PageTypes } from '#app/models/types/global';
+import CallToActionLink from '../CallToActionLink';
+import style from './index.styles';
+
+const ignoreList = [MEDIA_ARTICLE_PAGE, AUDIO_PAGE] as PageTypes[];
+
+export default () => {
+ const { canonicalLink, isLite, pageType } = use(RequestContext);
+ const clickTrackerHandler = useClickTrackerHandler({
+ componentName: `switch-to-${isLite ? 'canonical' : 'lite'}`,
+ });
+
+ if (ignoreList.includes(pageType)) {
+ return null;
+ }
+
+ const liteLink = `${canonicalLink}.lite`;
+
+ return (
+