Skip to content

Add DaxScaffold and lint rule enforcing it over Material Scaffold#8824

Open
GerardPaligot wants to merge 1 commit into
feature/gerard/compose-topappbarsfrom
feature/gerard/compose-scaffold
Open

Add DaxScaffold and lint rule enforcing it over Material Scaffold#8824
GerardPaligot wants to merge 1 commit into
feature/gerard/compose-topappbarsfrom
feature/gerard/compose-scaffold

Conversation

@GerardPaligot

@GerardPaligot GerardPaligot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Task/Issue URL: https://app.asana.com/1/137249556945/project/1215496415658080/task/1215518884361562

Description

Adds a DuckDuckGo-themed Compose scaffold and a lint rule that enforces its use.

  • DaxScaffold wraps Material3 Scaffold with DuckDuckGo default container/content colors and content window insets.
  • Showcased with a top app bar (back + AI chat icon buttons) in the design system internal screen as a new "Scaffold" component.
  • Adds the NoMaterial3ScaffoldUsage lint rule (error severity) that directs usage to DaxScaffold everywhere except the design system modules, mirroring the existing Material3 switch/checkbox/radio rules.

Stacked on top of #8823 — the scaffold's top bar uses DaxIconButton, which only themes correctly (dark mode) with that PR's color fix.

Steps to test this PR

Design system screen

  • Build & install the internal variant, open the Design System → Layout.
  • Scroll to "Scaffold" component: confirm the top app bar (title + back + AI chat icons) and content render.
  • Toggle dark/light theme: confirm the scaffold background, top bar, and icons follow the theme.

UI changes

image

Note

Low Risk
Changes are confined to new design-system API, internal demo UI, and lint enforcement with no production feature logic.

Overview
Introduces DaxScaffold, a design-system wrapper around Material3 Scaffold that applies DuckDuckGo theme container and content colors (via DaxScaffoldDefaults) while keeping the usual top/bottom bar, snackbar, insets, and content slot API.

The internal Design System → Layout catalog gains a Scaffold entry (Component.SCAFFOLD, layout + ScaffoldComponentViewHolder) demoing DaxSearchTopAppBar with search state over placeholder content.

A new NoMaterial3ScaffoldUsage lint check (error severity, registered in DuckDuckGoIssueRegistry) flags direct androidx.compose.material3.Scaffold calls outside design-system / design-system-internal, with unit tests matching the existing Material3 component lint pattern.

Reviewed by Cursor Bugbot for commit c490224. Bugbot is set up for automated code reviews on this repo. Configure here.

@GerardPaligot GerardPaligot force-pushed the feature/gerard/compose-scaffold branch from e85c9c0 to e4eceab Compare June 9, 2026 21:38
@GerardPaligot GerardPaligot force-pushed the feature/gerard/compose-icon-button branch from a56f03f to 8430706 Compare June 9, 2026 21:38

GerardPaligot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@GerardPaligot GerardPaligot marked this pull request as ready for review June 9, 2026 21:46
@GerardPaligot GerardPaligot force-pushed the feature/gerard/compose-scaffold branch from e4eceab to 833f60f Compare June 9, 2026 21:49
@GerardPaligot GerardPaligot force-pushed the feature/gerard/compose-icon-button branch from 8430706 to 034c083 Compare June 9, 2026 21:49
@GerardPaligot GerardPaligot changed the base branch from feature/gerard/compose-icon-button to graphite-base/8824 June 16, 2026 11:45
@GerardPaligot GerardPaligot force-pushed the feature/gerard/compose-scaffold branch from 833f60f to 1d197a7 Compare June 16, 2026 13:27
@GerardPaligot GerardPaligot changed the base branch from graphite-base/8824 to feature/gerard/compose-icon-button June 16, 2026 13:27
@GerardPaligot GerardPaligot changed the base branch from feature/gerard/compose-icon-button to graphite-base/8824 June 17, 2026 08:50
@GerardPaligot GerardPaligot force-pushed the feature/gerard/compose-scaffold branch from 1d197a7 to d7bf562 Compare June 17, 2026 08:50
@GerardPaligot GerardPaligot changed the base branch from graphite-base/8824 to feature/gerard/compose-topappbars June 17, 2026 08:50

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d7bf562. Configure here.

@GerardPaligot GerardPaligot changed the base branch from feature/gerard/compose-topappbars to graphite-base/8824 June 17, 2026 09:01
@GerardPaligot GerardPaligot force-pushed the feature/gerard/compose-scaffold branch from d7bf562 to 1de1820 Compare June 17, 2026 09:02
@GerardPaligot GerardPaligot changed the base branch from graphite-base/8824 to feature/gerard/compose-topappbars June 17, 2026 09:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants