Skip to content

feat!: rebrand to brandc + publish to public npm (+ opt-in base.css) - #1

Merged
quotentiroler merged 3 commits into
mainfrom
feat/opt-in-base-css
Jul 22, 2026
Merged

quotentiroler merged 3 commits into
mainfrom
feat/opt-in-base-css

Conversation

@quotentiroler

@quotentiroler quotentiroler commented Jul 22, 2026 •

Copy link
Copy Markdown
Contributor

Rebrands the package and finalizes its release story. Addresses #2 (package side).

Rebrand

  • name: @max-network/css → brandc (unscoped, public npm) — consumers drop the read:packages token.
  • publishConfig.access: public; repository → max-network/brandc; README examples import from brandc.

CI → public npm, on merge to main

  • Replaced the GitHub-Packages release-triggered publish.yml with release.yml (runs on push to main): patch-bump from npm latest (honours a manual bump), stamp changelog, tag, npm publish --provenance --access public via OIDC trusted publishing. Loop-guarded against its own release commit.
  • New CHANGELOG.md (keep-a-changelog) + scripts/changelog-release.mjs gate (mirrors prefab).

Opt-in base.css (also here)

  • brandc/base.css: Tailwind v4 cursor:pointer ergonomics, low-specificity :where(...), no tokens, not bundled into theme/tailwind.

Verified

npm run check → 10/10 tests, build clean, brandc@0.2.0 / access:public.

Follow-ups needing an admin (out of this PR)

  • Rename the GitHub repo max-network/css → max-network/brandc.
  • Configure the npm trusted publisher for brandc (repo + release.yml) — else the publish step has no auth.
  • Migrate consumers (myteacherAPI, shared-ui, hono-ui, secretspots.guide, gaestehaus-schaub.at, proxy-smart) off @max-network/css.
  • Ship a final deprecated @max-network/css release pointing to brandc.

Every Tailwind v4 consumer of the contract hits the same quirk: v4 dropped the
default cursor:pointer on <button>. Instead of each app re-adding it, ship a
SEPARATE, opt-in stylesheet.

- New src/base.ts -> BASE_CSS: low-specificity :where(...) rules restoring
  cursor:pointer for button/[role=button]/links/labels/summary/select/typed
  buttons. Plain element CSS, no tokens.
- build-css.mjs generates base.css alongside theme.css/tailwind.css; new
  ./base.css export + files entry; a test asserts it stays token-free and in sync.
- NOT bundled into theme.css/tailwind.css: the contract stays pure tokens.
  Consumers opt in with: import "@max-network/css/base.css".
- Minor version bump 0.1.1 -> 0.2.0 (additive export).
…erge

Closes #2 (package side).

- package.json: name @max-network/css -> brandc (unscoped, public npm);
  publishConfig access:public (drops the read:packages token from consumers);
  repository -> max-network/brandc; ship README + CHANGELOG in the tarball.
- CI: replace the GitHub-Packages release-triggered publish.yml with release.yml
  that runs on merge to main — patch-bump from npm latest (honouring a manual
  bump), stamp the changelog, tag, and 'npm publish --provenance --access public'
  via OIDC trusted publishing. Loop-guarded against its own release commit.
- CHANGELOG.md (keep-a-changelog) + scripts/changelog-release.mjs release gate.
- README examples updated to import from 'brandc'.

Follow-ups (separate, per issue #2): rename the GitHub repo to max-network/brandc,
configure the npm trusted publisher, migrate consumers off @max-network/css, and
ship a final deprecated @max-network/css release pointing here.
@quotentiroler quotentiroler changed the title feat: add opt-in base.css (Tailwind v4 cursor ergonomics) feat!: rebrand to brandc + publish to public npm (+ opt-in base.css) Jul 22, 2026
@quotentiroler
quotentiroler merged commit bd0ebc8 into main Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant