All guides

Naming

Understand the Unity naming contract

Use semantic prefixes, component states, 9-slice suffixes, and optional layout metadata consistently.

The naming model

ArtFlow names UI elements in this order:

role_purpose_state

Names are lowercase snake_case. The prefix is always first because it describes how the element should be interpreted. Use btn_close, not close_button.

Built-in prefixes

Prefix Intended role
btn_ Clickable button or control
ic_ Non-clickable icon or visual indicator
fra_ Frame, panel, card, or container sprite
text_ Text or label
bg_ Large background
pop_ Popup or modal root
bar_ Progress or fill bar
badge_ Badge or counter
tab_ Tab root
scroll_ ScrollRect root
tgl_ Toggle root
sld_ Slider root
inp_ Input field root

Choose the role represented by the layer, not merely its shape. An icon inside a button is still ic_; the parent interactive group is btn_.

Component states

State suffixes describe visual alternatives:

_normal
_highlighted
_hover
_pressed
_selected
_active
_disabled
_on
_off
_locked

Use a state only when the PSD contains that actual visual state. Do not add _pressed because a developer might need it later.

Component examples

Button

btn_play
  fra_play_bg_s9_40
  ic_play
  text_play

Toggle

tgl_music
  fra_music_bg
  ic_music_on
  ic_music_off

Slider

sld_volume
  fra_volume_bg
  bar_volume_fill
  ic_volume_handle

Input

inp_player_name
  fra_player_name_bg
  text_player_name
  text_player_name_placeholder

Scroll view

scroll_shop
  fra_shop_viewport
  content_shop

9-slice suffixes

Add _s9 to a frame sprite that should use Unity sliced image mode:

fra_panel_s9
fra_panel_s9_24
fra_panel_s9_24_32

A single number applies one PSD-pixel border value. Two numbers represent horizontal and vertical border values. Use a value that preserves corners and decorative edges.

Optional layout metadata

ArtFlow normally infers anchors from PSD geometry. Add metadata only when the inferred result cannot express the intended responsive behavior.

btn_settings@anchor=top-left
fra_coin_counter@anchor=top-right
bg_main@stretch=full
fra_bottom_nav_bg@stretch=h-bottom

Do not put both @anchor=... and @stretch=... on one layer. Metadata is removed from the Unity GameObject and sprite filename; it exists only to guide layout reconstruction.

What weak names do

Weak names no longer have to block every layout export. ArtFlow can create export-only fallback names such as img_auto_001, grp_auto_001, or text_auto_001 without renaming the PSD.

Fallback names preserve layout, but they do not describe behavior. A passive auto-named object will not become a button, toggle, slider, tab, scroll view, fill bar, or sliced image. Name behavior-critical elements before handoff.

Team profiles

The built-in contract is the default profile. A studio convention may replace its tokens while preserving the same roles. Keep one active profile per project, record its version, and do not mix conventions inside one export set.