https://github.com/jukkan/icon-365
Visual browser for Microsoft Cloud Logos community repo
https://github.com/jukkan/icon-365
azure copilot dynamics365 entra fabric icon icons microsoft microsoft365 powerplatform viva
Last synced: about 1 month ago
JSON representation
Visual browser for Microsoft Cloud Logos community repo
- Host: GitHub
- URL: https://github.com/jukkan/icon-365
- Owner: jukkan
- Created: 2025-11-22T14:30:10.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-11-24T13:12:59.000Z (7 months ago)
- Last Synced: 2025-11-28T02:27:23.195Z (7 months ago)
- Topics: azure, copilot, dynamics365, entra, fabric, icon, icons, microsoft, microsoft365, powerplatform, viva
- Language: TypeScript
- Homepage: https://icons.jukkan.com/
- Size: 320 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Icon 365
A visual browser for [Loryan Strant's Microsoft Cloud Logos](https://github.com/loryanstrant/MicrosoftCloudLogos) community repository.
**URL**: https://icons.jukkan.com
[](https://icons.jukkan.com/)
## Features
- **Search & Filter**: Fuzzy search across filenames and product names, filter by category (Azure, Teams, Office, Power Platform, etc.) and file type (PNG/SVG)
- **New Icons Filter**: Toggle to show only current icons vs legacy versions
- **Grid & List Views**: Switch between visual layouts
- **Multi-select & Bulk Download**: Ctrl+click to select multiple icons, download as ZIP
- **Preview Modal**: View full-size icons with dimensions and file size, navigate with arrow keys
- **Keyboard Navigation**: `/` to search, arrow keys to navigate, `Enter` to preview
- **Dark Mode**: Respects system preference with manual toggle
- **URL State**: Search queries and filters persist in URL for sharing
## Technical Details
### Stack
- React 18 + TypeScript
- Vite build tooling
- Tailwind CSS
- Fuse.js for fuzzy search
- JSZip for bulk downloads
### Caching & Data Updates
Icon 365 fetches data from the GitHub API and caches it in browser localStorage:
- **Cache TTL**: 7 days
- **Conditional Requests**: Uses ETags (HTTP 304) to avoid re-downloading unchanged data
- **Recent Changes**: Fetches last 30 days of commits to identify newly added/modified icons (marked with "NEW" badge)
- **Fallback**: Returns cached data if network requests fail
Data refreshes automatically when cache expires or manually via the refresh button. The app processes ~2000+ icons across 10+ categories from the source repository.