dependabot[bot] 0f34030efa chore(deps-dev): bump the npm-development group across 1 directory with 9 updates
Bumps the npm-development group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.62.1` | `8.67.0` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.3` | `6.0.5` |
| [eslint](https://github.com/eslint/eslint) | `9.39.4` | `9.39.5` |
| [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh) | `0.5.3` | `0.5.4` |
| [jsdom](https://github.com/jsdom/jsdom) | `29.1.1` | `30.0.1` |
| [prettier](https://github.com/prettier/prettier) | `3.9.4` | `3.9.6` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.1.3` | `8.2.1` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.9` | `4.1.10` |



Updates `@typescript-eslint/eslint-plugin` from 8.62.1 to 8.67.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.67.0/packages/eslint-plugin)

Updates `@typescript-eslint/parser` from 8.62.1 to 8.67.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.67.0/packages/parser)

Updates `@vitejs/plugin-react` from 6.0.3 to 6.0.5
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.5/packages/plugin-react)

Updates `eslint` from 9.39.4 to 9.39.5
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v9.39.4...v9.39.5)

Updates `eslint-plugin-react-refresh` from 0.5.3 to 0.5.4
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/compare/v0.5.3...v0.5.4)

Updates `jsdom` from 29.1.1 to 30.0.1
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Commits](https://github.com/jsdom/jsdom/compare/v29.1.1...v30.0.1)

Updates `prettier` from 3.9.4 to 3.9.6
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.9.4...3.9.6)

Updates `vite` from 8.1.3 to 8.2.1
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.2.1/packages/vite)

Updates `vitest` from 4.1.9 to 4.1.10
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.10/packages/vitest)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-version: 8.67.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-development
- dependency-name: "@typescript-eslint/parser"
  dependency-version: 8.67.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-development
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-development
- dependency-name: eslint
  dependency-version: 9.39.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-development
- dependency-name: eslint-plugin-react-refresh
  dependency-version: 0.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-development
- dependency-name: jsdom
  dependency-version: 30.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: npm-development
- dependency-name: prettier
  dependency-version: 3.9.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-development
- dependency-name: vite
  dependency-version: 8.2.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-development
- dependency-name: vitest
  dependency-version: 4.1.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-development
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-17 02:50:39 +00:00
2025-11-12 19:57:52 +08:00
2025-11-12 19:57:52 +08:00
2025-11-12 19:57:52 +08:00
2026-03-17 15:20:22 +08:00
2025-11-12 19:57:52 +08:00
2025-11-12 19:57:52 +08:00
2025-11-12 19:57:52 +08:00
2025-11-12 19:57:52 +08:00
2025-11-12 19:57:52 +08:00

🔑 UUID Playground

A modern, production-ready web application for generating and exploring UUIDs with a beautiful glassmorphism interface. Generate UUIDs and view them in multiple formats with one click.

Deploy to GitHub Pages

✨ Features

Core Functionality

  • Multiple UUID Versions: Generate UUIDv1 (time-based), UUIDv4 (random), and UUIDv7 (time-ordered)
  • 8 Format Representations: View each UUID in canonical, hex, braced, URN, decimal, binary, Base64, and URL-safe Base64 formats
  • One-Click Copy: Copy any format to clipboard with visual feedback
  • UUID Validation: Paste UUID strings (canonical, hex, braced, or URN) to normalize and view all representations
  • Lock Feature: Prevent accidental regeneration with UUID lock toggle
  • Auto-Generate: Automatically generate new UUIDs at configurable intervals (1-60 seconds)
  • Keyboard Shortcuts: Press Space or Enter to generate new UUIDs

UI/UX Excellence

  • Glassmorphism Design: Modern translucent panels with blur effects
  • Light/Dark Themes: Automatic theme detection with manual toggle (preference saved)
  • Smooth Animations: GPU-accelerated animations with non-linear easing
  • Responsive Layout: Optimized for desktop, tablet, and mobile devices
  • Toast Notifications: Elegant feedback for all user actions
  • Accessibility: Full keyboard navigation and ARIA labels

🚀 Live Demo

Visit the live application at: https://uuid.xi-xu.me

🛠️ Tech Stack

  • Framework: React 18 with TypeScript
  • Build Tool: Vite 5
  • Styling: Pure CSS with CSS Variables
  • Testing: Vitest
  • Deployment: GitHub Actions → GitHub Pages
  • UUID Generation: Web Crypto API

📦 Installation & Development

Prerequisites

  • Node.js 18+ (LTS recommended)
  • npm or yarn

Local Development

  1. Clone the repository

    git clone https://github.com/xixu-me/UUID-Playground.git
    cd UUID-Playground
    
  2. Install dependencies

    npm install
    
  3. Start development server

    npm run dev
    

    The app will be available at http://localhost:5173

  4. Run tests

    # Run tests once
    npm test
    # Run tests in watch mode
    npm run test:watch
    
  5. Lint code

    npm run lint
    
  6. Build for production

    npm run build
    

    Built files will be in the dist/ directory

  7. Preview production build

    npm run preview
    

🚢 Deployment

GitHub Pages Deployment

This repository is configured to automatically deploy to GitHub Pages using GitHub Actions.

Setup Instructions

  1. Enable GitHub Pages

    • Go to your repository settings
    • Navigate to Pages section
    • Under "Build and deployment":
      • Source: GitHub Actions
  2. Push to main branch

    git push origin main
    
  3. Workflow automatically runs

    • Installs dependencies
    • Runs tests
    • Builds the project
    • Deploys to GitHub Pages
  4. Access your site

    • Your site will be available at: https://<username>.github.io/<repository-name>/

Workflow Details

The deployment workflow (.github/workflows/deploy.yml):

  • Triggers on push to main branch or manual dispatch
  • Uses Node.js 20 LTS
  • Caches npm dependencies for faster builds
  • Runs tests before deployment
  • Uploads build artifacts to GitHub Pages
  • Deploys using official GitHub Actions

Customizing Repository Name

If you rename the repository, update the base path in vite.config.ts:

export default defineConfig({
  base: '/your-new-repo-name/',
  // ... other config
})

🎨 Customization

Changing Colors

Edit CSS variables in src/styles/App.css:

[data-theme='light'] {
  --accent-primary: #667eea;  /* Primary accent color */
  --accent-hover: #5a67d8;    /* Hover state color */
  /* ... other variables */
}

Adding New UUID Formats

  1. Add format conversion in src/lib/uuid.ts:

    export interface UUIDFormats {
      // ... existing formats
      yourNewFormat: string
    }
    
  2. Update getAllFormats() function to include new format

  3. Add description in App.tsx formatDescriptions object

Modifying Auto-Generate Limits

In src/App.tsx, change the min/max values:

<input
  type="number"
  min="1"    // Minimum seconds
  max="60"   // Maximum seconds
  // ...

/>

🧪 Testing

The repository includes comprehensive tests for UUID utilities:

  • UUID Generation: Validates correct version formatting
  • UUID Normalization: Tests various input formats
  • Format Conversion: Verifies all format representations
  • Version Detection: Ensures correct UUID version identification

Run tests:

npm test              # Run once
npm run test:watch    # Watch mode

🔒 Security

  • Uses native Web Crypto API for cryptographically secure random generation
  • No external dependencies for UUID generation
  • Client-side only - no data sent to servers
  • No tracking or analytics

♿ Accessibility

  • Full keyboard navigation support
  • ARIA labels on interactive elements
  • Sufficient color contrast ratios
  • Respects prefers-reduced-motion
  • Focus indicators on all interactive elements

📝 License

Copyright (c) Xi Xu. All rights reserved.

Licensed under the MIT license.

📚 Resources

🙏 Acknowledgments

  • Design inspired by modern glassmorphism trends
  • UUID generation using Web Crypto API standards
  • Built with Vite's lightning-fast tooling

Made with ❤️ and TypeScript

S
Description
Modern, production-ready web application for generating and exploring UUIDs
Readme MIT
274 KiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 54.1%
CSS 35.4%
HTML 8.5%
JavaScript 2%