@qovira/theme 1.0.1 → 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 CHANGED
@@ -57,12 +57,7 @@ import { boot } from "@qovira/theme/boot"; // the raw snippet, as a string
57
57
  ### 3. Toggle / persist — `@qovira/theme/runtime`
58
58
 
59
59
  ```ts
60
- import {
61
- getTheme,
62
- setTheme,
63
- toggleTheme,
64
- subscribe,
65
- } from "@qovira/theme/runtime";
60
+ import { getTheme, setTheme, toggleTheme, subscribe } from "@qovira/theme/runtime";
66
61
  ```
67
62
 
68
63
  Framework-agnostic get/set/persist with cross-tab sync. A Svelte store/rune
@@ -242,6 +237,40 @@ pnpm lint # eslint + prettier --check
242
237
  pnpm test # vitest run
243
238
  ```
244
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
+
245
274
  ## Contributing
246
275
 
247
276
  Contributions are welcome — read [CONTRIBUTING.md](./CONTRIBUTING.md) first, and
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
- 0 1px 2px rgba(30, 24, 18, 0.1), 0 1px 1px rgba(30, 24, 18, 0.06);
184
- --shadow-md:
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.1",
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
  }