diff --git a/package.json b/package.json index b657e5a..214c45c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "recycle-study-extension", - "version": "1.0.2", + "version": "1.1.0", "description": "복습 URL 저장 크롬 익스텐션", "type": "module", "scripts": { diff --git a/public/manifest.json b/public/manifest.json index 6dae4fd..f443b7a 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Recycle Study", - "version": "1.0.2", + "version": "1.1.0", "description": "복습 URL을 저장하고 스케줄에 따라 알림을 받는 익스텐션", "permissions": [ "storage", diff --git a/public/popup.css b/public/popup.css index 986e745..57a2253 100644 --- a/public/popup.css +++ b/public/popup.css @@ -331,3 +331,182 @@ body { .confirm-buttons .btn { flex: 1; } + +/* 주기 선택 드롭다운 */ +.cycle-select { + width: 100%; + padding: 10px 12px; + border: 1px solid #ddd; + border-radius: 6px; + font-size: 14px; + background-color: #fff; + cursor: pointer; + transition: border-color 0.2s; +} + +.cycle-select:focus { + outline: none; + border-color: #3498db; +} + +/* 주기 목록 */ +.cycle-list { + list-style: none; + margin-top: 12px; + margin-bottom: 12px; +} + +.cycle-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 10px; + margin-bottom: 8px; + background-color: #f8f9fa; + border-radius: 6px; +} + +.cycle-item-empty { + padding: 12px; + text-align: center; + color: #95a5a6; + font-size: 12px; +} + +.cycle-info { + flex: 1; + min-width: 0; +} + +.cycle-title { + font-weight: 500; + font-size: 13px; + margin-bottom: 2px; +} + +.cycle-durations { + font-size: 11px; + color: #7f8c8d; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.cycle-actions { + display: flex; + gap: 4px; + margin-left: 8px; +} + +.btn-small { + padding: 6px 10px; + font-size: 12px; + width: auto; +} + +/* 모달 */ +.modal { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 200; +} + +.modal-content { + background: #fff; + padding: 20px; + border-radius: 8px; + width: 290px; + max-height: 90vh; + overflow-y: auto; +} + +.modal-content h3 { + margin-bottom: 16px; + font-size: 16px; + color: #2c3e50; +} + +/* Duration 입력 그룹 */ +.duration-input-group { + display: flex; + align-items: center; + gap: 6px; + margin-bottom: 8px; +} + +.duration-value { + width: 60px; + padding: 8px; + border: 1px solid #ddd; + border-radius: 4px; + font-size: 14px; + text-align: center; +} + +.duration-value:focus { + outline: none; + border-color: #3498db; +} + +.duration-unit { + padding: 8px; + border: 1px solid #ddd; + border-radius: 4px; + font-size: 14px; + background-color: #fff; + cursor: pointer; +} + +.duration-unit:focus { + outline: none; + border-color: #3498db; +} + +.btn-remove-duration { + width: 28px; + height: 28px; + padding: 0; + border: none; + border-radius: 4px; + background-color: #e74c3c; + color: #fff; + font-size: 16px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; +} + +.btn-remove-duration:hover { + background-color: #c0392b; +} + +/* 폼 버튼 영역 */ +.form-actions { + display: flex; + gap: 8px; + margin-top: 16px; +} + +.form-actions .btn { + flex: 1; +} + +/* 주기 섹션 */ +#cycle-section { + margin-top: 12px; + margin-bottom: 12px; +} + +#cycle-section h3 { + font-size: 14px; + margin-bottom: 8px; + color: #2c3e50; +} diff --git a/public/popup.html b/public/popup.html index 60f7628..ad77867 100644 --- a/public/popup.html +++ b/public/popup.html @@ -38,6 +38,14 @@