feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분 - #87

Merged
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors
Jul 21, 2026
Merged

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분#87
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors

Conversation

@BcKmini

Copy link
Copy Markdown
Member

개요

근로자 목록 기한 뱃지(D-12/D-21/D-35/D-62/정상)와 업무함 rail 색상이 날짜 차이와 무관하게 동일하게 표시되고 있었다. Figma(node-id=935-2, PEOPLE-001/WORK-001)에도 세분화된 기준이 없어 직접 임계값을 정했다.

기준

  • 긴급 (critical/red): D-day 7일 이내
  • 중간 (warning/amber): D-day 8~30일
  • 여유 (success/green): D-day 31일 이상, 또는 임박한 기한 없음("정상")

변경 사항

  • src/utils/urgency.ts 신규: getUrgencyTier, URGENCY_TONE, URGENCY_LABEL
  • WorkerListPage: deadlineHighlighted(boolean, 이진 판정) 제거 → deadlineDays 기반 3단계 색상으로 대체. 리스트 행 텍스트 색상 + 상세 패널 StatusLabel 톤 모두 적용 (여유 등급은 뱃지 생략, 기존과 동일하게 시각 노이즈 최소화)
  • WorkListPage: 정적 urgency 필드 제거 → dueDays로부터 파생. WorkItemRow의 기존 warning/critical/neutral 팔레트에 매핑해 rail 색상 자동 반영
  • 테스트: urgency.test.ts 유닛 테스트, 각 페이지에 색상 클래스 검증 테스트 추가

검증

  • npm run lint
  • npm run test (전체 100개 통과)
  • npm run build

Closes#86

근로자 목록 기한 뱃지와 업무함 rail 색상이 날짜 차이와 무관하게 동일한
색으로 표시되고 있었다. Figma(node-id=935-2)에도 세분화된 기준이 없어
직접 임계값을 정해 공통 유틸 src/utils/urgency.ts를 추가했다.
- 긴급(critical): D-day 7일 이내
- 중간(warning): D-day 8~30일
- 여유(success): D-day 31일 이상, 또는 임박한 기한 없음
WorkerListPage의 deadlineHighlighted(boolean)를 deadlineDays 기반 3단계
색상으로 대체하고, WorkListPage의 정적 urgency 필드를 dueDays로부터
파생하도록 바꿔 데이터 불일치 가능성을 없앴다.
Closes#86
@BcKmini
BcKmini merged commit abf0187 into mainJul 21, 2026
@hywznn
hywznn deleted the feature/deadline-urgency-colors branch August 18, 2026 09:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 근로자·업무 기한을 긴급/중간/여유 3단계 색상으로 구분

1 participant

@BcKmini
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분 - #87

Merged
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors
Jul 21, 2026
Merged

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분#87
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors

Conversation

@BcKmini

Copy link
Copy Markdown
Member

개요

근로자 목록 기한 뱃지(D-12/D-21/D-35/D-62/정상)와 업무함 rail 색상이 날짜 차이와 무관하게 동일하게 표시되고 있었다. Figma(node-id=935-2, PEOPLE-001/WORK-001)에도 세분화된 기준이 없어 직접 임계값을 정했다.

기준

  • 긴급 (critical/red): D-day 7일 이내
  • 중간 (warning/amber): D-day 8~30일
  • 여유 (success/green): D-day 31일 이상, 또는 임박한 기한 없음("정상")

변경 사항

  • src/utils/urgency.ts 신규: getUrgencyTier, URGENCY_TONE, URGENCY_LABEL
  • WorkerListPage: deadlineHighlighted(boolean, 이진 판정) 제거 → deadlineDays 기반 3단계 색상으로 대체. 리스트 행 텍스트 색상 + 상세 패널 StatusLabel 톤 모두 적용 (여유 등급은 뱃지 생략, 기존과 동일하게 시각 노이즈 최소화)
  • WorkListPage: 정적 urgency 필드 제거 → dueDays로부터 파생. WorkItemRow의 기존 warning/critical/neutral 팔레트에 매핑해 rail 색상 자동 반영
  • 테스트: urgency.test.ts 유닛 테스트, 각 페이지에 색상 클래스 검증 테스트 추가

검증

  • npm run lint
  • npm run test (전체 100개 통과)
  • npm run build

Closes#86

