mirror of
https://github.com/remvze/moodist.git
synced 2025-12-19 01:44:15 +00:00
🌲 Ambient sounds for focus and calm.
## 核心功能 - 手风琴效果:展开任意音乐时收起其他所有展开项 - 互斥展开:展开音乐时自动收起当前选中声音模块 - 动态高度:音乐展开时移除容器高度限制,完整展示所有内容 ## UI优化 - 音乐信息横向布局:音乐名、声音名、按钮同排对齐 - 声音名称位置调整:优化垂直对齐,增加下移间距 - 平滑动画:添加容器高度过渡动画效果 ## 技术实现 - 重构展开逻辑:统一状态管理,确保互斥性 - 动态CSS类:基于展开状态动态添加hasExpanded类 - 响应式设计:容器高度自适应内容变化 ## 用户体验 - 界面整洁:同时只展开一个区域,避免视觉混乱 - 内容完整:展开时确保所有声音信息可见 - 交互流畅:平滑动画过渡,提升操作体验 |
||
|---|---|---|
| .github/workflows | ||
| .husky | ||
| .serena | ||
| .spec-workflow | ||
| .storybook | ||
| .vscode | ||
| assets | ||
| data | ||
| docker/nginx | ||
| public | ||
| scripts | ||
| src | ||
| .commitlintrc.json | ||
| .czrc | ||
| .dockerignore | ||
| .editorconfig | ||
| .eslintignore | ||
| .eslintrc.json | ||
| .gitignore | ||
| .lintstagedrc.json | ||
| .npmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| .stylelintignore | ||
| .stylelintrc.json | ||
| .versionrc.json | ||
| astro.config.mjs | ||
| CHANGELOG.md | ||
| CONTRIBUTING.md | ||
| docker-compose.dev.yml | ||
| docker-compose.optimized.yml | ||
| docker-compose.yml | ||
| DOCKER_DEPLOY.md | ||
| Dockerfile | ||
| Dockerfile.multiplatform | ||
| Dockerfile.optimized | ||
| Dockerfile.simple | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.cjs | ||
| README.en.md | ||
| README.md | ||
| README.zh-CN.md | ||
| test-jwt.js | ||
| tsconfig.json | ||
| users.db | ||
| vitest.config.ts | ||
🌍 Language / 语言
Table of Contents
Features
- 🎵 Over 75 ambient sounds.
- 📝 Persistent sound selection.
- ✈️ Sharing sound selections with others.
- 🧰 Custom sound presets.
- 🌙 Sleep timer for sounds.
- 📓 Notepad for quick notes.
- 🍅 Pomodoro timer.
- ✅ Simple to-do list (soon).
- ⏯️ Media controls.
- ⌨️ Keyboard shortcuts for everything.
- 🥷 Privacy focused: no data collection.
- 💰 Completely free, open-source, and self-hostable.
Tools
- ⚡ TypeScript: Programming Language
- 🔨 React: UI Library
- 🧑🚀 Astro: Meta Framework
- 🎨 CSS Modules: Styling
- 🐻 Zustand: State Management
- 🎭 Framer Motion: Animation Library
- ⚙️ Radix: Accessible Components
- 📕 Storybook: Component Documentation
- 🧪 Vitest: Unit Testing (soon)
- 🔭 Playwright: End-To-End Testing (soon)
- 🔍 ESLint: Code Linting
- 🧹 Prettier: Code Formatting
- 🧼 Stylelint: CSS Linting
- 🐶 Husky: Git Hooks
- 📝 Lint Staged: Running Linters on Staged Files
- 🧽 Commitlint: Git Commit Linting
- 🧭 Commitizen: Git Commit Message Helper
- 📓 Standard Version: Versioning and CHANGLOG Generation
- 🧰 PostCSS: CSS Transformations
Commands
npm run dev: run development servernpm run build: build for productionnpm run preview: preview the built appnpm run lint: lint files using ESLintnpm run lint:fix: lint and fix using ESLintnpm run lint:style: lint styles using Stylelintnpm run lint:style:fix: lint and fix styles using Stylelintnpm run format: format files using Prettiernpm run commit: commit message using Commitizennpm run release:major: release major versionnpm run release:minor: release minor versionnpm run release:patch: release patch versionnpm run storybook: run Storybook
Contributing
🚧 Please check CONTRIBUTING.md file.
Support Moodist
⭐ Give a star if you liked this project.
☕ Buy Me a Coffee to help me maintain Moodist.
License
This project is licensed under the MIT License - see the LICENSE file for details.
⚠️ Third-Party Assets
Some sounds used in this project are sourced from third-party providers and are subject to different licenses:
- Sounds licensed under the Pixabay Content License: Pixabay Content License
- Sounds licensed under CC0: Creative Commons Zero License