/** * CSS Variable Constants * * Centralized CSS variable strings to avoid duplication across components. * These are used with inline styles for theme-aware styling. */ // ============================================================================= // Text Colors // ============================================================================= /** Muted text color for less important content */ export const COLOR_TEXT_MUTED = 'var(--color-text-muted)'; /** Secondary text color for supporting content */ export const COLOR_TEXT_SECONDARY = 'var(--color-text-secondary)'; /** Primary text color */ export const COLOR_TEXT = 'var(--color-text)'; // ============================================================================= // Prose/Typography Colors (for markdown rendering) // ============================================================================= /** Prose body text color */ export const PROSE_BODY = 'var(--prose-body)'; /** Prose heading color */ export const PROSE_HEADING = 'var(--prose-heading)'; /** Prose muted text color */ export const PROSE_MUTED = 'var(--prose-muted)'; /** Prose link color */ export const PROSE_LINK = 'var(--prose-link)'; /** Prose inline code background */ export const PROSE_CODE_BG = 'var(--prose-code-bg)'; /** Prose inline code text color */ export const PROSE_CODE_TEXT = 'var(--prose-code-text)'; /** Prose code block background */ export const PROSE_PRE_BG = 'var(--prose-pre-bg)'; /** Prose code block border */ export const PROSE_PRE_BORDER = 'var(--prose-pre-border)'; /** Prose blockquote border color */ export const PROSE_BLOCKQUOTE_BORDER = 'var(--prose-blockquote-border)'; /** Prose table border color */ export const PROSE_TABLE_BORDER = 'var(--prose-table-border)'; /** Prose table header background */ export const PROSE_TABLE_HEADER_BG = 'var(--prose-table-header-bg)'; // ============================================================================= // Surface Colors // ============================================================================= /** Raised surface background */ export const COLOR_SURFACE_RAISED = 'var(--color-surface-raised)'; /** Overlay surface background */ export const COLOR_SURFACE_OVERLAY = 'var(--color-surface-overlay)'; /** Base surface background */ export const COLOR_SURFACE = 'var(--color-surface)'; // ============================================================================= // Border Colors // ============================================================================= /** Standard border color */ export const COLOR_BORDER = 'var(--color-border)'; /** Subtle border color */ export const COLOR_BORDER_SUBTLE = 'var(--color-border-subtle)'; // ============================================================================= // Tool Item Colors (for expandable items in chat) // ============================================================================= /** Tool item muted color */ export const TOOL_ITEM_MUTED = 'var(--tool-item-muted)'; // ============================================================================= // Code Block Colors // ============================================================================= /** Code block background */ export const CODE_BG = 'var(--code-bg)'; /** Code block border */ export const CODE_BORDER = 'var(--code-border)'; /** Code block header background */ export const CODE_HEADER_BG = 'var(--code-header-bg)'; /** Code filename color */ export const CODE_FILENAME = 'var(--code-filename)'; /** Code line number color */ export const CODE_LINE_NUMBER = 'var(--code-line-number)'; // ============================================================================= // Diff Colors // ============================================================================= /** Diff removed line background */ export const DIFF_REMOVED_BG = 'var(--diff-removed-bg)'; /** Diff removed line text color */ export const DIFF_REMOVED_TEXT = 'var(--diff-removed-text)'; /** Diff removed line border */ export const DIFF_REMOVED_BORDER = 'var(--diff-removed-border)'; /** Diff added line background */ export const DIFF_ADDED_BG = 'var(--diff-added-bg)'; /** Diff added line text color */ export const DIFF_ADDED_TEXT = 'var(--diff-added-text)'; /** Diff added line border */ export const DIFF_ADDED_BORDER = 'var(--diff-added-border)'; // ============================================================================= // Tool Call/Result Colors // ============================================================================= /** Tool call background */ export const TOOL_CALL_BG = 'var(--tool-call-bg)'; /** Tool call border */ export const TOOL_CALL_BORDER = 'var(--tool-call-border)'; /** Tool call text color */ export const TOOL_CALL_TEXT = 'var(--tool-call-text)'; // ============================================================================= // Tag/Badge Colors // ============================================================================= /** Tag background */ export const TAG_BG = 'var(--tag-bg)'; /** Tag text color */ export const TAG_TEXT = 'var(--tag-text)'; /** Tag border */ export const TAG_BORDER = 'var(--tag-border)'; // ============================================================================= // Worktree Badge Colors (hardcoded hex values) // ============================================================================= /** Muted zinc badge background */ export const WORKTREE_BADGE_BG = 'rgba(161, 161, 170, 0.15)'; /** Muted zinc badge text color */ export const WORKTREE_BADGE_TEXT = '#a1a1aa'; // ============================================================================= // Card/Subagent Styling (theme-aware) // ============================================================================= /** Card background */ export const CARD_BG = 'var(--card-bg)'; /** Card background — zebra-striped alternate row */ export const CARD_BG_ZEBRA = 'var(--card-bg-zebra)'; /** Card border color */ const CARD_BORDER = 'var(--card-border)'; /** Card border style */ export const CARD_BORDER_STYLE = `1px solid ${CARD_BORDER}`; /** Card header background */ export const CARD_HEADER_BG = 'var(--card-header-bg)'; /** Card header hover background */ export const CARD_HEADER_HOVER = 'var(--card-header-hover)'; /** Card muted icon color */ export const CARD_ICON_MUTED = 'var(--card-icon-muted)'; /** Card light text */ export const CARD_TEXT_LIGHT = 'var(--card-text-light)'; /** Card lighter text */ export const CARD_TEXT_LIGHTER = 'var(--card-text-lighter)'; /** Card separator color */ export const CARD_SEPARATOR = 'var(--card-separator)'; // ============================================================================= // Form/Input Colors (Tailwind classes for select/input options) // ============================================================================= /** Background for select options (theme-aware) */ export const SELECT_OPTION_BG = 'bg-surface'; // ============================================================================= // Form State Classes (Tailwind classes for form states) // ============================================================================= /** Cursor pointer class */ const CURSOR_POINTER = 'cursor-pointer'; /** Cursor not allowed with opacity for disabled state */ const CURSOR_DISABLED = 'cursor-not-allowed opacity-50'; /** * Helper to get cursor class based on disabled state */ export const getCursorClass = (disabled: boolean): string => disabled ? CURSOR_DISABLED : CURSOR_POINTER; /** * Base className for select inputs in settings forms (theme-aware) */ export const SELECT_INPUT_BASE = 'rounded border border-border bg-transparent px-2 py-1 text-sm text-text focus:border-transparent focus:outline-none focus:ring-1 focus:ring-indigo-500';