This is my neovim visual config:
-- General colors
vim.api.nvim_set_hl( 0, "Normal", { bg = "none" } )
vim.api.nvim_set_hl( 0, "NormalFloat", { bg = "none" } )
vim.api.nvim_set_hl( 0, "NormalNC", { bg = "none" } )
vim.api.nvim_set_hl( 0, "LineNr", { bg = "none" } )
vim.api.nvim_set_hl( 0, "SignColumn", { bg = "none" } )
vim.api.nvim_set_hl( 0, "Folded", { bg = "#4b4b4b" } )
vim.api.nvim_set_hl( 0, "FoldColumn", { bg = "none" } )
vim.api.nvim_set_hl( 0, "Visual", { fg = "#000000", bg = "#de935f" } )
vim.api.nvim_set_hl( 0, "NotifyBackground", { bg = "#000000" } )```
-- Spell checking
vim.api.nvim_set_hl( 0, "SpellLocal", { fg = default } )
vim.api.nvim_set_hl( 0, "SpellRare", { fg = default } )
vim.api.nvim_set_hl( 0, "SpellCap", { fg = "#de935f", italic=true } )
vim.api.nvim_set_hl( 0, "SpellBad", { fg = "#ff0000", italic=true } )
-- Markdown
vim.api.nvim_set_hl( 0, "htmlBold", { bold=true } )
vim.api.nvim_set_hl( 0, "htmlItalic", { italic=true } )
vim.api.nvim_set_hl( 0, "htmlStrike", { fg = "#ff0000", strikethrough=true } )
vim.api.nvim_set_hl( 0, "Normal", { bg = "none" } ) is probably what would work for you.