feat(mobile): add Android system colors and Material You layout - #6081

Closed
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you
Closed

feat(mobile): add Android system colors and Material You layout#6081
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you

Conversation

@PixPMusic

@PixPMusicPixPMusic commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds two independent, Android-only appearance options under Settings → Appearance → Theme. Both are disabled by default.

System Colors

  • uses Android's live wallpaper-derived light and dark palettes on Android 12+
  • refreshes the palette when the app returns to the foreground
  • applies semantic system roles to app chrome, native selection, and sent-message contrast
  • leaves the authored T3 palette untouched when disabled

Material You Style Layout

  • applies Material You surface hierarchy, shapes, spacing, switches, lists, headers, search fields, composer treatment, files, tables, and toasts
  • works with either System Colors or the existing authored theme
  • leaves the existing layout styling untouched when disabled

The settings can be enabled separately: users can choose system colors without the Material You layout, or the Material You layout without wallpaper colors.

Existing work

Exact issue and PR searches for Material You and dynamic color found no duplicate implementation. #5694 adds built-in themes but not Android wallpaper-derived colors.

#5385 is complementary and intentionally remains the owner of foldable/tablet structure: adaptive workspace chrome, split header controls, and compact Android tablet navigation. This branch only styles those surfaces. A local-only integration branch merges current #5385 with this PR to verify the final composition without copying its structural changes here.

Screenshots

Android system baseline

Stock Pixel Settings and Wallpaper & style on the same emulator palette and dimensions used below.

DeviceSettingsWallpaper & style
Phone · 1080×1920
Pixel Fold · folded · 1080×2424
Pixel Fold · unfolded · 2076×2152

Before means both new settings are off. After means System Colors and Material You Style Layout are both on. Full-resolution files live on the fork's pr-assets/android-material-you branch so they stay out of this PR's diff.

Phone · 1080×1920
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · folded · 1080×2424
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · unfolded · 2076×2152
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments

#5385 integration

The remaining feature-branch-only foldable structural jank is fixed by #5385. This local integration screenshot shows the combined unfolded home page with no selected thread; the #5385 changes are not included in this PR.

Verification

  • pnpm exec vitest run apps/mobile/src/lib/mobileTheme.test.ts apps/mobile/src/lib/materialYouTheme.test.ts apps/mobile/src/state/preferences.test.ts (22 tests)
  • pnpm --dir apps/mobile typecheck
  • git diff --check origin/main...HEAD
  • manually verified the disposable showcase data with both settings off and both settings on
  • verified the current fix(mobile): restore Android tablet thread controls, clean up header #5385 + current PR local integration with the same focused tests and mobile typecheck

Checklist

  • both settings are off by default
  • settings persist independently
  • Android 12+ can use the live system wallpaper palette
  • unsupported Android versions disable System Colors
  • authored theme colors remain available with Material You Style Layout
  • iOS behavior is unchanged
  • fix(mobile): restore Android tablet thread controls, clean up header #5385 remains the owner of foldable structure

Model: GPT-5.6 Sol | Harness: Codex in T3 Code

@coderabbitai

coderabbitaiBot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f3513351-f892-48a2-842a-2436c6843666

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (Android Material You colors) with platform-specific integrations, new UI components, runtime theme manipulation, and preferences changes. New features of this scope warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@PixPMusic
PixPMusic marked this pull request as draft August 11, 2026 02:03
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 5e6668f to dc8f8ebCompareAugust 11, 2026 04:02
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
Comment threadapps/mobile/src/features/files/ThreadFilesRouteScreen.tsx Outdated
Comment threadapps/mobile/src/features/threads/ThreadFeed.tsx
@github-actionsgithub-actionsBot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from d391918 to 74e9a6bCompareAugust 21, 2026 01:17
Comment threadapps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 74e9a6b to 84b7276CompareAugust 21, 2026 02:10
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 84b7276 to 19405d2CompareAugust 21, 2026 02:14
@PixPMusicPixPMusic changed the title feat(mobile): add Android Material You colorsfeat(mobile): add Android system colors and Material You layoutAug 21, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 19405d2 to c8c41dbCompareAugust 21, 2026 02:24
@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Draft adds a separate Android Material You theme system despite the shipped mobile theme system.

@t3dotggt3dotgg closed this Aug 23, 2026
@PixPMusic

Copy link
Copy Markdown
ContributorAuthor

This actually integrated with the existing theme system to add one more color option that matches the system, as well as an additional toggle to adjust UI elements to better match Android.

This did not supplant or replace the theme system.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PixPMusic@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(mobile): add Android system colors and Material You layout - #6081

Closed
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you
Closed

feat(mobile): add Android system colors and Material You layout#6081
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you

Conversation

@PixPMusic

@PixPMusicPixPMusic commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds two independent, Android-only appearance options under Settings → Appearance → Theme. Both are disabled by default.

System Colors

  • uses Android's live wallpaper-derived light and dark palettes on Android 12+
  • refreshes the palette when the app returns to the foreground
  • applies semantic system roles to app chrome, native selection, and sent-message contrast
  • leaves the authored T3 palette untouched when disabled

Material You Style Layout

  • applies Material You surface hierarchy, shapes, spacing, switches, lists, headers, search fields, composer treatment, files, tables, and toasts
  • works with either System Colors or the existing authored theme
  • leaves the existing layout styling untouched when disabled

The settings can be enabled separately: users can choose system colors without the Material You layout, or the Material You layout without wallpaper colors.

Existing work

Exact issue and PR searches for Material You and dynamic color found no duplicate implementation. #5694 adds built-in themes but not Android wallpaper-derived colors.

#5385 is complementary and intentionally remains the owner of foldable/tablet structure: adaptive workspace chrome, split header controls, and compact Android tablet navigation. This branch only styles those surfaces. A local-only integration branch merges current #5385 with this PR to verify the final composition without copying its structural changes here.

Screenshots

Android system baseline

Stock Pixel Settings and Wallpaper & style on the same emulator palette and dimensions used below.

DeviceSettingsWallpaper & style
Phone · 1080×1920
Pixel Fold · folded · 1080×2424
Pixel Fold · unfolded · 2076×2152

Before means both new settings are off. After means System Colors and Material You Style Layout are both on. Full-resolution files live on the fork's pr-assets/android-material-you branch so they stay out of this PR's diff.

Phone · 1080×1920
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · folded · 1080×2424
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · unfolded · 2076×2152
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments

#5385 integration

The remaining feature-branch-only foldable structural jank is fixed by #5385. This local integration screenshot shows the combined unfolded home page with no selected thread; the #5385 changes are not included in this PR.

Verification

  • pnpm exec vitest run apps/mobile/src/lib/mobileTheme.test.ts apps/mobile/src/lib/materialYouTheme.test.ts apps/mobile/src/state/preferences.test.ts (22 tests)
  • pnpm --dir apps/mobile typecheck
  • git diff --check origin/main...HEAD
  • manually verified the disposable showcase data with both settings off and both settings on
  • verified the current fix(mobile): restore Android tablet thread controls, clean up header #5385 + current PR local integration with the same focused tests and mobile typecheck

Checklist

  • both settings are off by default
  • settings persist independently
  • Android 12+ can use the live system wallpaper palette
  • unsupported Android versions disable System Colors
  • authored theme colors remain available with Material You Style Layout
  • iOS behavior is unchanged
  • fix(mobile): restore Android tablet thread controls, clean up header #5385 remains the owner of foldable structure

Model: GPT-5.6 Sol | Harness: Codex in T3 Code

@coderabbitai

coderabbitaiBot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f3513351-f892-48a2-842a-2436c6843666

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (Android Material You colors) with platform-specific integrations, new UI components, runtime theme manipulation, and preferences changes. New features of this scope warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@PixPMusic
PixPMusic marked this pull request as draft August 11, 2026 02:03
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 5e6668f to dc8f8ebCompareAugust 11, 2026 04:02
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
Comment threadapps/mobile/src/features/files/ThreadFilesRouteScreen.tsx Outdated
Comment threadapps/mobile/src/features/threads/ThreadFeed.tsx
@github-actionsgithub-actionsBot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from d391918 to 74e9a6bCompareAugust 21, 2026 01:17
Comment threadapps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 74e9a6b to 84b7276CompareAugust 21, 2026 02:10
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 84b7276 to 19405d2CompareAugust 21, 2026 02:14
@PixPMusicPixPMusic changed the title feat(mobile): add Android Material You colorsfeat(mobile): add Android system colors and Material You layoutAug 21, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 19405d2 to c8c41dbCompareAugust 21, 2026 02:24
@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Draft adds a separate Android Material You theme system despite the shipped mobile theme system.

@t3dotggt3dotgg closed this Aug 23, 2026
@PixPMusic

Copy link
Copy Markdown
ContributorAuthor

This actually integrated with the existing theme system to add one more color option that matches the system, as well as an additional toggle to adjust UI elements to better match Android.

This did not supplant or replace the theme system.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PixPMusic@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(mobile): add Android system colors and Material You layout - #6081

Closed
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you
Closed

feat(mobile): add Android system colors and Material You layout#6081
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you

Conversation

@PixPMusic

