Add fullscreen firework emoji confetti and fix Linux URL paste.
All checks were successful
Trigger cinny-mobile / dispatch (push) Successful in 2s
All checks were successful
Trigger cinny-mobile / dispatch (push) Successful in 2s
Sparkle 🎆/🎇 from the jumbo emoji with a lightweight particle fountain that piles on the floor. Prefer text/plain over sticky clipboard images on Linux so address-bar URLs do not also attach a leftover bitmap.
This commit is contained in:
@@ -7,7 +7,8 @@ export type BurstMotionStyle =
|
||||
| 'spiral'
|
||||
| 'punch'
|
||||
| 'scatter'
|
||||
| 'shower';
|
||||
| 'shower'
|
||||
| 'firework';
|
||||
|
||||
export type EmojiBurstProfile = {
|
||||
style: BurstMotionStyle;
|
||||
@@ -32,6 +33,8 @@ export type EmojiBurstProfile = {
|
||||
angleSpread?: number;
|
||||
twinkle?: boolean;
|
||||
wobble?: boolean;
|
||||
/** Full-viewport overlay (Box2D pile for fireworks). */
|
||||
fullscreen?: boolean;
|
||||
};
|
||||
|
||||
const DEFAULT_PROFILE: EmojiBurstProfile = {
|
||||
@@ -340,6 +343,45 @@ const PROFILE_OVERRIDES: Record<string, Partial<EmojiBurstProfile>> = {
|
||||
companions: ['🎉', '🎊', '🎈'],
|
||||
companionChance: 0.4,
|
||||
},
|
||||
'🎆': {
|
||||
style: 'firework',
|
||||
fullscreen: true,
|
||||
particleCount: 320,
|
||||
gravity: 980,
|
||||
drag: 1,
|
||||
speedMin: 420,
|
||||
speedMax: 980,
|
||||
launchUpMin: 180,
|
||||
launchUpMax: 420,
|
||||
spinMin: -520,
|
||||
spinMax: 520,
|
||||
fontSizeMin: 16,
|
||||
fontSizeMax: 30,
|
||||
heroFontSizeMin: 40,
|
||||
heroFontSizeMax: 52,
|
||||
companions: ['🎇', '✨', '💥', '⭐', '🎉'],
|
||||
companionChance: 0.55,
|
||||
},
|
||||
'🎇': {
|
||||
style: 'firework',
|
||||
fullscreen: true,
|
||||
particleCount: 280,
|
||||
gravity: 960,
|
||||
drag: 1,
|
||||
speedMin: 380,
|
||||
speedMax: 920,
|
||||
launchUpMin: 160,
|
||||
launchUpMax: 400,
|
||||
spinMin: -480,
|
||||
spinMax: 480,
|
||||
fontSizeMin: 14,
|
||||
fontSizeMax: 28,
|
||||
heroFontSizeMin: 36,
|
||||
heroFontSizeMax: 48,
|
||||
companions: ['🎆', '✨', '⭐', '💥'],
|
||||
companionChance: 0.5,
|
||||
twinkle: true,
|
||||
},
|
||||
'🐱': {
|
||||
style: 'bounce',
|
||||
particleCount: 20,
|
||||
@@ -369,6 +411,10 @@ export function getEmojiBurstProfile(emoji: string): EmojiBurstProfile {
|
||||
return { ...DEFAULT_PROFILE, ...override };
|
||||
}
|
||||
|
||||
export function isFullscreenBurstEmoji(emoji: string): boolean {
|
||||
return getEmojiBurstProfile(emoji).fullscreen === true;
|
||||
}
|
||||
|
||||
export function pickParticleEmoji(profile: EmojiBurstProfile, primaryEmoji: string): string {
|
||||
if (!profile.companions?.length || !profile.companionChance) {
|
||||
return primaryEmoji;
|
||||
|
||||
Reference in New Issue
Block a user