
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@thatkid02/pixel-text
Advanced tools
A simple weekend project which I always wanted to make. (built with AI coz my hands were tied.)
npm install @thatkid02/pixel-text
Want to see it in action? Try:
# Run the interactive example
npx @thatkid02/pixel-text@latest run
import { generateTextPatterns, PatternOptions } from '@thatkid02/pixel-text';
// Basic usage
const patterns = generateTextPatterns('HELLO');
// Custom options
const options: Partial<PatternOptions> = {
width: 20,
height: 20,
font: '20px monospace',
threshold: 128,
colorOptions: {
mode: 'solid',
primaryColor: '#000000'
},
animationOptions: {
mode: 'all-together',
speed: 50,
soundType: 'pop'
},
renderOptions: {
pixelShape: 'square'
}
};
const customPatterns = generateTextPatterns('HELLO', options);
import {
getPixelColor,
getPresetColor,
getRainbowColor,
getWaveColor,
getRandomColor,
getIntensityColor
} from '@thatkid02/pixel-text';
// Use preset colors
const color = getPresetColor(0, 3, 'Sunset');
// Generate rainbow colors
const rainbowColor = getRainbowColor(index, total);
// Create wave effect colors
const waveColor = getWaveColor(index, total, time);
// Random colors
const randomColor = getRandomColor();
// Intensity-based coloring
const intensityColor = getIntensityColor(alpha, primaryColor);
import { AnimationManager } from '@thatkid02/pixel-text';
const manager = new AnimationManager(pattern);
// Animate with options
await manager.animate({
mode: 'pixel-by-pixel',
speed: 50,
soundType: 'pop',
soundVolume: 0.5,
soundPitch: 800
}, (state) => {
// Update UI with animation state
console.log(state.visiblePixels, state.isAnimating);
});
// Control animation
manager.start();
manager.cancel();
manager.dispose();
import { soundManager } from '@thatkid02/pixel-text';
// Play sounds with options
await soundManager.playSound({
type: 'beep', // 'beep' | 'click' | 'pop' | 'none'
volume: 0.5,
pitch: 800
});
// Cleanup
soundManager.dispose();
import { fontManager, BUILT_IN_FONTS, DOWNLOADABLE_FONTS } from '@thatkid02/pixel-text';
// Use built-in fonts
const systemFonts = fontManager.getBuiltInFonts();
// Load downloadable fonts
const webFont = DOWNLOADABLE_FONTS[0];
await fontManager.loadFont(webFont);
// Add custom font
await fontManager.addCustomFont({
label: 'Custom Font',
value: 'CustomFont',
url: 'path/to/font.woff2',
format: 'woff2'
});
// Get all available fonts
const allFonts = fontManager.getAllFonts();
import { getPixelStyle } from '@thatkid02/pixel-text';
const style = getPixelStyle('square', 10, '#FF0000', {
borderRadius: 2,
rotation: 45 // For diamond shape
});
interface PatternOptions {
width: number;
height: number;
font: string;
fontFamily?: string;
fontWeight?: string | number;
fontStyle?: 'normal' | 'italic';
threshold?: number;
colorOptions?: ColorOptions;
animationOptions?: AnimationOptions;
renderOptions?: RenderOptions;
}
type ColorMode = 'solid' | 'preset' | 'rainbow' | 'wave' | 'random';
type AnimationMode = 'pixel-by-pixel' | 'all-together';
type PixelShape = 'square' | 'circle' | 'diamond' | 'triangle';
type SoundType = 'beep' | 'click' | 'pop' | 'none';
import { generateTextPatterns, AnimationManager, getWaveColor } from '@thatkid02/pixel-text';
const PixelText = () => {
const [patterns, setPatterns] = useState([]);
const animation = useRef(new AnimationManager());
useEffect(() => {
const patterns = generateTextPatterns('HELLO');
setPatterns(patterns);
animation.current.start({
onFrame: (progress) => {
// Update colors or position based on animation progress
}
});
return () => animation.current.stop();
}, []);
return (
<div className="pixel-text">
{/* Render your patterns here */}
</div>
);
};
interface PatternOptions {
width: number; // Width of each character pattern
height: number; // Height of each character pattern
font: string; // CSS font string (e.g., '12px monospace')
threshold?: number; // Alpha threshold for pixel activation (0-255)
}
interface AnimationOptions {
mode: AnimationMode;
duration: number;
easing?: string;
delay?: number;
}
interface ColorOptions {
mode: ColorMode;
preset?: ColorPreset;
custom?: string;
intensity?: number;
}
interface SoundOptions {
volume?: number;
pitch?: number;
loop?: boolean;
delay?: number;
}
MIT
FAQs
try and..
We found that @thatkid02/pixel-text demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.