@brignano/design 0.1.0 → 0.1.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/LICENSE +21 -0
- package/README.md +44 -5
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Anthony Brignano
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -22,8 +22,8 @@ Distinctiveness lives in the brand layer; conventionality lives in the control l
|
|
|
22
22
|
|
|
23
23
|
## Consuming it
|
|
24
24
|
|
|
25
|
-
```
|
|
26
|
-
|
|
25
|
+
```sh
|
|
26
|
+
npm install @brignano/design
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
```css
|
|
@@ -43,6 +43,45 @@ outside `tokens.css`** — a literal survives a theme change silently, which is
|
|
|
43
43
|
|
|
44
44
|
## Status
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
`
|
|
48
|
-
|
|
46
|
+
`0.x`, and deliberately so. `brignano.io` consumes it; `life`, `homelab` and
|
|
47
|
+
`driftwood` don't yet. Token *names* may still move while those land, and a `0.x`
|
|
48
|
+
range says that out loud — a caret on `0.x` pins the minor, so `^0.1.1` won't
|
|
49
|
+
silently take a breaking rename the way `^1.1.0` would. `1.0.0` gets cut when the
|
|
50
|
+
names stop changing, not on a date.
|
|
51
|
+
|
|
52
|
+
Versions track the *tokens*, not the plumbing. A release that changes only
|
|
53
|
+
packaging or docs is a patch; the minor is reserved for the first release where
|
|
54
|
+
something actually looks different.
|
|
55
|
+
|
|
56
|
+
## Releasing
|
|
57
|
+
|
|
58
|
+
The tag is the trigger. `.github/workflows/publish.yml` publishes to npm on any
|
|
59
|
+
`v*` tag, after checking the tag agrees with `package.json` — npm versions are
|
|
60
|
+
immutable, so a mismatch is caught before it's permanent.
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
npm version minor # bumps package.json, commits, tags
|
|
64
|
+
git push --follow-tags
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Publishing is done by CI, never from a laptop. There is no npm token anywhere in
|
|
68
|
+
this repo and there should never be one — the runner exchanges its OIDC identity
|
|
69
|
+
for a short-lived credential via npm [trusted publishing][tp], which is also what
|
|
70
|
+
produces the provenance attestation. A laptop has no such identity.
|
|
71
|
+
|
|
72
|
+
**The workflow is called `publish.yml` in every repo that publishes a package,
|
|
73
|
+
and that is not cosmetic.** npm's Trusted Publisher form takes the workflow
|
|
74
|
+
filename as part of the OIDC claim, and offers `publish.yml` as its example. Any
|
|
75
|
+
other name is a value you have to remember correctly, from the GitHub side, while
|
|
76
|
+
filling in a form on the npm side. Getting it wrong fails as `ENEEDAUTH` — npm
|
|
77
|
+
declines the exchange, `npm publish` falls back to token auth, and there is no
|
|
78
|
+
token — which names neither the workflow nor the mismatch. Matching the tool's
|
|
79
|
+
default is cheaper than being right every time.
|
|
80
|
+
|
|
81
|
+
Setting up a new package: create `.github/workflows/publish.yml` from this one,
|
|
82
|
+
then add the Trusted Publisher on npmjs.com — publisher GitHub Actions, the org
|
|
83
|
+
and repo, workflow filename `publish.yml`, and **environment name blank**, since
|
|
84
|
+
these workflows declare no `environment:`. Configure it before the first tag, or
|
|
85
|
+
the first publish fails the way this one did.
|
|
86
|
+
|
|
87
|
+
[tp]: https://docs.npmjs.com/trusted-publishers/
|