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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions docs/ui-ux/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ review comments, and SHA-256 evidence remain reproducible.
stable repository path and SHA-256 digest.
- `asset-overviews-2026-06-21/`: rendered contact sheets and a manifest for
quickly reviewing every current UI/UX asset without changing source paths.
- `individual-assets-2026-06-22/`: deterministic per-image crop assets,
manifest rows, and exact-alias mapping for component-level reuse.

## Agent Workflow

Expand All @@ -28,6 +30,9 @@ review comments, and SHA-256 evidence remain reproducible.
4. Do not duplicate long descriptions only because filenames differ. Compare
hashes and use the alias table in `naruon-ui-ux-mapping.md` when two assets
represent the same UI concept.
5. Use `individual-assets-2026-06-22/manifest.tsv` when a smaller screen,
panel, state, or annotation crop is easier to inspect than a full source
image.

## Storage Rules

Expand Down
58 changes: 58 additions & 0 deletions docs/ui-ux/individual-assets-2026-06-22/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Naruon UI/UX Individual Assets (2026-06-22)

This directory contains deterministic crop assets derived from the unified
Naruon UI/UX visual repository.

## Source Scope

- `docs/ui-ux/mockups/mockup_01.png` through `mockup_41.png`
- `docs/ui-ux/reference-set-2026-06-18/images/ui-ux-reference-01.png`
through `ui-ux-reference-45.png`
- `frontend/branding/naruon-ux-mockup-*.png` as exact SHA-256 aliases only

The original PNG files remain the authority. These crops are review and
implementation aids, not replacements for the source images.

## Split Rule

`build_assets.py` applies one fixed image rule to every unique source SHA:

1. Resize the source to 30% for stable component detection.
2. Mark foreground pixels that are not near-white UI background.
3. Expand nearby foreground with a `7x7` max filter.
4. Extract 4-connected components.
5. Scale each component box back to the source size, add 12px padding, and keep
boxes at least `80x60` with area at least `30000`.
6. Sort boxes from top to bottom, then left to right.

Exact SHA aliases are not cropped again. `aliases.tsv` maps each alias path to
the canonical source SHA and the manifest selector for its assets.

## Manifest

`manifest.tsv` records one row per crop:

- `asset_id`
- `asset_kind`
- `asset_label`
- `source_group`
- `source_index`
- `source_path`
- `source_sha256`
- `source_width`
- `source_height`
- `crop_x`
- `crop_y`
- `crop_width`
- `crop_height`
- `asset_path`
- `asset_sha256`
- `source_alias_paths`
- `notes`

## Rebuild And Verify

```bash
python3 docs/ui-ux/individual-assets-2026-06-22/build_assets.py generate
python3 docs/ui-ux/individual-assets-2026-06-22/build_assets.py verify
```
11 changes: 11 additions & 0 deletions docs/ui-ux/individual-assets-2026-06-22/aliases.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
alias_path alias_sha256 canonical_source_path canonical_source_sha256 canonical_asset_count canonical_manifest_selector
frontend/branding/naruon-ux-mockup-1.png 0d809a335b8f81dbb57640630189f7e75dfc67d3b27bad49e5567322b6720517 docs/ui-ux/mockups/mockup_08.png 0d809a335b8f81dbb57640630189f7e75dfc67d3b27bad49e5567322b6720517 7 source_sha256=0d809a335b8f81dbb57640630189f7e75dfc67d3b27bad49e5567322b6720517
frontend/branding/naruon-ux-mockup-2.png f4af73ee2699845a710e1d9e773fe366d4eb53b4b1635068b28ea8d5cba0d27b docs/ui-ux/mockups/mockup_09.png f4af73ee2699845a710e1d9e773fe366d4eb53b4b1635068b28ea8d5cba0d27b 12 source_sha256=f4af73ee2699845a710e1d9e773fe366d4eb53b4b1635068b28ea8d5cba0d27b
frontend/branding/naruon-ux-mockup-3.png 275466a11f7a1055203a5489248de677fc87d0523175eec1deb274f76eabb2ac docs/ui-ux/mockups/mockup_10.png 275466a11f7a1055203a5489248de677fc87d0523175eec1deb274f76eabb2ac 11 source_sha256=275466a11f7a1055203a5489248de677fc87d0523175eec1deb274f76eabb2ac
frontend/branding/naruon-ux-mockup-4.png 25880316fe8d8a057fd62475d23dbd8737da87cefb546a16dcb46410af6389d0 docs/ui-ux/mockups/mockup_11.png 25880316fe8d8a057fd62475d23dbd8737da87cefb546a16dcb46410af6389d0 8 source_sha256=25880316fe8d8a057fd62475d23dbd8737da87cefb546a16dcb46410af6389d0
frontend/branding/naruon-ux-mockup-5.png 99a86ac8fc8aca0543226cb4a81f36a01f74ce4b63fb059e370eb16d8feec386 docs/ui-ux/mockups/mockup_12.png 99a86ac8fc8aca0543226cb4a81f36a01f74ce4b63fb059e370eb16d8feec386 13 source_sha256=99a86ac8fc8aca0543226cb4a81f36a01f74ce4b63fb059e370eb16d8feec386
frontend/branding/naruon-ux-mockup-6.png 1eb50f029c3fc04297be1b35fed3abe89b0751a1e7f0bbf3ae802a92e976bc79 docs/ui-ux/mockups/mockup_13.png 1eb50f029c3fc04297be1b35fed3abe89b0751a1e7f0bbf3ae802a92e976bc79 15 source_sha256=1eb50f029c3fc04297be1b35fed3abe89b0751a1e7f0bbf3ae802a92e976bc79
frontend/branding/naruon-ux-mockup-7.png 6960e2ee2a4cf70ed02b028a75fe259afa7224380fd2110872857e82c75d60ae docs/ui-ux/mockups/mockup_14.png 6960e2ee2a4cf70ed02b028a75fe259afa7224380fd2110872857e82c75d60ae 14 source_sha256=6960e2ee2a4cf70ed02b028a75fe259afa7224380fd2110872857e82c75d60ae
frontend/branding/naruon-ux-mockup-8.png 079d6da9e0647aee21718071f779a775d88c0afa03fcedeb86ac3bde22ec7852 docs/ui-ux/mockups/mockup_15.png 079d6da9e0647aee21718071f779a775d88c0afa03fcedeb86ac3bde22ec7852 13 source_sha256=079d6da9e0647aee21718071f779a775d88c0afa03fcedeb86ac3bde22ec7852
frontend/branding/naruon-ux-mockup-9.png ea5897aba5bbcbbff0f14f954275335dac65a6aad02f541ffb579b10ed2ee8df docs/ui-ux/mockups/mockup_17.png ea5897aba5bbcbbff0f14f954275335dac65a6aad02f541ffb579b10ed2ee8df 12 source_sha256=ea5897aba5bbcbbff0f14f954275335dac65a6aad02f541ffb579b10ed2ee8df
frontend/branding/naruon-ux-mockup-10.png 7c2ec2f1116acd99a01e95aa73eadc6db22a52e62ed1fa6444269308f7023ccc docs/ui-ux/mockups/mockup_16.png 7c2ec2f1116acd99a01e95aa73eadc6db22a52e62ed1fa6444269308f7023ccc 16 source_sha256=7c2ec2f1116acd99a01e95aa73eadc6db22a52e62ed1fa6444269308f7023ccc
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading