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:
parent
e51ab0136c
commit
4f4811eb73
|
|
@ -952,6 +952,10 @@
|
||||||
border-color: var(--accent);
|
border-color: var(--accent);
|
||||||
box-shadow: 0 0 0 3px rgba(232, 165, 75, 0.18);
|
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축 평가 입력 그리드 ─────────────────────────────── */
|
/* ── 6축 평가 입력 그리드 ─────────────────────────────── */
|
||||||
.game-reviews__axes {
|
.game-reviews__axes {
|
||||||
|
|
|
||||||
|
|
@ -265,6 +265,11 @@
|
||||||
html[data-theme="dark"] .search-form__input {
|
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");
|
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 {
|
.search-form__input::placeholder {
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
}
|
}
|
||||||
|
|
@ -394,6 +399,37 @@
|
||||||
background: var(--card-bg);
|
background: var(--card-bg);
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
|
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 {
|
.advanced-search__row {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|
@ -475,6 +511,7 @@
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
gap: 0.625rem;
|
gap: 0.625rem;
|
||||||
|
justify-content: center;
|
||||||
}
|
}
|
||||||
@media (min-width: 480px) {
|
@media (min-width: 480px) {
|
||||||
.card-grid {
|
.card-grid {
|
||||||
|
|
@ -747,7 +784,12 @@
|
||||||
</a>
|
</a>
|
||||||
<% } %>
|
<% } %>
|
||||||
</div>
|
</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">
|
<div class="advanced-search__row">
|
||||||
<label class="search-form__label" for="adv-keyword">게임 이름·소개 검색</label>
|
<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" />
|
<input class="advanced-search__input" type="search" id="adv-keyword" name="keyword" value="<%= escapedSearchKeyword %>" placeholder="게임 이름·소개 검색" autocomplete="off" />
|
||||||
|
|
@ -796,7 +838,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% } %>
|
<% } %>
|
||||||
</form>
|
</form>
|
||||||
|
</details>
|
||||||
<div class="search-history" id="search-history" hidden>
|
<div class="search-history" id="search-history" hidden>
|
||||||
<div class="search-history__head">
|
<div class="search-history__head">
|
||||||
<span class="search-history__label">최근 검색</span>
|
<span class="search-history__label">최근 검색</span>
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,9 @@
|
||||||
border-color: var(--accent);
|
border-color: var(--accent);
|
||||||
box-shadow: 0 0 0 3px rgba(232, 165, 75, 0.25);
|
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 {
|
.auth-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
@ -135,8 +138,8 @@
|
||||||
color: var(--text-muted);
|
color: var(--text-muted);
|
||||||
}
|
}
|
||||||
.auth-check input {
|
.auth-check input {
|
||||||
width: 1rem;
|
width: 1.15rem;
|
||||||
height: 1rem;
|
height: 1.15rem;
|
||||||
accent-color: var(--accent);
|
accent-color: var(--accent);
|
||||||
}
|
}
|
||||||
.auth-button {
|
.auth-button {
|
||||||
|
|
|
||||||
|
|
@ -120,6 +120,9 @@
|
||||||
border-color: var(--accent);
|
border-color: var(--accent);
|
||||||
box-shadow: 0 0 0 3px rgba(232, 165, 75, 0.25);
|
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 {
|
.auth-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
|
|
@ -135,8 +138,8 @@
|
||||||
}
|
}
|
||||||
.auth-check input {
|
.auth-check input {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
width: 1rem;
|
width: 1.15rem;
|
||||||
height: 1rem;
|
height: 1.15rem;
|
||||||
margin-top: 0.15rem;
|
margin-top: 0.15rem;
|
||||||
accent-color: var(--accent);
|
accent-color: var(--accent);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue