Quick Notes Chrome extension
A always-there scratchpad that autosaves your notes and syncs them across your Chrome profile.
How to install
- Download and unzip the file.
- Open
chrome://extensionsand turn on Developer mode. - Click "Load unpacked" and pick the unzipped folder.
Source code (6 files)
manifest.json
{
"manifest_version": 3,
"name": "Quick Notes",
"version": "1.0.0",
"description": "A always-there scratchpad that autosaves your notes and syncs them across your Chrome profile.",
"icons": {
"16": "icons/icon.svg",
"48": "icons/icon.svg",
"128": "icons/icon.svg"
},
"action": {
"default_popup": "popup.html",
"default_title": "Quick Notes",
"default_icon": {
"128": "icons/icon.svg"
}
},
"permissions": [
"storage"
]
}popup.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Quick Notes</title>
<link rel="stylesheet" href="popup.css" />
</head>
<body>
<header><h1>Quick Notes</h1><p class="sub">Built with ManifestGo</p></header>
<main>
<textarea id="note" rows="10" placeholder="Start typing…"></textarea>
<div class="row"><button id="copy">Copy</button><button id="clear">Clear</button></div>
<p class="muted" id="status">Saved automatically</p>
</main>
<script src="popup.js"></script>
</body>
</html>
popup.css
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body {
margin: 0;
width: 320px;
font-family: Inter, -apple-system, "Segoe UI", Roboto, sans-serif;
background: #1b1b1b;
color: #f2efe9;
}
header { padding: 14px 16px 8px; }
h1 { margin: 0; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; }
p.sub { margin: 4px 0 0; font-size: 11px; color: #9a958d; }
main { padding: 10px 16px 16px; display: grid; gap: 10px; }
button {
font: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
border: 1px solid #ffffff1f; background: #ffffff0d; color: #f2efe9;
border-radius: 10px; padding: 9px 12px; transition: background .15s ease;
}
button:hover { background: #ffffff17; }
button.primary { background: #38bdf8; border-color: #38bdf8; color: #101010; }
button.primary:hover { filter: brightness(1.08); }
input, select, textarea {
font: inherit; font-size: 12px; width: 100%; padding: 9px 10px; border-radius: 10px;
border: 1px solid #ffffff1f; background: #ffffff08; color: #f2efe9; outline: none;
}
input:focus, textarea:focus { border-color: #38bdf8; }
ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 260px; overflow: auto; }
li { display: flex; align-items: center; gap: 8px; font-size: 12px; padding: 8px 10px; border-radius: 10px; background: #ffffff08; }
li span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row { display: flex; gap: 8px; }
.row > * { flex: 1; }
.big { font-size: 34px; font-weight: 700; text-align: center; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.muted { font-size: 11px; color: #9a958d; }
popup.js
const note = document.getElementById("note");
const status = document.getElementById("status");
let timer;
chrome.storage.sync.get({ note: "" }, ({ note: saved }) => { note.value = saved; });
note.addEventListener("input", () => {
clearTimeout(timer);
status.textContent = "Saving…";
timer = setTimeout(() => {
chrome.storage.sync.set({ note: note.value }, () => { status.textContent = "Saved"; });
}, 300);
});
document.getElementById("copy").addEventListener("click", async () => {
await navigator.clipboard.writeText(note.value);
status.textContent = "Copied to clipboard";
});
document.getElementById("clear").addEventListener("click", () => {
note.value = "";
chrome.storage.sync.set({ note: "" });
status.textContent = "Cleared";
});
icons/icon.svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" width="128" height="128"><rect width="128" height="128" rx="26" fill="#38bdf8"/><text x="64" y="90" font-family="Inter, Arial, sans-serif" font-size="66" font-weight="700" text-anchor="middle" fill="#ffffff">N</text></svg>README.md
# Quick Notes
A always-there scratchpad that autosaves your notes and syncs them across your Chrome profile.
## Install (unpacked)
1. Open `chrome://extensions`.
2. Enable **Developer mode**.
3. Click **Load unpacked** and select this folder.
## Files
- `manifest.json` — Manifest V3 configuration
- `popup.html` / `popup.css` / `popup.js` — toolbar popup UI and logic
- `icons/icon.svg` — source icon (rasterized to PNG on download)
More free templates
Tab Manager
See every open tab, jump to one instantly, or close it without leaving the popup.
Pomodoro Timer
Focus timer with work and break cycles, running in the background with a desktop notification.
Dark Mode Toggle
Force a comfortable dark theme on any website with one click, remembered per domain.