Atomic Design: ORGANISM (React Functional Components)
You are creating an ORGANISM: a larger section of UI composed of molecules and atoms.
Hard rules
- •Functional components only.
- •Data boundary:
- •Organisms can accept data via props and emit events via callbacks.
- •Avoid direct fetching inside the organism unless the project explicitly uses component-level fetching patterns (if so, isolate it and justify).
- •Dependency discipline:
- •Organisms may import molecules/atoms and shared utilities.
- •Avoid importing page-level modules or routing concerns.
- •State:
- •Local state for UI coordination is fine (open/close, selected tab).
- •Prefer lifting state up when it becomes cross-organism/page relevant.
- •Testability:
- •Prefer pure props-driven behavior; inject dependencies via props.
- •Use stable selectors (
role,labelText) rather than brittle test IDs unless necessary.
Output expectations
- •Provide:
- •
Component.tsx - •
Component.test.tsx(behavior-driven) - •
Component.stories.tsx(mock data variants)
- •
Recommended folder conventions
- •
src/components/organisms/<ComponentName>/...
Organism checklist
- • Clear props contract (data in, events out)
- • No routing/global singleton coupling unless standard for the repo
- • Uses semantic landmarks where appropriate (
nav,main,section, headings)