diff --git a/src/main/resources/static/js/comment-cards.js b/src/main/resources/static/js/comment-cards.js
index b35d13f..c2c241d 100644
--- a/src/main/resources/static/js/comment-cards.js
+++ b/src/main/resources/static/js/comment-cards.js
@@ -5,6 +5,8 @@
let mosaicOn = true; // 프로필·아이디 모자이크 기본 ON
let roundedOn = false; // 모서리 둥글게 토글(기본: 각진 모서리)
let wordMaskOn = true; // 단어 가리기 기본 ON(단어 클릭=가림). 끄면 카드 클릭=복사.
+ let textScale = 1; // 내용 글자 크기 배율(카드 크기는 유지, .cc-text만 확대/축소)
+ let bgMode = 'default'; // 카드 배경: default|white|black (black이면 글자 흰색)
let dirHandle = null; // 저장 폴더(File System Access API). null이면 브라우저 다운로드 폴백.
let dirOptOut = false; // 사용자가 폴더 지정을 직접 해제 → '전체 저장' 시 다시 묻지 않음
const savedIds = new Set(); // 이미 저장한 댓글 id(재렌더·필터 변경에도 표시 유지)
@@ -120,7 +122,9 @@
card.className = 'comment-card'
+ (mosaicOn ? ' mosaic' : '')
+ (roundedOn ? ' rounded' : '')
+ + (bgMode === 'white' ? ' bg-white' : bgMode === 'black' ? ' bg-black' : '')
+ (savedIds.has(c.__id) ? ' saved' : ''); // 이미 저장한 카드는 회색 톤 유지
+ if (textScale !== 1) card.style.setProperty('--cc-text-scale', String(textScale));
card.dataset.index = i;
card.dataset.cid = c.__id;
@@ -630,6 +634,34 @@
$('cardGrid').classList.toggle('wordmask', wordMaskOn);
});
+ // 내용 글자 크기: 카드는 그대로, .cc-text만 배율 조정(재렌더·캡처에도 유지되도록 카드 인라인 변수)
+ function applyTextScale() {
+ $('ccFontLabel').textContent = Math.round(textScale * 100) + '%';
+ document.querySelectorAll('#cardGrid .comment-card').forEach(el =>
+ el.style.setProperty('--cc-text-scale', String(textScale)));
+ }
+ $('ccFontDown').addEventListener('click', () => {
+ textScale = Math.max(0.6, +(textScale - 0.1).toFixed(2));
+ applyTextScale();
+ });
+ $('ccFontUp').addEventListener('click', () => {
+ textScale = Math.min(2, +(textScale + 0.1).toFixed(2));
+ applyTextScale();
+ });
+
+ // 배경색: 기본 → 흰색 → 검정 순환. 검정이면 글자는 흰색(대비).
+ const BG_MODES = ['default', 'white', 'black'];
+ const BG_LABEL = { default: '배경: 기본', white: '배경: 흰색', black: '배경: 검정' };
+ $('ccBg').addEventListener('click', () => {
+ bgMode = BG_MODES[(BG_MODES.indexOf(bgMode) + 1) % BG_MODES.length];
+ $('ccBg').textContent = BG_LABEL[bgMode];
+ setToggle($('ccBg'), bgMode !== 'default');
+ document.querySelectorAll('#cardGrid .comment-card').forEach(el => {
+ el.classList.toggle('bg-white', bgMode === 'white');
+ el.classList.toggle('bg-black', bgMode === 'black');
+ });
+ });
+
$('ccPickDir').addEventListener('click', pickDir);
$('ccSaveAll').addEventListener('click', saveAllVisible);
// 폴더 저장 미지원 브라우저(파이어폭스/사파리)면 폴더 버튼 숨김 → 전체 저장은 다운로드 폴백
diff --git a/src/main/resources/templates/comment-cards.html b/src/main/resources/templates/comment-cards.html
index 7b6174a..4167527 100644
--- a/src/main/resources/templates/comment-cards.html
+++ b/src/main/resources/templates/comment-cards.html
@@ -41,7 +41,19 @@
.cc-meta { flex:1; min-width:0; }
.cc-author { font-weight:600; font-size:13.5px; color:var(--text); }
.cc-time { font-size:11.5px; color:var(--text-2); margin-left:.4rem; }
- .cc-text { font-size:14px; color:var(--text); margin-top:.35rem; white-space:pre-wrap; word-break:break-word; line-height:1.5; }
+ /* 내용 글자 크기: 카드 레이아웃은 그대로 두고 텍스트만 확대/축소(--cc-text-scale, 카드 인라인에 지정) */
+ .cc-text { font-size:calc(14px * var(--cc-text-scale, 1)); color:var(--text); margin-top:.35rem; white-space:pre-wrap; word-break:break-word; line-height:1.5; }
+ /* 배경색 옵션: 흰색/검정. 검정이면 글자는 흰색 계열로 대비 확보 */
+ .comment-card.bg-white { background:#ffffff; border-color:#e5e5e5; }
+ .comment-card.bg-white .cc-author, .comment-card.bg-white .cc-text { color:#0f0f0f; }
+ .comment-card.bg-white .cc-time, .comment-card.bg-white .cc-stats { color:#606060; }
+ .comment-card.bg-black { background:#000000; border-color:#333333; }
+ .comment-card.bg-black .cc-author, .comment-card.bg-black .cc-text { color:#ffffff; }
+ .comment-card.bg-black .cc-time, .comment-card.bg-black .cc-stats { color:#aaaaaa; }
+ /* 글자 크기 스테퍼 */
+ .cc-fontsize { display:inline-flex; align-items:center; gap:.35rem; }
+ .cc-fontsize .cc-btn { min-width:38px; padding:.55rem .6rem; }
+ .cc-fontsize #ccFontLabel { font-size:12px; color:var(--text-2); min-width:3.2ch; text-align:center; font-variant-numeric:tabular-nums; }
.cc-stats { font-size:12px; color:var(--text-2); margin-top:.5rem; display:flex; gap:1rem; font-variant-numeric:tabular-nums; }
.comment-card { cursor:pointer; }
/* 저장 버튼 — cc-noexport라 캡처 이미지에서 제외됨 */
@@ -137,6 +149,12 @@
+
+
+ 100%
+
+
+
@@ -152,7 +170,7 @@
-
+