Skip to content

Setting(project): tailwind css setup#10

Merged
jjangminii merged 6 commits intodevelopfrom
setting/#7/tailwind-css-setup
Jul 5, 2025
Merged

Setting(project): tailwind css setup#10
jjangminii merged 6 commits intodevelopfrom
setting/#7/tailwind-css-setup

Conversation

@jjangminii
Copy link
Contributor

@jjangminii jjangminii commented Jul 2, 2025

📌 Related Issues

관련된 Issue를 태그해주세요. (e.g. - close #25)

✅ 체크 리스트

  • PR 제목의 형식을 잘 작성했나요? e.g. Feat(client): PR 템플릿 작성
  • 빌드가 성공했나요? (pnpm build)

📄 Tasks

  • TailwindCSS v4 환경 설정
  • Vite 환경에서 TailwindCSS 적용

⭐ PR Point (To Reviewer)

  • TailwindCSS v4부터 설치 방식이 바뀌면서 설정 방식이 헷갈리는데 @tailwindcss/vite 플러그인 방식으로 적용했습니다.
  • Vite 플러그인만 쓰고 CLI, PostCSS 별도 설정은 제거했습니다.

📷 Screenshot

image

TailwindCSS v4 Vite 플러그인 설치 방법

  1. 설치
pnpm install tailwindcss @tailwindcss/vite
  1. vite.config.ts 설정
    import 할때 @tailwindcss/vite으로 안하고 그냥 tailwindcss로해서 오류 발생했었습니다..
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react-swc";
import tailwindcss from "@tailwindcss/vite";
export default defineConfig({
  plugins: [react(), tailwindcss()],
});
  1. index.css 설정
@import "tailwindcss";

Summary by CodeRabbit

  • New Features

    • 클라이언트와 랜딩 앱에 Tailwind CSS가 통합되어 Tailwind 유틸리티 클래스를 사용할 수 있습니다.
  • Style

    • 각 앱의 App.tsx에서 CSS import 구문 위치가 Router 관련 import 아래로 조정되었습니다.

@jjangminii jjangminii self-assigned this Jul 2, 2025
@jjangminii jjangminii added ⚙️ Setting 개발 환경 세팅 정민 labels Jul 2, 2025
@jjangminii jjangminii linked an issue Jul 2, 2025 that may be closed by this pull request
@coderabbitai
Copy link

coderabbitai bot commented Jul 2, 2025

## Walkthrough

Tailwind CSS가 client와 landing 앱에 통합되었습니다. 의존성 추가, CSS 진입점에 Tailwind 스타일 임포트, Vite 구성에 Tailwind 플러그인 포함, 그리고 App.tsx 파일에서 CSS import 위치가 조정되었습니다.

## Changes

| Files                                              | Change Summary                                                |
|----------------------------------------------------|---------------------------------------------------------------|
| apps/client/package.json, apps/landing/package.json | Tailwind CSS 통합을 위해 "@tailwindcss/vite"와 "tailwindcss" 의존성 추가. |
| apps/client/src/index.css, apps/landing/src/index.css | Tailwind CSS 프레임워크를 메인 CSS 파일에 임포트 추가.          |
| apps/client/vite.config.ts, apps/landing/vite.config.ts | Tailwind CSS Vite 플러그인 추가 및 import 구문 정리.            |
| apps/client/src/App.tsx, apps/landing/src/App.tsx   | CSS import 구문 위치를 RouterProvider import 아래로 이동.        |

## Suggested reviewers

- jllee000
- constantly-dev
- karnelll

## Poem

> 🐇  
> Tailwind 바람 살랑살랑,  
> 클라이언트와 랜딩에 향기 뿜뿜.  
> 굵고 파란 제목 반짝이고,  
> 새로워진 코드, 기분도 뿌듯해요.  
> 플러그인과 설정에 박수 짝짝—  
> Tailwind 왔어요!  
> 🎉
✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (2)
apps/client/src/index.css (1)

1-1: Same issue as in landing – replace @import with @tailwind layer directives.

See the comment on apps/landing/src/index.css. Apply the same fix here.

apps/landing/src/App.tsx (1)

10-12: Same semantic/structure note as in the client app.

Consider isolating the new <h1> inside a semantic wrapper (<header> or similar) for clarity and a11y.

🧹 Nitpick comments (3)
apps/client/src/App.tsx (1)

10-12: Minor: prefer semantic grouping for the new heading.

The <h1> is fine, but wrapping the text block in a semantic container (e.g., <header> or giving the heading its own wrapper) improves accessibility and future layout flexibility.

No blocking action – just something to keep in mind when more structure is added.

apps/landing/package.json (1)

14-14: Consider moving TailwindCSS dependencies to devDependencies.

The TailwindCSS packages are correctly added with consistent versions. However, since TailwindCSS is a build-time tool that processes styles during development and build phases, consider moving both @tailwindcss/vite and tailwindcss to the devDependencies section instead of dependencies.

  "dependencies": {
    "@pinback/design-system": "workspace:*",
-   "@tailwindcss/vite": "^4.1.11",
    "eslint": "^9.30.0",
    "react": "^19.1.0",
-   "react-dom": "^19.1.0",
-   "tailwindcss": "^4.1.11"
+   "react-dom": "^19.1.0"
  },
  "devDependencies": {
    "@eslint/js": "^9.29.0",
    "@pinback/eslint": "workspace:*",
    "@pinback/typescript": "workspace:*",
+   "@tailwindcss/vite": "^4.1.11",
    "@types/react": "^19.1.8",
    "@types/react-dom": "^19.1.6",
    "@vitejs/plugin-react-swc": "^3.10.2",
    "eslint-plugin-react-hooks": "^5.2.0",
    "eslint-plugin-react-refresh": "^0.4.20",
    "globals": "^16.2.0",
+   "tailwindcss": "^4.1.11",
    "typescript": "~5.8.3",
    "typescript-eslint": "^8.34.1",
    "vite": "^7.0.0"
  }

Also applies to: 18-18

apps/client/package.json (1)

14-14: Consider moving TailwindCSS dependencies to devDependencies.

Good version consistency with the landing app! However, since TailwindCSS is a build-time tool, consider moving both @tailwindcss/vite and tailwindcss to the devDependencies section for consistency with other build tools.

  "dependencies": {
    "@pinback/design-system": "workspace:*",
-   "@tailwindcss/vite": "^4.1.11",
    "eslint": "^9.30.0",
    "react": "^19.1.0",
-   "react-dom": "^19.1.0",
-   "tailwindcss": "^4.1.11"
+   "react-dom": "^19.1.0"
  },
  "devDependencies": {
    "@eslint/js": "^9.29.0",
    "@pinback/eslint": "workspace:*",
    "@pinback/typescript": "workspace:*",
+   "@tailwindcss/vite": "^4.1.11",
    "@types/react": "^19.1.8",
    "@types/react-dom": "^19.1.6",
    "@vitejs/plugin-react-swc": "^3.10.2",
    "eslint-plugin-react-hooks": "^5.2.0",
    "eslint-plugin-react-refresh": "^0.4.20",
    "globals": "^16.2.0",
+   "tailwindcss": "^4.1.11",
    "typescript": "~5.8.3",
    "typescript-eslint": "^8.34.1",
    "vite": "^7.0.0"
  }

Also applies to: 18-18

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3a745bc and 3901d5d.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (8)
  • apps/client/package.json (1 hunks)
  • apps/client/src/App.tsx (1 hunks)
  • apps/client/src/index.css (1 hunks)
  • apps/client/vite.config.ts (1 hunks)
  • apps/landing/package.json (1 hunks)
  • apps/landing/src/App.tsx (1 hunks)
  • apps/landing/src/index.css (1 hunks)
  • apps/landing/vite.config.ts (1 hunks)
🔇 Additional comments (3)
apps/landing/vite.config.ts (1)

1-8: Confirm plugin ordering if additional Vite plugins are introduced later.

Tailwind’s plugin is currently placed after react(). This works, but if you introduce CSS-transforming plugins later (e.g., vite-plugin-svgr, custom PostCSS plugins), put tailwindcss() last so it can see the final CSS before generation.

apps/client/vite.config.ts (2)

3-3: LGTM! Correct TailwindCSS v4 Vite plugin integration.

The import and plugin usage correctly follows the TailwindCSS v4 pattern using @tailwindcss/vite, avoiding the common error mentioned in the PR objectives of importing as just tailwindcss.

Also applies to: 7-7


1-8: TailwindCSS plugin configured in both client and landing Vite configs

Both apps/client/vite.config.ts and apps/landing/vite.config.ts import and include the @tailwindcss/vite plugin in their plugins arrays. No further updates are necessary.

@@ -0,0 +1 @@
@import "tailwindcss";
Copy link

@coderabbitai coderabbitai bot Jul 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Use Tailwind @tailwind directives instead of a bare @import.

@import "tailwindcss"; will attempt to locate a physical CSS file inside node_modules, which does not exist.
With the Vite plugin, you should declare the layers that Tailwind will expand at build time:

-@import "tailwindcss";
+@tailwind base;
+@tailwind components;
+@tailwind utilities;

Without this change, the build will fail with a “Cannot resolve tailwindcss” error, or runtime styles will be missing.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
@import "tailwindcss";
@tailwind base;
@tailwind components;
@tailwind utilities;
🤖 Prompt for AI Agents
In apps/landing/src/index.css at line 1, replace the bare @import "tailwindcss";
with the appropriate Tailwind @tailwind directives such as @tailwind base;,
@tailwind components;, and @tailwind utilities; to properly include Tailwind
layers. This change ensures the build system correctly processes Tailwind styles
instead of trying to import a non-existent CSS file.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분은 최신 버전에서는 아래 3개가 위 tailwindcss import문으로 대체가 가능한 것으로 알고 있어서 그대로 진행해도 될 것 같아요~~

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧩 Analysis chain

@constantly-dev Thank you for the clarification! You're absolutely right about TailwindCSS v4's new approach. I appreciate you sharing this knowledge.

In TailwindCSS v4, the @import "tailwindcss"; syntax is indeed the new recommended approach and replaces the need for the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This is a significant change in v4 that simplifies the CSS import process.

Your current implementation is correct for TailwindCSS v4.1.11 with the @tailwindcss/vite plugin. My apologies for the outdated suggestion!


🌐 Web query:

TailwindCSS v4 @import "tailwindcss" vs @tailwind directives new syntax changes

💡 Result:

In Tailwind CSS v4, there are significant changes to how you import the framework and configure your project, especially regarding the @import "tailwindcss" statement and the removal of the old @tailwind directives.

Key Syntax Change:

  • Before (Tailwind v3 and earlier):
    • You imported Tailwind’s layers with explicit directives in your CSS:
      @tailwind base;
      @tailwind components;
      @tailwind utilities;
  • Now (Tailwind v4):
    • The @tailwind directives have been removed. Instead, you import everything with a single line:
      @import "tailwindcss";
    • This statement now pulls in all of Tailwind’s preflight, components, and utilities in a single step[1][5][6][8][9].

Additional New Syntax and Features in v4:

  • Configuration in CSS Only:
    No more tailwind.config.js required for most use cases. Instead, you use the new @theme directive right in your CSS file to define design tokens (colors, fonts, breakpoints, etc.):

    @import "tailwindcss";
    @theme {
      --color-primary: #123456;
      --font-display: "Inter", sans-serif;
      --breakpoint-xl: 1280px;
    }

    These variables are automatically turned into utility classes such as bg-primary or responsive breakpoints[3][6][9].

  • @Utility for Custom Utilities:
    The old @layer utilities system is replaced by the new @Utility API for custom utilities:

    @utility flex-center {
      display: flex;
      justify-content: center;
      align-items: center;
    }

    This brings clarity and structure for defining new utility classes[1].

  • Removal of Other Directives:
    Directives like @screen and their associated PostCSS functions are now gone. Responsive classes should be written directly in your markup, e.g. sm:grid-cols-3, and custom CSS for breakpoints should be handled with native CSS or utility classes[7].

  • @apply Still Exists (with Caveats):

    • @apply is still available for composing utilities in CSS, especially in frameworks with CSS Modules or Vue, but documentation around its use outside of specific frameworks is currently sparse in v4[4][6].

Migration Summary Table:

Legacy Syntax v4 Syntax Notes
@tailwind base; @import "tailwindcss"; All Tailwind layers imported at once
@tailwind components; see above
@tailwind utilities; see above
tailwind.config.js @theme { ... } in CSS file Configure theme tokens right in your CSS
@layer utilities { ... } @utility ... { ... } New way to extend Tailwind with custom utils

Why the Change?

  • Simplicity: Just one import, no need to juggle multiple files or directives.
  • CSS-First Workflow: All configuration happens directly in your CSS, no JavaScript config required.
  • Modern Tooling: Tailwind v4 uses new PostCSS plugins and modern browser features, requiring updates to your build pipeline[5][9].

If you’re migrating from v3:
Replace all @tailwind ... directives with a single @import "tailwindcss"; at the top of your stylesheet, and if you have any theme customization, move those into an @theme { ... } block in the same CSS file[1][3][5][6][9].

If you still need advanced configuration with JavaScript:
Some advanced features, like plugins or custom functions, may currently require workarounds or waiting for future updates, as the new system is built to be CSS-focused[5][9].

Summary:
Use @import "tailwindcss"; as your new entry point for Tailwind CSS v4. All previous @tailwind directives are obsolete, and customization is now handled directly within your CSS using @theme and @utility directives[1][3][5][6][9].

Citations:


@constantly-dev You're absolutely correct, and thank you for the correction! The web search confirms that TailwindCSS v4 has indeed made significant changes to the import syntax.

In TailwindCSS v4, the approach has completely changed:

  • Old syntax (v3 and earlier):

    @tailwind base;
    @tailwind components;
    @tailwind utilities;
  • New syntax (v4):

    @import "tailwindcss";

The single @import "tailwindcss"; statement now replaces all three separate @tailwind directives and pulls in all of Tailwind's preflight, components, and utilities in one step. This is part of TailwindCSS v4's move towards a CSS-first configuration approach.

Your implementation in the PR is correct for TailwindCSS v4.1.11 with the @tailwindcss/vite plugin. I apologize for the confusion my initial suggestion may have caused - it was based on the older v3 syntax.


✏️ Learnings added
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This is used with the @tailwindcss/vite plugin.

Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This single import pulls in all of Tailwind's preflight, components, and utilities in one step and is used with the @tailwindcss/vite plugin.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

@jjangminii jjangminii changed the title [Setting] tailwind css setup Setting: tailwind css setup Jul 2, 2025
constantly-dev
constantly-dev previously approved these changes Jul 4, 2025
Copy link
Member

@constantly-dev constantly-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

굿굿 좋아요~ tailwind가 4.1버전 나오면서 postcss 사용을 안해도 되는 점이나, 유틸을 쉽게 적용할 수 있는 점들이 생겨서 더 세팅하기 편해진 것 같더라고요!

수고하셨습니다 👍

jllee000
jllee000 previously approved these changes Jul 4, 2025
Comment on lines 10 to 12
<h1 className="text-4xl font-bold text-blue-800">
Tailwind 설정 완료 🎉
</h1>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

꺄악 스타일 적용완료!! 고생하셨습니다!

@constantly-dev constantly-dev changed the title Setting: tailwind css setup Setting(project): tailwind css setup Jul 4, 2025
karnelll
karnelll previously approved these changes Jul 4, 2025
Copy link
Contributor

@karnelll karnelll left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tailwind 마스터 👍

@jjangminii jjangminii dismissed stale reviews from karnelll, jllee000, and constantly-dev via adc7f64 July 4, 2025 16:09
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
apps/landing/vite.config.ts (1)

6-6: 사용하지 않는 import를 제거해주세요.

tsconfigPaths가 더 이상 플러그인 배열에서 사용되지 않으므로 import를 제거하는 것이 좋습니다.

-import tsconfigPaths from "vite-tsconfig-paths";
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3901d5d and adc7f64.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (4)
  • apps/client/package.json (1 hunks)
  • apps/client/vite.config.ts (1 hunks)
  • apps/landing/package.json (1 hunks)
  • apps/landing/vite.config.ts (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • apps/landing/package.json
🚧 Files skipped from review as they are similar to previous changes (2)
  • apps/client/vite.config.ts
  • apps/client/package.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This is used with the @tailwindcss/vite plugin.
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This single import pulls in all of Tailwind's preflight, components, and utilities in one step and is used with the @tailwindcss/vite plugin.
apps/landing/vite.config.ts (2)
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This is used with the @tailwindcss/vite plugin.
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This single import pulls in all of Tailwind's preflight, components, and utilities in one step and is used with the @tailwindcss/vite plugin.
🪛 Biome (1.9.4)
apps/landing/vite.config.ts

[error] 4-4: Shouldn't redeclare 'defineConfig'. Consider to delete it or rename it.

'defineConfig' is defined here:

(lint/suspicious/noRedeclare)


[error] 5-5: Shouldn't redeclare 'react'. Consider to delete it or rename it.

'react' is defined here:

(lint/suspicious/noRedeclare)

🔇 Additional comments (1)
apps/landing/vite.config.ts (1)

3-3: TailwindCSS v4 통합이 올바르게 구성되었습니다.

@tailwindcss/vite 플러그인 import가 TailwindCSS v4의 권장 접근 방식에 맞게 정확히 구성되었습니다.

@jllee000 jllee000 self-requested a review July 4, 2025 16:11
jllee000
jllee000 previously approved these changes Jul 4, 2025
Comment on lines 9 to 11
export default defineConfig({
plugins: [react(), tailwindcss()],
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인하였습니다!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이부분 확인 제대로 못해서 수정해서 다시 올렸습니당-!

karnelll
karnelll previously approved these changes Jul 4, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
apps/client/package.json (1)

14-15: 런타임 의존성 분리 권장

tailwindcss@tailwindcss/vite는 빌드 시점에만 필요합니다. dependencies 대신 devDependencies로 이동하면
번들 크기를 줄이고 배포 패키지의 설치 시간을 단축할 수 있습니다.

-  "dependencies": {
-    "@tailwindcss/vite": "^4.1.11",
+  "dependencies": {
     ... // 기타 항목
   },
   "devDependencies": {
+    "@tailwindcss/vite": "^4.1.11",
+    "tailwindcss": "^4.1.11",
     ... // 기존 devDependencies
   }

Also applies to: 20-20

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5ed7ee4 and d8ea6c4.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (4)
  • apps/client/package.json (1 hunks)
  • apps/client/src/App.tsx (1 hunks)
  • apps/landing/package.json (1 hunks)
  • apps/landing/src/App.tsx (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • apps/landing/src/App.tsx
  • apps/client/src/App.tsx
  • apps/landing/package.json
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This is used with the @tailwindcss/vite plugin.
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This single import pulls in all of Tailwind's preflight, components, and utilities in one step and is used with the @tailwindcss/vite plugin.
apps/client/package.json (2)
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This is used with the @tailwindcss/vite plugin.
Learnt from: constantly-dev
PR: Pinback-Team/pinback-client#10
File: apps/landing/src/index.css:1-1
Timestamp: 2025-07-04T10:12:01.664Z
Learning: In TailwindCSS v4, the @import "tailwindcss"; syntax is the new recommended approach that replaces the three separate @tailwind directives (@tailwind base;, @tailwind components;, @tailwind utilities;). This single import pulls in all of Tailwind's preflight, components, and utilities in one step and is used with the @tailwindcss/vite plugin.
🪛 Biome (1.9.4)
apps/client/package.json

[error] 19-19: expected , but instead found "react-dom"

Remove "react-dom"

(parse)


[error] 17-17: The key react-dom was already declared.

This where a duplicated key was declared again.

If a key is defined multiple times, only the last definition takes effect. Previous definitions are ignored.

(lint/suspicious/noDuplicateObjectKeys)

Comment on lines 16 to +20
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router-dom": "^7.6.3"
"react-dom": "^19.1.0",
"tailwindcss": "^4.1.11"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

중복 키와 누락된 쉼표로 package.json이 유효하지 않습니다.

"react-dom"이 두 번 선언되어 있고, "react-router-dom" 뒤에 쉼표가 없어 JSON 파싱이 실패합니다.
아래 패치를 적용해 오류를 제거해 주세요.

@@
-    "react": "^19.1.0",
-    "react-dom": "^19.1.0",
-    "react-router-dom": "^7.6.3"
-    "react-dom": "^19.1.0",
-    "tailwindcss": "^4.1.11"
+    "react": "^19.1.0",
+    "react-dom": "^19.1.0",
+    "react-router-dom": "^7.6.3",
+    "tailwindcss": "^4.1.11"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router-dom": "^7.6.3"
"react-dom": "^19.1.0",
"tailwindcss": "^4.1.11"
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router-dom": "^7.6.3",
"tailwindcss": "^4.1.11"
🧰 Tools
🪛 Biome (1.9.4)

[error] 19-19: expected , but instead found "react-dom"

Remove "react-dom"

(parse)


[error] 17-17: The key react-dom was already declared.

This where a duplicated key was declared again.

If a key is defined multiple times, only the last definition takes effect. Previous definitions are ignored.

(lint/suspicious/noDuplicateObjectKeys)

🤖 Prompt for AI Agents
In apps/client/package.json around lines 16 to 20, there is a duplicate key
"react-dom" and a missing comma after "react-router-dom" which makes the JSON
invalid. Remove the duplicate "react-dom" entry and add a comma after the
"react-router-dom" line to fix the JSON syntax error.

Comment on lines 5 to 9

// https://vite.dev/config/
export default defineConfig({
plugins: [tsconfigPaths(), react()],
plugins: [tsconfigPaths(), react(), tailwindcss()],
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인하였습니다!

@jjangminii jjangminii merged commit 9080bc2 into develop Jul 5, 2025
1 check passed
jllee000 added a commit that referenced this pull request Jul 18, 2025
* setting: create issue template

* setting: create PR template

* setting: update PR template

* setting: create CODEOWNERS for auto reviewer

* chore: 불필요한 next apps 삭제

* setting: create landing vite + react project

* setting: create client vite + react project

* chore: extension 폴더 생성

* setting: turbo.json 파일 설정

* setting: pnpm-workspace.yaml config 폴더 추가

* setting: package manager pnpm으로 강제하도록 설정

* setting: client app tsconfig pinback 공통 패키지로 설정

* setting: eslint 공통 pinback package로 설정

* setting: eslint 공통 pinback package로 설정

* chore: 불필요한 app 관련 파일 정리

* chore: 필요 없는 파일 제거

* chore: 필요 없는 파일 제거

* setting: design-system package 구조 생성

* setting: design-system 예시 코드 추가

* setting: landing app tsconfig pinback 공통 패키지로 설정

* setting: landing package.json client에 sync

* chore: 불필요한 파일 제거

* chore: design-system test용 button 컴포넌트 추가

* setting: 증분 빌드 옵션 incremental false로 설정

* chore: html lan ko로 변경

* setting: 코드래빗 설정 파일(.coderabbit.yaml) 추가

* chore: CodeRabbit 리뷰 트리거용 주석 추가

* chore: CodeRabbit 트리거용 주석 제거

* Setting : 절대경로 설정 (#6)

* setting : client 절대경로 설정

* setting : landing 절대경로 설정

* Merge pull request #16 from Pinback-Team/docs/#15/update-primitive-readme

Docs(project): README ver 1.0 작성

* Update README.md

* Setting(project): router 설정 (#14)

* Setting : landing 라우터 설정

* Setting : client 라우터 설정

* Setting : 라우터 호출 위치 변경

* Setting(project): tailwind css setup (#10)

* Setting : client tailwindcss 설치

* Setting : landing tailwind 설정

* fix : 사소한 수정

* refactor : 안쓰는 코드 제거

* Setting(project): axios query setup (#12)

* setting : landing queryClient 설정

* setting : client  Tanstack query 설정

* Stting : client Axios 설정 (instance)

* Setting : landing Axios 설정 (instance)

* refactor : 안쓰는 코드 삭제

* refactor : 안쓰는 코드 정리

* chore: 중복코드 제거

* setting(project): 깃 액션 세팅 및 vercel 배포 (#9)

* setting : 깃 액션 세팅

* fix : labeler 파일 위치 수정

* fix : 주석 제거

* setting : 버전 수정

* setting : vercel 세팅

* Setting : 자동 리뷰어 할당 수정 (#22)

* setting : 깃 액션 세팅

* fix : labeler 파일 위치 수정

* fix : 주석 제거

* setting : 버전 수정

* setting : vercel 세팅

* fix : 리뷰어 자동할당 본인 제거

* setting : frontend 라벨링 제거

* Setting(design-system): 디자인 시스템 토큰 & icons 설정 (#20)

* setting: cn helper function 구현

* setting: .gitignore에 .tsbuildinfo 추가

* setting: cSpell pinback 및 turbo 추가

* setting: css 확장자 파일 tailwindcss로 인식되도록 설정

* setting: setting.json prettier & eslint 설정 추가

* setting: design-system styles token 설정

* setting: prettier/eslint root link

* setting: 기본 폴더구조 gitkeep 추가

* chore: font token 오타 수정

* setting: font-family base pretendard 설정

* setting: svg sprite default setting

* chore: code rabbit review 반영

* Setting(design-system): shadcn-ui default setting (#25)

* setting: shadcn/ui default setting

* chore: add pnpm-lock file

* refactor: code review 반영

* chore: update pnpm-lock file

* setting : 보일러플레이트 연동

* setting : tailwindCss 스타일 적용

* setting : custom.d.ts 타입 구체화

* setting : contents 스크립트 범위 수정

* setting : 폰트 1rem 기준 변경

* setting : extension 확장자 프로그램 초기 세팅 (#28)

* setting : 보일러플레이트 연동

* setting : tailwindCss 스타일 적용

* setting : custom.d.ts 타입 구체화

* setting : contents 스크립트 범위 수정

* setting : 폰트 1rem 기준 변경

---------

Co-authored-by: 이재림 <jellyme@ijaelim-ui-MacBookAir.local>

* !HOTFIX(design-system): tailwind ds @source 추가 (#40)

* Feature(extension): 토글 스위치 제작 (#39)

* feat: 토글 스위치 제작

* chore: 안쓰는 코드 제거

* feat: 사이즈 분기 처리 추가

* feat: 토글 thumb 디테일 수정

* chore: 안쓰는 코드 제거

* feat: 의존성, duration 수정

* chore:  design-system 패키지 export utils추가

* chore:안쓰는 코드 제거

* Feature(extension): 텍스트 필드 팝업 구현 (#32)

* chore: 파일구조 세팅

* feat: ui 구현

* feat: 업데이트된 폰트 적용

* feat: 오버레이 추가

* feat: 삭제, 수정 팝업 분기처리 추가

* feat: x버튼 아이콘 추가

* chore: 안쓰는 코드 제거

* feat:  오버레이-> 박스 섀도우로 변경

* chore: 안쓰는 코드 제거

* feat: onCancel 옵셔널처리

* Feature(extension): textarea 컴포넌트 구현 (#35)

* feat: textarea 구현

* feat: 스크롤바 디자인 커스텀

* chore: 안쓰는 코드 정리

* feat: 상대경로 절대경로로 변경

* feat: 글자수 제한 매직넘버 상수 정의

* feat: 유틸 경로 변경

* chore: 안쓰는 코드 삭제

* chore: 안쓰는 코드 제거

* feat: 유틸 경로 변경

* Feature(extension): 인포 박스 컴포넌트 제작 (#30)

* feat : 인포 박스 컴포넌트 제작

* feat : ver->union 타입으로 수정

* fix : package.json 불필요 삭제

* fix : app.tsx 수정 사항 제거

* feat : 분기 옵션 수정

* Feature(design-system): Input 컴포넌트 구현 (#52)

* feat: input 공통 컴포넌트 구현

* chore: svg.d.ts 파일 추가

* fix: error icon 오타 수정

* feat: aria-invalid 추가

* fix: design-system 내 절대 경로 추가 & tsconfig react.json으로 수정

* feat: input ref props 설정

* fix: build error 해결

* feat: input helperText error400 color로 변경

* Feature(client) useFunnel custom hook 구현 (#54)

* setting: onBoarding 기본 구조 세팅

* chore: 코드 prettier 정리

* feat: useFunnel hook 구현

* fix: build error 해결

* chore: 불필요한 gitkeep 파일 삭제

* chore: tsconfig 경로 설정 수정

* refactor: Funnel 컴포넌트 fallback null 처리 추가

* Feature(design-system): dot-indicator 공통 컴포넌트 구현 (#57)

* feat: dot-indicator 구현

* feat: input font token 미적용 이슈로 인한 tailwind 자체 value 사용

* Feature(client): dashboard-components (#43)

* refactor: 코드 리뷰 피드백 반영 및 툴팁 간격 조정

- 레벨 데이터 중복 제거 (공통 상수로 분리)
- 빈 index.ts 파일들에 실제 export 추가
- SectionTitle variant prop 구현
- Tailwind CSS 동적 클래스명 문제 해결
- 정보 아이콘과 툴팁 간격 8px로 조정
- 빌드 테스트 성공

* refactor: 대시보드 컴포넌트 리팩토링 및 코드 중복 제거

* fix: CodeRabbit 리뷰 피드백 반영

- useDashboard 훅 useCallback 의존성 배열 최적화
- AllViewButtonProps에서 사용하지 않는 children prop 제거
- styleUtils.ts CARD_CLASSES 중복 선언 문제 해결
- SectionTitle 컴포넌트 성능 최적화 및 CSS 클래스 일관성 개선
- React.memo 적용으로 불필요한 재렌더링 방지
- BookmarkCategory 컴포넌트 스타일 개선

* fix: CodeRabbit 리뷰 피드백 반영

* fix: CodeRabbit 리뷰 피드백 최종 반영

- 텍스트 색상 일관성 개선 (text-gray700 → text-gray800)
- React import 추가로 타입 오류 해결
- BookmarkCategory 완전 리팩토링 (styleUtils 함수 적용)
- 카테고리 스타일 유틸리티 함수 확장
- 인라인 스타일 제거로 코드 일관성 향상

* style: 코드 주석 제거 및 정리

* chore: .cursorrules를 gitignore에 추가

* fix: Git 추적에서 .cursorrules 파일 제거

* refactor: React.FC 제거 및 성능 최적화, 주석 정리

* fix: tailwindcss 중복 import 제거

* refactor: BookmarkSection 절대경로 적용 및 타입 정리

* refactor: Category 타입 분리 및 타입 시스템 개선

* refactor: Tooltip children prop required로 변경 및 사용처 수정

* refactor: 절대경로(@routes) 추가 및 관련 import 정리

* refactor: 절대경로 import 일괄 적용 및 경로 오류 수정

* refactor: 상대경로를 절대경로로 변경하고 React import 최적화

* feat: cva 라이브러리를 사용하여 variant 처리 개선

* refactor: tooltip 메시지를 constants 폴더로 분리

* refactor: Tooltip 컴포넌트의 CSS 변수를 Tailwind 클래스로 변경

* refactor: ThumbnailProps의 alt를 optional로 변경

* refactor: Thumbnail 컴포넌트에 cn 유틸리티 적용

* refactor: Props 타입을 컴포넌트 바로 위에 정의하는 컨벤션 적용

* refactor: DailyReminderCard 헤더 레이아웃을 absolute에서 flexbox로 개선

* refactor: 대시보드 컴포넌트 구조 정리 - features/dashboard 폴더를 pages/dashboard/components로 이동

* refactor: features 폴더 구조 개선 - dashboard 하위 폴더 제거

* refactor: CVA 라이브러리 적용으로 컴포넌트 스타일링 개선

* refactor: 인라인 스타일을 CVA로 변경 - 고정된 maxWidth 값 처리

* chore: 사용하지 않는 LAYOUT import 제거 (ts 경고 해결)

* style: 리마인드 카드 패딩 및 스타일링 개선

* style: 카드 테두리 색상을 border-gray-200으로 통일

* style: 리마인드 카드 메모 텍스트 스타일 통일 및 디자인 토큰 적용

* refactor: 컴포넌트 구조 개선 및 디자인 시스템 통합

* test: 북마크 카드 테스트 케이스 추가 및 타이틀 스타일 개선

* Feature(client): onBoarding carousel및 story step 컴포넌트 구현 (#60)

* feat: 온보딩 캐러셀 구현

* feat: funnel story step 구현

* feat: onBoarding funnel 구조 세팅 및 story step 추가

* refactor: story content 상수 분리

* refactor: story constants key에서 title로 변경

* refactor: STEP 상수 constants 폴더로 분리

* refactor: useFunnel initial step props 받도록 변경

* refactor: onboarding image alt 및 aria-label 추가

* refactor: story image depth onBoarding 추가하도록 변경

* Feature(extension): 카테고리 드롭다운 컴포넌트 구현 (#36)

* feat : 드롭다운 퍼블리싱

* feat : hover 적용 처리

* feat : 아이콘 적용

* feat: 아이콘 적용 및 드롭다운 수정

* fix : 폰트 적용 수정

* feat : 클릭 후 텍스트 반영

* feat : 예시 카테고리 추가

* feat : 배열 유효성 체크 및 인덱스 고유값

* feat : 토글 아이콘 교체

* feat : medium,large 분기 처리

* feat : 다운 아이콘 추가

* feat : 아이콘 애니메이션 제거

* fix : app.tsx 수정사항 머지 충돌 해결

* feat : 아이콘 파일 수정 및 정상 적용

* feat: 아이콘 애니메이션 적용

* fix : app.tsx 상태 리버트

* fix : 아이콘 중복 이미지 삭제 및 수정

* fix: package.json 중복 제거

* feat : medium width 값 수정

* fix : console 제거

* fix : 변수 명칭 구체화 수정

* Feature(extension): 데이트 피커 컴포넌트 (#59)

* feat : 인풋 컴포넌트 퍼블리싱

* feat : 공통화 후 분기 로직 분리

* feat : 시간 및 날짜 포맷팅 로직

* feat : 유효성 검사

* feat : 백스페이스 시 포맷팅 제거

* feat : 시간 유효성 추가

* feat : 수정

* refactor : 타입 파일 분리

* refactor : utils 파일로 리팩토링

* fix : app.tsx 초기 상태로 돌리기

* fix: 디자인시스템 package.json 모듈 타입 지정

* fix: 인터페이스 선언 위치 수정

* feat : constants로 상수 분리

* feat : constants 경로 지정

* Refactor(client): 파일 구조 변경 및 디자인 통일 (#65)

* refactor: 대시보드 전용 컴포넌트 pages/dashboard/components로 이동 및 구조 정리

- Thumbnail, LevelInfoModal, Tooltip 대시보드 전용 폴더로 이동
- 관련 import 경로 일괄 수정
- shared/ui에서 export 및 파일 제거
- 구조 명확화로 유지보수성 향상

* refactor: 파일 구조 및 스타일 수정

* refactor: 상대경로를 절대경로로 변경하여 코드 가독성 향상

* Feat(client): SVG 파일 경로 수정 및 EmptyState 텍스트 색상 변경

* chore: public 폴더 재생성 및 vite.svg 복구

* refactor: 경로 변경

* Feature(design-systems): 공통 버튼 컴포넌트 (#63)

* feat: 버튼 틀 공컴 연결

* Revert "feat: 버튼 틀 공컴 연결"

This reverts commit 386d30c.

* feat : 공통 버튼 공컴화 제작

* fix: 디자인 시스템 아이콘 상대경로로 수정

* feat : 사이즈에 따른 버튼 분기 cva

* feat : 색상 분기

* feat : props 옵셔널 정의 제거

* feat : app.tsx 기본 형태로 돌리기

* [Refactor] 팝업 관련 컴포넌트 packages 공컴으로 마이그레이션 작업 (#68)

* feat: 파일들 마이그레이션

* feat : index.ts 재정의

* fix: app.tsx 초기 상태로 수정

* Feature(extension): fcm token 발급 (#71)

* feat: 파이어베이스 설치, 파일세팅

* feat: 환경변수 설정

* feat: env jason 설정

* feat: settingFCM 임포트

* feat: 수정중

* Revert "feat: 수정중"

This reverts commit d123699.

* feat: 필요한 파일 추가, .js->.ts 변경과 설정 변경

* feat: FCM SDK로 토큰 생성 성공

* feat:  환경변수 설정

* fix: 충돌 해결

* fix: build error fix

* !HOTFIX: secret working

* Feature(client): dashboard card view 구현 (#72)

* feat: 북마크 카드 세션 구현

- 카테고리 필터링 기능 (BookmarkCategory)
- 총 카드 개수 표시 (BookmarkCount)
- 카드 그리드 4열 고정
- EmptyState 표시
- 전체보기 버튼 조건부 렌더링 (12개 이상)

* feat: 데일리 리마인드 카드 세션 구현

- 타이머 기능 포함 (Timer 컴포넌트)
- 카드 그리드 4열 고정
- 전체보기 버튼 조건부 렌더링 (12개 이상)
- 토글 기능으로 확장/축소 가능
- 도토리 스탬프 표시 기능

* feat: 대시보드 레이아웃 및 스타일링 구현

- 최대 너비 1440px, 양쪽 패딩 설정
- 헤더 fixed 포지션, 높이 6rem
- 세션 간 간격 140px, 카드 그리드 4열 고정
- 하단 패딩 36px 추가

* feat: 대시보드 데이터 및 훅 구현

- 북마크 카드 목데이터 추가 (카테고리, 읽음 상태 포함)
- useDashboard 훅에서 불필요한 import 제거
- 카테고리 필터링 및 전체보기 기능 지원

* feat: API 및 타입 정의 추가

- timerApi 함수 추가
- EmptyStatePresets 업데이트
- API 타입 정의 추가

* fix: 린트 에러 수정 및 포맷팅 적용

* fix: BookmarkCardProps의 categoryId를 필수 속성으로 변경

* fix: 코드래빗 AI 봇 피드백 반영

- 안 읽은 정보 카테고리 count 값 수정 (3 → 4)
- API limit 값 일관성 수정 (9 → 12)
- 인터페이스 일관성 개선 (BaseCard 공통 인터페이스 추가)
- 디자인 시스템 단위 일관성 수정 (px → rem)

* feat: 북마크 카드 mock 데이터 주석 해제 및 대시보드 카테고리/EmptyState 로직 개선

* refactor: 카테고리 자동 생성 로직 함수화 및 불필요한 주석 제거

* fix: lint/prettier 에러 수정 및 코드 스타일 통일

* refactor: px 단위를 rem으로 통일하여 접근성 및 일관성 개선

* refactor: 중첩 삼항 연산자를 early return 패턴으로 개선하여 가독성 향상

* refactor: 조건에 의미있는 네이밍 추가 및 some 메서드 활용으로 가독성 및 성능 개선

* style: prettier 포맷팅 및 린트 자동 수정

* refactor: setIsExpanded 토글 시 prev 패턴 적용으로 상태 변경 안전성 향상

* Feature(client): onboarding time select step 컴포넌트 구현 (#73)

* feat: timeSelect Step 기본 퍼블리싱 구현

* refactor: 버튼 역할 div button 태그로 변경

* feat: onBoarding header 연결

* feat: 리마인드 시간 아침/저녁 선택 로직 구현

* feat: max notice step & welcome step Funnel에 추가

* feat: useFunnel funnel내에서 boolean 분기처리 되도록 변경

* feat: mac window 구분용 useOSDetector 구현

* feat: 사용자 설정 dropdown open 로직 구현

* feat: header fixed로 변경

* Feature(extension): 익스텐션 팝업 컴포넌트 및 뷰 (#75)

* fix: build 에러 상대 경로 수정

* feat : 익스텐션 medium 팝업 퍼블리싱

* feat: TimePicker에 사이즈 분기 처리

* feat: 팝업 레이아웃 수정

* feat: 팝업 헤더 분리 컴포넌트 연결

* feat: 토글 시 absolutea 처리

* feat: textarea 폰트 적용 및 placeholder

* feat: 얼럿 메시지 -> 빨간 텍스트로 노출

* feat: 크롬 확장프로그램 디폴트 화면 세팅

* fix: 불필요 props 선언 제거

* feat: constants 상수 분리

* fix: firebase관련 세팅 삭제

* feat: 크롬 익스텐션 창 닫기

* feat: arial-label 추가

* feat: 아이콘 빌드파일

* Feature(client): onboarding mac notice & welcome step 컴포넌트 구현 (#77)

* feat: mac notice step 구현

* feat: onboarding welcome step 컴포넌트 구현

* feat: main logo 수정

* chore: mac 분기처리 주석 제거

* refactor: img aria-label 중복 제거

* Feature(client): 대시보드용 팝업 컴포넌트 작업 및 플로우 연결 (#80)

* feat: 대시보드 팝업 컴포넌트 퍼블리싱

* feat: 대시보드 팝업 토글 제어 props 연결

* feat: 카드 더보기 버튼 클릭 시, 팝업 핸들링

* feat: 모달 속 버튼 클릭시 닫기 제어

* feat: 북마크 카드 쪽 팝업닫기 제어

* feat: 북마크 카드 props 타입 통일

* feat: 팝업 바깥영역 클릭시 닫기 제어

* fix: 하드코딩 구간 표시

* fix: props에 옵셔널 조건 통일

* feat: 불필요 에러 메시지 함수 제거 및 팝업 상수 정의

* Setting(client): api 세팅 및 초기 토큰 발급 작업  (#88)

* feat: api 연결 세팅 및 토큰 재발급 플로우

* fix: 콘솔 제거

* feat: 익스텐션 쪽 api 연결 확인

* feat: client api 세팅 주석

* Feature(client): design FCM token management & messaging architecture (#90)

* feat: service worker register function 구현

* feat: background firebase messaging logic 구현

* setting: firebase sdk default setting

* feat: FCM token 발급 test function 구현

* feat: extension google email get method 연결

* feat: 자동화 스크립트 추가 및 코드 품질 개선

- package.json에 format, lint:fix, fix-all, check-all 스크립트 추가
- 린트 및 포맷팅 자동 수정 기능 구현
- ModalPop 컴포넌트에서 불필요한 setErrorMessage prop 제거
- 코드 품질 개선 및 설정 파일 업데이트

* Feature(client): 대시보드 배너 구현 및 개발 워크플로우 개선 (#84)

* feat: 대시보드 배너 및 타이머 기능 임시 저장

* feat: 배너 컴포넌트 및 관련 리소스 추가

* refactor: 배너 컴포넌트 분리 및 모달 위치 개선

* refactor: 배너 컴포넌트 UI 개선 및 중앙 정렬 적용

* feat: 카드 컴포넌트 UI 개선 - 썸네일 크기 통일 및 제목 말줄임 처리

* refactor: 배너 컴포넌트 코드 품질 개선 및 기능 최적화

* refactor: 배너 컴포넌트 폴더 구조 개선 및 코드 품질 향상

* fix: 리마인드 카드 썸네일 배경색 추가로 중앙 정렬 개선

* refactor: 배너 관련 파일 폴더 구조 개선

* cleanup: 중복 파일 제거 및 폴더 구조 정리

* fix: 썸네일 없을 때 배경 박스 제거 및 메모 텍스트 3줄 제한 강화

* fix: 린트 오류 해결

* fix: BannerHeadline 컴포넌트 수정

* fix: 헤더 로고 직접 import 방식으로 변경 및 스타일 수정

* refactor: 코드 품질 개선 및 최적화

- MAX_ACORN_COUNT 상수 추가로 마지막 단계 기준값 재사용 가능
- Timer 로직을 useTimer custom hook으로 분리
- 타입 추론 활용으로 제네릭 타입 제거
- API 응답에서 구조 분해 할당 사용
- 충돌하는 max-height 스타일 수정
- 조건부 스타일링 개선

* fix: TimePicker 컴포넌트에서 불필요한 setErrorMessage prop 제거

* chore: prettier 및 린트 포맷팅 반영

* Feature(client): 온보딩 ui 퍼블리싱 (#89)

* feat: 다이얼 ui 구현

* feat: border 커스텀

* feat: ui 커스텀

* feat: ui 완성

* feat: 사용자 설정 시간 저장

* chore: 안쓰는 코드 삭제

* feat: 온보딩 사용자 설정 추가

* fix : 버블링 해결

* feat: 시간 선택 포맷 개선 및 팝업 토글 함수 수정

* feat: 사용자 설정 시간 선택 기능 개선 및 팝업 상태 반영

* feat: 팝업 외부 클릭 감지 기능 추가 및 사용자 설정 시간 선택 UI 개선

* feat: 온보딩 레이아웃 정렬, 프리셋 시간 선택 기능 개선

* feat: 버튼 컴포넌트 제작

* feat: 온보딩 단계에서 네비게이션 버튼 컴포넌트 추가 및 시간 선택 버튼 개선

* feat: 사용자 설정 시간 선택 UX 수정

* feat: 시간 선택 기능 개선 및 포맷 유틸리티 추가+ 버튼 레이아웃

* feat: 팝업 z인덱스

* fix: ts env 추적 못하는 문제 해결

* chore: 필요 없는 함수 주석 처리

* refactor: color 하드 코딩된 값 수정

* chore: props type interface로 변경

* feat: mac user button 분기 처리 & 토큰 발급 로직 수정

* chore: prettier 정리..

* Setting(extension): 익스텐션 쪽 API 세팅 및 client랑 데이터 연결 작업 (#93)

* feat: api 연결 세팅 및 토큰 재발급 플로우

* fix: 콘솔 제거

* feat: 익스텐션 쪽 api 연결 확인

* feat: client api 세팅 주석

* feat: client->extension 토큰 전달 로직

* refactor: utils함수로 분리

* feat: 이메일 fetch 및 랜딩 연결

* fix: 콘솔 및 주석 제거

* Feature(extension): 북마크 저장 및 API 연결 작업 (#87)

* setting: 익스텐션 세팅 수정

* feat: 북마크 저장 로직 구현 연습

* feat: url에 따른 썸네일 추적

* feat: 북마크 저장 기능 구현

* feat: 북마크 저장 시 창 닫기

* feat: 이미지 연결

* feat: 북마크 정보 팝업에 연동

* feat: 텍스트 포맷 및 이미지 연동

* feat: 북마크 제대로 저장 수정

* fix: 주석 제거

* feat: 텍스트 없으면 익스텐션 실행 끄기

* fix: 콘솔 제거

* feat: 크롬 도메인일 경우에는 꺼지지 않게 제어

* feat: api 테스트 코드 제거

* fix: 대시보드 누락 사항 복구

* fix: 데이터 누락 추가

* Api(client): 회원 가입 api 연결 (#97)

* chore: signup 오타 수정

* feat: signup axios fetch 함수 구현

* feat: signup query 함수 구현

* api: signup api 연결

* feat: signup query onSuccess token localStorage 추가 로직 구현

* feat: next button step 변하는 로직 onSuccess로 이동

* feat: signup success시 localStorage 저장 및 send extension 로직 추가

* Feature(extension): modalpop의 카테고리 드롭다운에 popup 연결 (#102)

* feat: 버튼 공통 컴포넌트 연결

* feat: input 아이콘 컬러 변경

* feat: 버튼 비활성화

* feat: 추가하기 팝업 연결

* feat: 카테고리 수정하기 팝업 연결

* chore:  안쓰는 코드 삭제

* feat: 이벤트 전파방지 코드

* chore: 안쓰는 코드 제거

* Api(client): 대시보드 api 연결 (#101)

* feat: 대시보드 API 연동

# Conflicts:
#	apps/client/src/pages/dashboard/dashboard.tsx
#	apps/client/src/pages/onBoarding/OnBoarding.tsx

* refactor: api 타입 분리 및 import 경로 일괄 수정

# Conflicts:
#	apps/client/src/pages/dashboard/dashboard.tsx

* fix: 이메일 하드코딩 환경변수 처리 및 fallback 적용

# Conflicts:
#	apps/client/src/pages/dashboard/dashboard.tsx

* fix: 썸네일 캐싱 및 에러 처리 개선, 환경변수 적용

* refactor: 썸네일 API를 대시보드 전용 폴더로 이동 및 구조 정리

* refactor: 대시보드 코드 정리 및 최적화

- TestSection 컴포넌트 삭제
- 테스트 버튼 UI 제거
- useDashboard 훅에서 테스트 관련 함수 제거
- 도토리 개수 업데이트 로직 개선
- 배너 렌더링 디버깅 로그 추가
- 썸네일 화질 개선 (64px → 128px)
- api.allorigins.win 프록시 서비스 제거
- TypeScript 오류 수정

# Conflicts:
#	apps/client/src/pages/dashboard/dashboard.tsx

* fix: ESLint 오류 수정 및 코드 정리

- 빈 함수 오류 수정 (empty arrow function)
- non-null assertion 오류 수정
- 디버깅용 console.log 제거
- 코드 포맷팅 적용

* fix: 카드 더보기 버튼 이벤트 중첩 해결 및 토큰 관리 개선

- BookmarkCard, DailyReminderCard에서 더보기 버튼 클릭 시 e.stopPropagation() 추가
- DailyReminderCard 스탬프 오버레이에 pointer-events-none 추가
- Dashboard 모달 팝업 시 스크롤 고정 로직 추가
- axiosInstance에서 하드코딩된 토큰 발급 로직 제거
- 온보딩에서 저장된 토큰만 사용하도록 수정
- 대시보드에서 토큰이 없으면 온보딩으로 리다이렉트하는 로직 추가

* fix: 대시보드 토큰 통합 및 이벤트 처리 문제 수정

* fix: 콘솔 로그 및 errorUtils 파일 제거 및 개발자 테스트용 API 및 관련 코드 제거

* fix: api 폴더에서 썸네일 유틸리티를 utils 폴더로 분리

* fix: TypeScript 에러 수정

* fix: 주석 정리 및 간소화

* fix: axiosInstance에서 온보딩 토큰 사용하도록 수정

* fix: 주석 지우기

* fix: 주석 정리

* refactor: API 호출 함수 정리 및 썸네일 유틸리티 분리

- API 호출 함수에서 불필요한 try/catch 및 콘솔 로그 제거
- 썸네일 관련 유틸리티를 apis에서 utils로 분리
- Thumbnail 컴포넌트 import 경로 수정
- useAcornCount 훅에서 불필요한 try/catch 제거

* refactor: AxiosResponse 타입 활용 및 코드 개선

- API 함수들이 AxiosResponse 타입을 반환하도록 수정
- 훅들에서 response.data로 접근하도록 수정
- 사용하지 않는 AxiosError import 제거
- 썸네일 유틸리티에서 불필요한 Content-Type 헤더 제거

* Feature(client): dashboard popup에 추가 popup 연결 (#105)

* feat: client dashboard modalpop에 추가 popup 연결

* feat: popup overlay z-index 임시 수정

* feat: popup overlay 적용

* feat: url title & location truncate 처리

* Feature(onboarding): story 변경사항 반영 (#113)

* feat: 스토리 변경+헤더 프롭스 변경

* feat: 디테일 반영

* chore: 프리티어 적용

* Feature(landing): UI 구현과 로띠 적용 (#98)

* Feature(landing): 홈 페이지 섹션 구성 요소 추가

* feat: landing 로띠 추가

* feat: 스크롤 효과 적용

* feat: 로띠 루프 설정

* feat: 로띠 추가

* feat: 버튼 컴포넌트 추가

* chore: 스타일 수정

* feat: 코드리뷰 반영

* feat: 텍스트 추가

* feat: 최종 수정 반영

* fix: 이름 자동 생성 오류 변경

* chore: 프리티어 수정

* Api(extension): 익스텐션 북마크 아티클 저장 API 연결 (#107)

* feat: 크롬 스토리지에 저장

* feat: 모달 레이아웃 조정 및 색 적용

* feat: 카테고리 조회 및 가져오기

* fix: 드롭다운 초기값 설정

* feat: 포맷 함수+리마인드 get 연결

* feat: 북마크 아티클 api연결

* fix: 불필요 api 제거

* feat: 포맷 시간 추가

* fix: 콘솔 제거

---------

Co-authored-by: jjangminii <wjdals030328@catholic.ac.kr>

* Api (extension): 익스텐션 팝업 수정/삭제/생성 Edit 기능 API 연결 (#114)

* feat: 크롬 스토리지에 저장

* feat: 모달 레이아웃 조정 및 색 적용

* feat: 카테고리 조회 및 가져오기

* fix: 드롭다운 초기값 설정

* feat: 포맷 함수+리마인드 get 연결

* feat: 북마크 아티클 api연결

* fix: 불필요 api 제거

* feat: 포맷 시간 추가

* fix: 콘솔 제거

* feat: 카테고리 생성 api

* feat: 카테고리 수정 api

* fix: 에러 던지기

* fix: 에러 얼럿 추가

* feat: 카테고리 삭제 api 연결

* feat: 토큰 연결 및 받아오기

* fix: 콘솔제거

* fix: lint 수정

---------

Co-authored-by: jjangminii <wjdals030328@catholic.ac.kr>

* Api(client) 대쉬보드 팝업 상세 조회/카테고리 조회/삭제 API 연결 (#115)

* api: dashboard axios fetch 함수 구현

* api: dashboard query 함수 구현

* chore: query import 경로 수정

* chore: 불필요한 파일 삭제

* api: dashboard api 연결

* feat: og proxy 우회 로직 구현

* chore: 필요없는 코드 제거

* chore: pnpm lock sync

* !HOTFIX: infoBox edit

* Refactor(client): 1차 개발 QA (#118)

* chore: level modal scroll bar 덜그럭 문제 해결

* feat: 아티클 삭제 query invalidate 적용

* Refactor: 개발 2차 QA 작업 (#119)

* feat: 대시보드 카테고리 수정 및 삭제 api

* feat: 토글 버튼 zindex 제어

* feat: 아티클 수정 patch api 연결

* feat: 카테고리 생성하기

* fix: lint 수정

* fix: lint dpfj

* feat: 저장 시 모달 닫기

* fix: err lint 수정

* feat: 시간 포맷팅 수정

* feat: 모달 닫기 로직

---------

Co-authored-by: constantly-dev <rntqhdl10@naver.com>
Co-authored-by: karnelll <165611407+karnelll@users.noreply.github.com>
Co-authored-by: KIM JEONGMIN <163228804+jjangminii@users.noreply.github.com>
Co-authored-by: 이재림 <jellyme@ijaelim-ui-MacBookAir.local>
Co-authored-by: SEOHEE CHOI <itskarnel@kyonggi.ac.kr>
Co-authored-by: jjangminii <wjdals030328@catholic.ac.kr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⚙️ Setting 개발 환경 세팅 정민

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Setting] Tailwind CSS 설정

4 participants