33 lines
1.9 KiB
TypeScript
33 lines
1.9 KiB
TypeScript
// Responsive horizontal gutter for primary content bodies (settings right side,
|
|
// skills, artifacts, command center / sessions). Ratio-based so it scales with
|
|
// the window, but clamped so it never collapses on narrow widths or runs away
|
|
// on ultrawide displays. Headers/tabs intentionally keep their own tighter
|
|
// padding.
|
|
//
|
|
// NOTE: these must stay literal strings — Tailwind's scanner only picks up
|
|
// complete class names, so do not build them via template interpolation.
|
|
export const PAGE_INSET_X = 'px-[clamp(1.25rem,4vw,4rem)]'
|
|
|
|
// Matching negative inline-margin to bleed an element (e.g. a sticky header bar)
|
|
// out to the gutter edges before re-applying PAGE_INSET_X.
|
|
export const PAGE_INSET_NEG_X = '-mx-[clamp(1.25rem,4vw,4rem)]'
|
|
|
|
// Readable cap for overlay "inner page" bodies (settings, command center). Wide
|
|
// enough to breathe, tight enough that content doesn't sprawl on ultrawide
|
|
// displays. Pair with `mx-auto w-full` to center within the pane. Literal string
|
|
// for Tailwind's scanner (see PAGE_INSET_X note).
|
|
export const PAGE_MAX_W = 'max-w-[75rem]'
|
|
|
|
// Narrowest window that still docks a rail in the grid; under it both rails
|
|
// leave the grid and become the hover-reveal overlay. Single source of truth for
|
|
// the responsive collapse point.
|
|
//
|
|
// A rail costs 237px (SIDEBAR_DEFAULT_WIDTH) and the chat beside it wants roughly
|
|
// what a popped-out session window enforces on itself (420px), so docking stops
|
|
// paying for itself around here — while still leaving an overlay band down to the
|
|
// window's own 400px minimum. Expressed as a dock floor rather than a collapse
|
|
// ceiling so half-screen splits stay docked on common laptop widths (1280 → 640).
|
|
export const SIDEBAR_DOCK_MIN_WIDTH_PX = 640
|
|
// `max-width` is inclusive: shave a hair so an exactly-640px window docks.
|
|
export const SIDEBAR_COLLAPSE_MEDIA_QUERY = `(max-width: ${SIDEBAR_DOCK_MIN_WIDTH_PX - 0.02}px)`
|