Skip to content

[P1] Define component contract #1

@fissible

Description

@fissible

Every shellframe widget needs a predictable interface for render, sizing/layout, focus state, input/event handling, and internal state updates.

Settle these questions:

  • How does a component know its bounds? How does it respond to terminal resizing?
  • How does it report desired/minimum size?
  • How is focus passed in and out?
  • How are child components composed?

Deliverable: A doc (or comment block in shellframe.sh) formalizing the contract. No code required — this is a specification.

Effort: S (1–2h)
Phase: 1 — Core UI Contracts
Required by: all Phase 3 primitives

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions