Skip to content

Set up shared package for components and utilities#13486

Draft
parlough wants to merge 18 commits into
mainfrom
feat/site_shared
Draft

Set up shared package for components and utilities#13486
parlough wants to merge 18 commits into
mainfrom
feat/site_shared

Conversation

@parlough

@parlough parlough commented Jun 10, 2026

Copy link
Copy Markdown
Member

Adds a new site_shared package that contains components and other utilities for sharing with dart-lang/site-www.

  • Moved all components that are the same between both sites.
  • Moved and adapted components that exist on both sites but are slightly different (such as SiteSwitcher and Quiz)
  • Moved styled used by moved components.
  • Moved the markdown rendering setup, which is the same for both sites.
  • Moved some utilities that are needed by extracted components, such as analytics and code highlighting.

schultek and others added 17 commits April 13, 2026 12:57
# Conflicts:
#	packages/site_shared/lib/_sass/base/_mixins.scss
#	packages/site_shared/lib/_sass/base/_reset.scss
#	packages/site_shared/lib/_sass/components/_alert.scss
#	packages/site_shared/lib/_sass/components/_banner.scss
#	packages/site_shared/lib/_sass/components/_breadcrumbs.scss
#	packages/site_shared/lib/_sass/components/_button.scss
#	packages/site_shared/lib/_sass/components/_card.scss
#	packages/site_shared/lib/_sass/components/_code.scss
#	packages/site_shared/lib/_sass/components/_cookie-notice.scss
#	packages/site_shared/lib/_sass/components/_dropdown.scss
#	packages/site_shared/lib/_sass/components/_quiz.scss
#	packages/site_shared/lib/_sass/components/_site-switcher.scss
#	packages/site_shared/lib/_sass/components/_stepper.scss
#	packages/site_shared/lib/_sass/components/_summary-card.scss
#	packages/site_shared/lib/_sass/components/_tabs.scss
#	packages/site_shared/lib/_sass/components/_theming.scss
#	packages/site_shared/lib/_sass/components/_tooltip.scss
#	packages/site_shared/lib/components/common/breadcrumbs.dart
#	packages/site_shared/lib/components/common/button.dart
#	packages/site_shared/lib/components/common/card.dart
#	packages/site_shared/lib/components/common/chip.dart
#	packages/site_shared/lib/components/common/client/collapse_button.dart
#	packages/site_shared/lib/components/common/client/cookie_notice.dart
#	packages/site_shared/lib/components/common/client/copy_button.dart
#	packages/site_shared/lib/components/common/client/download_button.dart
#	packages/site_shared/lib/components/common/client/feedback.dart
#	packages/site_shared/lib/components/common/client/on_this_page_button.dart
#	packages/site_shared/lib/components/common/client/page_header_options.dart
#	packages/site_shared/lib/components/common/client/simple_tooltip.dart
#	packages/site_shared/lib/components/common/dropdown.dart
#	packages/site_shared/lib/components/common/fragment_target.dart
#	packages/site_shared/lib/components/common/material_icon.dart
#	packages/site_shared/lib/components/common/search.dart
#	packages/site_shared/lib/components/common/tabs.dart
#	packages/site_shared/lib/components/common/tags.dart
#	packages/site_shared/lib/components/common/tooltip.dart
#	packages/site_shared/lib/components/common/wrapped_code_block.dart
#	packages/site_shared/lib/components/common/youtube_embed.dart
#	packages/site_shared/lib/components/dartpad/dartpad_injector.dart
#	packages/site_shared/lib/components/dartpad/embedded_dartpad.dart
#	packages/site_shared/lib/components/layout/menu_toggle.dart
#	packages/site_shared/lib/components/layout/site_switcher.dart
#	packages/site_shared/lib/components/layout/theme_switcher.dart
#	packages/site_shared/lib/components/tutorial/client/progress_ring.dart
#	packages/site_shared/lib/components/tutorial/client/quiz.dart
#	packages/site_shared/lib/components/tutorial/downloadable_snippet.dart
#	packages/site_shared/lib/components/tutorial/models/quiz_model.dart
#	packages/site_shared/lib/components/tutorial/models/summary_card_model.dart
#	packages/site_shared/lib/components/tutorial/models/tutorial_model.dart
#	packages/site_shared/lib/components/tutorial/progress_ring.dart
#	packages/site_shared/lib/components/tutorial/stepper.dart
#	packages/site_shared/lib/components/tutorial/summary_card.dart
#	packages/site_shared/lib/components/tutorial/tutorial_outline.dart
#	packages/site_shared/lib/components/utils/global_event_listener.dart
#	packages/site_shared/lib/extensions/attribute_processor.dart
#	packages/site_shared/lib/extensions/code_block_processor.dart
#	packages/site_shared/lib/extensions/header_extractor.dart
#	packages/site_shared/lib/extensions/header_processor.dart
#	packages/site_shared/lib/extensions/table_processor.dart
#	packages/site_shared/lib/src/builders/styles_hash_builder.dart
#	packages/site_shared/lib/src/highlight/theme/dark.dart
#	packages/site_shared/lib/src/highlight/theme/light.dart
#	packages/site_shared/lib/src/highlight/token_renderer.dart
#	packages/site_shared/lib/src/markdown/alert_syntax.dart
#	packages/site_shared/lib/src/markdown/attribute_syntax.dart
#	packages/site_shared/lib/src/markdown/fenced_code_block_syntax.dart
#	packages/site_shared/lib/src/markdown/header_syntax.dart
#	packages/site_shared/lib/src/markdown/markdown_parser.dart
#	packages/site_shared/lib/src/utils/retake_element.dart
#	packages/site_shared/lib/src/utils/retake_element_web.dart
#	pubspec.yaml
#	site/lib/_sass/base/_mixins.scss
#	site/lib/_sass/base/_reset.scss
#	site/lib/_sass/components/_alert.scss
#	site/lib/_sass/components/_banner.scss
#	site/lib/_sass/components/_breadcrumbs.scss
#	site/lib/_sass/components/_button.scss
#	site/lib/_sass/components/_card.scss
#	site/lib/_sass/components/_code.scss
#	site/lib/_sass/components/_cookie-notice.scss
#	site/lib/_sass/components/_dropdown.scss
#	site/lib/_sass/components/_quiz.scss
#	site/lib/_sass/components/_site-switcher.scss
#	site/lib/_sass/components/_stepper.scss
#	site/lib/_sass/components/_summary-card.scss
#	site/lib/_sass/components/_tabs.scss
#	site/lib/_sass/components/_theming.scss
#	site/lib/_sass/components/_tooltip.scss
#	site/lib/src/builders/styles_hash_builder.dart
#	site/lib/src/components/common/breadcrumbs.dart
#	site/lib/src/components/common/button.dart
#	site/lib/src/components/common/card.dart
#	site/lib/src/components/common/chip.dart
#	site/lib/src/components/common/client/collapse_button.dart
#	site/lib/src/components/common/client/cookie_notice.dart
#	site/lib/src/components/common/client/copy_button.dart
#	site/lib/src/components/common/client/download_button.dart
#	site/lib/src/components/common/client/feedback.dart
#	site/lib/src/components/common/client/on_this_page_button.dart
#	site/lib/src/components/common/client/page_header_options.dart
#	site/lib/src/components/common/client/simple_tooltip.dart
#	site/lib/src/components/common/dropdown.dart
#	site/lib/src/components/common/fragment_target.dart
#	site/lib/src/components/common/material_icon.dart
#	site/lib/src/components/common/search.dart
#	site/lib/src/components/common/tabs.dart
#	site/lib/src/components/common/tags.dart
#	site/lib/src/components/common/tooltip.dart
#	site/lib/src/components/common/wrapped_code_block.dart
#	site/lib/src/components/common/youtube_embed.dart
#	site/lib/src/components/dartpad/dartpad_injector.dart
#	site/lib/src/components/dartpad/embedded_dartpad.dart
#	site/lib/src/components/layout/menu_toggle.dart
#	site/lib/src/components/layout/site_switcher.dart
#	site/lib/src/components/layout/theme_switcher.dart
#	site/lib/src/components/tutorial/client/progress_ring.dart
#	site/lib/src/components/tutorial/client/quiz.dart
#	site/lib/src/components/tutorial/downloadable_snippet.dart
#	site/lib/src/components/tutorial/progress_ring.dart
#	site/lib/src/components/tutorial/stepper.dart
#	site/lib/src/components/tutorial/summary_card.dart
#	site/lib/src/components/tutorial/tutorial_outline.dart
#	site/lib/src/components/util/global_event_listener.dart
#	site/lib/src/components/util/retake_element.dart
#	site/lib/src/components/util/retake_element_web.dart
#	site/lib/src/extensions/attribute_processor.dart
#	site/lib/src/extensions/code_block_processor.dart
#	site/lib/src/extensions/header_extractor.dart
#	site/lib/src/extensions/header_processor.dart
#	site/lib/src/extensions/table_processor.dart
#	site/lib/src/highlight/theme/dark.dart
#	site/lib/src/highlight/theme/light.dart
#	site/lib/src/highlight/token_renderer.dart
#	site/lib/src/markdown/alert_syntax.dart
#	site/lib/src/markdown/attribute_syntax.dart
#	site/lib/src/markdown/fenced_code_block_syntax.dart
#	site/lib/src/markdown/header_syntax.dart
#	site/lib/src/markdown/markdown_parser.dart
#	site/lib/src/models/quiz_model.dart
#	site/lib/src/models/summary_card_model.dart
#	site/lib/src/models/tutorial_model.dart
#	sites/docs/lib/_sass/base/_mixins.scss
#	sites/docs/lib/_sass/base/_reset.scss
#	sites/docs/lib/_sass/components/_alert.scss
#	sites/docs/lib/_sass/components/_banner.scss
#	sites/docs/lib/_sass/components/_breadcrumbs.scss
#	sites/docs/lib/_sass/components/_button.scss
#	sites/docs/lib/_sass/components/_card.scss
#	sites/docs/lib/_sass/components/_code.scss
#	sites/docs/lib/_sass/components/_cookie-notice.scss
#	sites/docs/lib/_sass/components/_dropdown.scss
#	sites/docs/lib/_sass/components/_quiz.scss
#	sites/docs/lib/_sass/components/_site-switcher.scss
#	sites/docs/lib/_sass/components/_stepper.scss
#	sites/docs/lib/_sass/components/_summary-card.scss
#	sites/docs/lib/_sass/components/_tabs.scss
#	sites/docs/lib/_sass/components/_theming.scss
#	sites/docs/lib/_sass/components/_tooltip.scss
#	sites/docs/lib/builders.dart
#	sites/docs/lib/src/builders/styles_hash_builder.dart
#	sites/docs/lib/src/components/common/breadcrumbs.dart
#	sites/docs/lib/src/components/common/button.dart
#	sites/docs/lib/src/components/common/card.dart
#	sites/docs/lib/src/components/common/chip.dart
#	sites/docs/lib/src/components/common/client/collapse_button.dart
#	sites/docs/lib/src/components/common/client/cookie_notice.dart
#	sites/docs/lib/src/components/common/client/copy_button.dart
#	sites/docs/lib/src/components/common/client/download_button.dart
#	sites/docs/lib/src/components/common/client/feedback.dart
#	sites/docs/lib/src/components/common/client/on_this_page_button.dart
#	sites/docs/lib/src/components/common/client/page_header_options.dart
#	sites/docs/lib/src/components/common/client/simple_tooltip.dart
#	sites/docs/lib/src/components/common/dropdown.dart
#	sites/docs/lib/src/components/common/fragment_target.dart
#	sites/docs/lib/src/components/common/material_icon.dart
#	sites/docs/lib/src/components/common/search.dart
#	sites/docs/lib/src/components/common/tabs.dart
#	sites/docs/lib/src/components/common/tags.dart
#	sites/docs/lib/src/components/common/tooltip.dart
#	sites/docs/lib/src/components/common/wrapped_code_block.dart
#	sites/docs/lib/src/components/common/youtube_embed.dart
#	sites/docs/lib/src/components/dartpad/dartpad_injector.dart
#	sites/docs/lib/src/components/dartpad/embedded_dartpad.dart
#	sites/docs/lib/src/components/layout/banner.dart
#	sites/docs/lib/src/components/layout/menu_toggle.dart
#	sites/docs/lib/src/components/layout/site_switcher.dart
#	sites/docs/lib/src/components/layout/theme_switcher.dart
#	sites/docs/lib/src/components/tutorial/client/progress_ring.dart
#	sites/docs/lib/src/components/tutorial/client/quiz.dart
#	sites/docs/lib/src/components/tutorial/downloadable_snippet.dart
#	sites/docs/lib/src/components/tutorial/progress_ring.dart
#	sites/docs/lib/src/components/tutorial/quiz.dart
#	sites/docs/lib/src/components/tutorial/stepper.dart
#	sites/docs/lib/src/components/tutorial/summary_card.dart
#	sites/docs/lib/src/components/tutorial/tutorial_outline.dart
#	sites/docs/lib/src/components/util/component_ref.dart
#	sites/docs/lib/src/components/util/global_event_listener.dart
#	sites/docs/lib/src/components/util/retake_element.dart
#	sites/docs/lib/src/components/util/retake_element_vm.dart
#	sites/docs/lib/src/components/util/retake_element_web.dart
#	sites/docs/lib/src/extensions/attribute_processor.dart
#	sites/docs/lib/src/extensions/code_block_processor.dart
#	sites/docs/lib/src/extensions/header_extractor.dart
#	sites/docs/lib/src/extensions/header_processor.dart
#	sites/docs/lib/src/extensions/table_processor.dart
#	sites/docs/lib/src/highlight/theme/dark.dart
#	sites/docs/lib/src/highlight/theme/light.dart
#	sites/docs/lib/src/highlight/token_renderer.dart
#	sites/docs/lib/src/layouts/dash_layout.dart
#	sites/docs/lib/src/layouts/flutter_layout.dart
#	sites/docs/lib/src/markdown/alert_syntax.dart
#	sites/docs/lib/src/markdown/attribute_syntax.dart
#	sites/docs/lib/src/markdown/fenced_code_block_syntax.dart
#	sites/docs/lib/src/markdown/header_syntax.dart
#	sites/docs/lib/src/markdown/markdown_parser.dart
#	sites/docs/lib/src/models/quiz_model.dart
#	sites/docs/lib/src/models/summary_card_model.dart
#	sites/docs/lib/src/models/tutorial_model.dart
#	sites/docs/lib/src/util.dart
#	sites/docs/pubspec.yaml
#	sites/docs/src/data/banner.yml
#	sites/docs/src/data/site.yml
@flutter-website-bot

flutter-website-bot commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Staged preview of the updated docs.flutter.dev site (updated for commit ee6bc94):

https://flutter-docs-prod--docs-pr13486-feat-site-shared-227hub3q.web.app

@flutter-website-bot

flutter-website-bot commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Staged preview of the updated flutter.dev site (updated for commit ee6bc94):

https://flutter-dev-230821--www-pr13486-feat-site-shared-w9ez94yu.web.app

@parlough

Copy link
Copy Markdown
Member Author

/gemini review

gemini-code-assist[bot]

This comment was marked as resolved.

sfshaza2 pushed a commit that referenced this pull request Jun 10, 2026
Updates the docs-site banner to be updated by modifying the
`sites/docs/src/data/banner.yml` file, specifying entries as either text
or link based. This better fits our site implementation and will enable
sharing additional setup with dart.dev.

Extracted and modified from
#13486.

@sfshaza2 sfshaza2 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.

I know it's in draft form... lgtm

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.

4 participants