# Concise UI Concise UI is a Vue 3 component framework for desktop-first enterprise and productivity software. It is designed for applications such as ERP, WMS, CRM, POS, finance, inventory, administration, and other internal business systems. The goal is a compact, professional interface that displays information efficiently without imitating Bootstrap, Material Design, or old desktop software. > Concise UI is currently under active development. Its public API may change before the first stable release. ## Design principles - High information density with compact controls and restrained spacing - Clear hierarchy through typography, borders, and layout - Conservative use of color for actions, status, selection, and validation - Desktop-first mouse and keyboard interaction - Accessible native semantics where possiblehttps://git.icodeformoney.com/fandi/concise-uihttps://git.icodeformoney.com/fandi/concise-ui - Lightweight components without unnecessary runtime dependencies - Scoped SCSS and CSS variables for theme customization - Predictable Vue APIs and public TypeScript types The complete design direction is documented in [AGENTS.md](./AGENTS.md). ## Components ### Navigation and layout - `CAppBar` - `CMenu` - `CSeparator` - `CSideBar` ### Actions and feedback - `CButton` - `CProgressBar` ### Form structure - `CFormField` - `CInputGroup` - `CInputAddon` ### Inputs - `CInput` - `CTextArea` - `CPassword` - `CNumberInput` ### Selection controls - `CCheckbox` - `CRadio` - `CSelect` - `CMultiSelect` - `CAutoComplete` ### Symbols - `CIcon` `CIcon` displays Unicode symbols and emoji supplied by the application. Concise UI does not bundle an icon font or emoji package. ## Basic usage Components and their public types are exported from the package entry point: ```vue ``` Component styling is authored as scoped SCSS and uses theme variables. The production build emits `dist/concise-ui.css` alongside the JavaScript bundles; applications must include that generated stylesheet. Theme variables can customize presentation without changing component behavior. ## Data-driven selection `CSelect` and `CMultiSelect` accept standard `{ label, value }` records or raw objects with accessor props: ```vue ``` Omitting `option-value` binds the complete object. Adding `option-value="id"` binds only the ID. Filterable `CSelect` and `CAutoComplete` also support parent-controlled remote searching through `@search`, `debounce-wait`, `min-search-length`, and `loading`. Components coordinate the interaction but leave authentication, networking, cancellation, and error handling to the application. ## Documentation application The repository contains a documentation application with live examples and highlighted Vue and JavaScript snippets for the public components. ```sh npm install npm run dev ``` Open the local URL printed by Vite and navigate to **Components**. ## Development commands ```sh # Start the documentation development server npm run dev # Type-check, build the library, and emit declarations npm run build # Run unit tests npm run test:unit # Run the configured linters npm run lint # Format source files npm run format ``` The supported Node.js versions are `^22.18.0` or `>=24.12.0`. Vue `^3.5.0` is a peer dependency. ## Project structure ```text src/ ├─ components/ Public component implementations and types ├─ documentation/ Documentation-only components ├─ layouts/ Documentation application layouts ├─ pages/components/ Component guides and live examples ├─ router/ Documentation routes ├─ styles/ Documentation application styles └─ index.ts Public library exports ``` ## Adding a component The required component workflow is documented in [AGENTS.md](./AGENTS.md#creating-a-new-component). In summary: 1. Define the API, states, events, slots, model shape, and keyboard behavior. 2. Implement the component and any reusable public types. 3. Include accessibility and theme-aware compact styling. 4. Export the component and its public types from `src/index.ts`. 5. Create its documentation page with live examples and code snippets. 6. Register its documentation route and both navigation entries. 7. Review API consistency, accessibility, documentation accuracy, and the final diff.