diff --git a/assets/js/215698ba.919d4861.js b/assets/js/215698ba.fbe16a1e.js
similarity index 97%
rename from assets/js/215698ba.919d4861.js
rename to assets/js/215698ba.fbe16a1e.js
index 2a6b1918..c7ecb6b9 100644
--- a/assets/js/215698ba.919d4861.js
+++ b/assets/js/215698ba.fbe16a1e.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkignite_cookbook=self.webpackChunkignite_cookbook||[]).push([[492],{8392:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>d,default:()=>m,frontMatter:()=>i,metadata:()=>c,toc:()=>h});var o=n(7624),r=n(2172),s=n(1268),a=n(5388),l=n(1608);const i={title:"Theming Ignite with styled-components",description:"Learn how to use different styling libraries to theme your Ignited app!",tags:["Theming","iOS","Android","colors","darkmode","styled-components"],last_update:{author:"Mark Rickert"},publish_date:new Date("2024-12-02T00:00:00.000Z")},d="Theming Ignite",c={id:"recipes/Theming-StyledComponents",title:"Theming Ignite with styled-components",description:"Learn how to use different styling libraries to theme your Ignited app!",source:"@site/docs/recipes/Theming-StyledComponents.mdx",sourceDirName:"recipes",slug:"/recipes/Theming-StyledComponents",permalink:"/docs/recipes/Theming-StyledComponents",draft:!1,unlisted:!1,tags:[{label:"Theming",permalink:"/docs/tags/theming"},{label:"iOS",permalink:"/docs/tags/i-os"},{label:"Android",permalink:"/docs/tags/android"},{label:"colors",permalink:"/docs/tags/colors"},{label:"darkmode",permalink:"/docs/tags/darkmode"},{label:"styled-components",permalink:"/docs/tags/styled-components"}],version:"current",lastUpdatedBy:"Mark Rickert",lastUpdatedAt:1728940271,formattedLastUpdatedAt:"Oct 14, 2024",frontMatter:{title:"Theming Ignite with styled-components",description:"Learn how to use different styling libraries to theme your Ignited app!",tags:["Theming","iOS","Android","colors","darkmode","styled-components"],last_update:{author:"Mark Rickert"},publish_date:"2024-12-02T00:00:00.000Z"},sidebar:"mainSidebar",previous:{title:"Theming Ignite with Emotion.js",permalink:"/docs/recipes/Theming-Emotion"},next:{title:"Theming Ignite with Unistyles",permalink:"/docs/recipes/Theming-Unistyles"}},u={},h=[{value:"Using
styled-components
",id:"using-styled-components",level:2},{value:"1. Add
styled-components
to your app:",id:"1-add-styled-components-to-your-app",level:3},{value:"2. Add the
ThemeProvider
to your app:",id:"2-add-the-themeprovider-to-your-app",level:3},{value:"3. Create and use your first styled-component using the new theme:",id:"3-create-and-use-your-first-styled-component-using-the-new-theme",level:3},{value:"4. Tell
styled-components
about the shape of your theme:",id:"4-tell-styled-components-about-the-shape-of-your-theme",level:3},{value:"Complete!",id:"complete",level:2}];function p(e){const t={code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,r.M)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"theming-ignite",children:"Theming Ignite"}),"\n",(0,o.jsxs)(t.p,{children:["When it comes to styling we acknowledge the popularity and effectiveness of libraries like ",(0,o.jsx)(t.code,{children:"styled-components"}),", ",(0,o.jsx)(t.code,{children:"emotion.js"})," and ",(0,o.jsx)(t.code,{children:"unistyles"}),". Our boilerplate is designed to work seamlessly with these styling solutions, offering you the flexibility to choose the one that aligns with your preferences and project requirements."]}),"\n",(0,o.jsx)(t.p,{children:"The theming system in Ignite Boilerplate is crafted to be adaptable and easy to customize. By simply replacing colors and fonts through the designated theme files, you can tailor the look and feel of your application."}),"\n",(0,o.jsxs)(t.h2,{id:"using-styled-components",children:["Using ",(0,o.jsx)(t.code,{children:"styled-components"})]}),"\n",(0,o.jsxs)(t.h3,{id:"1-add-styled-components-to-your-app",children:["1. Add ",(0,o.jsx)(t.code,{children:"styled-components"})," to your app:"]}),"\n",(0,o.jsxs)(s.c,{groupId:"operating-systems",children:[(0,o.jsx)(a.c,{value:"yarn",label:"Yarn",children:(0,o.jsx)(l.c,{language:"bash",children:"yarn add styled-components"})}),(0,o.jsx)(a.c,{value:"npm",label:"npm",children:(0,o.jsx)(l.c,{language:"bash",children:"npm install styled-components"})}),(0,o.jsx)(a.c,{value:"pnpm",label:"pnpm",children:(0,o.jsx)(l.c,{language:"bash",children:"pnpm install styled-components"})})]}),"\n",(0,o.jsxs)(t.h3,{id:"2-add-the-themeprovider-to-your-app",children:["2. Add the ",(0,o.jsx)(t.code,{children:"ThemeProvider"})," to your app:"]}),"\n",(0,o.jsxs)(t.p,{children:["Find and open the ",(0,o.jsx)(t.code,{children:"AppNavigator.tsx"})," file in your project and add the import:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-ts",children:'import { ThemeProvider as StyledThemeProvider } from "styled-components";\n'})}),"\n",(0,o.jsx)(t.p,{children:"Add the following functional component:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-tsx",children:"const StyledComponentsThemeProvider = (props: React.PropsWithChildren) => {\n const { theme } = useAppTheme();\n return
;\n};\n"})}),"\n",(0,o.jsxs)(t.p,{children:["Add the new ",(0,o.jsx)(t.code,{children:"StyledComponentsThemeProvider"})," component just inside the ",(0,o.jsx)(t.code,{children:"
"})," component in the ",(0,o.jsx)(t.code,{children:"AppNavigator"}),"."]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-diff",children:"return (\n \n+ \n \n \n \n+ \n \n);\n"})}),"\n",(0,o.jsx)(t.h3,{id:"3-create-and-use-your-first-styled-component-using-the-new-theme",children:"3. Create and use your first styled-component using the new theme:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-tsx",children:'import styled from "styled-components/native";\n\nconst MyTextComponent = styled.Text`\n margin: 10px;\n color: ${({ theme }) => theme.colors.text};\n background-color: ${({ theme }) => theme.colors.background};\n`;\n\nexport const MyScreen = (props) => {\n return (\n \n This text color and background will change when changing themes.\n \n );\n};\n'})}),"\n",(0,o.jsxs)(t.h3,{id:"4-tell-styled-components-about-the-shape-of-your-theme",children:["4. Tell ",(0,o.jsx)(t.code,{children:"styled-components"})," about the shape of your theme:"]}),"\n",(0,o.jsxs)(t.p,{children:["Create a new file in you Ignited app's ",(0,o.jsx)(t.code,{children:"types"})," folder called ",(0,o.jsx)(t.code,{children:"styled-components.d.ts"})," with the following content:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-tsx",children:'// Override DefaultTheme to get accurate typings for your project.\nimport type { Theme } from "app/theme";\nimport "styled-components";\nimport "styled-components/native";\n\ndeclare module "styled-components" {\n export interface DefaultTheme extends Theme {}\n}\n\ndeclare module "styled-components/native" {\n export interface DefaultTheme extends Theme {}\n}\n'})}),"\n",(0,o.jsx)(t.h2,{id:"complete",children:"Complete!"}),"\n",(0,o.jsxs)(t.p,{children:["You can now use ",(0,o.jsx)(t.code,{children:"styled-components"})," integrated into the Ignite theme engine. To swap themes provide the user a switch or toggle button:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-tsx",children:'const { setThemeContextOverride, themeContext } = useAppTheme();\n\nreturn (\n