CSS Variables LSP. Know which value wins.

Project-wide autocomplete, hover, navigation, rename, diagnostics, and color tools for CSS custom properties—not only the file currently open.

23k+ Zed downloadsRust native on six targetsTypeScript fallback
CASCADE ANALYZERWORKSPACE / READY
tokens.csstheme.cssbutton.module.scss
01:root {
02  --brand-accent: #e95c2f;
03}

05.button {
06  background: var(--brand-accent);
07}
--brand-accent✓ applies here#e95c2f · :root · specificity 0,1,0styles/tokens.css

Follow a variable through the whole project.

CSS custom properties are dynamic and contextual. The server keeps the speed of editor tooling while accounting for the cascade that decides what users see.

A1 / INDEX

One workspace view

Find custom-property definitions and usages across CSS, preprocessors, HTML, component files, CSS-in-JS, and supported Astro and Vite config sources.

A2 / CASCADE

The value that applies

Hover accounts for !important, specificity, source order, and DOM context so competing definitions appear in useful order.

A3 / NAVIGATE

Move and refactor

Jump to definitions, find references, and rename variables across the indexed workspace without losing fallbacks.

A4 / REPAIR

Fix the rough edges

Diagnose undefined variables, create missing :root definitions, add fallbacks, and replace literal colors with existing tokens.

Workspace-wide completion, for real.

A real Zed session running the Rust LSP. Suggestions include variables indexed from Astro, HTML, Svelte, SCSS, and JavaScript sources. Supported config is statically analyzed; arbitrary JavaScript is never executed.

Zed showing CSS variable autocomplete with values and definition paths from Astro, HTML, Svelte, SCSS, and JavaScript files
CSS Variables · project-wide suggestions in ZedEvidence: resolved issue #16 ↗

Choose the shortest install path.

Dedicated clients for VS Code and Zed; standalone Rust and TypeScript servers everywhere else.

ANY LSP EDITOR

Run the Rust server

Use Neovim, Helix, Emacs, or any client that launches an LSP over stdio.

UNIVERSAL FALLBACK

Use the npm server

The TypeScript implementation remains available for Node-compatible environments.

Native first. Portable by design.

Four public components share one product surface while staying useful on their own.

CLIENT / A

VS Code

Bundled native binaries with an automatic TypeScript fallback.

CLIENT / B

Zed

Native discovery, download, caching, and fallback resolution.

CORE / C

Rust LSP

Fast standalone server and embeddable library for every LSP client.

FALLBACK / D

TypeScript LSP

Universal npm distribution for Node-compatible environments.