@PixPMusicPixPMusic commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds two independent, Android-only appearance options under Settings → Appearance → Theme. Both are disabled by default.

System Colors

  • uses Android's live wallpaper-derived light and dark palettes on Android 12+
  • refreshes the palette when the app returns to the foreground
  • applies semantic system roles to app chrome, native selection, and sent-message contrast
  • leaves the authored T3 palette untouched when disabled

Material You Style Layout

  • applies Material You surface hierarchy, shapes, spacing, switches, lists, headers, search fields, composer treatment, files, tables, and toasts
  • works with either System Colors or the existing authored theme
  • leaves the existing layout styling untouched when disabled

The settings can be enabled separately: users can choose system colors without the Material You layout, or the Material You layout without wallpaper colors.

Existing work

Exact issue and PR searches for Material You and dynamic color found no duplicate implementation. #5694 adds built-in themes but not Android wallpaper-derived colors.

#5385 is complementary and intentionally remains the owner of foldable/tablet structure: adaptive workspace chrome, split header controls, and compact Android tablet navigation. This branch only styles those surfaces. A local-only integration branch merges current #5385 with this PR to verify the final composition without copying its structural changes here.

Screenshots

Android system baseline

Stock Pixel Settings and Wallpaper & style on the same emulator palette and dimensions used below.

DeviceSettingsWallpaper & style
Phone · 1080×1920
Pixel Fold · folded · 1080×2424
Pixel Fold · unfolded · 2076×2152

Before means both new settings are off. After means System Colors and Material You Style Layout are both on. Full-resolution files live on the fork's pr-assets/android-material-you branch so they stay out of this PR's diff.

Phone · 1080×1920
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · folded · 1080×2424
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · unfolded · 2076×2152
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments

#5385 integration

The remaining feature-branch-only foldable structural jank is fixed by #5385. This local integration screenshot shows the combined unfolded home page with no selected thread; the #5385 changes are not included in this PR.

Verification

  • pnpm exec vitest run apps/mobile/src/lib/mobileTheme.test.ts apps/mobile/src/lib/materialYouTheme.test.ts apps/mobile/src/state/preferences.test.ts (22 tests)
  • pnpm --dir apps/mobile typecheck
  • git diff --check origin/main...HEAD
  • manually verified the disposable showcase data with both settings off and both settings on
  • verified the current fix(mobile): restore Android tablet thread controls, clean up header #5385 + current PR local integration with the same focused tests and mobile typecheck

Checklist

  • both settings are off by default
  • settings persist independently
  • Android 12+ can use the live system wallpaper palette
  • unsupported Android versions disable System Colors
  • authored theme colors remain available with Material You Style Layout
  • iOS behavior is unchanged
  • fix(mobile): restore Android tablet thread controls, clean up header #5385 remains the owner of foldable structure

Model: GPT-5.6 Sol | Harness: Codex in T3 Code

@coderabbitai

coderabbitaiBot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f3513351-f892-48a2-842a-2436c6843666

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (Android Material You colors) with platform-specific integrations, new UI components, runtime theme manipulation, and preferences changes. New features of this scope warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@PixPMusic
PixPMusic marked this pull request as draft August 11, 2026 02:03
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 5e6668f to dc8f8ebCompareAugust 11, 2026 04:02
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
Comment threadapps/mobile/src/features/files/ThreadFilesRouteScreen.tsx Outdated
Comment threadapps/mobile/src/features/threads/ThreadFeed.tsx
@github-actionsgithub-actionsBot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from d391918 to 74e9a6bCompareAugust 21, 2026 01:17
Comment threadapps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 74e9a6b to 84b7276CompareAugust 21, 2026 02:10
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 84b7276 to 19405d2CompareAugust 21, 2026 02:14
@PixPMusicPixPMusic changed the title feat(mobile): add Android Material You colorsfeat(mobile): add Android system colors and Material You layoutAug 21, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 19405d2 to c8c41dbCompareAugust 21, 2026 02:24
@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Draft adds a separate Android Material You theme system despite the shipped mobile theme system.

@t3dotggt3dotgg closed this Aug 23, 2026
@PixPMusic

Copy link
Copy Markdown
ContributorAuthor

This actually integrated with the existing theme system to add one more color option that matches the system, as well as an additional toggle to adjust UI elements to better match Android.

This did not supplant or replace the theme system.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PixPMusic@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(mobile): add Android system colors and Material You layout - #6081

Closed
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you
Closed

feat(mobile): add Android system colors and Material You layout#6081
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you

Conversation

@PixPMusic

@PixPMusicPixPMusic commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds two independent, Android-only appearance options under Settings → Appearance → Theme. Both are disabled by default.

