Files

79 lines
2.8 KiB
Markdown
Raw Permalink Normal View History

2026-01-15 20:05:37 +03:00
# GlyphDiff
2026-02-09 09:57:41 +03:00
A modern font exploration and comparison tool for browsing fonts from Google Fonts and Fontshare with real-time visual comparisons, advanced filtering, and customizable typography.
2026-02-09 09:57:41 +03:00
## Features
2026-02-09 09:57:41 +03:00
- **Multi-Provider Catalog**: Browse fonts from Google Fonts and Fontshare in one place
- **Side-by-Side Comparison**: Compare up to 4 fonts simultaneously with customizable text, size, and typography settings
- **Advanced Filtering**: Filter by category, provider, character subsets, and weight
- **Virtual Scrolling**: Fast, smooth browsing of thousands of fonts
- **Responsive UI**: Beautiful interface built with shadcn components and Tailwind CSS
2026-01-15 20:05:37 +03:00
- **Type-Safe**: Full TypeScript coverage with strict mode enabled
2026-02-09 09:57:41 +03:00
## Tech Stack
2026-02-09 09:57:41 +03:00
- **Framework**: Svelte 5 with reactive primitives (runes)
- **Styling**: Tailwind CSS v4
- **Components**: shadcn-svelte (via bits-ui)
- **State Management**: TanStack Query for async data
- **Architecture**: Feature-Sliced Design (FSD)
- **Quality**: oxlint (linting), dprint (formatting), lefthook (git hooks)
2026-01-15 20:05:37 +03:00
2026-02-09 09:57:41 +03:00
## Project Structure
2026-01-15 20:05:37 +03:00
```
src/
2026-02-09 09:57:41 +03:00
├── app/ # App shell, layout, providers
├── widgets/ # Composed UI blocks (ComparisonSlider, SampleList, FontSearch)
├── features/ # Business features (filters, search, display)
├── entities/ # Domain models and stores (Font, Breadcrumb)
├── shared/ # Reusable utilities, UI components, helpers
└── routes/ # Page-level components
2026-01-15 20:05:37 +03:00
```
2026-02-09 09:57:41 +03:00
## Quick Start
2026-01-15 20:05:37 +03:00
```bash
# Install dependencies
yarn install
# Start development server
yarn dev
2026-02-09 09:57:41 +03:00
# Build for production
yarn build
2026-02-09 09:57:41 +03:00
# Preview production build
yarn preview
```
2026-02-09 09:57:41 +03:00
## Available Scripts
2026-02-09 09:57:41 +03:00
| Command | Description |
| ------------------- | -------------------------- |
| `yarn dev` | Start development server |
| `yarn build` | Build for production |
| `yarn preview` | Preview production build |
| `yarn check` | Run Svelte type checking |
| `yarn lint` | Run oxlint |
| `yarn format` | Format code with dprint |
| `yarn test:unit` | Run unit tests |
| `yarn test:unit:ui` | Run Vitest UI |
| `yarn storybook` | Start Storybook dev server |
2026-02-09 09:57:41 +03:00
## Code Style
2026-01-15 20:05:37 +03:00
- **Path Aliases**: Use `$app/`, `$shared/`, `$features/`, `$entities/`, `$widgets/`, `$routes/`
2026-02-09 09:57:41 +03:00
- **Components**: PascalCase (e.g., `ComparisonSlider.svelte`)
2026-01-15 20:05:37 +03:00
- **Formatting**: 100 char line width, 4-space indent, single quotes
2026-02-09 09:57:41 +03:00
- **Type Safety**: Strict TypeScript with JSDoc comments for public APIs
2026-02-09 09:57:41 +03:00
## Architecture Notes
2026-01-15 20:05:37 +03:00
2026-02-09 09:57:41 +03:00
This project follows the Feature-Sliced Design (FSD) methodology for clean separation of concerns. The application uses Svelte 5's new runes system (`$state`, `$derived`, `$effect`) for reactive state management.
2026-01-15 20:05:37 +03:00
2026-02-09 09:57:41 +03:00
## License
2026-01-15 20:05:37 +03:00
MIT