Nextjs14 + nextui๋ฅผ ์‚ฌ์šฉํ•ด์„œ progress bar ๋งŒ๋“ค๊ธฐ

2024. 6. 5. 00:22ยท ๊ฐœ๋ฐœ/Next.js
๋ชฉ์ฐจ
  1. ๐Ÿ‘‡๐Ÿป NextUI ๊ณต์‹๋ฌธ์„œ 
  2. NextUI + Nextjs 14 ์ ์šฉ๊ธฐ
  3. ์ด์ฒ˜๋Ÿผ ์ง„ํ–‰์„ ํ–ˆ๋Š”๋ฐ, nextui์˜ css๊ฐ€ ์ ์šฉ์ด ์•ˆ๋˜๋ฉด?!
728x90
๋ฐ˜์‘ํ˜•

 

๊ฐœ์ธ์ ์ธ ํ•„์š”๋กœ ์ธํ•ด์„œ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ–ˆ๋˜ ํƒ€์ž„ ํŠธ๋ž˜ํ‚น ์›น. 

๋…์„œํ•˜๋Š” ์‹œ๊ฐ„์„ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์ธก์ •ํ•ด๋ณด๊ฒ ๋‹ค๊ณ  ์‹œ์ž‘ํ•œ ๊ฒƒ์ด์˜€๋Š”๋ฐ ์ง€๋‚œ ๋‹ฌ ๊ธฐ๋ก๊ณผ ํ˜„์žฌ์˜ ๊ธฐ๋ก ๋น„๊ต / ๋˜๋Š” ๋ชฉํ‘œ ์‹œ๊ฐ„์„ ์ •ํ•ด๋‘๊ณ  ํ˜„์žฌ ์–ผ๋งˆ๋‚˜ ์ด๋ค˜๋Š”์ง€ ์ฒดํฌํ•˜๋Š” ๋ถ€๋ถ„๊นŒ์ง€ ๋” ํ•ด๋ณด๊ณ  ์‹ถ์–ด์กŒ๋‹ค. 

๊ทธ ํ‘œํ˜„์„ progressbar๋กœ ํ•˜๋ฉด ์ง๊ด€์ ์ผ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ , nextui๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค. 

 

 

 

๐Ÿ‘‡๐Ÿป NextUI ๊ณต์‹๋ฌธ์„œ 

https://nextui.org/

 

NextUI - Beautiful, fast and modern React UI Library

Beautiful, fast and modern React UI Library

nextui.org

 

nextui๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ณต์‹๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ๊ต‰์žฅํžˆ ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ต‰์žฅํžˆ ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด์žˆ๋‹ค. 

ํŠนํžˆ nextjs14๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ผ๋ฉด app dirctory ๋ฒ„์ ผ setup์„ ๋”ฐ๋ผ๊ฐ€๋ฉด ๋œ๋‹ค. 

 

https://nextui.org/docs/guide/upgrade-to-v2#app-directory-setup

 

Upgrade to v2

Upgrade from NextUI v1 to v2

nextui.org

 

๊ณต์‹๋ฌธ์„œ์— ๋‚˜์™€์žˆ๋Š” ๋‚ด์šฉ์„ ์•„๋ž˜ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•œ๊ตญ์–ด๋กœ ์„ค๋ช…์„ ๋” ํ•ด๋ณด๊ฒ ๋‹ค.

 

 

NextUI + Nextjs 14 ์ ์šฉ๊ธฐ

 

1. ์„ค์น˜ํ•˜๊ธฐ

npm i @nextui-org/react framer-motion

or

yarn add @nextui-org/react framer-motion

or 

pnpm add @nextui-org/react framer-motion

// 3๊ฐœ ์ค‘์— ์ž์‹ ์ด ์“ฐ๋Š” ํ”„๋กœ์ ํŠธ์— ๋งž๊ฒŒ ์„ค์น˜ํ•˜๋ฉด ๋œ๋‹ค

 

 

 

2. Tailwind CSS Setup

nextui ๋Š” tailwind css ์œ„์— ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ tailwind css ๋ฅผ ๋จผ์ € ์„ค์น˜ํ•ด์ฃผ์…”์•ผํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ํ•˜๊ณ  ๋‚˜๋ฉด์€ 

tailwind.config.js ๋ผ๋Š” ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ๋ณต๋ถ™! 

tailwind css ์„ค์น˜ํ•˜๊ธฐ

// tailwind.config.js
const { nextui } = require("@nextui-org/react");

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    // ...
    "./node_modules/@nextui-org/theme/dist/**/*.{js,ts,jsx,tsx}"
    
    // ์—ฌ๊ธฐ์— ./app/ ์ด๋Ÿฐ์‹์œผ๋กœ app ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์˜ ๊ฒฝ๋กœ๊นŒ์ง€ ๋„ฃ์–ด์ฃผ์„ธ์šฅ
     "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
    "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
  ],
  theme: {
    extend: {},
  },
  darkMode: "class",
  plugins: [nextui()]
}

 

๊ทธ๋ฆฌ๊ณ  app ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์œ„์น˜ํ•œ global css ํŒŒ์ผ์— tailwind๋ฅผ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค. 

@tailwind base;
@tailwind components;
@tailwind utilities;

 

 

 

3. Setup Provider

provider ๋ฅผ ๋„ฃ์–ด์•ผํ•˜๋Š”๋ฐ. app ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜์— providers๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. 

// app/providers.tsx
'use client'

import {NextUIProvider} from '@nextui-org/react'

export function Providers({children}: { children: React.ReactNode }) {
  return (
    <NextUIProvider>
      {children}
    </NextUIProvider>
  )
}

 

 

 

4. ์ƒ์„ฑ๋œ provider์„ root ํŒŒ์ผ์— ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. 

// app/layout.tsx
import {Providers} from "./providers";

export default function RootLayout({children}: { children: React.ReactNode }) {
  return (
    <html lang="en" className='dark'>
      <body>
        <Providers>
          {children}
        </Providers>
      </body>
    </html>
  );
}

 

 

 

 

 

Progress

 

์ด๋ ‡๊ฒŒ ์…‹ํŒ…์€ ๋๋‚ฌ๋‹ค. routing ํ•˜๋ฉด์„œ ์“ฐ๋Š” progressbar ๊ฐ€ ์•„๋‹ˆ๋ผ ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•ด์ฃผ๋Š” bar๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ! 

 

https://nextui.org/docs/components/progress

 

Progress

The Progress component allows you to view the progress of any activity.

nextui.org

 

์œ„์— ์žˆ๋Š” ๊ณต์‹๋ฌธ์„œ์ฒ˜๋Ÿผ ์ธ๋””๋น„์ฃผ์–ผ๋กœ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ „์ฒด๋ฅผ ์„ค์น˜ํ•ด์คฌ๋‹ค๋ฉด ๊ตณ์ด ์„ค์น˜ ํ•„์š”์—†์ด 

์•„๋ž˜์™€ ๊ฐ™์ด global๋กœ ๊ทธ๋ƒฅ import ํ•  ์ˆ˜๋„ ์žˆ๋‹ค

import {Progress} from "@nextui-org/react";

 

 

 

 

์ด์ฒ˜๋Ÿผ ์ง„ํ–‰์„ ํ–ˆ๋Š”๋ฐ, nextui์˜ css๊ฐ€ ์ ์šฉ์ด ์•ˆ๋˜๋ฉด?!

 

button์„ ๋„ฃ์œผ๋ฉด ๊ทธ๋ƒฅ ๊ธฐ๋ณธ button์ด ๋‚˜์˜ค๊ณ  ์ƒ‰์ƒ๊ฐ™์€๊ฒŒ ํ•˜๋‚˜๋„ ์•ˆ ๋‚˜์™”๋‹ค!!!! ์™œ ๊ทธ๋Ÿฐ์ง€ ๋ชฐ๋ผ์„œ ์—„์ฒญ ํ—ค๋งธ๋Š”๋ฐ, ๊ฑฐ์˜ ๋ฐ˜๋‚˜์ ˆ? stackoverflow๋กœ ์—„์ฒญ ๋’ค์ ์ด๊ณ  ์ด๋Ÿฐ ๋ฌธ์ œ๊ฐ€ ์ด์ „์— ์—ฌ๋Ÿฌ์ฐจ๋ก€ ์žˆ์—ˆ๋˜๊ฒƒ์ธ์ง€ ๋น„์Šทํ•œ ๋ฅ˜์˜ ์งˆ๋ฌธ๋„ ์˜ฌ๋ผ์™€์žˆ์—ˆ๋‹ค. ๋‹จ์ง€ ๊ทธ ํ•ด๊ฒฐ์ฑ…๋“ค์€ ๋‚˜์—๊ฒŒ ์†Œ์šฉ์—†๋˜ ๊ฒƒ ๋ฟ! 

 

PostCSS ์™€ autoprefixer ๋ฅผ ์„ค์น˜ํ•ด์ค€๋‹ค. ๊ทธ์ œ์„œ์•ผ css ๊ฐ€ ์ œ๋Œ€๋กœ ์ž…ํ˜€์ ธ์„œ ๋‚˜์™”๋‹ค.

tailwindcss๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๊ฐ™์ด ์„ค์น˜ํ•ด์•ผํ•˜๋Š”๊ฑด๋ฐ ๋‚ด๊ฐ€ ๋†“์นœ ๊ฒƒ์ด๋‹ค!!!

 

 

 

 

 

...๊ณต์‹๋ฌธ์„œ๋งŒ ์ œ๋Œ€๋กœ ์ฝ์–ด๋ณด์‹œ๋ฉด ๋‹ค ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•œ ์ผ๋“ค์ด์˜€๋‹ค! .... ์˜์–ด์˜ ์†Œ์šฉ๋Œ์ด์— ํœฉ์“ธ๋ ค์„œ ๋†“์น˜์ง€ ๋ง์ž!!

 

728x90

'๊ฐœ๋ฐœ > Next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

nextjs shadcn/ui Drawer ๋ฐฉํ–ฅ ์ „ํ™˜ํ•˜๊ธฐ  (1) 2024.06.13
nextjs shadcn/ui ์—์„œ ๋ฏธ๋””์–ด์ฟผ๋ฆฌ ์ž‘์—…ํ•˜๊ธฐ  (0) 2024.06.10
[Nextjs] Route segment 'force-dynamic' ๊ฐ€ ํ•„์š”ํ•  ๋•Œ  (0) 2024.03.29
vercel๋กœ Nextjs ๋ฐฐํฌํ•˜๊ธฐ  (0) 2024.01.05
Next.js14์—์„œ useRouter ์‚ฌ์šฉํ•˜๊ธฐ  (1) 2024.01.03
  1. ๐Ÿ‘‡๐Ÿป NextUI ๊ณต์‹๋ฌธ์„œ 
  2. NextUI + Nextjs 14 ์ ์šฉ๊ธฐ
  3. ์ด์ฒ˜๋Ÿผ ์ง„ํ–‰์„ ํ–ˆ๋Š”๋ฐ, nextui์˜ css๊ฐ€ ์ ์šฉ์ด ์•ˆ๋˜๋ฉด?!
'๊ฐœ๋ฐœ/Next.js' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • nextjs shadcn/ui Drawer ๋ฐฉํ–ฅ ์ „ํ™˜ํ•˜๊ธฐ
  • nextjs shadcn/ui ์—์„œ ๋ฏธ๋””์–ด์ฟผ๋ฆฌ ์ž‘์—…ํ•˜๊ธฐ
  • [Nextjs] Route segment 'force-dynamic' ๊ฐ€ ํ•„์š”ํ•  ๋•Œ
  • vercel๋กœ Nextjs ๋ฐฐํฌํ•˜๊ธฐ
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Frontend Developer
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
Ming devlog
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ

๊ณต์ง€์‚ฌํ•ญ

  • About Ming ๐Ÿฐ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (261)
    • ๊ฐœ๋ฐœ (255)
      • ๐Ÿ“ TIL (58)
      • โŒ ์˜ค๋ฅ˜ ๋…ธํŠธ (23)
      • React (23)
      • Next.js (11)
      • React-Native (6)
      • JavaScript (10)
      • Flutter (19)
      • Database (1)
      • ๐Ÿ’ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (21)
      • ๐Ÿ“š English (9)
      • Etc... (25)
      • โ›ต ํ•ญํ•ด99 (49)
    • ๐Ÿ’ป Dev (6)
      • ๐Ÿ“ TIL (4)
      • ๐Ÿ’ฌ Algorithm (1)
      • Etc... (1)

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ๊ฐœ๋ฐœ์ž์ผ๊ธฐ
  • ์ฝ”ํ…Œ๊ณต๋ถ€
  • leetcode
  • TIL
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • Git
  • Firebase
  • ์˜์–ด๊ณต๋ถ€
  • ์ฝ”ํ…Œ
  • ReactNative
  • ํ”Œ๋Ÿฌํ„ฐ
  • ์ด์ฝ”๋…ธ๋ฏธ์ŠคํŠธ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • github
  • todaywhatidid
  • ๋ฆฌ์•กํŠธ๋„ค์ดํ‹ฐ๋ธŒ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ํ•ญํ•ด99
  • react
  • ๋ถ€ํŠธ์บ ํ”„
  • ๊ฐœ๋ฐœ์žํšŒ๊ณ 
  • ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ
  • flutter
  • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
  • twid
  • nextjs
  • ์ฝ”๋”ฉ๊ณต๋ถ€
  • react-native
  • ๋ฆฌ์•กํŠธ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.1
๋ฐ(Ming) ๐Ÿˆโ€โฌ›
Nextjs14 + nextui๋ฅผ ์‚ฌ์šฉํ•ด์„œ progress bar ๋งŒ๋“ค๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.