@tsuki/brand (0.1.0)
Published 2026-05-20 11:55:30 +00:00 by dev
Installation
@tsuki:registry=https://git.d-v.cc/api/packages/tsuki/npm/npm install @tsuki/brand@0.1.0"@tsuki/brand": "0.1.0"About this package
Logo marks for the tsuki design system
@tsuki/brand
Logo marks for the tsuki design system. All marks derive from the design system's tokens — shu-500 (#9B3C30) for the signature pigment, kami-0 (#FAF8F4) for paper, sumi-0 (#15120E) for ink. Corner radius on the rounded-square mark is 18.75% (96 of 512), matching the system's --radius-lg proportion.
Install
# .npmrc
@tsuki:registry=https://git.d-v.cc/api/packages/tsuki/npm/
//git.d-v.cc/api/packages/tsuki/npm/:_authToken=${GITEA_NPM_READ_TOKEN}
pnpm add @tsuki/brand
Use
<script>
// Vite/webpack/esbuild — fingerprinted URL, drop into <img> or <link>
import markUrl from '@tsuki/brand/mark?url';
import faviconUrl from '@tsuki/brand/favicon?url';
// Raw SVG string — inline so it picks up `currentColor`
import glyphSvg from '@tsuki/brand/glyph?raw';
</script>
<svelte:head>
<link rel="icon" type="image/svg+xml" href={faviconUrl} />
</svelte:head>
<img src={markUrl} alt="tsuki" />
{@html glyphSvg}
Subpath exports are also available via the wildcard pattern: @tsuki/brand/files/mark.svg, etc.
Files
All SVGs live under files/. The tsuki- prefix is implied by the package
name (@tsuki/brand) — when consumers import they write
@tsuki/brand/files/mark.svg, not @tsuki/brand/files/tsuki-mark.svg.
| File | Use for |
|---|---|
files/mark.svg |
Primary. shu square + kami glyph. Default on light or neutral surfaces. |
files/mark-dark.svg |
Dark-surface variant. sumi square + shu-400 glyph. Use against --bg in dark mode. |
files/mark-mono-black.svg |
Single-pigment: sumi square + kami glyph. Use when shu would clash with surrounding color. |
files/mark-mono-white.svg |
Inverse mono: kami square + sumi glyph. Use on photography, dark headers, etc. |
files/glyph.svg |
月 only, no background. Fill is currentColor — inherits text color. Inline it (don't reference via <img>) so it picks up the surrounding theme. |
files/wordmark.svg |
Horizontal lockup: mark + lowercase tsuki. Use in headers, README banners, and document footers where the mark alone is too small to read as identity. |
files/favicon.svg |
32×32 favicon. Heavier weight and tighter radius tuned for small sizes. |
Construction
- viewBox is
0 0 512 512for square marks,0 0 500 200for the wordmark. - Glyph rendered via
<text>with the Noto Serif JP fallback stack. The first available font wins; on systems without Noto Serif JP installed, Hiragino Mincho (macOS), Yu Mincho (Windows), or Songti SC will substitute. All render the 月 character with the same essential structure. - For distribution outside the web (print, third-party brand portals, app icon pipelines), outline the text to paths first. Quickest path: open in Figma or Inkscape, select the
<text>node, and choose Outline stroke / Object to Path, then re-export.
Do
- Pair the primary mark with at least 1× its corner radius of clear space on every side.
- Use the mono variants whenever the mark sits on shu itself, on photography, or inside another colored container.
- Scale uniformly. The mark is square; do not stretch.
Don't
- Don't recolor the square to non-system pigments. shu, sumi, kami only.
- Don't apply drop shadows, glows, or grain to the marks. The design system uses negative space —
ma · 間— as its depth language; the brand mark inherits that restraint. - Don't typeset "tsuki" in any face other than the system serif. If the wordmark needs a sans setting (rare), redraw using the system sans, don't substitute arbitrarily.
- Don't add the small rectangular speckles from earlier sketches — the clean mark is canonical.
Surface placement
- App icons / OS tiles —
files/mark.svg. Export to PNG at 512, 256, 128, 64, 32. - Web favicon —
files/favicon.svg(with a 32×32 PNG fallback for older browsers). - README banners, GitHub social card —
files/wordmark.svg. - CLI splash / TUI — the glyph rendered as a single Unicode character (
月) is enough. No raster needed. - Document corners (PDFs, decks) —
files/glyph.svgat ~24px, set in--ink-muted.
Releasing
export GITEA_NPM_TOKEN=<your-gitea-personal-access-token>
npm version <patch|minor|major>
npm publish # honors publishConfig.registry
git push --follow-tags
The repo's .npmrc reads GITEA_NPM_TOKEN from the environment — never commit the token. The publishConfig.registry in package.json pins the publish target.
Details
2026-05-20 11:55:30 +00:00
Assets (1)
Versions (1)
View all
npm
15
latest
3.1 KiB
brand-0.1.0.tgz
3.1 KiB
0.1.0
2026-05-20