Skip to content

5-11 - #4770

Closed
EthaninUK wants to merge 7 commits into
QuantumNous:mainfrom
EthaninUK:main
Closed

5-11#4770
EthaninUK wants to merge 7 commits into
QuantumNous:mainfrom
EthaninUK:main

Conversation

@EthaninUK

@EthaninUK EthaninUK commented May 11, 2026

Copy link
Copy Markdown

⚠️ 提交说明 / PR Notice

Important

  • 请提供人工撰写的简洁摘要,避免直接粘贴未经整理的 AI 输出。

📝 变更描述 / Description

(简述:做了什么?为什么这样改能生效?请基于你对代码逻辑的理解来写,避免粘贴未经整理的内容)

🚀 变更类型 / Type of change

  • 🐛 Bug 修复 (Bug fix) - 请关联对应 Issue,避免将设计取舍、理解偏差或预期不一致直接归类为 bug
  • ✨ 新功能 (New feature) - 重大特性建议先通过 Issue 沟通
  • ⚡ 性能优化 / 重构 (Refactor)
  • 📝 文档更新 (Documentation)

🔗 关联任务 / Related Issue

  • Closes # (如有)

✅ 提交前检查项 / Checklist

  • 人工确认: 我已亲自整理并撰写此描述,没有直接粘贴未经处理的 AI 输出。
  • 非重复提交: 我已搜索现有的 IssuesPRs,确认不是重复提交。
  • Bug fix 说明: 若此 PR 标记为 Bug fix,我已提交或关联对应 Issue,且不会将设计取舍、预期不一致或理解偏差直接归类为 bug。
  • 变更理解: 我已理解这些更改的工作原理及可能影响。
  • 范围聚焦: 本 PR 未包含任何与当前任务无关的代码改动。
  • 本地验证: 已在本地运行并通过测试或手动验证,维护者可以据此复核结果。
  • 安全合规: 代码中无敏感凭据,且符合项目代码规范。

📸 运行证明 / Proof of Work

(请在此粘贴截图、关键日志或测试报告,以证明变更生效)

Summary by CodeRabbit

  • Style
    • Refreshed overall visual design with an updated color palette
    • Updated button styling and rounded corners across authentication pages
    • Adjusted dashboard header and card styling
    • Removed decorative background elements for a cleaner interface
    • Made header background transparent

Review Change Stack

Replace generic one-api visual identity with a clean, professional look
inspired by OpenRouter/Vercel. Changes include:

