Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 16 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

**A deliberately complicated presentation that AI struggles to make natively.**

Gloss is an open, 20-slide challenge for presentation-generating AI. The goal is
not to make screenshots that happen to look like slides. The goal is to make a
real presentation: editable text, native charts and tables, working masters and
layouts, live fields, connected shapes, correct reading order, and intentional
grouping all the way down.
Gloss is the presentation itself: an open, deliberately complicated 20-slide
challenge for presentation-generating AI. The goal is not to make screenshots
that happen to look like slides. The goal is to make a real presentation:
editable text, native charts and tables, working masters and layouts, live
fields, connected shapes, correct reading order, and intentional grouping all
the way down.

The deck is the challenge. Gloss also includes a small checker that makes native
object changes easy to see, plus deeper measurement tools for people developing
generators and evaluation systems.
Gloss is not primarily a measurement tool. The deck is the challenge. A small
checker and deeper measurement tools are bundled with it to make native quality
easy to inspect, compare, and improve.

The name expands to **Generative Layout & Object Structure Standard**: a reminder
that layout is visible, while object structure is what keeps a presentation real.
Expand Down Expand Up @@ -265,13 +266,14 @@ possible today. Google Slides and Keynote coverage should use the same public,
artifact-first philosophy as their reliable inspection surfaces mature. Help us
define those adapters in [Issues](https://github.com/aronchick/gloss/issues).

## Measurement is the support layer
## The tools make measurement easy

The simple check answers the first question: *what native objects changed?* The
bundled advanced grader can also inspect rendered pixels, typography, geometry,
charts, tables, layouts, masters, text semantics, relationships, and package
safety. Those tools exist to make this hard presentation easier to understand and
improve; they are not the product’s identity.
The presentation is Gloss. The tools are its measuring instruments. The simple
check answers the first question: *what native objects changed?* The bundled
advanced grader can also inspect rendered pixels, typography, geometry, charts,
tables, layouts, masters, text semantics, relationships, and package safety.
They make the hard presentation easier to understand and improve; they are not
the product’s identity.

The current candidate suite contains 280 schema-valid checks and generated
operator fixtures. That evidence proves configured checker behavior, not an
Expand Down
72 changes: 42 additions & 30 deletions gloss-v1/benchmark/prompts/DESIGNER_BRIEF.md

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-12.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:8c8fbe1a7ca1f5f4af7eaab91884cb28165531b11d41246e58caa9fed6659dbe",
"paraphrase-a": "sha256:bff9a649c00839e7e0e8b498af66ac6e24a0078e95e3f8f070b1a3d1fee84ebb",
"paraphrase-b": "sha256:b74bfd39b122a9c78e4532b36a9e267c08edfb70bd66a10849b7adb567829c80"
"canonical": "sha256:f3f58d4dcefac89e165b5280f1a77628acd801f7d2b7b8d0dece0e2fec81b336",
"paraphrase-a": "sha256:de58051338911a84bdcde6df2f1846ed914fddab7b66beefebb14c9c6fadbeb4",
"paraphrase-b": "sha256:b8a864c1c3665f5826ed381b4171dd7d63e6900ced5dee0ee59daebf0a568538"
},
"record_id": "gloss-prompt-validation-slide-12",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `8c8fbe1a7ca1f5f4af7eaab91884cb28165531b11d41246e58caa9fed6659dbe`
- Paraphrase A SHA-256: `bff9a649c00839e7e0e8b498af66ac6e24a0078e95e3f8f070b1a3d1fee84ebb`
- Paraphrase B SHA-256: `b74bfd39b122a9c78e4532b36a9e267c08edfb70bd66a10849b7adb567829c80`
- Canonical SHA-256: `f3f58d4dcefac89e165b5280f1a77628acd801f7d2b7b8d0dece0e2fec81b336`
- Paraphrase A SHA-256: `de58051338911a84bdcde6df2f1846ed914fddab7b66beefebb14c9c6fadbeb4`
- Paraphrase B SHA-256: `b8a864c1c3665f5826ed381b4171dd7d63e6900ced5dee0ee59daebf0a568538`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-13.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:10a757d7989017806ebeb0c38c420982354a889e47af266e048c37c9fb20399d",
"paraphrase-a": "sha256:65a41f8cb4a48fbf437df1c8ba779e898ecc2fcac6365b356de9f269b63ef80f",
"paraphrase-b": "sha256:0b816533f1d9ca8a0b37f69b4e4956f4d8a9b28a6aa9120962bd3543f79fb989"
"canonical": "sha256:382821283a568690e30b6ffa51916a7ad61229593e7f58391488519629991278",
"paraphrase-a": "sha256:e09abd58869e5fa99b2d2c2d55f31a3b32ac1703887e47993b3161b5855c8eb9",
"paraphrase-b": "sha256:44bcde5d8ddd81749c543166dbc23280ca55985ed57cebda36c2728fc0934642"
},
"record_id": "gloss-prompt-validation-slide-13",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `10a757d7989017806ebeb0c38c420982354a889e47af266e048c37c9fb20399d`
- Paraphrase A SHA-256: `65a41f8cb4a48fbf437df1c8ba779e898ecc2fcac6365b356de9f269b63ef80f`
- Paraphrase B SHA-256: `0b816533f1d9ca8a0b37f69b4e4956f4d8a9b28a6aa9120962bd3543f79fb989`
- Canonical SHA-256: `382821283a568690e30b6ffa51916a7ad61229593e7f58391488519629991278`
- Paraphrase A SHA-256: `e09abd58869e5fa99b2d2c2d55f31a3b32ac1703887e47993b3161b5855c8eb9`
- Paraphrase B SHA-256: `44bcde5d8ddd81749c543166dbc23280ca55985ed57cebda36c2728fc0934642`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-14.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:539c484fcf6c333a2d94ac808415702f1161d394f290b9b18dafff4a6b5616e5",
"paraphrase-a": "sha256:9caea8e79d614565d25375b5ccb2533ff61dc4612f9e2ced9ab025b6b879f111",
"paraphrase-b": "sha256:7c1052c58bae44fe3453344d622d47565b37f1e7aed29ef7c02c1954f3dc8f1c"
"canonical": "sha256:30d72528b5c55c9875dbc27f083dd96c100227895659f492fb662bb9b0e03c16",
"paraphrase-a": "sha256:d2c5f029585936e95f1918bef1d897e8236a3f61addf84634ae4cd7138abb158",
"paraphrase-b": "sha256:bb47493f69bc94239b10aa3234ac33082075b7ed9017da37a4f574bcba16434c"
},
"record_id": "gloss-prompt-validation-slide-14",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `539c484fcf6c333a2d94ac808415702f1161d394f290b9b18dafff4a6b5616e5`
- Paraphrase A SHA-256: `9caea8e79d614565d25375b5ccb2533ff61dc4612f9e2ced9ab025b6b879f111`
- Paraphrase B SHA-256: `7c1052c58bae44fe3453344d622d47565b37f1e7aed29ef7c02c1954f3dc8f1c`
- Canonical SHA-256: `30d72528b5c55c9875dbc27f083dd96c100227895659f492fb662bb9b0e03c16`
- Paraphrase A SHA-256: `d2c5f029585936e95f1918bef1d897e8236a3f61addf84634ae4cd7138abb158`
- Paraphrase B SHA-256: `bb47493f69bc94239b10aa3234ac33082075b7ed9017da37a4f574bcba16434c`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-15.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:e114750708bb759b186732535c60e893d34eb3dac4b420930218e1536292686b",
"paraphrase-a": "sha256:272a2766cdd5fad1d205579eac1f36c099f71481e6774e62bf09ae0f7a74f8b5",
"paraphrase-b": "sha256:5f03620af74ab850bf6da5eee47980e3f11a1680067867a1bd82c4c54fb03926"
"canonical": "sha256:46bb8770a220a60a0bb4b9a8a1262463ef635b06680fe4c507b87d7e1ab3631f",
"paraphrase-a": "sha256:2b16e02e855649da83cff3521ffc465672cd10871fcc03d43400946b3a8934dc",
"paraphrase-b": "sha256:66c857fd4c81366f25ac3f88d50755b48fe17a428b3c1a6d851091431b5dc3ac"
},
"record_id": "gloss-prompt-validation-slide-15",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `e114750708bb759b186732535c60e893d34eb3dac4b420930218e1536292686b`
- Paraphrase A SHA-256: `272a2766cdd5fad1d205579eac1f36c099f71481e6774e62bf09ae0f7a74f8b5`
- Paraphrase B SHA-256: `5f03620af74ab850bf6da5eee47980e3f11a1680067867a1bd82c4c54fb03926`
- Canonical SHA-256: `46bb8770a220a60a0bb4b9a8a1262463ef635b06680fe4c507b87d7e1ab3631f`
- Paraphrase A SHA-256: `2b16e02e855649da83cff3521ffc465672cd10871fcc03d43400946b3a8934dc`
- Paraphrase B SHA-256: `66c857fd4c81366f25ac3f88d50755b48fe17a428b3c1a6d851091431b5dc3ac`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-16.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:fd9ca84995214fab8981ee570120b943184312c1a4d217a011d1e2966b425193",
"paraphrase-a": "sha256:dc98ef41cd217fe83b82e9083d7a5da94aa58600f4cb81828b98e30cbe8a3d0d",
"paraphrase-b": "sha256:69723c2a7ac42754147b2ffbebb2b2f20e456d9bd0f2b219ba1ddca309fb6f64"
"canonical": "sha256:55ca0d63d13be5ca86db79eaafb04e56ccc82994a4018dc2b1bf250ab44d5f4c",
"paraphrase-a": "sha256:66b91d460391074a63c6dc3cde2bea03b0cb94f7ab23a669eabcfc537f5ef96b",
"paraphrase-b": "sha256:3fd3179603711c86e774a274efa7d5920a90922612399cf8e8e63ab1294d0990"
},
"record_id": "gloss-prompt-validation-slide-16",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `fd9ca84995214fab8981ee570120b943184312c1a4d217a011d1e2966b425193`
- Paraphrase A SHA-256: `dc98ef41cd217fe83b82e9083d7a5da94aa58600f4cb81828b98e30cbe8a3d0d`
- Paraphrase B SHA-256: `69723c2a7ac42754147b2ffbebb2b2f20e456d9bd0f2b219ba1ddca309fb6f64`
- Canonical SHA-256: `55ca0d63d13be5ca86db79eaafb04e56ccc82994a4018dc2b1bf250ab44d5f4c`
- Paraphrase A SHA-256: `66b91d460391074a63c6dc3cde2bea03b0cb94f7ab23a669eabcfc537f5ef96b`
- Paraphrase B SHA-256: `3fd3179603711c86e774a274efa7d5920a90922612399cf8e8e63ab1294d0990`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-17.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:d70b572f05883784463f07e5a7d6fcdba76b222f8ce0f8b102df2eea6f2cd659",
"paraphrase-a": "sha256:4343198e7ec173c9141864a9c076dd82b7e04ebefc9a12a219a5d25786000420",
"paraphrase-b": "sha256:0e10d5bbb3d1ae9e71a01d121b5b892671b6419c753a8c9a24bc93e764d0ec65"
"canonical": "sha256:4616dafa273ff38e505a39387f0fa32618e549593d6209e5a8d6571c4a30f63e",
"paraphrase-a": "sha256:bac6c6544f907f53ec1a678cf3272a7969ea5c831684d2ab17f7e1d693a5b506",
"paraphrase-b": "sha256:c06f26f233b0eafc00a2f6e56d12fcfae64686705d6f696e249f3c5d468b475a"
},
"record_id": "gloss-prompt-validation-slide-17",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `d70b572f05883784463f07e5a7d6fcdba76b222f8ce0f8b102df2eea6f2cd659`
- Paraphrase A SHA-256: `4343198e7ec173c9141864a9c076dd82b7e04ebefc9a12a219a5d25786000420`
- Paraphrase B SHA-256: `0e10d5bbb3d1ae9e71a01d121b5b892671b6419c753a8c9a24bc93e764d0ec65`
- Canonical SHA-256: `4616dafa273ff38e505a39387f0fa32618e549593d6209e5a8d6571c4a30f63e`
- Paraphrase A SHA-256: `bac6c6544f907f53ec1a678cf3272a7969ea5c831684d2ab17f7e1d693a5b506`
- Paraphrase B SHA-256: `c06f26f233b0eafc00a2f6e56d12fcfae64686705d6f696e249f3c5d468b475a`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-18.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:3a466f16ec13919f6009bb9c938b96b7b18b4950127856d38669e4a9584f5d95",
"paraphrase-a": "sha256:e32d92ba37bcfc1c59820f983b5638272815be17133566981d4734b03c2dd9dc",
"paraphrase-b": "sha256:a36ae71f60bca2fc0189fb4a2f4f4e6c80b147402dfbb10252899ae51e573e78"
"canonical": "sha256:5f55790f0cc830703216a5031ea6cc5040efbbb45b9207c7e83ed67f620edf60",
"paraphrase-a": "sha256:8964ca72cae3e9e3b44c2f17873bca9b548b4240fe1747ed2a040ffba5f3d4e7",
"paraphrase-b": "sha256:0b228fc57017d0de56a93620e797f891ddbd722812cc07203b36b5c68517246e"
},
"record_id": "gloss-prompt-validation-slide-18",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `3a466f16ec13919f6009bb9c938b96b7b18b4950127856d38669e4a9584f5d95`
- Paraphrase A SHA-256: `e32d92ba37bcfc1c59820f983b5638272815be17133566981d4734b03c2dd9dc`
- Paraphrase B SHA-256: `a36ae71f60bca2fc0189fb4a2f4f4e6c80b147402dfbb10252899ae51e573e78`
- Canonical SHA-256: `5f55790f0cc830703216a5031ea6cc5040efbbb45b9207c7e83ed67f620edf60`
- Paraphrase A SHA-256: `8964ca72cae3e9e3b44c2f17873bca9b548b4240fe1747ed2a040ffba5f3d4e7`
- Paraphrase B SHA-256: `0b228fc57017d0de56a93620e797f891ddbd722812cc07203b36b5c68517246e`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-19.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:ed99ade6772a7ff66bc99437abda1951ccf8ee0763cd9d6013fe80b783b46c9d",
"paraphrase-a": "sha256:4996474870537b4f35c6eaea0daacf8ca73f4fb78091efbdcbad4d7e68388efe",
"paraphrase-b": "sha256:558738b5c07952357c511f7029538086ac5463d1a084d1807aa57d63443f56f4"
"canonical": "sha256:418adf962d94466a9c9a0e2257ef6f17b83fee6964b017dd3d9ae757b39a6fce",
"paraphrase-a": "sha256:4ae70b8280cdb45e511f8def414269d24b0c911b845153999737fb7392ee8d64",
"paraphrase-b": "sha256:60cc142c319c146a2272d3d5bafe40078e40ba7b7833e115495e50baac89fdac"
},
"record_id": "gloss-prompt-validation-slide-19",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `ed99ade6772a7ff66bc99437abda1951ccf8ee0763cd9d6013fe80b783b46c9d`
- Paraphrase A SHA-256: `4996474870537b4f35c6eaea0daacf8ca73f4fb78091efbdcbad4d7e68388efe`
- Paraphrase B SHA-256: `558738b5c07952357c511f7029538086ac5463d1a084d1807aa57d63443f56f4`
- Canonical SHA-256: `418adf962d94466a9c9a0e2257ef6f17b83fee6964b017dd3d9ae757b39a6fce`
- Paraphrase A SHA-256: `4ae70b8280cdb45e511f8def414269d24b0c911b845153999737fb7392ee8d64`
- Paraphrase B SHA-256: `60cc142c319c146a2272d3d5bafe40078e40ba7b7833e115495e50baac89fdac`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
12 changes: 6 additions & 6 deletions gloss-v1/benchmark/prompts/validation/slide-20.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
"authors": [],
"pairwise_similarity_diagnostics": [],
"prompt_hashes": {
"canonical": "sha256:ba8e51e1becddfd40e2f2a02c5161a1caa09481255fcb9ff586f6b32ff866245",
"paraphrase-a": "sha256:c00f3398a053de3f9ac2b9a34697a8cb4eebefaf90ee1e73bc878ba24cd58081",
"paraphrase-b": "sha256:e37739606bb0dd690de9ac19cd76c51d2a95f3310d46c2c4e1c4b18d00474ac4"
"canonical": "sha256:285a00376bd518bef4125df2166023099fe8bc3aefa7def2828ce7484897268e",
"paraphrase-a": "sha256:5762ef4e1caaaa84204c9e7b6bb0c505a1a7aea99bbe035b9683e5a8efc0e9ca",
"paraphrase-b": "sha256:621455b4003dd2da7207bfb1349ce1f94f772f8ff24ed30e70a88d6a21cea7c4"
},
"record_id": "gloss-prompt-validation-slide-20",
"round_id": null,
Expand All @@ -18,9 +18,9 @@

- Prompt contract status: complete
- Canonical/paraphrase hard-constraint parity: pass
- Canonical SHA-256: `ba8e51e1becddfd40e2f2a02c5161a1caa09481255fcb9ff586f6b32ff866245`
- Paraphrase A SHA-256: `c00f3398a053de3f9ac2b9a34697a8cb4eebefaf90ee1e73bc878ba24cd58081`
- Paraphrase B SHA-256: `e37739606bb0dd690de9ac19cd76c51d2a95f3310d46c2c4e1c4b18d00474ac4`
- Canonical SHA-256: `285a00376bd518bef4125df2166023099fe8bc3aefa7def2828ce7484897268e`
- Paraphrase A SHA-256: `5762ef4e1caaaa84204c9e7b6bb0c505a1a7aea99bbe035b9683e5a8efc0e9ca`
- Paraphrase B SHA-256: `621455b4003dd2da7207bfb1349ce1f94f772f8ff24ed30e70a88d6a21cea7c4`
- Independent-author convergence: not run
- Required blinded author count: 3
- Mandatory assertion pass status: pending for all 3 implementations
Expand Down
2 changes: 1 addition & 1 deletion gloss-v1/benchmark/prompts/variants/canonical/slide-12.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ The natural-language requirements below are the primary directive. Use the refer

