Problem
The built-in arrowUp icon name currently carries three different semantic responsibilities:
| Consumer |
Use |
Meaning |
FileInput |
upload affordance |
action: upload |
ChatSendButton |
default send glyph |
action: send |
sortable Table |
ascending indicator |
direction: ascending |
The directional meaning is coherent with arrowDown and arrowsUpDown. The upload and send meanings only happen to share the same artwork today.
This becomes observable when a theme customizes the registry. Mapping arrowUp to an upload-tray glyph also changes the chat send button and breaks the visual pairing between the table's ascending and descending indicators. A single registry key therefore cannot be customized predictably across its current callsites.
Current architecture
The current icon architecture separates shared semantic names from component-owned roles. That makes the boundary important:
arrowUp should remain a directional name.
- Upload and send are reusable UI actions, not FileInput- or Chat-specific implementation details.
- Component-owned slot mappings can still be added later if a theme needs to remap one component role independently; that is a separate layer from the shared semantic vocabulary.
Proposed contract
Add two shared semantic names:
Both would initially resolve to the existing upward-arrow artwork, so default rendering would not change. FileInput would use upload, ChatSendButton would use send, and sortable Table would keep arrowUp.
This lets a theme provide an upload-tray glyph without changing send or sort, and a send glyph without changing upload or sort.
Alternatives considered
Keep arrowUp for all three meanings
No source change, but registry customization remains coupled across unrelated actions and direction.
Add only component-owned slots
Slots are useful when one component role needs a different shared meaning. They do not by themselves provide shared upload or send meanings for themes to map to appropriate artwork. These two actions are expected to recur across components, so they belong in the shared semantic vocabulary first.
Scope and non-goals
- No default visual change.
- No change to
arrowDown or arrowsUpDown; their current uses remain directional.
- No component-slot implementation in this proposal.
- No commitment to a specific upload or send drawing; themes continue to own artwork.
Suggested sequence
- Settle the shared-name contract in a spec-only pull request.
- Add the two names and default artwork aliases.
- Migrate FileInput and ChatSendButton to the new names with focused registry tests and consumer documentation.
Problem
The built-in
arrowUpicon name currently carries three different semantic responsibilities:FileInputChatSendButtonTableThe directional meaning is coherent with
arrowDownandarrowsUpDown. The upload and send meanings only happen to share the same artwork today.This becomes observable when a theme customizes the registry. Mapping
arrowUpto an upload-tray glyph also changes the chat send button and breaks the visual pairing between the table's ascending and descending indicators. A single registry key therefore cannot be customized predictably across its current callsites.Current architecture
The current icon architecture separates shared semantic names from component-owned roles. That makes the boundary important:
arrowUpshould remain a directional name.Proposed contract
Add two shared semantic names:
uploadsendBoth would initially resolve to the existing upward-arrow artwork, so default rendering would not change. FileInput would use
upload, ChatSendButton would usesend, and sortable Table would keeparrowUp.This lets a theme provide an upload-tray glyph without changing send or sort, and a send glyph without changing upload or sort.
Alternatives considered
Keep
arrowUpfor all three meaningsNo source change, but registry customization remains coupled across unrelated actions and direction.
Add only component-owned slots
Slots are useful when one component role needs a different shared meaning. They do not by themselves provide shared
uploadorsendmeanings for themes to map to appropriate artwork. These two actions are expected to recur across components, so they belong in the shared semantic vocabulary first.Scope and non-goals
arrowDownorarrowsUpDown; their current uses remain directional.Suggested sequence