spin-frontend/tailwind.config.js
theorose49 7cab590fe2
All checks were successful
build-and-push / build (push) Successful in 36s
feat: spin 프론트엔드 전체 구현 (React+TS+Vite+Tailwind)
- AppShell·사이드바(역할별 네비)·탑바·UI킷, react-query·axios·recharts·dnd-kit
- SP 디자인 토큰 재사용(navy/canvas/Noto Sans KR) + 회계용 고밀도 확장
- 페이지: 대시보드, 근무(타임시트·휴가/초과 신청), 프로젝트 목록/상세
  (간트·칸반·캘린더·작업자portion·업체담당자·계약/분할입금 admin),
  인센티브(유저 대시보드), 인센티브 관리 콘솔(단계 stepper·시뮬레이터·오버라이드),
  회계(현금-인센티브 갭·원장·세금), 구성원·설정·승인·프로필
- 권한 가드: 관리자 전용 라우트, ?as=user 로 구성원 시점 미리보기

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 08:57:50 +09:00

72 lines
2.0 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
// spin reuses the Special Partners design tokens (shared with eQMS) so the
// internal tools feel like one product, then extends them for a dense,
// professional accounting/ops surface (status & stage colors, wide tables).
export default {
content: ["./index.html", "./src/**/*.{ts,tsx}"],
theme: {
extend: {
colors: {
navy: {
DEFAULT: "#11224F",
hover: "#1B2F66",
sidebar: "#0C1733",
subtle: "#E8ECF5",
},
canvas: "#F5F6F8",
surface: "#FFFFFF",
border: {
DEFAULT: "#E4E7EC",
strong: "#D0D5DD",
},
ink: {
DEFAULT: "#101828",
secondary: "#475467",
strong: "#344054",
muted: "#98A2B3",
},
// request / approval statuses
status: {
"pending-fg": "#B54708",
"pending-bg": "#FEF0C7",
"approved-fg": "#067647",
"approved-bg": "#DCFAE6",
"rejected-fg": "#B42318",
"rejected-bg": "#FEE4E2",
"neutral-fg": "#475467",
"neutral-bg": "#F2F4F7",
},
// incentive fix lifecycle (예정 → 반영중 → 반영완료 → 지급완료)
stage: {
planned: "#98A2B3",
applying: "#2E90FA",
applied: "#7A5AF8",
paid: "#12B76A",
},
// accounting semantics
money: {
in: "#067647",
out: "#B42318",
},
chip: { bg: "#EEF1F8" },
divider: "#F2F4F7",
},
fontFamily: {
wordmark: ['"Lora"', "serif"],
sans: ['"Noto Sans KR"', "system-ui", "sans-serif"],
num: ['"Inter"', "system-ui", "sans-serif"],
},
borderRadius: {
card: "12px",
control: "8px",
pill: "999px",
},
boxShadow: {
card: "0 1px 2px rgba(16,24,40,0.06)",
pop: "0 8px 24px rgba(16,24,40,0.12)",
},
},
},
plugins: [],
};