关于 · About
什么是“苹果发票生成”(本研究)?
这是一个 Apple 收据(苹果发票)排版与设计令牌(design token)研究:用纯 CSS 自定义属性重建 Apple 收据的视觉构成——字距曲线、发丝线权重、间距节奏与版式几何。页面提供 US / 加拿大 / 日本三个地区版式,所有字段可实时编辑并以 2× 分辨率导出 PNG。它是一个设计研究工具,不是真实票据系统。
SF Pro 的光学字距(tracking)是怎么工作的?
Apple 在 HIG 中按字号发布 SF Pro 的字距值,且曲线非单调:小字号为正、约 12pt 过零、17pt 附近最紧、约 24pt 再次过零、展示级字号重新转正。用一个固定负值会在两端把符号弄反——这是复刻“看着不对”的最常见原因。本仓库的 tracking.ts 收录了该查找表与插值实现。
生成的数据是真的吗?
不是。默认内容为虚构(example.com 域名、保留式地址、不存在的产品),地址与订单号为随机生成,仅供排版与布局测试;导出的 PNG 只包含你输入的内容。本项目刻意不是购买凭证生成器。
English
What composes an Apple receipt?
An Apple receipt is composed of a masthead (wordmark, a large “Receipt” display title and issue date), a meta row with order ID, document number and account email, a single subscription line item with app icon and renewal date, a Billing and Payment block whose GST/HST tax line closes into the account balance, and a footer of help links, copyright and legal text. This study reconstructs that composition entirely from design tokens: colour, type scale, spacing rhythm and geometry all resolve through CSS custom properties, so one base-size variable rescales the whole sheet.
How does SF Pro’s optical tracking work?
Apple publishes SF Pro’s letter-spacing per point size in the Human Interface Guidelines, and the curve is non-monotonic: it starts positive at caption sizes, crosses zero near 12 pt, tightens around 17 pt, crosses back through zero near 24 pt, and turns positive again in the display range. A single negative tracking constant therefore has the wrong sign at both ends of the scale — a common reason a receipt reproduction looks “off” without being technically wrong.
Why do two hairline weights matter?
The receipt uses two distinct hairlines: a light rule separating the meta rows, and a heavier rule closing the totals column. Making them the same weight is the most frequent way a reproduction reads as incorrect even though every individual value is plausible.
Is this a receipt generator?
No. It is a typography and layout study, deliberately not a proof-of-purchase generator. The default content is fictional, every field is editable live from the panel, and the exported PNG carries only what you enter.