Skip to content

LadyNaggaga/Stillness

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Stillness 🌿 v2

Breathe. Click. Color. Let the world dissolve.

Stillness is a browser-based coloring book designed for the moments when your mind needs a quiet place to land. No accounts. No ads. No noise β€” just you, a canvas of intricate patterns, and colors that feel like a deep exhale.

Choose from ten hand-crafted patterns β€” mandalas, flowing florals, ocean dreamscapes, celestial skies, and more. Fill regions with a single click, paint freehand with a soft brush, or layer gentle gradients β€” all accompanied by ambient chimes, birdsong, or the hush of distant waves. Save your finished artworks to a personal gallery, share them with a link, or simply let the colors carry you somewhere quieter.

Built for stillness. Open it when the day feels loud.

✦ Enter Stillness β†’

image

HTML5 JavaScript Paper.js Vite License


✨ Features

πŸ–ŒοΈ Tools

Tool Shortcut Description
Fill F Click any region to flood-fill with the selected color
Brush B Freehand drawing with adjustable size and opacity
Gradient G Click-drag to apply linear or radial gradient fills
Eraser E Reset filled regions or remove brush strokes
Eyedropper I Sample any color from the canvas

🧩 10 Coloring Patterns

  • Mandala β€” 12-fold symmetry with 200+ fillable regions across 6 concentric rings
  • Floral β€” Central flower, corner bouquets, butterflies, and decorative leaves
  • Geometric β€” Hexagonal tessellation with nested stars and circles
  • Zentangle β€” 4Γ—4 grid with 8 unique tile patterns (spirals, scales, waves, diamonds)
  • Ocean β€” Layered waves, tropical fish, shells, starfish, and coral
  • Elephant β€” Zentangle-style portrait with mandala forehead and decorative tusks
  • Butterfly β€” Detailed wing patterns with intricate vein work and symmetry
  • Celestial β€” Stars, moons, constellations, and swirling cosmic motifs
  • Garden β€” Winding paths, flower beds, trellises, and garden creatures
  • Mosaic β€” Interlocking tile fragments inspired by stained glass and Roman mosaics

🌸 Seasonal Color Themes

Switch the palette to match the mood of the season:

  • Default β€” The original 25-color curated palette (muted, calming tones)
  • Spring Bloom β€” Soft pinks, fresh greens, and lavender
  • Autumn Warmth β€” Rich ambers, burnt orange, and deep reds
  • Winter Frost β€” Cool blues, silver, and icy whites

✨ Fill Animations

Subtle particle effects bloom outward when you fill a region β€” tiny motes of color that drift and fade, making each click feel alive.

πŸ” Zoom & Pan

  • Mouse wheel β€” Zoom toward cursor
  • Space + drag β€” Pan across the canvas
  • Pinch to zoom β€” Touch-friendly on mobile and tablet
  • Keyboard: + zoom in, - zoom out, 0 fit to screen

🎨 Color System

  • 25-color curated palette (muted, calming tones)
  • HSL sliders for fine-tuning custom shades
  • Dual gradient color selector

πŸ”Š Ambient Fill Sounds

  • Chimes β€” Pentatonic wind-chime arpeggio
  • Wind β€” Filtered white noise swell
  • Birds β€” Synthesized chirp sequence
  • Ocean β€” Low-pass wave wash

πŸ–ΌοΈ My Gallery

Save your colored artworks to a personal gallery stored in your browser. Browse, revisit, and continue coloring any saved piece β€” your quiet collection grows over time.

πŸ”— Share

  • Image sharing β€” Export and share via the Web Share API on supported devices
  • Shareable URL β€” Generate a compact link (powered by LZ-String compression) that encodes your artwork so anyone can open and view it

πŸ“± Mobile & Touch Support

  • Responsive sidebar that collapses for small screens
  • Tap to fill, pinch to zoom, swipe to pan
  • Touch-optimized controls throughout

β™Ώ Accessibility

  • ARIA labels on all interactive elements
  • Full keyboard navigation
  • prefers-reduced-motion support β€” animations gracefully step aside

