-
Notifications
You must be signed in to change notification settings - Fork 1
style(theme): optimize theme modal for clean aesthetic #22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…design\n\n- Reduce modal size, paddings, and shadow\n- Simplify overlay and header\n- Trim hover effects and active markers\n- Scale down color/radius/font option UI\n\nCloses minorcell#21\n\nGenerated with [codeagent](https://github.com/qbox/codeagent)\nCo-authored-by: minorcell <120795714+minorcell@users.noreply.github.com>
…imal site aesthetic - Softer overlay; smaller modal max-width; subtle border - Leaner paddings and gaps; remove heavy active indicators - Use soft backgrounds + divider borders on hover - Active states use thin border accents instead of badges/bars Generated with [codeagent](https://github.com/qbox/codeagent) Co-authored-by: minorcell <120795714+minorcell@users.noreply.github.com>
|
PR review: ThemeSettings.vue Highlights
Suggestions
Code-level examples
onMounted(() => {
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
const handler = handleSystemThemeChange;
mediaQuery.addEventListener('change', handler);
onUnmounted(() => mediaQuery.removeEventListener('change', handler));
});
.VPNavBar img,
.VPNavBarTitle img,
.VPHomeHero img,
.logo img,
img.logo {
filter: var(--logo-theme-filter);
transition: filter 0.3s ease;
}Then Testing
Overall this is a solid addition. Addressing the event cleanup, accessibility, and logo filter approach would improve durability and UX. |
| gap: 6px; | ||
| } | ||
| .appearance-option { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CRITICAL: position: relative removed but ::after uses position: absolute
The active state indicator at lines 918-928 uses position: absolute with bottom: 4px; left: 50%, which requires the parent .appearance-option to have position: relative. Without it, the indicator won't position correctly relative to the button.
Fix: Add back position: relative; to .appearance-option
| padding: 8px 0; | ||
| } | ||
| .color-option { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CRITICAL: Same positioning issue - ::after checkmark (lines 975-990) uses position: absolute but parent lacks position: relative.
Fix: Add back position: relative; to .color-option
| transition: transform 0.25s ease; | ||
| } | ||
| .color-option:hover .color-preview { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Empty rule block - this serves no purpose and should be removed.
If this was intentionally clearing a hover transform effect, the empty block should be deleted entirely.
| margin-bottom: 8px; | ||
| } | ||
| .radius-preset { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CRITICAL: position: relative needed for ::after indicator (lines 1123-1133).
Fix: Add back position: relative; to .radius-preset
Code Review SummaryNice work streamlining the modal aesthetics! The removal of Critical Issues4 positioning bugs -
Other Issues
Positive Notes✅ Performance: Excellent improvements with backdrop-filter removal Please fix the positioning issues and the PR will be ready to merge! |
| border-radius: var(--border-radius-small); | ||
| } | ||
| .font-option { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CRITICAL: position: relative needed for ::after dot indicator (lines 1270-1280).
Fix: Add back position: relative; to .font-option
|
@codercellone fix those bug from code review on this pr. |
Todo
Review Feedback
/* Provide positioning context for absolute indicators */
.appearance-option { position: relative; } /* ~894 */
.color-option { position: relative; } /* ~953 */
.radius-preset { position: relative; } /* ~1100 */
.font-option { position: relative; } /* ~1248 */
/* Remove empty hover rule at ~1000 */
/* .color-option:hover .color-preview { } */
/* Normalize transition durations */
.appearance-icon { transition: color 0.2s ease; } /* ~930 */
.color-preview { transition: transform 0.2s ease; }/* ~996 */
.radius-preview { transition: transform 0.2s ease; }/* ~1139 */
👉 Want me to re-run this review? Just type |
Requested by @minorcell
This PR addresses issue #21: 优化主题选择弹窗样式。
Changes
Files
Verification
npm run docs:build; RSS generated and pages renderNotes