SunEditor is a fully-featured, vanilla JavaScript WYSIWYG HTML editor library designed for modern browsers. It provides a rich text editing experience with extensive formatting options (inline, block, lists, tables, media embedding), multiple display modes (classic, inline, balloon), and a plugin architecture that supports dropdowns, modals, commands, browsers, and input fields. The editor is built around a clean dependency injection kernel, a reducer-based event handling system for keyboard and input events, and a modular structure for UI components (toolbar, menu, controllers) and file management. It includes built-in plugins for images, videos, audio, drawing, math expressions, autocomplete, slash commands, table editing, code view, markdown preview, and document layouts (A4 page breaks). The codebase is extensively tested with unit, integration, and e2e tests (Playwright), and follows strict architectural rules enforced by dependency-cruiser. It exports TypeScript definitions, supports internationalization (20+ languages), and integrates with popular frameworks via official React/Vue wrappers. The library is distributed via npm and CDN, and demonstrates a high level of engineering craftsmanship in its event system, DOM manipulation utilities, and plugin lifecycle management.
NigeriaLogos is a static web application providing a library of Nigerian company logos for free download. Users can browse, search by name, filter by category, and download logos in SVG or PNG format. Built with HTML, SCSS, and vanilla JavaScript (using Vite for tooling), the project features a modular structure with separate concerns for data binding, image loading, search, scroll behavior, and mobile interactions. The data-binding.js module demonstrates a clean, reusable pattern for synchronizing form inputs across the interface.
This repository is a collection of JavaScript interview questions and coding exercises, accompanied by a Node.js script for automatically generating a table of contents in the README. The core content consists of standalone JavaScript files that illustrate specific language concepts and patterns, such as closures, hoisting, event loop, and functional programming techniques. The repository includes several reusable utility implementations that demonstrate advanced JavaScript patterns. Notably, the debounce and throttle functions provide robust solutions for rate-limiting event handlers, while the deep merge function safely handles circular references during object merging using a WeakMap for tracking. These utilities are self-contained, have no internal dependencies, and can be easily extracted for use in other projects. The project is actively maintained, as evidenced by a recent commit (though the date appears to be in the future, indicating the most recent activity). It relies on a single external dependency (github-slugger) for generating anchor links, and the build process is automated via a GitHub workflow. While the majority of the content serves educational purposes, the highlighted components exhibit strong craftsmanship and adhere to modern JavaScript best practices.
VvvebJs is a WYSIWYG web page builder that enables drag-and-drop creation of responsive websites using Bootstrap components. The system provides a visual editor with canvas, property panels, component library, and file management for constructing HTML pages. Key features include inline text editing, code viewing via CodeMirror, media handling, undo/redo functionality, and export capabilities. The architecture follows a modular pattern with core builder logic in libs/builder/builder.js, extensible via plugins and component definitions. Entry points include editor.html for initialization, save.php/save.js for persistence, and upload.php/scan.php for media management. The builder manipulates an iframe as the design canvas while maintaining component state and history for undo/redo operations.
NippleJS is a vanilla virtual joystick library for touch and mouse interfaces, designed for mobile games, remote controls, and interactive web applications. The core library in `packages/nipplejs/` provides a lightweight, dependency-free joystick with three modes (dynamic, semi, static), multitouch support, and extensive event-driven APIs. The architecture is built around a Factory singleton managing Collections, each of which manages multiple Joystick instances. The library is written in TypeScript, with thorough unit tests and Playwright end-to-end tests covering event accuracy, mode behavior, cleanup, and edge cases. The repository also includes a documentation site built with Astro, featuring five interactive game demos that showcase library features, along with a monorepo structure for tools and tests. While the core library is modern and well-tested, some tooling (ESLint 8, Husky v4) and the workspace Yarn version mismatch indicate minor technical drift.