Federico Brigante (@fregante)

Top repositories

1

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).
JavaScript
3,069
star
2

object-fit-images

๐Ÿ—ป Polyfill object-fit/object-position on <img>: IE9, IE10, IE11, Edge, Safari, ...
JavaScript
2,045
star
3

Awesome-WebExtensions

A curated list of awesome resources for WebExtensions development.
1,145
star
4

browser-extension-template

๐Ÿ“• Barebones boilerplate with Parcel 2, options handler and auto-publishing
JavaScript
782
star
5

chrome-webstore-upload-cli

CLI tool to upload Chrome Extensions to the Chrome Web Store
JavaScript
431
star
6

chrome-webstore-upload

Upload Chrome Extensions to the Chrome Web Store
JavaScript
364
star
7

github-issue-link-status

Colorize issue and PR links to see their status (open, closed, merged)
JavaScript
294
star
8

ghat

๐Ÿ›• Reuse GitHub Actions workflows across repositories
TypeScript
262
star
9

delegate-it

DOM event delegation, in <1KB
TypeScript
185
star
10

indent-textarea

Add editor-like tab-to-indent functionality to <textarea>, in a few bytes
TypeScript
154
star
11

image-promise

๐ŸŽ‘๐Ÿคž Load one or more images, return a promise. Tiny, browser-only, no dependencies.
TypeScript
144
star
12

webext-options-sync

Helps you manage and autosave your extension's options. Chrome and Firefox.
TypeScript
131
star
13

select-dom

Lightweight querySelector/All wrapper that outputs an Array
TypeScript
123
star
14

supports-webp

Detect support for WEBP images in the browser in 0.3KB
JavaScript
109
star
15

many-keys-map

A Map subclass with support for multiple keys for one entry.
JavaScript
101
star
16

doma

Parse an HTML string into `DocumentFragment` or one `Element`, in a few bytes (in browser)
TypeScript
94
star
17

code-tag

noop functions to help formatters and syntax highlighters recognize embedded code
JavaScript
89
star
18

webext-storage-cache

Cache values in your Web Extension and clear them on expiration. Also includes a memoize-like API to cache any function results automatically
JavaScript
81
star
19

webext-fun

WebExtension packages for every need
80
star
20

webext-base-css

Extremely minimal stylesheet/setup for Web Extensionsโ€™ options pages (also dark mode)
CSS
80
star
21

fit-textarea

Automatically expand a <textarea> to fit its content, in a few bytes
TypeScript
74
star
22

webext-dynamic-content-scripts

WebExtension module: Automatically registers your content_scripts on domains added via permission.request
TypeScript
74
star
23

intrinsic-scale

Replicate `background-size: cover/contain` for canvas/CSS/Node/โ€ฆ on any type of media.
JavaScript
71
star
24

scroll-restoration-polyfill

Polyfill for the "History API: Scroll Restoration"
HTML
71
star
25

text-field-edit

Insert text in a <textarea> and <input> (supports Firefox and Undo)
TypeScript
68
star
26

release-with-changelog

Creates GitHub releases for pushed tags, with the commit log as release body
JavaScript
62
star
27

setup-git-user

GitHub Action that sets the git user and email to enable commiting
61
star
28

webext-domain-permission-toggle

Browser-action context menu to request permission for the current tab.
TypeScript
61
star
29

webext-storage

A more usable typed storage API for Web Extensions
TypeScript
47
star
30

video-canvas

Paint video on canvas. Extra light.
JavaScript
47
star
31

list-github-dir-content

List all the files in a GitHub repoโ€™s directory
JavaScript
41
star
32

webext-detect-page

Detects where the current browser extension code is being run. Chrome and Firefox.
TypeScript
39
star
33

web-ext-submit

Wrapper around Mozillaโ€™s web-ext to submit extensions to AMO.
Shell
33
star
34

fregante

32
star
35

zip-text-nodes

Merge the DOM of 2 elements with the same textContent.
TypeScript
32
star
36

gsap-then

๐Ÿ™ Make every GSAP Tween a promise. tl.then(doSomething) (GSAP 1 and 2)
JavaScript
29
star
37

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).
TypeScript
22
star
38

content-scripts-register-polyfill

WebExtensions: Polyfill for browser.contentScripts.register() for Chrome.
JavaScript
22
star
39

filter-altered-clicks

Filter alt-click, ctrl-click, shift-click, middle click, ...
JavaScript
21
star
40

tiny-version-compare

Compare two software versions, with any number of points (<1KB)
JavaScript
20
star
41

webext-patterns

Convert the patterns of your WebExtension manifest to regex
JavaScript
18
star
42

ghatemplates

GitHub Actions workflow templates for `$ ghat`
17
star
43

eslint-formatters

ESLint formatters published as standalone modules ๐ŸŽ‰
JavaScript
17
star
44

webext-content-scripts

Utility functions to inject content scripts from a WebExtension
TypeScript
17
star
45

push-form

Zero-effort nanomodule to submit a `<form>` element via `fetch` and receive the response
TypeScript
17
star
46

daily-version-action

Creates a new tag using the format Y.M.D, but only if HEAD isnโ€™t already tagged
JavaScript
16
star
47

daily-version

Get the current date formatted as a version. Automatically add the time if you already released a version today.
JavaScript
16
star
48

github-clean-feed

Group GitHub's news feed events by repo (Chrome, Firefox, Opera)
JavaScript
16
star
49

tumblr-upload

