design-refs — 웹 디자인 레퍼런스 자산 (handoff)
C:\dev전체가 참고하는 웹 UI 디자인 소스 보관소. 프로젝트가 아니라 자산이다(코드가 아니라 재료). 보는 창구 = devplan/design-refs.html(http://localhost:8799/design-refs.html · 원격 100.108.234.45:8799). 마스터 =C:\dev\design-refs\· 규칙 =projects/design-refs/rules.md· 사용법 원문 =C:\dev\design-refs\README.md
🔶 루트 NOW 이관 — 진행·미결 (2026-08-19 대청소, 페페 지시)
루트
HANDOFF.md를 pncad 만 남기고 비웠다. 아래는 그때 옮겨온 원문(문구 무변경).
- 🆕design-refs 26.8.3 신규 — 웹 디자인 레퍼런스 자산(페페 지시, 자산이지 프로젝트 아님). 마스터
C:\dev\design-refs\(최상위 신설 = 그릴링 확정), 창구 devplan/design-refs.html. 1차 적재 = Bootstrap 5.3.8(dist·예제 41종·scss) + Icons 1.13.1(SVG 2078+웹폰트), 둘 다 MIT·2,320개 15.4MB. 예제 35종 한국어 분류(용도까지: devplan 대시보드/PFS 업무화면/계산기/랜딩). 페이지는catalog.jsonfetch 구동 = 소스 늘어도 안 고침, 예제는 iframe 라이브 프리뷰(뷰포트 전환·경로복사)·아이콘 2078 검색. 소스 추가 = 폴더+SOURCES1항목+스크립트 2개. 🔑devplan 8799 서버 = 상승권한이라 코디 재시작 불가 + 정션 못 넘음(실측 404) → 게시(복사) 방식,app.py라우트는 이중화로 남김. ⚠devplan 페이지에 부트스트랩 CSS 링크 금지(테마 게이트 FAIL). ⏳페페 몫 = 페이지 훑고 다음 소스 지목(Tailwind·Flowbite·daisyUI 등) → 이후 gptbutler 목업 샘플. →projects/design-refs/{handoff,rules}.md
🆕 NOW (2026-08-03) — 1차 적재 완료, 바로 쓸 수 있음
- [페페] 발단 = "getbootstrap.com 무료 소스를 받아 dev 전체의 웹구성 기본 디자인 레퍼런스를 구축하고, 앞으로 다른 디자인 소스도 계속 자산으로 정리한다. devplan에서 내가 살펴볼 수 있게 UI 샘플 페이지도."
- [페페] 구조 확정(그릴링 1문) = 신규 최상위
C:\dev\design-refs\정식 신설. devplan 하위·tools 하위 안 됨 — "dev 전체 레퍼런스"라는 성격에 맞춰 소스가 늘어도 같은 틀로 받는다. - 1차 적재 = Bootstrap 5.3.8(MIT) + Bootstrap Icons 1.13.1(MIT). 자산 2,320개 / 15.4MB.
- dist(컴파일 CSS/JS 44) · examples 41종(비RTL 35 + RTL 6) · scss(소스 102) · 아이콘 SVG 2,078 + 웹폰트.
- 예제 35종을 한국어로 분류(서브에이전트가 HTML을 직접 열어 확인) — 분류/설명/실제 컴포넌트/페페 작업 기준 용도(devplan 대시보드·PFS 업무화면·계산기 사이트·랜딩)까지. 내비게이션 9 · 레이아웃 8 · 페이지 템플릿 6 · 컴포넌트 모음 5 · 폼·커머스 4 · 참고표 3.
- 뷰어 페이지는
catalog.json을 fetch해서 그린다 → 소스가 늘어도 페이지를 안 고친다(핵심 요구). 예제는 iframe 라이브 프리뷰(뷰포트 375/768/100% 전환·새 탭·경로 복사), 아이콘은 웹폰트로 2,078개 검색. - ⏳페페 몫 = 페이지 열어서 훑어보고 "다음에 받을 소스" 지목(Tailwind·Flowbite·daisyUI 등). 이후 gptbutler 목업 샘플 작업으로 이어감.
확정 (재논의 금지)
| 항목 | 확정 |
|---|---|
| 위치 | C:\dev\design-refs\ 최상위. 업스트림 폴더 구조 그대로 + LICENSE 동봉 |
| 라이선스 | 상업적 사용 자유로운 것만(MIT·Apache·CC-BY). 유료 테마·NC(비상업)는 받지 않는다 |
| 카탈로그 | catalog.json = 산출물(build_catalog.py가 생성). 파일 수·용량·아이콘 수는 실측해서 채운다(수기 금지) |
| 웹 게시 | publish_devplan.py로 브라우저가 요청하는 것만 devplan\design-refs\에 복사. SCSS·소스맵·SVG 낱개는 게시 안 함 |
| 페이지 | 카탈로그 구동. 새 소스 = 폴더 + SOURCES 1항목 + 두 스크립트 실행이면 끝 |
| 원본 zip | _raw\에 보관(재현·재해제용) |
🔑 함정 (실측 확정 — 재조사 금지)
- devplan 8799 서버는 코디가 재시작할 수 없다 — 프로세스(pythonw)가 상승권한이라 같은 계정인데도
taskkill이 "액세스 거부". 예약작업devplan-dashboard(delix·Limited)와 별개로 떠 있다. →app.py를 고쳐도 즉시 반영되지 않는다. - 그 서버는 정션(
mklink /J)을 못 넘어간다 — 실측: 같은 깊이의 실디렉터리 200 / 정션 404(devplan 안에 만든 정션도 동일). 새로 띄운 Python 3.12 http.server는 정상 200 → 서버 프로세스 권한 문제. → devplan 밖 자산은 "게시(복사)"로 붙인다.app.py에는/design-refs/*→C:\dev\design-refs매핑 라우트를 넣어뒀고(경로 탈출 방어 포함), 서버가 언젠가 재시작되면 그쪽이 우선 적용된다. 상대 경로 구조가 같아 페이지는 어느 쪽이든 그대로 뜬다. - devplan 페이지에 부트스트랩 CSS를 링크하면 테마 게이트가 FAIL한다(테라코타 웜톤을 부트스트랩 팔레트가 덮어씀) → 예제는 iframe 안에서만. 아이콘 CSS는 색 선언이 없어 링크해도 안전(실측 FAIL 0).
- 서브에이전트가 반환한 HTML에 JSON 이스케이프가 한 겹 더 씌워질 수 있다 — 파일에 실개행 0 + 리터럴
\n642개 +\\31개로 저장돼 화면에\n이 그대로 찍히고 JS가Invalid or unexpected token으로 죽었다. → 조립 후 실개행 수를 먼저 세고, 0이면 한 겹 벗긴다(json.loads('"'+본문의 " 이스케이프+'"')).
다음
- 소스 추가 후보(페페 지목 대기) = Tailwind CSS · Flowbite · daisyUI · Heroicons · Lucide 등. 절차는
rules.md대로 4단계. - 기존 프로젝트(rollcalculator·PFS·devplan)에서 실제로 조각을 가져다 쓸 때 어떤 예제를 베꼈는지 기록해두면 다음 화면이 빨라진다.
불변 핵심
- 자산이지 프로젝트가 아니다 — 여기 코드를 짜지 않는다. 받고·정리하고·보여주는 것까지가 범위.
- 카탈로그가 단일 출처 — 페이지·수치는 전부
catalog.json에서 나온다. 화면에 숫자를 하드코딩하지 않는다. - 게시본은 산출물 —
devplan\design-refs\를 직접 편집하지 않는다(다음 publish에 덮어쓴다). - 관련: devplan(뷰어 페이지·허브 카드) · gptbutler(진행판 목업 — 이 자산을 쓸 다음 후보) · rollcalculator(공개 사이트 UI)