3.7 KiB
3.7 KiB
Checklist: UI Component Standardization & Premium Elevation
🧩 1. Core Component Enhancements (Phase 1)
Upgrade components in resources/js/Components/Core/Forms/ with premium logic and props.
-
InputGroup.vue:- Add
error(String) prop for displaying validation messages. - Add
hint(String) prop for supporting text under the input. - Add
isPremium(Boolean, default true) for enabling premium glassmorphism styles. - Add
variant(String, 'default' | 'glass' | 'soft') prop. - Standardize the label to include a red asterisk if
requiredis true. - Refactor styles to pull from global theme variables (
--bg-secondary,--text-primary).
- Add
-
InputGroupSelect.vue:- Add
errorandhintprops. - Add
isPremiumandvariantprops. - Support flexible
optionsformat (Array of Strings or Array of Objects{ value, text }). - Update dropdown arrow styling for premium look.
- Add
-
InputGroupButton.vue:- Add
variant(String, 'primary' | 'secondary' | 'outline' | 'danger' | 'glass' | 'text'). - Add
loading(Boolean) to show integratedLoadingSpinner. - Add
size(String, 'sm' | 'md' | 'lg'). - Add
disabledprop handling (visual and functional). - Add default slot support for complex button content (icons + text).
- Remove hardcoded
textprop requirement if slot is present.
- Add
-
InputGroupTextarea.vue:- Add
rows(Number, default 3) prop. - Add
errorandhintprops. - Add
isPremiumandvariantprops. - Ensure styling matches
InputGroup.vue.
- Add
-
InputGroupCheckbox.vue:- Add
label(String) prop. - Add
errorprop. - Add
isSwitch(Boolean) prop for toggle-style checkbox. - Replace native checkbox with a premium, theme-aware custom design.
- Add
-
CardSimple.vue:- Add
isPremium/glass(Boolean) prop for background glassmorphism. - Add
noPadding(Boolean) for custom body content. - Add
shadow(String, 'none' | 'sm' | 'md' | 'lg') prop.
- Add
🔍 2. Scanning & Replacement (Phase 2)
Identify and replace raw HTML elements in all pages.
High-Priority Pages (Standardize first)
EditStoreUltimate.vue:- Replace
inputwithInputGroup. - Replace
selectwithInputGroupSelect. - Replace
textareawithInputGroupTextarea. - Replace
buttonwithInputGroupButton. - Remove excessive
<style>blocks once standardized components are used.
- Replace
UserInfoEdit.vue:- Replace extensive set of ~40+ raw
inputandselectwithInputGroupcomponents.
- Replace extensive set of ~40+ raw
ShipmentDetail.vue:- Standardize action buttons with
InputGroupButtonvariants.
- Standardize action buttons with
AccountSettings.vue:- Replace user info inputs and buttons.
Page Audit & Cleanup
resources/js/Pages/: Scan all remaining files for raw<button>,<input>,<select>,<textarea>.- Consistency Check: Verify that all replaced components correctly bind
v-modeland handle events like@clickor@change. - Dead Code Removal: Search for and remove local CSS like
.premium-input,.premium-select,.btn-premium-launchfrom component<style>blocks after they are integrated into the core components.
🏗️ 3. Build & Verification (Phase 3)
- NPM Build: Run
npm run buildto ensure all changes are compiled. - Visual Audit: Verify the "WOW" factor across different pages and screen sizes.
- Docker Restart:
docker restart bukidbountyapp. - Baseline Check: Run tests again to ensure no regressions in functional logic.