근로자 목록 기한 뱃지와 업무함 rail 색상이 날짜 차이와 무관하게 동일한
색으로 표시되고 있었다. Figma(node-id=935-2)에도 세분화된 기준이 없어
직접 임계값을 정해 공통 유틸 src/utils/urgency.ts를 추가했다.
- 긴급(critical): D-day 7일 이내
- 중간(warning): D-day 8~30일
- 여유(success): D-day 31일 이상, 또는 임박한 기한 없음
WorkerListPage의 deadlineHighlighted(boolean)를 deadlineDays 기반 3단계
색상으로 대체하고, WorkListPage의 정적 urgency 필드를 dueDays로부터
파생하도록 바꿔 데이터 불일치 가능성을 없앴다.
Closes#86
@BcKmini
BcKmini merged commit abf0187 into mainJul 21, 2026
@hywznn
hywznn deleted the feature/deadline-urgency-colors branch August 18, 2026 09:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 근로자·업무 기한을 긴급/중간/여유 3단계 색상으로 구분

1 participant

@BcKmini
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분 - #87

Merged
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors
Jul 21, 2026
Merged

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분#87
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors

Conversation

@BcKmini

Copy link
Copy Markdown
Member

개요

근로자 목록 기한 뱃지(D-12/D-21/D-35/D-62/정상)와 업무함 rail 색상이 날짜 차이와 무관하게 동일하게 표시되고 있었다. Figma(node-id=935-2, PEOPLE-001/WORK-001)에도 세분화된 기준이 없어 직접 임계값을 정했다.

기준

  • 긴급 (critical/red): D-day 7일 이내
  • 중간 (warning/amber): D-day 8~30일
  • 여유 (success/green): D-day 31일 이상, 또는 임박한 기한 없음("정상")

변경 사항

  • src/utils/urgency.ts 신규: getUrgencyTier, URGENCY_TONE, URGENCY_LABEL
  • WorkerListPage: deadlineHighlighted(boolean, 이진 판정) 제거 → deadlineDays 기반 3단계 색상으로 대체. 리스트 행 텍스트 색상 + 상세 패널 StatusLabel 톤 모두 적용 (여유 등급은 뱃지 생략, 기존과 동일하게 시각 노이즈 최소화)
  • WorkListPage: 정적 urgency 필드 제거 → dueDays로부터 파생. WorkItemRow의 기존 warning/critical/neutral 팔레트에 매핑해 rail 색상 자동 반영
  • 테스트: urgency.test.ts 유닛 테스트, 각 페이지에 색상 클래스 검증 테스트 추가

검증

  • npm run lint
  • npm run test (전체 100개 통과)
  • npm run build

Closes#86

근로자 목록 기한 뱃지와 업무함 rail 색상이 날짜 차이와 무관하게 동일한
색으로 표시되고 있었다. Figma(node-id=935-2)에도 세분화된 기준이 없어
직접 임계값을 정해 공통 유틸 src/utils/urgency.ts를 추가했다.
- 긴급(critical): D-day 7일 이내
- 중간(warning): D-day 8~30일
- 여유(success): D-day 31일 이상, 또는 임박한 기한 없음
WorkerListPage의 deadlineHighlighted(boolean)를 deadlineDays 기반 3단계
색상으로 대체하고, WorkListPage의 정적 urgency 필드를 dueDays로부터
파생하도록 바꿔 데이터 불일치 가능성을 없앴다.
Closes#86
@BcKmini
BcKmini merged commit abf0187 into mainJul 21, 2026
@hywznn
hywznn deleted the feature/deadline-urgency-colors branch August 18, 2026 09:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 근로자·업무 기한을 긴급/중간/여유 3단계 색상으로 구분

1 participant

@BcKmini
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분 - #87

Merged
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors
Jul 21, 2026
Merged

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분#87
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors

Conversation

@BcKmini

Copy link
Copy Markdown
Member

개요

근로자 목록 기한 뱃지(D-12/D-21/D-35/D-62/정상)와 업무함 rail 색상이 날짜 차이와 무관하게 동일하게 표시되고 있었다. Figma(node-id=935-2, PEOPLE-001/WORK-001)에도 세분화된 기준이 없어 직접 임계값을 정했다.

