Small, directional input set.
MenuClose
PRODUCT DESIGN · RECIPROCAL EXCHANGE
Skilio
Swap skills.
Build connection.
A concept for keeping fit, trust, consent, scheduling, and closure visible through one shared exchange.
Product strategy · exploratory research · end-to-end mobile flows · interactive prototyping · reusable component system
Product Designer
Mobile peer-to-peer skill-exchange concept
Reciprocal matching · trust profiles · chat and scope-setting · scheduling · completion and feedback · 6 reusable components
PROBLEM + THESIS
A skill match is not yet an exchange.
Finding a possible match still leaves both people to define terms, boundaries, timing, and consent. The concept reframes the exchange as one shared object—not two unrelated favors.
DESIGN QUESTION
How might two people understand fit, feel safe enough to agree, and know what happens next?
offers
offers
RESEARCH SCOPE + SYNTHESIS
Small input set. Explicit evidence boundaries.
Three exploratory conversations and an adjacent-product scan informed the concept. The research artifacts below separate documented input, directional synthesis, and claims that still require validation.
SYNTHESIS BOARD
From documented input to design decisions.
The board recreates the synthesis structure for portfolio clarity. Connections mean “informed,” not proved, validated, or caused.
DOCUMENTED INPUT
Pattern reference—not evidence of demand.
Not launched or usability-validated.
DIRECTIONAL SYNTHESIS
Identity context, expectations, boundaries, and mutual confirmation should be visible before contact.
Offer + need should appear with distance, format, timing, and effort.
Proposal, consent, schedule, completion, and feedback need one persistent shared state.
DESIGN DECISIONS
Compare both sides of the exchange in one place.
Show context without treating badges as a safety guarantee.
Keep proposal, approval, schedule, and closure together.
Keep revise, reschedule, cancel, and report discoverable.
INPUT → DESIGN IMPLICATION
Three signals shaped what the product needed to make legible.
Context before contact.
Directional signal: a profile needs contribution history, expectations, boundaries, and mutual confirmation before an in-person exchange.
Reciprocal fit before request.
Directional signal: offer + need should appear with format, distance, timing, and effort—not as isolated filters.
A shared agreement after match.
Directional signal: proposal, consent, schedule, completion, and feedback need one persistent state outside ordinary chat.
CORE DECISION 01
Design the match as a reciprocal pair.
Choice: present what each person offers and needs in the same object.
Trade-off: comparison becomes clearer, while the interface must carry more context than a simple listing.
CORE DECISION 02
Give both people one shared exchange state.
Choice: separate proposal and confirmation from ordinary messages.
Trade-off: the flow gains responsibility and clarity, but adds explicit steps before meeting.
RESEARCH BOUNDARY
What this work can—and cannot—claim.
| Layer | Documented | Safe interpretation | Not established |
|---|---|---|---|
| Input | 3 exploratory conversations · adjacent-product scan | Directional input for product hypotheses | Saturation · market demand |
| Synthesis | Hypotheses about fit, trust, and reciprocity | A rationale for the product model | Validated user needs · prevalence |
| Prototype | End-to-end concept flow | One possible IA and shared-state model | Usability · comprehension · task success |
| Outcome | Not launched or usability-validated | A defined next-validation agenda | Adoption · retention · user impact |
INFORMATION ARCHITECTURE + USER FLOW
One exchange object across the complete journey.
The happy path and responsible exit paths are mapped together. Solid states are user or system actions; simulated responses and future production branches are labeled rather than presented as real behavior.
- D0Find reciprocal fit
Compare offer + need, distance, format, and time.
- D1Inspect trust context
Read contribution history, expectations, and boundaries.
- P0Draft proposal
Set format, duration, location, and boundary.
- P1Review one shared object
Check both skills and every term before sending.
- P2Sent · not accepted
The proposal stays reversible and distinct from chat.
- A0Skill proposal accepted
The exchange is accepted; the time remains open.
SIMULATED RESPONSE - A1Time proposed
A date and place are visible but not yet confirmed.
- A2Plan confirmed
Both people can locate the same next step.
SIMULATED RESPONSE
- C0Chat beside the agreement
The confirmed plan remains visible while people coordinate.
- X0Mark what happened
Each participant reports completion independently.
PARTICIPANT-REPORTED - X1Private feedback
Feedback stays hidden until both submit.
- X2Waiting for Jenna
The exchange remains pending while the counterpart response is outstanding.
- X3Participant-reported receipt
The record reflects reports—not independent verification.
SIMULATED RESPONSE
Discover → adjust the search query or format filter.
Review or sent → revise → return to the editable proposal.
Coordinate → reopen time selection while keeping the accepted skill pair.
Completion check → return to chat without creating a receipt.
Reschedule keeps the exchange; cancel resets the demo; report pauses contact in this prototype only.
Closed or reported → return to discovery and begin a new reciprocal match.
Request changes, decline, real report review, blocking, support, and notifications require validation.
LOW-FI → MID-FI
From structural questions to a clickable exchange.
The preserved wireframe board documents the early information structure. The low- and mid-fidelity reconstructions make the key decisions readable and testable in this portfolio without presenting newly rebuilt views as original dated artifacts.
WHAT CHANGED
Keep the structure. Reassign the visual weight.
The early board established the content model. The high-fidelity work then made the reciprocal pair, shared state, and next action visually dominant.
- 01Generic cardsVisible reciprocal fit
- 02Hidden agreementShared exchange state
- 03Neutral systemApproachable community identity