πŸŽ“ Onboarding

A gentle guided tutorial welcomes first-time visitors, introducing tools, patterns, and the art of doing nothing in particular.

πŸ’Ύ Save & Export

  • PNG β€” Rasterized export at 800Γ—800
  • SVG β€” Lossless vector export (editable in Illustrator/Inkscape)
  • Save/Load Progress β€” Persist your work to localStorage and resume later

πŸš€ Getting Started

git clone https://github.com/LadyNaggaga/Stillness.git
cd Stillness
npm install

Option 1: Development server

npm run dev

Opens a hot-reloading dev server β€” perfect for exploring or making changes.

Option 2: Production build

npm run build && npm run preview

Builds optimized static files into dist/ and serves them locally.

Option 3: GitHub Pages

The site auto-deploys via GitHub Actions on every push to main. Just merge and it's live.


πŸ—οΈ Architecture

Modular ES-module app built with Vite β€” each concern lives in its own file.

src/
β”œβ”€β”€ main.js           # Entry point & app initialization
β”œβ”€β”€ canvas.js         # Paper.js canvas setup, zoom/pan
β”œβ”€β”€ tools.js          # Fill, brush, gradient, eraser, eyedropper
β”œβ”€β”€ ui.js             # Sidebar, toolbar, theme & palette controls
β”œβ”€β”€ audio.js          # Web Audio API ambient sounds
β”œβ”€β”€ state.js          # App state, gallery, sharing (LZ-String)
β”œβ”€β”€ export.js         # PNG / SVG export
β”œβ”€β”€ undo.js           # Command-pattern undo/redo
β”œβ”€β”€ onboarding.js     # First-visit guided tutorial
β”œβ”€β”€ patterns/
β”‚   β”œβ”€β”€ index.js      # Pattern registry
β”‚   β”œβ”€β”€ helpers.js    # Shared geometry utilities
β”‚   β”œβ”€β”€ mandala.js
β”‚   β”œβ”€β”€ floral.js
β”‚   β”œβ”€β”€ geometric.js
β”‚   β”œβ”€β”€ zentangle.js
β”‚   β”œβ”€β”€ ocean.js
β”‚   β”œβ”€β”€ elephant.js
β”‚   β”œβ”€β”€ butterfly.js
β”‚   β”œβ”€β”€ celestial.js
β”‚   β”œβ”€β”€ garden.js
β”‚   └── mosaic.js
└── styles/
    β”œβ”€β”€ main.css      # Core layout & dark-mode theme
    β”œβ”€β”€ sidebar.css   # Sidebar & palette styles
    β”œβ”€β”€ toolbar.css   # Toolbar controls
    β”œβ”€β”€ mobile.css    # Responsive / touch overrides
    └── onboarding.css
Layer Technology Purpose
Build Vite Fast dev server, ES-module bundling, production builds
Rendering Paper.js Vector canvas, hit-testing, zoom/pan, SVG export
Audio Web Audio API Synthesized ambient sounds (no audio files needed)
Sharing LZ-String URL-safe compression for shareable artwork links
UI Vanilla CSS + JS Dark-mode interface, responsive layout
Fonts Inter (Google Fonts) Clean, modern typography

How Patterns Work

Each pattern is a generator function that creates Paper.js closed paths β€” every enclosed region is an individually clickable and fillable item. The fill tool uses Paper.js hitTest() for precise vector hit-testing (no pixel scanning), which means fills are instant and crisp at any zoom level.

Undo System

Uses a command pattern β€” each fill/brush operation is recorded as a reversible command object, enabling efficient undo/redo without storing full canvas snapshots.


⌨️ Keyboard Shortcuts

Key Action
F Fill tool
B Brush tool
G Gradient tool
E Eraser tool
I Eyedropper
Space + drag Pan
+ / - Zoom in / out
0 Fit to screen
Ctrl+Z Undo
Ctrl+Shift+Z Redo

πŸ“„ License

MIT β€” free for personal and commercial use.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •