Files
wordcraft/ATTRIBUTION.md
41bbaf51bf i18n: add Russian (ru) interface translation (#300)
* I18N.et: add Estonian interface translation

* I18N.et: record the verified headless fork push step

* i18n: send interface text that skipped translation through the catalog

A test-only pseudo-language wraps every catalog lookup in ⟦…⟧ marks; a new
audit test lays the app out in it (every tab, File page, dialog and pane,
the right-click menu, and a hover and a click on every ribbon control,
including the Table and Equation tabs) and fails on any visible text
outside the marks. The document is drawn as an image, so only interface
text is checked; document text, font and style names, shortcuts, icon
lettering, contributor handles and command error messages are allowed.

What it found, now translated in every language that has the strings:
- Right-click menu items (Cut, Paste, Font…, Paragraph…, Link…, New Comment).
- Paragraph dialog: the alignment choices showed code values (`left`);
  the label now sits before the dropdown.
- Table Design › Table Style Options checkboxes.
- Table Layout › Alignment tooltips showed code values (`topLeft`).
- Design › Fonts: the theme's name is translated, its font names are not.
- `pt` units, the Insert › Table grid label, the default watermark text,
  the font dialog's preview sample, and the untitled document's name.
- Contributors and Models dialogs: headings, sort and name choices, summary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* i18n: add Russian (ru) interface translation

- ru.tsv: 1,068 entries covering every interface string, written clean-room
  from the English labels and reviewed by a native speaker. `ru`, `ru-RU`,
  `ru_RU.UTF-8` and other regions resolve to it; File > Options picks it by hand.
- Built-in style names (Normal, Heading 2, TOC 3, Strong…) show in the
  interface language in the Styles gallery, the Styles pane and the Style
  Inspector. Display only: documents, commands and saved files keep the
  English names, and styles the author made keep theirs.
- Rendered previews use the interface language: the Styles gallery samples
  (`АаБбВвГг`) and the Design tab's style-set tiles.
- Catalogs gain a `preview` context for sample text that must fit a small
  tile (`Title` is «Заголовок» as a style but «Пример» in the tiles); it falls
  back to the plain entry, and unknown contexts are still rejected.
- Tests: locale detection and saved preference, full coverage, Cyrillic glyphs
  in the bundled interface fonts, style-name display, catalog contexts.

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

* i18n(ru): translate everything the interface audit finds

Adds 356 Russian entries: the equation gallery (categories, templates and
built-in equations), equation options, themes, watermark presets, paper
sizes, table styles, greetings, outline levels, the strings #313 routes
through the catalog, and the new AutoSave messages. The two rows #305 made
obsolete (📂 Browse…, ➕ New comment) are gone.

The interface audit now also fails when a string it sees translated has no
Russian entry, so Russian stays complete as the interface grows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* Draw Table and Eraser: draw tables and split or merge cells with a pen (#303)

Insert › Tables › Draw Table and Table Layout › Draw › Draw Table / Eraser.
table.draw takes a pen stroke in page points: a rectangle outside a table
inserts a one-cell table of that size at the paragraph under its start; a
straight vertical or horizontal line inside a table splits the cells it
crosses (new grid column or row; untouched cells span it). table.eraser
merges the two cells beside the border nearest a point. Each stroke is one
undo step. In the app the buttons toggle pen and eraser modes with a live
preview, a crosshair with the tool's icon, and Esc to stop; canvas clicks
don't move the caret while a tool is on. Splitting through part of a
vertically merged cell and erasing beside one are refused with a clear
error. Catalog 384/430 -> 387/430.

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

* Draw tab: pen, pencil and highlighter ink, stroke eraser and Hide Ink (#307)

Ink strokes are floating freeform shapes: a new Freeform geometry (paths in
shape-local coordinates, opacity, and the pen that drew it) on
InlineObject::Shape with ShapeKind::Freeform. draw.stroke inserts one
anchored to the paragraph under the first point (one undo step; points
capped per stroke, strokes capped per page, NaN dropped); draw.erase /
draw.eraser with a point deletes the stroke under it; draw.pen, draw.pencil,
draw.highlighter, draw.eraser and draw.select set the Draw tab's tool in the
session view state; review.hideInk toggles showing ink on screen.

The canvas draws a live stroke while a pen is dragged and commits it on
release; the eraser deletes strokes it passes over (one undo step per drag);
Esc or Select goes back to selecting. Draw tab buttons show the tool in use,
with colour and thickness menus; Review gets an Ink group with Hide Ink.
Ink renders with round caps and joins on screen and in PDF; highlighters are
translucent and behind the text. DOCX writes freeforms as wps:wsp with
a:custGeom (moveTo/lnTo) in a wp:anchor and reads them back, along with
simple custom-geometry freeforms from other files.

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

* #315 review fixes: eraser undo test, sanitized tap dots, custGeom path cap, ink docs

- draw.eraser with a point erases through draw.erase: test that it is one
  undo step (undo/redo) and marks the document dirty.
- Render and PDF: a single-point stroke's dot is drawn at the sanitized
  point, not the raw first one.
- DOCX custGeom reading stops once MAX_PATHS paths (subpaths included) are
  collected, across a:path elements.
- docs/file-format-parity.md: ink is saved as custom geometry, not InkML, so
  Word shows it as a freeform.
- widgets test: theme::apply takes an Appearance (#317).

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

* i18n: send interface text that skipped translation through the catalog

A test-only pseudo-language wraps every catalog lookup in ⟦…⟧ marks; a new
audit test lays the app out in it (every tab, File page, dialog and pane,
the right-click menu, and a hover and a click on every ribbon control,
including the Table and Equation tabs) and fails on any visible text
outside the marks. The document is drawn as an image, so only interface
text is checked; document text, font and style names, shortcuts, icon
lettering, contributor handles and command error messages are allowed.

What it found, now translated in every language that has the strings:
- Right-click menu items (Cut, Paste, Font…, Paragraph…, Link…, New Comment).
- Paragraph dialog: the alignment choices showed code values (`left`);
  the label now sits before the dropdown.
- Table Design › Table Style Options checkboxes.
- Table Layout › Alignment tooltips showed code values (`topLeft`).
- Design › Fonts: the theme's name is translated, its font names are not.
- `pt` units, the Insert › Table grid label, the default watermark text,
  the font dialog's preview sample, and the untitled document's name.
- Contributors and Models dialogs: headings, sort and name choices, summary.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* i18n audit: start every ribbon click from a fresh app; translate the table style preview

The sweep pressed Escape after each click, and in an equation Escape leaves it,
so the Equation tab vanished after its first control and the rest of its menus
(Convert, Justification, …) were never opened. Each control now gets a fresh app
set up the same way. The narrower allowance for short text (only icon lettering
and initials) also catches short words.

It found the sample table in the Table Style dialog (Mon, Tue, North, Total, …),
now translated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* #313: catalog rows for the newly translated interface text

Rows in all eight catalogs for the strings #313 now sends through the
catalog (cell alignment tooltips, credits columns and summary, theme names,
context-menu items, table picker, pt suffix, Document1, the Font dialog
sample) and for the Table Style preview's sample table, which the
untranslated-text audit flagged after main's table style editor landed.
The audit runs headless (no host services: no file pickers or speech) in
about 20 s, so it stays enabled.

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

* i18n audit: click the ribbon's bottom row too

The sweep only clicked controls centred between y = 52 and 125, which took in
the tab row and left out each group's bottom row (Equation › Convert and
Justification among them). The band is now taken from the layout: below the
tab row and above the document area.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* i18n audit: lay the app out wide enough that no ribbon tab overflows

At 1440 pt the Equation tab ran past the window, so its last controls
(Justification among them) sat behind the ribbon's scroll arrow and were never
clicked. The audit window is now 2560 pt wide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* i18n: add Russian (ru) interface translation

- ru.tsv: 1,068 entries covering every interface string, written clean-room
  from the English labels and reviewed by a native speaker. `ru`, `ru-RU`,
  `ru_RU.UTF-8` and other regions resolve to it; File > Options picks it by hand.
- Built-in style names (Normal, Heading 2, TOC 3, Strong…) show in the
  interface language in the Styles gallery, the Styles pane and the Style
  Inspector. Display only: documents, commands and saved files keep the
  English names, and styles the author made keep theirs.
- Rendered previews use the interface language: the Styles gallery samples
  (`АаБбВвГг`) and the Design tab's style-set tiles.
- Catalogs gain a `preview` context for sample text that must fit a small
  tile (`Title` is «Заголовок» as a style but «Пример» in the tiles); it falls
  back to the plain entry, and unknown contexts are still rejected.
- Tests: locale detection and saved preference, full coverage, Cyrillic glyphs
  in the bundled interface fonts, style-name display, catalog contexts.

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

* i18n(ru): translate everything the interface audit finds

Adds 356 Russian entries: the equation gallery (categories, templates and
built-in equations), equation options, themes, watermark presets, paper
sizes, table styles, greetings, outline levels, the strings #313 routes
through the catalog, and the new AutoSave messages. The two rows #305 made
obsolete (📂 Browse…, ➕ New comment) are gone.

The interface audit now also fails when a string it sees translated has no
Russian entry, so Russian stays complete as the interface grows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* i18n(ru): native-speaker review corrections

Add Note, Move Past Citation, equation display/inline, accents, stacks,
operators, Column Selection, Reading Highlight, ASAP and Tools, as reviewed;
the Accent gallery button wraps onto two lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* i18n(ru): translate what the improved audit and today's main add

The audit now opens every ribbon menu (bottom rows and the Equation tab's last
controls included), which surfaced Equation › Convert and Justification, and
the Table Style dialog's sample table. Also covers password protection, Manage
Styles, the clipboard pane, Shape Effects and Asian typography from main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* i18n: translate the Table Layout 'Draw Table' ribbon label in every catalog

#308's two-line ribbon label had no catalog rows; #300's Russian audit
(ru covers everything the interface looks up) found it. Rows in all ten
catalogs keep et == es and ru covering zh-hans.

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

* fmt

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

* i18n: Borders and Shading line widths through the catalog ({n} pt)

#313's untranslated-text audit flagged main's new dialog (#327).

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

* land-294: Estonian rows for main's newer dialogs

Define New Multilevel List and Track Changes Options (#342), rotation (#332),
Tabs and Borders and Shading (#327), Columns, Symbol and Field (#335): et
keys equal es again.

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

* i18n audit: run on demand (#[ignore]) until its rare failure under load is understood

It failed once in ~46 runs on a heavily loaded machine and passed 35 straight reruns,
so CI shouldn't depend on it yet. Run it with --ignored.

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

* i18n(ru): restore the review corrections a merge reverted; narrow and hide labels

A merge of older copies of this branch's commits put back the pre-review
wording of 20 entries (Add Note, Tools, the equation accents and operators,
Column Selection, Reading Highlight, ASAP, …) and dropped six that are still in
use (Equation › Convert, Centered as Group, the hyphenation menu's ✓ None).
They're back as reviewed. Also: 1/4 Em Space → «Узкий пробел», and the Draw
tab's Hide Ink button reads «Скрыть».

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

* i18n(ru): restore the reviewed wording a merge rewrote

The same merge reworded 24 reviewed entries (password protection, Shape
Effects, Asian typography, the clipboard pane, the table style sample);
they're back as a native speaker reviewed them. Clipboard Pane keeps
«Область буфера обмена», like the other panes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WtHKQ7wrZm3uBuaG1Ye8po

---------

Co-authored-by: Henno Täht <henno.taht@gmail.com>
Co-authored-by: Dmitrii Khlapov <19991457+dkhlapov@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: vangel76 <vangel1976@googlemail.com>
Co-authored-by: Brandon Thomas <echelon@gmail.com>
2026-10-11 11:53:41 -04:00

16 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/spelling/en-extra.txt WordCraft contributors original word list written for this repository (common modern words the Moby list lacks); no other dictionary copied MIT OR Apache-2.0 ~220 lowercase English base forms supplementing spelling (#520)
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/et.tsv @henno with Codex Original translation from the English interface labels in this repository; no other product localisation copied MIT OR Apache-2.0 Estonian interface catalog
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
crates/ui-egui/src/i18n/ru.tsv Dmitrii Khlapov with Claude Original translation from the English interface labels in this repository; no other product localisation copied MIT OR Apache-2.0 Russian interface catalog; reviewed by a native speaker
crates/ui-egui/src/i18n/tr.tsv @PbyLoyth with Codex and Claude Code Original translation from the English interface labels in this repository; no other product localisation copied MIT OR Apache-2.0 Turkish interface catalog