diff --git a/README.md b/README.md
index b78d67c..e127bb3 100644
--- a/README.md
+++ b/README.md
@@ -1,34 +1,28 @@
# Focused Browsing
-A browser extension that hides distracting content on LinkedIn and YouTube, letting you use these sites productively without getting pulled into endless scrolling.
+A browser extension that hides distracting content on LinkedIn, YouTube, and X, letting you use these sites productively without getting pulled into endless scrolling.
## What it does
Instead of blocking entire websites, Focused Browsing selectively hides the parts that waste your time while keeping the parts you actually need.
-### LinkedIn
-- **Full focus mode**: Hides the feed and side panels (news, trending, "Add to your feed"). Replaces the feed with an inspirational quote.
-- **Custom focus mode**: Hides only the side panels while keeping the main feed visible. Useful when you want to browse your feed without sidebar distractions.
-
-### YouTube
-- **Focus mode**: Hides recommended videos, comments, and suggestions while preserving video playback.
+### Supported sites
+- **LinkedIn**: Focused mode hides the feed and side panels. Unfocused mode restores the feed but still hides the side panels.
+- **YouTube**: Focused mode hides recommendations, comments, and suggestion rails while preserving video playback. Unfocused mode restores the standard page around the video player.
+- **X**: Focused mode hides the home feed and sidebar. Unfocused mode restores the feed but still hides the sidebar.
## How to use it
### Toggle focus mode
-Press **Left Shift + Right Shift** on any supported site to cycle through focus modes.
-
-With custom focus enabled for LinkedIn, the cycle is:
-**Full Focus** → **Custom Focus** → **Unfocused** → **Full Focus**
-
-Without custom focus, it toggles between **Full Focus** and **Unfocused**.
+Press **Left Shift + Right Shift** on any supported site to switch between **Focused** and **Unfocused**.
+On LinkedIn and X, **Unfocused** still keeps the side panels hidden.
### Extension popup
-Click the extension icon to access settings:
-- **LinkedIn** / **YouTube** toggles: Enable or disable the extension per site
-- **Custom focus** (under LinkedIn): Enable the custom focus mode that hides only side panels
-- **Show inspirational quotes**: Toggle motivational quotes that replace hidden feeds
-- **Text size**: Adjust quote text size (S / M / L / XL)
+Click the extension icon for a compact status view and shortcut reference.
+
+### Settings page
+The popup's `Open Settings` action opens the separate extension settings page.
+That page is scaffold-only today and does not expose user controls yet.
## Installation
@@ -36,7 +30,7 @@ Click the extension icon to access settings:
2. Run `npm run build`
3. Open your browser's extension page (`chrome://extensions`, `edge://extensions`, or `brave://extensions`)
4. Enable "Developer mode"
-5. Click "Load unpacked" and select the `dist` folder
+5. Click "Load unpacked" and select the `extension-build` folder
## Browser support
@@ -50,11 +44,10 @@ Click the extension icon to access settings:
## Troubleshooting
**Extension not working?**
-- Make sure the site is enabled in the popup
-- Try refreshing the page after enabling a site
+- Refresh the current page on a supported site
**Keyboard shortcut not working?**
-- Confirm you're on a supported site with the extension enabled for it
+- Confirm you're on a supported site
**Content not hiding?**
- Try toggling the extension off and on for that site
diff --git a/build.js b/build.js
index 98ceb85..dcc575a 100644
--- a/build.js
+++ b/build.js
@@ -29,6 +29,7 @@ async function build() {
'background': 'src/ts/background.ts',
'focus': 'src/ts/focus/focus.ts',
'popup': 'src/popup/popup.ts',
+ 'options': 'src/options/options.ts',
},
bundle: true,
outdir: 'extension-build',
@@ -56,6 +57,12 @@ async function build() {
}
fs.copyFileSync('src/popup/popup.html', 'extension-build/popup/popup.html');
fs.copyFileSync('src/popup/popup.css', 'extension-build/popup/popup.css');
+
+ if (!fs.existsSync('extension-build/options')) {
+ fs.mkdirSync('extension-build/options');
+ }
+ fs.copyFileSync('src/options/options.html', 'extension-build/options/options.html');
+ fs.copyFileSync('src/options/options.css', 'extension-build/options/options.css');
fs.copyFileSync('src/manifest.json', 'extension-build/manifest.json');
diff --git a/reports/selector-health/selector-health-report.json b/reports/selector-health/selector-health-report.json
index 7f31497..5480619 100644
--- a/reports/selector-health/selector-health-report.json
+++ b/reports/selector-health/selector-health-report.json
@@ -1,5 +1,5 @@
{
- "generatedAt": "2026-03-09T15:43:48.835Z",
+ "generatedAt": "2026-03-10T19:05:41.743Z",
"thresholds": {
"warn": {
"maxWarningRatio": 0.2,
diff --git a/src/manifest.json b/src/manifest.json
index ed33aee..f7ed2d2 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -8,6 +8,10 @@
"default_title": "Focused Browsing",
"default_popup": "popup/popup.html"
},
+ "options_ui": {
+ "page": "options/options.html",
+ "open_in_tab": true
+ },
"icons": {
"16": "icons/logox16.png",
"48": "icons/logox48.png",
diff --git a/src/options/options.css b/src/options/options.css
new file mode 100644
index 0000000..0f34f10
--- /dev/null
+++ b/src/options/options.css
@@ -0,0 +1,54 @@
+:root {
+ --paper: #f5f7fa;
+ --ink: #0f172a;
+ --muted: #5b6474;
+ --rule: #dbe4f0;
+ --accent: #3b82f6;
+}
+
+* {
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+}
+
+body {
+ min-height: 100vh;
+ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ background: var(--paper);
+ color: var(--ink);
+}
+
+.page {
+ width: min(960px, calc(100vw - 48px));
+ margin: 0 auto;
+ padding: 48px 0 72px;
+}
+
+.hero {
+ display: grid;
+ gap: 14px;
+ padding: 0 0 32px;
+}
+
+.hero-index {
+ font-size: 12px;
+ font-weight: 700;
+ letter-spacing: 0.08em;
+ text-transform: uppercase;
+ color: var(--accent);
+}
+
+.hero-title {
+ max-width: 720px;
+ font-size: clamp(40px, 7vw, 72px);
+ line-height: 0.96;
+ letter-spacing: -0.05em;
+}
+
+@media (max-width: 800px) {
+ .page {
+ width: min(100vw - 32px, 960px);
+ padding-top: 32px;
+ }
+}
diff --git a/src/options/options.html b/src/options/options.html
new file mode 100644
index 0000000..9f1e17c
--- /dev/null
+++ b/src/options/options.html
@@ -0,0 +1,17 @@
+
+
+