# Assignment: Restyle Your Browser Extension ## Overview Now that you've built the HTML structure for your carbon footprint browser extension, it's time to make it visually appealing and user-friendly. Great design enhances the user experience and makes your extension more professional and engaging. Your extension comes with basic CSS styling, but this assignment challenges you to create a unique visual identity that reflects your personal style while maintaining excellent usability. ## Instructions ### Part 1: Analyze the Current Design Before making changes, examine the existing CSS structure: 1. **Locate** the CSS files in your extension project 2. **Review** the current styling approach and color scheme 3. **Identify** areas for improvement in layout, typography, and visual hierarchy 4. **Consider** how the design supports user goals (easy form completion and clear data display) ### Part 2: Design Your Custom Styling Create a cohesive visual design that includes: **Color Scheme:** - Choose a primary color palette that reflects environmental themes - Ensure sufficient contrast for accessibility (use tools like WebAIM's contrast checker) - Consider how colors will look across different browser themes **Typography:** - Select readable fonts that work well at small extension sizes - Establish a clear hierarchy with appropriate font sizes and weights - Ensure text remains legible in both light and dark browser themes **Layout and Spacing:** - Improve the visual organization of form elements and data display - Add appropriate padding and margins for better readability - Consider responsive design principles for different screen sizes ### Part 3: Implement Your Design Modify the CSS files to implement your design: ```css /* Example starting points for customization */ .form-data { /* Style the configuration form */ background: /* your choice */; padding: /* your spacing */; border-radius: /* your preference */; } .result-container { /* Style the data display area */ background: /* complementary color */; border: /* your border style */; margin: /* your spacing */; } /* Add your custom styles here */ ``` **Key areas to style:** - **Form elements**: Input fields, labels, and submit button - **Results display**: Data container, text styling, and loading states - **Interactive elements**: Hover effects, button states, and transitions - **Overall layout**: Container spacing, background colors, and visual hierarchy ### Part 4: Test and Refine 1. **Build** your extension with `npm run build` 2. **Load** the updated extension into your browser 3. **Test** all visual states (form entry, loading, results display, errors) 4. **Verify** accessibility with browser developer tools 5. **Refine** your styles based on actual usage ## Creative Challenges ### Basic Level - Update colors and fonts to create a cohesive theme - Improve spacing and alignment throughout the interface - Add subtle hover effects to interactive elements ### Intermediate Level - Design custom icons or graphics for your extension - Implement smooth transitions between different states - Create a unique loading animation for API calls ### Advanced Level - Design multiple theme options (light/dark/high-contrast) - Implement responsive design for different browser window sizes - Add micro-interactions that enhance the user experience ## Submission Guidelines Your completed assignment should include: - **Modified CSS files** with your custom styling - **Screenshots** showing your extension in different states (form, loading, results) - **Brief description** (2-3 sentences) explaining your design choices and how they improve the user experience ## Assessment Rubric | Criteria | Exemplary (4) | Proficient (3) | Developing (2) | Beginning (1) | |----------|---------------|----------------|----------------|----------------| | **Visual Design** | Creative, cohesive design that enhances usability and reflects strong design principles | Good design choices with consistent styling and clear visual hierarchy | Basic design improvements with some consistency issues | Minimal styling changes or inconsistent design | | **Functionality** | All styles work perfectly across different states and browser environments | Styles work well with minor issues in edge cases | Most styles functional with some display problems | Significant styling issues that impact usability | | **Code Quality** | Clean, well-organized CSS with meaningful class names and efficient selectors | Good CSS structure with appropriate use of selectors and properties | Acceptable CSS with some organization issues | Poor CSS structure or overly complex styling | | **Accessibility** | Excellent color contrast, readable fonts, and consideration for users with disabilities | Good accessibility practices with minor areas for improvement | Basic accessibility considerations with some issues | Limited attention to accessibility requirements | ## Tips for Success > 💡 **Design Tip**: Start with subtle changes and build up to more dramatic styling. Small improvements in typography and spacing often have big impacts on perceived quality. **Best practices to follow:** - **Test** your extension in both light and dark browser themes - **Use** relative units (em, rem) for better scalability - **Maintain** consistent spacing using CSS custom properties - **Consider** how your design will look to users with different visual needs - **Validate** your CSS to ensure it follows proper syntax > ⚠️ **Common Mistake**: Don't sacrifice usability for visual appeal. Your extension should be both beautiful and functional. **Remember to:** - **Keep** important information easily readable - **Ensure** buttons and interactive elements are easy to click - **Maintain** clear visual feedback for user actions - **Test** your design with real data, not just placeholder text Good luck creating a browser extension that's both functional and visually stunning!