System Colors

  • uses Android's live wallpaper-derived light and dark palettes on Android 12+
  • refreshes the palette when the app returns to the foreground
  • applies semantic system roles to app chrome, native selection, and sent-message contrast
  • leaves the authored T3 palette untouched when disabled

Material You Style Layout

  • applies Material You surface hierarchy, shapes, spacing, switches, lists, headers, search fields, composer treatment, files, tables, and toasts
  • works with either System Colors or the existing authored theme
  • leaves the existing layout styling untouched when disabled

The settings can be enabled separately: users can choose system colors without the Material You layout, or the Material You layout without wallpaper colors.

Existing work

Exact issue and PR searches for Material You and dynamic color found no duplicate implementation. #5694 adds built-in themes but not Android wallpaper-derived colors.

#5385 is complementary and intentionally remains the owner of foldable/tablet structure: adaptive workspace chrome, split header controls, and compact Android tablet navigation. This branch only styles those surfaces. A local-only integration branch merges current #5385 with this PR to verify the final composition without copying its structural changes here.

Screenshots

Android system baseline

Stock Pixel Settings and Wallpaper & style on the same emulator palette and dimensions used below.

DeviceSettingsWallpaper & style
Phone · 1080×1920
Pixel Fold · folded · 1080×2424
Pixel Fold · unfolded · 2076×2152

Before means both new settings are off. After means System Colors and Material You Style Layout are both on. Full-resolution files live on the fork's pr-assets/android-material-you branch so they stay out of this PR's diff.

Phone · 1080×1920
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · folded · 1080×2424
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · unfolded · 2076×2152
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments

#5385 integration

The remaining feature-branch-only foldable structural jank is fixed by #5385. This local integration screenshot shows the combined unfolded home page with no selected thread; the #5385 changes are not included in this PR.

Verification

  • pnpm exec vitest run apps/mobile/src/lib/mobileTheme.test.ts apps/mobile/src/lib/materialYouTheme.test.ts apps/mobile/src/state/preferences.test.ts (22 tests)
  • pnpm --dir apps/mobile typecheck
  • git diff --check origin/main...HEAD
  • manually verified the disposable showcase data with both settings off and both settings on
  • verified the current fix(mobile): restore Android tablet thread controls, clean up header #5385 + current PR local integration with the same focused tests and mobile typecheck

Checklist

  • both settings are off by default
  • settings persist independently
  • Android 12+ can use the live system wallpaper palette
  • unsupported Android versions disable System Colors
  • authored theme colors remain available with Material You Style Layout
  • iOS behavior is unchanged
  • fix(mobile): restore Android tablet thread controls, clean up header #5385 remains the owner of foldable structure

Model: GPT-5.6 Sol | Harness: Codex in T3 Code

@coderabbitai

coderabbitaiBot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f3513351-f892-48a2-842a-2436c6843666

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (Android Material You colors) with platform-specific integrations, new UI components, runtime theme manipulation, and preferences changes. New features of this scope warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@PixPMusic
PixPMusic marked this pull request as draft August 11, 2026 02:03
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 5e6668f to dc8f8ebCompareAugust 11, 2026 04:02
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
Comment threadapps/mobile/src/features/files/ThreadFilesRouteScreen.tsx Outdated
Comment threadapps/mobile/src/features/threads/ThreadFeed.tsx
@github-actionsgithub-actionsBot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from d391918 to 74e9a6bCompareAugust 21, 2026 01:17
Comment threadapps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 74e9a6b to 84b7276CompareAugust 21, 2026 02:10
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 84b7276 to 19405d2CompareAugust 21, 2026 02:14
@PixPMusicPixPMusic changed the title feat(mobile): add Android Material You colorsfeat(mobile): add Android system colors and Material You layoutAug 21, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 19405d2 to c8c41dbCompareAugust 21, 2026 02:24
@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Draft adds a separate Android Material You theme system despite the shipped mobile theme system.

@t3dotggt3dotgg closed this Aug 23, 2026
@PixPMusic

Copy link
Copy Markdown
ContributorAuthor

This actually integrated with the existing theme system to add one more color option that matches the system, as well as an additional toggle to adjust UI elements to better match Android.

This did not supplant or replace the theme system.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PixPMusic@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(mobile): add Android system colors and Material You layout - #6081

Closed
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you
Closed

feat(mobile): add Android system colors and Material You layout#6081
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you

Conversation

@PixPMusic

@PixPMusicPixPMusic commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds two independent, Android-only appearance options under Settings → Appearance → Theme. Both are disabled by default.

System Colors

  • uses Android's live wallpaper-derived light and dark palettes on Android 12+
  • refreshes the palette when the app returns to the foreground
  • applies semantic system roles to app chrome, native selection, and sent-message contrast
  • leaves the authored T3 palette untouched when disabled

Material You Style Layout

  • applies Material You surface hierarchy, shapes, spacing, switches, lists, headers, search fields, composer treatment, files, tables, and toasts
  • works with either System Colors or the existing authored theme
  • leaves the existing layout styling untouched when disabled

The settings can be enabled separately: users can choose system colors without the Material You layout, or the Material You layout without wallpaper colors.

Existing work

Exact issue and PR searches for Material You and dynamic color found no duplicate implementation. #5694 adds built-in themes but not Android wallpaper-derived colors.

#5385 is complementary and intentionally remains the owner of foldable/tablet structure: adaptive workspace chrome, split header controls, and compact Android tablet navigation. This branch only styles those surfaces. A local-only integration branch merges current #5385 with this PR to verify the final composition without copying its structural changes here.

Screenshots

Android system baseline

Stock Pixel Settings and Wallpaper & style on the same emulator palette and dimensions used below.

DeviceSettingsWallpaper & style
Phone · 1080×1920
Pixel Fold · folded · 1080×2424
Pixel Fold · unfolded · 2076×2152

Before means both new settings are off. After means System Colors and Material You Style Layout are both on. Full-resolution files live on the fork's pr-assets/android-material-you branch so they stay out of this PR's diff.

Phone · 1080×1920
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · folded · 1080×2424
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · unfolded · 2076×2152
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments

#5385 integration

The remaining feature-branch-only foldable structural jank is fixed by #5385. This local integration screenshot shows the combined unfolded home page with no selected thread; the #5385 changes are not included in this PR.

Verification

  • pnpm exec vitest run apps/mobile/src/lib/mobileTheme.test.ts apps/mobile/src/lib/materialYouTheme.test.ts apps/mobile/src/state/preferences.test.ts (22 tests)
  • pnpm --dir apps/mobile typecheck
  • git diff --check origin/main...HEAD
  • manually verified the disposable showcase data with both settings off and both settings on
  • verified the current fix(mobile): restore Android tablet thread controls, clean up header #5385 + current PR local integration with the same focused tests and mobile typecheck

Checklist

  • both settings are off by default
  • settings persist independently
  • Android 12+ can use the live system wallpaper palette
  • unsupported Android versions disable System Colors
  • authored theme colors remain available with Material You Style Layout
  • iOS behavior is unchanged
  • fix(mobile): restore Android tablet thread controls, clean up header #5385 remains the owner of foldable structure

Model: GPT-5.6 Sol | Harness: Codex in T3 Code

@coderabbitai

coderabbitaiBot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f3513351-f892-48a2-842a-2436c6843666

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (Android Material You colors) with platform-specific integrations, new UI components, runtime theme manipulation, and preferences changes. New features of this scope warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@PixPMusic
PixPMusic marked this pull request as draft August 11, 2026 02:03
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 5e6668f to dc8f8ebCompareAugust 11, 2026 04:02
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
Comment threadapps/mobile/src/features/files/ThreadFilesRouteScreen.tsx Outdated
Comment threadapps/mobile/src/features/threads/ThreadFeed.tsx
@github-actionsgithub-actionsBot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from d391918 to 74e9a6bCompareAugust 21, 2026 01:17
Comment threadapps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 74e9a6b to 84b7276CompareAugust 21, 2026 02:10
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 84b7276 to 19405d2CompareAugust 21, 2026 02:14
@PixPMusicPixPMusic changed the title feat(mobile): add Android Material You colorsfeat(mobile): add Android system colors and Material You layoutAug 21, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 19405d2 to c8c41dbCompareAugust 21, 2026 02:24
@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Draft adds a separate Android Material You theme system despite the shipped mobile theme system.

@t3dotggt3dotgg closed this Aug 23, 2026
@PixPMusic

Copy link
Copy Markdown
ContributorAuthor

This actually integrated with the existing theme system to add one more color option that matches the system, as well as an additional toggle to adjust UI elements to better match Android.

This did not supplant or replace the theme system.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PixPMusic@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(mobile): add Android system colors and Material You layout - #6081

Closed
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you
Closed

feat(mobile): add Android system colors and Material You layout#6081
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you

Conversation

@PixPMusic

@PixPMusicPixPMusic commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds two independent, Android-only appearance options under Settings → Appearance → Theme. Both are disabled by default.

System Colors

  • uses Android's live wallpaper-derived light and dark palettes on Android 12+
  • refreshes the palette when the app returns to the foreground
  • applies semantic system roles to app chrome, native selection, and sent-message contrast
  • leaves the authored T3 palette untouched when disabled

Material You Style Layout

  • applies Material You surface hierarchy, shapes, spacing, switches, lists, headers, search fields, composer treatment, files, tables, and toasts
  • works with either System Colors or the existing authored theme
  • leaves the existing layout styling untouched when disabled

The settings can be enabled separately: users can choose system colors without the Material You layout, or the Material You layout without wallpaper colors.

Existing work

Exact issue and PR searches for Material You and dynamic color found no duplicate implementation. #5694 adds built-in themes but not Android wallpaper-derived colors.

#5385 is complementary and intentionally remains the owner of foldable/tablet structure: adaptive workspace chrome, split header controls, and compact Android tablet navigation. This branch only styles those surfaces. A local-only integration branch merges current #5385 with this PR to verify the final composition without copying its structural changes here.

Screenshots

Android system baseline

Stock Pixel Settings and Wallpaper & style on the same emulator palette and dimensions used below.

DeviceSettingsWallpaper & style
Phone · 1080×1920
Pixel Fold · folded · 1080×2424
Pixel Fold · unfolded · 2076×2152

Before means both new settings are off. After means System Colors and Material You Style Layout are both on. Full-resolution files live on the fork's pr-assets/android-material-you branch so they stay out of this PR's diff.

Phone · 1080×1920
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · folded · 1080×2424
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · unfolded · 2076×2152
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments

#5385 integration

The remaining feature-branch-only foldable structural jank is fixed by #5385. This local integration screenshot shows the combined unfolded home page with no selected thread; the #5385 changes are not included in this PR.

Verification

  • pnpm exec vitest run apps/mobile/src/lib/mobileTheme.test.ts apps/mobile/src/lib/materialYouTheme.test.ts apps/mobile/src/state/preferences.test.ts (22 tests)
  • pnpm --dir apps/mobile typecheck
  • git diff --check origin/main...HEAD
  • manually verified the disposable showcase data with both settings off and both settings on
  • verified the current fix(mobile): restore Android tablet thread controls, clean up header #5385 + current PR local integration with the same focused tests and mobile typecheck

Checklist

  • both settings are off by default
  • settings persist independently
  • Android 12+ can use the live system wallpaper palette
  • unsupported Android versions disable System Colors
  • authored theme colors remain available with Material You Style Layout
  • iOS behavior is unchanged
  • fix(mobile): restore Android tablet thread controls, clean up header #5385 remains the owner of foldable structure

Model: GPT-5.6 Sol | Harness: Codex in T3 Code

@coderabbitai

coderabbitaiBot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f3513351-f892-48a2-842a-2436c6843666

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (Android Material You colors) with platform-specific integrations, new UI components, runtime theme manipulation, and preferences changes. New features of this scope warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@PixPMusic
PixPMusic marked this pull request as draft August 11, 2026 02:03
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 5e6668f to dc8f8ebCompareAugust 11, 2026 04:02
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
Comment threadapps/mobile/src/features/files/ThreadFilesRouteScreen.tsx Outdated
Comment threadapps/mobile/src/features/threads/ThreadFeed.tsx
@github-actionsgithub-actionsBot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from d391918 to 74e9a6bCompareAugust 21, 2026 01:17
Comment threadapps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 74e9a6b to 84b7276CompareAugust 21, 2026 02:10
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 84b7276 to 19405d2CompareAugust 21, 2026 02:14
@PixPMusicPixPMusic changed the title feat(mobile): add Android Material You colorsfeat(mobile): add Android system colors and Material You layoutAug 21, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 19405d2 to c8c41dbCompareAugust 21, 2026 02:24
@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Draft adds a separate Android Material You theme system despite the shipped mobile theme system.

@t3dotggt3dotgg closed this Aug 23, 2026
@PixPMusic

Copy link
Copy Markdown
ContributorAuthor

This actually integrated with the existing theme system to add one more color option that matches the system, as well as an additional toggle to adjust UI elements to better match Android.

This did not supplant or replace the theme system.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PixPMusic@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(mobile): add Android system colors and Material You layout - #6081

Closed
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you
Closed

feat(mobile): add Android system colors and Material You layout#6081
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you

Conversation

@PixPMusic

@PixPMusicPixPMusic commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds two independent, Android-only appearance options under Settings → Appearance → Theme. Both are disabled by default.

System Colors

  • uses Android's live wallpaper-derived light and dark palettes on Android 12+
  • refreshes the palette when the app returns to the foreground
  • applies semantic system roles to app chrome, native selection, and sent-message contrast
  • leaves the authored T3 palette untouched when disabled

