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
1 change: 1 addition & 0 deletions .agents/knowledge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ of silently selecting whichever source makes implementation easier.
| Module ownership and dependency direction | [Architecture](../skills/adaengine-development/references/architecture.md) |
| Entity storage, queries, scheduling, scripting bridges | [ECS runtime](../skills/adaengine-development/references/ecs-runtime.md) |
| UI identity, event paths, editor packages and real-path testing | [UI and editor](../skills/adaengine-development/references/ui-editor.md) |
| Studio appearance, visual proposals, controls, icons, touch and visual QA | [Studio design rules](../../AGENTS.md#ada-studio-visual-design-rules), [Studio design skill](../skills/adaengine-studio-design/SKILL.md) |
| Swift isolation, ownership, style, API design | [Swift engineering](swift.md) |
| Platform constraints and required evidence | [Platforms](platforms.md) |
| Profiles, analysis, tests, and truthful results | [Validation](validation.md) |
Expand Down
50 changes: 50 additions & 0 deletions .agents/skills/adaengine-studio-design/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
name: adaengine-studio-design
description: Propose, implement, or review Ada Studio visual and interaction changes across desktop, web, and iOS using the Studio design rules, existing theme, and rendered evidence. Use for editor controls and screens, not game-authored art direction or non-visual engine work.
---

# Ada Studio Design

Read [Ada Studio Visual Design Rules](../../../AGENTS.md#ada-studio-visual-design-rules).
That section is the source of truth for control appearance, references, icons, touch, and verification.
Read the nearest platform instructions and only the relevant
[UI/editor reference](../adaengine-development/references/ui-editor.md).

## Establish the visual

Inspect the current screen and its shared controls before proposing a change. In shared AdaUI editor
screens, start with [Theme.swift](../../../Editor/Sources/AdaEditor/UI/Editor/Theme.swift),
`Theme.adaEditor`, and `theme.editorColors`; trace the current Material Symbols/font helper and
control styles in the owning source. Browser and mobile surfaces may have different theme owners.
Use only the font assets and text roles already used by Studio. Verify readability, glyph coverage,
wrapping, and scaling using those fonts; do not select a new font family or visual style.

Use [ui-ux-pro-max](../ui-ux-pro-max/SKILL.md) and its
[construction guidance](../ui-ux-pro-max/references/quick-reference.md) for layout,
control choice, states, validation, focus, accessibility, and responsive behavior.
The retained skill is Markdown guidance; there is no search or design-system generation step.
Reuse the current theme/component owners instead of generating a competing token system.
Inspect actual APIs and browser dependencies; do not apply SwiftUI or web-framework advice to AdaUI.

Before production UI edits, present a rendered mockup, annotated screenshot, or runnable preview.
Show the affected screen/control, important states, and touch adaptation when applicable. Identify
which reference informed the proposal and how it fits neighboring Studio UI. Reuse approved visuals
when applicable; handle new direction approval in the existing
[feature flow](../adaengine-feature-flow/SKILL.md), without adding a second approval process.

## Implement and inspect

Use shared semantic controls and theme roles. For missing states or styling, improve the reusable
control/theme layer when appropriate instead of patching only a single instance. Keep scope tied
to the requested screen; report an engine capability gap rather than inventing unsupported modifiers.
Apply [TDD](../adaengine-tdd/SKILL.md) to testable interaction behavior and the normal contribution
checks. A screenshot complements behavioral tests; neither replaces the other.

Review the rendered screen with the root design checklist and the relevant upstream
[professional rules](../ui-ux-pro-max/references/pro-rules.md). Exercise pointer/keyboard and touch
on the actual affected surfaces, including dropdown dismissal, caret visibility, tooltip access,
selection persistence, long localized labels, narrow layouts, and enlarged text.

For handoff, provide the proposal and result paths, platforms/states inspected, discrepancies fixed,
and checks that remain blocked. Supply these artifacts to
[independent review](../adaengine-review/SKILL.md). Do not describe an unlaunched interface as visually verified.
42 changes: 42 additions & 0 deletions .agents/skills/design-skills-provenance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Studio UI/UX Guidance Provenance

The practical guidance in [ui-ux-pro-max](ui-ux-pro-max/SKILL.md) is adapted from
[nextlevelbuilder/ui-ux-pro-max-skill](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill)
at revision [b7d5353e0130feb8c5574ef1251f8a1db1873ccb](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill/tree/b7d5353e0130feb8c5574ef1251f8a1db1873ccb).
The original MIT notice is retained in [LICENSE](ui-ux-pro-max/LICENSE).

## Maintained scope

The repository retains two contributor skills for Studio UI work:

- [adaengine-studio-design](adaengine-studio-design/SKILL.md): the local proposal, implementation,
and review workflow, governed by the [Studio rules](../../AGENTS.md#ada-studio-visual-design-rules).
- [ui-ux-pro-max](ui-ux-pro-max/SKILL.md): curated UI construction and verification covering
controls, layout, states, forms, focus, accessibility, touch, async feedback, and readable text
using existing Studio fonts and theme roles.

The skill name remains for existing references. This is a curated local adaptation, not the full
upstream package. Its entrypoint and two references are maintained as Markdown.

## Removed at the contributor's request

The full import was narrowed to practical UI work. Font binaries/catalogs, font pairing,
visual style and palette catalogs, product/landing-page recommendations, branding, banners,
presentations, decorative canvas examples, and external creative generators are removed.
Studio's application font resources are unchanged.

Search/design-system generators, installers, API helpers, datasets, and their tests/fixtures
are removed together with those discarded capabilities. Retained guidance invokes none of those
tools and requires no Python/Node package, credentials, or network service. Validation concerns
maintained skill documents/links; behavior tests and visual checks still belong to the actual
Studio implementation being changed.

This scope reduction does not turn earlier failed upstream checks into passes. Historic results
remain in earlier local reports. Contribution checks must assess the current change honestly,
including tooling limitations caused by removing executable files.

## Updating

Adapt useful interaction/validation guidance deliberately. Preserve Studio's theme, font assets,
Material Icons/Symbols, and platform boundaries. Do not reimport the creative bundle or regenerate
alternative fonts, visual styles, or palettes during routine UI work.
21 changes: 21 additions & 0 deletions .agents/skills/ui-ux-pro-max/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Next Level Builder

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
53 changes: 53 additions & 0 deletions .agents/skills/ui-ux-pro-max/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
name: ui-ux-pro-max
description: Build and review Ada Studio UI using existing components, theme, and fonts. Covers layout, control semantics, interaction states, form validation, accessibility, responsive behavior, and rendered verification. Use for practical interface work, not branding or choosing a new visual style.
license: MIT
---

# Studio UI/UX Practice

Apply the [Studio rules](../../../AGENTS.md#ada-studio-visual-design-rules) and
[Studio workflow](../adaengine-studio-design/SKILL.md).
This is a curated adaptation of upstream guidance; [provenance](../design-skills-provenance.md)
records its scope.

## Start from the application

Inspect the affected screen, neighboring controls, platform, and theme owners. Use only Studio's
existing font assets and text roles, semantic colors, icons, and shared component styles.
Build hierarchy with those text roles, alignment, spacing, and grouping. Check long labels,
glyph coverage, text scaling, and font metrics using the actual Studio fonts.

Choose controls by behavior. Buttons execute actions; toggles change immediate boolean settings;
checkboxes represent selections; dropdowns select values; tabs/segmented controls switch views
or mutually exclusive modes. Preserve each control's input and accessibility semantics.
AdaUI, native wrappers, and the browser frontend have different implementation owners:
verify the actual stack and available APIs before coding.

## Plan the interaction

Read the relevant sections of [UI construction guidance](references/quick-reference.md).

- Establish the main task, information hierarchy, labels, navigation, and panel boundaries.
- Cover default, hover, pressed, focused, selected, disabled, expanded, loading, empty, and error
states where applicable. Keep persistent selection separate from transient pointer feedback.
- Decide when values commit, how validation appears, how async work is cancelled/retried,
and where focus goes after opening, submission, dismissal, or failure.
- Adapt layout and target sizes to the actual input platform, window, safe areas, keyboard,
and text scaling. Preserve access to essential actions as space decreases.

Present the visual proposal required by the Studio workflow before production UI edits.

## Implement and validate

Reuse theme roles and controls; extend shared components only for the requested behavior.
Keep focus, selection, and entered values stable across rebuilds and async updates.
Provide labels and actionable errors, keyboard operation, accessible names/state,
and a touch path to essential help. Test changed interactions through production paths.

Before handoff, use [rendered UI verification](references/pro-rules.md). Record screenshots or
previews, platforms, states, and layouts actually exercised. Fix discrepancies and report
unavailable runtime checks as blocked. Build success and source review do not prove visual quality.

The guidance is maintained directly in Markdown. There is no font/style catalog, palette or
design-system generator, search CLI, framework installer, or external generation service.
50 changes: 50 additions & 0 deletions .agents/skills/ui-ux-pro-max/references/pro-rules.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Rendered UI Verification

Compare the affected surfaces with the approved proposal, root Studio rules, and
[construction guidance](quick-reference.md). Apply checks to changed controls and supported platforms.
This checklist is not proof that existing Studio controls already comply.

## Theme and layout

- [ ] Only existing Studio font assets/text roles are used; no font files, CDN imports,
font-pairing recommendations, or substitute families were introduced.
- [ ] Shared semantic colors and control styles are used. Borders, dark inputs, white dark-theme
caret, icons, labels, and selection are visible at the actual display scale.
- [ ] Alignment, heights, spacing, grouping, and density match neighboring Studio controls.
- [ ] Material Icons/Symbols have consistent size/weight/alignment, appropriate localized action
tooltips, and accessible names for icon-only controls.
- [ ] Long English/Russian labels, paths, and user values remain available without clipping,
overlap, broken layout, or inaccessible truncation.
- [ ] Supported themes, narrow/normal sizes, scaling, and relevant orientations were inspected.
Text and state remain readable against the composed background.

## Interaction and forms

- [ ] Applicable default, hover, pressed, focused, selected, disabled, expanded, busy, and error
states were exercised. Selection survives pointer exit and rebuilds.
- [ ] Actions fire as intended; disabled controls do not fire.
- [ ] Dropdowns open, select, scroll, dismiss, and return focus on affected input paths.
- [ ] Fields support visible caret, selection, editing, labels, and appropriate validation timing.
- [ ] Invalid submission preserves values and gives actionable field errors. Multi-error forms
provide an appropriate summary and focus path.
- [ ] Loading, empty, partial, and failed operations give relevant feedback/recovery.
Cancellation, retry, repeated input, and late async results preserve correct state.
- [ ] Dialog/menu opening and dismissal preserve predictable focus/navigation.

## Keyboard, touch, and accessibility

- [ ] Keyboard navigation, visible focus, shortcuts, accessible names/state, and reading order work.
- [ ] Focused controls/errors remain visible with overlays, scrolling, and the on-screen keyboard.
- [ ] Essential actions/help work without hover; gesture/drag interactions have alternatives.
- [ ] iOS hit areas are at least 44 x 44 pt without overlap; safe areas/system gestures work.
- [ ] Enlarged text/reduced motion preserve layout, operation, focus, and final state.
- [ ] Errors, selection, and status convey meaning through more than color alone.

## Evidence

- [ ] Compare the rendered result with the approved visual at representative sizes.
- [ ] Test changed testable interactions through real production paths.
- [ ] Supply screenshots/preview paths and identify platforms, layouts, and states exercised.
- [ ] Report failed checks as failures and unavailable runtime/device checks as blocked.
Builds, source inspection, and unit tests alone are not visual verification.
- [ ] Fix discrepancies and supply the result/evidence to independent review.
85 changes: 85 additions & 0 deletions .agents/skills/ui-ux-pro-max/references/quick-reference.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# UI Construction Guidance

Use only the sections relevant to the requested interface. The root Studio rules own visual choices;
these notes cover practical construction within the existing application.

## Layout and readable content

- Group related controls and align labels, fields, icons, and action rows with neighboring UI.
Give the main task a clear place without making every action equally prominent.
- Use existing Studio font assets and text roles. Express emphasis through their supported weights,
sizes, and spacing. Verify English/Russian glyphs and required symbols with the actual fonts.
- Let localized labels and user values wrap or disclose the full value. Use truncation only in
constrained surfaces with an accessible path to the complete text.
- Make layout children shrink correctly. Long paths, URLs, and identifiers must not widen a panel
unexpectedly or cover adjacent controls.
- Keep essential actions available in narrow windows and enlarged text. Preserve selection,
drafts, and navigation context across layout/orientation changes.
- Use scrolling deliberately for lists, inspectors, tables, and code areas. Fixed elements,
overlays, and the on-screen keyboard must not hide focus or the end of scrollable content.

## Control semantics and state

| Intent | Preferred control | Check |
| --- | --- | --- |
| Execute a command | Button | Label, hover/press/focus feedback, disabled/busy behavior |
| Change an immediate boolean setting | Toggle | Label, current on/off state, usable hit target |
| Select independent items or deferred form values | Checkbox | Checked/unchecked and mixed state when needed |
| Choose one list value | Dropdown/select | Current value, keyboard selection, dismissal, scrolling |
| Search while choosing or allow typed values | Combo box | Input, results, empty state, validation, focus |
| Switch sibling views/modes | Tabs or segmented control | Selection and preservation of each view's state |
| Reveal contextual actions | Menu | Trigger label, item semantics, dismissal, focus return |

Use shared/platform controls rather than clickable generic containers. Hover/press feedback must
not erase selection. Disabled controls need disabled input semantics as well as visual treatment.
Avoid moving surrounding layout as states change.

## Forms and validation

- Provide persistent labels and helper text. Placeholder text does not replace a label.
Choose value semantics, keyboard type, and ranges appropriate to the field.
- Choose validation timing for the task. Avoid errors on incomplete input still being entered,
but validate committed/submitted values reliably.
- Place specific actionable errors beside their fields and associate them programmatically.
Preserve values. For multiple errors, provide a navigable summary on failed submission
and move focus deliberately without trapping the user.
- Distinguish invalid values from network/server failures. Explain what can be corrected,
retried, cancelled, or retained as a draft.
- Keep focused fields, caret, selection, and errors visible as layout or keyboard changes.
- Prevent duplicate submissions; show progress and a recovery/cancellation path. Late async
results must not overwrite newer values or another selection.

## Focus, overlays, and navigation

- Keep keyboard order consistent with the visual task order. Provide visible focus and retain
platform/system shortcuts.
- Give icon-only controls accessible names; expose applicable selected, checked, expanded,
and busy states. Hide purely decorative icons from the accessibility tree.
- For modal dialogs, move focus inside, contain navigation while modal, support appropriate
cancellation, and return focus to a useful trigger on dismissal.
- Test dropdown/menu opening, item navigation/selection, scrolling, Escape, outside dismissal,
and focus return using the platform's conventions.
- Preserve a predictable back path and edited state across tabs, details, and nested views.
Tooltips supplement labels; essential actions/help need keyboard and touch paths.

## Pointer, touch, and accessibility

- Hover supplements pressed and keyboard-focus feedback. Touch actions must work without hover.
- On iOS use at least 44 x 44 pt hit areas with enough separation. Expanded hit regions must not
overlap adjacent actions. Respect safe areas and system gestures.
- Adapt desktop density for touch and enlarged text. Verify actual target units and hit testing.
- Use existing readable text/surface pairs. Check contrast on rendered backgrounds, including
muted text and overlays. Convey errors/selection with more than color alone.
- Provide alternatives to precision dragging and gesture-only essential actions.
- Respect reduced motion and text scaling. Use motion for a state change and preserve correct
final state/focus when a rapid interaction interrupts a transition.

## Loading, data, and responsiveness

- Cover relevant empty, loading, partial, offline, and error states. Distinguish empty results
from request failure and provide an appropriate recovery action.
- Reserve space for async content where movement would disrupt the current task.
- Keep typing, scrolling, and selection responsive. Use existing virtualization, cancellation,
and update scheduling when relevant; measure representative screens before performance claims.
- In tables, retain readable headers/alignment, selection, and access to off-screen values.
Expose provided sort/filter state and preserve a useful keyboard position.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
.ruff_cache
.codex/

# Local validation evidence and captures.
/Evidence/

dist/
!Plugins/AdaWebExportPlugin/BrowserWASIShim/dist/
!Plugins/AdaWebExportPlugin/BrowserWASIShim/dist/*.js
Expand Down
Loading
Loading