# 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! --- **Disclaimer**: This document has been translated using the AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). While we strive for accuracy, please be aware that automated translations may contain errors or inaccuracies. The original document in its native language should be considered the authoritative source. For critical information, professional human translation is recommended. We are not liable for any misunderstandings or misinterpretations arising from the use of this translation.