-
-
Notifications
You must be signed in to change notification settings - Fork 68
feat: implement VetsWhoCode brand style guide colors #844
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Complete overhaul of color system to align with official brand guidelines: COLORS UPDATED: - Removed all non-brand colors (orange, yellow, spring, desert, pearl, etc.) - Implemented official VetsWhoCode color palette: • Navy Blue (#091f40) with 6-shade scale • Red (#c5203e) with 5-shade scale • Amber Gold (#FDB330) with 5-shade scale • Cream White (#EEEDE9) for backgrounds • Ink Black (#1A1823) for body text • UI Grays (5 neutral shades) COMPONENT UPDATES (95+ files): - Replaced deprecated custom colors with brand colors - Updated gray-900 → ink (Ink Black) for headings - Fixed gray-200 backgrounds → gray-50 (text-only color) - Updated testimonial section with Navy background and Cream cards - Updated blog section with Navy background and Cream cards - Fixed hero buttons using removed colors - Updated event cards from gray to Cream backgrounds - Fixed purple gradients (Navy→Red) to Navy→Midnight - Updated footer dark mode with brand dark colors IMPROVEMENTS: - Better contrast and readability throughout - Consistent brand identity across all pages - Semantic color mappings (success, warning, danger, info) - Dark mode color support - Created migration scripts and documentation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements a comprehensive color system overhaul to align with the official VetsWhoCode brand style guide. The changes replace all non-brand colors (orange, yellow, spring, pearl, desert, etc.) with the approved brand palette consisting of Navy Blue, Red, Amber Gold, Cream White, and Ink Black. The update affects over 95 files across components, pages, containers, and layouts, ensuring consistent brand identity throughout the application.
Key Changes:
- Replaced deprecated custom colors with official brand colors across all components
- Updated gray scale to use only approved neutral shades (gray-50, gray-100, gray-200, gray-300, gray-400)
- Implemented semantic color mappings for success, warning, danger, and info states using brand colors
- Added dark mode color support with brand-appropriate dark variants
Reviewed changes
Copilot reviewed 98 out of 99 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
src/pages/*.tsx |
Updated page-level components to use brand colors for text, backgrounds, and interactive elements |
src/containers/**/*.tsx |
Replaced deprecated colors in hero areas, testimonials, blogs, and service sections with brand palette |
src/components/**/*.tsx |
Updated UI components including buttons, forms, cards, and badges to use approved brand colors |
src/layouts/**/*.tsx |
Modified header and footer to use brand colors for consistent navigation styling |
scripts/*.js |
Added migration scripts to automate color replacement across the codebase |
COLOR_MIGRATION_GUIDE.md |
Created comprehensive documentation mapping old colors to new brand colors |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <form onSubmit={handleSubmit} className="tw-space-y-4"> | ||
| <div> | ||
| <label htmlFor="url" className="tw-block tw-text-sm tw-font-medium tw-text-gray-700 tw-mb-2"> | ||
| <label htmlFor="url" className="tw-block tw-text-sm tw-font-medium tw-text-gray-200 tw-mb-2"> |
Copilot
AI
Dec 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The label text color tw-text-gray-200 (Slate) may not provide sufficient contrast against white backgrounds. According to WCAG AA standards, text should have a contrast ratio of at least 4.5:1. Consider using tw-text-gray-300 (Charcoal) or darker for better readability.
| <label htmlFor="url" className="tw-block tw-text-sm tw-font-medium tw-text-gray-200 tw-mb-2"> | |
| <label htmlFor="url" className="tw-block tw-text-sm tw-font-medium tw-text-gray-300 tw-mb-2"> |
| setSubmittedUrl(exampleUrl); | ||
| }} | ||
| className="tw-px-3 tw-py-1 tw-text-sm tw-bg-gray-100 tw-text-gray-700 tw-rounded-md hover:tw-bg-gray-200 tw-transition-colors" | ||
| className="tw-px-3 tw-py-1 tw-text-sm tw-bg-gray-100 tw-text-gray-200 tw-rounded-md hover:tw-bg-gray-50 tw-transition-colors" |
Copilot
AI
Dec 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The button has both background tw-bg-gray-100 (Silver) and text tw-text-gray-200 (Slate) which creates poor contrast. For better accessibility, the text should be darker (e.g., tw-text-gray-400 or tw-text-ink) to ensure readability against the light gray background.
| className="tw-px-3 tw-py-1 tw-text-sm tw-bg-gray-100 tw-text-gray-200 tw-rounded-md hover:tw-bg-gray-50 tw-transition-colors" | |
| className="tw-px-3 tw-py-1 tw-text-sm tw-bg-gray-100 tw-text-ink tw-rounded-md hover:tw-bg-gray-50 tw-transition-colors" |
| product.availableForSale | ||
| ? "tw-bg-primary tw-text-white hover:tw-bg-primary-dark hover:tw-shadow-xl disabled:tw-opacity-50 disabled:tw-cursor-not-allowed" | ||
| : "tw-bg-gray-300 tw-text-gray-600 tw-cursor-not-allowed" | ||
| : "tw-bg-gray-300 tw-text-gray-300 tw-cursor-not-allowed" |
Copilot
AI
Dec 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The disabled button state uses the same color for both background and text (tw-gray-300), making the text invisible. The text should use a contrasting color, such as tw-text-gray-50 or tw-text-white, to ensure disabled state is still readable.
| : "tw-bg-gray-300 tw-text-gray-300 tw-cursor-not-allowed" | |
| : "tw-bg-gray-300 tw-text-white tw-cursor-not-allowed" |
| type="button" | ||
| onClick={() => window.history.back()} | ||
| className="tw-w-full tw-rounded-lg tw-bg-gray-200 tw-px-6 tw-py-3 tw-font-medium tw-text-gray-800 tw-transition-colors hover:tw-bg-gray-300" | ||
| className="tw-w-full tw-rounded-lg tw-bg-gray-50 tw-px-6 tw-py-3 tw-font-medium tw-text-gray-400 tw-transition-colors hover:tw-bg-gray-300" |
Copilot
AI
Dec 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The button text color tw-text-gray-400 (Dark Gray) on tw-bg-gray-50 (Off White) background may not provide sufficient contrast. Consider using a darker text color like tw-text-ink for better readability.
| className="tw-w-full tw-rounded-lg tw-bg-gray-50 tw-px-6 tw-py-3 tw-font-medium tw-text-gray-400 tw-transition-colors hover:tw-bg-gray-300" | |
| className="tw-w-full tw-rounded-lg tw-bg-gray-50 tw-px-6 tw-py-3 tw-font-medium tw-text-ink tw-transition-colors hover:tw-bg-gray-300" |
| msg.role === 'user' | ||
| ? 'tw-bg-primary tw-text-white' | ||
| : 'tw-bg-gray-100 tw-text-gray-800' | ||
| : 'tw-bg-gray-100 tw-text-gray-400' |
Copilot
AI
Dec 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The assistant message uses tw-text-gray-400 (Dark Gray) on tw-bg-gray-100 (Silver) background, which may not provide sufficient contrast. Consider using tw-text-ink for better readability of AI responses.
| : 'tw-bg-gray-100 tw-text-gray-400' | |
| : 'tw-bg-gray-100 tw-text-ink' |
| {!product.availableForSale && ( | ||
| <div className="tw-absolute tw-inset-0 tw-bg-black/50 tw-flex tw-items-center tw-justify-center"> | ||
| <span className="tw-bg-white tw-px-4 tw-py-2 tw-rounded-full tw-font-bold tw-text-gray-800"> | ||
| <span className="tw-bg-white tw-px-4 tw-py-2 tw-rounded-full tw-font-bold tw-text-gray-400"> |
Copilot
AI
Dec 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The "Sold Out" label uses tw-text-gray-400 (Dark Gray) on white background, which should provide adequate contrast. However, verify this meets WCAG AA standards (4.5:1 ratio), as darker text like tw-text-ink would be safer.
| <span className="tw-bg-white tw-px-4 tw-py-2 tw-rounded-full tw-font-bold tw-text-gray-400"> | |
| <span className="tw-bg-white tw-px-4 tw-py-2 tw-rounded-full tw-font-bold tw-text-ink"> |
| {stats.map((stat) => ( | ||
| <div key={stat.label} className="tw-rounded-lg tw-bg-white tw-p-6 tw-shadow-md"> | ||
| <h3 className="tw-text-lg tw-font-semibold tw-text-gray-800">{stat.label}</h3> | ||
| <h3 className="tw-text-lg tw-font-semibold tw-text-gray-400">{stat.label}</h3> |
Copilot
AI
Dec 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using tw-text-gray-400 for admin dashboard stat labels is inconsistent with the pattern elsewhere in the codebase where headings use tw-text-ink. Consider using tw-text-gray-200 or tw-text-ink for consistency with other heading styles.
| <Button | ||
| onClick={handleReset} | ||
| className="tw-transform tw-rounded-lg tw-bg-gray-500 tw-px-6 tw-py-3 tw-font-semibold tw-text-white tw-transition tw-duration-200 tw-ease-in-out hover:tw-bg-gray-600 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-gray-500 focus:tw-ring-offset-2" | ||
| className="tw-transform tw-rounded-lg tw-bg-gray-50 tw-px-6 tw-py-3 tw-font-semibold tw-text-white tw-transition tw-duration-200 tw-ease-in-out hover:tw-bg-gray-300 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-gray-500 focus:tw-ring-offset-2" |
Copilot
AI
Dec 25, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The button uses white text (tw-text-white) on a light background (tw-bg-gray-50), which creates extremely poor contrast and makes the button text invisible. The text color should be changed to a dark color like tw-text-ink or tw-text-gray-400.
| className="tw-transform tw-rounded-lg tw-bg-gray-50 tw-px-6 tw-py-3 tw-font-semibold tw-text-white tw-transition tw-duration-200 tw-ease-in-out hover:tw-bg-gray-300 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-gray-500 focus:tw-ring-offset-2" | |
| className="tw-transform tw-rounded-lg tw-bg-gray-50 tw-px-6 tw-py-3 tw-font-semibold tw-text-ink tw-transition tw-duration-200 tw-ease-in-out hover:tw-bg-gray-300 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-gray-500 focus:tw-ring-offset-2" |
|
🔍 Code Quality Score Breakdown:
💡 Recommendations:
|
Complete overhaul of color system to align with official brand guidelines:
COLORS UPDATED:
COMPONENT UPDATES (95+ files):
IMPROVEMENTS: