| name | zyntro-ui-guidelines |
| description | Apply ZyntroTest brand guidelines and design system to all UI components. Use this skill when building, modifying, or reviewing any HTML/CSS components, pages, or features for ZyntroTest.com to ensure brand consistency, proper styling, and adherence to the established design system. This skill should be proactively applied whenever creating or editing visual elements, forms, buttons, cards, layouts, or any user-facing components. |
ZyntroTest UI Guidelines Skill
Purpose
This skill provides comprehensive brand guidelines and UI component standards for ZyntroTest.com, ensuring all components maintain visual consistency, follow the established design system, and deliver a professional, cohesive user experience. Apply these guidelines to all UI development work.
When to Use This Skill
Use this skill proactively whenever:
- Building new components - Creating buttons, cards, forms, sections, or any UI element
- Creating new pages - Developing new HTML pages or templates
- Modifying existing components - Updating styles, layouts, or visual elements
- Reviewing code - Checking if components follow brand guidelines
- Refactoring UI - Improving consistency and adherence to design system
- Debugging visual issues - Ensuring proper use of design tokens
- Adding features - Any work that involves user-facing elements
Do not wait for the user to ask - proactively apply these guidelines to maintain brand consistency.
How to Use This Skill
1. Load Brand Guidelines
When starting any UI work, first read the complete brand guidelines:
Read: references/brand-guidelines.md
This file contains:
- Complete color palette with CSS variable names
- Typography system (fonts, sizes, weights)
- Spacing system and layout guidelines
- Shadow, radius, and transition standards
- Accessibility requirements
- Brand voice and messaging
Key Reference Sections:
- Colors: Always use CSS variables (
var(--primary-blue),var(--gray-600), etc.) - Typography: Use
var(--text-xl),var(--font-display), etc. - Spacing: Use
var(--space-md),var(--space-lg), etc. - Component Patterns: Standard styling for buttons, cards, forms
2. Reference Component Library
When building specific components, consult the component library:
Read: references/component-library.md
This file provides:
- Complete HTML structure for standard components
- Usage guidelines and best practices
- Responsive patterns and mobile-first examples
- Accessibility patterns
- Component composition examples
Search Patterns:
- Need a button? Search for "Button Components"
- Need a card? Search for "Card Components"
- Need a form? Search for "Form Components"
- Need layout guidance? Search for "Section Components"
3. Apply Guidelines to Your Work
When creating or modifying components:
For New Components:
Check if a standard component exists in
component-library.md- If it exists, use the exact HTML structure and classes
- Maintain consistency with existing patterns
Apply design system values from
brand-guidelines.md- Use CSS variables for all colors, spacing, typography
- Never use arbitrary values (e.g.,
#FF0000instead ofvar(--primary-blue)) - Follow the spacing system (
var(--space-md)not20px)
Ensure mobile-first responsive design
- Start with mobile styles
- Use media queries for tablet (768px+) and desktop (1024px+)
- Test component behavior at all breakpoints
Include proper accessibility
- Add ARIA labels where needed
- Ensure keyboard navigation works
- Maintain proper color contrast
- Include focus states
For Existing Component Modifications:
Verify current component matches brand guidelines
- Check colors are using CSS variables
- Verify spacing follows the system
- Ensure typography is correct
Make changes while maintaining consistency
- Don't introduce new arbitrary values
- Keep the same visual language
- Maintain the component hierarchy
Update related components if needed
- If changing a button style, update all buttons
- Maintain consistency across the site
Quality Checklist:
Before completing any UI work, verify:
- ✅ All colors use CSS variables (no hex codes like
#2563ebdirectly) - ✅ All spacing uses CSS variables (
var(--space-*)) - ✅ Typography uses font variables and size scales
- ✅ Component follows mobile-first approach
- ✅ Hover/focus states are included
- ✅ Accessibility requirements are met (ARIA, contrast, keyboard nav)
- ✅ Component matches existing patterns in component-library.md
- ✅ Responsive breakpoints are properly implemented
- ✅ Transitions use standard timing (
var(--transition-base))
4. Common Scenarios
Scenario: Creating a New Button
# Step 1: Read component library for button patterns
Read: references/component-library.md
# Step 2: Find "Button Components" section
# Step 3: Use the exact HTML structure and classes:
<a href="#" class="btn btn-primary">Button Text</a>
# Step 4: Verify it uses brand colors:
# .btn-primary uses var(--primary-blue) ✅
Scenario: Building a New Card Component
# Step 1: Check if card pattern exists
Read: references/component-library.md (search for "Card Components")
# Step 2: Use standard card structure with design system values
<div class="service-card">
<div class="service-icon">🔬</div>
<h3>Title (var(--text-xl))</h3>
<p>Description (var(--text-base))</p>
</div>
# Step 3: Apply standard styling:
# - Border-radius: var(--radius-lg)
# - Shadow: var(--shadow-md)
# - Padding: var(--space-lg)
Scenario: Creating a New Page
# Step 1: Read brand guidelines for overall structure
Read: references/brand-guidelines.md
# Step 2: Read component library for layout patterns
Read: references/component-library.md (search for "Section Components")
# Step 3: Build page using:
# - Standard header component
# - Hero section (if needed)
# - Content sections with proper spacing
# - Standard footer component
# Step 4: Ensure consistency:
# - Use section padding: var(--space-2xl) mobile, var(--space-3xl) desktop
# - Use container with proper padding
# - Follow typography hierarchy
Scenario: Fixing Visual Inconsistency
# Step 1: Identify what's inconsistent
# Example: Button uses #2563eb instead of var(--primary-blue)
# Step 2: Check brand guidelines for correct value
Read: references/brand-guidelines.md (search for "Primary Colors")
# Step 3: Replace with CSS variable
# Before: background: #2563eb;
# After: background: var(--primary-blue);
# Step 4: Check for other instances and fix them too
5. Brand Voice in Copy
When writing copy for components, follow these principles:
- Professional & Scientific: Use clear, accurate language
- Trustworthy: Emphasize reliability and compliance
- Modern: Use contemporary, accessible phrasing
- Action-Oriented: Clear CTAs (e.g., "Get Your COA", "Request Analysis")
See references/brand-guidelines.md > "Brand Voice & Messaging" for detailed guidelines.
Output Format
When creating or modifying components, provide:
- Complete HTML with proper structure and semantic elements
- CSS with design system variables (never arbitrary values)
- Responsive media queries if needed
- Accessibility attributes (ARIA labels, roles, etc.)
- Comments explaining any deviations from standard patterns
Integration Notes
Working with Existing Codebase
The ZyntroTest.com project already implements this design system in:
css/style.css- Contains all CSS variables and component stylesjs/script.js- Contains shared UI functionality- Multiple HTML pages use these components
When modifying the codebase:
- Maintain the existing CSS variable definitions in
:root - Use existing component classes when possible
- Follow the established file structure
CSS Variable Reference
All design system values are defined as CSS variables in css/style.css:
:root {
/* Colors */
--primary-blue: #2563eb;
--gray-900: #0f172a;
--white: #ffffff;
/* Typography */
--font-primary: 'Roboto', sans-serif;
--text-xl: 1.25rem;
/* Spacing */
--space-lg: 2rem;
/* Effects */
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
--radius-md: 0.5rem;
--transition-base: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
Always reference these variables, never duplicate or hard-code values.
Examples
Example 1: Creating a New Service Card
User Request: "Add a new service card for hemp testing"
Correct Approach:
# Step 1: Read component library for service card pattern
Read: references/component-library.md
# Step 2: Use standard service card structure
<div class="service-card">
<div class="service-icon">🌿</div>
<h3>Cannabis/Hemp Testing</h3>
<p>Quantify THC/CBD and screen for pesticides or mycotoxins using LCMS-DAD.</p>
<ul class="service-features">
<li>✓ Cannabinoid potency profile</li>
<li>✓ Pesticide screening</li>
<li>✓ 5-7 business day turnaround</li>
</ul>
<div class="service-price">Starting at $225/sample</div>
<a href="contact.html" class="btn btn-primary">Request Quote</a>
</div>
Why this is correct:
- Uses existing
.service-cardcomponent - Follows established HTML structure
- Uses brand icons (emoji-based)
- Uses standard button component
- Maintains consistent feature list format
Example 2: Adding a New CTA Section
User Request: "Add a call-to-action section encouraging users to submit samples"
Correct Approach:
# Step 1: Check brand guidelines for CTA language
Read: references/brand-guidelines.md (search for "Call-to-Action Language")
# Step 2: Use standard section component
Read: references/component-library.md (search for "Hero Section")
<section class="cta-section" style="background: var(--gray-50); padding: var(--space-3xl) 0;">
<div class="container" style="text-align: center;">
<h2 style="color: var(--gray-900); font-size: var(--text-3xl); margin-bottom: var(--space-md);">
Ready to Get Started?
</h2>
<p style="color: var(--gray-600); font-size: var(--text-lg); margin-bottom: var(--space-xl); max-width: 600px; margin-left: auto; margin-right: auto;">
Submit your samples today and receive detailed, accurate COAs within 3-5 business days.
</p>
<div style="display: flex; gap: var(--space-md); justify-content: center; flex-wrap: wrap;">
<a href="sample-submission.html" class="btn btn-primary">Submit Sample</a>
<a href="contact.html" class="btn btn-outline">Contact Lab</a>
</div>
</div>
</section>
Why this is correct:
- Uses CSS variables for all styling (
var(--gray-50),var(--space-3xl), etc.) - Follows typography scale (
var(--text-3xl),var(--text-lg)) - Uses brand-appropriate CTA language
- Includes primary and secondary CTAs
- Maintains proper spacing system
- Mobile-responsive with flexbox and wrap
Example 3: Reviewing Existing Code
User Request: "Review this button and fix any issues"
Existing Code:
<a href="#" style="background: #2563eb; padding: 15px 30px; color: white; border-radius: 8px;">
Click Here
</a>
Corrected Code:
<a href="#" class="btn btn-primary">
Get Started
</a>
Changes Made:
- ✅ Removed inline styles, using standard button class
- ✅ Now uses CSS variables via
.btn-primaryclass - ✅ Uses proper padding/spacing from design system
- ✅ Improved CTA language ("Get Started" vs "Click Here")
- ✅ Includes hover/focus states automatically
- ✅ Maintains consistency with other buttons
Troubleshooting
Issue: Component doesn't look right
Solution:
- Check if all colors use CSS variables
- Verify spacing uses the spacing system
- Ensure typography follows the scale
- Compare with similar components in component-library.md
Issue: Unclear which component pattern to use
Solution:
- Read component-library.md thoroughly
- Look for similar existing patterns
- If no pattern exists, create one following brand guidelines
- Ensure new pattern fits the existing visual language
Issue: User wants something that breaks brand guidelines
Solution:
- Explain why the guideline exists
- Suggest an alternative that maintains consistency
- If truly necessary, document the exception
- Consider updating guidelines if it's a valid new pattern
Maintenance
When updating this skill:
Update brand-guidelines.md when:
- New colors are added to the palette
- Typography system changes
- New spacing values are introduced
- Brand voice evolves
Update component-library.md when:
- New component patterns are established
- Existing components are refactored
- New responsive patterns are developed
- Accessibility patterns improve
Keep examples current with actual usage patterns from the site
Summary
This skill ensures all UI work on ZyntroTest.com maintains:
- Visual consistency through the design system
- Professional, scientific brand identity
- Accessible, mobile-first components
- Efficient development through reusable patterns
Always read the reference documents and apply guidelines proactively to maintain the high quality and consistency of the ZyntroTest brand.