Conversation
Adds the official Dracula palette (https://draculatheme.com) as a built-in dark theme. Users can select it from the theme dropdown in the status bar or from Preferences -> Display -> Theme. The theme follows the same structure as the existing nord and catppuccin themes. HTTP method colors follow the Dracula spec for syntax highlighting (GET -> Green, POST -> Pink, DELETE -> Red, ...).
WalkthroughThis PR introduces a new Dracula dark theme module for the Bruno app, complete with a comprehensive color palette, UI component styling across multiple domains (inputs, sidebars, tabs, tables, modals, buttons, console), and CodeMirror token mappings. The theme is then registered in the application's theme registry. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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 |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
packages/bruno-app/src/themes/dark/dracula.js (1)
319-324: Nit: empty string forbutton.close.hoverBorder.
hoverBorder: ''will serialize to an empty CSS value if used in a template literal likeborder: ${theme.button.close.hoverBorder};. If peer themes use'transparent'here, align for consistency; otherwise ignore.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@packages/bruno-app/src/themes/dark/dracula.js` around lines 319 - 324, The hoverBorder field for the close button is set to an empty string which can serialize to an invalid/empty CSS value; update button.close.hoverBorder in the dracula theme to use a proper value (e.g., 'transparent') to match other themes and avoid empty CSS when used like border: ${theme.button.close.hoverBorder};.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@packages/bruno-app/src/themes/dark/dracula.js`:
- Around line 319-324: The hoverBorder field for the close button is set to an
empty string which can serialize to an invalid/empty CSS value; update
button.close.hoverBorder in the dracula theme to use a proper value (e.g.,
'transparent') to match other themes and avoid empty CSS when used like border:
${theme.button.close.hoverBorder};.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: c13bdd2b-49aa-438d-8245-2dcf5732cf9b
📒 Files selected for processing (2)
packages/bruno-app/src/themes/dark/dracula.jspackages/bruno-app/src/themes/index.js
Description
This PR adds the official Dracula palette as a built-in dark theme for Bruno. Users can activate it from the theme dropdown in the status bar or from Preferences → Display → Theme.
The new theme follows the same structure as the existing
nordandcatppuccin-*themes:packages/bruno-app/src/themes/dark/dracula.js— theme tokens. Validated againstossSchema(all 39 required top-level keys present, identical shape tonord.js).packages/bruno-app/src/themes/index.js— import +themeRegistryentry withmode: 'dark'and display name Dracula.Palette (official Dracula spec, https://spec.draculatheme.com):
#282a36#44475a#f8f8f2#6272a4#8be9fd#50fa7b#ffb86c#ff79c6#bd93f9#ff5555#f1fa8cHTTP method colors follow the Dracula spec for syntax highlighting: GET → Green, POST → Pink, PUT → Yellow, DELETE → Red, PATCH → Orange, OPTIONS → Cyan, HEAD → Purple.
Screenshots
Theme selector in Preferences → Display → Theme (Dracula selected, purple focus border):
A request tab against
https://draculatheme.comrendered with the new theme — sidebar, tabs, request URL bar, response pane and syntax highlighting all pick up the Dracula palette:Contribution Checklist:
Summary by CodeRabbit