@omkarux/vela 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +23 -2
- package/guidelines/llms.txt +8 -3
- package/guidelines/setup.md +17 -3
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,23 @@
|
|
|
3
3
|
All notable changes to this project are documented here.
|
|
4
4
|
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
5
5
|
|
|
6
|
+
## [0.4.0] — 2026-09-10
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
- **Guidance for using the system on a stack that isn't React.** `guidelines/setup.md` and the
|
|
10
|
+
README now state plainly which layers travel and which don't: the tokens and the specs port
|
|
11
|
+
unchanged, the components do not. `npm i @omkarux/vela` followed by importing only
|
|
12
|
+
`tokens.css` gives an Angular, Vue, Svelte or server-rendered app the full palette, both
|
|
13
|
+
themes and the whole scale with no React in its dependency tree.
|
|
14
|
+
- `llms.txt` now tells a coding agent the specs are implementation-independent, so an agent
|
|
15
|
+
generating Angular follows every rule here and translates only the syntax.
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Stopped describing this as a "React component kit" in the README, the npm description and
|
|
19
|
+
`llms.txt`. It was accurate about the package and misleading about the method — React is the
|
|
20
|
+
boundary of *this implementation*, not of the approach, and conflating the two undersells the
|
|
21
|
+
contract, which is the part that actually ports.
|
|
22
|
+
|
|
6
23
|
## [0.3.1] — 2026-09-10
|
|
7
24
|
|
|
8
25
|
### Fixed
|
package/README.md
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Vela
|
|
2
2
|
|
|
3
|
-
A token-first
|
|
4
|
-
|
|
3
|
+
A token-first design system. The tokens and the component specs are framework-agnostic;
|
|
4
|
+
this repository is a **React implementation** of them. Six components, two themes, zero runtime
|
|
5
|
+
dependencies — and every design rule in the documentation is enforced by the TypeScript compiler.
|
|
5
6
|
|
|
6
7
|
```bash
|
|
7
8
|
npm install @omkarux/vela
|
|
@@ -100,6 +101,26 @@ npm run contrast # WCAG report for both themes
|
|
|
100
101
|
npm run verify # typecheck + tests + build + pack-and-consume gate
|
|
101
102
|
```
|
|
102
103
|
|
|
104
|
+
## Using it on another stack
|
|
105
|
+
|
|
106
|
+
Worth being precise about what travels and what doesn't:
|
|
107
|
+
|
|
108
|
+
| Layer | Ports? |
|
|
109
|
+
|---|---|
|
|
110
|
+
| **Tokens** (`dist/tokens.css`) | **Entirely.** Plain CSS custom properties — Angular, Vue, Svelte, Rails, plain HTML. From the same source you could emit Swift, Kotlin or XML for native. |
|
|
111
|
+
| **The contract** (`guidelines/`) | **Entirely.** Intent, closed prop sets, token bindings, accessibility, anti-patterns. Only the code samples are React-shaped. |
|
|
112
|
+
| **Components** (`dist/index.js`) | **No.** One implementation per framework, by definition. |
|
|
113
|
+
| **The contrast audit** (`npm run contrast`) | **Entirely.** It parses CSS and knows nothing about React. |
|
|
114
|
+
|
|
115
|
+
So on Angular you would take `tokens.css` and `guidelines/` unchanged, and write the components
|
|
116
|
+
against your own idioms — standalone components, signals, `ControlValueAccessor` for form controls.
|
|
117
|
+
The closed prop sets become union input types with `strictTemplates` enabled, which buys most of
|
|
118
|
+
what the discriminated unions buy here.
|
|
119
|
+
|
|
120
|
+
This is not a limitation to work around. If an organisation runs more than one framework, no
|
|
121
|
+
framework's components can be the source of truth for the others — **the only thing that can be
|
|
122
|
+
shared is the contract**, which is the argument this repository exists to make.
|
|
123
|
+
|
|
103
124
|
## Scope
|
|
104
125
|
|
|
105
126
|
Six components, chosen to exercise every foundation and both status taxonomies. Not yet
|
package/guidelines/llms.txt
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
# Vela Design System
|
|
2
2
|
|
|
3
|
-
> A token-first
|
|
4
|
-
>
|
|
5
|
-
>
|
|
3
|
+
> A token-first design system. Two-layer colour architecture (primitives -> semantics), three
|
|
4
|
+
> deliberately separate status taxonomies, full light and dark theming, zero runtime dependencies.
|
|
5
|
+
> Every design constraint below is enforced by the TypeScript types, not by review.
|
|
6
|
+
>
|
|
7
|
+
> THESE SPECS ARE FRAMEWORK-AGNOSTIC. The published package is a React implementation of them, and
|
|
8
|
+
> the code samples below are React — but the tokens, the closed prop sets, the taxonomies and the
|
|
9
|
+
> accessibility rules hold for any implementation. If you are generating for Angular, Vue or
|
|
10
|
+
> Svelte, follow every rule here and translate only the syntax.
|
|
6
11
|
|
|
7
12
|
Read `overview.md` first: it maps a user need to a component and lists the choices agents
|
|
8
13
|
most often get wrong. Then read the per-component file before generating any markup.
|
package/guidelines/setup.md
CHANGED
|
@@ -59,6 +59,20 @@ fallbacks in the font stack, so the kit degrades rather than breaks if you do no
|
|
|
59
59
|
|
|
60
60
|
## Framework
|
|
61
61
|
|
|
62
|
-
React 18.3+ / 19.
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
**This package:** React 18.3+ / 19. Plain functional components consuming `--vela-*` tokens.
|
|
63
|
+
No CSS-in-JS runtime, no Tailwind requirement, no icon-library dependency.
|
|
64
|
+
|
|
65
|
+
**Any other framework:** the token layer and the specs port unchanged; the components do not.
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npm install @omkarux/vela # then import only the tokens
|
|
69
|
+
```
|
|
70
|
+
```ts
|
|
71
|
+
import '@omkarux/vela/tokens.css'
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
That gives an Angular, Vue, Svelte or server-rendered app the full two-layer palette, both themes,
|
|
75
|
+
the spacing and sizing scales and the type ramp — with no React in the dependency tree. Build the
|
|
76
|
+
components against your own framework's idioms and hold them to `guidelines/`, which is written to
|
|
77
|
+
be implementation-independent. On Angular, the closed prop sets become union input types with
|
|
78
|
+
`strictTemplates` enabled; that buys most of what the discriminated unions buy in React.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omkarux/vela",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "A token-first
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "A token-first design system: framework-agnostic tokens and component specs with a React implementation. Two-layer color architecture, separate severity and risk taxonomies, light and dark theming, WCAG AA asserted in CI, zero runtime dependencies.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Omkar Khadamkar",
|