163 lines
7.1 KiB
Lua
163 lines
7.1 KiB
Lua
-- Paper Tonic Modern - Color Palette
|
|
-- Extracted from original Paper Tonic colorscheme
|
|
-- Light, paper-like theme with subtle colors
|
|
|
|
local M = {}
|
|
|
|
-- Color format: { hex, 256-color, ansi }
|
|
-- hex: Hexadecimal color code for GUI (GVim/MacVim/terminal with true color)
|
|
-- 256: Integer 0-255 for 256-color terminals
|
|
-- ansi: ANSI color name for basic 16-color terminals
|
|
|
|
-- ============================================================================
|
|
-- Background Colors
|
|
-- ============================================================================
|
|
|
|
-- Main background: pure white paper
|
|
M.bg = {'#ffffff', 255, 'white'}
|
|
|
|
-- Darkest background: used for very strong contrast elements
|
|
M.bg_darkest = {'#505050', 244, 'gray'}
|
|
|
|
-- UI background: slightly off-white for UI elements (statusline, etc.)
|
|
M.bg_ui = {'#efefef', 0, 'darkgray'}
|
|
|
|
-- ============================================================================
|
|
-- Highlight Backgrounds (general)
|
|
-- ============================================================================
|
|
|
|
-- Selection/highlight backgrounds (neutral gray tones)
|
|
M.bg_hl_strong = {"#dddddd", 17, "white"}
|
|
M.bg_hl = {"#eeeeee", 250, "white"}
|
|
M.bg_hl_weak = {"#f7f2f2", 250, "white"}
|
|
|
|
-- Special highlight backgrounds (cyan/blue tones - for LSP references, search, etc.)
|
|
M.bg_hl_special_strong = {"#a3e0ff", 17, "cyan"}
|
|
M.bg_hl_special = {"#d4f0ff", 250, "cyan"}
|
|
M.bg_hl_special_weak = {"#e0eaff", 250, "cyan"}
|
|
|
|
-- Alternative special highlight (green tones - for diff additions, etc.)
|
|
M.bg_hl_special_alt_strong = {"#74f283", 17, "cyan"}
|
|
M.bg_hl_special_alt = {"#bff2cd", 250, "cyan"}
|
|
|
|
-- ============================================================================
|
|
-- Status Backgrounds (error, success, modified, fail)
|
|
-- ============================================================================
|
|
|
|
-- Error backgrounds (red/pink tones)
|
|
M.bg_error = {'#ffd7d7', 196, 'white'}
|
|
M.bg_error_weak = {'#ffefef', 196, 'white'}
|
|
|
|
-- Success background (green tone)
|
|
M.bg_success = {'#e0ece0', 196, 'white'}
|
|
|
|
-- Modified background (blue tone)
|
|
M.bg_modified = {'#e0e0ec', 196, 'white'}
|
|
|
|
-- Fail/warning background (red tone)
|
|
M.bg_fail = {'#ece0e0', 196, 'white'}
|
|
|
|
-- ============================================================================
|
|
-- Foreground Colors (text)
|
|
-- ============================================================================
|
|
|
|
-- Main text colors (gray scale, strongest to weakest)
|
|
M.fg_stronger = {'#444444', 236, 'darkgrey'} -- Darkest text
|
|
M.fg_strong = {'#666666', 236, 'darkgrey'} -- Dark text
|
|
M.fg = {'#8c8c8c', 244, 'gray'} -- Normal text (default)
|
|
M.fg_weak = {'#9d9d9d', 251, 'gray'} -- Light text (comments, less important)
|
|
M.fg_weaker = {'#bbbbbb', 251, 'gray'} -- Lightest text (very subtle)
|
|
|
|
-- Exception foreground (reddish-brown for errors/exceptions)
|
|
M.fg_exception = {'#7c4444', 251, 'gray'}
|
|
|
|
-- ============================================================================
|
|
-- Status Foreground Colors (Git/Diff - muted natural tones)
|
|
-- ============================================================================
|
|
|
|
-- Git/diff status indicators (used in statusline, signs, etc.)
|
|
-- These are muted, natural colors for git changes
|
|
M.success = {'#89af89', 196, 'white'} -- Success/addition (muted green)
|
|
M.modified = {'#8989af', 196, 'white'} -- Modified/change (muted blue)
|
|
M.fail = {'#af8989', 196, 'white'} -- Fail/deletion (muted red)
|
|
|
|
-- ============================================================================
|
|
-- Alert/Diagnostic Colors (Fluorescent/Neon - intentionally jarring)
|
|
-- ============================================================================
|
|
|
|
-- These colors are designed to be NOTICED, not blend in with code
|
|
-- Fluorescent/neon aesthetic similar to bg_hl_special_alt colors
|
|
-- Think "highlighter marker" - bright, synthetic, stands out on white paper
|
|
|
|
-- LSP Diagnostics - Fluorescent colors for maximum visibility
|
|
M.diag_error = {'#ff0066', 197, 'red'} -- Hot pink-red (screams "error!")
|
|
M.diag_warn = {'#ff6600', 202, 'red'} -- Fluorescent orange (warnings)
|
|
M.diag_info = {'#00ccff', 45, 'cyan'} -- Bright fluorescent cyan (info - more prominent)
|
|
M.diag_hint = {'#66e0ff', 81, 'cyan'} -- Softer fluorescent cyan (hint - less prominent)
|
|
|
|
-- ============================================================================
|
|
-- Primary Accent Colors (brownish-red tones)
|
|
-- ============================================================================
|
|
|
|
-- Primary accent: For "base" languages
|
|
-- Used for: PHP, JavaScript, Python, etc.
|
|
-- Languages using primary:
|
|
-- - PHP: always primary (whether standalone or in <?php ?> tags within HTML)
|
|
-- - JavaScript: always primary (standalone or embedded)
|
|
-- - Python: always primary
|
|
-- Note: Both PHP and JS use primary; acceptable since embedded JS in PHP is discouraged
|
|
M.primary_stronger = {"#7f4b4b", 236, "black"} -- Darkest accent
|
|
M.primary_strong = {"#5a4444", 236, "black"} -- Dark accent
|
|
M.primary = {"#6b5555", 244, "gray"} -- Normal accent
|
|
M.primary_weak = {"#7c6666", 248, "darkgray"} -- Light accent
|
|
|
|
-- ============================================================================
|
|
-- Language-Specific Color Palettes (for mixed-language contexts)
|
|
-- ============================================================================
|
|
|
|
-- IMPORTANT: Each language maintains its color identity regardless of where it appears.
|
|
-- A language always uses the same color, whether standalone or embedded in another language.
|
|
-- This creates consistent visual language recognition across all contexts.
|
|
--
|
|
-- Example: In a PHP file with HTML and CSS:
|
|
-- - PHP code: primary (brownish-red) - everywhere, including <?php ?> blocks
|
|
-- - HTML tags: c3 (blue) - everywhere, whether in .html or embedded in PHP
|
|
-- - CSS rules: c2 (green) - everywhere, whether in .css or <style> tags
|
|
|
|
-- Color 2: Green tones - CSS syntax
|
|
-- CSS maintains green coloring in <style> tags, CSS files, CSS-in-JS, etc.
|
|
M.c2_weak = {"#5e955e", 28, "darkgreen"}
|
|
M.c2 = {"#008700", 22, "darkgreen"}
|
|
M.c2_strong = {"#005a00", 22, "darkgreen"}
|
|
|
|
-- Color 3: Blue tones - HTML syntax
|
|
-- HTML maintains blue coloring in .html files, within PHP, within templates, etc.
|
|
M.c3_weak = {"#2d78b7", 20, "blue"}
|
|
M.c3 = {"#005faf", 19, "blue"}
|
|
M.c3_strong = {"#004f92", 17, "darkblue"}
|
|
|
|
-- Color 4: Cyan tones - Reserved/Future use
|
|
-- Available for additional language if needed (TypeScript? SQL?)
|
|
M.c4_weak = {"#78b7d5", 20, "blue"}
|
|
M.c4 = {"#56acd7", 19, "blue"}
|
|
M.c4_strong = {"#1596d7", 17, "darkblue"}
|
|
|
|
-- Color 5: Magenta/Pink tones - Template syntax
|
|
-- Used for: Django templates, Twig, Handlebars, Jinja
|
|
-- The base language keeps its color while template syntax uses c5
|
|
-- Example in Twig: HTML stays blue (c3), but {{ }}, {% %}, {# #} are magenta (c5)
|
|
M.c5_weak = {"#e846ac", 164, "magenta"}
|
|
M.c5 = {"#d70087", 164, "magenta"}
|
|
M.c5_strong = {"#ad006d", 164, "magenta"}
|
|
|
|
-- ============================================================================
|
|
-- Helper Constants
|
|
-- ============================================================================
|
|
|
|
-- Common constants for transparent/inherited values
|
|
M.NONE = 'NONE'
|
|
M.FG = 'FG'
|
|
M.BG = 'BG'
|
|
|
|
return M
|