Design Guidelines
The complete design system for Lancer Notes β including all tokens, component patterns, spacing scales, and visual language that make up the application's interface.
Colors
All colors are defined as CSS custom properties on :root and overridden under html.dark-mode.
Accent / Brand
Backgrounds
Text
Borders
Semantic
Typography
The app uses Segoe UI as the primary UI font and a monospace stack for the editor and code blocks.
UI Font β Segoe UI
The quick brown fox jumps over the lazy dog. Lancer Notes β Build 6510.
Status bar Β· Dropdown labels Β· Toolbar buttons Β· Pane headers
File Edit View Insert Format Help
Editor / Code Font β Monospace Stack
# Heading 1
**Bold** _Italic_ `inline code`
> Blockquote text here
function greet(name) {
return `Hello, ${name}!`;
}
Preview Markdown Headings
Spacing Scale
A compact 5-step scale covering all padding, gap, and margin needs.
Shadows
Four elevation levels from subtle cards to modal overlays.
--shadow-sm
Tooltips, swatch cards
--shadow-md
Dialogs, dropdowns
--shadow-lg
Menus, submenus
--shadow-xl
Fullscreen popup
Border Radius
Four radius values used consistently across all interactive elements.
3px
Code blocks, cells
4px
Buttons, inputs
6px
Dropdowns, menus
10px
Fullscreen popups
Transitions
Three speed levels for hover, open/close, and theme-switch animations. Hover the cards to feel the difference.
Z-Index Scale
Named layers prevent stacking order conflicts between components.
| Variable | Value | Used for |
|---|---|---|
--z-dropdown-menu | 100 | Menu bar dropdowns & submenus |
--z-flag-menu | 104 | Find & Replace flag picker |
--z-history-menu | 105 | Find & Replace history dropdown |
--z-popup-overlay | 999 | Dialog backdrop overlay |
--z-dialog | 1000 | Modal dialogs (alert, confirm, go-to-line) |
--z-find-replace | 1003 | Find & Replace bar + Zoom toolbar |
--z-fullscreen-popup | 2000 | Help / Changelog fullscreen overlay |
--z-animation | 10000 | Checkmark SVG animations |
Scrollbar
Custom 10px webkit scrollbar with a 2px border gap matching the track background for a "floating" thumb effect.
rgba(0,0,0,0.25) light Β· rgba(255,255,255,0.18) dark |
Width: --scrollbar-width: 10px
Toolbar Buttons
Inline formatting buttons inside the menu bar β transparent by default, highlighted on hover.
- Padding:
6px 12px(icon-only:6px 6px) - Icon size inside toolbar:
18px Γ 18px(overrides global 24px) - Hover:
--color-bg-hoverbackground - Active/pressed:
--color-bg-activebackground - Disabled: no opacity change;
cursor: not-allowed
Dropdowns & Submenus
Menu dropdowns appear below their trigger with an opacity + translateY spring animation.
- Background:
--color-menu-dropdown-bg - Hover bg:
--color-menu-dropdown-hover-bg(#f3f6fb / #222425) - Border-radius:
--radius-lg (6px) - Shadow:
--shadow-lg - Disabled:
color: --color-text-disabled,cursor: not-allowed - Checkable items get an absolutely positioned SVG checkmark at left edge
Status Bar
A solid accent-colored bar at the bottom of the app showing editor state.
- Background:
--color-status-bar-bg(#005a9e) - Text: always white (
#fff) - Font size:
12px, padding:4px 16px
Dialogs
Modal dialogs (alert, confirm, input) use a shared .generic-dialog pattern with a backdrop overlay.
Unsaved Changes
You have unsaved changes. Do you want to save before closing?
- Background:
--color-dialog-bg - Appears centered via
translate(-50%, -50%)with scale-in animation - Backdrop:
#popup-overlayat z-index 999,rgba(0,0,0,0.5) - Primary button:
--color-accent-primarybackground, white text - Fixed width:
.dialog-400 { width: 400px }
Find & Replace
A floating bar that appears at top or bottom of the editor with search highlights.
The editor supports find and replace. Navigate with prev/next to jump to the current match, and use the flag menu to toggle case-sensitive, whole-word, or regex find modes.
- Bar z-index:
--z-find-replace: 1003 - Match:
--color-match-bg(#fffb91 / #3a3a2a) - Current match:
--color-match-current-bg(#ffcf66 / #5a4b1a) - Compact mode collapses the Replace row via max-height animation
- Position can be top or bottom; flag menu and history dropdown switch accordingly
Preview Content
The rendered Markdown pane mirrors GitHub-style document presentation.
Pane header: bg --color-bg-tertiary, 12px bold muted text.
This is a blockquote. It has a left border colored --color-blockquote-border and muted text.
| Feature | Light Mode | Dark Mode |
|---|---|---|
| Header bg | #f8f8f8 | #1e2225 |
| Even row | #f8f8f8 | #16181a |
| Border | #ddd | #444 |
const greeting = (name) => `Hello, ${name}!`;
console.log(greeting('Lancer Notes'));
Table Grid Selector
5Γ5 grid for visually picking table dimensions before insertion.
--color-bg-tertiary bg, --color-border-secondary borderHover / selected:
--color-accent-primary bg + borderActive: 0.8 opacity + glow shadow
Icons
Lancer Notes uses Material Symbols Rounded (ligature font) for all UI icons.
Menu icons
Toolbar
Compact toggle
Default
The .material-symbols-rounded class fixes width to match font-size and sets overflow:hidden to prevent ligature text flash (FOUC).