Files
wordcraft/ATTRIBUTION.md
T
18d3a39278 Chinese interface shows every character instead of boxes on Windows (#248)
* Tests: shapes and pictures can be clicked, resized, dragged and nudged

Fixed by #46 but only text boxes were covered. These walk the editor's
path for shapes (rectangle, ellipse, star, arrow) and pictures: hit test,
select, resize with arrange.bounds, drag to float with Square wrap,
nudge, undo. Covers #142 and #82.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Font list offers every weight a family installs, named as Word names them (#219)

Fonts were listed and matched only by their typographic family name
(name ID 16, e.g. "Roboto"), so a face other than Regular, Bold or Italic
(Light, Medium, SemiBold, Black, Condensed...) never appeared in the font
list, and a document asking for "Roboto Light" fell back to a substitute.

Each face now also carries its legacy family name, the one Word lists and
stores in documents: name ID 1 for static fonts ("Source Sans 3
Semibold"), or the family plus the style words other than Regular, Bold
and Italic for a variable font's named instances ("Inter Light"). The
font list includes these names, has_family and face() resolve them (bold
and italic still choose or synthesise within the faces the name covers),
and asking for a legacy name loads the whole installed family. The
system font scan now also reads fvar, so a variable font's instances are
listed before it is loaded.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Absolutely positioned VML text boxes float instead of sitting inline (#149)

A legacy VML shape (w:pict > v:shape / v:rect) with position:absolute in its
style was read as an inline object, so a tall text box in a header made the
header as tall as the box and pushed the body down the page.

The reader now maps the VML style to the same float model DrawingML anchors
use: left/margin-left and top/margin-top offsets, mso-position-*-relative
reference areas, mso-position-horizontal/vertical alignment, mso-wrap-distance-*
and w10:wrap (square, tight, through, topAndBottom; none or absent is in front
of the text, or behind it at a negative z-index). Shapes without
position:absolute stay inline. Saving writes the boxes as DrawingML anchors
with the same placement.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Chinese interface: embed the Chinese UI font in releases, fall back to an installed one (#241)

The release workflow pinned storytold/craft-fonts at abb8331, the commit that added the
Japanese fonts. Noto Sans CJK SC came one commit later (8dcdacd), so release builds embedded
only the Japanese faces and the Simplified Chinese interface fell back to BIZ UDPGothic, which
lacks about 157 simplified-only hanzi (页, 选, 删 …) and drew them as boxes. Document text was
unaffected because it uses the system font fallback.

- Bump the craft-fonts pin in the release and FreeBSD workflows to 8dcdacd.
- With CRAFT_FONTS_REQUIRED, a native build now fails when the craft-fonts manifest has no
  Jpan or Hans font, so an outdated pin can't ship silently again.
- When no embedded face covers the interface language, the UI font families get an installed
  CJK font (desktop only): a short per-platform list of files in the system font folders
  (Windows Deng/msyh/simhei/simsun, macOS PingFang/STHeiti, Linux Noto Sans CJK/WenQuanYi),
  header-checked, size-capped, and the face chosen by coverage (a SC face in a pan-CJK
  collection), so egui never sees a file it can't parse.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Add a System interface theme that follows the OS appearance (#115)

The interface theme is now a three-way choice: Use system setting,
Light or Dark, in File > Options > General and in a new Interface Theme
menu in View > Dark Mode. System follows the light/dark appearance egui
reports (winit on macOS, Windows and Linux; prefers-color-scheme on the
web) at launch and live, and falls back to light when the OS reports
none. egui's own theme is now pinned to ours, so an OS change no longer
swaps in egui's unstyled style.

Saved preferences migrate: the old "dark" switch becomes Dark or Light
and is never written again. Light stays the default for new installs.
New ui.theme command (light/dark/system); ui.dark still sets Light/Dark.
The dark page (View > Switch Modes) is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* #248: read the installed CJK UI font only when CJK text is shown

A build without craft-fonts read a large system CJK font on the first frame even
for an English interface. Now it is loaded only for a CJK interface language, or
once File > Options shows the language list (names in their own scripts).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-10 13:04:18 -04:00

15 KiB

Asset attribution

Every non-code asset in this repository (fonts, icons, images, example documents) is listed here with its author, source and licence. cargo xtask assets (part of cargo xtask ci) fails if an asset file is missing from this table.

Policy (mandatory): WordCraft contains no Microsoft, Adobe, Avid or Autodesk iconography, images, templates, themes, clip art, fonts or other assets. Every asset is original work by WordCraft contributors or third-party material under an open licence (OSI open source, public domain / CC0, or a Creative Commons licence that allows redistribution). Screenshots of other vendors' software are never committed. New font files go to storytold/craft-fonts, not this repo. The one exception is the ArtCraft brand files in docs/brand/: ArtCraft trademarks, not open source, used under docs/brand/LICENSE-brand.txt.

Generated-in-code art is original and has no file to list: the UI icon set (crates/ui-egui/src/icons.rs), the sample documents and templates (crates/engine/src/sample.rs), the table and style previews, and theme colours (crates/engine/src/cmd/design.rs).

Asset Author Source Licence Notes
assets/hyphenation/en-us.pat DesignCraft contributors (generated) trained from the Moby list by DesignCraft's patgen Public Domain (CC0-1.0) Our own Liang hyphenation patterns (no TeX patterns)
assets/hyphenation/en-us.dic Grady Ward (Moby Hyphenator II word list); converted by DesignCraft contributors https://www.gutenberg.org/ebooks/3204 (file mhyph.txt, SHA-256 eeb30474c86b8af3469035ec1a0913e35905325ca885290db9dfed9881e230ac), via DesignCraft Public Domain ~165k words with break points; drives spelling and hyphenation
assets/app-icon/wordcraft-1024.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
packaging/macos/dmg/background.svg @XusBadia original work for this repository, derived from the WordCraft app icon (assets/app-icon/wordcraft.svg, referenced via <image>, not copied); text is outlined Inter / JetBrains Mono glyph paths MIT OR Apache-2.0, like the code (LICENSE-MIT, LICENSE-APACHE) WordCraft macOS DMG window background (2026-10-08); used for the Finder window of the macOS DMG, rendered to background.tiff by packaging/macos/dmg/generate.py
packaging/macos/dmg/background.tiff @XusBadia Rendered from packaging/macos/dmg/background.svg by packaging/macos/dmg/generate.py MIT OR Apache-2.0, like the code (LICENSE-MIT, LICENSE-APACHE) 1x + 2x HiDPI TIFF for the macOS DMG window; includes the app icon (see its row) and LittleCMS's built-in sRGB profile ("No copyright, use freely")
assets/app-icon/wordcraft-macos-512.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/wordcraft.icns WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/wordcraft.ico WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/wordcraft.svg WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/16x16/apps/ai.storyteller.wordcraft.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/64x64/apps/ai.storyteller.wordcraft.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/32x32/apps/ai.storyteller.wordcraft.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/24x24/apps/ai.storyteller.wordcraft.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/128x128/apps/ai.storyteller.wordcraft.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/256x256/apps/ai.storyteller.wordcraft.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/scalable/apps/ai.storyteller.wordcraft.svg WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/48x48/apps/ai.storyteller.wordcraft.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/app-icon/hicolor/512x512/apps/ai.storyteller.wordcraft.png WordCraft contributors original artwork drawn in SVG (assets/app-icon/wordcraft.svg), rendered by packaging/icons.sh MIT OR Apache-2.0 Placeholder app icon until the WordCraft mascot drawing lands
assets/fonts/Inter-Medium.ttf Rasmus Andersson / The Inter Project Authors https://github.com/rsms/inter OFL-1.1 (assets/fonts/OFL-Inter.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/Inter-Regular.ttf Rasmus Andersson / The Inter Project Authors https://github.com/rsms/inter OFL-1.1 (assets/fonts/OFL-Inter.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/Inter-SemiBold.ttf Rasmus Andersson / The Inter Project Authors https://github.com/rsms/inter OFL-1.1 (assets/fonts/OFL-Inter.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/JetBrainsMono-Regular.ttf The JetBrains Mono Project Authors https://github.com/JetBrains/JetBrainsMono OFL-1.1 (assets/fonts/OFL-JetBrainsMono.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/OFL-Inter.txt (licence text) upstream project —
assets/fonts/OFL-JetBrainsMono.txt (licence text) upstream project —
assets/fonts/OFL-SourceSans3.txt (licence text) upstream project —
assets/fonts/OFL-SourceSerif4.txt (licence text) upstream project —
assets/fonts/SourceSans3-Bold.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/SourceSans3-It.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/SourceSans3-Regular.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/SourceSans3-Semibold.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/SourceSerif4-Bold.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/SourceSerif4-BoldIt.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/SourceSerif4-It.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/SourceSerif4-Regular.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
assets/fonts/SourceSerif4-Semibold.ttf Paul D. Hunt / Frank Grießhammer, Adobe (released as open source) https://github.com/adobe-fonts/source-sans · https://github.com/adobe-fonts/source-serif OFL-1.1 (assets/fonts/OFL-SourceSans3.txt, OFL-SourceSerif4.txt) Open-source typeface (Latin UI/document font, carried over from DesignCraft)
docs/images/review.png WordCraft contributors screenshot of WordCraft itself (sample document written for WordCraft, rendered by ui_shot) MIT OR Apache-2.0 Original; no Microsoft UI or assets
docs/images/references.png WordCraft contributors screenshot of WordCraft itself (sample document written for WordCraft, rendered by ui_shot) MIT OR Apache-2.0 Original; no Microsoft UI or assets
docs/images/hero.png WordCraft contributors screenshot of WordCraft itself (sample document written for WordCraft, rendered by ui_shot) MIT OR Apache-2.0 Original; no Microsoft UI or assets
docs/images/design.png WordCraft contributors screenshot of WordCraft itself (sample document written for WordCraft, rendered by ui_shot) MIT OR Apache-2.0 Original; no Microsoft UI or assets
docs/images/dark.png WordCraft contributors screenshot of WordCraft itself (sample document written for WordCraft, rendered by ui_shot) MIT OR Apache-2.0 Original; no Microsoft UI or assets
docs/images/backstage.png WordCraft contributors screenshot of WordCraft itself (sample document written for WordCraft, rendered by ui_shot) MIT OR Apache-2.0 Original; no Microsoft UI or assets
docs/images/layout.png WordCraft contributors screenshot of WordCraft itself (sample document written for WordCraft, rendered by ui_shot) MIT OR Apache-2.0 Original; no Microsoft UI or assets
docs/brand/LICENSE-brand.txt ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
docs/brand/artcraft-logo-white.png ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
docs/brand/artcraft-logo-white.svg ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
docs/brand/artcraft-logo.png ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
docs/brand/artcraft-logo.svg ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
docs/brand/artcraft-mark-black.png ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
docs/brand/artcraft-mark-black.svg ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
docs/brand/artcraft-mark.png ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
docs/brand/artcraft-mark.svg ArtCraft Team craftrules assets/brand/ ArtCraft trademark, docs/brand/LICENSE-brand.txt Not open source; usable unmodified only
craft-fonts (optional build input, not files in this repo): BIZ UDPGothic, BIZ UDMincho, Shippori Mincho, Noto Sans CJK SC, Noto Sans Arabic see https://github.com/storytold/craft-fonts/blob/main/ATTRIBUTION.md embedded only when built with CRAFT_FONTS_DIR (all official releases) OFL-1.1 Japanese and Chinese UI, Japanese document fallback
crates/ui-egui/src/i18n/uk.tsv @dmatviichuk with Codex Original translation from the English interface labels in this repository; no other product localisation copied MIT OR Apache-2.0 Ukrainian interface catalog; spelling checked with external VESUM and ULIF dictionaries, neither bundled
crates/ui-egui/src/i18n/pt-br.tsv @edurbs with ZCode Original translation from the English interface labels in this repository; no other product localisation copied MIT OR Apache-2.0 Brazilian Portuguese interface catalog; spelling checked with the external pt_BR Hunspell dictionary, not bundled