Basic Setup App.jsx
Let's add the theme inside tailwind.config.js file.
tailwind.config.js
theme: {
extend: {
fontFamily: {
epilogue: ['Epilogue', 'sans-serif'],
},
boxShadow: {
secondary: '10px 10px 20px rgba(2, 2, 2, 0.25)',
},
},
},- You need to import tailwind in the
main.jsxfile.
main.jsx
import './index.css';Because we already import tailwind in the
index.cssfile.
- Open
App.jsxand add the code below.
App.jsx
import React from 'react';
import { Route, Routes } from 'react-router-dom';
const App = () => {
return (
<div className="relative sm:-8 p-4 bg-[#13131a] min-h-screen flex flex-row">
<div className="sm:flex hidden mr-10 relative">
Sidebar
</div>
<div className="flex-1 max-sm:w-full max-w-[1280px] mx-auto sm:pr-5">
Navbar
<Routes>
</Routes>
</div>
</div>
)
}
export default App-
React:import React from 'react';- React is a JavaScript library for building user interfaces. It is imported to use its features in the App component.
-
react-router-dom:import { Route, Routes } from 'react-router-dom';- react-router-dom is a package that provides routing functionality for React applications.
- Route is a component that renders a specified UI when its path matches the current URL.
- Routes is a component that wraps multiple Route components and handles the rendering of the appropriate Route based on the current URL.
-
Appcomponent:const App = () => { return ( // ... ) }- App is a functional component that serves as the main wrapper for the application.
-
divwith Tailwind classes:<div className="relative sm:-8 p-4 bg-[#13131a] min-h-screen flex flex-row">relative: Sets the position property to "relative".sm:-8: Applies a negative margin of 2rem (8 units) on the small (sm) breakpoint and up.p-4: Applies padding of 1rem (4 units) on all sides.bg-[#13131a]: Sets the background color to the custom color#13131a.min-h-screen: Sets the minimum height to the height of the viewport.flex: Sets the display property to "flex".flex-row: Sets the flex direction to "row".
-
Sidebar
div:<div className="sm:flex hidden mr-10 relative"> Sidebar </div>sm:flex: Sets the display property to "flex" on the small (sm) breakpoint and up.hidden: Sets the display property to "none".mr-10: Applies a right margin of 2.5rem (10 units).relative: Sets the position property to "relative".- This
divserves as a placeholder for the Sidebar component.
-
Main content
div:<div className="flex-1 max-sm:w-full max-w-[1280px] mx-auto sm:pr-5"> Navbar <Routes> </Routes> </div>flex-1: Sets the flex-grow property to 1, allowing the element to grow and fill the available space.max-sm:w-full: Sets the maximum width to 100% on the small (sm) breakpoint and up.max-w-[1280px]: Sets the maximum width to 1280px.mx-auto: Applies horizontal auto margins to center the element.sm:pr-5: Applies a right padding of 1.25rem (5 units) on the small (sm) breakpoint and up.- This
divserves as a container for the Navbar component and the Routes.
-
Routescomponent:<Routes> </Routes>- The Routes component is used to wrap Route components, which define the different pages/routes in the application.
-
Exporting
Appcomponent:export default App- The App component is exported as the default export, allowing other components to import and use it.