
design-theming
by bretuobay
Web Loom is a lightweight, framework-agnostic toolkit offering MVVM architecture, state stores, event bus utilities, and headless UI behaviors for modern web apps.
SKILL.md
name: design-theming
description: Use @web-loom/design-core to theme apps with a flat/paper look and follow the UX/UI guidance captured in apps/mvvm-react-integrated. Trigger this skill for theming questions, setting up token+theme pipelines, or aligning new screens with the repo’s flat design system.
Design theming with Design Core
Apply this skill whenever the task is about theming an app/package, explaining flat/paper design choices, or wiring the Design Core tokens/custom CSS into a workspace UI (React, Angular, Vue, or vanilla). The reference integration lives in apps/mvvm-react-integrated/DESIGN-SYSTEM-INTEGRATION.md, which mirrors the packages/design-core/README.md token+utility APIs.
Build your theme stack
- Load tokens early: import
@web-loom/design-core/src/css/*.css(ordesign-system) before the app renders so CSS variables are ready for layout and component styles. UsegenerateCssVariablesString/applyThemeto inject runtime CSS when you need to compute tokens in JS. - Compose semantic overrides in
apps/mvvm-react-integrated/src/styles/tokens.css(e.g.,--card-bg,--card-border) so the flat/paper look stays consistent. Keep those semantic tokens tied to Design Core values and share them across components. - Mirror the integration architecture diagram (app components → semantic tokens → design-core tokens → ThemeProvider) by introducing a
ThemeProviderthat loads both light/dark overrides and exposesuseTheme/toggleThemehooks. Persist the preference (localStorage +prefers-color-scheme) and always exposesetTheme(themeName)to update the[data-theme]attribute.
Flat/paper UI guidelines
- Emphasize solid backgrounds and visible borders instead of gradients or dramatic shadows. Use tokens like
--colors-background-surface,--shadows-sm,--card-border, and--radii-mdto achieve the paper feel described in the reference doc. - Prefer bold typography, clear spacing (
--spacing-m,--spacing-l), and saturated brand colors (blue/purple/green/red) for actionable elements. Keep hover/focus states subtle (slight border color changes ortranslateY(-1px)lifts) to stay on the flat design spectrum. - Ensure accessibility: focus rings (
outline: 2px solid var(--colors-brand-primary)), WCAG AA contrast for light/dark tokens, and screen-reader friendly semantics for interactive controls (ARIA labels, keyboard navigation).
Component and theme verification
- Use the existing cards, buttons, headers, and dashboard styles in
apps/mvvm-react-integratedas examples—copy the class patterns (.card,.page-header,.nav-link) and update them to consume semantic tokens. - When introducing new layouts, verify both themes (light/dark) by toggling the ThemeProvider switch and re-running
npm run devfor that app. Automated tests cansetTheme('light')/setTheme('dark')before snapshotting UI. - Document any new color/spacing tokens you add beside the existing
styles/tokens.cssentries so future designers know the flat/paper language you are extending.
Refer to references/design-core-flat-guidelines.md for the distilled instructions from the integration guide, and consult packages/design-core/README.md whenever you need implementation specifics (token APIs, utilities, CSS imports).
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon
