diff --git a/ATTRIBUTION.md b/ATTRIBUTION.md index 28bd17c7c8..fcff7b9fec 100644 --- a/ATTRIBUTION.md +++ b/ATTRIBUTION.md @@ -4,7 +4,7 @@ Every asset PdfCraft includes, bundles or uses to build its published material, with its author, source and licence. The policy is in [AGENTS.md](AGENTS.md) ยง1. The machine-readable list, with SHA-256 hashes, is [ATTRIBUTION.toml](ATTRIBUTION.toml). Licence texts are kept beside the assets and summarised in [NOTICE](NOTICE). -## In this repository (264) +## In this repository (256) | Asset | Title | Author | Licence | Source | Used for | |---|---|---|---|---|---| @@ -219,14 +219,6 @@ Every asset PdfCraft includes, bundles or uses to build its published material, | `vendor/hayro-interpret/assets/FoxitSymbol.pfb` | FoxitSymbol (standard-14 substitute font) | Foxit Software Inc. / PDFium Authors | BSD-3-Clause | https://pdfium.googlesource.com/pdfium (via hayro-interpret 0.7.0 assets/) | Renders non-embedded standard-14 fonts (vendored hayro-interpret) | | `vendor/hayro-interpret/assets/CGATS001Compat-v2-micro.icc` | CGATS001Compat v2 micro ICC profile | Clinton Ingram (saucecontrol/Compact-ICC-Profiles) | CC0-1.0 | https://github.com/saucecontrol/Compact-ICC-Profiles | Default CMYK colour conversion (vendored hayro-interpret) | | `vendor/hayro-interpret/assets/LAB.icc` | Lab abstract ICC profile | The Hayro Authors (generated with LittleCMS 2) | MIT OR Apache-2.0 | https://github.com/LaurenzV/hayro (hayro-interpret 0.7.0 assets/) | Lab colour space conversion (vendored hayro-interpret) | -| `docs/brand/artcraft-logo-white.png` | ArtCraft brand: artcraft-logo-white | ArtCraft Team | LicenseRef-Storyteller-Trademark | ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it. | -| `docs/brand/artcraft-logo-white.svg` | ArtCraft brand: artcraft-logo-white | ArtCraft Team | LicenseRef-Storyteller-Trademark | ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it. | -| `docs/brand/artcraft-logo.png` | ArtCraft brand: artcraft-logo | ArtCraft Team | LicenseRef-Storyteller-Trademark | ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it. | -| `docs/brand/artcraft-logo.svg` | ArtCraft brand: artcraft-logo | ArtCraft Team | LicenseRef-Storyteller-Trademark | ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it. | -| `docs/brand/artcraft-mark-black.png` | ArtCraft brand: artcraft-mark-black | ArtCraft Team | LicenseRef-Storyteller-Trademark | ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it. | -| `docs/brand/artcraft-mark-black.svg` | ArtCraft brand: artcraft-mark-black | ArtCraft Team | LicenseRef-Storyteller-Trademark | ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it. | -| `docs/brand/artcraft-mark.png` | ArtCraft brand: artcraft-mark | ArtCraft Team | LicenseRef-Storyteller-Trademark | ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it. | -| `docs/brand/artcraft-mark.svg` | ArtCraft brand: artcraft-mark | ArtCraft Team | LicenseRef-Storyteller-Trademark | ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft) | ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it. | | `assets/app-icon/pdfcraft.svg` | PdfCraft app icon (master vector) | PdfCraft contributors (drawn by the project owner in ArtCraft; vectorised with craftrules vectorize_tile.py) | MIT OR Apache-2.0 | Contributor-original (see assets/app-icon/README.md) | Master artwork; every other app-icon file is rendered from it (packaging/icons.sh) | | `assets/app-icon/pdfcraft-small.svg` | PdfCraft app icon (light vector) | PdfCraft contributors (drawn by the project owner in ArtCraft; vectorised with craftrules vectorize_tile.py) | MIT OR Apache-2.0 | Contributor-original (see assets/app-icon/README.md) | README header and assets/app-icon/README.md | | `assets/app-icon/pdfcraft-1024.png` | PdfCraft app icon, 1024 px on Apple's icon grid | PdfCraft contributors (drawn by the project owner in ArtCraft; vectorised with craftrules vectorize_tile.py) | MIT OR Apache-2.0 | Contributor-original (see assets/app-icon/README.md) | Runtime window/Dock icon on macOS (apps/pdfcraft/src/main.rs) | diff --git a/ATTRIBUTION.toml b/ATTRIBUTION.toml index cfa2e43402..1ca830f6b5 100644 --- a/ATTRIBUTION.toml +++ b/ATTRIBUTION.toml @@ -2665,94 +2665,6 @@ kind = "font" usage = "Showcase PDF (cargo xtask demo-pdf)" sha256 = "acd98e64795781b2058f07b18475e0ecee2a0fe2b42a49e2f9e37d0d6bf66ce6" -[[asset]] -path = "docs/brand/artcraft-logo-white.png" -title = "ArtCraft brand: artcraft-logo-white" -author = "ArtCraft Team" -source = "ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" -licence = "LicenseRef-Storyteller-Trademark" -licence_file = "docs/brand/LICENSE-brand.txt" -kind = "logo" -usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it." -sha256 = "8b86aeb06a12a90ba77a60e0d90329272310e244ee5c1f9b161b391280ca79d8" - -[[asset]] -path = "docs/brand/artcraft-logo-white.svg" -title = "ArtCraft brand: artcraft-logo-white" -author = "ArtCraft Team" -source = "ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" -licence = "LicenseRef-Storyteller-Trademark" -licence_file = "docs/brand/LICENSE-brand.txt" -kind = "logo" -usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it." -sha256 = "a3e03dc49f9ad4225b8517d5424309c8d1c864d3996d862190d9cc797d5af427" - -[[asset]] -path = "docs/brand/artcraft-logo.png" -title = "ArtCraft brand: artcraft-logo" -author = "ArtCraft Team" -source = "ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" -licence = "LicenseRef-Storyteller-Trademark" -licence_file = "docs/brand/LICENSE-brand.txt" -kind = "logo" -usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it." -sha256 = "08fc6d9d3717e8f13417bac6f9025b50e11d1e0b32e9e000883d2fe0c4a0c67b" - -[[asset]] -path = "docs/brand/artcraft-logo.svg" -title = "ArtCraft brand: artcraft-logo" -author = "ArtCraft Team" -source = "ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" -licence = "LicenseRef-Storyteller-Trademark" -licence_file = "docs/brand/LICENSE-brand.txt" -kind = "logo" -usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it." -sha256 = "3188971e1affdf4f6be4fa65f715376a7a305e6aa741ec78b0296c8f934eff08" - -[[asset]] -path = "docs/brand/artcraft-mark-black.png" -title = "ArtCraft brand: artcraft-mark-black" -author = "ArtCraft Team" -source = "ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" -licence = "LicenseRef-Storyteller-Trademark" -licence_file = "docs/brand/LICENSE-brand.txt" -kind = "logo" -usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it." -sha256 = "5954cc0306e1b9d7beb47097e2e842157113a39d9aba078b57304902687936a9" - -[[asset]] -path = "docs/brand/artcraft-mark-black.svg" -title = "ArtCraft brand: artcraft-mark-black" -author = "ArtCraft Team" -source = "ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" -licence = "LicenseRef-Storyteller-Trademark" -licence_file = "docs/brand/LICENSE-brand.txt" -kind = "logo" -usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it." -sha256 = "570adcb4f7ba8ca0647f97074476bab81d3272988f1cdee52efa21bf026036a4" - -[[asset]] -path = "docs/brand/artcraft-mark.png" -title = "ArtCraft brand: artcraft-mark" -author = "ArtCraft Team" -source = "ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" -licence = "LicenseRef-Storyteller-Trademark" -licence_file = "docs/brand/LICENSE-brand.txt" -kind = "logo" -usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it." -sha256 = "9d372157a949c147318561e629b11561c28b7cbc14c84b516a3fe6e84d8fbbad" - -[[asset]] -path = "docs/brand/artcraft-mark.svg" -title = "ArtCraft brand: artcraft-mark" -author = "ArtCraft Team" -source = "ArtCraft Team brand assets (provided by the project owner, 2026-10-01; identical copies in storytold/photocraft)" -licence = "LicenseRef-Storyteller-Trademark" -licence_file = "docs/brand/LICENSE-brand.txt" -kind = "logo" -usage = "ArtCraft branding next to the community links (About dialog, Help menu, home screen) and in docs. ArtCraft Team trademark, not open source; may be used only unmodified within PdfCraft; forks and modified versions must remove it." -sha256 = "f87af81b6fa411da8820eed2bfdcc54c0ee9cd453b4e868c64f56c69db142d0e" - [[asset]] path = "assets/app-icon/pdfcraft.svg" title = "PdfCraft app icon (master vector)" diff --git a/NOTICE b/NOTICE index 7218477937..9c19e20885 100644 --- a/NOTICE +++ b/NOTICE @@ -3,9 +3,7 @@ Copyright (c) 2026 ArtCraft Team and the PdfCraft contributors. Licensed under the MIT License or the Apache License, Version 2.0, at your option (LICENSE-MIT, LICENSE-APACHE). -The ArtCraft name, wordmark and logos in docs/brand/ are trademarks of the ArtCraft Team. They are -not open source and are not covered by the license above; their terms are in -docs/brand/LICENSE-brand.txt. +Upstream ArtCraft trademarks are not included in this fork. Third-party material diff --git a/README.md b/README.md index 555eae3bd1..f2931ea686 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,3 @@ -

