Skip to content
uiprompts.design
ExploreHow it worksBlog
Sign inShare a promptShare
uiprompts.design

A shared practice. An open starting point.

ExploreHow it worksBlogShare a promptPrivacySite useContact
©2026 UI PromptsCreated by Ibrahim Olukokun Early preview · Studies & working prototypes
Explore the library

Give every conversation a next step

Full pagesClarityResponsive
By UI Prompts editorial
Actual Relay interface: ticket table, compact queue summaries, and a separate customer detail panel
Screenshot of the working interfaceView full resolution Open interactive demo
The prompt

A clear task.
A concrete starting point.

The current prompt consolidates the reviewed layout and behavior. Add the optional project setup when using this repository.

Build Relay, a polished, responsive support-queue interface for a team lead who needs to find overdue urgent requests and assign them quickly. Deliver a working code prototype using fictional local data. LAYOUT AND VISUAL DIRECTION Use charcoal layered surfaces, a restrained blue accent, fine borders, clear contrast, and consistent spacing. Support the host site's light/dark preference, with dark mode as the default when no preference exists. Use readable interface text, approximately 12–14px for working content, with a clear heading hierarchy and visible interaction states. Use ONE workspace sidebar, approximately 220px wide on desktop. At its top, place the Relay icon beside its wordmark, followed by the Northstar Studio workspace selector-style identity block and a Workspace group containing All tickets, Urgent, and Unassigned views with accurate counts. These views filter the queue. Do not add a second icon rail or duplicate the logo and navigation. Keep the workspace identity block noninteractive unless workspace switching is actually implemented. In the main area, use a compact Tickets heading and supporting sentence. Below it, show four aligned summaries: Open tickets, Urgent, Unassigned, and Longest wait. In every summary, stack the label, a prominent count of approximately 30px, and a short supporting caption VERTICALLY. Place a proportionately larger icon beside that complete stack. Captions must sit below the count, with no overlapping text. Derive all counts from the sample data. Place search plus priority and assignee filters above a desktop list/detail workspace. Use a ticket table with columns for ticket ID, conversation, priority, owner, and waiting time. Conversation cells contain initials avatars, issue subjects, and quieter customer/company text. Keep rows aligned, highlight the selected row subtly, and truncate long subjects without obscuring the full accessible name. Sort longest waits first. Use a distinct detail panel, approximately 325–365px wide on larger screens. Include the ticket ID and open status, requester identity and company, channel, priority, subject, waiting time, original customer message, and assignment controls. Give urgent requests waiting over 24 hours a clear overdue notice. Provide a labeled assignee selector and an explicit update action. Do not introduce AI summaries, confidence scores, or controls without working behavior. DATA AND BEHAVIOR Supply twelve fictional tickets with varied subject lengths, customer names, companies, priorities, owners, waiting times, and Email/Chat channels. Start with three Urgent tickets and four Unassigned tickets. Include RL-1042 from Maya Chen at Orbit Studio, titled “Our team cannot access the workspace,” marked Urgent, Unassigned, and waiting 27 hours. Select it initially on desktop. Offer Alex Morgan, Sam Rivera, and Jordan Lee as assignees, plus Unassigned. Search must match ticket IDs, subjects, customer names, and companies. Combine search, priority, assignee, and queue-view filters. Assignment must update the ticket, list, and relevant counts while retaining active filters. If a ticket stops matching a filter after assignment, remove it from that filtered view and show a confirmation naming its new owner. Show a helpful empty state with a clear-filters action. Provide separately labeled demo controls for loading and a recoverable load error, plus a reset that restores fixtures and filters. Store changes in local session state only; no authentication, external services, or messages sent. RESPONSIVE AND ACCESSIBLE BEHAVIOR On phones, hide the desktop sidebar and provide visible queue-view buttons. Use a two-column summary grid with the same label/count/caption stacks and icons. Turn table rows into readable conversation cards, preserve search and filters, and open ticket details as a separate view with an obvious Back to inbox action. Opening a ticket should bring its detail view into view and transfer focus appropriately; Back should restore focus to its ticket. Avoid horizontal page overflow. Give controls accessible names and visible keyboard focus. Communicate priority and overdue status with text as well as color, and respect reduced-motion preferences. ACCEPTANCE A reviewer can filter to Urgent, find RL-1042, assign it to Alex Morgan, and see the updated owner without losing the Urgent filter; the unassigned count changes from four to three. Search, combined filters, selection, reset, no-results, loading, and retry must work. The phone layout must preserve the same assignment task. Report assumptions or limitations rather than claiming usability or accessibility compliance without testing.
Scroll to read. Copy includes the full prompt.
Inputs, credit and review
INPUTS

The current prompt includes the layout, sample data, and interaction requirements. No screenshot or external assets are required. Optional setup targets this Next.js project; screenshot presentation instructions are separate.

CREDIT

Adaptation: UI Prompts · Source: Esteban Suárez / Vercel

REVIEW

Adapt the brief to your product and review the result with your own content.

01

The task

A support lead needs to find overdue urgent requests, see the customer context, and give each conversation a clear owner.

Try it: find RL-1042, the urgent request waiting 27 hours. Assign it to Alex Morgan and check that your current filters stay in place.

02

What the prototype does

  • Surface urgent and unassigned conversations with clear summaries.
  • Keep the ticket list and customer context together on desktop.
  • Assign a ticket locally while preserving search and filters.

Explore twelve fictional tickets, loading, no-results, and recoverable error states. Narrow screens open ticket details separately, with a back action. Reset restores the sample data.

03

Source and contribution

Brief adapted by UI Prompts, inspired by the support-dashboard example in How to prompt v0 by Esteban Suárez / Vercel.

Our adaptation adds a ticket-assignment task, fictional data, responsive list/detail behavior, and demonstrable states. The Relay name and code were created for this example. The visual direction draws on the reference credited below. No source screenshots or design assets were imported. This is not a reproduction or endorsement by Vercel.

Visual reference: Aivia — Ticket Page , by Ryan Indra for Semusim Team. Its ticket-table structure and focused detail pane informed Relay’s workspace.

04

Using this example

Filter the queue, open a conversation and update its owner. Try the loading, empty and recovery states using the demo controls.

All tickets and customers are fictional. Assignment changes stay in this session, reset on refresh and do not contact a support service.

Optional project setup

For this project's implementation, use the existing Next.js App Router, React, TypeScript, installed Lucide icons, scoped CSS, and shared theme preference. Build at /examples/support-queue. Use the existing project font and no new packages, network requests, or external assets. Keep fixtures and assignment changes in React state; refreshing restores the initial sample data. Treat the prompt as a local prototype brief, not a request to connect a support service.

Download brief, setup, and credit

Explore the result, then adapt the brief. Open the interactive example to try the assignment flow, then adapt the brief to your own product.