Skip to content

Conversation

@Rnbsov
Copy link
Contributor

@Rnbsov Rnbsov commented Jan 10, 2026

Hello! Thanks for such awesome cli, I just wanted to add my theme!

Add the Fluorite theme with elegant purple and pink tones. Soft and sophisticated color scheme inspired by the mineral fluorite.

Created by Rnbsov (https://github.com/Rnbsov/fluorite-theme)"

Summary by CodeRabbit

  • New Features

    • Added the Fluorite theme — an elegant dark theme with purple and pink tones, now selectable in the app’s theme picker.
  • Documentation

    • Updated theme documentation to include the new Fluorite theme and its description.

✏️ Tip: You can customize this high-level summary in your review settings.

Add the Fluorite theme with elegant purple and pink tones. 
Soft and sophisticated color scheme inspired by the mineral fluorite. 

Created by Rnbsov (https://github.com/Rnbsov/fluorite-theme)"
@Rnbsov Rnbsov requested a review from unhappychoice as a code owner January 10, 2026 00:46
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 10, 2026

📝 Walkthrough

Walkthrough

Added a new built-in dark theme "fluorite": docs updated, a new theme module implemented and re-exported, and the theme loader updated to recognize and list "fluorite".

Changes

Cohort / File(s) Summary
Documentation
docs/themes.md
Added fluorite entry under Dark Themes with purple/pink fluorite description.
Theme Implementation
src/theme/themes/fluorite.rs
New pub fn fluorite() -> Theme returning a Theme populated with color assignments for background, editor, file tree, terminal, status, separators, and syntax highlighting.
Theme Module Exports
src/theme/themes/mod.rs
Added mod fluorite; and pub use fluorite::fluorite; to expose the new theme.
Theme Loader / Registry
src/theme/mod.rs
Added "fluorite" match arm to Theme::load(), included "fluorite" in Theme::available_themes(), and updated unknown-theme error context to list it.

Sequence Diagram(s)

(omitted — changes are localized theme addition without multi-component sequential flow)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • unhappychoice

Poem

🐇💜 I hopped through lines and painted night,
Purple and pink on every byte,
Fluorite gleams in editor glow,
Tabs and branches gentled slow —
Hop in, the theme makes code take flight!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat(themes): add fluorite theme' accurately and concisely summarizes the main change—adding a new fluorite theme to the themes module.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

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

✨ Finishing touches
  • 📝 Generate docstrings

🧹 Recent nitpick comments
src/theme/mod.rs (1)

91-93: Avoid hard-coded theme lists in error context.

The error message duplicates the available themes list, which is easy to drift. Consider building it from available_themes() (e.g., available_themes().join(", ")) to keep it single-sourced.


📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between aa4545e and e5ab941.

📒 Files selected for processing (2)
  • src/theme/mod.rs
  • src/theme/themes/fluorite.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/theme/themes/fluorite.rs
🧰 Additional context used
🧬 Code graph analysis (1)
src/theme/mod.rs (1)
src/theme/themes/fluorite.rs (1)
  • fluorite (7-57)
🔇 Additional comments (2)
src/theme/mod.rs (2)

74-82: Nice addition: theme loader now recognizes “fluorite”.

The new match arm is consistent with the existing pattern.


104-123: Available themes list updated correctly.

The new theme is exposed in available_themes(), keeping it discoverable.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.


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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/theme/mod.rs (1)

92-92: Update error message to include "fluorite".

The error message listing available themes doesn't include the newly added "fluorite" theme.

📝 Proposed fix
-                .context("Available themes: ayu-dark, catppuccin, dracula, everforest, github-dark, gruvbox, material, monokai, night-owl, nord, one-dark, rose-pine, solarized-dark, solarized-light, telemetry, tokyo-night"),
+                .context("Available themes: ayu-dark, catppuccin, dracula, everforest, fluorite, github-dark, gruvbox, material, monokai, night-owl, nord, one-dark, rose-pine, solarized-dark, solarized-light, telemetry, tokyo-night"),
🤖 Fix all issues with AI agents
In @src/theme/mod.rs:
- Line 109: The compilation fails because a trailing comma is missing after the
string literal "fluorite" in src/theme/mod.rs; locate the list/array or match
arm that contains the "fluorite" entry (search for the literal "fluorite" in
mod.rs) and add a comma immediately after "fluorite" to correctly separate items
and fix the syntax error.
🧹 Nitpick comments (3)
src/theme/mod.rs (1)

77-77: Consider maintaining alphabetical order.

The theme name "fluorite" is placed between "dracula" and "everforest", but alphabetically "everforest" should come before "fluorite" (e < f).

♻️ Suggested reordering
             "dracula" => Ok(themes::dracula()),
-            "fluorite" => Ok(themes::fluorite()),
             "everforest" => Ok(themes::everforest()),
+            "fluorite" => Ok(themes::fluorite()),
             "github-dark" => Ok(themes::github_dark()),
src/theme/themes/fluorite.rs (2)

1-6: Fix spacing in import statement.

Line 2 has an extra space in the import: style:: Color should be style::Color.

♻️ Proposed fix
-use ratatui::style:: Color;
+use ratatui::style::Color;

12-54: Consider consistent spacing for better readability.

Some fields have inconsistent spacing before Color::Rgb (one space vs. two spaces). For example, lines 12, 26, 30, 43, 49-51, and 54 have two spaces while others have one.

♻️ Suggested formatting fix
-        editor_line_number:  Color::Rgb(42, 28, 54),
+        editor_line_number: Color::Rgb(42, 28, 54),
         editor_line_number_cursor: Color::Rgb(65, 43, 84),
         editor_separator: Color::Rgb(42, 28, 54),

Apply similar fixes to lines 26, 30, 43, 49, 50, 51, and 54.

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c6e9eb1 and 48f0e11.

📒 Files selected for processing (4)
  • docs/themes.md
  • src/theme/mod.rs
  • src/theme/themes/fluorite.rs
  • src/theme/themes/mod.rs
🧰 Additional context used
🧬 Code graph analysis (2)
src/theme/themes/mod.rs (1)
src/theme/themes/fluorite.rs (1)
  • fluorite (7-57)
src/theme/mod.rs (1)
src/theme/themes/fluorite.rs (1)
  • fluorite (7-57)
🔇 Additional comments (3)
docs/themes.md (1)

25-25: LGTM! Documentation entry is clear and consistent.

The fluorite theme documentation follows the same format as other themes and is alphabetically positioned correctly.

src/theme/themes/mod.rs (1)

5-5: LGTM! Module registration follows the established pattern.

The module declaration and re-export are consistent with other theme modules in the codebase.

Also applies to: 23-23

src/theme/themes/fluorite.rs (1)

7-57: LGTM! Theme implementation is complete and correct.

All required Theme fields are present with valid RGB color values. The color palette creates a cohesive fluorite-inspired theme with purple and pink tones.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/theme/mod.rs (1)

92-92: Update error message to include "fluorite".

The error context lists all available themes but doesn't include "fluorite". Users encountering this error for an invalid theme won't know that "fluorite" is now available.

📝 Proposed fix
-                .context("Available themes: ayu-dark, catppuccin, dracula, everforest, github-dark, gruvbox, material, monokai, night-owl, nord, one-dark, rose-pine, solarized-dark, solarized-light, telemetry, tokyo-night"),
+                .context("Available themes: ayu-dark, catppuccin, dracula, fluorite, everforest, github-dark, gruvbox, material, monokai, night-owl, nord, one-dark, rose-pine, solarized-dark, solarized-light, telemetry, tokyo-night"),
📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 48f0e11 and d2bf885.

📒 Files selected for processing (1)
  • src/theme/mod.rs
🧰 Additional context used
🧬 Code graph analysis (1)
src/theme/mod.rs (1)
src/theme/themes/fluorite.rs (1)
  • fluorite (7-57)
🔇 Additional comments (1)
src/theme/mod.rs (1)

77-77: LGTM! Clean theme integration.

The fluorite theme is correctly integrated into both the load method and available themes list, maintaining alphabetical ordering throughout.

Also applies to: 109-109

Copy link
Owner

@unhappychoice unhappychoice left a comment

Choose a reason for hiding this comment

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

Thanks for adding the Fluorite theme! 🎉

The purple and pink color scheme looks elegant and well-designed. All necessary files are properly updated and the implementation follows the existing theme structure perfectly.

@unhappychoice unhappychoice merged commit 866fb5a into unhappychoice:main Jan 16, 2026
8 checks passed
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