Merge pull request #6459 from Messhias/feat/g5-style-lib-status-effects

G5: built-in Status Effects graphic style library
This commit is contained in:
BFlat
2026-11-11 17:30:34 +07:00
committed by GitHub
33 changed files with 257 additions and 12 deletions
+42
View File
@@ -159,6 +159,7 @@ pub const STYLE_LIBRARIES: &[BuiltinStyleLibrary] = &[
BuiltinStyleLibrary { id: "shape-effects", name: "Shape Effects", make: shape_effects },
BuiltinStyleLibrary { id: "blends-transparency", name: "Blends and Transparency", make: blends_transparency },
BuiltinStyleLibrary { id: "game-hud", name: "Game HUD", make: game_hud },
BuiltinStyleLibrary { id: "status-effects", name: "Status Effects", make: status_effects },
];
/// Built-in library `id`, made once.
@@ -482,6 +483,43 @@ fn game_hud() -> Vec<GraphicStyle> {
]
}
/// Status Effects: buffs and debuffs for RPG/gamedev art (original, catalogue stylize effects only).
fn status_effects() -> Vec<GraphicStyle> {
let stealth = GraphicStyle {
opacity: 0.45,
blend: BlendMode::Normal,
..style("Stealth Fade", vec![F(fill("#7f8c8d")), S(stroke("#2c3e50", 1.0))], vec![])
};
vec![
style(
"Poison Tint",
vec![F(fill("#2ecc71"))],
vec![fx("stylize.outerGlow", json!({"mode": "normal", "opacity": 80.0, "blur": 6.0, "color": "#58d68d"}))],
),
style(
"Freeze Edge",
vec![F(fill("#aed6f1")), S(stroke("#5dade2", 2.0))],
vec![fx("stylize.innerGlow", json!({"mode": "screen", "opacity": 70.0, "blur": 5.0, "color": "#d6eaf8", "source": "edge"}))],
),
style(
"Burn Aura",
vec![F(fill("#e67e22"))],
vec![fx("stylize.outerGlow", json!({"mode": "normal", "opacity": 85.0, "blur": 8.0, "color": "#f39c12"}))],
),
style(
"Stun Pulse",
vec![F(fill("#f4d03f"))],
vec![fx("stylize.outerGlow", json!({"mode": "normal", "opacity": 75.0, "blur": 7.0, "color": "#f7dc6f"}))],
),
stealth,
style(
"Shield Buff",
vec![F(fill("#85c1e9")), S(round("#2874a6", 2.0))],
vec![fx("stylize.outerGlow", json!({"mode": "normal", "opacity": 70.0, "blur": 5.0, "color": "#5dade2"}))],
),
]
}
#[cfg(test)]
mod tests {
use super::*;
@@ -508,6 +546,10 @@ mod tests {
assert_eq!(game.name, "Game HUD");
let names: Vec<&str> = game.styles.iter().map(|g| g.name.as_str()).collect();
assert_eq!(names, ["Health Fill", "Mana Glow", "Damage Flash", "Quest Outline", "Coin Shine", "Boss Alert"]);
let status = builtin_style_library("status-effects").unwrap();
assert_eq!(status.name, "Status Effects");
let status_names: Vec<&str> = status.styles.iter().map(|g| g.name.as_str()).collect();
assert_eq!(status_names, ["Poison Tint", "Freeze Edge", "Burn Aura", "Stun Pulse", "Stealth Fade", "Shield Buff"]);
}
#[test]
+11 -1
View File
@@ -41,8 +41,9 @@ fn builtin_libraries_are_listed_with_original_styles_using_catalogued_effects()
let mut s = session();
let list = run(&mut s, "graphicStyle.libraries", json!({}));
let libs = list["libraries"].as_array().unwrap();
assert!(libs.len() >= 7 && libs.iter().all(|l| l["category"] == "builtIn"), "{libs:?}");
assert!(libs.len() >= 8 && libs.iter().all(|l| l["category"] == "builtIn"), "{libs:?}");
assert!(libs.iter().any(|l| l["id"] == "game-hud" && l["name"] == "Game HUD"), "{libs:?}");
assert!(libs.iter().any(|l| l["id"] == "status-effects" && l["name"] == "Status Effects"), "{libs:?}");
for l in libs {
let id = l["id"].as_str().unwrap();
let g = run(&mut s, "graphicStyle.library", json!({"library": id}));
@@ -60,6 +61,9 @@ fn builtin_libraries_are_listed_with_original_styles_using_catalogued_effects()
let game = run(&mut s, "graphicStyle.library", json!({"library": "game-hud"}));
let game_names: Vec<&str> = game["styles"].as_array().unwrap().iter().map(|x| x["name"].as_str().unwrap()).collect();
assert_eq!(game_names, ["Health Fill", "Mana Glow", "Damage Flash", "Quest Outline", "Coin Shine", "Boss Alert"]);
let status = run(&mut s, "graphicStyle.library", json!({"library": "status-effects"}));
let status_names: Vec<&str> = status["styles"].as_array().unwrap().iter().map(|x| x["name"].as_str().unwrap()).collect();
assert_eq!(status_names, ["Poison Tint", "Freeze Edge", "Burn Aura", "Stun Pulse", "Stealth Fade", "Shield Buff"]);
let id = rect(&mut s, 10.0, 20.0, 40.0, 30.0);
let r = run(&mut s, "graphicStyle.addFromLibrary", json!({"library": "game-hud", "name": "Mana Glow", "apply": true, "ids": [id.0]}));
assert_eq!((names(&r["added"]), r["applied"].as_str()), (vec!["Mana Glow"], Some("Mana Glow")));
@@ -67,6 +71,12 @@ fn builtin_libraries_are_listed_with_original_styles_using_catalogued_effects()
assert_eq!(node.appearance.fill_paint(), Paint::solid(vectorcraft_color::Color::from_hex("#3498db").unwrap()));
assert_eq!(node.appearance.stroke_paint(), Paint::None);
assert_eq!(node.appearance.effects.iter().map(|e| e.id.as_str()).collect::<Vec<_>>(), ["stylize.outerGlow"]);
let id2 = rect(&mut s, 60.0, 20.0, 40.0, 30.0);
let r2 = run(&mut s, "graphicStyle.addFromLibrary", json!({"library": "status-effects", "name": "Poison Tint", "apply": true, "ids": [id2.0]}));
assert_eq!((names(&r2["added"]), r2["applied"].as_str()), (vec!["Poison Tint"], Some("Poison Tint")));
let node2 = doc(&s).node(id2).unwrap();
assert_eq!(node2.appearance.fill_paint(), Paint::solid(vectorcraft_color::Color::from_hex("#2ecc71").unwrap()));
assert_eq!(node2.appearance.effects.iter().map(|e| e.id.as_str()).collect::<Vec<_>>(), ["stylize.outerGlow"]);
// By name in any case.
assert_eq!(run(&mut s, "graphicStyle.library", json!({"library": "shadows and glows"}))["id"], "shadows-glows");
assert!(s.execute("graphicStyle.library", &json!({"library": "nope"})).is_err());
+7
View File
@@ -3071,6 +3071,13 @@ digits Malayalam Малаялам
Quest Outline Квест
Coin Shine Монета
Boss Alert Бос
Status Effects Статус ефекти
Poison Tint Отрова
Freeze Edge Замразяване
Burn Aura Изгаряне
Stun Pulse Зашеметяване
Stealth Fade Скритост
Shield Buff Щит
Shape Фигура
Shape Builder Създател на фигури
Shape Builder Regions Области на създателя на фигури
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -776,6 +776,13 @@
Quest Outline Zadatak
Coin Shine Novčić
Boss Alert Bos
Status Effects Statusni efekti
Poison Tint Otrov
Freeze Edge Zamrzavanje
Burn Aura Izgaranje
Stun Pulse Omamljenost
Stealth Fade Nevidljivost
Shield Buff Štit
Outlines and Rules Obrisi i linije
Hand-Drawn Ručno crtano
Gradient Finishes Gradijentne završnice
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -3955,6 +3955,13 @@ digits Malayalam Malaiàlam
Quest Outline Missió
Coin Shine Moneda
Boss Alert Cap
Status Effects Efectes d’estat
Poison Tint Verí
Freeze Edge Congelació
Burn Aura Cremada
Stun Pulse Atordiment
Stealth Fade Sigil
Shield Buff Escut
Shape Forma
Shape Builder Constructor de formes
Shape Builder Delete Suprimeix del constructor de formes
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -783,6 +783,13 @@
Quest Outline Úkol
Coin Shine Mince
Boss Alert Boss
Status Effects Stavové efekty
Poison Tint Jed
Freeze Edge Zmrazení
Burn Aura Spálení
Stun Pulse Omráčení
Stealth Fade Plížení
Shield Buff Štít
Outlines and Rules Obrysy a linky
Hand-Drawn Ručně kreslené
Gradient Finishes Přechodové povrchy
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -722,6 +722,13 @@
Quest Outline Quest
Coin Shine Mønt
Boss Alert Boss
Status Effects Statuseffekter
Poison Tint Gift
Freeze Edge Frost
Burn Aura Brænd
Stun Pulse Bedøvelse
Stealth Fade Snige
Shield Buff Skjold
Outlines and Rules Konturer og linjer
Hand-Drawn Håndtegnet
Gradient Finishes Gradientfinish
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -3117,6 +3117,13 @@ digits Malayalam Malayalam
Quest Outline Quest
Coin Shine Münze
Boss Alert Boss
Status Effects Statuseffekte
Poison Tint Gift
Freeze Edge Frost
Burn Aura Brand
Stun Pulse Betäubung
Stealth Fade Schleichen
Shield Buff Schild
Shape Form
Shape Builder Formerstellung
Shape Builder Regions Formerstellungsbereiche
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -3625,6 +3625,13 @@ digits Malayalam Μαλαγιάλαμ
Quest Outline Αποστολή
Coin Shine Νόμισμα
Boss Alert Αρχηγός
Status Effects Εφέ κατάστασης
Poison Tint Δηλητήριο
Freeze Edge Πάγωμα
Burn Aura Κάψιμο
Stun Pulse Ζάλη
Stealth Fade Αορασία
Shield Buff Ασπίδα
Shape Builder Regions Περιοχές δημιουργίας σχημάτων
Shape Effects Εφέ σχημάτων
Shape Mode Λειτουργία σχήματος
Can't render this file because it is too large.
+7
View File
@@ -3156,6 +3156,13 @@ digits Malayalam Malayálam
Quest Outline Misión
Coin Shine Moneda
Boss Alert Jefe
Status Effects Efectos de estado
Poison Tint Veneno
Freeze Edge Congelación
Burn Aura Quemadura
Stun Pulse Aturdimiento
Stealth Fade Sigilo
Shield Buff Escudo
Shape Forma
Shape Builder Generador de formas
Shape Builder Regions Regiones del generador de formas
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -774,6 +774,13 @@
Quest Outline Tehtävä
Coin Shine Kolikko
Boss Alert Bossi
Status Effects Tilatehosteet
Poison Tint Myrkky
Freeze Edge Jäädytys
Burn Aura Poltto
Stun Pulse Tainnutus
Stealth Fade Hiipiminen
Shield Buff Kilpi
Outlines and Rules Ääriviivat ja viivat
Hand-Drawn Käsin piirretyt
Gradient Finishes Liukuväriviimeistelyt
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -3148,6 +3148,13 @@ digits Malayalam Malayalam
Quest Outline Quête
Coin Shine Pièce
Boss Alert Boss
Status Effects Effets de statut
Poison Tint Poison
Freeze Edge Gel
Burn Aura Brûlure
Stun Pulse Étourdissement
Stealth Fade Furtivité
Shield Buff Bouclier
Shape Forme
Shape Builder Concepteur de forme
Shape Builder Regions Zones du Concepteur de forme
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -4267,6 +4267,13 @@ antiAlias Sharp शार्प
Quest Outline क्वेस्ट
Coin Shine सिक्का
Boss Alert बॉस
Status Effects स्थिति प्रभाव
Poison Tint ज़हर
Freeze Edge ठंड
Burn Aura जलन
Stun Pulse स्तब्ध
Stealth Fade छिपना
Shield Buff ढाल
Shaft: दस्ता:
Shape शेप
Shape Builder शेप बिल्डर
Can't render this file because it is too large.
+7
View File
@@ -3771,6 +3771,13 @@ mark-style Japanese Japán
Quest Outline Küldetés
Coin Shine Érme
Boss Alert Főellenség
Status Effects Állapot hatások
Poison Tint Méreg
Freeze Edge Fagy
Burn Aura Égés
Stun Pulse Kábítás
Stealth Fade Lopakodás
Shield Buff Pajzs
Shape Alakzat
Shape Builder Alakzatépítő
Shape Builder Regions Alakzatépítő területei
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -722,6 +722,13 @@
Quest Outline Quest
Coin Shine Koin
Boss Alert Boss
Status Effects Efek Status
Poison Tint Racun
Freeze Edge Beku
Burn Aura Bakar
Stun Pulse Pingsan
Stealth Fade Menghilang
Shield Buff Perisai
Outlines and Rules Garis luar dan garis
Hand-Drawn Gambar tangan
Gradient Finishes Finishing gradien
1 # Indonesian (id) catalog. Same format as zh-hant.tsv: context <TAB> source <TAB> translation
722
723
724
725
726
727
728
729
730
731
732
733
734
+7
View File
@@ -3193,6 +3193,13 @@ digits Malayalam Malayalam
Quest Outline Missione
Coin Shine Moneta
Boss Alert Boss
Status Effects Effetti di stato
Poison Tint Veleno
Freeze Edge Gelo
Burn Aura Bruciatura
Stun Pulse Stordimento
Stealth Fade Furtività
Shield Buff Scudo
Shape Forma
Shape Builder Generatore forme
Shape Builder Regions Aree del Generatore forme
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -807,6 +807,13 @@ digits Malayalam マラヤーラム数字
Quest Outline クエスト
Coin Shine コイン
Boss Alert ボス
Status Effects ステータス効果
Poison Tint 毒
Freeze Edge 凍結
Burn Aura 火傷
Stun Pulse 気絶
Stealth Fade ステルス
Shield Buff シールド
Outlines and Rules アウトラインと罫線
Hand-Drawn 手描き風
Gradient Finishes グラデーション仕上げ
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -670,6 +670,13 @@
Quest Outline ქვესტი
Coin Shine მონეტა
Boss Alert ბოსი
Status Effects სტატუსის ეფექტები
Poison Tint შხამი
Freeze Edge გაყინვა
Burn Aura დაწვა
Stun Pulse დაბნეულობა
Stealth Fade შენიღბვა
Shield Buff ფარი
Outlines and Rules კონტურები და ხაზები
Hand-Drawn ხელით დახატული
Gradient Finishes გრადიენტული ზედაპირები
Can't render this file because it is too large.
+7
View File
@@ -800,6 +800,13 @@ digits Malayalam 말라얄람어
Quest Outline 퀘스트
Coin Shine 코인
Boss Alert 보스
Status Effects 상태 효과
Poison Tint 독
Freeze Edge 빙결
Burn Aura 화상
Stun Pulse 기절
Stealth Fade 은신
Shield Buff 방패
Outlines and Rules 윤곽선과 괘선
Hand-Drawn 손그림
Gradient Finishes 그레이디언트 마감
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -736,6 +736,13 @@
Quest Outline Quest
Coin Shine Munt
Boss Alert Baas
Status Effects Statuseffecten
Poison Tint Gif
Freeze Edge Bevriezing
Burn Aura Brand
Stun Pulse Verdoving
Stealth Fade Sluipen
Shield Buff Schild
Outlines and Rules Omtrekken en lijnen
Hand-Drawn Handgetekend
Gradient Finishes Verloopafwerkingen
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -730,6 +730,13 @@
Quest Outline Zadanie
Coin Shine Moneta
Boss Alert Boss
Status Effects Efekty statusu
Poison Tint Trucizna
Freeze Edge Mróz
Burn Aura Oparzenie
Stun Pulse Ogłuszenie
Stealth Fade Ukrycie
Shield Buff Tarcza
Outlines and Rules Kontury i linie
Hand-Drawn Rysowane odręcznie
Gradient Finishes Wykończenia gradientowe
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -2648,6 +2648,13 @@ digits Malayalam Malaiala
Quest Outline Missão
Coin Shine Moeda
Boss Alert Chefe
Status Effects Efeitos de status
Poison Tint Veneno
Freeze Edge Congelamento
Burn Aura Queimadura
Stun Pulse Atordoamento
Stealth Fade Furtividade
Shield Buff Escudo
Shape Forma
Shape Builder Construtor de Formas
Shape Builder Regions Regiões do Construtor de Formas
Can't render this file because it contains an unexpected character in line 6 and column 47.
+7
View File
@@ -3188,6 +3188,13 @@ digits Malayalam Малаялам
Quest Outline Квест
Coin Shine Монета
Boss Alert Босс
Status Effects Эффекты статуса
Poison Tint Яд
Freeze Edge Заморозка
Burn Aura Ожог
Stun Pulse Оглушение
Stealth Fade Скрытность
Shield Buff Щит
Shape Фигура
Shape Builder Создание фигур
Shape Builder Regions Области создания фигур
Can't render this file because it is too large.
+7
View File
@@ -3080,6 +3080,13 @@ digits Malayalam Malayalam
Quest Outline Uppdrag
Coin Shine Mynt
Boss Alert Boss
Status Effects Statuseffekter
Poison Tint Gift
Freeze Edge Frost
Burn Aura Bränna
Stun Pulse Bedövning
Stealth Fade Smyga
Shield Buff Sköld
Shape Form
Shape Builder Formbyggare
Shape Builder Regions Formbyggarområden
Can't render this file because it contains an unexpected character in line 5 and column 25.
+7
View File
@@ -2984,6 +2984,13 @@ digits Malayalam Malayalam
Quest Outline Görev
Coin Shine Jeton
Boss Alert Boss
Status Effects Durum Etkileri
Poison Tint Zehir
Freeze Edge Donma
Burn Aura Yanma
Stun Pulse Sersemletme
Stealth Fade Gizlilik
Shield Buff Kalkan
Shape Şekil
Shape Builder Şekil Oluşturucu
Shape Builder Regions Şekil Oluşturucu Bölgeleri
Can't render this file because it contains an unexpected character in line 5 and column 25.
+7
View File
@@ -3185,6 +3185,13 @@ digits Malayalam Малаялам
Quest Outline Квест
Coin Shine Монета
Boss Alert Бос
Status Effects Ефекти статусу
Poison Tint Отрута
Freeze Edge Заморозка
Burn Aura Опік
Stun Pulse Оглушення
Stealth Fade Невидимість
Shield Buff Щит
Shape Фігура
Shape Builder Створення фігур
Shape Builder Regions Області створення фігур
Can't render this file because it contains an unexpected character in line 182 and column 5.
+7
View File
@@ -3517,6 +3517,13 @@ mark-style Japanese Kiểu Nhật
Quest Outline Nhiệm vụ
Coin Shine Xu
Boss Alert Trùm
Status Effects Hiệu ứng trạng thái
Poison Tint Độc
Freeze Edge Đóng băng
Burn Aura Bỏng
Stun Pulse Choáng
Stealth Fade Ẩn thân
Shield Buff Khiên
Shape Hình dạng
Shape Builder Tạo hình dạng
Shape Builder Regions Vùng Tạo hình dạng
Can't render this file because it contains an unexpected character in line 204 and column 5.
+7
View File
@@ -3023,6 +3023,13 @@ digits Malayalam 马拉雅拉姆数字
Quest Outline 任务
Coin Shine 金币
Boss Alert 首领
Status Effects 状态效果
Poison Tint 中毒
Freeze Edge 冰冻
Burn Aura 灼烧
Stun Pulse 眩晕
Stealth Fade 隐身
Shield Buff 护盾
Shape 形状
Shape Builder 形状生成器
Shape Builder Regions 形状生成器区域
Can't render this file because it contains an unexpected character in line 2 and column 73.
+7
View File
@@ -4135,6 +4135,13 @@ digits Malayalam 馬來亞拉姆數字
Quest Outline 任務
Coin Shine 金幣
Boss Alert 首領
Status Effects 狀態效果
Poison Tint 中毒
Freeze Edge 冰凍
Burn Aura 灼燒
Stun Pulse 暈眩
Stealth Fade 隱身
Shield Buff 護盾
Shape 形狀
Shape Builder 形狀建立
Shape Builder Regions 形狀建立區域
Can't render this file because it contains an unexpected character in line 6 and column 47.
+8 -6
View File
@@ -1,6 +1,6 @@
# Gaps
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-11-10 · **Change:** minor (G5: built-in Inventory Icons symbol library; estimate 8–18 → 7–17 h; previously minor: G9: `.ai` save names a variable font instance's design-space setting, #6388; previously minor: G5: built-in Game Trails brush library; estimate 9–19 → 8–18 h; previously minor: Edit › Edit Custom Dictionary…: its dialog adds, deletes and changes the custom dictionary's words, #4936; previously minor: docs tidy-up, no content change: stray notes at the top moved into the revision table; scores and estimates unchanged; previously minor: G5: built-in Game HUD graphic style library; estimate 10–20 → 9–19 h; previously minor: G5: built-in Map Markers symbol library; estimate 11–21 → 10–20 h; previously minor: right-click on type: Spelling › Auto Spell Check, with its check mark, #4936; previously minor: right-click on a word Auto Spell Check underlined: its suggestions, Ignore All and Add to Dictionary, #4936; previously minor: G2: Effect Gallery thumbnails and in-dialog preview; estimate 1–2 h → 0; Auto Spell Check: `edit.autoSpellCheck` underlines the unknown words, #4936; previously minor: PDF editable import preserves authored ActualText once, including empty/nested spans and authored ordering (#6165); cross-line/style layout remains approximate; scores and estimates unchanged; PDF marked-text export (#6309): compatible glyphs stay on one layout line with per-glyph offsets; scores and estimates unchanged; G5: built-in UI Frames symbol library with default 9-slice; estimate 11–21 h; previously minor: G5: dynamic symbol part on-canvas takes opacity, blend, gradient and pattern; docs Overlap/auto-corners sync; estimate 12–22 h; previously minor: interim macOS cursor delivery, #2292; native validation pending; scores and estimates unchanged; previously minor: Control bar › Snapping includes the existing Snap to Glyph and Alignment Guides toggles (#6164); scores and estimates unchanged; previously minor: G5 docs: Art brush Overlap, Pattern brush auto corners and Global Edit Shift-click leave-out moved from Missing to Done (code already shipped); previously minor: custom dictionary and Ignore All: `text.spelling.addWord`, `removeWord`, `changeWord`, `dictionary` and `ignoreAll`, #4936; previously minor: EPS import: embedded fonts (composite, Type 42, CID-keyed, Type 1, CFF FontSet) draw their glyphs; spell check engine: `text.spelling.check` and `text.spelling.suggest` on craft-proof, #4936; previously minor: floating tab groups collapse into the side icon rail and opened rail panels fold back into it, #5925 in part; G9: EPS gradients drawn as abutting strips import as one gradient, without seams; Tools stays beside the canvas with left-side panels; new gradients follow document color mode; Selection QoL: marquee modes and visible feedback, #5313; #3380 deletion-only review follow-up: independent survivors keep gradient placement, owned subpaths avoid discarded copies, and contracts/status/evidence are clarified; endpoint highlighting remains open; scores and estimates unchanged; Indian-language hyphenation review and license allowlist, #4947; opening a slow file shows a progress window, part of #5930; Hindi catalog and contributor loanword preferences; agent wording pass complete; wider native proofreading welcome; an image zoomed in on is separated, colorized or proofed only where it shows (#4155); scores and estimates unchanged; a document's first frame renders on the render worker, so opening a heavy file no longer freezes the window; scores and estimates unchanged; large images in CMYK documents are shrunk before they are separated into ink planes (#4155); scores and estimates unchanged; `.ai` paths with a Calligraphic brush open brushed, with the 6D Art Pen's channels, and Windows reads the pen's tilt and barrel rotation, #372; scores and estimates unchanged; Compound Shapes add-on, beyond Illustrator; scores and estimates unchanged; Contour add-on, beyond Illustrator; scores and estimates unchanged; a slow first frame is waited for instead of restarting without the graphics adapter, and the menu bar no longer waits for the installed fonts' scan; scores and estimates unchanged) · **Target:** Adobe Illustrator 2026 (30.x)
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-11-10 · **Change:** minor (G5: built-in Status Effects graphic style library; estimate 7–17 → 6–16 h; MCP docs catch-up for UI Frames and Map Markers; previously minor: G5: built-in Inventory Icons symbol library; estimate 8–18 → 7–17 h; previously minor: G9: `.ai` save names a variable font instance's design-space setting, #6388; previously minor: G5: built-in Game Trails brush library; estimate 9–19 → 8–18 h; previously minor: Edit › Edit Custom Dictionary…: its dialog adds, deletes and changes the custom dictionary's words, #4936; previously minor: docs tidy-up, no content change: stray notes at the top moved into the revision table; scores and estimates unchanged; previously minor: G5: built-in Game HUD graphic style library; estimate 10–20 → 9–19 h; previously minor: G5: built-in Map Markers symbol library; estimate 11–21 → 10–20 h; previously minor: right-click on type: Spelling › Auto Spell Check, with its check mark, #4936; previously minor: right-click on a word Auto Spell Check underlined: its suggestions, Ignore All and Add to Dictionary, #4936; previously minor: G2: Effect Gallery thumbnails and in-dialog preview; estimate 1–2 h → 0; Auto Spell Check: `edit.autoSpellCheck` underlines the unknown words, #4936; previously minor: PDF editable import preserves authored ActualText once, including empty/nested spans and authored ordering (#6165); cross-line/style layout remains approximate; scores and estimates unchanged; PDF marked-text export (#6309): compatible glyphs stay on one layout line with per-glyph offsets; scores and estimates unchanged; G5: built-in UI Frames symbol library with default 9-slice; estimate 11–21 h; previously minor: G5: dynamic symbol part on-canvas takes opacity, blend, gradient and pattern; docs Overlap/auto-corners sync; estimate 12–22 h; previously minor: interim macOS cursor delivery, #2292; native validation pending; scores and estimates unchanged; previously minor: Control bar › Snapping includes the existing Snap to Glyph and Alignment Guides toggles (#6164); scores and estimates unchanged; previously minor: G5 docs: Art brush Overlap, Pattern brush auto corners and Global Edit Shift-click leave-out moved from Missing to Done (code already shipped); previously minor: custom dictionary and Ignore All: `text.spelling.addWord`, `removeWord`, `changeWord`, `dictionary` and `ignoreAll`, #4936; previously minor: EPS import: embedded fonts (composite, Type 42, CID-keyed, Type 1, CFF FontSet) draw their glyphs; spell check engine: `text.spelling.check` and `text.spelling.suggest` on craft-proof, #4936; previously minor: floating tab groups collapse into the side icon rail and opened rail panels fold back into it, #5925 in part; G9: EPS gradients drawn as abutting strips import as one gradient, without seams; Tools stays beside the canvas with left-side panels; new gradients follow document color mode; Selection QoL: marquee modes and visible feedback, #5313; #3380 deletion-only review follow-up: independent survivors keep gradient placement, owned subpaths avoid discarded copies, and contracts/status/evidence are clarified; endpoint highlighting remains open; scores and estimates unchanged; Indian-language hyphenation review and license allowlist, #4947; opening a slow file shows a progress window, part of #5930; Hindi catalog and contributor loanword preferences; agent wording pass complete; wider native proofreading welcome; an image zoomed in on is separated, colorized or proofed only where it shows (#4155); scores and estimates unchanged; a document's first frame renders on the render worker, so opening a heavy file no longer freezes the window; scores and estimates unchanged; large images in CMYK documents are shrunk before they are separated into ink planes (#4155); scores and estimates unchanged; `.ai` paths with a Calligraphic brush open brushed, with the 6D Art Pen's channels, and Windows reads the pen's tilt and barrel rotation, #372; scores and estimates unchanged; Compound Shapes add-on, beyond Illustrator; scores and estimates unchanged; Contour add-on, beyond Illustrator; scores and estimates unchanged; a slow first frame is waited for instead of restarting without the graphics adapter, and the menu bar no longer waits for the installed fonts' scan; scores and estimates unchanged) · **Target:** Adobe Illustrator 2026 (30.x)
## Feature submission evidence
@@ -89,7 +89,7 @@ stage ([ROADMAP.md](../ROADMAP.md)).
| 8 | [G2 Photoshop-style raster effects and the Effect Gallery](#g2-photoshop-style-raster-effects-and-the-effect-gallery) | 0 | no | [effects-parity.md](effects-parity.md) |
| 9 | [G13 Illustrator 2026 (30.x) additions](#g13-illustrator-2026-30x-additions) | 13–23 | no | [target-app-parity.md](target-app-parity.md) |
| 10 | [G14 Pen hardware beyond Windows pressure](#g14-pen-hardware-beyond-windows-pressure) | 4–10 | Wayland pressure | [hardware-parity.md](hardware-parity.md) |
| 11 | [G5 Brushes, symbols and libraries](#g5-brushes-symbols-and-libraries) | 9–19 | no | [target-app-parity.md](target-app-parity.md) |
| 11 | [G5 Brushes, symbols and libraries](#g5-brushes-symbols-and-libraries) | 7–17 | no | [target-app-parity.md](target-app-parity.md) |
| 12 | [G3 3D and Materials](#g3-3d-and-materials) | 25–45 | no | [effects-parity.md](effects-parity.md) |
| 13 | [G7 Views and windows](#g7-views-and-windows) | 15–25 | no | [ui-parity.md](ui-parity.md) |
| 14 | [G6 Automation and scripting](#g6-automation-and-scripting) | 4–8 | no | [target-app-parity.md](target-app-parity.md) |
@@ -648,14 +648,15 @@ macOS cursor delivery (#2292) is narrowed to a native host adapter using the exi
Direct Selection of a path, compound path or type inside a dynamic instance also takes opacity and blend
(`transparency.set`) and a gradient or pattern fill or stroke (`paint.setFill` / `paint.setStroke`,
Eyedropper), for that instance only;
graphic style libraries (Window › Graphic Style Libraries; seven original libraries generated in code, including
Game HUD with Health Fill, Mana Glow, Damage Flash, Quest Outline, Coin Shine and Boss Alert; User Defined; Other
graphic style libraries (Window › Graphic Style Libraries; eight original libraries generated in code, including
Game HUD with Health Fill, Mana Glow, Damage Flash, Quest Outline, Coin Shine and Boss Alert, and Status Effects
with Poison Tint, Freeze Edge, Burn Aura, Stun Pulse, Stealth Fade and Shield Buff; User Defined; Other
Library…; `graphicStyle.libraries`, `graphicStyle.addFromLibrary`).
- **Missing:** more built-in brush libraries beyond the five shipped (and further graphic-style libraries beyond the seven shipped, and further symbol libraries beyond Basic
- **Missing:** more built-in brush libraries beyond the five shipped (and further graphic-style libraries beyond the eight shipped, and further symbol libraries beyond Basic
Shapes, UI Frames, Map Markers and Inventory Icons; original, generated in code, never Adobe's); dynamic symbols' `.ai` read and write;
Global Edit of groups holding type or images, rotated copies as matches and highlighting matches before the
start; 9-slice guides outside the symbol's art (a dragged guide stops at the art's edge).
- **Estimate:** 7–17 h.
- **Estimate:** 6–16 h.
## G3 3D and Materials
@@ -854,6 +855,7 @@ trap, and the defaults (0.25 pt, 100%, 40%) are VectorCraft's own, the pages giv
| Date | Change | Summary |
|---|---|---|
| 2026-11-11 | minor | G5: built-in Status Effects graphic style library (Poison Tint, Freeze Edge, Burn Aura, Stun Pulse, Stealth Fade, Shield Buff); Missing trimmed; estimate 7–17 → 6–16 h; MCP docs list UI Frames and Map Markers under Symbol libraries. |
| 2026-11-11 | minor | G5: built-in Inventory Icons symbol library (Sword, Shield, Potion, Key, Gem; no default 9-slice); Missing trimmed; estimate 8–18 → 7–17 h. |
| 2026-11-10 | minor | G4 type: Edit › Edit Custom Dictionary… adds, deletes and changes the custom dictionary's words, #4936; the Check Spelling dialog remains; scores and estimates unchanged. |
| 2026-11-10 | minor | Tidy-up, no content change: in Feature submission evidence, a stray table row and two "PR #NNNN revision" notes move into Feature revisions, the three "Feature evidence last updated" lines become one, the duplicate Flyout update note goes (its row stays), and eight reconciliation rows become two. Scores and estimates unchanged. |
+1 -1
View File
@@ -3017,7 +3017,7 @@ as a value left out.
## Graphic style libraries
Graphic style libraries are read-only sets of graphic styles generated in code (Shadows and Glows, Outlines and
Rules, Hand-Drawn, Gradient Finishes, Shape Effects, Blends and Transparency, Game HUD). `graphicStyle.libraries` lists them
Rules, Hand-Drawn, Gradient Finishes, Shape Effects, Blends and Transparency, Game HUD, Status Effects). `graphicStyle.libraries` lists them
(`id`, `name`, `category`: `builtIn`, `user` or `loaded`, `count`) and `graphicStyle.library {library}` returns one's
styles in the `graphicStyle.list` shape (`library` is an id or a name). `graphicStyle.addFromLibrary {library, name? |
names?}` copies styles into the document's Graphic Styles as one undo step (no names: the whole library); styles the
+2 -1
View File
@@ -1,6 +1,6 @@
# Roadmap: milestones and what's next
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-11-10 · **Change:** minor (M10/G5: Inventory Icons built-in symbol library; previously minor: Edit › Edit Custom Dictionary…: its dialog adds, deletes and changes the custom dictionary's words, #4936; previously minor: M10/G5: Game HUD graphic style library; previously minor: resizable icon-strip flyouts and bottom-aligned panel footers, #5713; previously minor: M10/G5: Map Markers built-in symbol library; previously minor: right-click on type: Spelling › Auto Spell Check, with its check mark, #4936; previously minor: right-click on a word Auto Spell Check underlined: its suggestions, Ignore All and Add to Dictionary, #4936; previously minor: G2: Effect Gallery thumbnails and in-dialog preview are in; Auto Spell Check: `edit.autoSpellCheck` underlines the unknown words, #4936; previously minor: PDF editable import preserves authored ActualText once, including empty/nested spans and authored ordering (#6165); cross-line/style layout remains approximate; scores and estimates unchanged; PDF marked-text export (#6309): compatible glyphs stay on one layout line with per-glyph offsets; scores and estimates unchanged; interim macOS cursor delivery, #2292; native validation pending; scores and estimates unchanged; Control bar › Snapping includes the existing Snap to Glyph and Alignment Guides toggles (#6164); scores and estimates unchanged; custom dictionary and Ignore All: `text.spelling.addWord`, `removeWord`, `changeWord`, `dictionary` and `ignoreAll`, #4936; previously minor: EPS import: embedded fonts (composite, Type 42, CID-keyed, Type 1, CFF FontSet) draw their glyphs; spell check engine: `text.spelling.check` and `text.spelling.suggest` on craft-proof, #4936; previously minor: floating tab groups collapse into the side icon rail and opened rail panels fold back into it, #5925 in part; M4/M7: `.ai`/EPS type keeps its tab stops, and right-aligned lines with tabs lay out as the file's page, #6147; M4/M7: `.ai`/EPS type from the text document lays its lines out closer to the file's page, within limits, #6137; numeric fields step on wheel hover without taking keyboard focus, #5949; Character Styles panel: a double-click on a style's row opens its Character Style Options; the dialog keeps a fixed width and scrolls its sections, so its buttons stay on screen; Selection QoL: marquee modes and visible feedback, #5313; SVG CSS classes survive export and repeated import in all four styling modes (#2480); current-main integration retains event attributes and scripts; #3380 deletion-only review follow-up: independent survivors keep gradient placement, owned subpaths avoid discarded copies, and contracts/status/evidence are clarified; endpoint highlighting remains open; scores and estimates unchanged; Indian-language hyphenation review and license allowlist, #4947; Hindi catalog and contributor loanword preferences; full wording review in progress; Effect dialogs: a colour swatch beside a hex colour opens the Color Picker, #5365; shape tools move the selection from its centre point and turn it from the zone outside a box corner, #5477; scores and estimates unchanged) · **Target:** Adobe Illustrator 2026 (30.x)
> **Last reviewed:** 2026-10-10 · **Last updated:** 2026-11-10 · **Change:** minor (M10/G5: Status Effects graphic style library; MCP docs catch-up for symbol libraries; previously minor: M10/G5: Inventory Icons built-in symbol library; previously minor: Edit › Edit Custom Dictionary…: its dialog adds, deletes and changes the custom dictionary's words, #4936; previously minor: M10/G5: Game HUD graphic style library; previously minor: resizable icon-strip flyouts and bottom-aligned panel footers, #5713; previously minor: M10/G5: Map Markers built-in symbol library; previously minor: right-click on type: Spelling › Auto Spell Check, with its check mark, #4936; previously minor: right-click on a word Auto Spell Check underlined: its suggestions, Ignore All and Add to Dictionary, #4936; previously minor: G2: Effect Gallery thumbnails and in-dialog preview are in; Auto Spell Check: `edit.autoSpellCheck` underlines the unknown words, #4936; previously minor: PDF editable import preserves authored ActualText once, including empty/nested spans and authored ordering (#6165); cross-line/style layout remains approximate; scores and estimates unchanged; PDF marked-text export (#6309): compatible glyphs stay on one layout line with per-glyph offsets; scores and estimates unchanged; interim macOS cursor delivery, #2292; native validation pending; scores and estimates unchanged; Control bar › Snapping includes the existing Snap to Glyph and Alignment Guides toggles (#6164); scores and estimates unchanged; custom dictionary and Ignore All: `text.spelling.addWord`, `removeWord`, `changeWord`, `dictionary` and `ignoreAll`, #4936; previously minor: EPS import: embedded fonts (composite, Type 42, CID-keyed, Type 1, CFF FontSet) draw their glyphs; spell check engine: `text.spelling.check` and `text.spelling.suggest` on craft-proof, #4936; previously minor: floating tab groups collapse into the side icon rail and opened rail panels fold back into it, #5925 in part; M4/M7: `.ai`/EPS type keeps its tab stops, and right-aligned lines with tabs lay out as the file's page, #6147; M4/M7: `.ai`/EPS type from the text document lays its lines out closer to the file's page, within limits, #6137; numeric fields step on wheel hover without taking keyboard focus, #5949; Character Styles panel: a double-click on a style's row opens its Character Style Options; the dialog keeps a fixed width and scrolls its sections, so its buttons stay on screen; Selection QoL: marquee modes and visible feedback, #5313; SVG CSS classes survive export and repeated import in all four styling modes (#2480); current-main integration retains event attributes and scripts; #3380 deletion-only review follow-up: independent survivors keep gradient placement, owned subpaths avoid discarded copies, and contracts/status/evidence are clarified; endpoint highlighting remains open; scores and estimates unchanged; Indian-language hyphenation review and license allowlist, #4947; Hindi catalog and contributor loanword preferences; full wording review in progress; Effect dialogs: a colour swatch beside a hex colour opens the Color Picker, #5365; shape tools move the selection from its centre point and turn it from the zone outside a box corner, #5477; scores and estimates unchanged) · **Target:** Adobe Illustrator 2026 (30.x)
>
> Vector Halftone preview update (2026-11-10): temporary dot selection marks are hidden, and the bounding box stays available (#6369).
>
@@ -189,6 +189,7 @@ separate. Scores and hours unchanged. [Behavior and command details](development
| Date | Change | Summary |
|---|---|---|
| 2026-11-10 | minor | M10/G5: Status Effects built-in graphic style library; MCP docs catch-up for UI Frames and Map Markers; estimates unchanged |
| 2026-11-10 | minor | M10/G5: Inventory Icons built-in symbol library (Sword, Shield, Potion, Key, Gem); estimates unchanged |
| 2026-11-10 | minor | M7: the Edit Custom Dictionary dialog (#4936); the Check Spelling dialog remains; scores and estimates unchanged. |
| 2026-11-10 | minor | M10/G5: Game HUD built-in graphic style library; estimates unchanged |
File diff suppressed because one or more lines are too long