fix(frontend): neutralize the dark shell rail's blue cast - #5834
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedNo new commits to review since the last review. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe pull request updates two dark-theme shell color tokens in the CSS variables and TypeScript palette definitions. Light-theme values remain unchanged. ChangesDark shell color alignment
Estimated code review effort: 1 (Trivial) | ~2 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
|
@coderabbitai review |
The dark rail (#121316) and frame line (#2b2d32) carried a blue channel bias that read bluish next to the neutral #141414 content background. Keep the rail-darker-than-content step but make it a darkness step, not a hue step: rail #101010, line #2c2c2c, both hue-neutral. Light mode untouched; theme-variables.css regenerated.
9d4a29b to
ba76c3f
Compare
Railway Preview Environment
Updated at 2026-08-09T20:47:58.634Z |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai review |
|
|
@coderabbitai configuration |
|
Configuration used: Organization UI CodeRabbit configuration# Source: Organization UI (base)
language: en-US
# Source: Organization UI (base)
tone_instructions: ''
# Source: Organization UI (base)
early_access: false
# Source: Organization UI (base)
enable_free_tier: true
# Source: Organization UI (base)
inheritance: false
reviews:
# Source: Organization UI (base)
profile: chill
# Source: Organization UI (base)
request_changes_workflow: false
# Source: Organization UI (base)
high_level_summary: true
# Source: Organization UI (base)
high_level_summary_instructions: ''
# Source: Organization UI (base)
high_level_summary_placeholder: '`@coderabbitai` summary'
# Source: Organization UI (base)
high_level_summary_in_walkthrough: true
# Source: Organization UI (base)
auto_title_placeholder: '`@coderabbitai`'
# Source: Organization UI (base)
auto_title_instructions: ''
# Source: Organization UI (base)
review_status: true
# Source: Organization UI (base)
review_details: false
# Source: defaults
review_progress: true
# Source: Organization UI (base)
commit_status: true
# Source: Organization UI (base)
fail_commit_status: false
# Source: Organization UI (base)
collapse_walkthrough: true
# Source: Organization UI (base)
changed_files_summary: true
# Source: Organization UI (base)
sequence_diagrams: true
# Source: Organization UI (base)
estimate_code_review_effort: true
# Source: Organization UI (base)
assess_linked_issues: true
# Source: Organization UI (base)
related_issues: true
# Source: Organization UI (base)
related_prs: true
# Source: Organization UI (base)
suggested_labels: false
# Source: defaults
labeling_instructions: []
# Source: defaults
mutually_exclusive_groups: {}
# Source: Organization UI (base)
auto_apply_labels: false
# Source: Organization UI (base)
suggested_reviewers: false
# Source: Organization UI (base)
auto_assign_reviewers: false
# Source: defaults
suggested_reviewers_instructions: []
# Source: Organization UI (base)
in_progress_fortune: false
# Source: Organization UI (base)
poem: false
# Source: Organization UI (base)
enable_prompt_for_ai_agents: false
# Source: defaults
path_filters: []
# Source: defaults
path_instructions: []
# Source: Organization UI (base)
abort_on_close: true
# Source: Organization UI (base)
disable_cache: false
slop_detection:
# Source: Organization UI (base)
enabled: true
# Source: Organization UI (base)
label: slop
auto_review:
# Source: Organization UI (base)
enabled: true
# Source: Organization UI (base)
description_keyword: ''
# Source: Organization UI (base)
auto_incremental_review: true
# Source: Organization UI (base)
auto_pause_after_reviewed_commits: 5
# Source: defaults
ignore_title_keywords: []
# Source: defaults
labels: []
# Source: Organization UI (base)
drafts: false
# Source: defaults
base_branches: []
# Source: defaults
ignore_usernames: []
finishing_touches:
docstrings:
# Source: Organization UI (base)
enabled: true
unit_tests:
# Source: Organization UI (base)
enabled: true
simplify:
# Source: Organization UI (base)
enabled: false
autofix:
# Source: defaults
enabled: true
fix_ci:
# Source: defaults
enabled: true
resolve_merge_conflict:
# Source: defaults
enabled: true
# Source: defaults
custom: []
pre_merge_checks:
# Source: Organization UI (base)
override_requested_reviewers_only: false
docstrings:
# Source: Organization UI (base)
mode: warning
# Source: Organization UI (base)
threshold: 60
title:
# Source: Organization UI (base)
mode: warning
# Source: Organization UI (base)
requirements: ''
description:
# Source: Organization UI (base)
mode: warning
issue_assessment:
# Source: Organization UI (base)
mode: warning
# Source: defaults
custom_checks: []
# Source: defaults
post_merge_actions: []
tools:
ast-grep:
# Source: defaults
rule_dirs: []
# Source: defaults
util_dirs: []
# Source: Organization UI (base)
essential_rules: true
# Source: defaults
packages: []
shellcheck:
# Source: Organization UI (base)
enabled: true
ruff:
# Source: Organization UI (base)
enabled: true
markdownlint:
# Source: Organization UI (base)
enabled: true
github-checks:
# Source: Organization UI (base)
enabled: true
# Source: Organization UI (base)
timeout_ms: 90000
languagetool:
# Source: Organization UI (base)
enabled: true
# Source: defaults
enabled_rules: []
# Source: defaults
disabled_rules: []
# Source: defaults
enabled_categories: []
# Source: defaults
disabled_categories: []
# Source: Organization UI (base)
enabled_only: false
# Source: Organization UI (base)
level: default
biome:
# Source: Organization UI (base)
enabled: true
hadolint:
# Source: Organization UI (base)
enabled: true
swiftlint:
# Source: Organization UI (base)
enabled: true
phpstan:
# Source: Organization UI (base)
enabled: true
# Source: Organization UI (base)
level: default
phpmd:
# Source: Organization UI (base)
enabled: true
phpcs:
# Source: Organization UI (base)
enabled: true
golangci-lint:
# Source: Organization UI (base)
enabled: true
yamllint:
# Source: Organization UI (base)
enabled: true
gitleaks:
# Source: Organization UI (base)
enabled: true
trufflehog:
# Source: Organization UI (base)
enabled: true
checkov:
# Source: Organization UI (base)
enabled: true
tflint:
# Source: Organization UI (base)
enabled: true
detekt:
# Source: Organization UI (base)
enabled: true
eslint:
# Source: Organization UI (base)
enabled: true
e18e:
# Source: defaults
enabled: true
flake8:
# Source: Organization UI (base)
enabled: true
fbinfer:
# Source: defaults
enabled: true
# Source: defaults
enable_java: false
fortitudeLint:
# Source: Organization UI (base)
enabled: true
rubocop:
# Source: Organization UI (base)
enabled: true
buf:
# Source: Organization UI (base)
enabled: true
regal:
# Source: Organization UI (base)
enabled: true
actionlint:
# Source: Organization UI (base)
enabled: true
zizmor:
# Source: defaults
enabled: true
pmd:
# Source: Organization UI (base)
enabled: true
clang:
# Source: Organization UI (base)
enabled: true
cppcheck:
# Source: Organization UI (base)
enabled: true
opengrep:
# Source: Organization UI (base)
enabled: true
semgrep:
# Source: Organization UI (base)
enabled: true
circleci:
# Source: Organization UI (base)
enabled: true
clippy:
# Source: Organization UI (base)
enabled: true
sqlfluff:
# Source: Organization UI (base)
enabled: true
squawk:
# Source: defaults
enabled: true
trivy:
# Source: Organization UI (base)
enabled: true
prismaLint:
# Source: Organization UI (base)
enabled: true
pylint:
# Source: Organization UI (base)
enabled: true
oxc:
# Source: Organization UI (base)
enabled: true
shopifyThemeCheck:
# Source: Organization UI (base)
enabled: true
luacheck:
# Source: Organization UI (base)
enabled: true
brakeman:
# Source: Organization UI (base)
enabled: true
dotenvLint:
# Source: Organization UI (base)
enabled: true
htmlhint:
# Source: Organization UI (base)
enabled: true
stylelint:
# Source: Organization UI (base)
enabled: true
checkmake:
# Source: Organization UI (base)
enabled: true
osvScanner:
# Source: Organization UI (base)
enabled: true
oasdiff:
# Source: defaults
enabled: true
reactDoctor:
# Source: defaults
enabled: true
presidio:
# Source: defaults
enabled: true
blinter:
# Source: Organization UI (base)
enabled: true
smartyLint:
# Source: Organization UI (base)
enabled: true
emberTemplateLint:
# Source: Organization UI (base)
enabled: true
skillspector:
# Source: defaults
enabled: true
psscriptanalyzer:
# Source: Organization UI (base)
enabled: true
chat:
# Source: Organization UI (base)
art: true
# Source: Organization UI (base)
allow_non_org_members: true
# Source: Organization UI (base)
auto_reply: true
integrations:
jira:
# Source: Organization UI (base)
usage: auto
linear:
# Source: Organization UI (base)
usage: auto
knowledge_base:
# Source: Organization UI (base)
opt_out: false
web_search:
# Source: Organization UI (base)
enabled: true
code_guidelines:
# Source: Organization UI (base)
enabled: true
# Source: defaults
filePatterns: []
learnings:
# Source: Organization UI (base)
scope: auto
# Source: defaults
approval_delay: 0
issues:
# Source: Organization UI (base)
scope: auto
jira:
# Source: Organization UI (base)
usage: auto
# Source: defaults
project_keys: []
# Source: defaults
excluded_project_keys: []
linear:
# Source: Organization UI (base)
usage: auto
# Source: defaults
team_keys: []
pull_requests:
# Source: Organization UI (base)
scope: auto
mcp:
# Source: Organization UI (base)
usage: auto
# Source: defaults
disabled_servers: []
# Source: defaults
automatic_repository_linking: false
# Source: defaults
linked_repositories: []
code_generation:
docstrings:
# Source: Organization UI (base)
language: en-US
# Source: defaults
path_instructions: []
unit_tests:
# Source: defaults
path_instructions: []
issue_enrichment:
auto_enrich:
# Source: Organization UI (base)
enabled: false
planning:
# Source: Organization UI (base)
enabled: true
auto_planning:
# Source: Organization UI (base)
enabled: true
# Source: defaults
labels: []
labeling:
# Source: defaults
labeling_instructions: []
# Source: Organization UI (base)
auto_apply_labels: false
|
What
In dark mode the sidebar rail (
#121316) and the frame line (#2b2d32) carry a blue channel bias, which reads bluish next to the perfectly neutral#141414content background. Mahmoud spotted it on a Mac panel.The numbers made it worse than a tint: the rail was barely darker than the content (relative luminance ~19 vs ~20), so most of the visible separation came from the hue difference, not from darkness.
The fix
Keep the rail-darker-than-content design, but make darkness do the separating instead of hue:
shell.railBgdark:#121316→#101010(neutral, a real step darker than#141414)shell.linedark:#2b2d32→#2c2c2c(neutral, same lightness as before)Light mode untouched. Source of truth edited in
palette.ts;theme-variables.cssregenerated withgenerate:tailwind-tokens(the antd overrides file came out unchanged).