lh-ui-vue2

Enterprise-grade Vue 2.7 component library with an ink-painting aesthetic

One core (@lh-ui/share) — each framework is just a UI layer

🖌️

Ink-painting design system

CSS-variable theming with presets and dark mode. Every token originates from the single source in @lh-ui/share — zero style duplicates inside the library.

Learn about theming →
🔗

Three connected chains

The theme chain (ConfigProvider), the form chain (validation + aria-invalid interplay), and the overlay chain (Dialog / Tooltip / Select dropdowns share one positioning and z-index engine).

See ConfigProvider →
🧩

58 components, five-part structure

Each component is an SFC plus a composable, types, an installer, and a demo. Pure logic lives in the share core; the Vue2 layer only wires reactivity.

Installation →
⚡

Built for existing Vue 2 projects

Runs on Vue 2.7 (the final release) with <script setup>. The v-model and .sync semantics match what your current Vue 2 project already uses.

Quick Start →
♿

Accessibility first

Every component ships with ARIA attributes and keyboard interaction. Focus management, aria-invalid interplay, and dark-mode contrast follow WCAG.

See a11y in practice →
🧭

One core, many UI layers

The lh-ui family shares one core and one style source across Vue2 / Vue3 / React, so cross-framework migration costs nearly nothing.

Visit the Vue3 version →