There are no reviews yet. Be the first to send feedback to the community and the maintainers!
GhostText
๐ป Use your text editor to write in your browser. Everything you type in the editor will be instantly updated in the browser (and vice versa).object-fit-images
๐ป Polyfill object-fit/object-position on <img>: IE9, IE10, IE11, Edge, Safari, ...Awesome-WebExtensions
A curated list of awesome resources for WebExtensions development.browser-extension-template
๐ Barebones boilerplate with Parcel 2, options handler and auto-publishingchrome-webstore-upload-cli
CLI tool to upload Chrome Extensions to the Chrome Web Storechrome-webstore-upload
Upload Chrome Extensions to the Chrome Web Storegithub-issue-link-status
Colorize issue and PR links to see their status (open, closed, merged)ghat
๐ Reuse GitHub Actions workflows across repositoriesdelegate-it
DOM event delegation, in <1KBindent-textarea
Add editor-like tab-to-indent functionality to <textarea>, in a few bytesimage-promise
๐๐ค Load one or more images, return a promise. Tiny, browser-only, no dependencies.webext-options-sync
Helps you manage and autosave your extension's options. Chrome and Firefox.select-dom
Lightweight querySelector/All wrapper that outputs an Arraysupports-webp
Detect support for WEBP images in the browser in 0.3KBmany-keys-map
A Map subclass with support for multiple keys for one entry.doma
Parse an HTML string into `DocumentFragment` or one `Element`, in a few bytes (in browser)code-tag
noop functions to help formatters and syntax highlighters recognize embedded codewebext-storage-cache
Cache values in your Web Extension and clear them on expiration. Also includes a memoize-like API to cache any function results automaticallywebext-fun
WebExtension packages for every needwebext-base-css
Extremely minimal stylesheet/setup for Web Extensionsโ options pages (also dark mode)fit-textarea
Automatically expand a <textarea> to fit its content, in a few byteswebext-dynamic-content-scripts
WebExtension module: Automatically registers your content_scripts on domains added via permission.requestintrinsic-scale
Replicate `background-size: cover/contain` for canvas/CSS/Node/โฆ on any type of media.scroll-restoration-polyfill
Polyfill for the "History API: Scroll Restoration"text-field-edit
Insert text in a <textarea> and <input> (supports Firefox and Undo)release-with-changelog
Creates GitHub releases for pushed tags, with the commit log as release bodysetup-git-user
GitHub Action that sets the git user and email to enable commitingwebext-domain-permission-toggle
Browser-action context menu to request permission for the current tab.webext-storage
A more usable typed storage API for Web Extensionsvideo-canvas
Paint video on canvas. Extra light.list-github-dir-content
List all the files in a GitHub repoโs directorywebext-detect-page
Detects where the current browser extension code is being run. Chrome and Firefox.web-ext-submit
Wrapper around Mozillaโs web-ext to submit extensions to AMO.fregante
zip-text-nodes
Merge the DOM of 2 elements with the same textContent.gsap-then
๐ Make every GSAP Tween a promise. tl.then(doSomething) (GSAP 1 and 2)GhostText-for-VSCode
Use VS Code to write in your browser. Everything you type in the editor will be instantly updated in the browser (and vice versa).content-scripts-register-polyfill
WebExtensions: Polyfill for browser.contentScripts.register() for Chrome.filter-altered-clicks
Filter alt-click, ctrl-click, shift-click, middle click, ...tiny-version-compare
Compare two software versions, with any number of points (<1KB)webext-patterns
Convert the patterns of your WebExtension manifest to regexghatemplates
GitHub Actions workflow templates for `$ ghat`eslint-formatters
ESLint formatters published as standalone modules ๐webext-content-scripts
Utility functions to inject content scripts from a WebExtensionpush-form
Zero-effort nanomodule to submit a `<form>` element via `fetch` and receive the responsedaily-version-action
Creates a new tag using the format Y.M.D, but only if HEAD isnโt already taggeddaily-version
Get the current date formatted as a version. Automatically add the time if you already released a version today.github-clean-feed
Group GitHub's news feed events by repo (Chrome, Firefox, Opera)tumblr-upload
๐ก Upload your Tumblr theme via node or CLIsetup-git-token
GitHub Action that sets the GITHUB_TOKEN as credentials for git (enables `git push`)many-keys-weakmap
A `WeakMap` subclass with support for multiple keys for one entrytitle-to-labels-action
Cleans up the titles of issues and PRs from common opening keywordswebext-inject-on-install
Automatically add content scripts to existing tabs when your extension is installed. Chromewebext-options-sync-per-domain
Helps you manage and autosave your extension's options, separately for each additional permissionregex-join
Merge multiple regexes and strings into one, preserving all the flags, automatically escaping the stringsget-media-size
Get the real size of an <img>, <video>, or <canvas> in the browser.webext-polyfill-kinda
Super-lightweight Promised wrapper around `chrome.*` API to be used in modules. Prefer `webextension-polyfill` if youโre using it directly in an extension.webext-events
High-level events and utilities for events in Web Extensionswebext-permissions
WebExtensions module: Get any optional permissions that users have granted you.one-mutation
Observe one mutation via `MutationObserver`, then resolve a Promise.get-canvas-pixel-color
Micro module to get the color of a single pixel on a HTML canvasflat-zip
Merges arrays like a zipper. Like `lodash.zip().flat().take(limit)` but a tenth of the size!animate-prop
Single, dependency-free function to tween a property. Use that on canvas or anywhere else.browser-player
๐ Chrome extension: pause other tabs when you play somethingbundle
Bundles my modules so you don't have to!intervalometer
Call a function at every frame or every X ms. With start/stopwebext-content-script-ping
One-file interface to detect whether your content script have loaded.one-event
Micro module to add an event listener to be executed only oncetiny-load-script
Load a javascript file and forget about iton-off
Add/remove DOM eventswebext-sandbox
WIPconsole-class
Get yourself a light, togglable, namespaced and colored console.log in the browserprevent-popstate-scroll
(Deprecated) Prevent the scroll restoration caused by the popstate event or back/forward buttons.gulp-setup
Personal project. NOT RECOMMENDED. Gulp setup for a static website. Includes asset optimization. Loosely based on gulp-startervisibility-change-ponyfill
A more reliable visibilitychange event that works in more mobile WebViewsget-scroll
Micro module to get the scroll position (top or left) in the browserrandom-encoder
Lightweight way to generate multiple, random, reversible "hashes" or encodingeslint-formatter-table
ESLintโs official `table` formatter, extracted from ESLint 7RedditGallery.ga
Paste a Reddit post URL, get a gallery of each comment's image. Perfect for /r/photoshopbattlessticky-pinned-tabs
Chrome Extension: When in a pinned tab, external links open in a new tabwebext-permissions-events-polyfill
WebExtensions: Polyfill for `onAdded` and `onRemoved` permission events for Firefox.eslint-formatter-codeframe
ESLintโs official `codeframe` formatter, extracted from ESLint 7facebook-sdk-promise
Load Facebook's API and return a Promise. If it's already loading it won't try to load it again.npm-helpful-typosquatting
Redirect wrong `npm install`s to the right packageget-elements-array
Array of elements from selector, Array-like objects and single elementsephiframe
ephimeral iframe page builderabort-utils
Utility functions to use and combine `AbortSignal` and `AbortController` with PromisesRedd.cf
An improved fork of Redditatewebext-msg
WebExtension module: Simple message handlernpm-bundler
Opinionated ES6 library bundler based on rollup-babel-lib-bundler. For my own modules, but maybe you can find it useful too.github-desktop-open-in-sublime-text
In GitHub Desktop on Mac, replace "Open in Atom" with Sublime Textwebextension-polyfill-global
Wrapper around Mozillaโs webextension-polyfill to make it available as a global even with a bundlerguides
meta
Meta discussions (inspired by sindresorhus/meta)time
What time is it?ghosttext.fregante.com
Minisite for GhostTextwebpack-sandbox
Just some personal webpack tests and their outputindex-github-bot
Bot that reminds me to add my new repos to my index.blur-accessibly
Use `element.blur()` without losing the `tab` positionsandbox
wo`w`Love Open Source and this site? Check out how you can help us