CSS Customization & Styling
Customize the visual appearance of your SmartSize AI Fit Recommender quiz widget using CSS. All elements in the widget have specific CSS classes that you can target to change colors, fonts, spacing, and other visual properties to match your brand.
Quick Start
To customize your quiz widget, add CSS rules to your Shopify theme.
You can add those rules on:
- the theme’s
Custom CSS
field on Theme Settings (Recommended) - the theme’s stylesheet (e.g. file
theme.css
) - or in a
<style>
tag on your main theme file
All SmartSize AI Fit Recommender CSS classes start with smartrecom-
to avoid conflicts with your existing styles.
Example: Changing the Primary Color
/* Change the accent color throughout the quiz */
.smartrecom-button-primary {
background-color: #your-brand-color !important;
}
.smartrecom-multiple-choice-option.selected {
border-color: #your-brand-color !important;
background-color: #your-brand-color !important;
}
CSS Class Reference
Quiz Container & Navigation
.smartrecom-quiz-manager
Main quiz container - Controls overall quiz layout and spacing
.smartrecom-quiz-manager {
font-family: 'Your Brand Font', sans-serif;
max-width: 600px;
}
.smartrecom-quiz-stepper
Step indicator at top of quiz - Progress dots showing current step
.smartrecom-quiz-stepper {
margin-bottom: 32px;
}
.smartrecom-quiz-product-title
Product title shown above quiz
.smartrecom-quiz-product-title {
font-size: 18px;
color: #333;
font-weight: 400;
}
.smartrecom-quiz-footer
Footer container with navigation
.smartrecom-quiz-footer {
border-top: 1px solid #eee;
padding-top: 16px;
}
Step Indicators & Progress
.smartrecom-step-indicator
Container for progress dots
.smartrecom-step-indicator {
padding: 20px 0;
}
.smartrecom-step-indicator-dot
Individual progress dots
.smartrecom-step-indicator-dot {
width: 10px;
height: 10px;
background-color: #your-color;
}
.smartrecom-progress-bar-container
Progress bar container
.smartrecom-progress-bar-container {
height: 6px;
background-color: #f0f0f0;
}
.smartrecom-progress-bar-fill
Progress bar fill
.smartrecom-progress-bar-fill {
background-color: #your-brand-color;
}
Measurements Step
.smartrecom-measurements-step
Main measurements step container
.smartrecom-measurements-step {
padding: 20px;
}
.smartrecom-measurements-title
“ENTER A FEW DETAILS BELOW” title
.smartrecom-measurements-title {
font-size: 28px;
color: #222;
text-align: center;
}
.smartrecom-measurements-subtitle
Step subtitle text
.smartrecom-measurements-subtitle {
font-size: 16px;
color: #666;
margin-bottom: 32px;
}
.smartrecom-measurements-imperial-height
Imperial height input container (feet/inches)
.smartrecom-measurements-imperial-height {
gap: 16px;
}
.smartrecom-measurements-unit-label
Unit labels (feet, inches, etc.)
.smartrecom-measurements-unit-label {
font-size: 12px;
color: #888;
}
Multiple Choice Steps
.smartrecom-multiple-choice-step
Main multiple choice container
.smartrecom-multiple-choice-step {
padding: 16px;
}
.smartrecom-multiple-choice-title
Step title
.smartrecom-multiple-choice-title {
font-size: 24px;
margin-bottom: 40px;
text-align: left;
}
.smartrecom-multiple-choice-options
Container for all options
.smartrecom-multiple-choice-options {
gap: 16px;
}
.smartrecom-multiple-choice-option
Individual option buttons
.smartrecom-multiple-choice-option {
border: 2px solid #e5e7eb;
border-radius: 12px;
padding: 12px 20px;
transition: all 0.2s ease;
}
.smartrecom-multiple-choice-option:hover {
border-color: #your-brand-color;
background-color: #f9f9f9;
}
.smartrecom-multiple-choice-option.selected
Selected option state
.smartrecom-multiple-choice-option.selected {
border-color: #your-brand-color;
background-color: #your-brand-color;
color: white;
}
.smartrecom-multiple-choice-image
Images in options
.smartrecom-multiple-choice-image {
width: 60px;
height: 60px;
border-radius: 8px;
}
.smartrecom-multiple-choice-label
Option label text
.smartrecom-multiple-choice-label {
font-weight: 600;
font-size: 16px;
}
.smartrecom-multiple-choice-description
Option description text
.smartrecom-multiple-choice-description {
font-size: 14px;
color: #666;
margin-top: 4px;
}
Size Recommendation Step
.smartrecom-size-recommendation-step
Main results container
.smartrecom-size-recommendation-step {
text-align: center;
padding: 40px 20px;
}
.smartrecom-size-recommendation-title
Results title
.smartrecom-size-recommendation-title {
font-size: 24px;
margin-bottom: 16px;
}
.smartrecom-size-recommendation-size
Large size display
.smartrecom-size-recommendation-size {
font-size: 56px;
font-weight: 700;
color: #your-brand-color;
margin: 40px 0;
}
.smartrecom-size-recommendation-message
Recommendation message
.smartrecom-size-recommendation-message {
font-size: 16px;
color: #666;
margin-bottom: 32px;
}
UI Components
.smartrecom-button
Base button styles
.smartrecom-button {
font-family: inherit;
font-size: 16px;
padding: 12px 24px;
border-radius: 6px;
cursor: pointer;
transition: all 0.2s ease;
}
.smartrecom-button-primary
Primary button styles
.smartrecom-button-primary {
background-color: #your-brand-color;
color: white;
border: none;
}
.smartrecom-button-primary:hover {
opacity: 0.9;
}
.smartrecom-button-secondary
Secondary button styles
.smartrecom-button-secondary {
background: transparent;
color: #666;
border: none;
text-decoration: underline;
}
.smartrecom-card
Input card container
.smartrecom-card {
background: white;
border-radius: 12px;
padding: 16px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
margin-bottom: 16px;
}
.smartrecom-card-input
Card input fields
.smartrecom-card-input {
border: none;
border-bottom: 2px solid #e2e8f0;
padding: 8px 0;
font-size: 20px;
font-weight: 500;
}
.smartrecom-card-input:focus {
border-bottom-color: #your-brand-color;
outline: none;
}
Common Customization Examples
Changing Brand Colors
Update all primary elements to match your brand:
/* Primary brand color */
.smartrecom-button-primary,
.smartrecom-size-recommendation-size,
.smartrecom-card-input:focus,
.smartrecom-multiple-choice-option.selected {
background-color: #your-brand-color !important;
border-color: #your-brand-color !important;
}
/* Progress elements */
.smartrecom-progress-bar-fill,
.smartrecom-step-indicator-dot.active {
background-color: #your-brand-color !important;
}
Custom Typography
Apply your brand fonts and typography hierarchy:
/* Brand font family */
.smartrecom-quiz-manager {
font-family: 'Your Brand Font', sans-serif;
}
/* Adjust title hierarchy */
.smartrecom-measurements-title,
.smartrecom-multiple-choice-title {
font-size: 32px;
font-weight: 300;
letter-spacing: -0.5px;
}
/* Consistent text sizing */
.smartrecom-multiple-choice-label {
font-size: 18px;
font-weight: 500;
}
Mobile Responsiveness
Ensure optimal mobile experience:
/* Mobile-first responsive design */
@media (max-width: 768px) {
.smartrecom-quiz-manager {
padding: 16px 12px;
}
.smartrecom-measurements-title {
font-size: 24px;
}
.smartrecom-multiple-choice-option {
padding: 16px;
margin-bottom: 12px;
}
.smartrecom-size-recommendation-size {
font-size: 48px;
}
}
Dark Mode Support
Support dark mode preferences:
/* Dark mode styles */
@media (prefers-color-scheme: dark) {
.smartrecom-quiz-manager {
background-color: #1a1a1a;
color: #ffffff;
}
.smartrecom-card {
background-color: #2d2d2d;
border: 1px solid #404040;
}
.smartrecom-multiple-choice-option {
background-color: #2d2d2d;
border-color: #404040;
color: #ffffff;
}
.smartrecom-multiple-choice-option:hover {
background-color: #3d3d3d;
}
}
Enhanced Visual Polish
Add sophisticated visual enhancements:
/* Subtle animations */
.smartrecom-multiple-choice-option {
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.smartrecom-multiple-choice-option:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
/* Enhanced focus states */
.smartrecom-card-input:focus {
box-shadow: 0 0 0 3px rgba(66, 153, 225, 0.1);
transform: scale(1.02);
}
/* Refined spacing */
.smartrecom-quiz-manager {
line-height: 1.6;
letter-spacing: 0.025em;
}
Advanced Customization Techniques
CSS Custom Properties
Use CSS variables for consistent theming:
:root {
--smartrecom-primary-color: #your-brand-color;
--smartrecom-secondary-color: #your-secondary-color;
--smartrecom-border-radius: 8px;
--smartrecom-spacing-unit: 16px;
}
.smartrecom-button-primary {
background-color: var(--smartrecom-primary-color);
border-radius: var(--smartrecom-border-radius);
}
.smartrecom-card {
border-radius: var(--smartrecom-border-radius);
padding: var(--smartrecom-spacing-unit);
}
Component-Specific Theming
Target specific quiz components:
/* Gender selection step */
.smartrecom-multiple-choice-step[data-step="gender"] .smartrecom-multiple-choice-option {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
border: none;
}
/* Measurements step */
.smartrecom-measurements-step .smartrecom-card {
background: linear-gradient(145deg, #f0f9ff, #e0f2fe);
border: 1px solid #0284c7;
}
/* Results step */
.smartrecom-size-recommendation-step {
background: radial-gradient(circle at top, #fef7cd, #ffffff);
}
Animation & Micro-Interactions
Add engaging micro-interactions:
/* Loading animations */
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
.smartrecom-size-recommendation-loading {
animation: pulse 2s infinite;
}
/* Button press feedback */
.smartrecom-button-primary:active {
transform: scale(0.98);
}
/* Step transitions */
.smartrecom-quiz-step {
animation: slideIn 0.3s ease-out;
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateX(20px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
Implementation Best Practices
Performance Optimization
- Minimize CSS Size - Only include styles you actually use
- Use Efficient Selectors - Avoid overly complex CSS selectors
- Leverage Browser Caching - Include CSS in external stylesheets when possible
Accessibility Considerations
- Color Contrast - Ensure sufficient contrast ratios (WCAG 2.1 guidelines)
- Focus Indicators - Maintain visible focus states for keyboard navigation
- Touch Targets - Keep interactive elements at least 44px for mobile
Brand Consistency
- Design System Alignment - Match your existing design system
- Typography Hierarchy - Use consistent font weights and sizes
- Color Palette - Limit color variations for cohesive appearance
Troubleshooting
Styles Not Applying
- Check CSS Specificity - Use browser developer tools to inspect conflicting styles
- Verify Loading Order - Ensure your custom CSS loads after the widget CSS
- Use !important Sparingly - Only when necessary to override existing styles
Mobile Compatibility Issues
- Test on Real Devices - Browser resize doesn’t always match mobile behavior
- Check Touch Interactions - Ensure buttons are appropriately sized for touch
- Validate Responsive Breakpoints - Test at various screen sizes
Browser Compatibility
- Use Autoprefixer - Automatically add vendor prefixes for CSS properties
- Test Cross-Browser - Validate in Chrome, Firefox, Safari, and Edge
- Provide Fallbacks - Include fallback values for newer CSS features
Performance Issues
- Optimize Images - Compress custom images used in styling
- Minimize CSS - Remove unused styles and minimize CSS files
- Avoid Complex Animations - Keep animations smooth and lightweight
Professional Styling Examples
Luxury Brand Aesthetic
.smartrecom-quiz-manager {
font-family: 'Playfair Display', serif;
color: #2d2d2d;
background: linear-gradient(to bottom, #f8f8f8, #ffffff);
}
.smartrecom-button-primary {
background: linear-gradient(45deg, #c9a961, #d4b76a);
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 600;
}
.smartrecom-multiple-choice-option {
border: 2px solid #e8e8e8;
background: #ffffff;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
Modern Minimalist Style
.smartrecom-quiz-manager {
font-family: 'Inter', sans-serif;
font-weight: 400;
color: #1f2937;
}
.smartrecom-button-primary {
background: #000000;
border-radius: 2px;
font-weight: 500;
text-transform: none;
}
.smartrecom-multiple-choice-option {
border: 1px solid #e5e7eb;
border-radius: 4px;
background: #ffffff;
transition: border-color 0.2s ease;
}
Playful Brand Style
.smartrecom-quiz-manager {
font-family: 'Nunito', sans-serif;
color: #4a5568;
}
.smartrecom-button-primary {
background: linear-gradient(135deg, #667eea, #764ba2);
border-radius: 25px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.smartrecom-multiple-choice-option {
border: 3px solid #e2e8f0;
border-radius: 15px;
background: #ffffff;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.smartrecom-multiple-choice-option:hover {
transform: translateY(-3px);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}
CSS customization allows you to create a quiz experience that seamlessly integrates with your brand while maintaining optimal functionality and user experience. Start with basic color and typography changes, then gradually add more sophisticated styling as needed.