Catalog npm
PACKAGE EXPLORERView in registry

@0x1js/highlighter

npm

Lightweight, beautiful syntax highlighter for JavaScript, TypeScript, and Bash - Production Optimized

0x1bashcodehighlightingjavascriptproduction-readyreactsyntax-highlightertypescript
Versions collected18
Direct dependencies5From release 0.1.17
Last observed20 Oct, 22:34 UTC

README

Current package documentation

0x1 Highlighter 🌈

Lightweight, beautiful code highlighting for your 0x1 applications

A fast, customizable syntax highlighter built specifically for the 0x1 Framework with support for JavaScript, TypeScript, Bash, and more. Features beautiful themes, copy-to-clipboard functionality, and seamless React integration.

✨ Features

  • 🚀 Blazing Fast - Lightweight tokenization with zero external dependencies
  • 🎨 Beautiful Themes - Dark, Light, and Violet (0x1 brand) themes
  • 📋 Copy to Clipboard - Built-in copy functionality with user feedback
  • 📱 Responsive - Mobile-friendly with touch support
  • ♿ Accessible - Proper ARIA labels and keyboard navigation
  • 🌟 Modern - Supports latest JavaScript/TypeScript features
  • 🎯 Framework Agnostic - Works with or without React/Next.js/0x1

🏗️ Installation

# Install the package
bun add @0x1js/highlighter

# Or with npm
npm install @0x1js/highlighter

🚀 Quick Start

import { SyntaxHighlighter } from '@0x1js/highlighter';
import '@0x1js/highlighter/styles';

function MyComponent() {
  const code = `
const { useState } = require('0x1');

function Counter() {
  const [count, setCount] = useState(0);
  
  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>
        Increment
      </button>
    </div>
  );
}
`;

  return (
    <SyntaxHighlighter
      language="javascript"
      theme="violet"
      showLineNumbers
      title="Counter Component"
      copyable
    >
      {code}
    </SyntaxHighlighter>
  );
}

Vanilla JavaScript

import { highlight } from '@0x1js/highlighter';
import '@0x1js/highlighter/styles';

const code = `
function greet(name) {
  console.log(\`Hello, \${name}!\`);
}
`;

const highlightedHTML = highlight(code, {
  language: 'javascript',
  theme: 'dark',
  showLineNumbers: true
});

document.getElementById('code-container').innerHTML = highlightedHTML;

🎨 Themes

Dark Theme (Default)

<SyntaxHighlighter language="javascript" theme="dark">
  {code}
</SyntaxHighlighter>

Light Theme

<SyntaxHighlighter language="javascript" theme="light">
  {code}
</SyntaxHighlighter>

Violet Theme (0x1 Brand)

<SyntaxHighlighter language="javascript" theme="violet">
  {code}
</SyntaxHighlighter>

🛠️ Configuration Options

interface HighlightOptions {
  language: 'javascript' | 'typescript' | 'bash' | 'json' | 'html' | 'css';
  theme?: 'dark' | 'light' | 'violet';
  showLineNumbers?: boolean;
  startLineNumber?: number;
  maxLines?: number;
  wrapLines?: boolean;
}

interface SyntaxHighlighterProps extends HighlightOptions {
  children: string;
  className?: string;
  style?: React.CSSProperties;
  copyable?: boolean;
  title?: string;
  footer?: string;
  onCopy?: (code: string) => void;
}

📚 Examples

Different Languages

{/* TypeScript */}
<SyntaxHighlighter language="typescript" theme="violet">
  {tsCode}
</SyntaxHighlighter>

{/* Bash commands */}
<SyntaxHighlighter language="bash" theme="dark">
  {`#!/bin/bash
cd /path/to/project
bun install
bun run build`}
</SyntaxHighlighter>

{/* JSON data */}
<SyntaxHighlighter language="json" theme="light" showLineNumbers>
  {jsonData}
</SyntaxHighlighter>

With Custom Styling

<SyntaxHighlighter
  language="typescript"
  theme="violet"
  showLineNumbers
  startLineNumber={10}
  maxLines={50}
  title="API Routes"
  footer="src/api/users.ts"
  className="my-custom-class"
  style={{ marginBottom: '2rem' }}
  onCopy={(code) => console.log('Copied:', code)}
>
  {code}
</SyntaxHighlighter>

Inline Code

import { InlineCode } from '@0x1js/highlighter';

<p>
  Use <InlineCode>console.log()</InlineCode> for debugging.
</p>

🎯 Advanced Usage

Custom Hook

import { useHighlight } from '@0x1js/highlighter';

function CodeBlock({ code, language }) {
  const highlightedHTML = useHighlight(code, { 
    language, 
    theme: 'violet',
    showLineNumbers: true 
  });
  
  return (
    <div 
      className="syntax-highlighter theme-violet"
      dangerouslySetInnerHTML={{ __html: highlightedHTML }}
    />
  );
}

Server-Side Rendering

// Works great with SSR
import { highlight } from '@0x1js/highlighter';

export function generateStaticHTML(code) {
  return highlight(code, {
    language: 'javascript',
    theme: 'dark',
    showLineNumbers: true
  });
}

🌍 Supported Languages

  • JavaScript - Full ES2024+ support
  • TypeScript - Types, interfaces, generics
  • Bash - Shell scripts, commands, variables
  • JSON - Configuration files, API responses
  • HTML - Markup (coming soon)
  • CSS - Stylesheets (coming soon)

Get all supported languages:

import { getSupportedLanguages } from '@0x1js/highlighter';

console.log(getSupportedLanguages());
// ['javascript', 'typescript', 'bash', 'json', 'html', 'css']

💡 Best Practices

// Use the main component with language prop
import { SyntaxHighlighter } from '@0x1js/highlighter';

<SyntaxHighlighter language="typescript" theme="dark">
  {code}
</SyntaxHighlighter>
// Individual language components work but are unnecessary
import { TypeScriptHighlighter } from '@0x1js/highlighter';

<TypeScriptHighlighter theme="dark">
  {code}
</TypeScriptHighlighter>

🎨 Customization

Custom CSS

/* Override theme colors */
.syntax-highlighter.theme-custom {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: #ffffff;
}

.theme-custom .token-keyword {
  color: #ffd700;
  font-weight: bold;
}

.theme-custom .token-string {
  color: #98fb98;
}

🏗️ Building

# Build the package
bun run build

# Development with watch mode
bun run dev

📝 License

MIT © 0x1 Framework

🤝 Contributing

We welcome contributions! Please feel free to submit a Pull Request.


Made with ❤️ for the 0x1 Community

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 18

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.17Registry latest7 Jun 20255
0.1.167 Jun 20255
0.1.157 Jun 20255
0.1.147 Jun 20255
0.1.137 Jun 20255
0.1.126 Jun 20255
0.1.116 Jun 20255
0.1.106 Jun 20255
0.1.96 Jun 20255
0.1.86 Jun 20255
0.1.76 Jun 20255
0.1.66 Jun 20255
0.1.56 Jun 20255
0.1.46 Jun 20255
0.1.35 Jun 20255
0.1.25 Jun 20255
0.1.15 Jun 20255
0.1.05 Jun 20255

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
triex/0x1

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:34 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:7427633f2754bcd4df2a191347646d3be12896d1f944ded1c5177dc22c759f82