LOW-FI · RECONSTRUCTED DESIGN BOARD
Sketch the decision before styling the screen.
Two scanned printer-paper sheets use pencil, blue-pen corrections, unfinished frames, and crossed-out sketches to explore the sequence before visual styling. This is a portfolio reconstruction—not original dated research evidence.
MID-FI · CLICKABLE RECONSTRUCTION
Test the shared object before adding the final visual system.
This five-state mid-fidelity flow is rebuilt from the documented structure. Use the real controls to inspect fit, set terms, review the proposal, and preview a confirmed next-step state.
- 01Matches
- 02Trust
- 03Proposal
- 04Review
- 05Confirmed
Does the same reciprocal pair remain legible while the user moves from discovery to agreement?
Who fits both sides?
Blind repair in exchange for piano basics.
Jenna offers Piano basics↔You offer Blind repair
- SAMPLE · 12 completed
- SAMPLE · 4.9 peer context
- In person
Watercolor↔Shelf mounting
INTERACTION MODEL
One loop. Six legible states.
Select a phase to see how the product keeps both sides of the commitment and the next action visible.
ACTIVE PHASE · 01
Describe both sides of the exchange.
A match starts with what each person can offer and what they need—not a generic service listing.
A reciprocal pair that can be compared before anyone commits.
HIGH-FIDELITY INTERACTIVE PROTOTYPE
Use the product—not another screenshot.
This working mobile web app replaces the enlarged source export. Start with discovery, inspect trust, build a proposal, explicitly simulate the counterpart responses, schedule the exchange, coordinate, close it, and restart.
LIVE MOBILE WEB APP
Start with “Find a skill,” then complete the reciprocal exchange.SATURDAY · 9:18 AM
Hi, Chris!
What could you trade today?

