-
Notifications
You must be signed in to change notification settings - Fork 39
新UI #239
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
base: main
Are you sure you want to change the base?
新UI #239
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Pull request overview
This pull request implements a comprehensive UI redesign with a "newsprint" or newspaper-inspired design system. The changes transform the visual aesthetic from a modern, rounded interface to a stark, brutalist design with sharp edges, monospace typography, and a black-and-white color scheme with red accents.
Key Changes:
- Complete visual redesign implementing newsprint/newspaper aesthetic with zero border-radius, stark borders, and serif typography
- New theme system with custom CSS properties for fonts (Playfair Display, Lora, Inter, JetBrains Mono) and design tokens
- Component restructuring including Hero layout transformation, ActivityTicker conversion from carousel to horizontal ticker, and simplified styling across all components
Reviewed changes
Copilot reviewed 12 out of 13 changed files in this pull request and generated 18 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.json | Changed JSX transform from "preserve" to "react-jsx" and added Next.js dev types path |
| app/layout.tsx | Added inline font loading and theme script, swapped RootProvider/ThemeProvider nesting order, removed sky background element |
| app/globals.css | Complete CSS rewrite implementing newsprint design tokens, utility classes, and starry background animation with forced zero border-radius |
| app/components/ZoteroFeed.tsx | Redesigned reading list with newspaper-style layout, removed expand/collapse functionality while keeping unused state |
| app/components/LicenseNotice.tsx | Updated copyright to 2026, redesigned with monospace typography and smaller icon sizes with abbreviated alt text |
| app/components/Hero.tsx | Major restructure with newspaper-style layout, large serif typography, new grid-based categories section, and integrated ActivityTicker |
| app/components/Header.tsx | Newspaper masthead design with static edition info, redesigned navigation and icon buttons |
| app/components/Footer.tsx | Expanded footer with newspaper-style columns, removed accessible labels from social icons |
| app/components/Features.tsx | Redesigned feature cards with newspaper aesthetic, icon cloning with className merge logic |
| app/components/Contribute.tsx | Simplified button styling with conflicting onClick/DialogTrigger behavior |
| app/components/Community.tsx | Redesigned community section with inverted CTA box and newspaper-style grid cards |
| app/components/BrandMark.tsx | Updated brand typography to serif, bold, uppercase, italic style |
| app/components/ActivityTicker.tsx | Converted from image carousel to horizontal scrolling text ticker with event information |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <ThemeProvider defaultTheme="dark" storageKey="ih-theme"> | ||
| <RootProvider | ||
| search={{ | ||
| // 使用静态索引,兼容 next export 与本地开发 | ||
| options: { type: "static", api: "/search.json" }, | ||
| }} | ||
| > | ||
| <main id="main-content" className="relative z-10"> | ||
| {children} | ||
| </main> | ||
| </ThemeProvider> | ||
| </RootProvider> | ||
| </RootProvider> | ||
| </ThemeProvider> |
Copilot
AI
Jan 6, 2026
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.
The RootProvider and ThemeProvider have been swapped in their nesting order. This is a significant architectural change that could affect how theming works throughout the application. Ensure that both providers still function correctly with this new order and that theme values are accessible within the search functionality.
app/components/Header.tsx
Outdated
| <div className="hidden md:block font-mono text-[10px] uppercase tracking-widest text-neutral-500"> | ||
| Vol. 1 | No. 128 | Beijing Edition |
Copilot
AI
Jan 6, 2026
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.
The hardcoded text "Vol. 1 | No. 128 | Beijing Edition" appears to be static content. If this is meant to be dynamic or configurable, it should be extracted to a configuration file or constant. If the issue/volume numbers are supposed to update, this will require manual code changes each time.
| line-height: 1; | ||
| font-family: var(--font-serif); | ||
| margin-right: 0.5rem; | ||
| color: #cc0000; |
Copilot
AI
Jan 6, 2026
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.
The drop-cap first letter styling uses a hardcoded red color (#cc0000) instead of the CSS custom property (--color-accent). For consistency with the design system, use var(--color-accent) which is already defined in the theme tokens.
| color: #cc0000; | |
| color: var(--color-accent); |
| {React.cloneElement(feature.icon, { | ||
| className: cn("h-8 w-8", feature.icon.props.className), | ||
| })} |
Copilot
AI
Jan 6, 2026
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.
The icon is being cloned with React.cloneElement and its className is being merged. However, the current code always replaces the className rather than properly merging it. The cn() function is called with the hardcoded class and the existing className, but the feature.icon.props.className may already contain important styling like color classes (e.g., "text-sky-500"). This could break the icon colors. Ensure the color classes from the original icon definition are preserved.
| <a | ||
| href="https://github.com/involutionhell" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| aria-label="访问 Involution Hell 的 GitHub" | ||
| title="访问 GitHub" | ||
| className="inline-flex h-11 w-11 items-center justify-center rounded-lg bg-card border border-border hover:bg-accent hover:scale-110 transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" | ||
| className="w-12 h-12 flex items-center justify-center border border-[var(--foreground)] hover:bg-[var(--foreground)] hover:text-[var(--background)] transition-all text-[var(--foreground)]" | ||
| > | ||
| <Github className="h-5 w-5" aria-hidden="true" /> | ||
| <span className="sr-only">访问 GitHub</span> | ||
| <Github className="h-5 w-5" /> | ||
| </a> | ||
| <a | ||
| href="https://discord.com/invite/6CGP73ZWbD" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| aria-label="加入 Discord 社区" | ||
| title="加入 Discord" | ||
| className="inline-flex h-11 w-11 items-center justify-center rounded-lg bg-card border border-border hover:bg-accent hover:scale-110 transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring" | ||
| className="w-12 h-12 flex items-center justify-center border border-[var(--foreground)] hover:bg-[var(--foreground)] hover:text-[var(--background)] transition-all text-[var(--foreground)]" | ||
| > | ||
| <MessageCircle className="h-5 w-5" aria-hidden="true" /> | ||
| <span className="sr-only">加入 Discord 社区</span> | ||
| <MessageCircle className="h-5 w-5" /> | ||
| </a> | ||
| </div> |
Copilot
AI
Jan 6, 2026
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.
The accessible labels and titles have been removed from the social media link buttons. The previous implementation included aria-label, title, and sr-only span elements for screen reader users. Now these buttons only have icons without any text alternative, making them inaccessible to screen reader users. Restore the sr-only spans or aria-label attributes to maintain accessibility.
| } | ||
| @layer base { | ||
| * { | ||
| border-radius: 0px !important; |
Copilot
AI
Jan 6, 2026
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.
All border-radius values are being forced to 0px with !important. This heavy-handed approach using !important on all elements could cause issues with third-party components or libraries that expect rounded corners. Consider using a more targeted approach or documenting this as a known limitation of the design system.
| border-radius: 0px !important; |
| .site-bg { | ||
| position: fixed; | ||
| inset: 0; | ||
| z-index: -1; |
Copilot
AI
Jan 6, 2026
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.
The z-index has been changed from 0 to -1 for the background element. This change could cause the starry background to be positioned behind other elements with default z-index values. Verify that the background still appears correctly and doesn't get hidden behind the body or other containers.
| z-index: -1; | |
| z-index: 0; |
Crokily
left a comment
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.
LGTM
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
No description provided.