@qovira/theme 1.0.0 → 1.0.2
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/README.md +49 -13
- package/dist/theme.css +4 -7
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Qovira's visual foundation as a distributable package: **Tailwind v4 tokens**,
|
|
4
4
|
**self-hosted fonts**, and a small **framework-agnostic theming runtime**. It is
|
|
5
|
-
the single source of color, type,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
the single source of color, type, radius, elevation, and motion — plus spacing on
|
|
6
|
+
Tailwind's stock 4px grid — and the two themes, **Daylight** and **Evening**,
|
|
7
|
+
shared by every Qovira surface (the product web app and the
|
|
8
|
+
[qovira.ai](https://qovira.ai) marketing site), so the brand stays identical
|
|
9
|
+
across them without copy-paste.
|
|
9
10
|
|
|
10
11
|
The package is the _foundation_ a component library is built on — it ships only
|
|
11
12
|
tokens, fonts, and a tiny runtime, and has **no framework dependency**.
|
|
12
13
|
|
|
13
|
-
> Status:
|
|
14
|
-
>
|
|
14
|
+
> Status: stable (1.0). Tokens, fonts, runtime, and utilities are shipped; all
|
|
15
|
+
> four entry points resolve to real assets.
|
|
15
16
|
|
|
16
17
|
## Install
|
|
17
18
|
|
|
@@ -56,12 +57,7 @@ import { boot } from "@qovira/theme/boot"; // the raw snippet, as a string
|
|
|
56
57
|
### 3. Toggle / persist — `@qovira/theme/runtime`
|
|
57
58
|
|
|
58
59
|
```ts
|
|
59
|
-
import {
|
|
60
|
-
getTheme,
|
|
61
|
-
setTheme,
|
|
62
|
-
toggleTheme,
|
|
63
|
-
subscribe,
|
|
64
|
-
} from "@qovira/theme/runtime";
|
|
60
|
+
import { getTheme, setTheme, toggleTheme, subscribe } from "@qovira/theme/runtime";
|
|
65
61
|
```
|
|
66
62
|
|
|
67
63
|
Framework-agnostic get/set/persist with cross-tab sync. A Svelte store/rune
|
|
@@ -235,12 +231,52 @@ Use `rounded-full` only for true pills, toggles, and avatars.
|
|
|
235
231
|
|
|
236
232
|
```sh
|
|
237
233
|
pnpm install
|
|
238
|
-
pnpm build # tsup → dist/{runtime,boot}.js + copy CSS/fonts → dist/
|
|
234
|
+
pnpm build # tsup → dist/{runtime,boot}.js (+ .d.ts) + copy CSS/fonts → dist/
|
|
239
235
|
pnpm typecheck # tsc --noEmit
|
|
240
236
|
pnpm lint # eslint + prettier --check
|
|
241
237
|
pnpm test # vitest run
|
|
242
238
|
```
|
|
243
239
|
|
|
240
|
+
## Versioning & releases
|
|
241
|
+
|
|
242
|
+
`@qovira/theme` follows **[semantic versioning](https://semver.org)**. It's the
|
|
243
|
+
upstream of the Qovira stack: a breaking change here (a removed token, a changed
|
|
244
|
+
runtime API) ripples to every consumer, so the version is a real contract.
|
|
245
|
+
|
|
246
|
+
| Bump | What changed |
|
|
247
|
+
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
248
|
+
| **major** | A breaking change: a token/utility/entry-point removed or renamed, a breaking runtime-API or storage-key change, a dropped theme/font, or a raised `tailwindcss` peer range. |
|
|
249
|
+
| **minor** | A backward-compatible addition: a new token, utility, font, or additive runtime API. |
|
|
250
|
+
| **patch** | A backward-compatible fix: a corrected token value, an accessibility/contrast fix, or a runtime edge-case fix. |
|
|
251
|
+
|
|
252
|
+
### Cutting a release
|
|
253
|
+
|
|
254
|
+
Versioning and the changelog are driven by
|
|
255
|
+
[Changesets](https://github.com/changesets/changesets). The flow:
|
|
256
|
+
|
|
257
|
+
1. **As you work**, record each consumer-visible change with a changeset —
|
|
258
|
+
`pnpm changeset` prompts for the bump level (per the table above) and a
|
|
259
|
+
summary, writing a file under `.changeset/`. (See `.changeset/README.md`.)
|
|
260
|
+
2. **To release**, run `pnpm version-packages` (`changeset version`) on `main`:
|
|
261
|
+
it consumes the pending changesets, bumps `package.json`, and updates
|
|
262
|
+
`CHANGELOG.md`. Commit that, then create and push a matching `vX.Y.Z` tag.
|
|
263
|
+
3. **The tag triggers** [`.github/workflows/release.yml`](.github/workflows/release.yml):
|
|
264
|
+
the full gate (tag-vs-`package.json`, build, lint, typecheck, test) runs on
|
|
265
|
+
Blacksmith, then a single GitHub-hosted job publishes to npm via **Trusted
|
|
266
|
+
Publishing** (tokenless OIDC) with a **provenance attestation**. Only `dist/`
|
|
267
|
+
is in the published tarball (`files: ["dist"]`).
|
|
268
|
+
|
|
269
|
+
> **One-time npm setup** (outside this repo): on npmjs.com, configure
|
|
270
|
+
> `@qovira/theme`'s **Trusted Publisher** to point at this repository and the
|
|
271
|
+
> release workflow. No `NPM_TOKEN` secret is used — Trusted Publishing replaces
|
|
272
|
+
> long-lived tokens entirely.
|
|
273
|
+
|
|
274
|
+
## Contributing
|
|
275
|
+
|
|
276
|
+
Contributions are welcome — read [CONTRIBUTING.md](./CONTRIBUTING.md) first, and
|
|
277
|
+
please follow the [Code of Conduct](./CODE_OF_CONDUCT.md). Open an issue before
|
|
278
|
+
sending a PR that adds or changes a token, color, or entry point.
|
|
279
|
+
|
|
244
280
|
## License
|
|
245
281
|
|
|
246
282
|
[Apache-2.0](./LICENSE) © OMNILIUM ADVANCED CYBERNETICS SRL
|
package/dist/theme.css
CHANGED
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
* Per-theme tint/text aliases live in the semantic layer. */
|
|
56
56
|
--color-success: #2f9e6b;
|
|
57
57
|
--color-warning: #e08a1e;
|
|
58
|
-
--color-error: #d6452e
|
|
58
|
+
--color-error: #cc4029; /* darkened from #d6452e so white text clears WCAG AA (4.5:1) on bg-error fills */
|
|
59
59
|
--color-info: #3b72c0;
|
|
60
60
|
|
|
61
61
|
/* Font families. font-family is intentionally NOT carried by the --text-*
|
|
@@ -179,12 +179,9 @@
|
|
|
179
179
|
|
|
180
180
|
--focus-ring: #e0a458; /* honey, both themes */
|
|
181
181
|
|
|
182
|
-
--shadow-sm:
|
|
183
|
-
|
|
184
|
-
--shadow-
|
|
185
|
-
0 2px 4px rgba(30, 24, 18, 0.08), 0 8px 20px rgba(30, 24, 18, 0.18);
|
|
186
|
-
--shadow-lg:
|
|
187
|
-
0 4px 8px rgba(30, 24, 18, 0.1), 0 20px 48px rgba(30, 24, 18, 0.26);
|
|
182
|
+
--shadow-sm: 0 1px 2px rgba(30, 24, 18, 0.1), 0 1px 1px rgba(30, 24, 18, 0.06);
|
|
183
|
+
--shadow-md: 0 2px 4px rgba(30, 24, 18, 0.08), 0 8px 20px rgba(30, 24, 18, 0.18);
|
|
184
|
+
--shadow-lg: 0 4px 8px rgba(30, 24, 18, 0.1), 0 20px 48px rgba(30, 24, 18, 0.26);
|
|
188
185
|
--lamp-glow: 0 0 22px rgba(224, 164, 88, 0.5);
|
|
189
186
|
|
|
190
187
|
/* Status tint/text — meaning only, never decoration. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qovira/theme",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Qovira's visual foundation — Tailwind v4 tokens, self-hosted fonts, and a framework-agnostic theming runtime.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"qovira",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"tailwindcss": "^4.0.0"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
+
"@changesets/cli": "^2.31.0",
|
|
42
43
|
"@eslint/js": "^10.0.1",
|
|
43
44
|
"@fontsource-variable/figtree": "^5.2.10",
|
|
44
45
|
"@fontsource-variable/fraunces": "^5.2.9",
|
|
@@ -63,6 +64,8 @@
|
|
|
63
64
|
"typecheck": "tsc --noEmit",
|
|
64
65
|
"lint": "eslint . && prettier --check .",
|
|
65
66
|
"format": "prettier --write .",
|
|
66
|
-
"test": "vitest run"
|
|
67
|
+
"test": "vitest run",
|
|
68
|
+
"changeset": "changeset",
|
|
69
|
+
"version-packages": "changeset version"
|
|
67
70
|
}
|
|
68
71
|
}
|