designkit-ai 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AI-AGENT.md +51 -0
- package/LICENSE +21 -0
- package/README.md +517 -0
- package/bin/designkit.js +61 -0
- package/components/_index.md +81 -0
- package/components/app-mobile/README.md +117 -0
- package/components/app-mobile/badges/badge-count.html +9 -0
- package/components/app-mobile/badges/badge-dot.html +9 -0
- package/components/app-mobile/badges/badge-large.html +9 -0
- package/components/app-mobile/buttons/button-filled.html +9 -0
- package/components/app-mobile/buttons/button-icon.html +11 -0
- package/components/app-mobile/buttons/button-outlined.html +9 -0
- package/components/app-mobile/buttons/button-text.html +9 -0
- package/components/app-mobile/buttons/button-tonal.html +9 -0
- package/components/app-mobile/buttons/fab-extended.html +12 -0
- package/components/app-mobile/buttons/fab-small.html +11 -0
- package/components/app-mobile/buttons/fab.html +11 -0
- package/components/app-mobile/buttons/icon-button-filled.html +11 -0
- package/components/app-mobile/buttons/icon-button-tonal.html +11 -0
- package/components/app-mobile/buttons/segmented-button.html +13 -0
- package/components/app-mobile/cards/card-elevated.html +15 -0
- package/components/app-mobile/cards/card-filled.html +15 -0
- package/components/app-mobile/cards/card-outlined.html +15 -0
- package/components/app-mobile/charts/bar-chart.html +20 -0
- package/components/app-mobile/charts/donut-chart.html +20 -0
- package/components/app-mobile/charts/horizontal-bar.html +15 -0
- package/components/app-mobile/charts/line-chart.html +26 -0
- package/components/app-mobile/charts/progress-ring.html +17 -0
- package/components/app-mobile/charts/sparkline.html +11 -0
- package/components/app-mobile/charts/stat-card.html +18 -0
- package/components/app-mobile/chips/chip-assist.html +12 -0
- package/components/app-mobile/chips/chip-filter.html +12 -0
- package/components/app-mobile/chips/chip-input.html +14 -0
- package/components/app-mobile/chips/chip-suggestion.html +9 -0
- package/components/app-mobile/data-display/avatar-group.html +35 -0
- package/components/app-mobile/dialogs/dialog-basic.html +16 -0
- package/components/app-mobile/dialogs/dialog-fullscreen.html +18 -0
- package/components/app-mobile/dividers/divider-full.html +9 -0
- package/components/app-mobile/dividers/divider-inset.html +9 -0
- package/components/app-mobile/ecommerce/cart-item.html +29 -0
- package/components/app-mobile/ecommerce/cart-summary.html +31 -0
- package/components/app-mobile/ecommerce/color-selector.html +17 -0
- package/components/app-mobile/ecommerce/order-status.html +25 -0
- package/components/app-mobile/ecommerce/product-detail-hero.html +45 -0
- package/components/app-mobile/ecommerce/size-selector.html +17 -0
- package/components/app-mobile/ecommerce/wishlist-item.html +22 -0
- package/components/app-mobile/education/assignment-card.html +24 -0
- package/components/app-mobile/education/certificate.html +30 -0
- package/components/app-mobile/education/course-card.html +32 -0
- package/components/app-mobile/education/grade-report.html +53 -0
- package/components/app-mobile/education/lesson-progress.html +21 -0
- package/components/app-mobile/education/quiz-mcq.html +35 -0
- package/components/app-mobile/education/quiz-truefalse.html +26 -0
- package/components/app-mobile/education/student-dashboard.html +57 -0
- package/components/app-mobile/feedback/banner.html +13 -0
- package/components/app-mobile/feedback/progress-circular.html +14 -0
- package/components/app-mobile/feedback/progress-linear.html +11 -0
- package/components/app-mobile/feedback/skeleton.html +20 -0
- package/components/app-mobile/feedback/snackbar.html +15 -0
- package/components/app-mobile/feedback/tooltip.html +9 -0
- package/components/app-mobile/finance/bank-account-card.html +36 -0
- package/components/app-mobile/finance/budget-category.html +24 -0
- package/components/app-mobile/finance/credit-score.html +29 -0
- package/components/app-mobile/finance/investment-portfolio.html +52 -0
- package/components/app-mobile/finance/transaction-row.html +26 -0
- package/components/app-mobile/finance/transfer-form.html +42 -0
- package/components/app-mobile/fitness/body-metrics.html +41 -0
- package/components/app-mobile/fitness/calorie-tracker.html +48 -0
- package/components/app-mobile/fitness/exercise-timer.html +30 -0
- package/components/app-mobile/fitness/meal-plan.html +36 -0
- package/components/app-mobile/fitness/sleep-tracker.html +50 -0
- package/components/app-mobile/fitness/workout-card.html +37 -0
- package/components/app-mobile/food/cuisine-filter.html +39 -0
- package/components/app-mobile/food/menu-item.html +25 -0
- package/components/app-mobile/food/order-tracker.html +46 -0
- package/components/app-mobile/food/restaurant-card.html +34 -0
- package/components/app-mobile/food/review-card.html +35 -0
- package/components/app-mobile/food/table-reservation.html +42 -0
- package/components/app-mobile/forms/form-address.html +41 -0
- package/components/app-mobile/forms/form-payment.html +37 -0
- package/components/app-mobile/forms/form-profile.html +39 -0
- package/components/app-mobile/forms/time-picker.html +28 -0
- package/components/app-mobile/healthcare/appointment-card.html +26 -0
- package/components/app-mobile/healthcare/doctor-profile.html +32 -0
- package/components/app-mobile/healthcare/health-metric-chart.html +51 -0
- package/components/app-mobile/healthcare/insurance-card.html +35 -0
- package/components/app-mobile/healthcare/lab-results.html +23 -0
- package/components/app-mobile/healthcare/medication-reminder.html +24 -0
- package/components/app-mobile/healthcare/symptom-checker.html +42 -0
- package/components/app-mobile/healthcare/vitals-dashboard.html +56 -0
- package/components/app-mobile/inputs/date-picker.html +68 -0
- package/components/app-mobile/inputs/file-upload.html +13 -0
- package/components/app-mobile/inputs/otp-input.html +16 -0
- package/components/app-mobile/inputs/password-field.html +13 -0
- package/components/app-mobile/inputs/search-bar.html +17 -0
- package/components/app-mobile/inputs/select.html +17 -0
- package/components/app-mobile/inputs/text-field-filled.html +12 -0
- package/components/app-mobile/inputs/text-field-outlined.html +12 -0
- package/components/app-mobile/inputs/textarea.html +12 -0
- package/components/app-mobile/inputs/time-picker.html +33 -0
- package/components/app-mobile/job/application-status.html +18 -0
- package/components/app-mobile/job/interview-schedule.html +32 -0
- package/components/app-mobile/lists/list-item-1line.html +14 -0
- package/components/app-mobile/lists/list-item-2line.html +20 -0
- package/components/app-mobile/lists/list-item-3line.html +17 -0
- package/components/app-mobile/logistics/delivery-map.html +40 -0
- package/components/app-mobile/logistics/driver-card.html +25 -0
- package/components/app-mobile/logistics/package-tracker.html +42 -0
- package/components/app-mobile/logistics/shipment-row.html +20 -0
- package/components/app-mobile/media/audio-player.html +38 -0
- package/components/app-mobile/media/image-carousel.html +28 -0
- package/components/app-mobile/menus/menu-context.html +13 -0
- package/components/app-mobile/menus/menu-dropdown.html +14 -0
- package/components/app-mobile/native/gesture-nav-bar.html +11 -0
- package/components/app-mobile/native/ios-action-sheet.html +19 -0
- package/components/app-mobile/native/ios-alert.html +18 -0
- package/components/app-mobile/native/ios-home-indicator.html +11 -0
- package/components/app-mobile/native/ios-list-cell.html +14 -0
- package/components/app-mobile/native/ios-nav-bar.html +16 -0
- package/components/app-mobile/native/ios-page-sheet.html +17 -0
- package/components/app-mobile/native/ios-search-bar.html +15 -0
- package/components/app-mobile/native/ios-segmented-control.html +13 -0
- package/components/app-mobile/native/ios-status-bar.html +17 -0
- package/components/app-mobile/native/ios-tab-bar.html +31 -0
- package/components/app-mobile/native/ios-wheel-picker.html +34 -0
- package/components/app-mobile/native/notification-item.html +19 -0
- package/components/app-mobile/native/permission-dialog.html +18 -0
- package/components/app-mobile/native/status-bar.html +16 -0
- package/components/app-mobile/navbars/bottom-app-bar.html +19 -0
- package/components/app-mobile/navbars/bottom-nav-3.html +28 -0
- package/components/app-mobile/navbars/bottom-nav-4.html +26 -0
- package/components/app-mobile/navbars/bottom-nav-5.html +30 -0
- package/components/app-mobile/navbars/top-app-bar-center.html +17 -0
- package/components/app-mobile/navbars/top-app-bar-large.html +20 -0
- package/components/app-mobile/navbars/top-app-bar-medium.html +20 -0
- package/components/app-mobile/navbars/top-app-bar-small.html +22 -0
- package/components/app-mobile/navigation/back-header.html +32 -0
- package/components/app-mobile/navigation/segmented-control.html +19 -0
- package/components/app-mobile/navigation/stepper-vertical.html +65 -0
- package/components/app-mobile/patterns/accordion.html +20 -0
- package/components/app-mobile/patterns/activity-feed.html +26 -0
- package/components/app-mobile/patterns/audio-waveform.html +34 -0
- package/components/app-mobile/patterns/avatar-group.html +14 -0
- package/components/app-mobile/patterns/breadcrumb.html +15 -0
- package/components/app-mobile/patterns/calendar-month.html +56 -0
- package/components/app-mobile/patterns/camera-viewfinder.html +33 -0
- package/components/app-mobile/patterns/card-horizontal.html +15 -0
- package/components/app-mobile/patterns/cart-item.html +23 -0
- package/components/app-mobile/patterns/category-pills.html +15 -0
- package/components/app-mobile/patterns/chat-bubble-received.html +15 -0
- package/components/app-mobile/patterns/chat-bubble-sent.html +14 -0
- package/components/app-mobile/patterns/chat-conversation.html +27 -0
- package/components/app-mobile/patterns/chat-input-bar.html +13 -0
- package/components/app-mobile/patterns/code-editor.html +29 -0
- package/components/app-mobile/patterns/comment-item.html +15 -0
- package/components/app-mobile/patterns/contact-card.html +19 -0
- package/components/app-mobile/patterns/data-table.html +25 -0
- package/components/app-mobile/patterns/empty-state.html +19 -0
- package/components/app-mobile/patterns/error-screen.html +14 -0
- package/components/app-mobile/patterns/event-card.html +22 -0
- package/components/app-mobile/patterns/image-editor.html +34 -0
- package/components/app-mobile/patterns/image-grid.html +16 -0
- package/components/app-mobile/patterns/login-form.html +22 -0
- package/components/app-mobile/patterns/map-card.html +19 -0
- package/components/app-mobile/patterns/media-player.html +26 -0
- package/components/app-mobile/patterns/notification-list.html +25 -0
- package/components/app-mobile/patterns/onboarding-slide.html +24 -0
- package/components/app-mobile/patterns/order-summary.html +16 -0
- package/components/app-mobile/patterns/order-tracker.html +27 -0
- package/components/app-mobile/patterns/pagination.html +17 -0
- package/components/app-mobile/patterns/post-card.html +28 -0
- package/components/app-mobile/patterns/product-card.html +26 -0
- package/components/app-mobile/patterns/profile-header.html +18 -0
- package/components/app-mobile/patterns/rating-stars.html +15 -0
- package/components/app-mobile/patterns/review-card.html +22 -0
- package/components/app-mobile/patterns/search-results.html +35 -0
- package/components/app-mobile/patterns/settings-group.html +30 -0
- package/components/app-mobile/patterns/stepper-horizontal.html +24 -0
- package/components/app-mobile/patterns/story-circle.html +16 -0
- package/components/app-mobile/patterns/swipe-action.html +19 -0
- package/components/app-mobile/patterns/tag-pills.html +14 -0
- package/components/app-mobile/patterns/timeline-item.html +19 -0
- package/components/app-mobile/patterns/todo-item.html +18 -0
- package/components/app-mobile/patterns/video-editor-timeline.html +36 -0
- package/components/app-mobile/patterns/video-player.html +33 -0
- package/components/app-mobile/patterns/wallet-card.html +18 -0
- package/components/app-mobile/sliders/slider-continuous.html +14 -0
- package/components/app-mobile/sliders/slider-discrete.html +21 -0
- package/components/app-mobile/social/chat-bubble-received.html +15 -0
- package/components/app-mobile/social/chat-bubble-sent.html +16 -0
- package/components/app-mobile/social/notification-item.html +17 -0
- package/components/app-mobile/social/post-card.html +46 -0
- package/components/app-mobile/social/reaction-bar.html +29 -0
- package/components/app-mobile/social/story-circle.html +15 -0
- package/components/app-mobile/social/user-profile-card.html +29 -0
- package/components/app-mobile/surfaces/bottom-sheet.html +23 -0
- package/components/app-mobile/surfaces/nav-drawer.html +20 -0
- package/components/app-mobile/surfaces/nav-rail.html +14 -0
- package/components/app-mobile/surfaces/side-sheet.html +17 -0
- package/components/app-mobile/tabs/tabs-primary.html +13 -0
- package/components/app-mobile/tabs/tabs-secondary.html +13 -0
- package/components/app-mobile/toggles/checkbox.html +14 -0
- package/components/app-mobile/toggles/radio.html +14 -0
- package/components/app-mobile/toggles/switch.html +11 -0
- package/components/app-mobile/travel/booking-summary.html +51 -0
- package/components/app-mobile/travel/flight-card.html +41 -0
- package/components/app-mobile/travel/hotel-card.html +35 -0
- package/components/app-mobile/travel/itinerary-item.html +29 -0
- package/components/app-mobile/travel/map-pins.html +42 -0
- package/components/app-mobile/travel/travel-date-picker.html +72 -0
- package/components/common/decorations/abstract-lines.html +30 -0
- package/components/common/decorations/circle-rings.html +26 -0
- package/components/common/decorations/corner-decoration.html +27 -0
- package/components/common/decorations/dots-pattern.html +51 -0
- package/components/common/decorations/gradient-blob.html +19 -0
- package/components/common/decorations/mesh-gradient.html +32 -0
- package/components/common/decorations/sparkle-burst.html +35 -0
- package/components/common/decorations/wave-divider.html +17 -0
- package/components/common/illustrations/empty-cart.html +27 -0
- package/components/common/illustrations/empty-inbox.html +28 -0
- package/components/common/illustrations/empty-search.html +26 -0
- package/components/common/illustrations/error-404.html +29 -0
- package/components/common/illustrations/no-data.html +31 -0
- package/components/common/illustrations/success-check.html +33 -0
- package/components/common/illustrations/upload-cloud.html +23 -0
- package/components/common/illustrations/welcome.html +31 -0
- package/components/common/mockup-elements/avatar-placeholder.html +17 -0
- package/components/common/mockup-elements/browser-chrome.html +37 -0
- package/components/common/mockup-elements/chart-bar.html +42 -0
- package/components/common/mockup-elements/image-placeholder.html +27 -0
- package/components/common/mockup-elements/laptop-frame.html +32 -0
- package/components/common/mockup-elements/map-placeholder.html +39 -0
- package/components/common/mockup-elements/phone-frame.html +29 -0
- package/components/common/mockup-elements/status-bar-android.html +30 -0
- package/components/common/mockup-elements/status-bar-ios.html +26 -0
- package/components/common/mockup-elements/video-placeholder.html +29 -0
- package/components/common/ui-icons/icon-add-circle.html +12 -0
- package/components/common/ui-icons/icon-airdrop.html +10 -0
- package/components/common/ui-icons/icon-airplay.html +10 -0
- package/components/common/ui-icons/icon-apple-logo.html +10 -0
- package/components/common/ui-icons/icon-arrow-back.html +11 -0
- package/components/common/ui-icons/icon-arrow-down.html +10 -0
- package/components/common/ui-icons/icon-arrow-right.html +10 -0
- package/components/common/ui-icons/icon-arrow-up.html +10 -0
- package/components/common/ui-icons/icon-bag.html +10 -0
- package/components/common/ui-icons/icon-battery.html +10 -0
- package/components/common/ui-icons/icon-bluetooth.html +10 -0
- package/components/common/ui-icons/icon-bolt.html +10 -0
- package/components/common/ui-icons/icon-bookmark-fill.html +10 -0
- package/components/common/ui-icons/icon-bookmark.html +10 -0
- package/components/common/ui-icons/icon-bubble-left.html +10 -0
- package/components/common/ui-icons/icon-calendar.html +19 -0
- package/components/common/ui-icons/icon-camera.html +11 -0
- package/components/common/ui-icons/icon-cart.html +10 -0
- package/components/common/ui-icons/icon-checkmark.html +10 -0
- package/components/common/ui-icons/icon-chevron-down.html +10 -0
- package/components/common/ui-icons/icon-chevron-left.html +10 -0
- package/components/common/ui-icons/icon-chevron-right.html +10 -0
- package/components/common/ui-icons/icon-chevron-up.html +10 -0
- package/components/common/ui-icons/icon-clock.html +10 -0
- package/components/common/ui-icons/icon-creditcard.html +10 -0
- package/components/common/ui-icons/icon-doc.html +10 -0
- package/components/common/ui-icons/icon-download.html +10 -0
- package/components/common/ui-icons/icon-ellipsis-vertical.html +10 -0
- package/components/common/ui-icons/icon-ellipsis.html +10 -0
- package/components/common/ui-icons/icon-envelope.html +10 -0
- package/components/common/ui-icons/icon-eye-slash.html +10 -0
- package/components/common/ui-icons/icon-eye.html +10 -0
- package/components/common/ui-icons/icon-faceid.html +10 -0
- package/components/common/ui-icons/icon-favorite.html +10 -0
- package/components/common/ui-icons/icon-folder.html +10 -0
- package/components/common/ui-icons/icon-globe.html +10 -0
- package/components/common/ui-icons/icon-heart-fill.html +10 -0
- package/components/common/ui-icons/icon-heart.html +10 -0
- package/components/common/ui-icons/icon-home.html +10 -0
- package/components/common/ui-icons/icon-link.html +10 -0
- package/components/common/ui-icons/icon-list-bullet.html +10 -0
- package/components/common/ui-icons/icon-location.html +11 -0
- package/components/common/ui-icons/icon-lock.html +10 -0
- package/components/common/ui-icons/icon-magnifying-glass.html +10 -0
- package/components/common/ui-icons/icon-map.html +10 -0
- package/components/common/ui-icons/icon-menu-hamburger.html +12 -0
- package/components/common/ui-icons/icon-mic.html +10 -0
- package/components/common/ui-icons/icon-minus.html +10 -0
- package/components/common/ui-icons/icon-notification.html +11 -0
- package/components/common/ui-icons/icon-paperplane.html +10 -0
- package/components/common/ui-icons/icon-pause.html +10 -0
- package/components/common/ui-icons/icon-pencil.html +10 -0
- package/components/common/ui-icons/icon-person-2.html +10 -0
- package/components/common/ui-icons/icon-person-crop-circle.html +10 -0
- package/components/common/ui-icons/icon-phone-fill.html +10 -0
- package/components/common/ui-icons/icon-photo.html +10 -0
- package/components/common/ui-icons/icon-play-fill.html +10 -0
- package/components/common/ui-icons/icon-plus.html +10 -0
- package/components/common/ui-icons/icon-profile.html +11 -0
- package/components/common/ui-icons/icon-qrcode.html +10 -0
- package/components/common/ui-icons/icon-settings.html +11 -0
- package/components/common/ui-icons/icon-share.html +14 -0
- package/components/common/ui-icons/icon-slider-horizontal.html +10 -0
- package/components/common/ui-icons/icon-square-grid.html +10 -0
- package/components/common/ui-icons/icon-star-fill.html +10 -0
- package/components/common/ui-icons/icon-star.html +10 -0
- package/components/common/ui-icons/icon-touchid.html +10 -0
- package/components/common/ui-icons/icon-trash.html +10 -0
- package/components/common/ui-icons/icon-upload.html +10 -0
- package/components/common/ui-icons/icon-video.html +10 -0
- package/components/common/ui-icons/icon-wifi.html +10 -0
- package/components/common/ui-icons/icon-xmark.html +10 -0
- package/components/componentmap-app-mobile.md +210 -0
- package/components/componentmap-web.md +206 -0
- package/components/web/README.md +110 -0
- package/components/web/account/payment-method.html +13 -0
- package/components/web/account/profile-card.html +18 -0
- package/components/web/account/subscription-card.html +21 -0
- package/components/web/badges/badge-set.html +14 -0
- package/components/web/buttons/button-danger.html +10 -0
- package/components/web/buttons/button-ghost.html +10 -0
- package/components/web/buttons/button-group.html +12 -0
- package/components/web/buttons/button-icon.html +10 -0
- package/components/web/buttons/button-primary.html +11 -0
- package/components/web/buttons/button-secondary.html +10 -0
- package/components/web/cards/card-basic.html +11 -0
- package/components/web/cards/card-feature.html +12 -0
- package/components/web/cards/card-image.html +16 -0
- package/components/web/cards/card-pricing.html +21 -0
- package/components/web/cards/card-stat.html +15 -0
- package/components/web/cards/card-testimonial.html +21 -0
- package/components/web/cart/cart-page.html +30 -0
- package/components/web/cart/checkout-form.html +27 -0
- package/components/web/cart/order-confirmation.html +24 -0
- package/components/web/charts/chart-area.html +25 -0
- package/components/web/charts/chart-bar.html +19 -0
- package/components/web/charts/chart-donut.html +27 -0
- package/components/web/content/author-card.html +15 -0
- package/components/web/content/blog-card-horizontal.html +16 -0
- package/components/web/cta/cta-centered.html +15 -0
- package/components/web/cta/cta-newsletter.html +16 -0
- package/components/web/cta/cta-with-image.html +17 -0
- package/components/web/data-display/accordion.html +45 -0
- package/components/web/data-display/grid-view.html +21 -0
- package/components/web/data-display/list-view.html +27 -0
- package/components/web/data-display/progress-steps.html +39 -0
- package/components/web/data-display/rating-stars.html +38 -0
- package/components/web/data-display/stat-card-compact.html +32 -0
- package/components/web/data-display/stat-card-large.html +34 -0
- package/components/web/data-display/table-selectable.html +127 -0
- package/components/web/data-display/table-sortable.html +120 -0
- package/components/web/data-display/tag-group.html +25 -0
- package/components/web/data-display/timeline-horizontal.html +55 -0
- package/components/web/data-display/timeline-vertical.html +76 -0
- package/components/web/data-display/tree-view.html +86 -0
- package/components/web/dividers/divider-text.html +8 -0
- package/components/web/ecommerce/coupon-input.html +11 -0
- package/components/web/ecommerce/product-card-grid.html +29 -0
- package/components/web/ecommerce/product-card-list.html +32 -0
- package/components/web/features/features-alternating.html +35 -0
- package/components/web/features/features-bento.html +43 -0
- package/components/web/features/features-icon-list.html +44 -0
- package/components/web/feedback/alert-banner.html +12 -0
- package/components/web/feedback/empty-state-error.html +18 -0
- package/components/web/feedback/empty-state-no-data.html +18 -0
- package/components/web/feedback/empty-state-no-search.html +15 -0
- package/components/web/feedback/empty-state.html +16 -0
- package/components/web/feedback/loading-spinner.html +14 -0
- package/components/web/feedback/progress-bar.html +11 -0
- package/components/web/feedback/skeleton-card.html +17 -0
- package/components/web/feedback/skeleton-list.html +45 -0
- package/components/web/feedback/skeleton.html +16 -0
- package/components/web/feedback/toast-error.html +12 -0
- package/components/web/feedback/toast-info.html +12 -0
- package/components/web/feedback/toast-success.html +12 -0
- package/components/web/feedback/tooltip.html +8 -0
- package/components/web/forms/date-picker.html +67 -0
- package/components/web/forms/file-upload.html +16 -0
- package/components/web/forms/form-contact.html +35 -0
- package/components/web/forms/form-login.html +29 -0
- package/components/web/forms/form-search-filters.html +57 -0
- package/components/web/forms/form-signup.html +35 -0
- package/components/web/heroes/hero-gradient.html +20 -0
- package/components/web/heroes/hero-image-bg.html +21 -0
- package/components/web/heroes/hero-video.html +17 -0
- package/components/web/inputs/checkbox.html +11 -0
- package/components/web/inputs/date-input.html +15 -0
- package/components/web/inputs/file-upload.html +12 -0
- package/components/web/inputs/radio-group.html +15 -0
- package/components/web/inputs/search-command.html +12 -0
- package/components/web/inputs/select.html +14 -0
- package/components/web/inputs/tag-input.html +15 -0
- package/components/web/inputs/text-input.html +11 -0
- package/components/web/inputs/textarea.html +11 -0
- package/components/web/inputs/toggle.html +11 -0
- package/components/web/job/candidate-profile.html +47 -0
- package/components/web/job/job-listing.html +44 -0
- package/components/web/job/resume-section.html +41 -0
- package/components/web/job/salary-range.html +19 -0
- package/components/web/layout/cta-banner.html +15 -0
- package/components/web/layout/features-grid.html +31 -0
- package/components/web/layout/hero-centered.html +19 -0
- package/components/web/layout/hero-split.html +21 -0
- package/components/web/layout/pricing-section.html +37 -0
- package/components/web/layout/stats-row.html +13 -0
- package/components/web/logos/logo-grid.html +20 -0
- package/components/web/logos/logo-ticker.html +19 -0
- package/components/web/marketing/cta-simple.html +18 -0
- package/components/web/marketing/cta-split.html +20 -0
- package/components/web/marketing/faq-accordion.html +55 -0
- package/components/web/marketing/feature-centered.html +35 -0
- package/components/web/marketing/feature-grid-2col.html +58 -0
- package/components/web/marketing/feature-grid-3col.html +44 -0
- package/components/web/marketing/footer-complex.html +86 -0
- package/components/web/marketing/footer-simple.html +59 -0
- package/components/web/marketing/hero-centered.html +44 -0
- package/components/web/marketing/hero-split-left.html +41 -0
- package/components/web/marketing/hero-split-right.html +35 -0
- package/components/web/marketing/logo-cloud.html +18 -0
- package/components/web/marketing/newsletter-signup.html +25 -0
- package/components/web/marketing/pricing-3tier.html +72 -0
- package/components/web/marketing/pricing-toggle.html +85 -0
- package/components/web/marketing/social-proof-bar.html +32 -0
- package/components/web/marketing/stats-row.html +45 -0
- package/components/web/marketing/team-grid.html +65 -0
- package/components/web/marketing/testimonial-carousel.html +45 -0
- package/components/web/marketing/testimonial-grid.html +75 -0
- package/components/web/media/blog-post-card.html +24 -0
- package/components/web/media/comment-single.html +26 -0
- package/components/web/media/image-gallery-grid.html +18 -0
- package/components/web/media/rich-text-block.html +20 -0
- package/components/web/media/testimonial-quote.html +20 -0
- package/components/web/media/video-player.html +44 -0
- package/components/web/menus/dropdown-menu.html +14 -0
- package/components/web/metrics/kpi-row.html +13 -0
- package/components/web/modals/modal-basic.html +21 -0
- package/components/web/modals/modal-form.html +22 -0
- package/components/web/navbars/breadcrumb.html +14 -0
- package/components/web/navbars/footer.html +35 -0
- package/components/web/navbars/sidebar-dark.html +21 -0
- package/components/web/navbars/sidebar.html +23 -0
- package/components/web/navbars/topnav-search.html +25 -0
- package/components/web/navbars/topnav.html +20 -0
- package/components/web/navigation/mega-menu.html +92 -0
- package/components/web/navigation/pagination.html +43 -0
- package/components/web/navigation/sidebar-collapsed.html +93 -0
- package/components/web/navigation/sidebar-expanded.html +121 -0
- package/components/web/navigation/stepper-horizontal.html +51 -0
- package/components/web/patterns/accordion.html +19 -0
- package/components/web/patterns/activity-feed.html +25 -0
- package/components/web/patterns/auth-login.html +24 -0
- package/components/web/patterns/avatar-group.html +13 -0
- package/components/web/patterns/calendar-month.html +44 -0
- package/components/web/patterns/category-pills.html +15 -0
- package/components/web/patterns/chat-web.html +24 -0
- package/components/web/patterns/code-editor.html +34 -0
- package/components/web/patterns/comparison-table.html +39 -0
- package/components/web/patterns/cookie-banner.html +14 -0
- package/components/web/patterns/error-page.html +16 -0
- package/components/web/patterns/file-list.html +24 -0
- package/components/web/patterns/filter-toolbar.html +14 -0
- package/components/web/patterns/kanban-column.html +27 -0
- package/components/web/patterns/notification-list.html +26 -0
- package/components/web/patterns/order-tracker.html +16 -0
- package/components/web/patterns/pagination.html +16 -0
- package/components/web/patterns/product-card-web.html +23 -0
- package/components/web/patterns/settings-form.html +24 -0
- package/components/web/patterns/stepper.html +16 -0
- package/components/web/patterns/user-table-row.html +15 -0
- package/components/web/patterns/video-player.html +26 -0
- package/components/web/presentation/slide-content.html +17 -0
- package/components/web/presentation/slide-title.html +13 -0
- package/components/web/pricing/pricing-table.html +51 -0
- package/components/web/pricing/pricing-toggle.html +62 -0
- package/components/web/print/business-card.html +20 -0
- package/components/web/products/product-card-horizontal.html +19 -0
- package/components/web/products/product-detail.html +39 -0
- package/components/web/products/product-grid.html +13 -0
- package/components/web/products/review-section.html +29 -0
- package/components/web/promotions/coupon-card.html +17 -0
- package/components/web/promotions/promo-banner.html +24 -0
- package/components/web/real-estate/agent-contact.html +32 -0
- package/components/web/real-estate/listing-detail-hero.html +44 -0
- package/components/web/real-estate/price-range-slider.html +20 -0
- package/components/web/real-estate/property-card.html +38 -0
- package/components/web/real-estate/property-map-pin.html +19 -0
- package/components/web/real-estate/virtual-tour-button.html +17 -0
- package/components/web/saas/api-key-row.html +31 -0
- package/components/web/saas/audit-log-row.html +21 -0
- package/components/web/saas/billing-plan.html +50 -0
- package/components/web/saas/kpi-row.html +61 -0
- package/components/web/saas/team-member-row.html +30 -0
- package/components/web/saas/webhook-config.html +44 -0
- package/components/web/screenshots/app-screenshot.html +32 -0
- package/components/web/screenshots/screenshot-gallery.html +45 -0
- package/components/web/social/comment-thread.html +75 -0
- package/components/web/social-media/instagram-post.html +17 -0
- package/components/web/social-proof/logo-cloud.html +18 -0
- package/components/web/social-proof/testimonial-carousel.html +30 -0
- package/components/web/surfaces/slide-over.html +20 -0
- package/components/web/tables/data-table.html +41 -0
- package/components/web/tables/table-simple.html +13 -0
- package/components/web/tabs/tabs-pills.html +12 -0
- package/components/web/tabs/tabs-underline.html +13 -0
- package/components/web/toggles/toggle-dark-mode.html +19 -0
- package/components/web/toggles/toggle-group.html +38 -0
- package/components/web/toggles/toggle-switch.html +14 -0
- package/components/web/widgets/api-key-row.html +16 -0
- package/components/web/widgets/billing-card.html +14 -0
- package/components/web/widgets/changelog-item.html +15 -0
- package/components/web/widgets/integration-card.html +15 -0
- package/components/web/widgets/onboarding-checklist.html +18 -0
- package/components/web/widgets/pricing-toggle.html +13 -0
- package/components/web/widgets/team-member-row.html +13 -0
- package/components/web/widgets/usage-meter.html +12 -0
- package/package.json +46 -0
- package/skills/README.md +35 -0
- package/skills/contribute.md +267 -0
- package/skills/design.md +470 -0
- package/skills/flutter.md +156 -0
- package/skills/nextjs.md +143 -0
- package/skills/react-native.md +258 -0
- package/skills/react.md +171 -0
- package/skills/svelte.md +95 -0
- package/skills/swiftui.md +171 -0
- package/skills/tailwind.md +108 -0
- package/skills/vue.md +111 -0
- package/src/commands/add.js +51 -0
- package/src/commands/convert.js +120 -0
- package/src/commands/design.js +89 -0
- package/src/commands/init.js +136 -0
- package/src/commands/list.js +52 -0
- package/src/commands/search.js +40 -0
- package/src/lib/index.js +100 -0
package/skills/nextjs.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Skill: Next.js (App Router + TypeScript)
|
|
2
|
+
|
|
3
|
+
Build, design, and convert DesignKit UI using Next.js App Router.
|
|
4
|
+
|
|
5
|
+
## Your role
|
|
6
|
+
|
|
7
|
+
You are a Next.js developer with strong UI skills.
|
|
8
|
+
You can:
|
|
9
|
+
- **Design** a page or layout from scratch using the token system
|
|
10
|
+
- **Convert** a DesignKit HTML file into App Router pages + components
|
|
11
|
+
- **Build** a full feature (auth flow, dashboard, marketing page, API route + UI, etc.)
|
|
12
|
+
|
|
13
|
+
Read the request and determine which mode applies.
|
|
14
|
+
|
|
15
|
+
## Token file (output to `lib/tokens.ts`)
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
// lib/tokens.ts
|
|
19
|
+
export const t = {
|
|
20
|
+
primary: '#6366F1',
|
|
21
|
+
primaryText: '#FFFFFF',
|
|
22
|
+
secondary: '#64748B',
|
|
23
|
+
accent: '#F59E0B',
|
|
24
|
+
bg: '#FFFFFF',
|
|
25
|
+
surface: '#F8FAFC',
|
|
26
|
+
surface2: '#F1F5F9',
|
|
27
|
+
text: '#0F172A',
|
|
28
|
+
text2: '#475569',
|
|
29
|
+
text3: '#94A3B8',
|
|
30
|
+
border: '#E2E8F0',
|
|
31
|
+
borderStrong: '#CBD5E1',
|
|
32
|
+
success: '#22C55E',
|
|
33
|
+
error: '#EF4444',
|
|
34
|
+
warning: '#F59E0B',
|
|
35
|
+
radius: '10px',
|
|
36
|
+
radiusSm: '6px',
|
|
37
|
+
radiusLg: '14px',
|
|
38
|
+
radiusFull: '9999px',
|
|
39
|
+
shadow: '0 4px 12px rgba(0,0,0,0.10)',
|
|
40
|
+
shadowSm: '0 1px 3px rgba(0,0,0,0.08)',
|
|
41
|
+
shadowLg: '0 8px 32px rgba(0,0,0,0.12)',
|
|
42
|
+
font: "'Inter', system-ui, sans-serif",
|
|
43
|
+
} as const
|
|
44
|
+
|
|
45
|
+
export type Tokens = typeof t
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Output structure
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
src/
|
|
52
|
+
├── app/
|
|
53
|
+
│ ├── layout.tsx ← RootLayout with font + global tokens
|
|
54
|
+
│ ├── globals.css ← :root { --kit-* } + reset
|
|
55
|
+
│ └── [page-name]/
|
|
56
|
+
│ └── page.tsx ← Page Server Component
|
|
57
|
+
├── components/
|
|
58
|
+
│ ├── ui/
|
|
59
|
+
│ │ ├── Button.tsx
|
|
60
|
+
│ │ ├── Card.tsx
|
|
61
|
+
│ │ └── ...
|
|
62
|
+
│ └── layout/
|
|
63
|
+
│ ├── Navbar.tsx
|
|
64
|
+
│ └── Sidebar.tsx
|
|
65
|
+
└── lib/
|
|
66
|
+
└── tokens.ts
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Component rules
|
|
70
|
+
|
|
71
|
+
```tsx
|
|
72
|
+
// Server Component (default — no interactivity)
|
|
73
|
+
import { t } from '@/lib/tokens'
|
|
74
|
+
|
|
75
|
+
export default function Page() {
|
|
76
|
+
return (
|
|
77
|
+
<main style={{ background: t.bg, minHeight: '100vh' }}>
|
|
78
|
+
...
|
|
79
|
+
</main>
|
|
80
|
+
)
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
```tsx
|
|
85
|
+
// Client Component (needs useState, onClick, etc.)
|
|
86
|
+
'use client'
|
|
87
|
+
import { useState } from 'react'
|
|
88
|
+
import { t } from '@/lib/tokens'
|
|
89
|
+
|
|
90
|
+
export default function InteractiveWidget() {
|
|
91
|
+
const [open, setOpen] = useState(false)
|
|
92
|
+
...
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Rules
|
|
97
|
+
|
|
98
|
+
- **App Router** — never use `pages/` directory
|
|
99
|
+
- **Server Components by default** — only add `'use client'` when needed
|
|
100
|
+
- **`next/link`** for all internal `<a>` tags
|
|
101
|
+
- **`next/image`** for all `<img>` tags, add `width` + `height`
|
|
102
|
+
- **No Tailwind unless asked** — use inline `style={{}}` with `t.*` tokens
|
|
103
|
+
- **TypeScript** everywhere — all props typed
|
|
104
|
+
- **Import tokens from `@/lib/tokens`** — never hardcode hex
|
|
105
|
+
|
|
106
|
+
## globals.css
|
|
107
|
+
|
|
108
|
+
```css
|
|
109
|
+
/* app/globals.css */
|
|
110
|
+
:root {
|
|
111
|
+
--kit-primary: #6366F1;
|
|
112
|
+
--kit-bg: #FFFFFF;
|
|
113
|
+
--kit-surface: #F8FAFC;
|
|
114
|
+
--kit-text: #0F172A;
|
|
115
|
+
--kit-text-2: #475569;
|
|
116
|
+
--kit-border: #E2E8F0;
|
|
117
|
+
--kit-radius: 10px;
|
|
118
|
+
--kit-font: 'Inter', system-ui, sans-serif;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
122
|
+
body { font-family: var(--kit-font); background: var(--kit-bg); color: var(--kit-text); }
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Example prompt
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Read AI-AGENT.md and skills/nextjs.md, then:
|
|
129
|
+
|
|
130
|
+
Design and build a SaaS dashboard with:
|
|
131
|
+
- Sidebar navigation (Logo, 5 menu items, user avatar at bottom)
|
|
132
|
+
- Top header (page title, search, notifications)
|
|
133
|
+
- KPI row (4 stat cards: Revenue, Users, Churn, MRR)
|
|
134
|
+
- Area chart placeholder
|
|
135
|
+
- Recent activity table (5 rows)
|
|
136
|
+
|
|
137
|
+
Output files:
|
|
138
|
+
- src/app/dashboard/page.tsx
|
|
139
|
+
- src/components/layout/Sidebar.tsx
|
|
140
|
+
- src/components/layout/Header.tsx
|
|
141
|
+
- src/components/ui/StatCard.tsx
|
|
142
|
+
- src/lib/tokens.ts
|
|
143
|
+
```
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# Skill: React Native (TypeScript)
|
|
2
|
+
|
|
3
|
+
Build, design, and convert DesignKit UI using React Native.
|
|
4
|
+
|
|
5
|
+
## Your role
|
|
6
|
+
|
|
7
|
+
You are a React Native developer with strong UI skills.
|
|
8
|
+
You can:
|
|
9
|
+
- **Design** a screen from scratch in React Native using the token system
|
|
10
|
+
- **Convert** a DesignKit HTML file to React Native components
|
|
11
|
+
- **Build** a full feature (auth flow, tab navigation, list screen, etc.)
|
|
12
|
+
|
|
13
|
+
Read the request and determine which mode applies.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Token file (`src/tokens.ts`)
|
|
18
|
+
|
|
19
|
+
Always output this file. Import from it everywhere — never hardcode colors or sizes.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
import { Platform } from 'react-native'
|
|
23
|
+
|
|
24
|
+
export const t = {
|
|
25
|
+
// Colors
|
|
26
|
+
primary: '#6366F1',
|
|
27
|
+
primaryText: '#FFFFFF',
|
|
28
|
+
secondary: '#64748B',
|
|
29
|
+
accent: '#F59E0B',
|
|
30
|
+
bg: '#FFFFFF',
|
|
31
|
+
surface: '#F8FAFC',
|
|
32
|
+
surface2: '#F1F5F9',
|
|
33
|
+
text: '#0F172A',
|
|
34
|
+
text2: '#475569',
|
|
35
|
+
text3: '#94A3B8',
|
|
36
|
+
border: '#E2E8F0',
|
|
37
|
+
success: '#22C55E',
|
|
38
|
+
error: '#EF4444',
|
|
39
|
+
warning: '#F59E0B',
|
|
40
|
+
|
|
41
|
+
// Border radius
|
|
42
|
+
radiusSm: 6,
|
|
43
|
+
radius: 10,
|
|
44
|
+
radiusLg: 14,
|
|
45
|
+
radiusXl: 20,
|
|
46
|
+
radiusFull: 9999,
|
|
47
|
+
|
|
48
|
+
// Spacing
|
|
49
|
+
space1: 4,
|
|
50
|
+
space2: 8,
|
|
51
|
+
space3: 12,
|
|
52
|
+
space4: 16,
|
|
53
|
+
space5: 20,
|
|
54
|
+
space6: 24,
|
|
55
|
+
space8: 32,
|
|
56
|
+
space10: 40,
|
|
57
|
+
|
|
58
|
+
// Font sizes
|
|
59
|
+
textXs: 11,
|
|
60
|
+
textSm: 13,
|
|
61
|
+
textMd: 15,
|
|
62
|
+
textLg: 17,
|
|
63
|
+
textXl: 20,
|
|
64
|
+
text2xl: 24,
|
|
65
|
+
text3xl: 32,
|
|
66
|
+
text4xl: 48,
|
|
67
|
+
|
|
68
|
+
// Platform shadows
|
|
69
|
+
shadowSm: Platform.select({
|
|
70
|
+
ios: { shadowColor: '#000', shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.08, shadowRadius: 3 },
|
|
71
|
+
android: { elevation: 2 },
|
|
72
|
+
default: {},
|
|
73
|
+
}),
|
|
74
|
+
shadow: Platform.select({
|
|
75
|
+
ios: { shadowColor: '#000', shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.10, shadowRadius: 12 },
|
|
76
|
+
android: { elevation: 4 },
|
|
77
|
+
default: {},
|
|
78
|
+
}),
|
|
79
|
+
} as const
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Component structure
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
import React, { useState } from 'react'
|
|
88
|
+
import {
|
|
89
|
+
View, Text, ScrollView, Pressable, TextInput,
|
|
90
|
+
StyleSheet, SafeAreaView, Image, FlatList,
|
|
91
|
+
} from 'react-native'
|
|
92
|
+
import { t } from '../tokens'
|
|
93
|
+
|
|
94
|
+
interface Props {
|
|
95
|
+
// typed props
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export default function ScreenName({ }: Props) {
|
|
99
|
+
return (
|
|
100
|
+
<SafeAreaView style={s.safe}>
|
|
101
|
+
<ScrollView style={s.scroll} showsVerticalScrollIndicator={false}>
|
|
102
|
+
{/* content */}
|
|
103
|
+
</ScrollView>
|
|
104
|
+
</SafeAreaView>
|
|
105
|
+
)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const s = StyleSheet.create({
|
|
109
|
+
safe: { flex: 1, backgroundColor: t.bg },
|
|
110
|
+
scroll: { flex: 1 },
|
|
111
|
+
})
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## HTML → React Native mapping
|
|
117
|
+
|
|
118
|
+
| HTML / CSS | React Native |
|
|
119
|
+
|------------|-------------|
|
|
120
|
+
| `<div>` | `<View>` |
|
|
121
|
+
| `display: flex` (default column) | `<View style={{ flexDirection: 'row' }}>` for row |
|
|
122
|
+
| `<p>`, `<span>`, `<h1>` | `<Text>` |
|
|
123
|
+
| `<img>` | `<Image source={{ uri: '...' }} style={{ width, height }} />` |
|
|
124
|
+
| `<button>` | `<Pressable>` |
|
|
125
|
+
| `<input>` | `<TextInput>` |
|
|
126
|
+
| `<a>` | `<Pressable onPress={() => navigation.navigate('X')}>` |
|
|
127
|
+
| `overflow-y: scroll` | `<ScrollView>` |
|
|
128
|
+
| list of items | `<FlatList data={} renderItem={} keyExtractor={} />` |
|
|
129
|
+
| `position: fixed; bottom: 0` | `<View style={{ position: 'absolute', bottom: 0, left: 0, right: 0 }}>` |
|
|
130
|
+
| `border-radius: 10px` | `borderRadius: 10` (no `px`) |
|
|
131
|
+
| `padding: 16px` | `padding: 16` (no `px`) |
|
|
132
|
+
| `gap: 8px` in flex | `gap: 8` (RN 0.71+) or `marginBottom` per item |
|
|
133
|
+
| `flex: 1` | `flex: 1` |
|
|
134
|
+
| `width: 100%` | `alignSelf: 'stretch'` or `flex: 1` |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Common patterns
|
|
139
|
+
|
|
140
|
+
### Card
|
|
141
|
+
```tsx
|
|
142
|
+
<View style={s.card}>
|
|
143
|
+
<Text style={s.cardTitle}>Title</Text>
|
|
144
|
+
<Text style={s.cardSub}>Subtitle</Text>
|
|
145
|
+
</View>
|
|
146
|
+
|
|
147
|
+
// styles
|
|
148
|
+
card: {
|
|
149
|
+
backgroundColor: t.surface,
|
|
150
|
+
borderRadius: t.radiusLg,
|
|
151
|
+
padding: t.space4,
|
|
152
|
+
borderWidth: 1,
|
|
153
|
+
borderColor: t.border,
|
|
154
|
+
...t.shadowSm,
|
|
155
|
+
},
|
|
156
|
+
cardTitle: { fontSize: t.textMd, fontWeight: '600', color: t.text },
|
|
157
|
+
cardSub: { fontSize: t.textSm, color: t.text2, marginTop: 4 },
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Primary button
|
|
161
|
+
```tsx
|
|
162
|
+
<Pressable
|
|
163
|
+
style={({ pressed }) => [s.btn, pressed && s.btnPressed]}
|
|
164
|
+
onPress={onPress}
|
|
165
|
+
>
|
|
166
|
+
<Text style={s.btnLabel}>{label}</Text>
|
|
167
|
+
</Pressable>
|
|
168
|
+
|
|
169
|
+
// styles
|
|
170
|
+
btn: { height: 48, backgroundColor: t.primary, borderRadius: t.radius, alignItems: 'center', justifyContent: 'center' },
|
|
171
|
+
btnPressed: { opacity: 0.85 },
|
|
172
|
+
btnLabel: { fontSize: t.textMd, fontWeight: '600', color: t.primaryText },
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### List item
|
|
176
|
+
```tsx
|
|
177
|
+
<Pressable style={s.item}>
|
|
178
|
+
<View style={s.iconWrap}>
|
|
179
|
+
{/* icon */}
|
|
180
|
+
</View>
|
|
181
|
+
<View style={s.itemBody}>
|
|
182
|
+
<Text style={s.itemTitle}>Label</Text>
|
|
183
|
+
<Text style={s.itemSub}>Subtitle</Text>
|
|
184
|
+
</View>
|
|
185
|
+
<Text style={s.itemTrail}>Value</Text>
|
|
186
|
+
</Pressable>
|
|
187
|
+
|
|
188
|
+
// styles
|
|
189
|
+
item: { flexDirection: 'row', alignItems: 'center', gap: t.space3, paddingVertical: t.space3, borderBottomWidth: 1, borderBottomColor: t.border },
|
|
190
|
+
iconWrap: { width: 40, height: 40, borderRadius: t.radiusFull, backgroundColor: t.surface2, alignItems: 'center', justifyContent: 'center' },
|
|
191
|
+
itemBody: { flex: 1 },
|
|
192
|
+
itemTitle:{ fontSize: t.textMd, fontWeight: '500', color: t.text },
|
|
193
|
+
itemSub: { fontSize: t.textSm, color: t.text2, marginTop: 2 },
|
|
194
|
+
itemTrail:{ fontSize: t.textSm, color: t.text3 },
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Gradient card (react-native-linear-gradient)
|
|
198
|
+
```tsx
|
|
199
|
+
import LinearGradient from 'react-native-linear-gradient'
|
|
200
|
+
|
|
201
|
+
<LinearGradient colors={['#6366F1', '#8B5CF6']} style={s.gradCard}>
|
|
202
|
+
<Text style={s.gradLabel}>Total Balance</Text>
|
|
203
|
+
<Text style={s.gradAmount}>$12,450</Text>
|
|
204
|
+
<Text style={s.gradSub}>↑ 12.5% from last month</Text>
|
|
205
|
+
</LinearGradient>
|
|
206
|
+
|
|
207
|
+
// styles
|
|
208
|
+
gradCard: { borderRadius: t.radiusXl, padding: t.space6 },
|
|
209
|
+
gradLabel: { fontSize: t.textSm, color: 'rgba(255,255,255,0.8)', marginBottom: 8 },
|
|
210
|
+
gradAmount: { fontSize: t.text4xl, fontWeight: '700', color: '#fff', letterSpacing: -1 },
|
|
211
|
+
gradSub: { fontSize: t.textSm, color: 'rgba(255,255,255,0.7)', marginTop: 4 },
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## Rules
|
|
217
|
+
|
|
218
|
+
- **`StyleSheet.create()`** — all styles here, named short (`s`)
|
|
219
|
+
- **`SafeAreaView`** on every screen root
|
|
220
|
+
- **`Pressable`** over `TouchableOpacity` for new code
|
|
221
|
+
- **`Platform.select()`** for shadow (iOS vs Android elevation)
|
|
222
|
+
- **No `px` units** — unitless numbers only
|
|
223
|
+
- **`flex: 1`** instead of `width: '100%'`
|
|
224
|
+
- **`FlatList`** for long lists — not `ScrollView` + `map()`
|
|
225
|
+
- **TypeScript** — all props and state typed
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Example prompts
|
|
230
|
+
|
|
231
|
+
**Design from scratch:**
|
|
232
|
+
```
|
|
233
|
+
Read AI-AGENT.md and skills/react-native.md, then design and build
|
|
234
|
+
a finance app home screen in React Native:
|
|
235
|
+
- iOS safe area, status bar
|
|
236
|
+
- Gradient balance card (indigo → purple), balance $12,450
|
|
237
|
+
- Quick actions row: Send, Receive, Pay, More
|
|
238
|
+
- Recent transactions FlatList (5 items: icon, name, date, amount)
|
|
239
|
+
- Bottom tab bar: Home, Cards, Analytics, Profile
|
|
240
|
+
|
|
241
|
+
Output:
|
|
242
|
+
- src/screens/HomeScreen.tsx
|
|
243
|
+
- src/tokens.ts
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
**Convert from HTML:**
|
|
247
|
+
```
|
|
248
|
+
Read skills/react-native.md, then convert output/finance-home.html
|
|
249
|
+
to React Native. Mobile screen, iOS target.
|
|
250
|
+
Output to src/screens/HomeScreen.tsx
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Build a feature:**
|
|
254
|
+
```
|
|
255
|
+
Read skills/react-native.md, then build a complete auth flow
|
|
256
|
+
in React Native: Splash → Onboarding (3 steps) → Login → Home.
|
|
257
|
+
Use React Navigation stack. Output all screens + navigator.
|
|
258
|
+
```
|
package/skills/react.md
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Skill: React (TypeScript)
|
|
2
|
+
|
|
3
|
+
Build, design, and convert DesignKit UI using React TypeScript.
|
|
4
|
+
|
|
5
|
+
## Your role
|
|
6
|
+
|
|
7
|
+
You are a React developer with strong UI skills.
|
|
8
|
+
You can:
|
|
9
|
+
- **Design** a component or page from scratch using the token system
|
|
10
|
+
- **Convert** a DesignKit HTML file to React components
|
|
11
|
+
- **Build** a full feature (auth form, dashboard layout, data table, etc.)
|
|
12
|
+
|
|
13
|
+
Read the request and determine which mode applies.
|
|
14
|
+
|
|
15
|
+
## Styling approach
|
|
16
|
+
|
|
17
|
+
Use whichever the user specifies. If not specified, default to **CSS Modules**.
|
|
18
|
+
|
|
19
|
+
### Option A — CSS Modules (default)
|
|
20
|
+
|
|
21
|
+
```tsx
|
|
22
|
+
// Button.tsx
|
|
23
|
+
import styles from './Button.module.css'
|
|
24
|
+
|
|
25
|
+
export default function Button({ label }: { label: string }) {
|
|
26
|
+
return <button className={styles.btn}>{label}</button>
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
```css
|
|
31
|
+
/* Button.module.css */
|
|
32
|
+
.btn {
|
|
33
|
+
height: 40px;
|
|
34
|
+
padding: 0 20px;
|
|
35
|
+
background: var(--kit-primary, #6366F1);
|
|
36
|
+
color: var(--kit-primary-text, #fff);
|
|
37
|
+
border-radius: var(--kit-radius, 10px);
|
|
38
|
+
border: none;
|
|
39
|
+
font-size: 13px;
|
|
40
|
+
font-weight: 500;
|
|
41
|
+
cursor: pointer;
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Keep `var(--kit-*)` in CSS — tokens stay in one place, easy to retheme.
|
|
46
|
+
|
|
47
|
+
### Option B — Tailwind CSS
|
|
48
|
+
|
|
49
|
+
```tsx
|
|
50
|
+
export default function Button({ label }: { label: string }) {
|
|
51
|
+
return (
|
|
52
|
+
<button className="h-10 px-5 bg-indigo-500 text-white text-sm font-medium rounded-lg hover:bg-indigo-600 transition-colors">
|
|
53
|
+
{label}
|
|
54
|
+
</button>
|
|
55
|
+
)
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Use Tailwind utility classes. Map `--kit-*` → Tailwind scale (see [skills/tailwind.md](tailwind.md)).
|
|
60
|
+
|
|
61
|
+
### Option C — inline styles + token object
|
|
62
|
+
|
|
63
|
+
Use when zero build config is preferred, or when converting HTML 1:1.
|
|
64
|
+
|
|
65
|
+
```tsx
|
|
66
|
+
const t = {
|
|
67
|
+
primary: '#6366F1',
|
|
68
|
+
primaryText: '#FFFFFF',
|
|
69
|
+
bg: '#FFFFFF',
|
|
70
|
+
surface: '#F8FAFC',
|
|
71
|
+
text: '#0F172A',
|
|
72
|
+
text2: '#475569',
|
|
73
|
+
text3: '#94A3B8',
|
|
74
|
+
border: '#E2E8F0',
|
|
75
|
+
radius: '10px',
|
|
76
|
+
shadow: '0 4px 12px rgba(0,0,0,0.10)',
|
|
77
|
+
font: "'Inter', system-ui, sans-serif",
|
|
78
|
+
} as const
|
|
79
|
+
|
|
80
|
+
export default function Button({ label }: { label: string }) {
|
|
81
|
+
return (
|
|
82
|
+
<button style={{
|
|
83
|
+
height: 40,
|
|
84
|
+
padding: '0 20px',
|
|
85
|
+
background: t.primary,
|
|
86
|
+
color: t.primaryText,
|
|
87
|
+
borderRadius: t.radius,
|
|
88
|
+
border: 'none',
|
|
89
|
+
fontSize: 13,
|
|
90
|
+
fontWeight: 500,
|
|
91
|
+
cursor: 'pointer',
|
|
92
|
+
}}>
|
|
93
|
+
{label}
|
|
94
|
+
</button>
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Option D — styled-components / Emotion
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
import styled from 'styled-components'
|
|
103
|
+
|
|
104
|
+
const Btn = styled.button`
|
|
105
|
+
height: 40px;
|
|
106
|
+
padding: 0 20px;
|
|
107
|
+
background: var(--kit-primary, #6366F1);
|
|
108
|
+
color: var(--kit-primary-text, #fff);
|
|
109
|
+
border-radius: var(--kit-radius, 10px);
|
|
110
|
+
border: none;
|
|
111
|
+
font-size: 13px;
|
|
112
|
+
font-weight: 500;
|
|
113
|
+
cursor: pointer;
|
|
114
|
+
`
|
|
115
|
+
|
|
116
|
+
export default function Button({ label }: { label: string }) {
|
|
117
|
+
return <Btn>{label}</Btn>
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Output format (CSS Modules default)
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
import React, { useState } from 'react'
|
|
127
|
+
import styles from './ComponentName.module.css'
|
|
128
|
+
|
|
129
|
+
interface Props {
|
|
130
|
+
// typed props here
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
export default function ComponentName({ ...props }: Props) {
|
|
134
|
+
// state here
|
|
135
|
+
|
|
136
|
+
return (
|
|
137
|
+
<div className={styles.root}>
|
|
138
|
+
{/* JSX here */}
|
|
139
|
+
</div>
|
|
140
|
+
)
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Rules
|
|
145
|
+
|
|
146
|
+
- **TypeScript** — all props typed with `interface`
|
|
147
|
+
- **Semantic HTML** — `<button>`, `<nav>`, `<header>`, `<ul>/<li>`, `<a>`
|
|
148
|
+
- **No hardcoded hex** — reference tokens via `var(--kit-*)` in CSS, or `t.*` in inline styles
|
|
149
|
+
- **Split large screens** — extract repeated patterns into sub-components
|
|
150
|
+
- **Images** — `<img src="https://placehold.jp/400x300.png" alt="..." />`
|
|
151
|
+
- One file output unless the user asks for multiple files
|
|
152
|
+
|
|
153
|
+
## Example prompts
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
Read skills/react.md, then convert output/dashboard.html
|
|
157
|
+
to React components using CSS Modules.
|
|
158
|
+
Output to src/components/Dashboard/
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
Read skills/react.md, then convert output/dashboard.html
|
|
163
|
+
to React + Tailwind.
|
|
164
|
+
Output to src/components/Dashboard.tsx
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
Read AI-AGENT.md and skills/react.md, then design and build
|
|
169
|
+
a finance app home screen in React with styled-components.
|
|
170
|
+
Output to src/screens/HomeScreen.tsx
|
|
171
|
+
```
|
package/skills/svelte.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Skill: Svelte 5 (Runes)
|
|
2
|
+
|
|
3
|
+
Build, design, and convert DesignKit UI using Svelte 5.
|
|
4
|
+
|
|
5
|
+
## Your role
|
|
6
|
+
|
|
7
|
+
You are a Svelte 5 developer with strong UI skills.
|
|
8
|
+
You can:
|
|
9
|
+
- **Design** a component or page from scratch using the token system
|
|
10
|
+
- **Convert** a DesignKit HTML file to Svelte components
|
|
11
|
+
- **Build** a full feature (auth flow, dashboard, interactive form, etc.)
|
|
12
|
+
|
|
13
|
+
Read the request and determine which mode applies.
|
|
14
|
+
|
|
15
|
+
## Token module (`src/lib/tokens.ts`)
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
export const t = {
|
|
19
|
+
primary: '#6366F1',
|
|
20
|
+
primaryText: '#FFFFFF',
|
|
21
|
+
bg: '#FFFFFF',
|
|
22
|
+
surface: '#F8FAFC',
|
|
23
|
+
text: '#0F172A',
|
|
24
|
+
text2: '#475569',
|
|
25
|
+
text3: '#94A3B8',
|
|
26
|
+
border: '#E2E8F0',
|
|
27
|
+
radius: '10px',
|
|
28
|
+
radiusSm: '6px',
|
|
29
|
+
radiusLg: '14px',
|
|
30
|
+
shadow: '0 4px 12px rgba(0,0,0,0.10)',
|
|
31
|
+
font: "'Inter', system-ui, sans-serif",
|
|
32
|
+
} as const
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Output format
|
|
36
|
+
|
|
37
|
+
```svelte
|
|
38
|
+
<script lang="ts">
|
|
39
|
+
import { t } from '$lib/tokens'
|
|
40
|
+
|
|
41
|
+
// Svelte 5 runes
|
|
42
|
+
let { title = 'Default', onclick }: {
|
|
43
|
+
title?: string
|
|
44
|
+
onclick?: () => void
|
|
45
|
+
} = $props()
|
|
46
|
+
|
|
47
|
+
let isOpen = $state(false)
|
|
48
|
+
let label = $derived(isOpen ? 'Close' : 'Open')
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
<div style:font-family={t.font} style:background={t.bg} style:color={t.text}>
|
|
52
|
+
<!-- markup here -->
|
|
53
|
+
</div>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Svelte style directives
|
|
57
|
+
|
|
58
|
+
Use `style:property={value}` instead of `:style="{}"`
|
|
59
|
+
|
|
60
|
+
```svelte
|
|
61
|
+
<!-- preferred -->
|
|
62
|
+
<div
|
|
63
|
+
style:background={t.surface}
|
|
64
|
+
style:border-radius={t.radius}
|
|
65
|
+
style:padding="16px"
|
|
66
|
+
>
|
|
67
|
+
|
|
68
|
+
<!-- also valid for dynamic objects -->
|
|
69
|
+
<div style={`background:${t.primary};color:${t.primaryText}`}>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Rules
|
|
73
|
+
|
|
74
|
+
- **Svelte 5 Runes** — `$state`, `$derived`, `$props`, `$effect`
|
|
75
|
+
- **`style:property`** directive — not `style=""` string
|
|
76
|
+
- **`{#each}` with `{#key}`** for lists
|
|
77
|
+
- **`{#if}` / `{:else}`** for conditionals
|
|
78
|
+
- **`<a href="">` with SvelteKit** → use `<a>` (SvelteKit handles routing)
|
|
79
|
+
- **No class-based CSS** — inline styles only
|
|
80
|
+
|
|
81
|
+
## Example prompt
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
Read AI-AGENT.md and skills/svelte.md, then:
|
|
85
|
+
|
|
86
|
+
Design and build a pricing section for a SaaS app in Svelte 5:
|
|
87
|
+
- Monthly/Annual toggle (saves 20%)
|
|
88
|
+
- 3 pricing tiers: Starter $9, Pro $29 (highlighted), Enterprise $99
|
|
89
|
+
- Feature list per tier
|
|
90
|
+
- CTA button per tier
|
|
91
|
+
|
|
92
|
+
Output:
|
|
93
|
+
- src/lib/components/PricingSection.svelte
|
|
94
|
+
- src/lib/tokens.ts
|
|
95
|
+
```
|