Overview
School Science uses a combination of Material-UI, Styled Components, and CSS for styling. This guide covers how to customize the visual appearance to match your branding or preferences.Color System
The application uses a consistent color palette throughout:Current Color Scheme
| Color Name | Hex Code | Usage |
|---|---|---|
| Dark Navy | #0a192f | Card backgrounds, primary dark |
| Deep Purple | #211951 | Overlays, secondary dark |
| Cyan Accent | #15F5BA | Primary accent, highlights |
| Cyan Light | #64ffda | Hover states, gradients |
| Purple Accent | #836FFF | Secondary accent, buttons |
| Purple Light | #A48BFF | Hover gradients |
| Light Text | #F0F3FF | Primary text color |
| Pink Accent | #ff6b81 | Favorite icon |
| Hot Pink | #ff4081 | Favorite hover |
Customizing Colors
Global Theme Colors
Modify colors insrc/index.css for global changes:
src/index.css
Component-Specific Colors
FlipScienceCard
Edit colors insrc/components/FlipScienceCard.jsx:
src/components/FlipScienceCard.jsx
Home Page
Modify button styling insrc/pages/Home.jsx:
src/pages/Home.jsx
Project Detail Page
Update background color insrc/pages/ProyectoDetalle.jsx:
src/pages/ProyectoDetalle.jsx
Customizing Typography
Font Families
The default fonts can be changed insrc/index.css:
src/index.css
Importing Custom Fonts
Add Google Fonts or custom fonts:index.html
Font Sizes
Modify typography scale:src/index.css
Customizing Components
Card Styling
Border Radius
Change card roundness:FlipScienceCard.jsx
Shadows and Glow
Modify glow effects:FlipScienceCard.jsx
Hover Effects
Adjust hover animations:FlipScienceCard.jsx
Button Styling
Button Shape
Home.jsx
Button Colors
Home.jsx
Carousel Styling
Customize the image carousel insrc/components/ImageCarousel.jsx:
ImageCarousel.jsx
Material-UI Theme Customization
Creating a Custom Theme
Add theme configuration tosrc/main.jsx:
src/main.jsx
Using Theme in Components
Access theme values in components:Styled Components
Creating Custom Styled Components
Add new styled components:Responsive Design
Breakpoints
Current responsive breakpoints:Adding Responsive Styles
Animation Customization
Transition Speeds
Modify animation durations:Custom Animations
Add keyframe animations:Icon Customization
Using Different Icons
School Science uses both Material-UI Icons and Lucide React:Icon Sizes
Layout Customization
Container Width
Modify max-width insrc/pages/Home.jsx:
Grid Layouts
Adjust card grid:Dark/Light Mode
Adding Light Mode Support
Implement theme toggle:src/main.jsx
Best Practices
Use CSS Variables for Consistency
Use CSS Variables for Consistency
Define colors once in
:root and reference throughout:Test on Multiple Devices
Test on Multiple Devices
Always test customizations on:
- Desktop (1920x1080)
- Laptop (1366x768)
- Tablet (768x1024)
- Mobile (375x667)
Maintain Accessibility
Maintain Accessibility
Ensure:
- Sufficient color contrast (4.5:1 minimum)
- Focus states visible on keyboard navigation
- Touch targets at least 44x44px on mobile
Performance Considerations
Performance Considerations
- Minimize animation complexity
- Use
transformandopacityfor smooth animations - Avoid animating
width,height, ortop/left - Consider reduced motion preferences
Related Documentation
Material-UI Theming
Official MUI theme documentation
Styled Components Docs
Learn advanced styled-components techniques