feat(ui): 검색영역 접이식 정리 + 다크모드 입력 대비·터치타깃 개선

- index: 고도화검색을 <details> 접이식으로(prefill 시 open) → 검색 진입점 위계 정리
- 다크모드 입력 테두리 대비 강화(border rgba(255,255,255,0.26)): login·signup·index·game-detail
- 체크박스 터치타깃 1.15rem(login·signup), summary 44px

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
This commit is contained in:
이정수 2026-06-29 19:10:42 +09:00
parent e51ab0136c
commit 4f4811eb73
4 changed files with 59 additions and 6 deletions

View File

@ -952,6 +952,10 @@
border-color: var(--accent);
box-shadow: 0 0 0 3px rgba(232, 165, 75, 0.18);
}
html[data-theme="dark"] .game-comments__form textarea,
html[data-theme="dark"] .game-comments__edit-form textarea {
border-color: rgba(255, 255, 255, 0.26);
}
/* ── 6축 평가 입력 그리드 ─────────────────────────────── */
.game-reviews__axes {

View File

@ -265,6 +265,11 @@
html[data-theme="dark"] .search-form__input {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23aaa' stroke-width='2'%3E%3Ccircle cx='8.5' cy='8.5' r='5.5'/%3E%3Cpath d='M12 12l5 5'/%3E%3C/svg%3E");
}
html[data-theme="dark"] .search-form__input,
html[data-theme="dark"] .advanced-search__input,
html[data-theme="dark"] .advanced-search__select {
border-color: rgba(255, 255, 255, 0.26);
}
.search-form__input::placeholder {
color: var(--text-muted);
}
@ -394,6 +399,37 @@
background: var(--card-bg);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.advanced-search__summary {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 0.25rem;
min-height: 44px;
box-sizing: border-box;
list-style: none;
cursor: pointer;
font-size: 0.9375rem;
font-weight: 700;
color: var(--text-muted);
-webkit-tap-highlight-color: transparent;
}
.advanced-search__summary::-webkit-details-marker { display: none; }
.advanced-search__summary::before {
content: "▶";
font-size: 0.65rem;
color: var(--accent);
transition: transform 0.2s ease;
}
details[open] .advanced-search__summary::before {
transform: rotate(90deg);
}
.advanced-search__summary:hover {
color: var(--text);
}
/* details 열렸을 때 form 상단 마진 */
details[open] > form.advanced-search-form {
margin-top: 0.5rem;
}
.advanced-search__row {
display: flex;
flex-wrap: wrap;
@ -475,6 +511,7 @@
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.625rem;
justify-content: center;
}
@media (min-width: 480px) {
.card-grid {
@ -747,7 +784,12 @@
</a>
<% } %>
</div>
<form class="advanced-search" role="search" action="<%= ctx %>/games/search" method="get">
<%
boolean advOpen = !searchKeyword.isBlank() || !searchCreator.isBlank() || !"latest".equals(searchSort) || !selectedTagSlugs.isEmpty();
%>
<details class="advanced-search"<%= advOpen ? " open" : "" %>>
<summary class="advanced-search__summary">상세 검색</summary>
<form class="advanced-search-form" role="search" action="<%= ctx %>/games/search" method="get">
<div class="advanced-search__row">
<label class="search-form__label" for="adv-keyword">게임 이름·소개 검색</label>
<input class="advanced-search__input" type="search" id="adv-keyword" name="keyword" value="<%= escapedSearchKeyword %>" placeholder="게임 이름·소개 검색" autocomplete="off" />
@ -797,6 +839,7 @@
</div>
<% } %>
</form>
</details>
<div class="search-history" id="search-history" hidden>
<div class="search-history__head">
<span class="search-history__label">최근 검색</span>

View File

@ -120,6 +120,9 @@
border-color: var(--accent);
box-shadow: 0 0 0 3px rgba(232, 165, 75, 0.25);
}
html[data-theme="dark"] .auth-field__input {
border-color: rgba(255, 255, 255, 0.26);
}
.auth-row {
display: flex;
align-items: center;
@ -135,8 +138,8 @@
color: var(--text-muted);
}
.auth-check input {
width: 1rem;
height: 1rem;
width: 1.15rem;
height: 1.15rem;
accent-color: var(--accent);
}
.auth-button {

View File

@ -120,6 +120,9 @@
border-color: var(--accent);
box-shadow: 0 0 0 3px rgba(232, 165, 75, 0.25);
}
html[data-theme="dark"] .auth-field__input {
border-color: rgba(255, 255, 255, 0.26);
}
.auth-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
@ -135,8 +138,8 @@
}
.auth-check input {
flex-shrink: 0;
width: 1rem;
height: 1rem;
width: 1.15rem;
height: 1.15rem;
margin-top: 0.15rem;
accent-color: var(--accent);
}