Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions colors/dracula.vim
Original file line number Diff line number Diff line change
Expand Up @@ -1051,6 +1051,19 @@ if has('nvim')
hi! link MiniIconsRed DraculaRed
hi! link MiniIconsYellow DraculaYellow
" }}}

" nvim-mini/mini.statusline {{{
call s:h("MiniStatuslineDevInfo", s:fg, s:bg)
call s:h("MiniStatuslineFileInfo", s:fg, s:comment)
call s:h("MiniStatuslineFilename", s:fg, s:selection)
call s:h("MiniStatuslineInactive", s:fg, s:selection)
call s:h("MiniStatuslineModeCommand", s:bg, s:purple)
call s:h("MiniStatuslineModeInsert", s:bg, s:green)
call s:h("MiniStatuslineModeNormal", s:bg, s:purple)
call s:h("MiniStatuslineModeOther", s:bg, s:green)
call s:h("MiniStatuslineModeReplace", s:bg, s:orange)
call s:h("MiniStatuslineModeVisual", s:bg, s:yellow)
Comment on lines +1056 to +1065
Copy link
Member

Choose a reason for hiding this comment

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

  call s:h("MiniStatuslineDevInfo", s:fg, s:bg)

I think this is "just" DraculaNormal, actually.

  call s:h("MiniStatuslineFileInfo", s:fg, s:comment)
  call s:h("MiniStatuslineFilename", s:fg, s:selection)
  call s:h("MiniStatuslineInactive", s:fg, s:selection)

We have s:bglighter, s:bglight for things like this, too. See how StatusLine and StatusLineNC are defined.

  call s:h("MiniStatuslineModeCommand", s:bg, s:purple)
  call s:h("MiniStatuslineModeInsert", s:bg, s:green)
  call s:h("MiniStatuslineModeNormal", s:bg, s:purple)
  call s:h("MiniStatuslineModeOther", s:bg, s:green)
  call s:h("MiniStatuslineModeReplace", s:bg, s:orange)
  call s:h("MiniStatuslineModeVisual", s:bg, s:yellow)

We have a few "Inverse" colors, but they inconsistently put text in foreground or background colors. (We also inconsistently use the "inverse" attribute.) Perhaps as a preliminary step we should first cleanup these inconsistencies; then, introduce inverse colors for our palette; then, use them here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think this is "just" DraculaNormal, actually.

Do you mean just Normal? I don't see any highlight group called DraculaNormal.

call s:h('Normal', s:fg, g:dracula_colorterm || has('gui_running') ? s:bg : s:none )

We have s:bglighter, s:bglight for things like this, too. See how StatusLine and StatusLineNC are defined.

Ok, I'll take a look at switching to these groups.

We have a few "Inverse" colors, but they inconsistently put text in foreground or background colors.

I see exactly two: DraculaOrangeInverse and DraculaRedInverse. I assume the inconsistency you'd like to correct is the white text in DraculaRedInverse? Not sure if that white text was for readability reasons, but DraculaRedInverse is only used in one place, so this change shouldn't be too disruptive.

Perhaps as a preliminary step we should first cleanup these inconsistencies; then, introduce inverse colors for our palette; then, use them here?

Sounds good, I'm happy to tackle this refactor.

Copy link
Member

Choose a reason for hiding this comment

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

I think this is "just" DraculaNormal, actually.

Do you mean just Normal? I don't see any highlight group called DraculaNormal.

Yep, sorry.

call s:h('Normal', s:fg, g:dracula_colorterm || has('gui_running') ? s:bg : s:none )

We have s:bglighter, s:bglight for things like this, too. See how StatusLine and StatusLineNC are defined.

Ok, I'll take a look at switching to these groups.

We have a few "Inverse" colors, but they inconsistently put text in foreground or background colors.

I see exactly two: DraculaOrangeInverse and DraculaRedInverse. I assume the inconsistency you'd like to correct is the white text in DraculaRedInverse? Not sure if that white text was for readability reasons, but DraculaRedInverse is only used in one place, so this change shouldn't be too disruptive.

Yeah. I don't know why it's white-on-red either, but I don't find it too readable now that I'm looking at it1. It gets used for the standard ErrorMsg, but I think that might be more readable with s:bg as the text color (I find it so in a short test).

(There's also a "green inverse" but it might not have a name other than DraculaSearch.)

The other "inconsistency" is whether they use s:attrs.inverse or just swap fg/bg in s:h(). If you don't mess with that, it's fine, but it might be nice to clean up some day.

Perhaps as a preliminary step we should first cleanup these inconsistencies; then, introduce inverse colors for our palette; then, use them here?

Sounds good, I'm happy to tackle this refactor.

Much appreciated!

Footnotes

  1. This goes all the way back to that massive refactor we (@dsifford) did in Massive theme overhaul #62; I haven't tried blaming within that PR for now.

Copy link
Member

Choose a reason for hiding this comment

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

If y'all land on a combination that is more accessible, then I'm game to make the change. I trust your judgement @benknoble

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think black-on-red generally has more contrast than white-on-red. Here's a contrast comparison using the colors from dracula:

Screenshot 2026-03-11 at 4 42 18 PM Screenshot 2026-03-11 at 4 44 21 PM

Screenshots from https://color.adobe.com/create/color-contrast-analyzer.

(There's also a "green inverse" but it might not have a name other than DraculaSearch.)

Ah, thanks!

" }}}
endif
" }}}

Expand Down