START WITH A NEED
Find a skill
See people whose offer fits your need—and whose need fits your offer.
UP NEXT
Nothing scheduled yet
Find one reciprocal match to create a shared plan.
DESIGN SYSTEM
Foundations the
exchange runs on.
Brand, colour, type, shape, and components documented as one kit. Nine tokens carry every interface state; the remaining twenty hues belong to illustration and never signal anything.
BRAND KIT
One mark, four surfaces.
The identity was built once and reused everywhere: the stroke pair in the wordmark becomes the app icon, the swap glyph in the icon set, and the splash lockup.
- #5B3FEA VIOLET 600
- #FFD83D YELLOW 400
- #F45B45 CORAL 500
- #A8E6C3 MINT 300
01 · COLOUR
Nine interface tokens. Every other colour is illustration.
Contrast is measured against the text colour each token actually carries. Coral fails AA at body size, so it is restricted to indices and large markers.
RAMP
Each hue is extended to five steps so the system can scale past the concept. The circled step is the one the product actually ships; the rest exist for hover, borders, and inverted surfaces.
- 100#F0EFFC16.0
- 300#CBC7F611.3
- 600#5B3FEA6.3
- 800#5038D07.5
- 900#4531B39.0
- 50#FFFAEF17.5
- 200#FFEEC715.8
- 400#FFD83D13.1
- 600#E2BF3810.2
- 800#C2A5327.5
- 100#FDF0F016.3
- 300#FACBC812.5
- 500#F45B455.6
- 700#D8513E4.5
- 900#BA45375.3
- 50#F5FCF817.4
- 100#DDF4E715.7
- 300#A8E6C312.8
- 500#95CCAD10.0
- 700#7FAF957.3
- 00#FFFFFF18.2
- 50#EBEFF515.7
- 200#DADDE313.4
- 600#9295996.0
- 900#0F162018.2
SEMANTIC MAPPING
Colour is only allowed to mean one thing at a time. This is the whole vocabulary.
| State | Token | Where it appears |
|---|---|---|
| Documented input | Violet 100#E7E7F8 | Research notes, jam stickies, boundary table row headers |
| Directional hypothesis | Yellow 200#FFF1A8 | Claims that shaped a decision but were never tested |
| Design decision | Mint 100#DCF5E7 | Choices committed into the flow and the prototype |
| Needs validation | Coral 300#FFE3DD | Anything a usability round would have to confirm |
| Selected, in progress | Yellow 400#FFD83D | Active phase tab, chosen time slot, current mid-fi step |
| Committed, closed | Mint 300#A8E6C3 | Confirmed swap, completion tick, earned credit |
ILLUSTRATION PALETTE
Twenty hues reserved for the 3D cast and category art. They never carry state, so the interface stays readable when the illustrations change.
- #5485EE
- #B4BAF4
- #F7DFF9
- #FDFAEA
- #D0C8F2
- #6760EB
- #C93A77
- #7EA7F8
- #E37DA2
- #60AB51
- #E2FBE9
- #43936C
- #3F8FAE
- #B442F5
- #E83425
- #F6C952
- #255419
- #2848D6
- #EF8B36
- #5ECAF8
02 · TYPE
Condensed for structure, Sans for reading, Mono for facts.
The product ships Myanmar Khyay at a 17pt base. This case study runs the IBM Plex superfamily so the writing stays legible at portfolio scale.
- DisplayPlex Sans Condensed · 700 · 76–128px · -0.028em
Skilio
- SectionPlex Sans Condensed · 700 · 38–66px · -0.02em
One loop. Six legible states.
- SubheadPlex Sans Condensed · 600 · 30–42px · -0.016em
Swap skills. Build connection.
- BodyPlex Sans · 400 · 19px · 1.6
A concept for keeping fit, trust, consent, scheduling, and closure visible through one shared exchange.
- LabelPlex Mono · 700 · 11px · 0.12em · uppercase
RESEARCH BOUNDARY
- MicroPlex Mono · 700 · 9px · 0.08em · uppercase
TRUST · 4.9 · 12 SWAPS
SPECIMEN
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 &@#%$ ()[]{} → ↔ ·
RULES
- Scale ratio
- 1.28 major third, clamped per breakpoint
- Measure
- 60ch maximum on body, 30ch on device copy
- Numerals
- Mono, tabular, for every count and rating
- Case
- Uppercase reserved for Mono labels only
- Minimum
- 9px Mono, 12px Sans, never below
- Product face
- Myanmar Khyay, 17pt base, inside the app
03 · SHAPE + SPACE
A four-point rhythm and six radii.
Every gap on the page resolves to the ramp below. Hairlines stay at one pixel so the density reads as editorial rather than boxed.
RADIUS
- 0
- 10
- 12
- 18
- 22
- pill
SPACE
- 4
- 8
- 12
- 16
- 22
- 30
- 44
- 68
LINE, FOCUS, LIFT
- Hairline · 1px · ink 16%
- Focus · 3px violet · 5px offset
- Lift · 0 12px 30px · ink 28%
BREAKPOINTS
The page is a container query context, not a viewport one, so the case study reflows correctly even when it is embedded at a narrower width.
| Container | Inner / pad | What changes |
|---|---|---|
| > 1180 | 1328 / 64 | Three column grids, four screen frames |
| 1180 | 1328 / 64 | Grids fall to two columns, brand kit stacks |
| 1100 | fluid / 40 | Inner padding tightens |
| 900 | fluid / 40 | Type scale rows stack, swatches halve |
| 720 | fluid / 22 | Hero stage shortens, chips reposition |
| 640 | fluid / 22 | Everything single column |
| 480 | fluid / 18 | Minimum padding |
04 · MOTION
One curve, five durations.
Everything decelerates on the same easing. Nothing bounces, nothing overshoots, and every transition collapses to nothing when the reader asks for reduced motion.
EASING
cubic-bezier(.2, .8, .2, 1)Eighty percent of the distance is covered in the first third of the time, so an interface change registers immediately and then settles.
DURATIONS
- Tap180msButton lift, chip toggle, icon nudge
- Surface220msCard hover, shadow, border colour
- Reveal550msScreen cards entering the viewport
- Section620msSection headings, 28px rise
- Scrub7sFull-length screen scroll on hover
prefers-reduced-motion drops every duration to 0.001ms and disables the hover scrub. The reveal classes are only added when JavaScript runs, so a failed script leaves a fully readable page rather than an invisible one.
05 · COMPONENTS
The pieces the exchange is actually assembled from.
These are live elements, not screenshots. Hover or focus any of them to see the state the product uses.
ACTIONS
REPUTATION TAGS
TRUST METER
MATCH CARD
STAT TILES
EVIDENCE BADGES
STATE MATRIX
Five states, defined once, reused by every interactive element on the page.
ANATOMY · MATCH CARD
The densest object in the product. Every part earns its place by answering one question a person asks before they commit.
- 1IdentityAvatar, name, distance, and match percentage in one line
- 2TimestampMono, tabular, right aligned so rows scan vertically
- 3ExchangeOffer and need in one object, never two separate cards
- 4DirectionThe swap glyph, the only place the mark appears in-line
- 5ActionsSecondary before primary, both above the fold of the card
06 · ACCESSIBILITY
What was actually checked, and what was not.
A design system that only lists what went right is a brochure. The last row is the honest one.
- Contrast floor4.5:1 for body, 3:1 for large text and UI edgesMet, Coral restricted to large
- Touch targets50px on primary links, 46px on device buttons, 44px minimumMet
- Focus3px violet ring, 5px offset, never removedMet
- Skip linkFirst tab stop jumps to the case study bodyMet
- Current steparia-current on the active phase and mid-fi stepMet
- Reduced motionAll transitions collapse to 0.001msMet
- Screen readerEvery figure captioned, every image describedMet
- Keyboard onlyPhase tabs, disclosure, and the prototype are reachableMet
- Usability testingNo moderated round was run on this conceptNot done
SCREEN LIBRARY
Seven screens,
one commitment.
Four high-fidelity screens from the original file, then three states rebuilt in markup to close the loop: entry, proposal, and the moment an exchange actually ends.
HOVER TO SCROLL · CLICK FOR FULL LENGTHGreeting, then the single commitment that is actually live.
- One upcoming swap, never a feed
- Confirmed state carries a colour, not just a word
HOVER TO SCROLL · CLICK FOR FULL LENGTHSearch narrows by skill, mode, and travel distance before any person appears.
- Offer and need sit in one row, so fit is readable
- Reputation tags precede the request action
HOVER TO SCROLL · CLICK FOR FULL LENGTHLevel, credit, and earned tags make trust legible before contact.
- Progress toward the next level is explicit
- Completed swaps, badges, and rating are separate signals
HOVER TO SCROLL · CLICK FOR FULL LENGTHConversation ends in a confirmed object, not a promise buried in a thread.
- The confirmation card is the closure moment
- Both sides read the same scheduled result
REBUILT SPECIMENS
Three states the original screens never captured.
These are built in markup for this portfolio, not exported from the original file. They cover the entry point, the proposal, and the closure moment.
- Piano
- Repair
- Cooking
- Design
The promise is stated before any account exists, and the four opening categories set expectations.
When
Where
Offer and need stay paired through the whole proposal, and consent is a step rather than a footnote.
Closure is a screen, not a silence. Both contributions are named before anything is scored.
SUPPORTING EVIDENCE
Research boundary, visual system, and narrative artifact+
Three exploratory conversations and an adjacent-product scan informed hypotheses about fit, trust, and reciprocity. This input does not establish saturation, demand, or usability.
My contribution focused on product framing, synthesis, information architecture, the end-to-end exchange flow, and the interface system represented here.
Product screens and boards are preserved source artifacts. The cut-paper image is an illustrative scenario frame and is not presented as research evidence or UI.
HIGH-FIDELITY SOURCE SCREENS
Preserved artifacts—kept secondary to the working product.
These original exports document the visual direction. Open any screen at full resolution; the main case-study path uses the live prototype instead.



OUTCOME + NEXT GATE
A coherent exchange model—not a measured impact claim.
The concept demonstrates how two people can inspect fit, agree to boundaries, keep a schedule visible, and close an exchange. User impact remains unmeasured.
One inspectable offer / need pair
One shared state from consent to closure
One clear next action at every phase
NEXT VALIDATION
Test the responsible edges before expanding discovery.
- Can people explain the reciprocal pair and identify the current state?
- Do trust cues help without creating false confidence?
- Can both people locate revise, cancel, report, and completion actions?
- Audit keyboard, screen-reader, zoom, contrast, and touch-target behavior.
REFLECTIONThe hard part was not helping people discover skills. It was making a reciprocal commitment legible to both sides.



Skilio