기준

  • 긴급 (critical/red): D-day 7일 이내
  • 중간 (warning/amber): D-day 8~30일
  • 여유 (success/green): D-day 31일 이상, 또는 임박한 기한 없음("정상")

변경 사항

  • src/utils/urgency.ts 신규: getUrgencyTier, URGENCY_TONE, URGENCY_LABEL
  • WorkerListPage: deadlineHighlighted(boolean, 이진 판정) 제거 → deadlineDays 기반 3단계 색상으로 대체. 리스트 행 텍스트 색상 + 상세 패널 StatusLabel 톤 모두 적용 (여유 등급은 뱃지 생략, 기존과 동일하게 시각 노이즈 최소화)
  • WorkListPage: 정적 urgency 필드 제거 → dueDays로부터 파생. WorkItemRow의 기존 warning/critical/neutral 팔레트에 매핑해 rail 색상 자동 반영
  • 테스트: urgency.test.ts 유닛 테스트, 각 페이지에 색상 클래스 검증 테스트 추가

검증

  • npm run lint
  • npm run test (전체 100개 통과)
  • npm run build

Closes#86

근로자 목록 기한 뱃지와 업무함 rail 색상이 날짜 차이와 무관하게 동일한
색으로 표시되고 있었다. Figma(node-id=935-2)에도 세분화된 기준이 없어
직접 임계값을 정해 공통 유틸 src/utils/urgency.ts를 추가했다.
- 긴급(critical): D-day 7일 이내
- 중간(warning): D-day 8~30일
- 여유(success): D-day 31일 이상, 또는 임박한 기한 없음
WorkerListPage의 deadlineHighlighted(boolean)를 deadlineDays 기반 3단계
색상으로 대체하고, WorkListPage의 정적 urgency 필드를 dueDays로부터
파생하도록 바꿔 데이터 불일치 가능성을 없앴다.
Closes#86
@BcKmini
BcKmini merged commit abf0187 into mainJul 21, 2026
@hywznn
hywznn deleted the feature/deadline-urgency-colors branch August 18, 2026 09:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 근로자·업무 기한을 긴급/중간/여유 3단계 색상으로 구분

1 participant

@BcKmini
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분 - #87

Merged
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors
Jul 21, 2026
Merged

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분#87
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors

Conversation

@BcKmini

Copy link
Copy Markdown
Member

개요

근로자 목록 기한 뱃지(D-12/D-21/D-35/D-62/정상)와 업무함 rail 색상이 날짜 차이와 무관하게 동일하게 표시되고 있었다. Figma(node-id=935-2, PEOPLE-001/WORK-001)에도 세분화된 기준이 없어 직접 임계값을 정했다.

기준

  • 긴급 (critical/red): D-day 7일 이내
  • 중간 (warning/amber): D-day 8~30일
  • 여유 (success/green): D-day 31일 이상, 또는 임박한 기한 없음("정상")

변경 사항

  • src/utils/urgency.ts 신규: getUrgencyTier, URGENCY_TONE, URGENCY_LABEL
  • WorkerListPage: deadlineHighlighted(boolean, 이진 판정) 제거 → deadlineDays 기반 3단계 색상으로 대체. 리스트 행 텍스트 색상 + 상세 패널 StatusLabel 톤 모두 적용 (여유 등급은 뱃지 생략, 기존과 동일하게 시각 노이즈 최소화)
  • WorkListPage: 정적 urgency 필드 제거 → dueDays로부터 파생. WorkItemRow의 기존 warning/critical/neutral 팔레트에 매핑해 rail 색상 자동 반영
  • 테스트: urgency.test.ts 유닛 테스트, 각 페이지에 색상 클래스 검증 테스트 추가

검증

  • npm run lint
  • npm run test (전체 100개 통과)
  • npm run build

Closes#86

근로자 목록 기한 뱃지와 업무함 rail 색상이 날짜 차이와 무관하게 동일한
색으로 표시되고 있었다. Figma(node-id=935-2)에도 세분화된 기준이 없어
직접 임계값을 정해 공통 유틸 src/utils/urgency.ts를 추가했다.
- 긴급(critical): D-day 7일 이내
- 중간(warning): D-day 8~30일
- 여유(success): D-day 31일 이상, 또는 임박한 기한 없음
WorkerListPage의 deadlineHighlighted(boolean)를 deadlineDays 기반 3단계
색상으로 대체하고, WorkListPage의 정적 urgency 필드를 dueDays로부터
파생하도록 바꿔 데이터 불일치 가능성을 없앴다.
Closes#86
@BcKmini
BcKmini merged commit abf0187 into mainJul 21, 2026
@hywznn
hywznn deleted the feature/deadline-urgency-colors branch August 18, 2026 09:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 근로자·업무 기한을 긴급/중간/여유 3단계 색상으로 구분

