feat: adopt @plures/design-dojo as sole UI component library#87
Merged
kayodebristol merged 2 commits intomainfrom Mar 24, 2026
Merged
feat: adopt @plures/design-dojo as sole UI component library#87kayodebristol merged 2 commits intomainfrom
kayodebristol merged 2 commits intomainfrom
Conversation
- Add packages/design-dojo with Svelte 5 components (Button, Input, Select, Card, Badge, Alert, EmptyState), design tokens CSS, and motion utilities (dojoFade, dojoSlide, dojoScale) - Add packages/eslint-plugin-design-dojo with no-local-primitives and prefer-design-dojo-imports rules; both rules pass with zero violations - Update eslint.config.js to register design-dojo plugin for Svelte files - Update app.css to import design-dojo tokens and use CSS custom props - Refactor all route pages to use design-dojo components exclusively; replace all raw <button>/<input>/<select> with <Button>/<Input>/<Select> - Replace all hard-coded hex colors and px values with design tokens Co-authored-by: kayodebristol <3579196+kayodebristol@users.noreply.github.com> Agent-Logs-Url: https://github.com/plures/FinancialAdvisor/sessions/5e9e10b4-f805-4f46-a10e-505611e1612d
Copilot
AI
changed the title
[WIP] Adopt design-dojo as sole UI component library
feat: adopt @plures/design-dojo as sole UI component library
Mar 24, 2026
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace all ad-hoc local UI primitives with
@plures/design-dojocomponents and enforce the constraint via ESLint. Every route page now uses design tokens exclusively — zero hard-coded hex colors orpxspacing values remain.New packages
packages/design-dojo(@plures/design-dojo)Svelte 5 runes-based component library, ships
.sveltesources for SvelteKit to process.Button(variant + size),Input,Select(custom chevron, auto-ID via module counter),Card(padding/elevation/slots),Badge,Alert,EmptyStatetokens.css: full--color-*,--space-*,--font-*,--radius-*,--shadow-*,--motion-*,--z-*scaledojoFade,dojoSlide,dojoScaletransitions backed by token valuespackages/eslint-plugin-design-dojo(@plures/eslint-plugin-design-dojo)Flat-config ESLint plugin that enforces adoption at the lint layer.
no-local-primitives(error): flags raw<button>,<input>,<select>,<textarea>in.sveltefiles; ignores PascalCase components via exact-case matchingprefer-design-dojo-imports(warn): flags known dojo component names imported from local paths ($lib/components,$lib/ui, etc.)Root-level changes
package.json: both new packages added asfile:workspace referenceseslint.config.js:design-dojoplugin registered for**/*.sveltesrc/app.css:@import '@plures/design-dojo/tokens.css';bodyusesvar(--font-family-sans)etc.Route page refactors
All seven route pages (
+page, accounts, transactions, budgets, goals, reports, settings) updated:<button>/<input>/<select>replaced with dojo equivalentsvar(--color-*)/var(--space-*)tokensdojoSlidetransition on add-forms;dojoFadeon modal backdropsaria-labelledbyon modal dialogs,aria-labelon progressbars, visiblelabelprop on all form fieldsOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.