---

## Slides 13-20 (Level 3) — Brief Specifications
## Slides 13-20 (Level 3) — Exact Specifications
7 changes: 4 additions & 3 deletions gloss-v1/benchmark/prompts/variants/canonical/slide-13.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ The natural-language requirements below are the primary directive. Use the refer

Combines: native chart (pie chart, 6 segments), native table (4×3), one approved image, Arabic text annotation, repeated layout elements, dense callout annotations.

## Explicit v1 constraints
## Exact v1 constraints

- Use the **Blank with Footer** layout and title the slide `Composite Stress` in Carlito 36pt Bold at (1.5cm, 0.5cm).
- Add one native pie chart at (1.5cm, 3cm), size 10cm × 8cm. Use six labeled values: `Structure 28`, `Text 22`, `Visual 18`, `Assets 14`, `Fields 10`, `Other 8`; show percentage labels and no legend.
- Add one native 4-row × 3-column table at (13cm, 3cm), size 9cm × 7cm. Header: `Check`, `Status`, `Weight`. Rows: `Schema | Pass | 3`, `Rendering | Pass | 2`, `Assets | Review | 1`.
- Insert `cityscape.png` at (23cm, 3cm), size 8cm × 6cm, cropping 15% from the left. Use only asset ID `cityscape` from the manifest.
- Add the Arabic annotation `الهيكل والمحتوى والعرض في اختبار واحد` in Noto Sans Arabic 14pt with native RTL direction.
- Add three dense rounded callouts labeled `NATIVE CHART`, `NATIVE TABLE`, and `APPROVED ASSET`; connect each to its target and keep all data labels visible.
- Add the Arabic annotation `الهيكل والمحتوى والعرض في اختبار واحد` at (12.5cm, 11cm), size 19cm × 1.3cm, in Noto Sans Arabic 14pt with native RTL direction and right alignment.
- Add three rounded callouts at y=12.5cm: `NATIVE CHART` at (2.5cm, 12.5cm), size 7cm × 1.8cm, teal; `NATIVE TABLE` at (13cm, 12.5cm), size 7cm × 1.8cm, coral; and `APPROVED ASSET` at (23.5cm, 12.5cm), size 7.5cm × 1.8cm, gold. Center each label in Liberation Sans 12pt Bold.
- Connect the chart, table, and image to their callouts with 1pt vertical lines at x=6cm from y=11cm to 12.5cm, x=16.5cm from y=10cm to 12.5cm, and x=27cm from y=9cm to 12.5cm. Keep all chart data labels visible.
Loading
Loading