1 participant

@BcKmini
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분 - #87

Merged
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors
Jul 21, 2026
Merged

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분#87
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors

Conversation

@BcKmini

Copy link
Copy Markdown
Member

개요

근로자 목록 기한 뱃지(D-12/D-21/D-35/D-62/정상)와 업무함 rail 색상이 날짜 차이와 무관하게 동일하게 표시되고 있었다. Figma(node-id=935-2, PEOPLE-001/WORK-001)에도 세분화된 기준이 없어 직접 임계값을 정했다.

기준

  • 긴급 (critical/red): D-day 7일 이내
  • 중간 (warning/amber): D-day 8~30일
  • 여유 (success/green): D-day 31일 이상, 또는 임박한 기한 없음("정상")

변경 사항

  • src/utils/urgency.ts 신규: getUrgencyTier, URGENCY_TONE, URGENCY_LABEL
  • WorkerListPage: deadlineHighlighted(boolean, 이진 판정) 제거 → deadlineDays 기반 3단계 색상으로 대체. 리스트 행 텍스트 색상 + 상세 패널 StatusLabel 톤 모두 적용 (여유 등급은 뱃지 생략, 기존과 동일하게 시각 노이즈 최소화)
  • WorkListPage: 정적 urgency 필드 제거 → dueDays로부터 파생. WorkItemRow의 기존 warning/critical/neutral 팔레트에 매핑해 rail 색상 자동 반영
  • 테스트: urgency.test.ts 유닛 테스트, 각 페이지에 색상 클래스 검증 테스트 추가

검증

  • npm run lint
  • npm run test (전체 100개 통과)
  • npm run build

Closes#86

근로자 목록 기한 뱃지와 업무함 rail 색상이 날짜 차이와 무관하게 동일한
색으로 표시되고 있었다. Figma(node-id=935-2)에도 세분화된 기준이 없어
직접 임계값을 정해 공통 유틸 src/utils/urgency.ts를 추가했다.
- 긴급(critical): D-day 7일 이내
- 중간(warning): D-day 8~30일
- 여유(success): D-day 31일 이상, 또는 임박한 기한 없음
WorkerListPage의 deadlineHighlighted(boolean)를 deadlineDays 기반 3단계
색상으로 대체하고, WorkListPage의 정적 urgency 필드를 dueDays로부터
파생하도록 바꿔 데이터 불일치 가능성을 없앴다.
Closes#86
@BcKmini
BcKmini merged commit abf0187 into mainJul 21, 2026
@hywznn
hywznn deleted the feature/deadline-urgency-colors branch August 18, 2026 09:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 근로자·업무 기한을 긴급/중간/여유 3단계 색상으로 구분

1 participant

@BcKmini
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분 - #87

Merged
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors
Jul 21, 2026
Merged

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분#87
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors

Conversation

@BcKmini

Copy link
Copy Markdown
Member

개요

근로자 목록 기한 뱃지(D-12/D-21/D-35/D-62/정상)와 업무함 rail 색상이 날짜 차이와 무관하게 동일하게 표시되고 있었다. Figma(node-id=935-2, PEOPLE-001/WORK-001)에도 세분화된 기준이 없어 직접 임계값을 정했다.

기준

  • 긴급 (critical/red): D-day 7일 이내
  • 중간 (warning/amber): D-day 8~30일
  • 여유 (success/green): D-day 31일 이상, 또는 임박한 기한 없음("정상")

변경 사항

  • src/utils/urgency.ts 신규: getUrgencyTier, URGENCY_TONE, URGENCY_LABEL
  • WorkerListPage: deadlineHighlighted(boolean, 이진 판정) 제거 → deadlineDays 기반 3단계 색상으로 대체. 리스트 행 텍스트 색상 + 상세 패널 StatusLabel 톤 모두 적용 (여유 등급은 뱃지 생략, 기존과 동일하게 시각 노이즈 최소화)
  • WorkListPage: 정적 urgency 필드 제거 → dueDays로부터 파생. WorkItemRow의 기존 warning/critical/neutral 팔레트에 매핑해 rail 색상 자동 반영
  • 테스트: urgency.test.ts 유닛 테스트, 각 페이지에 색상 클래스 검증 테스트 추가

