diff --git a/apps/service/.storybook/preview.ts b/apps/service/.storybook/preview.ts
index eb000d3..9b5a06e 100644
--- a/apps/service/.storybook/preview.ts
+++ b/apps/service/.storybook/preview.ts
@@ -1,5 +1,5 @@
import type { Preview } from "@storybook/react";
-import "@/index.css";
+import "@/styles/index.css";
const preview: Preview = {
parameters: {
diff --git a/apps/service/src/App.tsx b/apps/service/src/App.tsx
index 3ce4901..3ef0300 100644
--- a/apps/service/src/App.tsx
+++ b/apps/service/src/App.tsx
@@ -1,6 +1,8 @@
function App() {
return (
-
hello
+
+ hello
+
);
}
diff --git a/apps/service/src/styles/colors.css b/apps/service/src/styles/colors.css
index 39f2664..cd2d1bb 100644
--- a/apps/service/src/styles/colors.css
+++ b/apps/service/src/styles/colors.css
@@ -4,13 +4,17 @@
@theme {
--color-neutral-black: oklch(0 0 0);
--color-neutral-white: oklch(1 0 0);
+ --color-neutral-50: oklch(0.96 0.006 236.45);
+ --color-neutral-100: oklch(0.93 0.0059 239.82);
+ --color-neutral-500: oklch(0.6 0.03 239);
+ --color-neutral-950: oklch(0.15 0.02 240);
--color-primary-blue: oklch(0.47 0.2985 264.26);
+ --color-primary-purple: oklch(0.6 0.25 328);
+ --color-primary-violetblue: oklch(0.75 0.1 270);
+ --color-primary-babyblue: oklch(0.9 0.05 240);
+ --color-primary-bluegray: oklch(0.92 0.03 240);
+ --color-primary-cobaltblue: oklch(0.85 0.1 230);
+ --color-primary-berrypurple: oklch(0.5928 0.2446 265.26);
+ --color-background-lightblue: oklch(0.9358 0.0304 265.33);
--color-lightblue: oklch(0.94 0.0304 265.33);
-
- --color-blue-purple-from: oklch(0.47 0.2985 264.26);
- --color-blue-purple-to: oklch(0.59 0.299256 307.9);
-}
-
-.bg-blue-to-purple {
- @apply bg-gradient-to-r from-blue-purple-from to-blue-purple-to;
}
diff --git a/apps/service/src/styles/index.css b/apps/service/src/styles/index.css
index b9d835b..7bee4b7 100644
--- a/apps/service/src/styles/index.css
+++ b/apps/service/src/styles/index.css
@@ -1,6 +1,8 @@
@import "tailwindcss";
-@import "./text-styles.css";
@import "./colors.css";
+@import "./text-styles.css";
+@import "./spacing.css";
+@config "../../tailwind.config.js";
/* https://tailwindcss.com/docs/functions-and-directives */
/* https://v2.tailwindcss.com/docs/gradient-color-stops */
diff --git a/apps/service/src/styles/spacing.css b/apps/service/src/styles/spacing.css
new file mode 100644
index 0000000..e6a614f
--- /dev/null
+++ b/apps/service/src/styles/spacing.css
@@ -0,0 +1,29 @@
+@theme {
+ --spacing-0: 0px;
+ --spacing-100: 4px;
+ --spacing-200: 8px;
+ --spacing-300: 12px;
+ --spacing-400: 16px;
+ --spacing-500: 20px;
+ --spacing-600: 24px;
+ --spacing-700: 28px;
+ --spacing-800: 32px;
+ --spacing-900: 36px;
+ --spacing-1000: 40px;
+ --spacing-1100: 44px;
+ --spacing-1200: 48px;
+ --spacing-1300: 52px;
+ --spacing-1400: 56px;
+ --spacing-1500: 60px;
+ --spacing-1600: 64px;
+ --spacing-1700: 68px;
+ --spacing-1800: 72px;
+ --spacing-1900: 76px;
+ --spacing-2000: 80px;
+ --spacing-2500: 112px;
+ --spacing-2900: 140px;
+ --spacing-3000: 180px;
+ --spacing-4000: 200px;
+ --spacing-5000: 240px;
+ --spacing-6000: 360px;
+}
diff --git a/apps/service/src/styles/text-styles.css b/apps/service/src/styles/text-styles.css
index 9dc7e6e..2bd0d8b 100644
--- a/apps/service/src/styles/text-styles.css
+++ b/apps/service/src/styles/text-styles.css
@@ -1,124 +1,149 @@
-/* src/styles/text-style.css */
+@theme {
+ --text-heading-banner-title: 88px;
+ --text-heading-banner-title--line-height: 100px;
+ --text-heading-banner-title--font-weight: 700;
-.text-heading-banner-title {
- @apply text-[88px] leading-[100px] font-bold;
-}
+ --text-heading-banner-title-2: 80px;
+ --text-heading-banner-title-2--line-height: 90px;
+ --text-heading-banner-title-2--font-weight: 700;
-.text-heading-banner-title-2 {
- @apply text-[80px] leading-[90px] font-bold;
-}
+ --text-heading-banner-title-3: 72px;
+ --text-heading-banner-title-3--line-height: 80px;
+ --text-heading-banner-title-3--font-weight: 700;
-.text-heading-banner-title-3 {
- @apply text-[72px] leading-[80px] font-bold;
-}
+ --text-heading-1-bold: 48px;
+ --text-heading-1-bold--line-height: 70px;
+ --text-heading-1-bold--font-weight: 700;
-.text-heading-1-bold {
- @apply text-[48px] leading-[70px] font-bold;
-}
-.text-heading-1-semibold {
- @apply text-[48px] leading-[70px] font-semibold;
-}
-.text-heading-1-medium {
- @apply text-[48px] leading-[70px] font-medium;
-}
-.text-heading-1-regular {
- @apply text-[48px] leading-[70px] font-normal;
-}
+ --text-heading-1-semibold: 48px;
+ --text-heading-1-semibold--line-height: 70px;
+ --text-heading-1-semibold--font-weight: 600;
-.text-heading-2-bold {
- @apply text-[44px] leading-[70px] font-bold;
-}
-.text-heading-2-semibold {
- @apply text-[44px] leading-[70px] font-semibold;
-}
-.text-heading-2-medium {
- @apply text-[44px] leading-[70px] font-medium;
-}
-.text-heading-2-regular {
- @apply text-[44px] leading-[70px] font-normal;
-}
+ --text-heading-1-medium: 48px;
+ --text-heading-1-medium--line-height: 70px;
+ --text-heading-1-medium--font-weight: 500;
-.text-heading-3-bold {
- @apply text-[40px] leading-[70px] font-bold;
-}
-.text-heading-3-semibold {
- @apply text-[40px] leading-[70px] font-semibold;
-}
-.text-heading-3-medium {
- @apply text-[40px] leading-[70px] font-medium;
-}
-.text-heading-3-regular {
- @apply text-[40px] leading-[70px] font-normal;
-}
+ --text-heading-1-regular: 48px;
+ --text-heading-1-regular--line-height: 70px;
+ --text-heading-1-regular--font-weight: 400;
-.text-body-1-bold {
- @apply text-[36px] leading-[54px] font-bold;
-}
-.text-body-1-semibold {
- @apply text-[36px] leading-[54px] font-semibold;
-}
-.text-body-1-medium {
- @apply text-[36px] leading-[54px] font-medium;
-}
-.text-body-1-regular {
- @apply text-[36px] leading-[54px] font-normal;
-}
+ --text-heading-2-bold: 44px;
+ --text-heading-2-bold--line-height: 70px;
+ --text-heading-2-bold--font-weight: 700;
-.text-body-2-bold {
- @apply text-[32px] leading-[54px] font-bold;
-}
-.text-body-2-semibold {
- @apply text-[32px] leading-[54px] font-semibold;
-}
-.text-body-2-medium {
- @apply text-[32px] leading-[54px] font-medium;
-}
-.text-body-2-regular {
- @apply text-[32px] leading-[54px] font-normal;
-}
+ --text-heading-2-semibold: 44px;
+ --text-heading-2-semibold--line-height: 70px;
+ --text-heading-2-semibold--font-weight: 600;
-.text-body-3-bold {
- @apply text-[28px] leading-[54px] font-bold;
-}
-.text-body-3-semibold {
- @apply text-[28px] leading-[54px] font-semibold;
-}
-.text-body-3-medium {
- @apply text-[28px] leading-[54px] font-medium;
-}
-.text-body-3-regular {
- @apply text-[28px] leading-[54px] font-normal;
-}
+ --text-heading-2-medium: 44px;
+ --text-heading-2-medium--line-height: 70px;
+ --text-heading-2-medium--font-weight: 500;
-.text-detail-1-bold {
- @apply text-[24px] leading-[36px] font-bold;
-}
-.text-detail-1-semibold {
- @apply text-[24px] leading-[36px] font-semibold;
-}
-.text-detail-1-medium {
- @apply text-[24px] leading-[36px] font-medium;
-}
-.text-detail-1-regular {
- @apply text-[24px] leading-[36px] font-normal;
-}
+ --text-heading-2-regular: 44px;
+ --text-heading-2-regular--line-height: 70px;
+ --text-heading-2-regular--font-weight: 400;
-.text-detail-2-bold {
- @apply text-[20px] leading-[32px] font-bold;
-}
-.text-detail-2-semibold {
- @apply text-[20px] leading-[32px] font-semibold;
-}
-.text-detail-2-medium {
- @apply text-[20px] leading-[32px] font-medium;
-}
-.text-detail-2-regular {
- @apply text-[20px] leading-[32px] font-normal;
-}
+ --text-heading-3-bold: 40px;
+ --text-heading-3-bold--line-height: 70px;
+ --text-heading-3-bold--font-weight: 700;
-.text-detail-3-semibold {
- @apply text-[16px] leading-[20px] font-semibold;
-}
-.text-detail-3-regular {
- @apply text-[16px] leading-[20px] font-normal;
+ --text-heading-3-semibold: 40px;
+ --text-heading-3-semibold--line-height: 70px;
+ --text-heading-3-semibold--font-weight: 600;
+
+ --text-heading-3-medium: 40px;
+ --text-heading-3-medium--line-height: 70px;
+ --text-heading-3-medium--font-weight: 500;
+
+ --text-heading-3-regular: 40px;
+ --text-heading-3-regular--line-height: 70px;
+ --text-heading-3-regular--font-weight: 400;
+
+ --text-body-1-bold: 36px;
+ --text-body-1-bold--line-height: 54px;
+ --text-body-1-bold--font-weight: 700;
+
+ --text-body-1-semibold: 36px;
+ --text-body-1-semibold--line-height: 54px;
+ --text-body-1-semibold--font-weight: 600;
+
+ --text-body-1-medium: 36px;
+ --text-body-1-medium--line-height: 54px;
+ --text-body-1-medium--font-weight: 500;
+
+ --text-body-1-regular: 36px;
+ --text-body-1-regular--line-height: 54px;
+ --text-body-1-regular--font-weight: 400;
+
+ --text-body-2-bold: 32px;
+ --text-body-2-bold--line-height: 54px;
+ --text-body-2-bold--font-weight: 700;
+
+ --text-body-2-semibold: 32px;
+ --text-body-2-semibold--line-height: 54px;
+ --text-body-2-semibold--font-weight: 600;
+
+ --text-body-2-medium: 32px;
+ --text-body-2-medium--line-height: 54px;
+ --text-body-2-medium--font-weight: 500;
+
+ --text-body-2-regular: 32px;
+ --text-body-2-regular--line-height: 54px;
+ --text-body-2-regular--font-weight: 400;
+
+ --text-body-3-bold: 28px;
+ --text-body-3-bold--line-height: 54px;
+ --text-body-3-bold--font-weight: 700;
+
+ --text-body-3-semibold: 28px;
+ --text-body-3-semibold--line-height: 54px;
+ --text-body-3-semibold--font-weight: 600;
+
+ --text-body-3-medium: 28px;
+ --text-body-3-medium--line-height: 54px;
+ --text-body-3-medium--font-weight: 500;
+
+ --text-body-3-regular: 28px;
+ --text-body-3-regular--line-height: 54px;
+ --text-body-3-regular--font-weight: 400;
+
+ --text-detail-1-bold: 24px;
+ --text-detail-1-bold--line-height: 36px;
+ --text-detail-1-bold--font-weight: 700;
+
+ --text-detail-1-semibold: 24px;
+ --text-detail-1-semibold--line-height: 36px;
+ --text-detail-1-semibold--font-weight: 600;
+
+ --text-detail-1-medium: 24px;
+ --text-detail-1-medium--line-height: 36px;
+ --text-detail-1-medium--font-weight: 500;
+
+ --text-detail-1-regular: 24px;
+ --text-detail-1-regular--line-height: 36px;
+ --text-detail-1-regular--font-weight: 400;
+
+ --text-detail-2-bold: 20px;
+ --text-detail-2-bold--line-height: 32px;
+ --text-detail-2-bold--font-weight: 700;
+
+ --text-detail-2-semibold: 20px;
+ --text-detail-2-semibold--line-height: 32px;
+ --text-detail-2-semibold--font-weight: 600;
+
+ --text-detail-2-medium: 20px;
+ --text-detail-2-medium--line-height: 32px;
+ --text-detail-2-medium--font-weight: 500;
+
+ --text-detail-2-regular: 20px;
+ --text-detail-2-regular--line-height: 32px;
+ --text-detail-2-regular--font-weight: 400;
+
+ --text-detail-3-semibold: 16px;
+ --text-detail-3-semibold--line-height: 20px;
+ --text-detail-3-semibold--font-weight: 600;
+
+ --text-detail-3-regular: 16px;
+ --text-detail-3-regular--line-height: 20px;
+ --text-detail-3-regular--font-weight: 400;
}
diff --git a/apps/service/tailwind.config.js b/apps/service/tailwind.config.js
new file mode 100644
index 0000000..20d5254
--- /dev/null
+++ b/apps/service/tailwind.config.js
@@ -0,0 +1,34 @@
+/** @type {import('tailwindcss').Config} */
+
+(
+ module.exports = {
+ content: ["./src/**/*.{js,ts,jsx,tsx}"],
+ theme: {
+ extend: {
+ backgroundImage: {
+ //그림 배경 정의
+ "new-car-intro": "url('@/assets/images/newCarIntroBg.webp')",
+ "join-event-main": "url('@/assets/images/joinEventMainBg.webp')",
+ "miniquiz-paper": "url('@/assets/images/miniQuizBg.webp')",
+ // 그라데이션 색상 정의
+ "gradient-blue-purple":
+ "linear-gradient(90deg, #0128FF 0%, #AD00FF 100%)",
+ "gradient-cobaltblue-white":
+ "linear-gradient(90deg, #C5F0FF 0%, #FFF 100%)",
+ "gradient-violetblue-cobaltblue":
+ "linear-gradient(90deg, #8285F6 0%, #C5F0FF 100%)",
+ "gradient-lightblue-white":
+ "linear-gradient(90deg, #E0EAFF 0%, #FFF 100%)",
+ "gradient-cobaltblue-white-opposite":
+ "linear-gradient(270deg, #C5F0FF 0%, #FFF 100%)",
+ "gradient-lightblue-white-vertical":
+ "linear-gradient(180deg, #E0EAFF 0%, #FFF 100%)",
+ "gradient-cobaltblue-white-vertical":
+ "linear-gradient(180deg, #C5F0FF 0%, #FFF 100%)",
+ carCard: "linear-gradient(180deg, #C5F0FF 0%, #FFF 99.95%)",
+ toolBoxCard: "linear-gradient(180deg, #E0EAFF 0%, #FFF 99.95%)",
+ },
+ },
+ },
+ }
+);