A modern and interactive web tool for generating CSS shadows (box-shadow) and Dart/Flutter code (BoxShadow) visually.
- Real-time Preview: Instant preview of changes
- Multiple Layers: Create complex shadows with multiple layers
- Full Control: Adjust X, Y, blur, spread, color and opacity
- Inset Support: Inner shadows with automatic Flutter package suggestion
- Gradients: Linear and radial with multiple color stops
- Custom Shape: Adjust border-radius and padding
- Presets: Ready-made templates (Soft, Neumorphism, Glass)
- CSS: Ready-to-use code with prefixes (-webkit, -moz)
- Dart/Flutter: Formatted BoxShadow and BoxDecoration
- Tailwind: Arbitrary utility classes
- Smart Copy: Context-sensitive button (CSS/Dart/Tailwind)
| Technology | Usage |
|---|---|
| HTML5 | Semantic structure |
| CSS3 | Variables, Grid, Flexbox, Animations, Glassmorphism |
| JavaScript | ES6+, Modules, Classes (Vanilla - zero dependencies) |
This project was developed with accessibility in mind:
- Skip Link: Quick navigation for keyboard users
- Semantic Landmarks:
main,header,footer,nav,aside - ARIA Roles: Tabs with
role="tablist"androle="tabpanel" - Descriptive Labels: All buttons and links with
aria-label - Focus Visible: Enhanced focus indicators
- Hidden Decoratives:
aria-hidden="true"on visual elements
The project follows the MVC (Model-View-Controller) pattern:
js/
βββ main.js # Controller
βββ model/
β βββ ShadowModel.js # State and business logic
βββ view/
β βββ ShadowView.js # DOM manipulation
βββ components/ # Auxiliary components
β βββ LayerManager.js
β βββ BackgroundManager.js
β βββ GradientManager.js
β βββ ...
βββ config/
βββ controlsConfig.js
For complete technical details, see ARCHITECTURE.md.
Visit layeredshade.netlify.app
-
Clone the repository:
git clone https://github.com/Franklyn-R-Silva/Layered-Shade.git
-
Open the folder in VS Code
-
Use the Live Server extension to open
index.html
β οΈ The project uses ES Modules, so it needs to be served via HTTP (won't work by opening the file directly).
npm install # Install dependencies
npm test # Run tests
npm run test:coverage # Run with coverage
npm run lint # Check code style- Fork the project
- Create your branch (
git checkout -b feature/NewFeature) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature/NewFeature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
Franklyn R. Silva
- GitHub: @Franklyn-R-Silva
- LinkedIn: franklyn-roberto-dev
This project is licensed under the MIT License.
β If this project was helpful, consider giving it a star!