- - - - ArtCraft - - -

- -

PdfCraft

@@ -72,7 +62,7 @@ PdfCraft is part of [ArtCraft](https://getartcraft.com). Come say hello, get hel - **Web page:** [getartcraft.com/apps/pdfcraft](https://getartcraft.com/apps/pdfcraft) - **Source:** [github.com/storytold/pdfcraft](https://github.com/storytold/pdfcraft) -The ArtCraft name and logos in `docs/brand/` are trademarks of the ArtCraft Team and are not open source. They may be used only unmodified, and only as part of PdfCraft (see `docs/brand/LICENSE-brand.txt`). Forks and modified versions must remove them. +This is a contributor fork of [storytold/pdfcraft](https://github.com/storytold/pdfcraft). Upstream trademark artwork is not included. ## Highlights @@ -542,15 +532,12 @@ with its author, source and license in [ATTRIBUTION.md](ATTRIBUTION.md). Release the Japanese fonts of [craft-fonts](https://github.com/storytold/craft-fonts/blob/main/ATTRIBUTION.md) (SIL Open Font License 1.1). -The ArtCraft name, wordmark and logos in [`docs/brand/`](docs/brand/) are trademarks of the -ArtCraft Team and are not covered by this license. They may be used only unmodified, and only as -part of this repository and PdfCraft, under [`docs/brand/LICENSE-brand.txt`](docs/brand/LICENSE-brand.txt). +Upstream trademarks are not included in this fork. Forks and modified versions must remove them. Adobe, Photoshop, Illustrator, Premiere Pro, Lightroom, Acrobat, After Effects and InDesign are trademarks or registered trademarks of Adobe Inc. in the United States and/or other countries. PdfCraft is an independent, open-source project and is not affiliated with, sponsored by or endorsed by Adobe Inc.; these names are used only to describe the workflows it is compatible with.

- ArtCraft
Made by the ArtCraft team and community.

diff --git a/crates/ui-egui/src/dialogs.rs b/crates/ui-egui/src/dialogs.rs index 1da3a21573..7434c7c466 100644 --- a/crates/ui-egui/src/dialogs.rs +++ b/crates/ui-egui/src/dialogs.rs @@ -1100,7 +1100,7 @@ pub fn show(app: &mut PdfCraftApp, ctx: &egui::Context) { 2 => crate::credits::models_ui(ui), _ => { ui.horizontal(|ui| { - widgets::artcraft_mark(ui, 40.0); + widgets::project_mark(ui, 40.0); ui.vertical(|ui| { ui.label(egui::RichText::new("PdfCraft").font(theme::semibold(20.0))); ui.label(crate::i18n::fmt(tl!("Version {v}"), &[("v", env!("CARGO_PKG_VERSION"))])); @@ -1118,7 +1118,7 @@ pub fn show(app: &mut PdfCraftApp, ctx: &egui::Context) { ui.add_space(12.0); ui.horizontal(|ui| { ui.label(egui::RichText::new(tl!("Part of")).color(t.text_muted)); - widgets::artcraft_logo(ui, 16.0); + widgets::project_logo(ui, 16.0); }); ui.add_space(6.0); if let Some(cmd) = widgets::community_links(ui) { diff --git a/crates/ui-egui/src/home.rs b/crates/ui-egui/src/home.rs index 2b689fefb7..871c90e251 100644 --- a/crates/ui-egui/src/home.rs +++ b/crates/ui-egui/src/home.rs @@ -28,7 +28,7 @@ pub fn show(app: &mut PdfCraftApp, ui: &mut egui::Ui) { .show(ui, |ui| { ui.set_width(ui.available_width()); ui.horizontal(|ui| { - widgets::artcraft_mark(ui, 28.0); + widgets::project_mark(ui, 28.0); ui.vertical(|ui| { ui.label(egui::RichText::new(tl!("Join the ArtCraft community")).font(theme::semibold(15.0))); ui.label(egui::RichText::new(tl!("Get help, share feedback and follow development on Discord.")).color(t.text_muted)); diff --git a/crates/ui-egui/src/widgets.rs b/crates/ui-egui/src/widgets.rs index 21448bdc8e..d944493baf 100644 --- a/crates/ui-egui/src/widgets.rs +++ b/crates/ui-egui/src/widgets.rs @@ -223,24 +223,16 @@ pub fn progress_notice(app: &PdfCraftApp, ctx: &egui::Context) -> bool { cancel } -/// The ArtCraft wordmark (Storyteller's brand, docs/brand/; not open source), sized to `height`. -pub fn artcraft_logo(ui: &mut egui::Ui, height: f32) -> Response { - let dark = ui.visuals().dark_mode; - let (uri, bytes): (&str, &'static [u8]) = if dark { - ("bytes://artcraft-logo-white.svg", include_bytes!("../../../docs/brand/artcraft-logo-white.svg")) - } else { - ("bytes://artcraft-logo.svg", include_bytes!("../../../docs/brand/artcraft-logo.svg")) - }; - ui.add(egui::Image::from_bytes(uri, bytes).max_height(height).alt_text("ArtCraft")) +/// The fork's project label, using the existing UI font. +pub fn project_logo(ui: &mut egui::Ui, height: f32) -> Response { + ui.label(egui::RichText::new("PdfCraft fork").size(height)) } -/// The ArtCraft mark (brand blue, works on light and dark), `size` points square. -pub fn artcraft_mark(ui: &mut egui::Ui, size: f32) -> Response { - ui.add( - egui::Image::from_bytes("bytes://artcraft-mark.svg", include_bytes!("../../../docs/brand/artcraft-mark.svg")) - .fit_to_exact_size(vec2(size, size)) - .alt_text("ArtCraft"), - ) +/// The existing open-source document icon identifies this fork. +pub fn project_mark(ui: &mut egui::Ui, size: f32) -> Response { + let (rect, response) = ui.allocate_exact_size(vec2(size, size), egui::Sense::hover()); + crate::icons::paint(ui, rect, "file-text", size, ui.visuals().text_color()); + response } /// Buttons for every community link (`pdfcraft_engine::links`), Discord first and prominent. diff --git a/crates/ui-egui/tests/links.rs b/crates/ui-egui/tests/links.rs index b08036b11d..75259cbae5 100644 --- a/crates/ui-egui/tests/links.rs +++ b/crates/ui-egui/tests/links.rs @@ -43,14 +43,15 @@ fn home_screen_links() { } #[test] -fn about_dialog_shows_the_brand_and_links() { +fn about_dialog_identifies_the_fork_and_keeps_upstream_links() { let pdf = b"%PDF-1.7\n1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj\n2 0 obj << /Type /Pages /Kids [3 0 R] /Count 1 >> endobj\n3 0 obj << /Type /Page /Parent 2 0 R /MediaBox [0 0 200 200] >> endobj\ntrailer << /Root 1 0 R >>\n%%EOF"; // With a document open, so the home screen's own links are not on screen. let mut h = harness(move |app| { app.open_bytes("one.pdf", None, pdf.to_vec()).unwrap(); app.dialog = Some(Dialog::About); }); - assert!(h.query_all_by_label("ArtCraft").count() >= 2, "the mark and the wordmark (alt text)"); + h.get_by_label("PdfCraft fork"); + assert_eq!(h.query_all_by_label("ArtCraft").count(), 0, "upstream trademark artwork is excluded from forks"); h.get_by_label("Join our Discord").click(); h.run_steps(2); assert_eq!(h.state().last_opened_url.as_deref(), Some(links::DISCORD)); diff --git a/docs/brand/artcraft-logo-white.png b/docs/brand/artcraft-logo-white.png deleted file mode 100644 index 8cfb31d940..0000000000 Binary files a/docs/brand/artcraft-logo-white.png and /dev/null differ diff --git a/docs/brand/artcraft-logo-white.svg b/docs/brand/artcraft-logo-white.svg deleted file mode 100644 index 4af80f7570..0000000000 --- a/docs/brand/artcraft-logo-white.svg +++ /dev/null @@ -1,7 +0,0 @@ - - ArtCraft - - - - - diff --git a/docs/brand/artcraft-logo.png b/docs/brand/artcraft-logo.png deleted file mode 100644 index a4d1544caa..0000000000 Binary files a/docs/brand/artcraft-logo.png and /dev/null differ diff --git a/docs/brand/artcraft-logo.svg b/docs/brand/artcraft-logo.svg deleted file mode 100644 index d63f3eae1b..0000000000 --- a/docs/brand/artcraft-logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - ArtCraft - - - - - diff --git a/docs/brand/artcraft-mark-black.png b/docs/brand/artcraft-mark-black.png deleted file mode 100644 index 27664bc119..0000000000 Binary files a/docs/brand/artcraft-mark-black.png and /dev/null differ diff --git a/docs/brand/artcraft-mark-black.svg b/docs/brand/artcraft-mark-black.svg deleted file mode 100644 index 6394353783..0000000000 --- a/docs/brand/artcraft-mark-black.svg +++ /dev/null @@ -1,4 +0,0 @@ - - ArtCraft - - diff --git a/docs/brand/artcraft-mark.png b/docs/brand/artcraft-mark.png deleted file mode 100644 index dbb3dc0895..0000000000 Binary files a/docs/brand/artcraft-mark.png and /dev/null differ diff --git a/docs/brand/artcraft-mark.svg b/docs/brand/artcraft-mark.svg deleted file mode 100644 index 72e191f8ab..0000000000 --- a/docs/brand/artcraft-mark.svg +++ /dev/null @@ -1,4 +0,0 @@ - - ArtCraft - -