Repository navigation
Releases: haruhimemoe/brand
Releases · haruhimemoe/brand
Release list
v0.10.0
v0.9.0
v0.8.0
v0.7.0
[0.7.0] - 2026-10-04
Added
brandPageData(key)andBRAND_CONTACT, plus the browser-safe@haruhimemoe/brand/productsentry (src/page.ts, which also re-exportsPRODUCTS,fullName,isProductKeyand their types): everything a/brandpage needs for one product, its name, writing guidance, dos and don'ts, palette, its sevenpublic/brand/files in display order, the shared contact address and a link back to the family page.Productgainswriting,dosanddonts: how to write the name in running text, and at least two dos and don'ts a brand page shows alongside the files, filled in for every product.
Fixed
- README, Page cards: the
outputFileTracingIncludeskey is a glob, so the example uses/p/*/og.png;/p/[slug]/og.pngmatched nothing and left the fonts out.
[0.6.0] - 2026-09-28
v0.6.0
Added
- Page cards:
ogCardSvg(product, { title, subtitle?, eyebrow? })andogCard(the same as PNG), a 1200×630 link preview per page in theogSvglook, with the title wrapped and shrunk to fit (88, 76 or 64px, at most 3 lines, then "...") and every line inside an 80px padding.OG_CARDholds the size.ogCardcan run per request in a Node.js route; the README shows the Next.js config. asciiTextfolds user text to what the bundled fonts can draw (accents dropped, typographic punctuation straightened, the rest left out), andfitLineswraps and clamps text to a width.
v0.5.0
Added
- The
bbproduct (bb., hue 265, violet) for bb.haruhime.moe, the osu! BBCode editor:haruhime-brand bbwrites its files.
Changed
- haruhime's tagline is now "osu! tools for players, mappers and hosts" (it was "osu! tools for tournament hosts"), since the tools now reach past tournaments. Its link preview and banner change; rerun
haruhime-brand haruhimeto pick it up.
v0.4.0
Added
@haruhimemoe/brand/palette:palette,TOKENS,hslToHexand thePaletteandTokentypes as their own entry, which imports nothing (no fonts, file system or PNG renderer), so browsers and edge runtimes can use it. Apps that copiedhslToHexfor a brand page can import it from here.
Fixed
haruhime-brand <product>andmetadataConflictstreat afavicon.icoin the app directory (create-next-app ships one with the Next.js logo) as a conflict. Before, Next.js went on serving it next to the generatedicon.svg.haruhime-brand constructor(ortoString, or any other nameObjecthas) exits 1 with "Unknown product" instead of crashing with aTypeError.hslToHexresolves colors the way browsers do for any input: a hue outside 0 to 360 is read as the same angle (-75gave#ff00ff; it's now#bf00ff, like285), saturation and lightness are clamped to 0 to 100 (hslToHex(0, 0, 150)gave#17f17f17f), and a non-finite argument throws aRangeErrorinstead of returning#NaNNaNNaN. Palettes are unchanged.- A
Productwith an emptysuffix("") draws like one without: the name and a round dot. Before, it took the stacked layout, lost the dot and wrote empty paths. - The preview page labels the parent brand "haruhime.moe", like the drawings' own labels and alt text.
--publicor--apppointing at a folder whose name starts with two dots (..cache) is no longer refused as outside--root.
Security
- The CLI checks where each write really lands, symlinks followed, and stops when a symlinked
public, app directory or file would take it outside--root(or is dangling), unless--force. Before, it wrote through the symlink.
v0.3.0
Added
bannerSvg(product, { background }): a 1280×320 README banner with rounded corners, the wordmark (stacked, for haruhime) centered over the tagline. Dark is b6 with a c3 tagline; light is white with a b2 tagline.haruhime-brand <product>also writespublic/brand/<name>-banner.svg,<name>-banner-on-light.svgand<name>-banner.png(1280×320), and the preview page shows each product's banners.