Material You Style Layout

  • applies Material You surface hierarchy, shapes, spacing, switches, lists, headers, search fields, composer treatment, files, tables, and toasts
  • works with either System Colors or the existing authored theme
  • leaves the existing layout styling untouched when disabled

The settings can be enabled separately: users can choose system colors without the Material You layout, or the Material You layout without wallpaper colors.

Existing work

Exact issue and PR searches for Material You and dynamic color found no duplicate implementation. #5694 adds built-in themes but not Android wallpaper-derived colors.

#5385 is complementary and intentionally remains the owner of foldable/tablet structure: adaptive workspace chrome, split header controls, and compact Android tablet navigation. This branch only styles those surfaces. A local-only integration branch merges current #5385 with this PR to verify the final composition without copying its structural changes here.

Screenshots

Android system baseline

Stock Pixel Settings and Wallpaper & style on the same emulator palette and dimensions used below.

DeviceSettingsWallpaper & style
Phone · 1080×1920
Pixel Fold · folded · 1080×2424
Pixel Fold · unfolded · 2076×2152

Before means both new settings are off. After means System Colors and Material You Style Layout are both on. Full-resolution files live on the fork's pr-assets/android-material-you branch so they stay out of this PR's diff.

Phone · 1080×1920
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · folded · 1080×2424
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · unfolded · 2076×2152
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments

#5385 integration

The remaining feature-branch-only foldable structural jank is fixed by #5385. This local integration screenshot shows the combined unfolded home page with no selected thread; the #5385 changes are not included in this PR.

Verification

  • pnpm exec vitest run apps/mobile/src/lib/mobileTheme.test.ts apps/mobile/src/lib/materialYouTheme.test.ts apps/mobile/src/state/preferences.test.ts (22 tests)
  • pnpm --dir apps/mobile typecheck
  • git diff --check origin/main...HEAD
  • manually verified the disposable showcase data with both settings off and both settings on
  • verified the current fix(mobile): restore Android tablet thread controls, clean up header #5385 + current PR local integration with the same focused tests and mobile typecheck

Checklist

  • both settings are off by default
  • settings persist independently
  • Android 12+ can use the live system wallpaper palette
  • unsupported Android versions disable System Colors
  • authored theme colors remain available with Material You Style Layout
  • iOS behavior is unchanged
  • fix(mobile): restore Android tablet thread controls, clean up header #5385 remains the owner of foldable structure

Model: GPT-5.6 Sol | Harness: Codex in T3 Code

@coderabbitai

coderabbitaiBot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f3513351-f892-48a2-842a-2436c6843666

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (Android Material You colors) with platform-specific integrations, new UI components, runtime theme manipulation, and preferences changes. New features of this scope warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@PixPMusic
PixPMusic marked this pull request as draft August 11, 2026 02:03
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 5e6668f to dc8f8ebCompareAugust 11, 2026 04:02
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
Comment threadapps/mobile/src/features/files/ThreadFilesRouteScreen.tsx Outdated
Comment threadapps/mobile/src/features/threads/ThreadFeed.tsx
@github-actionsgithub-actionsBot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from d391918 to 74e9a6bCompareAugust 21, 2026 01:17
Comment threadapps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 74e9a6b to 84b7276CompareAugust 21, 2026 02:10
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 84b7276 to 19405d2CompareAugust 21, 2026 02:14
@PixPMusicPixPMusic changed the title feat(mobile): add Android Material You colorsfeat(mobile): add Android system colors and Material You layoutAug 21, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 19405d2 to c8c41dbCompareAugust 21, 2026 02:24
@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Draft adds a separate Android Material You theme system despite the shipped mobile theme system.

@t3dotggt3dotgg closed this Aug 23, 2026
@PixPMusic

Copy link
Copy Markdown
ContributorAuthor

This actually integrated with the existing theme system to add one more color option that matches the system, as well as an additional toggle to adjust UI elements to better match Android.

This did not supplant or replace the theme system.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PixPMusic@t3dotgg
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(mobile): add Android system colors and Material You layout - #6081

Closed
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you
Closed

feat(mobile): add Android system colors and Material You layout#6081
PixPMusic wants to merge 2 commits into
pingdotgg:mainfrom
PixPMusic:pixpmusic/android-material-you

Conversation

@PixPMusic

@PixPMusicPixPMusic commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Summary

This adds two independent, Android-only appearance options under Settings → Appearance → Theme. Both are disabled by default.

System Colors

  • uses Android's live wallpaper-derived light and dark palettes on Android 12+
  • refreshes the palette when the app returns to the foreground
  • applies semantic system roles to app chrome, native selection, and sent-message contrast
  • leaves the authored T3 palette untouched when disabled