검증

  • npm run lint
  • npm run test (전체 100개 통과)
  • npm run build

Closes#86

근로자 목록 기한 뱃지와 업무함 rail 색상이 날짜 차이와 무관하게 동일한
색으로 표시되고 있었다. Figma(node-id=935-2)에도 세분화된 기준이 없어
직접 임계값을 정해 공통 유틸 src/utils/urgency.ts를 추가했다.
- 긴급(critical): D-day 7일 이내
- 중간(warning): D-day 8~30일
- 여유(success): D-day 31일 이상, 또는 임박한 기한 없음
WorkerListPage의 deadlineHighlighted(boolean)를 deadlineDays 기반 3단계
색상으로 대체하고, WorkListPage의 정적 urgency 필드를 dueDays로부터
파생하도록 바꿔 데이터 불일치 가능성을 없앴다.
Closes#86
@BcKmini
BcKmini merged commit abf0187 into mainJul 21, 2026
@hywznn
hywznn deleted the feature/deadline-urgency-colors branch August 18, 2026 09:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 근로자·업무 기한을 긴급/중간/여유 3단계 색상으로 구분

1 participant

@BcKmini
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분 - #87

Merged
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors
Jul 21, 2026
Merged

feat(platform): 기한을 긴급·중간·여유 3단계 색상으로 구분#87
BcKmini merged 1 commit into
mainfrom
feature/deadline-urgency-colors

Conversation

@BcKmini

Copy link
Copy Markdown
Member

개요

근로자 목록 기한 뱃지(D-12/D-21/D-35/D-62/정상)와 업무함 rail 색상이 날짜 차이와 무관하게 동일하게 표시되고 있었다. Figma(node-id=935-2, PEOPLE-001/WORK-001)에도 세분화된 기준이 없어 직접 임계값을 정했다.

기준

  • 긴급 (critical/red): D-day 7일 이내
  • 중간 (warning/amber): D-day 8~30일
  • 여유 (success/green): D-day 31일 이상, 또는 임박한 기한 없음("정상")

변경 사항

  • src/utils/urgency.ts 신규: getUrgencyTier, URGENCY_TONE, URGENCY_LABEL
  • WorkerListPage: deadlineHighlighted(boolean, 이진 판정) 제거 → deadlineDays 기반 3단계 색상으로 대체. 리스트 행 텍스트 색상 + 상세 패널 StatusLabel 톤 모두 적용 (여유 등급은 뱃지 생략, 기존과 동일하게 시각 노이즈 최소화)
  • WorkListPage: 정적 urgency 필드 제거 → dueDays로부터 파생. WorkItemRow의 기존 warning/critical/neutral 팔레트에 매핑해 rail 색상 자동 반영
  • 테스트: urgency.test.ts 유닛 테스트, 각 페이지에 색상 클래스 검증 테스트 추가

검증

  • npm run lint
  • npm run test (전체 100개 통과)
  • npm run build

Closes#86

근로자 목록 기한 뱃지와 업무함 rail 색상이 날짜 차이와 무관하게 동일한
색으로 표시되고 있었다. Figma(node-id=935-2)에도 세분화된 기준이 없어
직접 임계값을 정해 공통 유틸 src/utils/urgency.ts를 추가했다.
- 긴급(critical): D-day 7일 이내
- 중간(warning): D-day 8~30일
- 여유(success): D-day 31일 이상, 또는 임박한 기한 없음
WorkerListPage의 deadlineHighlighted(boolean)를 deadlineDays 기반 3단계
색상으로 대체하고, WorkListPage의 정적 urgency 필드를 dueDays로부터
파생하도록 바꿔 데이터 불일치 가능성을 없앴다.
Closes#86
@BcKmini
BcKmini merged commit abf0187 into mainJul 21, 2026
@hywznn
hywznn deleted the feature/deadline-urgency-colors branch August 18, 2026 09:27
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 근로자·업무 기한을 긴급/중간/여유 3단계 색상으로 구분

1 participant

@BcKmini