- System font stack replacing Lato
- Unified 8px border-radius (was 10px)
- Remove blur ball and pastel ball decorations
- Neutralize sidebar hover/selected colors (gray instead of blue)
- Remove shine-text animation (static accent color)
- Homepage: compact hero, smaller heading, muted subtitle, icon opacity
- Dashboard: white cards with borders (no colored backgrounds)
- Dashboard header: neutral gray buttons (no green/blue)
- Header: add bottom border, adjust dark background
- Auth pages: clean background, rounded-lg buttons, bordered cards
- All changes are CSS/className only, no functional changes
- Add full-page warm pastel gradient background (pink/lavender/blue/peach)
- Override Semi Design primary color to orange-brown (#c06030)
- Make sidebar transparent with orange active state
- Make header transparent (no border, no backdrop)
- Add semi-transparent glassmorphism to all cards
- Make all layout components transparent to show gradient
- Update border-radius to 12px globally
- Auth pages: transparent background, shadow cards, rounded buttons
- Homepage: restore hero height, rounded buttons
- Dark mode: deep blue gradient background
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

Walkthrough

This PR implements a comprehensive visual theme rebrand toward the right.codes palette, replacing gray backgrounds with transparency, updating button corner rounding from fully rounded to moderately rounded, and introducing orange-brown accent colors across authentication, dashboard, and home page components. No functional changes or API modifications are included.

Changes

Right.codes Theme Rebrand

Layer / File(s) Summary
Color Tokens & Constants
web/src/constants/dashboard.constants.js, web/src/index.css
ICON_BUTTON_CLASS constant updated to use Semi color tokens. New :root CSS variables introduce orange-brown primary palette (--semi-color-primary* variants) for accent styling.
Global Theme Styles
web/src/index.css
Body background changed to multi-stop gradient with dark-mode variant. Layout, sider, and sidebar containers set to transparent backgrounds. Sidebar nav items styled with orange-brown hover (rgba(192, 96, 48, 0.5)) and selected (#c06030) colors.
Decorative Elements & Cards
web/src/index.css
Blur-ball and pastel-balls effects disabled (display: none). Shine-text animation replaced with solid primary color. Card padding increased from 10px to 16px. Border-radius components updated from 10px to 12px.
Auth Form Styling
web/src/components/auth/LoginForm.jsx, web/src/components/auth/RegisterForm.jsx
OAuth provider buttons (WeChat, GitHub, Discord, OIDC, LinuxDO, custom) changed from !rounded-full to !rounded-xl. Form containers updated to transparent backgrounds. Card variants and title styling refreshed. Passkey, email, and action buttons updated for consistent corner rounding.
Dashboard Styling
web/src/components/dashboard/DashboardHeader.jsx, web/src/components/dashboard/StatsCards.jsx
DashboardHeader title and buttons apply Semi color tokens (text-semi-color-text-0, bg-semi-color-fill-0/fill-1). StatsCards uses fixed rounded styling (!rounded-2xl) and Semi text colors (text-semi-color-text-2) for item titles.
Layout Components
web/src/components/layout/headerbar/index.jsx, web/src/components/layout/Footer.jsx
HeaderBar background changed to fully transparent. Footer "New API" link replaced with non-interactive "New" text label with font-medium styling.
Home Page Hero
web/src/pages/Home/index.jsx
Hero banner removes blur-ball elements. Headline and subtitle responsive sizing updated. Action buttons changed to !rounded-xl rounding. Provider icon grid JSX structure reorganized with updated container/spacing.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • QuantumNous/new-api#2582: Modifies web/src/components/auth/LoginForm.jsx button styling and GitHub button i18n, related at the authentication component level.
  • QuantumNous/new-api#1593: Updates HeaderBar background styling from translucent to transparent backgrounds, directly related to the layout transparency changes.

Poem

🐰 A brand new palette, right-codes bright,
Orange and brown in the morning light,
Buttons less round, more refined and true,
Transparency reigns where gray once grew,
Decorative balls now fade away,
A fresher look for the brand new day! ✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The pull request title '5-11' is vague and non-descriptive, failing to convey the actual changeset which involves comprehensive UI styling redesign across multiple components and global CSS updates. Replace with a descriptive title summarizing the main change, e.g., 'Redesign UI styling with new color theme and component updates' or reference the theme/design system update that forms the core of the changeset.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch main

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
web/src/components/dashboard/DashboardHeader.jsx (1)

32-32: ⚡ Quick win

Consider importing the shared constant instead of duplicating.

The ICON_BUTTON_CLASS constant is defined both here and in web/src/constants/dashboard.constants.js. Importing from the constants file would eliminate duplication and ensure consistency.

♻️ Proposed refactor
 import React from 'react';
 import { Button } from '@douyinfe/semi-ui';
 import { RefreshCw, Search } from 'lucide-react';
+import { ICON_BUTTON_CLASS } from '../../constants/dashboard.constants';

 const DashboardHeader = ({
   getGreeting,
   greetingVisible,
   showSearchModal,
   refresh,
   loading,
   t,
 }) => {
-  const ICON_BUTTON_CLASS = 'text-semi-color-text-1 hover:bg-semi-color-fill-1 !rounded-lg';

   return (
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/components/dashboard/DashboardHeader.jsx` at line 32, Replace the
duplicated ICON_BUTTON_CLASS in DashboardHeader.jsx with the shared constant
from dashboard.constants.js: remove the local const ICON_BUTTON_CLASS and add a
named import for ICON_BUTTON_CLASS from the module that exports it, then use
that imported symbol wherever the local constant was used (e.g., className for
icon buttons) to ensure a single source of truth.
web/src/index.css (1)

776-847: ⚡ Quick win

Consider removing unused blur-ball styles.

Since .blur-ball and .with-pastel-balls::before are set to display: none and the corresponding markup has been removed from the JSX files, the remaining style definitions (lines 781-806, 809-847) are now dead code.

🧹 Cleanup suggestion

You can safely remove the entire blur-ball section (lines 776-847) to reduce CSS bundle size and improve maintainability.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/index.css` around lines 776 - 847, Remove the unused blur-ball CSS
block: delete the rules for .blur-ball, .blur-ball-indigo, .blur-ball-teal and
the related .with-pastel-balls::before rules (including the html:not(.dark) and
html.dark overrides for these selectors) since the JSX no longer renders
blur-ball elements; keep the remaining .with-pastel-balls variables/parent rules
(e.g., .with-pastel-balls and html.dark .with-pastel-balls) if you still use the
pastel-ball feature, otherwise remove that as well—verify no markup references
.blur-ball or ::before before committing.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/src/components/layout/Footer.jsx`:
- Around line 202-204: Replace the incomplete "New" label in Footer.jsx with the
full project identifier (e.g., "New API" or the actual organization name)
wherever it appears; locate the span elements with class
'!text-semi-color-text-1 font-medium' (used around lines showing "New") and
update their inner text to the complete name so both occurrences (the standalone
label and the "设计与开发由 New" phrase) read correctly and consistently.

In `@web/src/index.css`:
- Around line 36-37: The font-family declaration contains an unnecessary quoted
font name; update the font-family rule (the font-family: -apple-system,
BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, Oxygen, Ubuntu, 'Microsoft
YaHei', sans-serif;) by removing the quotes around Inter so it reads ...Segoe
UI, Inter, Roboto... ensuring only names with spaces or special characters
remain quoted (e.g., 'Segoe UI' and 'Microsoft YaHei').

---

Nitpick comments:
In `@web/src/components/dashboard/DashboardHeader.jsx`:
- Line 32: Replace the duplicated ICON_BUTTON_CLASS in DashboardHeader.jsx with
the shared constant from dashboard.constants.js: remove the local const
ICON_BUTTON_CLASS and add a named import for ICON_BUTTON_CLASS from the module
that exports it, then use that imported symbol wherever the local constant was
used (e.g., className for icon buttons) to ensure a single source of truth.

In `@web/src/index.css`:
- Around line 776-847: Remove the unused blur-ball CSS block: delete the rules
for .blur-ball, .blur-ball-indigo, .blur-ball-teal and the related
.with-pastel-balls::before rules (including the html:not(.dark) and html.dark
overrides for these selectors) since the JSX no longer renders blur-ball
elements; keep the remaining .with-pastel-balls variables/parent rules (e.g.,
.with-pastel-balls and html.dark .with-pastel-balls) if you still use the
pastel-ball feature, otherwise remove that as well—verify no markup references
.blur-ball or ::before before committing.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9467ec82-4399-41a1-8450-f70a8958431a

📥 Commits

Reviewing files that changed from the base of the PR and between ba47439 and d49f60e.

⛔ Files ignored due to path filters (2)
  • web/public/logo-c.png is excluded by !**/*.png
  • web/public/logo.png is excluded by !**/*.png
📒 Files selected for processing (9)
  • web/src/components/auth/LoginForm.jsx
  • web/src/components/auth/RegisterForm.jsx
  • web/src/components/dashboard/DashboardHeader.jsx
  • web/src/components/dashboard/StatsCards.jsx
  • web/src/components/layout/Footer.jsx
  • web/src/components/layout/headerbar/index.jsx
  • web/src/constants/dashboard.constants.js
  • web/src/index.css
  • web/src/pages/Home/index.jsx

Comment on lines +202 to +204
<span className='!text-semi-color-text-1 font-medium'>
New
</span>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for other references to the GitHub repository for attribution/source availability

# Search for GitHub URLs to the project repository
rg -n --type=js --type=jsx --type=ts --type=tsx -C2 'github\.com/QuantumNous/new-api'

# Also check for any other footer or attribution links
rg -n --type=js --type=jsx --type=ts --type=tsx -C2 'GitHub|Source Code|Repository' -g '**/Footer*' -g '**/About*'

Repository: QuantumNous/new-api

Length of output: 119


🏁 Script executed:

# Search for GitHub repository links without specifying jsx type
rg -n 'github\.com/QuantumNous/new-api' --type js

Repository: QuantumNous/new-api

Length of output: 511


🏁 Script executed:

# Also search more broadly for the GitHub link
rg -n 'github.com/QuantumNous'

Repository: QuantumNous/new-api

Length of output: 50376


🏁 Script executed:

# Examine the specific lines in Footer.jsx
sed -n '195,210p' web/src/components/layout/Footer.jsx

Repository: QuantumNous/new-api

Length of output: 477


🏁 Script executed:

# Also check around line 229-231
sed -n '220,240p' web/src/components/layout/Footer.jsx

Repository: QuantumNous/new-api

Length of output: 754


🌐 Web query:

AGPL-3.0 license attribution requirements source code availability

💡 Result:

AGPL-3.0 attribution requirements (what you must keep/show) 1) Keep license/copyright/warranty notices intact, and provide the license text - When conveying copies, you must “keep intact all notices” and ensure the work “carry prominent notices stating that it is released under this License and any conditions added under section 7” (i.e., you can’t strip out the AGPL notices). [1][2] 2) If you modify and convey: mark that you modified + the relevant date - For conveying modified source versions under section 5, you must include prominent notices stating that you modified the work and giving a relevant date. [1][2] 3) If the program has interactive user interfaces: show “Appropriate Legal Notices” - AGPL-3.0 requires “Appropriate Legal Notices” when the program has interactive user interfaces. [3] AGPL-3.0 source-code availability requirements (the “Corresponding Source” obligation) A) If you convey/distribute object code (distributed software) - When conveying object code, you must provide the “Corresponding Source” (including the scripts and source needed to generate/install the object code) under the AGPL’s conveying terms. [4][5] B) If you run a modified AGPL program over a network (SaaS/web app use) - Unlike GPL, AGPL section 13 adds a network-interaction requirement: if you modify the Program and users interact with it remotely over a computer network, you must “prominently offer” those users an opportunity to receive the Corresponding Source “by providing access … from a network server at no charge.” [1][2][5] - The license gives an example approach: a web app interface could display a “Source” link to an archive of the code. [1][2] Bottom line - “Attribution” under AGPL-3.0 is primarily about preserving required prominent legal/copyright/license notices, and adding “modified” notices + date when you convey modified versions. [1][2] - “Source code availability” under AGPL-3.0 is primarily about providing “Corresponding Source”: via the conveying rules when distributing, and via a network-offer mechanism when running modified versions for remote users (SaaS). [4][5]

Citations:


Incomplete text: "New" should be "New API" or similar.

The text "设计与开发由 New" (Designed and developed by New) is grammatically incomplete and unclear. "New" alone is not a recognizable entity name—it should likely be "New API" or the actual project/organization name. This affects both line ranges (202-204 and 229-231).

Update the span text to reflect the complete project identifier.

Also applies to: 229-231

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/components/layout/Footer.jsx` around lines 202 - 204, Replace the
incomplete "New" label in Footer.jsx with the full project identifier (e.g.,
"New API" or the actual organization name) wherever it appears; locate the span
elements with class '!text-semi-color-text-1 font-medium' (used around lines
showing "New") and update their inner text to the complete name so both
occurrences (the standalone label and the "设计与开发由 New" phrase) read correctly
and consistently.

Comment thread web/src/index.css
Comment on lines +36 to +37
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto,
Oxygen, Ubuntu, 'Microsoft YaHei', sans-serif;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Remove unnecessary quotes around font name.

The font family name 'Inter' doesn't require quotes. Per CSS best practices and the stylelint hint, only font names containing spaces or special characters need quotes.

✨ Proposed fix
-  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto,
-    Oxygen, Ubuntu, 'Microsoft YaHei', sans-serif;
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Roboto,
+    Oxygen, Ubuntu, 'Microsoft YaHei', sans-serif;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto,
Oxygen, Ubuntu, 'Microsoft YaHei', sans-serif;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Roboto,
Oxygen, Ubuntu, 'Microsoft YaHei', sans-serif;
🧰 Tools
🪛 Stylelint (17.10.0)

[error] 36-36: Expected no quotes around "Inter" (font-family-name-quotes)

(font-family-name-quotes)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/src/index.css` around lines 36 - 37, The font-family declaration contains
an unnecessary quoted font name; update the font-family rule (the font-family:
-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', Roboto, Oxygen, Ubuntu,
'Microsoft YaHei', sans-serif;) by removing the quotes around Inter so it reads
...Segoe UI, Inter, Roboto... ensuring only names with spaces or special
characters remain quoted (e.g., 'Segoe UI' and 'Microsoft YaHei').

@seefs001 seefs001 closed this May 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants