Standardize Empty/Skeleton states across Dokploy UI for consistency, accessibility, and reduced layout shift
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 37.4k
- Forks
- 3k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 73
Description
What problem will this feature address?
The UI currently shows inconsistent loading and empty states (plain text, different layouts, mixed affordances). This causes visual jitter, unclear guidance, and uneven UX across dashboards and dialogs. It also makes the UI harder to scan and less accessible for keyboard and screen-reader users.
Describe the solution you'd like
Adopt a single Empty/Skeleton pattern (shadcn Empty + Skeleton) across all dashboards, dialogs, tables, and selectors. Replace text-only “Loading…” and “No results” blocks with consistent Empty layouts and use EmptyContent for CTAs. Add a reusable ListSkeleton helper to standardize list loading layouts. Ensure key flows (projects, servers, requests, monitoring, deployments, schedules, backups, providers, domains, settings) use the same approach.
Additional context
No response
Will you send a PR to implement it?
Yes
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inventorying the dashboards, dialogs, tables, and selectors named in the issue, then inspect the current Empty and Skeleton usage. The work is done when the listed flows use consistent Empty layouts, EmptyContent CTAs, and ListSkeleton loading states without text-only loading or empty blocks.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- accessibility, design, frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100