Material You Style Layout

  • applies Material You surface hierarchy, shapes, spacing, switches, lists, headers, search fields, composer treatment, files, tables, and toasts
  • works with either System Colors or the existing authored theme
  • leaves the existing layout styling untouched when disabled

The settings can be enabled separately: users can choose system colors without the Material You layout, or the Material You layout without wallpaper colors.

Existing work

Exact issue and PR searches for Material You and dynamic color found no duplicate implementation. #5694 adds built-in themes but not Android wallpaper-derived colors.

#5385 is complementary and intentionally remains the owner of foldable/tablet structure: adaptive workspace chrome, split header controls, and compact Android tablet navigation. This branch only styles those surfaces. A local-only integration branch merges current #5385 with this PR to verify the final composition without copying its structural changes here.

Screenshots

Android system baseline

Stock Pixel Settings and Wallpaper & style on the same emulator palette and dimensions used below.

DeviceSettingsWallpaper & style
Phone · 1080×1920
Pixel Fold · folded · 1080×2424
Pixel Fold · unfolded · 2076×2152

Before means both new settings are off. After means System Colors and Material You Style Layout are both on. Full-resolution files live on the fork's pr-assets/android-material-you branch so they stay out of this PR's diff.

Phone · 1080×1920
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · folded · 1080×2424
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments
Pixel Fold · unfolded · 2076×2152
ViewBoth offBoth on
Appearance
Threads
Thread
Terminal
Review
Environments

#5385 integration

The remaining feature-branch-only foldable structural jank is fixed by #5385. This local integration screenshot shows the combined unfolded home page with no selected thread; the #5385 changes are not included in this PR.

Verification

  • pnpm exec vitest run apps/mobile/src/lib/mobileTheme.test.ts apps/mobile/src/lib/materialYouTheme.test.ts apps/mobile/src/state/preferences.test.ts (22 tests)
  • pnpm --dir apps/mobile typecheck
  • git diff --check origin/main...HEAD
  • manually verified the disposable showcase data with both settings off and both settings on
  • verified the current fix(mobile): restore Android tablet thread controls, clean up header #5385 + current PR local integration with the same focused tests and mobile typecheck

Checklist

  • both settings are off by default
  • settings persist independently
  • Android 12+ can use the live system wallpaper palette
  • unsupported Android versions disable System Colors
  • authored theme colors remain available with Material You Style Layout
  • iOS behavior is unchanged
  • fix(mobile): restore Android tablet thread controls, clean up header #5385 remains the owner of foldable structure

Model: GPT-5.6 Sol | Harness: Codex in T3 Code

@coderabbitai

coderabbitaiBot commented Aug 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: f3513351-f892-48a2-842a-2436c6843666

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actionsgithub-actionsBot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
@macroscopeapp

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR introduces a new user-facing feature (Android Material You colors) with platform-specific integrations, new UI components, runtime theme manipulation, and preferences changes. New features of this scope warrant human review.

You can customize Macroscope's approvability policy. Learn more.

@PixPMusic
PixPMusic marked this pull request as draft August 11, 2026 02:03
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 5e6668f to dc8f8ebCompareAugust 11, 2026 04:02
@github-actionsgithub-actionsBot added size:XL 500-999 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Aug 11, 2026
Comment threadapps/mobile/src/features/files/ThreadFilesRouteScreen.tsx Outdated
Comment threadapps/mobile/src/features/threads/ThreadFeed.tsx
@github-actionsgithub-actionsBot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 12, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from d391918 to 74e9a6bCompareAugust 21, 2026 01:17
Comment threadapps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 74e9a6b to 84b7276CompareAugust 21, 2026 02:10
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 84b7276 to 19405d2CompareAugust 21, 2026 02:14
@PixPMusicPixPMusic changed the title feat(mobile): add Android Material You colorsfeat(mobile): add Android system colors and Material You layoutAug 21, 2026
@PixPMusic
PixPMusicforce-pushed the pixpmusic/android-material-you branch from 19405d2 to c8c41dbCompareAugust 21, 2026 02:24
@t3dotgg

Copy link
Copy Markdown
Member

Note

🤖 GPT-5.6 Sol responding on behalf of Theo

Closing this PR after an automated pass over open pull requests. Draft adds a separate Android Material You theme system despite the shipped mobile theme system.

@t3dotggt3dotgg closed this Aug 23, 2026
@PixPMusic

Copy link
Copy Markdown
ContributorAuthor

This actually integrated with the existing theme system to add one more color option that matches the system, as well as an additional toggle to adjust UI elements to better match Android.

This did not supplant or replace the theme system.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL1,000+ changed lines (additions + deletions).vouch:unvouchedPR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@PixPMusic@t3dotgg