diff --git a/.gitignore b/.gitignore index 517252d..19e4fc2 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,6 @@ yarn-error.log* # typescript *.tsbuildinfo next-env.d.ts + + + -Raw) -replace diff --git a/THEMES.md b/THEMES.md index 5ca6b53..ce7827c 100644 --- a/THEMES.md +++ b/THEMES.md @@ -4,7 +4,7 @@ This gallery showcases all available themes for the CommitPulse streak card. --- -## π Neon +## π Neon  @@ -28,7 +28,7 @@ Usage: `/api/streak?user=yourusername&theme=dark` --- -## π€ Light +## π Light  @@ -68,7 +68,7 @@ Usage: `/api/streak?user=yourusername&theme=forest` --- -## πΉ Rose +## πΈ Rose  @@ -81,3 +81,4 @@ Usage: `/api/streak?user=yourusername&theme=rose`  Usage: `/api/streak?user=yourusername&theme=nord` +'@ diff --git a/app/customize/page.tsx b/app/customize/page.tsx index b2d7caa..d1c227d 100644 --- a/app/customize/page.tsx +++ b/app/customize/page.tsx @@ -1,11 +1,13 @@ -'use client'; +ο»Ώ'use client'; import { useState, useCallback } from 'react'; import Link from 'next/link'; import { motion } from 'framer-motion'; import { themes } from '../../lib/svg/themes'; +import { FONT_OPTIONS } from '../../lib/svg/generator'; +const FONT_KEYS = Object.keys(FONT_OPTIONS); -// βββ Types ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ +// Γ’ββ¬Γ’ββ¬Γ’ββ¬ Types Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬ type Scale = 'linear' | 'log'; @@ -19,13 +21,13 @@ const SPEEDS = [ { value: '20s', label: 'Ultra-slow (20s)' }, ] as const; -// βββ Helpers ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ +// Γ’ββ¬Γ’ββ¬Γ’ββ¬ Helpers Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬ function stripHash(val: string) { return val.replace(/^#/, ''); } -// βββ Sub-components βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ +// Γ’ββ¬Γ’ββ¬Γ’ββ¬ Sub-components Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬Γ’ββ¬ function SectionLabel({ children }: { children: React.ReactNode }) { return ( @@ -89,7 +91,7 @@ function HexInput({
Every change below updates the preview in real-time. Copy the Markdown snippet when - you're done β no extra steps required. + you're done Γ’β¬β no extra steps required.
{scale === 'log' - ? 'Log mode compresses extreme outliers β great for power committers.' + ? 'Log mode compresses extreme outliers Γ’β¬β great for power committers.' : 'Linear mode shows raw commit counts as tower heights.'}
+ {/* Font Style */} +- Preview updates on every change Β· Hosted badge is cached at UTC midnight + Preview updates on every change ΓΒ· Hosted badge is cached at UTC midnight
@@ -496,8 +515,8 @@ export default function CustomizePage() {
Paste this into your GitHub profile's{' '}
- README.md β the badge renders server-side, no
- script required.
+ README.md Γ’β¬β the badge renders server-side,
+ no script required.