๐Ÿšก Upload your Tumblr theme via node or CLI
JavaScript
15
star
50

setup-git-token

GitHub Action that sets the GITHUB_TOKEN as credentials for git (enables `git push`)
JavaScript
15
star
51

many-keys-weakmap

A `WeakMap` subclass with support for multiple keys for one entry
JavaScript
13
star
52

title-to-labels-action

Cleans up the titles of issues and PRs from common opening keywords
JavaScript
13
star
53

webext-inject-on-install

Automatically add content scripts to existing tabs when your extension is installed. Chrome
JavaScript
13
star
54

webext-options-sync-per-domain

Helps you manage and autosave your extension's options, separately for each additional permission
TypeScript
13
star
55

regex-join

Merge multiple regexes and strings into one, preserving all the flags, automatically escaping the strings
JavaScript
12
star
56

webext-tools

Utility functions for WebExtensions
TypeScript
12
star
57

get-media-size

Get the real size of an <img>, <video>, or <canvas> in the browser.
JavaScript
12
star
58

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.
JavaScript
11
star
59

webext-events

High-level events and utilities for events in Web Extensions
TypeScript
10
star
60

webext-permissions

WebExtensions module: Get any optional permissions that users have granted you.
TypeScript
10
star
61

one-mutation

Observe one mutation via `MutationObserver`, then resolve a Promise.
JavaScript
10
star
62

get-canvas-pixel-color

Micro module to get the color of a single pixel on a HTML canvas
JavaScript
10
star
63

flat-zip

Merges arrays like a zipper. Like `lodash.zip().flat().take(limit)` but a tenth of the size!
TypeScript
9
star
64

animate-prop

Single, dependency-free function to tween a property. Use that on canvas or anywhere else.
JavaScript
9
star
65

browser-player

๐Ÿ”ˆ Chrome extension: pause other tabs when you play something
JavaScript
9
star
66

bundle

Bundles my modules so you don't have to!
JavaScript
8
star
67

intervalometer

Call a function at every frame or every X ms. With start/stop
JavaScript
8
star
68

webext-content-script-ping

One-file interface to detect whether your content script have loaded.
JavaScript
8
star
69

one-event

Micro module to add an event listener to be executed only once
TypeScript
6
star
70

tiny-load-script

Load a javascript file and forget about it
JavaScript
5
star
71

on-off

Add/remove DOM events
JavaScript
5
star
72

webext-sandbox

WIP
TypeScript
4
star
73

console-class

Get yourself a light, togglable, namespaced and colored console.log in the browser
JavaScript
4
star
74

prevent-popstate-scroll

(Deprecated) Prevent the scroll restoration caused by the popstate event or back/forward buttons.
JavaScript
4
star
75

gulp-setup

Personal project. NOT RECOMMENDED. Gulp setup for a static website. Includes asset optimization. Loosely based on gulp-starter
JavaScript
4
star
76

visibility-change-ponyfill

A more reliable visibilitychange event that works in more mobile WebViews
JavaScript
4
star
77

get-scroll

Micro module to get the scroll position (top or left) in the browser
4
star
78

random-encoder

Lightweight way to generate multiple, random, reversible "hashes" or encoding
JavaScript
3
star
79

eslint-formatter-table

ESLintโ€™s official `table` formatter, extracted from ESLint 7
JavaScript
3
star
80

RedditGallery.ga

Paste a Reddit post URL, get a gallery of each comment's image. Perfect for /r/photoshopbattles
JavaScript
3
star
81

sticky-pinned-tabs

Chrome Extension: When in a pinned tab, external links open in a new tab
JavaScript
3
star
82

webext-permissions-events-polyfill

WebExtensions: Polyfill for `onAdded` and `onRemoved` permission events for Firefox.
TypeScript
3
star
83

eslint-formatter-codeframe

ESLintโ€™s official `codeframe` formatter, extracted from ESLint 7
JavaScript
3
star
84

facebook-sdk-promise

Load Facebook's API and return a Promise. If it's already loading it won't try to load it again.
JavaScript
3
star
85

npm-helpful-typosquatting

Redirect wrong `npm install`s to the right package
2
star
86

get-elements-array

Array of elements from selector, Array-like objects and single elements
JavaScript
2
star
87

ephiframe

ephimeral iframe page builder
HTML
2
star
88

abort-utils

Utility functions to use and combine `AbortSignal` and `AbortController` with Promises
TypeScript
2
star
89

Redd.cf

An improved fork of Redditate
JavaScript
2
star
90

webext-msg

WebExtension module: Simple message handler
TypeScript
2
star
91

npm-bundler

Opinionated ES6 library bundler based on rollup-babel-lib-bundler. For my own modules, but maybe you can find it useful too.
JavaScript
2
star
92

github-desktop-open-in-sublime-text

In GitHub Desktop on Mac, replace "Open in Atom" with Sublime Text
2
star
93

webextension-polyfill-global

Wrapper around Mozillaโ€™s webextension-polyfill to make it available as a global even with a bundler
Shell
1
star
94

guides

1
star
95

meta

Meta discussions (inspired by sindresorhus/meta)
1
star
96

time

What time is it?
HTML
1
star
97

ghosttext.fregante.com

Minisite for GhostText
HTML
1
star
98

webpack-sandbox

Just some personal webpack tests and their output
JavaScript
1
star
99

index-github-bot

Bot that reminds me to add my new repos to my index.
JavaScript
1
star
100

blur-accessibly

Use `element.blur()` without losing the `tab` position
TypeScript
1
star