commit 58dfa9f785b90deb82e11b1bb5f1ec676e80ff27 parent 9b1981bcb3779f9d88a6ef3a2e02a949c9460f07 Author: Jon Oliver <jooliver@mozilla.com> Date: Thu, 11 Dec 2025 21:01:07 +0000 Bug 1994263: initial pattern for consolidating stylelint design token rules r=mstriemer,frontend-codestyle-reviewers,mossop - adds use-design-tokens rule, configuration pattern, tests and documentation - converts use-box-shadow-tokens rule to be configured via use-design-tokens rule - updates tests and documentation for box-shadow portion of use-design-tokens rule Differential Revision: https://phabricator.services.mozilla.com/D272712 Diffstat:
13 files changed, 1299 insertions(+), 1144 deletions(-)
diff --git a/.stylelintrc.js b/.stylelintrc.js @@ -274,6 +274,7 @@ module.exports = { // Remove this line setting `csscontrols/use-logical` to null after implementing fixes "csstools/use-logical": null, "stylelint-plugin-mozilla/no-base-design-tokens": true, + "stylelint-plugin-mozilla/use-design-tokens": true, "stylelint-plugin-mozilla/use-background-color-tokens": true, "stylelint-plugin-mozilla/use-border-color-tokens": true, "stylelint-plugin-mozilla/use-border-radius-tokens": true, @@ -281,7 +282,6 @@ module.exports = { "stylelint-plugin-mozilla/use-font-weight-tokens": true, "stylelint-plugin-mozilla/use-space-tokens": true, "stylelint-plugin-mozilla/use-text-color-tokens": true, - "stylelint-plugin-mozilla/use-box-shadow-tokens": true, "stylelint-plugin-mozilla/no-non-semantic-token-usage": true, "stylelint-plugin-mozilla/use-size-tokens": true, }, @@ -423,6 +423,7 @@ module.exports = { "browser/components/backup/content/archive.css", ], rules: { + "stylelint-plugin-mozilla/use-design-tokens": null, "stylelint-plugin-mozilla/use-background-color-tokens": null, "stylelint-plugin-mozilla/use-border-color-tokens": null, "stylelint-plugin-mozilla/use-border-radius-tokens": null, @@ -430,7 +431,6 @@ module.exports = { "stylelint-plugin-mozilla/use-font-weight-tokens": null, "stylelint-plugin-mozilla/use-space-tokens": null, "stylelint-plugin-mozilla/use-text-color-tokens": null, - "stylelint-plugin-mozilla/use-box-shadow-tokens": null, "stylelint-plugin-mozilla/no-non-semantic-token-usage": null, "stylelint-plugin-mozilla/use-size-tokens": null, }, @@ -442,6 +442,7 @@ module.exports = { "devtools/client/aboutdebugging/src/**", ], rules: { + "stylelint-plugin-mozilla/use-design-tokens": true, "stylelint-plugin-mozilla/use-background-color-tokens": true, "stylelint-plugin-mozilla/use-border-color-tokens": true, "stylelint-plugin-mozilla/use-border-radius-tokens": true, diff --git a/docs/code-quality/lint/linters/stylelint-plugin-mozilla/rules/use-box-shadow-tokens.rst b/docs/code-quality/lint/linters/stylelint-plugin-mozilla/rules/use-box-shadow-tokens.rst @@ -1,112 +0,0 @@ -======================== -use-box-shadow-tokens -======================== - -This rule checks that CSS declarations use box-shadow design token variables -instead of hardcoded values. This ensures consistent box-shadow usage across -the application and makes it easier to maintain design system consistency. - -Examples of incorrect code for this rule: ------------------------------------------ - -.. code-block:: css - - .button { - box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); - } - -.. code-block:: css - - .element { - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - } - -Examples of correct token usage for this rule: ----------------------------------------------- - -.. code-block:: css - - .card { - box-shadow: var(--box-shadow-card); - } - -.. code-block:: css - - .card-hover { - box-shadow: var(--box-shadow-card-hover); - } - -.. code-block:: css - - .level-1-shadow { - box-shadow: var(--box-shadow-level-1); - } - -.. code-block:: css - - .level-2-shadow { - box-shadow: var(--box-shadow-level-2); - } - -.. code-block:: css - - .level-3-shadow { - box-shadow: var(--box-shadow-level-3); - } - -.. code-block:: css - - .level-4-shadow { - box-shadow: var(--box-shadow-level-4); - } - -.. code-block:: css - - .popup { - box-shadow: var(--box-shadow-popup); - } - -.. code-block:: css - - .tab { - box-shadow: var(--box-shadow-tab); - } - - -The rule also allows these non-token values: - -.. code-block:: css - - .inherited-shadow { - box-shadow: inherit; - } - -.. code-block:: css - - .initial-shadow { - box-shadow: initial; - } - -.. code-block:: css - - .revert-shadow { - box-shadow: revert; - } - -.. code-block:: css - - .revert-layer-shadow { - box-shadow: revert-layer; - } - -.. code-block:: css - - .unset-shadow { - box-shadow: unset; - } - -.. code-block:: css - - .no-shadow { - box-shadow: none; - } diff --git a/docs/code-quality/lint/linters/stylelint-plugin-mozilla/rules/use-design-tokens.rst b/docs/code-quality/lint/linters/stylelint-plugin-mozilla/rules/use-design-tokens.rst @@ -0,0 +1,51 @@ +================= +use-design-tokens +================= + +This rule checks that CSS declarations use design token variables instead of +hardcoded values. This ensures consistent design system usage across the +application and makes it easier to maintain design system consistency. + +The rule supports multiple CSS properties, each of which can be enabled or +disabled independently. See the documentation below for details about each +supported property. + +Configuration +------------- + +The rule accepts the following configuration options: + +- ``true`` - Enables checking for all supported CSS properties +- ``null`` - Disables the rule entirely +- An object with CSS property names as keys, which disables specific properties: + + - All properties are enabled by default when using object configuration + - Set a property to ``null`` to disable checking for that property + +Examples: + +.. code-block:: javascript + + // Enable all property checks + "stylelint-plugin-mozilla/use-design-tokens": true + + // Disable the rule entirely + "stylelint-plugin-mozilla/use-design-tokens": null + + // Disable specific properties (common in rollouts) + // All other properties remain enabled by default + "stylelint-plugin-mozilla/use-design-tokens": { + "box-shadow": null + } + +Supported Properties +-------------------- + +The following CSS properties are supported by this rule. Click on a property +name to see examples of correct and incorrect usage: + +.. toctree:: + :maxdepth: 1 + :glob: + + use-design-tokens/* diff --git a/docs/code-quality/lint/linters/stylelint-plugin-mozilla/rules/use-design-tokens/box-shadow.rst b/docs/code-quality/lint/linters/stylelint-plugin-mozilla/rules/use-design-tokens/box-shadow.rst @@ -0,0 +1,112 @@ +========== +box-shadow +========== + +The ``use-design-tokens`` rule checks that CSS ``box-shadow`` declarations use +design token variables instead of hardcoded values. This ensures consistent +box-shadow usage across the application and makes it easier to maintain design +system consistency. + +Examples of incorrect code for this rule: +----------------------------------------- + +.. code-block:: css + + .button { + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); + } + +.. code-block:: css + + .element { + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + } + +Examples of correct token usage for this rule: +---------------------------------------------- + +.. code-block:: css + + .card { + box-shadow: var(--box-shadow-card); + } + +.. code-block:: css + + .card-hover { + box-shadow: var(--box-shadow-card-hover); + } + +.. code-block:: css + + .level-1-shadow { + box-shadow: var(--box-shadow-level-1); + } + +.. code-block:: css + + .level-2-shadow { + box-shadow: var(--box-shadow-level-2); + } + +.. code-block:: css + + .level-3-shadow { + box-shadow: var(--box-shadow-level-3); + } + +.. code-block:: css + + .level-4-shadow { + box-shadow: var(--box-shadow-level-4); + } + +.. code-block:: css + + .popup { + box-shadow: var(--box-shadow-popup); + } + +.. code-block:: css + + .tab { + box-shadow: var(--box-shadow-tab); + } + +The rule also allows these non-token values: + +.. code-block:: css + + .inherited-shadow { + box-shadow: inherit; + } + +.. code-block:: css + + .initial-shadow { + box-shadow: initial; + } + +.. code-block:: css + + .revert-shadow { + box-shadow: revert; + } + +.. code-block:: css + + .revert-layer-shadow { + box-shadow: revert-layer; + } + +.. code-block:: css + + .unset-shadow { + box-shadow: unset; + } + +.. code-block:: css + + .no-shadow { + box-shadow: none; + } diff --git a/stylelint-rollouts.config.js b/stylelint-rollouts.config.js @@ -12,169 +12,141 @@ */ module.exports = [ { - name: "rollout-use-border-radius-tokens", - rules: { - "stylelint-plugin-mozilla/use-border-radius-tokens": null, - }, - files: [ - "browser/base/content/sanitizeDialog.css", - "browser/components/asrouter/content-src/components/ASRouterAdmin/ASRouterAdmin.scss", - "browser/components/asrouter/content-src/styles/_feature-callout.scss", - "browser/components/contextualidentity/content/usercontext.css", - "browser/components/genai/content/link-preview-card.css", - "browser/components/preferences/dialogs/clearSiteData.css", - "browser/components/profiles/content/profile-card.css", - "browser/components/profiles/content/profiles-theme-card.css", - "browser/components/protections/content/protections.css", - "browser/components/screenshots/overlay/overlay.css", - "browser/components/screenshots/screenshots-buttons.css", - "browser/components/search/test/browser/telemetry/serp.css", - "browser/components/textrecognition/textrecognition.css", - "browser/components/urlbar/tests/browser/dynamicResult0.css", - "browser/components/urlbar/tests/browser/dynamicResult1.css", - "browser/extensions/formautofill/content/manageDialog.css", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", - "browser/themes/linux/browser.css", - "browser/themes/shared/addons/unified-extensions.css", - "browser/themes/shared/aiWindowSidebar.css", - "browser/themes/shared/customizableui/customizeMode.css", - "browser/themes/shared/customizableui/panelUI-shared.css", - "browser/themes/shared/identity-block/identity-block.css", - "browser/themes/shared/notification-icons.css", - "browser/themes/shared/search/searchbar.css", - "browser/themes/shared/sidebar.css", - "browser/themes/shared/tabbrowser/content-area.css", - "browser/themes/shared/tabbrowser/ctrlTab.css", - "browser/themes/shared/tabbrowser/tabs.css", - "browser/themes/shared/toolbarbuttons.css", - "browser/themes/shared/urlbar-dynamic-results.css", - "browser/themes/shared/urlbar-searchbar.css", - "browser/themes/shared/urlbarView.css", - "browser/themes/windows/downloads/allDownloadsView.css", - "layout/style/res/forms.css", - "security/manager/pki/resources/content/clientauthask.css", - "toolkit/components/aboutinference/content/aboutInference.css", - "toolkit/components/normandy/content/about-studies/about-studies.css", - "toolkit/components/printing/content/printPagination.css", - "toolkit/components/satchel/megalist/content/components/login-line/login-line.css", - "toolkit/content/aboutTelemetry.css", - "toolkit/content/aboutwebrtc/aboutWebrtc.css", - "toolkit/content/widgets/moz-visual-picker/moz-visual-picker-item.css", - "toolkit/content/xul.css", - "toolkit/mozapps/extensions/content/aboutaddons.css", - "toolkit/mozapps/extensions/content/shortcuts.css", - "toolkit/themes/mobile/global/aboutMemory.css", - "toolkit/themes/shared/alert.css", - "toolkit/themes/shared/datetimeinputpickers.css", - "toolkit/themes/shared/design-system/storybook/tokens-table.css", - "toolkit/themes/shared/menu.css", - "toolkit/themes/shared/popup.css", - "toolkit/components/certviewer/content/components/certificate-section.css", - "toolkit/content/widgets/infobar.css", - "toolkit/content/widgets/moz-box-common.css", - "toolkit/themes/shared/in-content/common-shared.css", - ], - }, - { - name: "rollout-use-border-color-tokens", + name: "rollout-use-size-tokens", rules: { - "stylelint-plugin-mozilla/use-border-color-tokens": null, + "stylelint-plugin-mozilla/use-size-tokens": null, }, files: [ - "browser/base/content/sanitizeDialog.css", + "browser/base/content/aboutDialog.css", + "browser/base/content/pageinfo/pageInfo.css", "browser/branding/aurora/stubinstaller/installing_page.css", + "browser/branding/aurora/stubinstaller/profile_cleanup_page.css", "browser/branding/nightly/stubinstaller/installing_page.css", + "browser/branding/nightly/stubinstaller/profile_cleanup_page.css", "browser/branding/official/stubinstaller/installing_page.css", "browser/branding/official/stubinstaller/profile_cleanup_page.css", + "browser/branding/unofficial/content/aboutDialog.css", "browser/branding/unofficial/stubinstaller/installing_page.css", + "browser/branding/unofficial/stubinstaller/profile_cleanup_page.css", + "browser/components/aboutlogins/content/aboutLogins.css", "browser/components/aboutlogins/content/aboutLoginsImportReport.css", "browser/components/aboutlogins/content/components/confirmation-dialog.css", + "browser/components/aboutlogins/content/components/fxaccounts-button.css", "browser/components/aboutlogins/content/components/generic-dialog.css", "browser/components/aboutlogins/content/components/login-alert.css", + "browser/components/aboutlogins/content/components/login-filter.css", + "browser/components/aboutlogins/content/components/login-intro.css", + "browser/components/aboutlogins/content/components/login-item.css", "browser/components/aboutlogins/content/components/login-list-lit-item.css", "browser/components/aboutlogins/content/components/login-list.css", "browser/components/aboutlogins/content/components/login-message-popup.css", + "browser/components/aboutlogins/content/components/login-timeline.css", "browser/components/aboutlogins/content/components/menu-button.css", "browser/components/aboutlogins/content/components/remove-logins-dialog.css", "browser/components/aboutwelcome/content-src/aboutwelcome.scss", "browser/components/asrouter/content-src/components/ASRouterAdmin/ASRouterAdmin.scss", "browser/components/asrouter/content-src/styles/_feature-callout.scss", - "browser/components/backup/content/archive.css", + "browser/components/backup/content/backup-settings.css", + "browser/components/backup/content/password-rules-tooltip.css", + "browser/components/backup/content/password-validation-inputs.css", "browser/components/backup/content/restore-from-backup.css", "browser/components/backup/content/turn-on-scheduled-backups.css", + "browser/components/contextualidentity/content/usercontext.css", "browser/components/enterprisepolicies/content/aboutPolicies.css", "browser/components/firefoxview/card-container.css", + "browser/components/firefoxview/firefoxview.css", + "browser/components/firefoxview/fxview-empty-state.css", "browser/components/firefoxview/fxview-tab-row.css", "browser/components/firefoxview/opentabs-tab-row.css", "browser/components/firefoxview/view-syncedtabs.css", "browser/components/genai/chat.css", "browser/components/genai/content/link-preview-card.css", "browser/components/genai/content/model-optin.css", - "browser/components/ipprotection/content/ipprotection-content.css", - "browser/components/places/content/places.css", - "browser/components/preferences/dialogs/clearSiteData.css", + "browser/components/messagepreview/messagepreview.css", + "browser/components/places/content/clearDataForSite.css", + "browser/components/places/metadataViewer/interactionsViewer.css", + "browser/components/preferences/dialogs/sitePermissions.css", + "browser/components/preferences/widgets/placeholder-message/placeholder-message.css", "browser/components/profiles/content/avatar.css", + "browser/components/profiles/content/edit-profile-card.css", "browser/components/profiles/content/profile-avatar-selector.css", "browser/components/profiles/content/profile-card.css", + "browser/components/profiles/content/profile-selector.css", "browser/components/profiles/content/profiles-pages.css", "browser/components/profiles/content/profiles-theme-card.css", "browser/components/protections/content/protections.css", "browser/components/screenshots/overlay/overlay.css", + "browser/components/screenshots/screenshots-buttons.css", "browser/components/search/content/contentSearchUI.css", "browser/components/search/test/browser/telemetry/serp.css", - "browser/components/security/unexpectedScriptLoad.css", - "browser/components/sidebar/sidebar-customize.css", - "browser/components/sidebar/sidebar-history.css", "browser/components/sidebar/sidebar-main.css", "browser/components/sidebar/sidebar-pins-promo.css", "browser/components/sidebar/sidebar.css", "browser/components/textrecognition/textrecognition.css", "browser/components/urlbar/tests/browser/dynamicResult0.css", "browser/components/urlbar/tests/browser/dynamicResult1.css", + "browser/components/webrtc/content/webrtc-preview/webrtc-preview.css", + "browser/extensions/formautofill/content/formautofill.css", "browser/extensions/formautofill/content/manageDialog.css", - "browser/extensions/newtab/content-src/components/A11yLinkButton/_A11yLinkButton.scss", + "browser/extensions/formautofill/skin/shared/editAddress.css", + "browser/extensions/formautofill/skin/shared/editDialog-shared.css", "browser/extensions/newtab/content-src/components/Base/_Base.scss", "browser/extensions/newtab/content-src/components/Card/_Card.scss", + "browser/extensions/newtab/content-src/components/CollapsibleSection/_CollapsibleSection.scss", "browser/extensions/newtab/content-src/components/ConfirmDialog/_ConfirmDialog.scss", "browser/extensions/newtab/content-src/components/ContextMenu/_ContextMenu.scss", "browser/extensions/newtab/content-src/components/CustomizeMenu/_CustomizeMenu.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamAdmin/DiscoveryStreamAdmin.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBanner/_AdBanner.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBannerContextMenu/AdBannerContextMenu.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/CardGrid/_CardGrid.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/CardSections/_CardSections.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSCard/_DSCard.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSContextFooter/_DSContextFooter.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSEmptyState/_DSEmptyState.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSLinkMenu/_DSLinkMenu.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSThumbsUpDownButtons/_DSThumbsUpDownButtons.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSImage/_DSImage.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSMessage/_DSMessage.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_DownloadMobilePromoHighlight.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FeatureHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/HorizontalRule/_HorizontalRule.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/InterestPicker/_InterestPicker.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/ListFeed/_ListFeed.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FollowSectionButtonHighlight.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_ShortcutFeatureHighlight.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_WallpaperFeatureHighlight.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/Highlights/_Highlights.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/Navigation/_Navigation.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PersonalizedCard/_PersonalizedCard.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PromoCard/_PromoCard.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/ReportContent/ReportContent.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/SectionContextMenu/_SectionContextMenu.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopSites/_TopSites.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicsWidget/_TopicsWidget.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TrendingSearches/_TrendingSearches.scss", "browser/extensions/newtab/content-src/components/DownloadModalToggle/_DownloadModalToggle.scss", + "browser/extensions/newtab/content-src/components/Logo/_Logo.scss", "browser/extensions/newtab/content-src/components/ModalOverlay/_ModalOverlay.scss", + "browser/extensions/newtab/content-src/components/MoreRecommendations/_MoreRecommendations.scss", + "browser/extensions/newtab/content-src/components/Notifications/_Notifications.scss", "browser/extensions/newtab/content-src/components/Search/_Search.scss", "browser/extensions/newtab/content-src/components/Sections/_Sections.scss", "browser/extensions/newtab/content-src/components/TopSites/_TopSites.scss", "browser/extensions/newtab/content-src/components/WallpaperCategories/_WallpaperCategories.scss", "browser/extensions/newtab/content-src/components/Weather/_Weather.scss", + "browser/extensions/newtab/content-src/components/Widgets/FocusTimer/_FocusTimer.scss", "browser/extensions/newtab/content-src/components/Widgets/Lists/_Lists.scss", + "browser/extensions/newtab/content-src/components/Widgets/_Widgets.scss", "browser/extensions/newtab/content-src/styles/_icons.scss", "browser/extensions/newtab/content-src/styles/_mixins.scss", "browser/extensions/newtab/content-src/styles/_variables.scss", "browser/extensions/newtab/content-src/styles/activity-stream.scss", - "browser/extensions/webcompat/about-compat/aboutCompat.css", - "browser/fxr/content/fxrui_blue.css", - "browser/fxr/content/fxrui.css", - "browser/fxr/content/prefs.css", - "browser/installer/windows/nsis/content/stub_common.css", "browser/themes/linux/browser.css", + "browser/themes/linux/places/organizer.css", "browser/themes/osx/browser.css", "browser/themes/osx/places/organizer.css", + "browser/themes/shared/UITour.css", "browser/themes/shared/aboutSessionRestore.css", - "browser/themes/shared/aboutTabCrashed.css", + "browser/themes/shared/addon-notification.css", + "browser/themes/shared/addons/extension-controlled.css", "browser/themes/shared/addons/unified-extensions.css", + "browser/themes/shared/aiWindowSidebar.css", "browser/themes/shared/autocomplete.css", "browser/themes/shared/blockedSite.css", "browser/themes/shared/browser-shared.css", @@ -182,787 +154,775 @@ module.exports = [ "browser/themes/shared/customizableui/customizeMode.css", "browser/themes/shared/customizableui/panelUI-shared.css", "browser/themes/shared/downloads/allDownloadsView.inc.css", - "browser/themes/shared/downloads/contentAreaDownloadsView.css", + "browser/themes/shared/downloads/download-blockedStates.css", "browser/themes/shared/downloads/downloads.inc.css", + "browser/themes/shared/downloads/indicator.css", "browser/themes/shared/downloads/progressmeter.css", "browser/themes/shared/formautofill-notification.css", "browser/themes/shared/identity-block/identity-block.css", "browser/themes/shared/identity-credential-notification.css", "browser/themes/shared/migration/migration-wizard.css", + "browser/themes/shared/notification-icons.css", "browser/themes/shared/pageInfo.css", "browser/themes/shared/places/editBookmark.css", "browser/themes/shared/places/editBookmarkPanel.css", + "browser/themes/shared/places/organizer-shared.css", "browser/themes/shared/places/sidebar.css", + "browser/themes/shared/places/tree-icons.css", + "browser/themes/shared/preferences/applications.css", "browser/themes/shared/preferences/containers-dialog.css", "browser/themes/shared/preferences/containers.css", + "browser/themes/shared/preferences/fxaPairDevice.css", "browser/themes/shared/preferences/preferences.css", "browser/themes/shared/preferences/privacy.css", + "browser/themes/shared/preferences/search.css", + "browser/themes/shared/preferences/siteDataSettings.css", "browser/themes/shared/preferences/translations.css", "browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css", - "browser/themes/shared/sanitizeDialog_v2.css", "browser/themes/shared/search/searchbar.css", "browser/themes/shared/sidebar.css", "browser/themes/shared/syncedtabs/sidebar.css", + "browser/themes/shared/tab-list-tree.css", "browser/themes/shared/tabbrowser/content-area.css", "browser/themes/shared/tabbrowser/ctrlTab.css", + "browser/themes/shared/tabbrowser/fullscreen-and-pointerlock.css", "browser/themes/shared/tabbrowser/tab-hover-preview.css", "browser/themes/shared/tabbrowser/tabs.css", "browser/themes/shared/toolbarbuttons.css", - "browser/themes/shared/UITour.css", + "browser/themes/shared/translations/panel.css", "browser/themes/shared/urlbar-dynamic-results.css", "browser/themes/shared/urlbar-searchbar.css", "browser/themes/shared/urlbarView.css", "browser/themes/shared/webRTC-indicator.css", - "browser/themes/windows/browser.css", - "browser/themes/windows/downloads/allDownloadsView.css", - "browser/themes/windows/downloads/downloads.css", "browser/themes/windows/places/organizer.css", - "browser/tools/mozscreenshots/mozscreenshots/extension/lib/mozscreenshots-style.css", "devtools/client/aboutdebugging/src/base.css", - "devtools/client/aboutdebugging/src/components/connect/ConnectSection.css", - "devtools/client/aboutdebugging/src/components/connect/NetworkLocationsList.css", - "devtools/client/aboutdebugging/src/components/debugtarget/DebugTargetItem.css", - "devtools/client/aboutdebugging/src/components/debugtarget/FieldPair.css", - "devtools/client/aboutdebugging/src/components/shared/Message.css", - "docs/_static/custom_theme.css", - "dom/canvas/test/webgl-conf/iframe-passthrough.css", - "dom/crypto/test/test_WebCrypto.css", + "devtools/client/aboutdebugging/src/components/App.css", + "devtools/client/aboutdebugging/src/components/ProfilerDialog.css", + "devtools/client/aboutdebugging/src/components/debugtarget/ExtensionDetail.css", + "devtools/client/aboutdebugging/src/components/debugtarget/ServiceWorkerAction.css", + "devtools/client/aboutdebugging/src/components/shared/IconLabel.css", + "devtools/client/aboutdebugging/src/components/sidebar/Sidebar.css", + "devtools/client/aboutdebugging/src/components/sidebar/SidebarFixedItem.css", + "devtools/client/aboutdebugging/src/components/sidebar/SidebarItem.css", + "devtools/client/aboutdebugging/src/components/sidebar/SidebarRuntimeItem.css", "dom/events/test/pointerevents/wpt/pointerevent_styles.css", - "dom/xml/resources/XMLPrettyPrint.css", "dom/xml/test/old/books/classic.css", "dom/xml/test/old/books/common.css", - "dom/xml/test/old/books/list.css", - "gfx/layers/layerviewer/tree.css", - "layout/mathml/mathml.css", + "gfx/layers/apz/test/mochitest/helper_subframe_style.css", + "layout/generic/test/frame_selection_underline.css", "layout/style/res/forms.css", "layout/style/res/html.css", - "layout/style/res/ua.css", - "mobile/android/android-components/components/browser/errorpages/src/main/assets/error_style.css", - "mobile/android/fenix/app/src/main/assets/shared_error_style.css", - "mobile/android/focus-android/app/src/main/assets/error_style.css", - "mobile/android/themes/geckoview/config.css", + "layout/style/res/scrollbars.css", + "security/manager/pki/resources/content/certManager.css", + "testing/marionette/harness/marionette_harness/tests/unit/assets/chrome/style.css", "testing/mochitest/static/harness.css", - "testing/mochitest/tests/SimpleTest/test.css", "testing/mozbase/mozlog/mozlog/formatters/html/style.css", "testing/talos/talos/tests/scroll/reader.css", + "testing/talos/talos/tests/tart/addon/content/tab-min-width-1px.css", "toolkit/components/aboutcheckerboard/content/aboutCheckerboard.css", "toolkit/components/aboutconfig/content/aboutconfig.css", "toolkit/components/aboutinference/content/aboutInference.css", "toolkit/components/aboutinference/content/model-files-view.css", - "toolkit/components/aboutmemory/content/aboutMemory.css", "toolkit/components/aboutprocesses/content/aboutProcesses.css", - "toolkit/components/certviewer/content/components/certificate-section.css", + "toolkit/components/aboutthirdparty/content/aboutThirdParty.css", + "toolkit/components/certviewer/content/certviewer.css", + "toolkit/components/certviewer/content/components/error-section.css", "toolkit/components/certviewer/content/components/info-group.css", - "toolkit/components/certviewer/content/components/info-item.css", - "toolkit/components/certviewer/content/components/list-item.css", "toolkit/components/normandy/content/about-studies/about-studies.css", + "toolkit/components/printing/content/print.css", "toolkit/components/printing/content/printPagination.css", - "toolkit/components/resistfingerprinting/content/usercharacteristics.css", - "toolkit/components/satchel/megalist/content/components/login-form/login-form.css", + "toolkit/components/printing/content/printPreview.css", + "toolkit/components/printing/content/toggle-group.css", + "toolkit/components/reader/moz-slider.css", + "toolkit/components/resistfingerprinting/content/letterboxing.css", + "toolkit/components/satchel/megalist/content/components/login-line/login-line.css", "toolkit/components/satchel/megalist/content/components/password-card/password-card.css", "toolkit/components/satchel/megalist/content/megalist.css", "toolkit/components/translations/content/about-translations.css", + "toolkit/content/aboutGlean.css", "toolkit/content/aboutLogging/aboutLogging.css", "toolkit/content/aboutTelemetry.css", "toolkit/content/aboutwebrtc/aboutWebrtc.css", - "toolkit/content/widgets/datetimebox.css", - "toolkit/content/widgets/moz-box-common.css", + "toolkit/content/tests/widgets/videomask.css", + "toolkit/content/widgets/infobar.css", + "toolkit/content/widgets/moz-box-group/moz-box-group.css", "toolkit/content/widgets/moz-button/moz-button.css", - "toolkit/content/widgets/moz-card/moz-card.css", "toolkit/content/widgets/moz-input-color/moz-input-color.css", + "toolkit/content/widgets/moz-input-folder/moz-input-folder.css", "toolkit/content/widgets/moz-input-text/moz-input-text.css", + "toolkit/content/widgets/moz-message-bar/moz-message-bar.css", "toolkit/content/widgets/moz-page-nav/moz-page-nav-button.css", "toolkit/content/widgets/moz-page-nav/moz-page-nav.css", "toolkit/content/widgets/moz-promo/moz-promo.css", + "toolkit/content/widgets/moz-reorderable-list/moz-reorderable-list.css", "toolkit/content/widgets/moz-select/moz-select.css", "toolkit/content/widgets/moz-toggle/moz-toggle.css", - "toolkit/content/widgets/moz-visual-picker/moz-visual-picker-item.css", "toolkit/content/widgets/panel-list/panel-item.css", "toolkit/content/widgets/panel-list/panel-list.css", "toolkit/content/xul.css", "toolkit/crashreporter/content/crashes.css", "toolkit/mozapps/extensions/content/aboutaddons.css", + "toolkit/mozapps/extensions/content/components/mlmodel-card-header-additions.css", "toolkit/mozapps/extensions/content/shortcuts.css", "toolkit/themes/linux/global/autocomplete.css", - "toolkit/themes/linux/global/global.css", - "toolkit/themes/linux/global/richlistbox.css", "toolkit/themes/linux/mozapps/update/updates.css", - "toolkit/themes/mobile/global/aboutMemory.css", - "toolkit/themes/mobile/global/aboutNetworking.css", - "toolkit/themes/mobile/global/aboutSupport.css", "toolkit/themes/osx/global/autocomplete.css", + "toolkit/themes/osx/global/button.css", "toolkit/themes/osx/global/global.css", - "toolkit/themes/osx/global/richlistbox.css", + "toolkit/themes/osx/global/in-content/common.css", "toolkit/themes/osx/global/wizard.css", + "toolkit/themes/osx/mozapps/handling/handling.css", "toolkit/themes/osx/mozapps/update/updates.css", + "toolkit/themes/shared/aboutHttpsOnlyError.css", + "toolkit/themes/shared/aboutLicense.css", "toolkit/themes/shared/aboutNetError.css", - "toolkit/themes/shared/aboutNetworking.css", "toolkit/themes/shared/aboutReader.css", "toolkit/themes/shared/aboutServiceWorkers.css", + "toolkit/themes/shared/aboutSupport.css", "toolkit/themes/shared/alert.css", + "toolkit/themes/shared/appPicker.css", + "toolkit/themes/shared/checkbox.css", "toolkit/themes/shared/close-icon.css", + "toolkit/themes/shared/commonDialog.css", "toolkit/themes/shared/datetimeinputpickers.css", "toolkit/themes/shared/design-system/storybook/tokens-table.css", "toolkit/themes/shared/dirListing/dirListing.css", + "toolkit/themes/shared/downloads/unknownContentType.css", "toolkit/themes/shared/error-pages.css", "toolkit/themes/shared/findbar.css", "toolkit/themes/shared/global-shared.css", "toolkit/themes/shared/in-content/common-shared.css", "toolkit/themes/shared/in-content/info-pages.css", - "toolkit/themes/shared/media/pipToggle.css", - "toolkit/themes/shared/media/videocontrols.css", "toolkit/themes/shared/menu.css", "toolkit/themes/shared/menulist.css", "toolkit/themes/shared/narrate.css", + "toolkit/themes/shared/offlineSupportPages.css", "toolkit/themes/shared/pictureinpicture/player.css", + "toolkit/themes/shared/pictureinpicture/texttracks.css", "toolkit/themes/shared/popup.css", + "toolkit/themes/shared/popupnotification.css", + "toolkit/themes/shared/profileDowngrade.css", + "toolkit/themes/shared/radio.css", "toolkit/themes/shared/splitter.css", - "toolkit/themes/shared/tabbox.css", "toolkit/themes/shared/toolbar.css", "toolkit/themes/shared/toolbarbutton.css", "toolkit/themes/shared/tree/tree.css", "toolkit/themes/windows/global/autocomplete.css", - "toolkit/themes/windows/global/button.css", "toolkit/themes/windows/global/global.css", - "toolkit/themes/windows/global/printPageSetup.css", - "toolkit/themes/windows/global/richlistbox.css", "toolkit/themes/windows/global/wizard.css", + "toolkit/themes/windows/mozapps/handling/handling.css", "toolkit/themes/windows/mozapps/update/updates.css", + "tools/tryselect/selectors/chooser/static/style.css", ], }, { - // stylelint fixes for this rule will be addressed in Bug 1992411 - name: "rollout-use-font-size-tokens", + name: "rollout-use-space-tokens", rules: { - "stylelint-plugin-mozilla/use-font-size-tokens": null, + "stylelint-plugin-mozilla/use-space-tokens": null, }, files: [ "browser/base/content/aboutDialog.css", + "browser/base/content/pageinfo/pageInfo.css", + "browser/base/content/sanitizeDialog.css", + "browser/branding/aurora/content/aboutDialog.css", "browser/branding/aurora/stubinstaller/installing_page.css", "browser/branding/aurora/stubinstaller/profile_cleanup_page.css", + "browser/branding/nightly/content/aboutDialog.css", "browser/branding/nightly/stubinstaller/installing_page.css", "browser/branding/nightly/stubinstaller/profile_cleanup_page.css", + "browser/branding/official/content/aboutDialog.css", "browser/branding/official/stubinstaller/installing_page.css", "browser/branding/official/stubinstaller/profile_cleanup_page.css", + "browser/branding/unofficial/content/aboutDialog.css", "browser/branding/unofficial/stubinstaller/installing_page.css", "browser/branding/unofficial/stubinstaller/profile_cleanup_page.css", + "browser/components/aboutlogins/content/aboutLogins.css", "browser/components/aboutlogins/content/aboutLoginsImportReport.css", "browser/components/aboutlogins/content/components/confirmation-dialog.css", + "browser/components/aboutlogins/content/components/fxaccounts-button.css", "browser/components/aboutlogins/content/components/generic-dialog.css", + "browser/components/aboutlogins/content/components/import-error-dialog.css", + "browser/components/aboutlogins/content/components/import-summary-dialog.css", "browser/components/aboutlogins/content/components/login-alert.css", + "browser/components/aboutlogins/content/components/login-command-button.css", + "browser/components/aboutlogins/content/components/login-filter.css", "browser/components/aboutlogins/content/components/login-item.css", "browser/components/aboutlogins/content/components/login-list-lit-item.css", "browser/components/aboutlogins/content/components/login-list.css", "browser/components/aboutlogins/content/components/login-message-popup.css", + "browser/components/aboutlogins/content/components/login-timeline.css", + "browser/components/aboutlogins/content/components/menu-button.css", "browser/components/aboutlogins/content/components/remove-logins-dialog.css", "browser/components/aboutwelcome/content-src/aboutwelcome.scss", "browser/components/asrouter/content-src/components/ASRouterAdmin/ASRouterAdmin.scss", "browser/components/asrouter/content-src/styles/_feature-callout.scss", + "browser/components/backup/content/backup-settings.css", "browser/components/backup/content/password-rules-tooltip.css", "browser/components/backup/content/password-validation-inputs.css", "browser/components/backup/content/turn-on-scheduled-backups.css", - "browser/components/firefoxview/card-container.css", - "browser/components/firefoxview/history.css", + "browser/components/contextualidentity/content/usercontext.css", + "browser/components/downloads/content/downloads.css", + "browser/components/enterprisepolicies/content/aboutPolicies.css", + "browser/components/firefoxview/card-container.css", + "browser/components/firefoxview/firefoxview.css", + "browser/components/firefoxview/fxview-empty-state.css", + "browser/components/firefoxview/fxview-tab-row.css", + "browser/components/firefoxview/history.css", + "browser/components/firefoxview/opentabs-tab-row.css", + "browser/components/firefoxview/view-opentabs.css", "browser/components/firefoxview/view-syncedtabs.css", "browser/components/genai/chat.css", "browser/components/genai/content/link-preview-card.css", - "browser/components/genai/content/smart-assist.css", - "browser/components/messagepreview/messagepreview.css", + "browser/components/ipprotection/content/ipprotection-content.css", + "browser/components/ipprotection/content/ipprotection-status-card.css", + "browser/components/places/metadataViewer/interactionsViewer.css", + "browser/components/preferences/dialogs/clearSiteData.css", + "browser/components/preferences/dialogs/sitePermissions.css", + "browser/components/preferences/widgets/security-privacy/security-privacy-card/security-privacy-card.css", + "browser/components/profiles/content/edit-profile-card.css", + "browser/components/profiles/content/profile-avatar-selector.css", + "browser/components/profiles/content/profile-selector.css", + "browser/components/profiles/content/profiles-pages.css", "browser/components/protections/content/protections.css", "browser/components/screenshots/overlay/overlay.css", + "browser/components/screenshots/screenshots-buttons.css", + "browser/components/screenshots/screenshots-preview.css", + "browser/components/search/content/addEngine.css", "browser/components/search/content/contentSearchUI.css", "browser/components/search/test/browser/telemetry/serp.css", + "browser/components/security/unexpectedScriptLoad.css", + "browser/components/sidebar/sidebar-main.css", "browser/components/sidebar/sidebar-panel-header.css", + "browser/components/sidebar/sidebar-tab-row.css", + "browser/components/sidebar/sidebar.css", + "browser/components/tabunloader/content/aboutUnloads.css", + "browser/components/textrecognition/textrecognition.css", "browser/components/urlbar/tests/browser/dynamicResult0.css", "browser/components/urlbar/tests/browser/dynamicResult1.css", + "browser/components/webrtc/content/webrtc-preview/webrtc-preview.css", + "browser/extensions/formautofill/content/formautofill.css", + "browser/extensions/formautofill/content/manageDialog.css", "browser/extensions/formautofill/skin/shared/editAddress.css", "browser/extensions/formautofill/skin/shared/editDialog-shared.css", + "browser/extensions/newtab/content-src/components/Base/_Base.scss", "browser/extensions/newtab/content-src/components/Card/_Card.scss", "browser/extensions/newtab/content-src/components/CollapsibleSection/_CollapsibleSection.scss", + "browser/extensions/newtab/content-src/components/ConfirmDialog/_ConfirmDialog.scss", "browser/extensions/newtab/content-src/components/ContextMenu/_ContextMenu.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamBase/_DiscoveryStreamBase.scss", + "browser/extensions/newtab/content-src/components/CustomizeMenu/_CustomizeMenu.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBanner/_AdBanner.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBannerContextMenu/AdBannerContextMenu.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSCard/_DSCard.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSMessage/_DSMessage.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PromoCard/_PromoCard.scss", - "browser/extensions/newtab/content-src/components/ErrorBoundary/_ErrorBoundary.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSEmptyState/_DSEmptyState.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSImage/_DSImage.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSThumbsUpDownButtons/_DSThumbsUpDownButtons.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_DownloadMobilePromoHighlight.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FeatureHighlight.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FollowSectionButtonHighlight.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_WallpaperFeatureHighlight.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/InterestPicker/_InterestPicker.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/SectionContextMenu/_SectionContextMenu.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopSites/_TopSites.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", + "browser/extensions/newtab/content-src/components/ModalOverlay/_ModalOverlay.scss", + "browser/extensions/newtab/content-src/components/Notifications/_Notifications.scss", + "browser/extensions/newtab/content-src/components/Search/_Search.scss", "browser/extensions/newtab/content-src/components/TopSites/_TopSites.scss", + "browser/extensions/newtab/content-src/components/WallpaperCategories/_WallpaperCategories.scss", "browser/extensions/newtab/content-src/components/Weather/_Weather.scss", - "browser/extensions/newtab/content-src/components/Widgets/FocusTimer/_FocusTimer.scss", - "browser/extensions/newtab/content-src/styles/_mixins.scss", + "browser/extensions/newtab/content-src/components/Widgets/Lists/_Lists.scss", + "browser/extensions/newtab/content-src/styles/_variables.scss", "browser/extensions/webcompat/about-compat/aboutCompat.css", "browser/themes/linux/browser.css", + "browser/themes/linux/customizableui/panelUI.css", + "browser/themes/linux/sanitizeDialog.css", "browser/themes/osx/browser.css", "browser/themes/osx/customizableui/panelUI.css", + "browser/themes/osx/places/organizer.css", + "browser/themes/osx/sanitizeDialog.css", "browser/themes/shared/UITour.css", + "browser/themes/shared/aboutRestartRequired.css", + "browser/themes/shared/aboutSessionRestore.css", + "browser/themes/shared/aboutTabCrashed.css", + "browser/themes/shared/aboutWelcomeBack.css", + "browser/themes/shared/addon-notification.css", + "browser/themes/shared/addons/unified-extensions.css", "browser/themes/shared/autocomplete.css", + "browser/themes/shared/blockedSite.css", "browser/themes/shared/browser-shared.css", + "browser/themes/shared/contextmenu.css", "browser/themes/shared/controlcenter/panel.css", "browser/themes/shared/customizableui/customizeMode.css", "browser/themes/shared/customizableui/panelUI-shared.css", "browser/themes/shared/downloads/allDownloadsView.inc.css", + "browser/themes/shared/downloads/contentAreaDownloadsView.css", + "browser/themes/shared/downloads/download-blockedStates.css", "browser/themes/shared/downloads/downloads.inc.css", + "browser/themes/shared/downloads/indicator.css", + "browser/themes/shared/downloads/progressmeter.css", "browser/themes/shared/formautofill-notification.css", + "browser/themes/shared/identity-block/identity-block.css", "browser/themes/shared/identity-credential-notification.css", + "browser/themes/shared/migration/migration-dialog-window.css", "browser/themes/shared/migration/migration-wizard.css", "browser/themes/shared/notification-icons.css", + "browser/themes/shared/pageInfo.css", "browser/themes/shared/places/editBookmark.css", "browser/themes/shared/places/editBookmarkPanel.css", + "browser/themes/shared/places/organizer-shared.css", "browser/themes/shared/places/sidebar.css", + "browser/themes/shared/places/tree-icons.css", + "browser/themes/shared/preferences/applications.css", + "browser/themes/shared/preferences/containers-dialog.css", + "browser/themes/shared/preferences/containers.css", + "browser/themes/shared/preferences/dialog.css", "browser/themes/shared/preferences/fxaPairDevice.css", "browser/themes/shared/preferences/preferences.css", "browser/themes/shared/preferences/privacy.css", + "browser/themes/shared/preferences/search.css", "browser/themes/shared/preferences/siteDataSettings.css", + "browser/themes/shared/preferences/translations.css", "browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css", + "browser/themes/shared/sanitizeDialog_v2.css", + "browser/themes/shared/search/searchbar.css", + "browser/themes/shared/setDesktopBackground.css", "browser/themes/shared/sidebar.css", "browser/themes/shared/syncedtabs/sidebar.css", + "browser/themes/shared/tab-list-tree.css", + "browser/themes/shared/tabbrowser/content-area.css", + "browser/themes/shared/tabbrowser/ctrlTab.css", "browser/themes/shared/tabbrowser/fullscreen-and-pointerlock.css", "browser/themes/shared/tabbrowser/tabs.css", + "browser/themes/shared/toolbarbutton-icons.css", + "browser/themes/shared/toolbarbuttons.css", "browser/themes/shared/translations/panel.css", "browser/themes/shared/urlbar-dynamic-results.css", "browser/themes/shared/urlbar-searchbar.css", "browser/themes/shared/urlbarView.css", + "browser/themes/shared/webRTC-indicator.css", "browser/themes/windows/browser.css", + "browser/themes/windows/customizableui/panelUI.css", + "browser/themes/windows/places/organizer.css", + "browser/themes/windows/sanitizeDialog.css", + "browser/tools/mozscreenshots/mozscreenshots/extension/lib/mozscreenshots-style.css", + "devtools/client/aboutdebugging/src/base.css", + "devtools/client/aboutdebugging/src/components/App.css", + "devtools/client/aboutdebugging/src/components/ProfilerDialog.css", + "devtools/client/aboutdebugging/src/components/RuntimeActions.css", + "devtools/client/aboutdebugging/src/components/RuntimeInfo.css", + "devtools/client/aboutdebugging/src/components/connect/ConnectPage.css", + "devtools/client/aboutdebugging/src/components/connect/ConnectSection.css", + "devtools/client/aboutdebugging/src/components/connect/ConnectSteps.css", + "devtools/client/aboutdebugging/src/components/connect/NetworkLocationsForm.css", + "devtools/client/aboutdebugging/src/components/connect/NetworkLocationsList.css", + "devtools/client/aboutdebugging/src/components/debugtarget/DebugTargetItem.css", + "devtools/client/aboutdebugging/src/components/debugtarget/DebugTargetList.css", + "devtools/client/aboutdebugging/src/components/debugtarget/DebugTargetPane.css", + "devtools/client/aboutdebugging/src/components/debugtarget/ExtensionDetail.css", + "devtools/client/aboutdebugging/src/components/debugtarget/FieldPair.css", + "devtools/client/aboutdebugging/src/components/debugtarget/ServiceWorkerAction.css", + "devtools/client/aboutdebugging/src/components/shared/IconLabel.css", + "devtools/client/aboutdebugging/src/components/shared/Message.css", + "devtools/client/aboutdebugging/src/components/sidebar/Sidebar.css", + "devtools/client/aboutdebugging/src/components/sidebar/SidebarFixedItem.css", + "devtools/client/aboutdebugging/src/components/sidebar/SidebarItem.css", + "devtools/client/aboutdebugging/src/components/sidebar/SidebarRuntimeItem.css", "dom/crypto/test/test_WebCrypto.css", + "dom/events/test/pointerevents/wpt/pointerevent_styles.css", + "dom/tests/mochitest/webcomponents/inert_style.css", + "dom/xml/resources/XMLPrettyPrint.css", "dom/xml/test/old/books/classic.css", "dom/xml/test/old/books/common.css", "dom/xml/test/old/books/list.css", + "dom/xml/test/old/xlink/link.css", + "dom/xml/test/old/xmlbase/xmlbase.css", + "gfx/layers/apz/test/mochitest/helper_subframe_style.css", "layout/generic/test/frame_selection_underline.css", + "layout/inspector/tests/chrome/test_bug727834.css", "layout/mathml/mathml.css", + "layout/style/res/accessiblecaret.css", + "layout/style/res/forms.css", "layout/style/res/html.css", + "layout/style/res/quirk.css", "layout/style/res/ua.css", + "layout/style/res/viewsource.css", + "security/manager/pki/resources/content/clientauthask.css", + "security/manager/pki/resources/content/deletecert.css", + "security/manager/pki/resources/content/exceptionDialog.css", "testing/mochitest/static/harness.css", "testing/mozbase/mozlog/mozlog/formatters/html/style.css", "testing/talos/talos/tests/scroll/reader.css", + "toolkit/components/aboutcheckerboard/content/aboutCheckerboard.css", + "toolkit/components/aboutconfig/content/aboutconfig.css", "toolkit/components/aboutinference/content/aboutInference.css", + "toolkit/components/aboutinference/content/model-files-view.css", "toolkit/components/aboutmemory/content/aboutMemory.css", "toolkit/components/aboutprocesses/content/aboutProcesses.css", "toolkit/components/aboutthirdparty/content/aboutThirdParty.css", "toolkit/components/aboutwebauthn/content/aboutWebauthn.css", + "toolkit/components/aboutwindowsmessages/content/aboutWindowsMessages.css", + "toolkit/components/certviewer/content/components/about-certificate-section.css", "toolkit/components/certviewer/content/components/certificate-section.css", + "toolkit/components/certviewer/content/components/error-section.css", "toolkit/components/certviewer/content/components/info-group.css", "toolkit/components/certviewer/content/components/info-item.css", "toolkit/components/certviewer/content/components/list-item.css", "toolkit/components/normandy/content/about-studies/about-studies.css", + "toolkit/components/normandy/skin/shared/Heartbeat.css", + "toolkit/components/printing/content/print.css", + "toolkit/components/printing/content/printPagination.css", + "toolkit/components/printing/content/printPreview.css", "toolkit/components/printing/content/simplifyMode.css", + "toolkit/components/printing/content/toggle-group.css", + "toolkit/components/prompts/content/commonDialog.css", + "toolkit/components/prompts/content/selectDialog.css", "toolkit/components/satchel/megalist/content/components/login-line/login-line.css", + "toolkit/components/translations/content/about-translations.css", + "toolkit/content/aboutGlean.css", "toolkit/content/aboutLogging/aboutLogging.css", "toolkit/content/aboutMozilla.css", "toolkit/content/aboutTelemetry.css", + "toolkit/content/aboutUrlClassifier.css", "toolkit/content/aboutwebrtc/aboutWebrtc.css", + "toolkit/content/buildconfig.css", + "toolkit/content/resetProfile.css", + "toolkit/content/widgets/infobar.css", + "toolkit/content/widgets/moz-box-item/moz-box-item.css", + "toolkit/content/widgets/moz-button/moz-button.css", + "toolkit/content/widgets/moz-five-star/moz-five-star.css", + "toolkit/content/widgets/moz-input-common.css", "toolkit/content/widgets/moz-input-text/moz-input-text.css", + "toolkit/content/widgets/moz-message-bar/moz-message-bar.css", + "toolkit/content/widgets/moz-page-nav/moz-page-nav.css", + "toolkit/content/widgets/moz-reorderable-list/moz-reorderable-list.css", + "toolkit/content/widgets/moz-select/moz-select.css", + "toolkit/content/widgets/moz-toggle/moz-toggle.css", + "toolkit/content/widgets/moz-visual-picker/moz-visual-picker-item.css", + "toolkit/content/widgets/panel-list/panel-item.css", + "toolkit/content/widgets/panel-list/panel-list.css", + "toolkit/content/xul.css", + "toolkit/crashreporter/content/crashes.css", "toolkit/mozapps/extensions/content/aboutaddons.css", + "toolkit/mozapps/extensions/content/shortcuts.css", + "toolkit/mozapps/handling/content/handler.css", + "toolkit/themes/linux/global/autocomplete.css", + "toolkit/themes/linux/global/global.css", + "toolkit/themes/linux/global/richlistbox.css", + "toolkit/themes/linux/mozapps/update/updates.css", "toolkit/themes/mobile/global/aboutMemory.css", + "toolkit/themes/mobile/global/aboutNetworking.css", + "toolkit/themes/mobile/global/aboutSupport.css", + "toolkit/themes/osx/global/autocomplete.css", + "toolkit/themes/osx/global/button.css", + "toolkit/themes/osx/global/dialog.css", + "toolkit/themes/osx/global/global.css", + "toolkit/themes/osx/global/in-content/common.css", + "toolkit/themes/osx/global/richlistbox.css", + "toolkit/themes/osx/global/wizard.css", + "toolkit/themes/osx/mozapps/handling/handling.css", + "toolkit/themes/osx/mozapps/update/updates.css", + "toolkit/themes/shared/aboutCache.css", "toolkit/themes/shared/aboutHttpsOnlyError.css", + "toolkit/themes/shared/aboutLicense.css", "toolkit/themes/shared/aboutNetError.css", + "toolkit/themes/shared/aboutNetworking.css", + "toolkit/themes/shared/aboutProfiles.css", "toolkit/themes/shared/aboutReader.css", + "toolkit/themes/shared/aboutServiceWorkers.css", + "toolkit/themes/shared/aboutSupport.css", "toolkit/themes/shared/alert.css", + "toolkit/themes/shared/appPicker.css", + "toolkit/themes/shared/arrowscrollbox.css", + "toolkit/themes/shared/checkbox.css", + "toolkit/themes/shared/close-icon.css", + "toolkit/themes/shared/commonDialog.css", "toolkit/themes/shared/datetimeinputpickers.css", + "toolkit/themes/shared/design-system/storybook/tokens-table.css", "toolkit/themes/shared/dirListing/dirListing.css", + "toolkit/themes/shared/downloads/unknownContentType.css", "toolkit/themes/shared/error-pages.css", + "toolkit/themes/shared/findbar.css", + "toolkit/themes/shared/global-shared.css", "toolkit/themes/shared/in-content/common-shared.css", - "toolkit/themes/shared/narrate.css", + "toolkit/themes/shared/in-content/info-pages.css", + "toolkit/themes/shared/menu.css", + "toolkit/themes/shared/menulist.css", "toolkit/themes/shared/offlineSupportPages.css", "toolkit/themes/shared/pictureinpicture/player.css", "toolkit/themes/shared/pictureinpicture/texttracks.css", + "toolkit/themes/shared/popup.css", + "toolkit/themes/shared/popupnotification.css", + "toolkit/themes/shared/profileSelection.css", + "toolkit/themes/shared/radio.css", + "toolkit/themes/shared/tabbox.css", + "toolkit/themes/shared/toolbar.css", "toolkit/themes/shared/toolbarbutton.css", + "toolkit/themes/shared/tree/tree.css", + "toolkit/themes/windows/global/autocomplete.css", + "toolkit/themes/windows/global/button.css", + "toolkit/themes/windows/global/dialog.css", + "toolkit/themes/windows/global/global.css", + "toolkit/themes/windows/global/printPageSetup.css", + "toolkit/themes/windows/global/richlistbox.css", + "toolkit/themes/windows/global/wizard.css", + "toolkit/themes/windows/mozapps/handling/handling.css", + "toolkit/themes/windows/mozapps/update/updates.css", "tools/tryselect/selectors/chooser/static/style.css", ], }, { - // stylelint fixes for this rule will be addressed in Bug 1992736 - name: "rollout-use-font-weight-tokens", + name: "rollout-use-font-size-tokens", rules: { - "stylelint-plugin-mozilla/use-font-weight-tokens": null, + "stylelint-plugin-mozilla/use-font-size-tokens": null, }, files: [ "browser/base/content/aboutDialog.css", - "browser/base/content/safeMode.css", + "browser/branding/aurora/stubinstaller/installing_page.css", "browser/branding/aurora/stubinstaller/profile_cleanup_page.css", + "browser/branding/nightly/stubinstaller/installing_page.css", "browser/branding/nightly/stubinstaller/profile_cleanup_page.css", "browser/branding/official/stubinstaller/installing_page.css", "browser/branding/official/stubinstaller/profile_cleanup_page.css", + "browser/branding/unofficial/stubinstaller/installing_page.css", "browser/branding/unofficial/stubinstaller/profile_cleanup_page.css", - "browser/components/aboutlogins/content/aboutLogins.css", "browser/components/aboutlogins/content/aboutLoginsImportReport.css", "browser/components/aboutlogins/content/components/confirmation-dialog.css", - "browser/components/aboutlogins/content/components/import-error-dialog.css", - "browser/components/aboutlogins/content/components/import-summary-dialog.css", + "browser/components/aboutlogins/content/components/generic-dialog.css", "browser/components/aboutlogins/content/components/login-alert.css", + "browser/components/aboutlogins/content/components/login-item.css", "browser/components/aboutlogins/content/components/login-list-lit-item.css", + "browser/components/aboutlogins/content/components/login-list.css", + "browser/components/aboutlogins/content/components/login-message-popup.css", "browser/components/aboutlogins/content/components/remove-logins-dialog.css", "browser/components/aboutwelcome/content-src/aboutwelcome.scss", "browser/components/asrouter/content-src/components/ASRouterAdmin/ASRouterAdmin.scss", "browser/components/asrouter/content-src/styles/_feature-callout.scss", "browser/components/backup/content/password-rules-tooltip.css", "browser/components/backup/content/password-validation-inputs.css", - "browser/components/backup/content/restore-from-backup.css", "browser/components/backup/content/turn-on-scheduled-backups.css", "browser/components/firefoxview/card-container.css", - "browser/components/firefoxview/fxview-tab-row.css", "browser/components/firefoxview/history.css", "browser/components/firefoxview/view-syncedtabs.css", + "browser/components/genai/chat.css", + "browser/components/genai/content/link-preview-card.css", "browser/components/genai/content/smart-assist.css", + "browser/components/messagepreview/messagepreview.css", "browser/components/protections/content/protections.css", + "browser/components/screenshots/overlay/overlay.css", "browser/components/search/content/contentSearchUI.css", - "browser/components/tabunloader/content/aboutUnloads.css", - "browser/components/textrecognition/textrecognition.css", - "browser/extensions/webcompat/about-compat/aboutCompat.css", - "browser/themes/linux/browser.css", - "browser/themes/shared/UITour.css", - "browser/themes/shared/aboutTabCrashed.css", - "browser/themes/shared/addon-notification.css", - "browser/themes/shared/addons/extension-controlled.css", - "browser/themes/shared/autocomplete.css", - "browser/themes/shared/blockedSite.css", - "browser/themes/shared/browser-shared.css", - "browser/themes/shared/controlcenter/panel.css", - "browser/themes/shared/customizableui/customizeMode.css", + "browser/components/search/test/browser/telemetry/serp.css", + "browser/components/sidebar/sidebar-panel-header.css", + "browser/components/urlbar/tests/browser/dynamicResult0.css", + "browser/components/urlbar/tests/browser/dynamicResult1.css", + "browser/extensions/formautofill/skin/shared/editAddress.css", + "browser/extensions/formautofill/skin/shared/editDialog-shared.css", + "browser/extensions/newtab/content-src/components/Card/_Card.scss", + "browser/extensions/newtab/content-src/components/CollapsibleSection/_CollapsibleSection.scss", + "browser/extensions/newtab/content-src/components/ContextMenu/_ContextMenu.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamBase/_DiscoveryStreamBase.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSCard/_DSCard.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSMessage/_DSMessage.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PromoCard/_PromoCard.scss", + "browser/extensions/newtab/content-src/components/ErrorBoundary/_ErrorBoundary.scss", + "browser/extensions/newtab/content-src/components/TopSites/_TopSites.scss", + "browser/extensions/newtab/content-src/components/Weather/_Weather.scss", + "browser/extensions/newtab/content-src/components/Widgets/FocusTimer/_FocusTimer.scss", + "browser/extensions/newtab/content-src/styles/_mixins.scss", + "browser/extensions/webcompat/about-compat/aboutCompat.css", + "browser/themes/linux/browser.css", + "browser/themes/osx/browser.css", + "browser/themes/osx/customizableui/panelUI.css", + "browser/themes/shared/UITour.css", + "browser/themes/shared/autocomplete.css", + "browser/themes/shared/browser-shared.css", + "browser/themes/shared/controlcenter/panel.css", + "browser/themes/shared/customizableui/customizeMode.css", "browser/themes/shared/customizableui/panelUI-shared.css", + "browser/themes/shared/downloads/allDownloadsView.inc.css", + "browser/themes/shared/downloads/downloads.inc.css", + "browser/themes/shared/formautofill-notification.css", "browser/themes/shared/identity-credential-notification.css", "browser/themes/shared/migration/migration-wizard.css", - "browser/themes/shared/pageInfo.css", + "browser/themes/shared/notification-icons.css", + "browser/themes/shared/places/editBookmark.css", "browser/themes/shared/places/editBookmarkPanel.css", + "browser/themes/shared/places/sidebar.css", "browser/themes/shared/preferences/fxaPairDevice.css", "browser/themes/shared/preferences/preferences.css", "browser/themes/shared/preferences/privacy.css", "browser/themes/shared/preferences/siteDataSettings.css", "browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css", - "browser/themes/shared/search/searchbar.css", - "browser/themes/shared/setDesktopBackground.css", - "browser/themes/shared/tabbrowser/ctrlTab.css", + "browser/themes/shared/sidebar.css", + "browser/themes/shared/syncedtabs/sidebar.css", "browser/themes/shared/tabbrowser/fullscreen-and-pointerlock.css", "browser/themes/shared/tabbrowser/tabs.css", "browser/themes/shared/translations/panel.css", "browser/themes/shared/urlbar-dynamic-results.css", "browser/themes/shared/urlbar-searchbar.css", + "browser/themes/shared/urlbarView.css", "browser/themes/windows/browser.css", "dom/crypto/test/test_WebCrypto.css", - "dom/events/test/pointerevents/wpt/pointerevent_styles.css", "dom/xml/test/old/books/classic.css", "dom/xml/test/old/books/common.css", "dom/xml/test/old/books/list.css", - "dom/xml/test/old/xmlbase/xmlbase.css", + "layout/generic/test/frame_selection_underline.css", "layout/mathml/mathml.css", - "layout/style/res/forms.css", "layout/style/res/html.css", "layout/style/res/ua.css", - "layout/style/res/viewsource.css", - "security/manager/pki/resources/content/clientauthask.css", - "security/manager/pki/resources/content/exceptionDialog.css", + "testing/mochitest/static/harness.css", "testing/mozbase/mozlog/mozlog/formatters/html/style.css", - "toolkit/components/aboutconfig/content/aboutconfig.css", + "testing/talos/talos/tests/scroll/reader.css", "toolkit/components/aboutinference/content/aboutInference.css", "toolkit/components/aboutmemory/content/aboutMemory.css", "toolkit/components/aboutprocesses/content/aboutProcesses.css", + "toolkit/components/aboutthirdparty/content/aboutThirdParty.css", "toolkit/components/aboutwebauthn/content/aboutWebauthn.css", - "toolkit/components/aboutwindowsmessages/content/aboutWindowsMessages.css", + "toolkit/components/certviewer/content/components/certificate-section.css", "toolkit/components/certviewer/content/components/info-group.css", "toolkit/components/certviewer/content/components/info-item.css", + "toolkit/components/certviewer/content/components/list-item.css", "toolkit/components/normandy/content/about-studies/about-studies.css", + "toolkit/components/printing/content/simplifyMode.css", + "toolkit/components/satchel/megalist/content/components/login-line/login-line.css", "toolkit/content/aboutLogging/aboutLogging.css", + "toolkit/content/aboutMozilla.css", "toolkit/content/aboutTelemetry.css", - "toolkit/content/aboutUrlClassifier.css", "toolkit/content/aboutwebrtc/aboutWebrtc.css", - "toolkit/content/resetProfile.css", - "toolkit/content/widgets/moz-box-common.css", - "toolkit/content/widgets/moz-message-bar/moz-message-bar.css", - "toolkit/content/widgets/moz-page-nav/moz-page-nav-button.css", + "toolkit/content/widgets/moz-input-text/moz-input-text.css", "toolkit/mozapps/extensions/content/aboutaddons.css", - "toolkit/mozapps/extensions/content/shortcuts.css", - "toolkit/mozapps/handling/content/handler.css", - "toolkit/themes/linux/mozapps/update/updates.css", "toolkit/themes/mobile/global/aboutMemory.css", - "toolkit/themes/mobile/global/aboutNetworking.css", - "toolkit/themes/mobile/global/aboutSupport.css", - "toolkit/themes/osx/global/wizard.css", - "toolkit/themes/osx/mozapps/handling/handling.css", - "toolkit/themes/osx/mozapps/update/updates.css", "toolkit/themes/shared/aboutHttpsOnlyError.css", "toolkit/themes/shared/aboutNetError.css", "toolkit/themes/shared/aboutReader.css", - "toolkit/themes/shared/aboutSupport.css", "toolkit/themes/shared/alert.css", - "toolkit/themes/shared/appPicker.css", - "toolkit/themes/shared/commonDialog.css", "toolkit/themes/shared/datetimeinputpickers.css", "toolkit/themes/shared/dirListing/dirListing.css", - "toolkit/themes/shared/downloads/unknownContentType.css", - "toolkit/themes/shared/findbar.css", - "toolkit/themes/shared/global-shared.css", + "toolkit/themes/shared/error-pages.css", "toolkit/themes/shared/in-content/common-shared.css", - "toolkit/themes/shared/in-content/info-pages.css", - "toolkit/themes/shared/menu.css", - "toolkit/themes/shared/menulist.css", + "toolkit/themes/shared/narrate.css", + "toolkit/themes/shared/offlineSupportPages.css", + "toolkit/themes/shared/pictureinpicture/player.css", + "toolkit/themes/shared/pictureinpicture/texttracks.css", "toolkit/themes/shared/toolbarbutton.css", - "toolkit/themes/windows/global/global.css", - "toolkit/themes/windows/global/wizard.css", - "toolkit/themes/windows/mozapps/handling/handling.css", - "toolkit/themes/windows/mozapps/update/updates.css", + "tools/tryselect/selectors/chooser/static/style.css", ], }, { - // stylelint fixes for this rule will be addressed in Bug 1993108 - name: "rollout-use-space-tokens", + name: "rollout-use-font-weight-tokens", rules: { - "stylelint-plugin-mozilla/use-space-tokens": null, + "stylelint-plugin-mozilla/use-font-weight-tokens": null, }, files: [ "browser/base/content/aboutDialog.css", - "browser/base/content/pageinfo/pageInfo.css", - "browser/base/content/sanitizeDialog.css", - "browser/branding/aurora/content/aboutDialog.css", - "browser/branding/aurora/stubinstaller/installing_page.css", "browser/branding/aurora/stubinstaller/profile_cleanup_page.css", - "browser/branding/nightly/content/aboutDialog.css", - "browser/branding/nightly/stubinstaller/installing_page.css", "browser/branding/nightly/stubinstaller/profile_cleanup_page.css", - "browser/branding/official/content/aboutDialog.css", "browser/branding/official/stubinstaller/installing_page.css", "browser/branding/official/stubinstaller/profile_cleanup_page.css", - "browser/branding/unofficial/content/aboutDialog.css", - "browser/branding/unofficial/stubinstaller/installing_page.css", "browser/branding/unofficial/stubinstaller/profile_cleanup_page.css", - "browser/components/aboutlogins/content/aboutLogins.css", - "browser/components/aboutlogins/content/aboutLoginsImportReport.css", "browser/components/aboutlogins/content/components/confirmation-dialog.css", - "browser/components/aboutlogins/content/components/fxaccounts-button.css", - "browser/components/aboutlogins/content/components/generic-dialog.css", - "browser/components/aboutlogins/content/components/import-error-dialog.css", - "browser/components/aboutlogins/content/components/import-summary-dialog.css", "browser/components/aboutlogins/content/components/login-alert.css", - "browser/components/aboutlogins/content/components/login-command-button.css", - "browser/components/aboutlogins/content/components/login-filter.css", - "browser/components/aboutlogins/content/components/login-intro.css", - "browser/components/aboutlogins/content/components/login-item.css", - "browser/components/aboutlogins/content/components/login-list-lit-item.css", - "browser/components/aboutlogins/content/components/login-list.css", - "browser/components/aboutlogins/content/components/login-message-popup.css", - "browser/components/aboutlogins/content/components/login-timeline.css", - "browser/components/aboutlogins/content/components/menu-button.css", - "browser/components/aboutlogins/content/components/remove-logins-dialog.css", "browser/components/aboutwelcome/content-src/aboutwelcome.scss", "browser/components/asrouter/content-src/components/ASRouterAdmin/ASRouterAdmin.scss", - "browser/components/asrouter/content-src/styles/_feature-callout.scss", - "browser/components/backup/content/backup-settings.css", - "browser/components/backup/content/password-rules-tooltip.css", - "browser/components/backup/content/password-validation-inputs.css", + "browser/components/backup/content/restore-from-backup.css", "browser/components/backup/content/turn-on-scheduled-backups.css", - "browser/components/contextualidentity/content/usercontext.css", - "browser/components/downloads/content/downloads.css", - "browser/components/enterprisepolicies/content/aboutPolicies.css", - "browser/components/firefoxview/card-container.css", - "browser/components/firefoxview/firefoxview.css", - "browser/components/firefoxview/fxview-empty-state.css", "browser/components/firefoxview/fxview-tab-row.css", - "browser/components/firefoxview/history.css", - "browser/components/firefoxview/opentabs-tab-row.css", - "browser/components/firefoxview/view-opentabs.css", - "browser/components/firefoxview/view-syncedtabs.css", - "browser/components/genai/chat.css", + "browser/themes/shared/addon-notification.css", + "browser/themes/shared/browser-shared.css", + "browser/themes/shared/customizableui/panelUI-shared.css", + "browser/themes/shared/migration/migration-wizard.css", + "browser/themes/shared/preferences/preferences.css", + "browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css", + "browser/themes/shared/search/searchbar.css", + "browser/themes/shared/urlbar-dynamic-results.css", + "dom/crypto/test/test_WebCrypto.css", + "dom/events/test/pointerevents/wpt/pointerevent_styles.css", + "dom/xml/test/old/books/classic.css", + "dom/xml/test/old/books/common.css", + "dom/xml/test/old/books/list.css", + "dom/xml/test/old/xmlbase/xmlbase.css", + "layout/mathml/mathml.css", + "layout/style/res/forms.css", + "layout/style/res/html.css", + "layout/style/res/ua.css", + "layout/style/res/viewsource.css", + "testing/mozbase/mozlog/mozlog/formatters/html/style.css", + "toolkit/components/aboutmemory/content/aboutMemory.css", + "toolkit/components/aboutprocesses/content/aboutProcesses.css", + "toolkit/components/aboutwindowsmessages/content/aboutWindowsMessages.css", + "toolkit/content/widgets/moz-box-common.css", + "toolkit/content/widgets/moz-page-nav/moz-page-nav-button.css", + "toolkit/mozapps/extensions/content/aboutaddons.css", + "toolkit/themes/mobile/global/aboutMemory.css", + "toolkit/themes/shared/aboutNetError.css", + "toolkit/themes/shared/aboutReader.css", + "toolkit/themes/shared/dirListing/dirListing.css", + "toolkit/themes/shared/in-content/common-shared.css", + ], + }, + { + name: "rollout-use-border-radius-tokens", + rules: { + "stylelint-plugin-mozilla/use-border-radius-tokens": null, + }, + files: [ + "browser/base/content/sanitizeDialog.css", + "browser/components/asrouter/content-src/components/ASRouterAdmin/ASRouterAdmin.scss", + "browser/components/asrouter/content-src/styles/_feature-callout.scss", + "browser/components/contextualidentity/content/usercontext.css", "browser/components/genai/content/link-preview-card.css", - "browser/components/ipprotection/content/ipprotection-content.css", - "browser/components/ipprotection/content/ipprotection-header.css", - "browser/components/ipprotection/content/ipprotection-status-card.css", - "browser/components/places/metadataViewer/interactionsViewer.css", "browser/components/preferences/dialogs/clearSiteData.css", - "browser/components/preferences/dialogs/sitePermissions.css", - "browser/components/preferences/widgets/security-privacy/security-privacy-card/security-privacy-card.css", - "browser/components/profiles/content/edit-profile-card.css", - "browser/components/profiles/content/profile-avatar-selector.css", - "browser/components/profiles/content/profile-selector.css", - "browser/components/profiles/content/profiles-pages.css", + "browser/components/profiles/content/profile-card.css", + "browser/components/profiles/content/profiles-theme-card.css", "browser/components/protections/content/protections.css", "browser/components/screenshots/overlay/overlay.css", "browser/components/screenshots/screenshots-buttons.css", - "browser/components/screenshots/screenshots-preview.css", - "browser/components/search/content/addEngine.css", - "browser/components/search/content/contentSearchUI.css", "browser/components/search/test/browser/telemetry/serp.css", - "browser/components/security/unexpectedScriptLoad.css", - "browser/components/sidebar/sidebar-main.css", - "browser/components/sidebar/sidebar-panel-header.css", - "browser/components/sidebar/sidebar-tab-row.css", - "browser/components/sidebar/sidebar.css", - "browser/components/tabunloader/content/aboutUnloads.css", "browser/components/textrecognition/textrecognition.css", "browser/components/urlbar/tests/browser/dynamicResult0.css", "browser/components/urlbar/tests/browser/dynamicResult1.css", - "browser/components/webrtc/content/webrtc-preview/webrtc-preview.css", - "browser/extensions/formautofill/content/formautofill.css", "browser/extensions/formautofill/content/manageDialog.css", - "browser/extensions/formautofill/skin/shared/editAddress.css", - "browser/extensions/formautofill/skin/shared/editDialog-shared.css", - "browser/extensions/newtab/content-src/components/Base/_Base.scss", - "browser/extensions/newtab/content-src/components/Card/_Card.scss", - "browser/extensions/newtab/content-src/components/CollapsibleSection/_CollapsibleSection.scss", - "browser/extensions/newtab/content-src/components/ConfirmDialog/_ConfirmDialog.scss", - "browser/extensions/newtab/content-src/components/ContextMenu/_ContextMenu.scss", - "browser/extensions/newtab/content-src/components/CustomizeMenu/_CustomizeMenu.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBanner/_AdBanner.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBannerContextMenu/AdBannerContextMenu.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSCard/_DSCard.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSEmptyState/_DSEmptyState.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSImage/_DSImage.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSThumbsUpDownButtons/_DSThumbsUpDownButtons.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_DownloadMobilePromoHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FeatureHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FollowSectionButtonHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_WallpaperFeatureHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/InterestPicker/_InterestPicker.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/ListFeed/_ListFeed.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/SectionContextMenu/_SectionContextMenu.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopSites/_TopSites.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", - "browser/extensions/newtab/content-src/components/ModalOverlay/_ModalOverlay.scss", - "browser/extensions/newtab/content-src/components/Notifications/_Notifications.scss", - "browser/extensions/newtab/content-src/components/Search/_Search.scss", - "browser/extensions/newtab/content-src/components/TopSites/_TopSites.scss", - "browser/extensions/newtab/content-src/components/WallpaperCategories/_WallpaperCategories.scss", - "browser/extensions/newtab/content-src/components/Weather/_Weather.scss", - "browser/extensions/newtab/content-src/components/Widgets/Lists/_Lists.scss", - "browser/extensions/newtab/content-src/components/Widgets/_Widgets.scss", - "browser/extensions/newtab/content-src/styles/_variables.scss", - "browser/extensions/webcompat/about-compat/aboutCompat.css", "browser/themes/linux/browser.css", - "browser/themes/linux/customizableui/panelUI.css", - "browser/themes/linux/sanitizeDialog.css", - "browser/themes/osx/browser.css", - "browser/themes/osx/customizableui/panelUI.css", - "browser/themes/osx/places/organizer.css", - "browser/themes/osx/sanitizeDialog.css", - "browser/themes/shared/UITour.css", - "browser/themes/shared/aboutRestartRequired.css", - "browser/themes/shared/aboutSessionRestore.css", - "browser/themes/shared/aboutTabCrashed.css", - "browser/themes/shared/aboutWelcomeBack.css", - "browser/themes/shared/addon-notification.css", "browser/themes/shared/addons/unified-extensions.css", - "browser/themes/shared/autocomplete.css", - "browser/themes/shared/blockedSite.css", - "browser/themes/shared/browser-shared.css", - "browser/themes/shared/contextmenu.css", - "browser/themes/shared/controlcenter/panel.css", "browser/themes/shared/customizableui/customizeMode.css", "browser/themes/shared/customizableui/panelUI-shared.css", - "browser/themes/shared/downloads/allDownloadsView.inc.css", - "browser/themes/shared/downloads/contentAreaDownloadsView.css", - "browser/themes/shared/downloads/download-blockedStates.css", - "browser/themes/shared/downloads/downloads.inc.css", - "browser/themes/shared/downloads/indicator.css", - "browser/themes/shared/downloads/progressmeter.css", - "browser/themes/shared/formautofill-notification.css", "browser/themes/shared/identity-block/identity-block.css", - "browser/themes/shared/identity-credential-notification.css", - "browser/themes/shared/migration/migration-dialog-window.css", - "browser/themes/shared/migration/migration-wizard.css", "browser/themes/shared/notification-icons.css", - "browser/themes/shared/pageInfo.css", - "browser/themes/shared/places/editBookmark.css", - "browser/themes/shared/places/editBookmarkPanel.css", - "browser/themes/shared/places/organizer-shared.css", - "browser/themes/shared/places/sidebar.css", - "browser/themes/shared/places/tree-icons.css", - "browser/themes/shared/preferences/applications.css", - "browser/themes/shared/preferences/containers-dialog.css", - "browser/themes/shared/preferences/containers.css", - "browser/themes/shared/preferences/dialog.css", - "browser/themes/shared/preferences/fxaPairDevice.css", - "browser/themes/shared/preferences/preferences.css", - "browser/themes/shared/preferences/privacy.css", - "browser/themes/shared/preferences/search.css", - "browser/themes/shared/preferences/siteDataSettings.css", - "browser/themes/shared/preferences/translations.css", - "browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css", - "browser/themes/shared/sanitizeDialog_v2.css", "browser/themes/shared/search/searchbar.css", - "browser/themes/shared/setDesktopBackground.css", - "browser/themes/shared/sidebar.css", - "browser/themes/shared/syncedtabs/sidebar.css", - "browser/themes/shared/tab-list-tree.css", - "browser/themes/shared/tabbrowser/content-area.css", - "browser/themes/shared/tabbrowser/ctrlTab.css", - "browser/themes/shared/tabbrowser/fullscreen-and-pointerlock.css", - "browser/themes/shared/tabbrowser/tabs.css", - "browser/themes/shared/toolbarbutton-icons.css", - "browser/themes/shared/toolbarbuttons.css", - "browser/themes/shared/translations/panel.css", - "browser/themes/shared/urlbar-dynamic-results.css", - "browser/themes/shared/urlbar-searchbar.css", - "browser/themes/shared/urlbarView.css", - "browser/themes/shared/webRTC-indicator.css", - "browser/themes/windows/browser.css", - "browser/themes/windows/customizableui/panelUI.css", - "browser/themes/windows/places/organizer.css", - "browser/themes/windows/sanitizeDialog.css", - "browser/tools/mozscreenshots/mozscreenshots/extension/lib/mozscreenshots-style.css", - "devtools/client/aboutdebugging/src/base.css", - "devtools/client/aboutdebugging/src/components/App.css", - "devtools/client/aboutdebugging/src/components/ProfilerDialog.css", - "devtools/client/aboutdebugging/src/components/RuntimeActions.css", - "devtools/client/aboutdebugging/src/components/RuntimeInfo.css", - "devtools/client/aboutdebugging/src/components/connect/ConnectPage.css", - "devtools/client/aboutdebugging/src/components/connect/ConnectSection.css", - "devtools/client/aboutdebugging/src/components/connect/ConnectSteps.css", - "devtools/client/aboutdebugging/src/components/connect/NetworkLocationsForm.css", - "devtools/client/aboutdebugging/src/components/connect/NetworkLocationsList.css", - "devtools/client/aboutdebugging/src/components/debugtarget/DebugTargetItem.css", - "devtools/client/aboutdebugging/src/components/debugtarget/DebugTargetList.css", - "devtools/client/aboutdebugging/src/components/debugtarget/DebugTargetPane.css", - "devtools/client/aboutdebugging/src/components/debugtarget/ExtensionDetail.css", - "devtools/client/aboutdebugging/src/components/debugtarget/FieldPair.css", - "devtools/client/aboutdebugging/src/components/debugtarget/ServiceWorkerAction.css", - "devtools/client/aboutdebugging/src/components/shared/IconLabel.css", - "devtools/client/aboutdebugging/src/components/shared/Message.css", - "devtools/client/aboutdebugging/src/components/sidebar/Sidebar.css", - "devtools/client/aboutdebugging/src/components/sidebar/SidebarFixedItem.css", - "devtools/client/aboutdebugging/src/components/sidebar/SidebarItem.css", - "devtools/client/aboutdebugging/src/components/sidebar/SidebarRuntimeItem.css", - "dom/crypto/test/test_WebCrypto.css", - "dom/events/test/pointerevents/wpt/pointerevent_styles.css", - "dom/tests/mochitest/webcomponents/inert_style.css", - "dom/xml/resources/XMLPrettyPrint.css", - "dom/xml/test/old/books/classic.css", - "dom/xml/test/old/books/common.css", - "dom/xml/test/old/books/list.css", - "dom/xml/test/old/xlink/link.css", - "dom/xml/test/old/xmlbase/xmlbase.css", - "gfx/layers/apz/test/mochitest/helper_subframe_style.css", - "layout/generic/test/frame_selection_underline.css", - "layout/inspector/tests/chrome/test_bug727834.css", - "layout/mathml/mathml.css", - "layout/style/res/accessiblecaret.css", + "browser/themes/shared/sidebar.css", + "browser/themes/shared/tabbrowser/content-area.css", + "browser/themes/shared/tabbrowser/ctrlTab.css", + "browser/themes/shared/tabbrowser/tabs.css", + "browser/themes/shared/toolbarbuttons.css", + "browser/themes/shared/urlbar-dynamic-results.css", + "browser/themes/shared/urlbar-searchbar.css", + "browser/themes/shared/urlbarView.css", + "browser/themes/windows/downloads/allDownloadsView.css", "layout/style/res/forms.css", - "layout/style/res/html.css", - "layout/style/res/quirk.css", - "layout/style/res/ua.css", - "layout/style/res/viewsource.css", "security/manager/pki/resources/content/clientauthask.css", - "security/manager/pki/resources/content/deletecert.css", - "security/manager/pki/resources/content/exceptionDialog.css", - "testing/mochitest/static/harness.css", - "testing/mozbase/mozlog/mozlog/formatters/html/style.css", - "testing/talos/talos/tests/scroll/reader.css", - "toolkit/components/aboutcheckerboard/content/aboutCheckerboard.css", - "toolkit/components/aboutconfig/content/aboutconfig.css", "toolkit/components/aboutinference/content/aboutInference.css", - "toolkit/components/aboutinference/content/model-files-view.css", - "toolkit/components/aboutmemory/content/aboutMemory.css", - "toolkit/components/aboutprocesses/content/aboutProcesses.css", - "toolkit/components/aboutthirdparty/content/aboutThirdParty.css", - "toolkit/components/aboutwebauthn/content/aboutWebauthn.css", - "toolkit/components/aboutwindowsmessages/content/aboutWindowsMessages.css", - "toolkit/components/certviewer/content/components/about-certificate-section.css", "toolkit/components/certviewer/content/components/certificate-section.css", - "toolkit/components/certviewer/content/components/error-section.css", - "toolkit/components/certviewer/content/components/info-group.css", - "toolkit/components/certviewer/content/components/info-item.css", - "toolkit/components/certviewer/content/components/list-item.css", "toolkit/components/normandy/content/about-studies/about-studies.css", - "toolkit/components/normandy/skin/shared/Heartbeat.css", - "toolkit/components/printing/content/print.css", "toolkit/components/printing/content/printPagination.css", - "toolkit/components/printing/content/printPreview.css", - "toolkit/components/printing/content/simplifyMode.css", - "toolkit/components/printing/content/toggle-group.css", - "toolkit/components/prompts/content/commonDialog.css", - "toolkit/components/prompts/content/selectDialog.css", "toolkit/components/satchel/megalist/content/components/login-line/login-line.css", - "toolkit/components/translations/content/about-translations.css", - "toolkit/content/aboutGlean.css", - "toolkit/content/aboutLogging/aboutLogging.css", - "toolkit/content/aboutMozilla.css", "toolkit/content/aboutTelemetry.css", - "toolkit/content/aboutUrlClassifier.css", "toolkit/content/aboutwebrtc/aboutWebrtc.css", - "toolkit/content/buildconfig.css", - "toolkit/content/resetProfile.css", "toolkit/content/widgets/infobar.css", - "toolkit/content/widgets/moz-box-item/moz-box-item.css", - "toolkit/content/widgets/moz-button/moz-button.css", - "toolkit/content/widgets/moz-card/moz-card.css", - "toolkit/content/widgets/moz-five-star/moz-five-star.css", - "toolkit/content/widgets/moz-input-common.css", - "toolkit/content/widgets/moz-input-text/moz-input-text.css", - "toolkit/content/widgets/moz-message-bar/moz-message-bar.css", - "toolkit/content/widgets/moz-page-nav/moz-page-nav.css", - "toolkit/content/widgets/moz-reorderable-list/moz-reorderable-list.css", - "toolkit/content/widgets/moz-select/moz-select.css", - "toolkit/content/widgets/moz-toggle/moz-toggle.css", + "toolkit/content/widgets/moz-box-common.css", "toolkit/content/widgets/moz-visual-picker/moz-visual-picker-item.css", - "toolkit/content/widgets/panel-list/panel-item.css", - "toolkit/content/widgets/panel-list/panel-list.css", "toolkit/content/xul.css", - "toolkit/crashreporter/content/crashes.css", "toolkit/mozapps/extensions/content/aboutaddons.css", "toolkit/mozapps/extensions/content/shortcuts.css", - "toolkit/mozapps/handling/content/handler.css", - "toolkit/themes/linux/global/autocomplete.css", - "toolkit/themes/linux/global/global.css", - "toolkit/themes/linux/global/richlistbox.css", - "toolkit/themes/linux/mozapps/update/updates.css", "toolkit/themes/mobile/global/aboutMemory.css", - "toolkit/themes/mobile/global/aboutNetworking.css", - "toolkit/themes/mobile/global/aboutSupport.css", - "toolkit/themes/osx/global/autocomplete.css", - "toolkit/themes/osx/global/button.css", - "toolkit/themes/osx/global/dialog.css", - "toolkit/themes/osx/global/global.css", - "toolkit/themes/osx/global/in-content/common.css", - "toolkit/themes/osx/global/richlistbox.css", - "toolkit/themes/osx/global/wizard.css", - "toolkit/themes/osx/mozapps/handling/handling.css", - "toolkit/themes/osx/mozapps/update/updates.css", - "toolkit/themes/shared/aboutCache.css", - "toolkit/themes/shared/aboutHttpsOnlyError.css", - "toolkit/themes/shared/aboutLicense.css", - "toolkit/themes/shared/aboutNetError.css", - "toolkit/themes/shared/aboutNetworking.css", - "toolkit/themes/shared/aboutProfiles.css", - "toolkit/themes/shared/aboutReader.css", - "toolkit/themes/shared/aboutServiceWorkers.css", - "toolkit/themes/shared/aboutSupport.css", "toolkit/themes/shared/alert.css", - "toolkit/themes/shared/appPicker.css", - "toolkit/themes/shared/arrowscrollbox.css", - "toolkit/themes/shared/checkbox.css", - "toolkit/themes/shared/close-icon.css", - "toolkit/themes/shared/commonDialog.css", "toolkit/themes/shared/datetimeinputpickers.css", "toolkit/themes/shared/design-system/storybook/tokens-table.css", - "toolkit/themes/shared/dirListing/dirListing.css", - "toolkit/themes/shared/downloads/unknownContentType.css", - "toolkit/themes/shared/error-pages.css", - "toolkit/themes/shared/findbar.css", - "toolkit/themes/shared/global-shared.css", "toolkit/themes/shared/in-content/common-shared.css", - "toolkit/themes/shared/in-content/info-pages.css", "toolkit/themes/shared/menu.css", - "toolkit/themes/shared/menulist.css", - "toolkit/themes/shared/offlineSupportPages.css", - "toolkit/themes/shared/pictureinpicture/player.css", - "toolkit/themes/shared/pictureinpicture/texttracks.css", "toolkit/themes/shared/popup.css", - "toolkit/themes/shared/popupnotification.css", - "toolkit/themes/shared/profileSelection.css", - "toolkit/themes/shared/radio.css", - "toolkit/themes/shared/tabbox.css", - "toolkit/themes/shared/toolbar.css", - "toolkit/themes/shared/toolbarbutton.css", - "toolkit/themes/shared/tree/tree.css", - "toolkit/themes/windows/global/autocomplete.css", - "toolkit/themes/windows/global/button.css", - "toolkit/themes/windows/global/dialog.css", - "toolkit/themes/windows/global/global.css", - "toolkit/themes/windows/global/printPageSetup.css", - "toolkit/themes/windows/global/richlistbox.css", - "toolkit/themes/windows/global/wizard.css", - "toolkit/themes/windows/mozapps/handling/handling.css", - "toolkit/themes/windows/mozapps/update/updates.css", - "tools/tryselect/selectors/chooser/static/style.css", ], }, { - // stylelint fixes for this rule will be addressed in Bug 1993105 name: "rollout-use-background-color-tokens", rules: { "stylelint-plugin-mozilla/use-background-color-tokens": null, @@ -995,8 +955,6 @@ module.exports = [ "browser/components/firefoxview/opentabs-tab-row.css", "browser/components/genai/chat.css", "browser/components/genai/content/link-preview-card.css", - "browser/components/ipprotection/content/ipprotection-content.css", - "browser/components/ipprotection/content/ipprotection-status-card.css", "browser/components/preferences/widgets/nav-notice/nav-notice.css", "browser/components/profiles/content/avatar.css", "browser/components/profiles/content/profile-avatar-selector.css", @@ -1020,7 +978,6 @@ module.exports = [ "browser/extensions/newtab/content-src/components/ContextMenu/_ContextMenu.scss", "browser/extensions/newtab/content-src/components/CustomizeMenu/_CustomizeMenu.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamAdmin/DiscoveryStreamAdmin.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBanner/_AdBanner.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/CardGrid/_CardGrid.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSCard/_DSCard.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSEmptyState/_DSEmptyState.scss", @@ -1028,11 +985,8 @@ module.exports = [ "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FeatureHighlight.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/Highlights/_Highlights.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/InterestPicker/_InterestPicker.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/ListFeed/_ListFeed.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PromoCard/_PromoCard.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicsWidget/_TopicsWidget.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TrendingSearches/_TrendingSearches.scss", "browser/extensions/newtab/content-src/components/DownloadModalToggle/_DownloadModalToggle.scss", "browser/extensions/newtab/content-src/components/ModalOverlay/_ModalOverlay.scss", "browser/extensions/newtab/content-src/components/Search/_Search.scss", @@ -1040,7 +994,6 @@ module.exports = [ "browser/extensions/newtab/content-src/components/WallpaperCategories/_WallpaperCategories.scss", "browser/extensions/newtab/content-src/components/Weather/_Weather.scss", "browser/extensions/newtab/content-src/components/Widgets/FocusTimer/_FocusTimer.scss", - "browser/extensions/newtab/content-src/components/Widgets/Lists/_Lists.scss", "browser/extensions/newtab/content-src/styles/_mixins.scss", "browser/extensions/newtab/content-src/styles/_variables.scss", "browser/extensions/newtab/content-src/styles/activity-stream.scss", @@ -1053,7 +1006,6 @@ module.exports = [ "browser/themes/shared/addons/unified-extensions.css", "browser/themes/shared/aiWindowSidebar.css", "browser/themes/shared/autocomplete.css", - "browser/themes/shared/blockedSite.css", "browser/themes/shared/browser-shared.css", "browser/themes/shared/controlcenter/panel.css", "browser/themes/shared/customizableui/customizeMode.css", @@ -1104,17 +1056,14 @@ module.exports = [ "dom/xml/resources/XMLPrettyPrint.css", "dom/xml/test/old/books/classic.css", "gfx/layers/layerviewer/tree.css", - "layout/generic/test/frame_selection_underline.css", "layout/inspector/tests/bug1202095.css", "layout/mathml/mathml.css", "layout/style/TopLevelImageDocument.css", - "layout/style/TopLevelVideoDocument.css", "layout/style/res/forms.css", "layout/style/res/html.css", "layout/style/res/ua.css", "layout/style/res/viewsource.css", "layout/style/test/file_shared_sheet_caching.css", - "remote/marionette/reftest-chrome/reftest.css", "security/manager/ssl/tests/mochitest/mixedcontent/somestyle.css", "testing/mochitest/static/harness.css", "testing/mochitest/tests/SimpleTest/test.css", @@ -1174,7 +1123,6 @@ module.exports = [ "toolkit/themes/shared/menu.css", "toolkit/themes/shared/narrate.css", "toolkit/themes/shared/pictureinpicture/player.css", - "toolkit/themes/shared/pictureinpicture/texttracks.css", "toolkit/themes/shared/popup.css", "toolkit/themes/shared/splitter.css", "toolkit/themes/shared/tabbox.css", @@ -1189,27 +1137,17 @@ module.exports = [ ], }, { - // stylelint fixes for this rule will be addressed in Bug 1994016 name: "rollout-use-text-color-tokens", rules: { "stylelint-plugin-mozilla/use-text-color-tokens": null, }, files: [ "browser/branding/aurora/content/aboutDialog.css", - "browser/branding/aurora/stubinstaller/installing_page.css", - "browser/branding/aurora/stubinstaller/profile_cleanup_page.css", "browser/branding/nightly/content/aboutDialog.css", - "browser/branding/nightly/stubinstaller/installing_page.css", - "browser/branding/nightly/stubinstaller/profile_cleanup_page.css", "browser/branding/official/content/aboutDialog.css", - "browser/branding/official/stubinstaller/installing_page.css", - "browser/branding/official/stubinstaller/profile_cleanup_page.css", "browser/branding/unofficial/content/aboutDialog.css", - "browser/branding/unofficial/stubinstaller/installing_page.css", - "browser/branding/unofficial/stubinstaller/profile_cleanup_page.css", "browser/components/aboutlogins/content/aboutLoginsImportReport.css", "browser/components/aboutlogins/content/components/import-summary-dialog.css", - "browser/components/aboutlogins/content/components/login-alert.css", "browser/components/aboutlogins/content/components/login-command-button.css", "browser/components/aboutlogins/content/components/login-item.css", "browser/components/aboutwelcome/content-src/aboutwelcome.scss", @@ -1225,11 +1163,8 @@ module.exports = [ "browser/components/firefoxview/opentabs-tab-row.css", "browser/components/firefoxview/view-syncedtabs.css", "browser/components/genai/content/link-preview-card.css", - "browser/components/ipprotection/content/ipprotection-content.css", - "browser/components/ipprotection/content/ipprotection-status-card.css", "browser/components/preferences/widgets/nav-notice/nav-notice.css", "browser/components/profiles/content/edit-profile-card.css", - "browser/components/profiles/content/profile-avatar-selector.css", "browser/components/profiles/content/profiles-theme-card.css", "browser/components/protections/content/protections.css", "browser/components/screenshots/overlay/overlay.css", @@ -1239,8 +1174,6 @@ module.exports = [ "browser/components/sidebar/sidebar-customize.css", "browser/components/sidebar/sidebar-pins-promo.css", "browser/components/sidebar/sidebar.css", - "browser/components/urlbar/tests/browser/dynamicResult0.css", - "browser/components/urlbar/tests/browser/dynamicResult1.css", "browser/extensions/formautofill/skin/shared/editDialog-shared.css", "browser/extensions/newtab/content-src/components/A11yLinkButton/_A11yLinkButton.scss", "browser/extensions/newtab/content-src/components/Base/_Base.scss", @@ -1259,11 +1192,9 @@ module.exports = [ "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_DownloadMobilePromoHighlight.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/InterestPicker/_InterestPicker.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/Navigation/_Navigation.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PersonalizedCard/_PersonalizedCard.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/SectionTitle/_SectionTitle.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicsWidget/_TopicsWidget.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TrendingSearches/_TrendingSearches.scss", "browser/extensions/newtab/content-src/components/ErrorBoundary/_ErrorBoundary.scss", "browser/extensions/newtab/content-src/components/ModalOverlay/_ModalOverlay.scss", "browser/extensions/newtab/content-src/components/Search/_Search.scss", @@ -1272,7 +1203,6 @@ module.exports = [ "browser/extensions/newtab/content-src/components/WallpaperCategories/_WallpaperCategories.scss", "browser/extensions/newtab/content-src/components/Weather/_Weather.scss", "browser/extensions/newtab/content-src/components/Widgets/Lists/_Lists.scss", - "browser/extensions/newtab/content-src/components/Widgets/_Widgets.scss", "browser/extensions/newtab/content-src/styles/_icons.scss", "browser/extensions/newtab/content-src/styles/activity-stream.scss", "browser/extensions/webcompat/about-compat/aboutCompat.css", @@ -1281,10 +1211,8 @@ module.exports = [ "browser/themes/osx/browser.css", "browser/themes/osx/places/organizer.css", "browser/themes/shared/UITour.css", - "browser/themes/shared/aboutSessionRestore.css", "browser/themes/shared/addons/unified-extensions.css", "browser/themes/shared/autocomplete.css", - "browser/themes/shared/blockedSite.css", "browser/themes/shared/browser-shared.css", "browser/themes/shared/controlcenter/panel.css", "browser/themes/shared/customizableui/customizeMode.css", @@ -1324,7 +1252,6 @@ module.exports = [ "devtools/client/aboutdebugging/src/components/sidebar/Sidebar.css", "devtools/client/aboutdebugging/src/components/sidebar/SidebarItem.css", "dom/crypto/test/test_WebCrypto.css", - "dom/events/test/pointerevents/wpt/pointerevent_styles.css", "dom/security/test/sri/style1.css", "dom/security/test/sri/style3.css", "dom/security/test/sri/style4.css", @@ -1344,8 +1271,6 @@ module.exports = [ "layout/style/res/ua.css", "layout/style/res/viewsource.css", "layout/style/test/chrome/bug535806-css.css", - "layout/style/test/chrome/import_useless1.css", - "layout/style/test/chrome/import_useless2.css", "layout/style/test/file_bug1443344.css", "layout/style/test/mapped.css", "layout/style/test/post-redirect-1.css", @@ -1356,7 +1281,6 @@ module.exports = [ "testing/mochitest/tests/SimpleTest/test.css", "testing/mozbase/mozlog/mozlog/formatters/html/style.css", "testing/talos/talos/tests/scroll/reader.css", - "testing/web-platform/mozilla/tests/fetch/fetchpriority/support/resources/dummy.css", "toolkit/components/aboutcheckerboard/content/aboutCheckerboard.css", "toolkit/components/aboutconfig/content/aboutconfig.css", "toolkit/components/aboutinference/content/aboutInference.css", @@ -1380,15 +1304,12 @@ module.exports = [ "toolkit/components/satchel/megalist/content/components/password-card/password-card.css", "toolkit/components/satchel/megalist/content/megalist.css", "toolkit/content/aboutLogging/aboutLogging.css", - "toolkit/content/aboutMozilla.css", "toolkit/content/aboutwebrtc/aboutWebrtc.css", "toolkit/content/widgets/infobar.css", - "toolkit/content/widgets/moz-breadcrumb-group/moz-breadcrumb.css", "toolkit/content/widgets/moz-input-common.css", "toolkit/content/widgets/moz-input-text/moz-input-text.css", "toolkit/content/widgets/moz-message-bar/moz-message-bar.css", "toolkit/content/widgets/moz-page-nav/moz-page-nav-button.css", - "toolkit/content/widgets/moz-promo/moz-promo.css", "toolkit/content/xul.css", "toolkit/crashreporter/content/crashes.css", "toolkit/mozapps/extensions/content/aboutaddons.css", @@ -1418,7 +1339,6 @@ module.exports = [ "toolkit/themes/shared/menulist.css", "toolkit/themes/shared/narrate.css", "toolkit/themes/shared/pictureinpicture/player.css", - "toolkit/themes/shared/pictureinpicture/texttracks.css", "toolkit/themes/shared/popup.css", "toolkit/themes/shared/popupnotification.css", "toolkit/themes/shared/radio.css", @@ -1436,80 +1356,174 @@ module.exports = [ ], }, { - // stylelint fixes for this rule will be addressed in Bug 1993565 - name: "rollout-use-box-shadow-tokens", + name: "rollout-use-border-color-tokens", rules: { - "stylelint-plugin-mozilla/use-box-shadow-tokens": null, + "stylelint-plugin-mozilla/use-border-color-tokens": null, }, files: [ + "browser/branding/aurora/stubinstaller/installing_page.css", + "browser/branding/nightly/stubinstaller/installing_page.css", + "browser/branding/official/stubinstaller/installing_page.css", + "browser/branding/unofficial/stubinstaller/installing_page.css", "browser/components/aboutlogins/content/components/confirmation-dialog.css", "browser/components/aboutlogins/content/components/generic-dialog.css", - "browser/components/aboutlogins/content/components/login-alert.css", "browser/components/aboutlogins/content/components/login-message-popup.css", "browser/components/aboutlogins/content/components/remove-logins-dialog.css", "browser/components/aboutwelcome/content-src/aboutwelcome.scss", + "browser/components/asrouter/content-src/components/ASRouterAdmin/ASRouterAdmin.scss", "browser/components/asrouter/content-src/styles/_feature-callout.scss", + "browser/components/enterprisepolicies/content/aboutPolicies.css", "browser/components/firefoxview/card-container.css", - "browser/components/firefoxview/history.css", + "browser/components/firefoxview/fxview-tab-row.css", + "browser/components/firefoxview/opentabs-tab-row.css", + "browser/components/firefoxview/view-syncedtabs.css", + "browser/components/genai/content/link-preview-card.css", "browser/components/genai/content/model-optin.css", + "browser/components/ipprotection/content/ipprotection-content.css", + "browser/components/profiles/content/avatar.css", "browser/components/profiles/content/profile-avatar-selector.css", + "browser/components/profiles/content/profile-card.css", + "browser/components/profiles/content/profiles-pages.css", + "browser/components/profiles/content/profiles-theme-card.css", "browser/components/protections/content/protections.css", "browser/components/screenshots/overlay/overlay.css", "browser/components/search/content/contentSearchUI.css", - "browser/components/urlbar/tests/browser/dynamicResult0.css", - "browser/components/urlbar/tests/browser/dynamicResult1.css", + "browser/components/search/test/browser/telemetry/serp.css", + "browser/components/sidebar/sidebar-customize.css", + "browser/components/sidebar/sidebar-main.css", + "browser/components/sidebar/sidebar-pins-promo.css", + "browser/components/textrecognition/textrecognition.css", "browser/extensions/newtab/content-src/components/Card/_Card.scss", "browser/extensions/newtab/content-src/components/ConfirmDialog/_ConfirmDialog.scss", "browser/extensions/newtab/content-src/components/ContextMenu/_ContextMenu.scss", "browser/extensions/newtab/content-src/components/CustomizeMenu/_CustomizeMenu.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamAdmin/DiscoveryStreamAdmin.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/CardGrid/_CardGrid.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSCard/_DSCard.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_DownloadMobilePromoHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FeatureHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_WallpaperFeatureHighlight.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSEmptyState/_DSEmptyState.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/InterestPicker/_InterestPicker.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/Navigation/_Navigation.scss", + "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/ReportContent/ReportContent.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicsWidget/_TopicsWidget.scss", - "browser/extensions/newtab/content-src/components/ErrorBoundary/_ErrorBoundary.scss", "browser/extensions/newtab/content-src/components/ModalOverlay/_ModalOverlay.scss", "browser/extensions/newtab/content-src/components/Search/_Search.scss", + "browser/extensions/newtab/content-src/components/Sections/_Sections.scss", "browser/extensions/newtab/content-src/components/TopSites/_TopSites.scss", "browser/extensions/newtab/content-src/components/WallpaperCategories/_WallpaperCategories.scss", + "browser/extensions/newtab/content-src/components/Weather/_Weather.scss", "browser/extensions/newtab/content-src/styles/_mixins.scss", "browser/extensions/newtab/content-src/styles/_variables.scss", "browser/extensions/newtab/content-src/styles/activity-stream.scss", + "browser/themes/linux/browser.css", + "browser/themes/osx/browser.css", + "browser/themes/osx/places/organizer.css", "browser/themes/shared/UITour.css", "browser/themes/shared/addons/unified-extensions.css", "browser/themes/shared/autocomplete.css", "browser/themes/shared/browser-shared.css", + "browser/themes/shared/controlcenter/panel.css", "browser/themes/shared/customizableui/customizeMode.css", "browser/themes/shared/customizableui/panelUI-shared.css", + "browser/themes/shared/downloads/downloads.inc.css", + "browser/themes/shared/identity-block/identity-block.css", + "browser/themes/shared/identity-credential-notification.css", + "browser/themes/shared/migration/migration-wizard.css", + "browser/themes/shared/pageInfo.css", + "browser/themes/shared/places/editBookmark.css", + "browser/themes/shared/places/sidebar.css", + "browser/themes/shared/preferences/containers-dialog.css", + "browser/themes/shared/preferences/preferences.css", "browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css", + "browser/themes/shared/search/searchbar.css", "browser/themes/shared/sidebar.css", + "browser/themes/shared/syncedtabs/sidebar.css", "browser/themes/shared/tabbrowser/content-area.css", "browser/themes/shared/tabbrowser/ctrlTab.css", - "browser/themes/shared/tabbrowser/fullscreen-and-pointerlock.css", + "browser/themes/shared/tabbrowser/tab-hover-preview.css", "browser/themes/shared/tabbrowser/tabs.css", + "browser/themes/shared/toolbarbuttons.css", + "browser/themes/shared/urlbar-dynamic-results.css", "browser/themes/shared/urlbar-searchbar.css", + "browser/themes/shared/urlbarView.css", + "browser/themes/shared/webRTC-indicator.css", + "browser/themes/windows/browser.css", + "browser/themes/windows/downloads/allDownloadsView.css", + "browser/themes/windows/downloads/downloads.css", "browser/themes/windows/places/organizer.css", + "browser/tools/mozscreenshots/mozscreenshots/extension/lib/mozscreenshots-style.css", + "devtools/client/aboutdebugging/src/base.css", + "devtools/client/aboutdebugging/src/components/connect/ConnectSection.css", + "devtools/client/aboutdebugging/src/components/connect/NetworkLocationsList.css", + "devtools/client/aboutdebugging/src/components/debugtarget/DebugTargetItem.css", + "devtools/client/aboutdebugging/src/components/debugtarget/FieldPair.css", + "devtools/client/aboutdebugging/src/components/shared/Message.css", + "dom/crypto/test/test_WebCrypto.css", + "dom/events/test/pointerevents/wpt/pointerevent_styles.css", + "dom/xml/resources/XMLPrettyPrint.css", + "dom/xml/test/old/books/classic.css", + "dom/xml/test/old/books/common.css", "gfx/layers/layerviewer/tree.css", + "layout/mathml/mathml.css", + "layout/style/res/forms.css", + "layout/style/res/html.css", "layout/style/res/ua.css", + "testing/mochitest/static/harness.css", + "testing/mozbase/mozlog/mozlog/formatters/html/style.css", + "testing/talos/talos/tests/scroll/reader.css", "toolkit/components/aboutinference/content/aboutInference.css", + "toolkit/components/aboutinference/content/model-files-view.css", + "toolkit/components/aboutprocesses/content/aboutProcesses.css", + "toolkit/components/normandy/content/about-studies/about-studies.css", + "toolkit/components/printing/content/printPagination.css", + "toolkit/components/resistfingerprinting/content/usercharacteristics.css", + "toolkit/components/satchel/megalist/content/components/login-form/login-form.css", + "toolkit/components/satchel/megalist/content/components/password-card/password-card.css", + "toolkit/components/satchel/megalist/content/megalist.css", + "toolkit/content/aboutLogging/aboutLogging.css", "toolkit/content/aboutTelemetry.css", - "toolkit/content/widgets/infobar.css", + "toolkit/content/widgets/moz-card/moz-card.css", + "toolkit/content/widgets/moz-page-nav/moz-page-nav-button.css", + "toolkit/content/widgets/moz-toggle/moz-toggle.css", + "toolkit/content/xul.css", + "toolkit/mozapps/extensions/content/aboutaddons.css", "toolkit/mozapps/extensions/content/shortcuts.css", + "toolkit/themes/linux/global/global.css", + "toolkit/themes/linux/global/richlistbox.css", + "toolkit/themes/linux/mozapps/update/updates.css", + "toolkit/themes/mobile/global/aboutMemory.css", + "toolkit/themes/mobile/global/aboutSupport.css", + "toolkit/themes/osx/global/global.css", + "toolkit/themes/osx/global/richlistbox.css", + "toolkit/themes/osx/global/wizard.css", + "toolkit/themes/osx/mozapps/update/updates.css", "toolkit/themes/shared/aboutReader.css", "toolkit/themes/shared/alert.css", + "toolkit/themes/shared/close-icon.css", + "toolkit/themes/shared/datetimeinputpickers.css", + "toolkit/themes/shared/design-system/storybook/tokens-table.css", + "toolkit/themes/shared/dirListing/dirListing.css", "toolkit/themes/shared/findbar.css", + "toolkit/themes/shared/global-shared.css", "toolkit/themes/shared/in-content/common-shared.css", + "toolkit/themes/shared/in-content/info-pages.css", + "toolkit/themes/shared/menu.css", + "toolkit/themes/shared/menulist.css", + "toolkit/themes/shared/narrate.css", "toolkit/themes/shared/pictureinpicture/player.css", "toolkit/themes/shared/popup.css", - "toolkit/themes/shared/toolbarbutton.css", + "toolkit/themes/shared/splitter.css", + "toolkit/themes/shared/tabbox.css", + "toolkit/themes/shared/toolbar.css", "toolkit/themes/shared/tree/tree.css", + "toolkit/themes/windows/global/button.css", + "toolkit/themes/windows/global/global.css", + "toolkit/themes/windows/global/printPageSetup.css", + "toolkit/themes/windows/global/richlistbox.css", + "toolkit/themes/windows/global/wizard.css", + "toolkit/themes/windows/mozapps/update/updates.css", ], }, { - // stylelint fixes for this rule will be addressed in Bug 1992749 name: "rollout-no-non-semantic-token-usage", rules: { "stylelint-plugin-mozilla/no-non-semantic-token-usage": null, @@ -1541,7 +1555,6 @@ module.exports = [ "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PromoCard/_PromoCard.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicsWidget/_TopicsWidget.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TrendingSearches/_TrendingSearches.scss", "browser/extensions/newtab/content-src/components/Search/_Search.scss", "browser/extensions/newtab/content-src/components/Sections/_Sections.scss", "browser/extensions/newtab/content-src/components/TopSites/_TopSites.scss", @@ -1593,309 +1606,76 @@ module.exports = [ ], }, { - // stylelint fixes for this rule will be addressed in Bug 1995685 - name: "rollout-use-size-tokens", + name: "rollout-use-design-tokens", rules: { - "stylelint-plugin-mozilla/use-size-tokens": null, + "stylelint-plugin-mozilla/use-design-tokens": null, }, files: [ - "browser/base/content/aboutDialog.css", - "browser/base/content/pageinfo/pageInfo.css", - "browser/branding/aurora/stubinstaller/installing_page.css", - "browser/branding/aurora/stubinstaller/profile_cleanup_page.css", - "browser/branding/nightly/stubinstaller/installing_page.css", - "browser/branding/nightly/stubinstaller/profile_cleanup_page.css", - "browser/branding/official/stubinstaller/installing_page.css", - "browser/branding/official/stubinstaller/profile_cleanup_page.css", - "browser/branding/unofficial/content/aboutDialog.css", - "browser/branding/unofficial/stubinstaller/installing_page.css", - "browser/branding/unofficial/stubinstaller/profile_cleanup_page.css", - "browser/components/aboutlogins/content/aboutLogins.css", - "browser/components/aboutlogins/content/aboutLoginsImportReport.css", "browser/components/aboutlogins/content/components/confirmation-dialog.css", - "browser/components/aboutlogins/content/components/fxaccounts-button.css", "browser/components/aboutlogins/content/components/generic-dialog.css", "browser/components/aboutlogins/content/components/login-alert.css", - "browser/components/aboutlogins/content/components/login-filter.css", - "browser/components/aboutlogins/content/components/login-intro.css", - "browser/components/aboutlogins/content/components/login-item.css", - "browser/components/aboutlogins/content/components/login-list-lit-item.css", - "browser/components/aboutlogins/content/components/login-list.css", "browser/components/aboutlogins/content/components/login-message-popup.css", - "browser/components/aboutlogins/content/components/login-timeline.css", - "browser/components/aboutlogins/content/components/menu-button.css", "browser/components/aboutlogins/content/components/remove-logins-dialog.css", "browser/components/aboutwelcome/content-src/aboutwelcome.scss", - "browser/components/asrouter/content-src/components/ASRouterAdmin/ASRouterAdmin.scss", "browser/components/asrouter/content-src/styles/_feature-callout.scss", - "browser/components/backup/content/backup-settings.css", - "browser/components/backup/content/password-rules-tooltip.css", - "browser/components/backup/content/password-validation-inputs.css", - "browser/components/backup/content/restore-from-backup.css", - "browser/components/backup/content/turn-on-scheduled-backups.css", - "browser/components/contextualidentity/content/usercontext.css", - "browser/components/enterprisepolicies/content/aboutPolicies.css", "browser/components/firefoxview/card-container.css", - "browser/components/firefoxview/firefoxview.css", - "browser/components/firefoxview/fxview-empty-state.css", - "browser/components/firefoxview/fxview-tab-row.css", - "browser/components/firefoxview/opentabs-tab-row.css", - "browser/components/firefoxview/view-syncedtabs.css", - "browser/components/genai/chat.css", - "browser/components/genai/content/link-preview-card.css", - "browser/components/genai/content/model-optin.css", - "browser/components/messagepreview/messagepreview.css", - "browser/components/places/content/clearDataForSite.css", - "browser/components/places/metadataViewer/interactionsViewer.css", - "browser/components/preferences/dialogs/sitePermissions.css", - "browser/components/preferences/widgets/placeholder-message/placeholder-message.css", - "browser/components/profiles/content/avatar.css", - "browser/components/profiles/content/edit-profile-card.css", + "browser/components/firefoxview/history.css", "browser/components/profiles/content/profile-avatar-selector.css", - "browser/components/profiles/content/profile-card.css", - "browser/components/profiles/content/profile-selector.css", - "browser/components/profiles/content/profiles-pages.css", - "browser/components/profiles/content/profiles-theme-card.css", "browser/components/protections/content/protections.css", "browser/components/screenshots/overlay/overlay.css", - "browser/components/screenshots/screenshots-buttons.css", "browser/components/search/content/contentSearchUI.css", - "browser/components/search/test/browser/telemetry/serp.css", - "browser/components/sidebar/sidebar-main.css", - "browser/components/sidebar/sidebar-pins-promo.css", - "browser/components/sidebar/sidebar.css", - "browser/components/textrecognition/textrecognition.css", "browser/components/urlbar/tests/browser/dynamicResult0.css", "browser/components/urlbar/tests/browser/dynamicResult1.css", - "browser/components/webrtc/content/webrtc-preview/webrtc-preview.css", - "browser/extensions/formautofill/content/formautofill.css", - "browser/extensions/formautofill/content/manageDialog.css", - "browser/extensions/formautofill/skin/shared/editAddress.css", - "browser/extensions/formautofill/skin/shared/editDialog-shared.css", - "browser/extensions/newtab/content-src/components/Base/_Base.scss", "browser/extensions/newtab/content-src/components/Card/_Card.scss", - "browser/extensions/newtab/content-src/components/CollapsibleSection/_CollapsibleSection.scss", "browser/extensions/newtab/content-src/components/ConfirmDialog/_ConfirmDialog.scss", "browser/extensions/newtab/content-src/components/ContextMenu/_ContextMenu.scss", "browser/extensions/newtab/content-src/components/CustomizeMenu/_CustomizeMenu.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamAdmin/DiscoveryStreamAdmin.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBanner/_AdBanner.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/AdBannerContextMenu/AdBannerContextMenu.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/CardGrid/_CardGrid.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/CardSections/_CardSections.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSCard/_DSCard.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSContextFooter/_DSContextFooter.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSEmptyState/_DSEmptyState.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSImage/_DSImage.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/DSMessage/_DSMessage.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_DownloadMobilePromoHighlight.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FeatureHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_FollowSectionButtonHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_ShortcutFeatureHighlight.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/FeatureHighlight/_WallpaperFeatureHighlight.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/Highlights/_Highlights.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/Navigation/_Navigation.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PersonalizedCard/_PersonalizedCard.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/PromoCard/_PromoCard.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/ReportContent/ReportContent.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/SectionContextMenu/_SectionContextMenu.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicSelection/_TopicSelection.scss", "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopicsWidget/_TopicsWidget.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TopSites/_TopSites.scss", - "browser/extensions/newtab/content-src/components/DiscoveryStreamComponents/TrendingSearches/_TrendingSearches.scss", - "browser/extensions/newtab/content-src/components/DownloadModalToggle/_DownloadModalToggle.scss", - "browser/extensions/newtab/content-src/components/Logo/_Logo.scss", + "browser/extensions/newtab/content-src/components/ErrorBoundary/_ErrorBoundary.scss", "browser/extensions/newtab/content-src/components/ModalOverlay/_ModalOverlay.scss", - "browser/extensions/newtab/content-src/components/MoreRecommendations/_MoreRecommendations.scss", - "browser/extensions/newtab/content-src/components/Notifications/_Notifications.scss", "browser/extensions/newtab/content-src/components/Search/_Search.scss", - "browser/extensions/newtab/content-src/components/Sections/_Sections.scss", "browser/extensions/newtab/content-src/components/TopSites/_TopSites.scss", "browser/extensions/newtab/content-src/components/WallpaperCategories/_WallpaperCategories.scss", "browser/extensions/newtab/content-src/components/Weather/_Weather.scss", - "browser/extensions/newtab/content-src/components/Widgets/_Widgets.scss", - "browser/extensions/newtab/content-src/components/Widgets/FocusTimer/_FocusTimer.scss", - "browser/extensions/newtab/content-src/components/Widgets/Lists/_Lists.scss", - "browser/extensions/newtab/content-src/styles/_icons.scss", "browser/extensions/newtab/content-src/styles/_mixins.scss", "browser/extensions/newtab/content-src/styles/_variables.scss", "browser/extensions/newtab/content-src/styles/activity-stream.scss", - "browser/themes/linux/browser.css", - "browser/themes/linux/places/organizer.css", - "browser/themes/osx/browser.css", - "browser/themes/osx/places/organizer.css", - "browser/themes/shared/aboutSessionRestore.css", - "browser/themes/shared/addon-notification.css", - "browser/themes/shared/addons/extension-controlled.css", + "browser/themes/shared/UITour.css", "browser/themes/shared/addons/unified-extensions.css", - "browser/themes/shared/aiWindowSidebar.css", "browser/themes/shared/autocomplete.css", - "browser/themes/shared/blockedSite.css", "browser/themes/shared/browser-shared.css", - "browser/themes/shared/controlcenter/panel.css", "browser/themes/shared/customizableui/customizeMode.css", "browser/themes/shared/customizableui/panelUI-shared.css", - "browser/themes/shared/downloads/allDownloadsView.inc.css", - "browser/themes/shared/downloads/download-blockedStates.css", - "browser/themes/shared/downloads/downloads.inc.css", - "browser/themes/shared/downloads/indicator.css", - "browser/themes/shared/downloads/progressmeter.css", - "browser/themes/shared/formautofill-notification.css", - "browser/themes/shared/identity-block/identity-block.css", - "browser/themes/shared/identity-credential-notification.css", - "browser/themes/shared/migration/migration-wizard.css", - "browser/themes/shared/notification-icons.css", - "browser/themes/shared/pageInfo.css", - "browser/themes/shared/places/editBookmark.css", - "browser/themes/shared/places/editBookmarkPanel.css", - "browser/themes/shared/places/organizer-shared.css", - "browser/themes/shared/places/sidebar.css", - "browser/themes/shared/places/tree-icons.css", - "browser/themes/shared/preferences/applications.css", - "browser/themes/shared/preferences/containers-dialog.css", - "browser/themes/shared/preferences/containers.css", - "browser/themes/shared/preferences/fxaPairDevice.css", - "browser/themes/shared/preferences/preferences.css", - "browser/themes/shared/preferences/privacy.css", - "browser/themes/shared/preferences/search.css", - "browser/themes/shared/preferences/siteDataSettings.css", - "browser/themes/shared/preferences/translations.css", "browser/themes/shared/privatebrowsing/aboutPrivateBrowsing.css", - "browser/themes/shared/search/searchbar.css", "browser/themes/shared/sidebar.css", - "browser/themes/shared/syncedtabs/sidebar.css", - "browser/themes/shared/tab-list-tree.css", "browser/themes/shared/tabbrowser/content-area.css", "browser/themes/shared/tabbrowser/ctrlTab.css", "browser/themes/shared/tabbrowser/fullscreen-and-pointerlock.css", - "browser/themes/shared/tabbrowser/tab-hover-preview.css", "browser/themes/shared/tabbrowser/tabs.css", - "browser/themes/shared/toolbarbuttons.css", - "browser/themes/shared/translations/panel.css", - "browser/themes/shared/UITour.css", - "browser/themes/shared/urlbar-dynamic-results.css", "browser/themes/shared/urlbar-searchbar.css", - "browser/themes/shared/urlbarView.css", - "browser/themes/shared/webRTC-indicator.css", "browser/themes/windows/places/organizer.css", "devtools/client/aboutdebugging/src/base.css", - "devtools/client/aboutdebugging/src/components/App.css", - "devtools/client/aboutdebugging/src/components/debugtarget/ExtensionDetail.css", - "devtools/client/aboutdebugging/src/components/debugtarget/ServiceWorkerAction.css", - "devtools/client/aboutdebugging/src/components/ProfilerDialog.css", - "devtools/client/aboutdebugging/src/components/shared/IconLabel.css", - "devtools/client/aboutdebugging/src/components/sidebar/Sidebar.css", - "devtools/client/aboutdebugging/src/components/sidebar/SidebarFixedItem.css", - "devtools/client/aboutdebugging/src/components/sidebar/SidebarItem.css", - "devtools/client/aboutdebugging/src/components/sidebar/SidebarRuntimeItem.css", - "dom/events/test/pointerevents/wpt/pointerevent_styles.css", - "dom/xml/test/old/books/classic.css", - "dom/xml/test/old/books/common.css", - "gfx/layers/apz/test/mochitest/helper_subframe_style.css", - "layout/generic/test/frame_selection_underline.css", - "layout/style/res/forms.css", - "layout/style/res/html.css", - "layout/style/res/scrollbars.css", - "security/manager/pki/resources/content/certManager.css", - "testing/marionette/harness/marionette_harness/tests/unit/assets/chrome/style.css", - "testing/mochitest/static/harness.css", - "testing/mozbase/mozlog/mozlog/formatters/html/style.css", - "testing/talos/talos/tests/scroll/reader.css", - "testing/talos/talos/tests/tart/addon/content/tab-min-width-1px.css", - "toolkit/components/aboutcheckerboard/content/aboutCheckerboard.css", - "toolkit/components/aboutconfig/content/aboutconfig.css", + "gfx/layers/layerviewer/tree.css", + "layout/style/res/ua.css", "toolkit/components/aboutinference/content/aboutInference.css", - "toolkit/components/aboutinference/content/model-files-view.css", - "toolkit/components/aboutprocesses/content/aboutProcesses.css", - "toolkit/components/aboutthirdparty/content/aboutThirdParty.css", - "toolkit/components/certviewer/content/certviewer.css", - "toolkit/components/certviewer/content/components/error-section.css", - "toolkit/components/certviewer/content/components/info-group.css", - "toolkit/components/normandy/content/about-studies/about-studies.css", - "toolkit/components/printing/content/print.css", - "toolkit/components/printing/content/printPagination.css", - "toolkit/components/printing/content/printPreview.css", - "toolkit/components/printing/content/toggle-group.css", - "toolkit/components/reader/moz-slider.css", - "toolkit/components/resistfingerprinting/content/letterboxing.css", - "toolkit/components/satchel/megalist/content/components/login-line/login-line.css", - "toolkit/components/satchel/megalist/content/components/password-card/password-card.css", - "toolkit/components/satchel/megalist/content/megalist.css", - "toolkit/components/translations/content/about-translations.css", - "toolkit/content/aboutGlean.css", - "toolkit/content/aboutLogging/aboutLogging.css", "toolkit/content/aboutTelemetry.css", - "toolkit/content/aboutwebrtc/aboutWebrtc.css", - "toolkit/content/tests/widgets/videomask.css", "toolkit/content/widgets/infobar.css", - "toolkit/content/widgets/moz-button/moz-button.css", - "toolkit/content/widgets/moz-input-color/moz-input-color.css", - "toolkit/content/widgets/moz-input-folder/moz-input-folder.css", - "toolkit/content/widgets/moz-input-text/moz-input-text.css", - "toolkit/content/widgets/moz-message-bar/moz-message-bar.css", - "toolkit/content/widgets/moz-page-nav/moz-page-nav-button.css", - "toolkit/content/widgets/moz-page-nav/moz-page-nav.css", - "toolkit/content/widgets/moz-promo/moz-promo.css", - "toolkit/content/widgets/moz-reorderable-list/moz-reorderable-list.css", - "toolkit/content/widgets/moz-select/moz-select.css", - "toolkit/content/widgets/moz-toggle/moz-toggle.css", - "toolkit/content/widgets/panel-list/panel-item.css", - "toolkit/content/widgets/panel-list/panel-list.css", - "toolkit/content/widgets/moz-box-group/moz-box-group.css", - "toolkit/content/xul.css", - "toolkit/crashreporter/content/crashes.css", - "toolkit/mozapps/extensions/content/aboutaddons.css", - "toolkit/mozapps/extensions/content/components/mlmodel-card-header-additions.css", "toolkit/mozapps/extensions/content/shortcuts.css", - "toolkit/themes/linux/global/autocomplete.css", - "toolkit/themes/linux/mozapps/update/updates.css", - "toolkit/themes/osx/global/autocomplete.css", - "toolkit/themes/osx/global/button.css", - "toolkit/themes/osx/global/global.css", - "toolkit/themes/osx/global/in-content/common.css", - "toolkit/themes/osx/global/wizard.css", - "toolkit/themes/osx/mozapps/handling/handling.css", - "toolkit/themes/osx/mozapps/update/updates.css", - "toolkit/themes/shared/aboutHttpsOnlyError.css", - "toolkit/themes/shared/aboutLicense.css", - "toolkit/themes/shared/aboutNetError.css", "toolkit/themes/shared/aboutReader.css", - "toolkit/themes/shared/aboutServiceWorkers.css", - "toolkit/themes/shared/aboutSupport.css", "toolkit/themes/shared/alert.css", - "toolkit/themes/shared/appPicker.css", - "toolkit/themes/shared/checkbox.css", - "toolkit/themes/shared/close-icon.css", - "toolkit/themes/shared/commonDialog.css", - "toolkit/themes/shared/datetimeinputpickers.css", - "toolkit/themes/shared/design-system/storybook/tokens-table.css", - "toolkit/themes/shared/dirListing/dirListing.css", - "toolkit/themes/shared/downloads/unknownContentType.css", - "toolkit/themes/shared/error-pages.css", "toolkit/themes/shared/findbar.css", - "toolkit/themes/shared/global-shared.css", "toolkit/themes/shared/in-content/common-shared.css", - "toolkit/themes/shared/in-content/info-pages.css", - "toolkit/themes/shared/menu.css", - "toolkit/themes/shared/menulist.css", - "toolkit/themes/shared/narrate.css", - "toolkit/themes/shared/offlineSupportPages.css", "toolkit/themes/shared/pictureinpicture/player.css", - "toolkit/themes/shared/pictureinpicture/texttracks.css", "toolkit/themes/shared/popup.css", - "toolkit/themes/shared/popupnotification.css", - "toolkit/themes/shared/profileDowngrade.css", - "toolkit/themes/shared/radio.css", - "toolkit/themes/shared/splitter.css", - "toolkit/themes/shared/toolbar.css", "toolkit/themes/shared/toolbarbutton.css", "toolkit/themes/shared/tree/tree.css", - "toolkit/themes/windows/global/autocomplete.css", - "toolkit/themes/windows/global/global.css", - "toolkit/themes/windows/global/wizard.css", - "toolkit/themes/windows/mozapps/handling/handling.css", - "toolkit/themes/windows/mozapps/update/updates.css", - "tools/tryselect/selectors/chooser/static/style.css", ], }, ]; diff --git a/tools/lint/stylelint/stylelint-plugin-mozilla/config.mjs b/tools/lint/stylelint/stylelint-plugin-mozilla/config.mjs @@ -0,0 +1,36 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** + * @typedef {object} PropertyTypeConfig + * @property {string[]} allow Allowed keyword values (e.g., "auto", "none", "transparent") + * @property {string[]} [tokenTypes] Token categories from tokens-table.mjs whose tokens are valid + * @property {string[]} [allowFunctions] Allowed CSS function names (e.g., "url", "linear-gradient") + * @property {boolean} [allowUnits] Whether values with CSS units (e.g., "10px", "50%") are allowed + * @property {Record<string, string>} [customFixes] Map of raw values to their token replacements for autofix + */ + +/** @type {PropertyTypeConfig} */ +const BoxShadow = { + allow: ["none"], + tokenTypes: ["box-shadow"], +}; + +/** + * @typedef {object} PropertyConfig + * @property {PropertyTypeConfig[]} validTypes Valid type configurations for this property + * @property {boolean} [shorthand] Whether this property accepts multiple space-separated values + * @property {boolean} [multiple] Whether this property accepts comma-separated value groups + * @property {boolean} [slash] Whether this property accepts slash-separated values (e.g., position/size) + */ + +/** @type {Record<string, PropertyConfig>} */ +export const propertyConfig = { + "box-shadow": { + validTypes: [BoxShadow], + multiple: true, + }, +}; diff --git a/tools/lint/stylelint/stylelint-plugin-mozilla/helpers.mjs b/tools/lint/stylelint/stylelint-plugin-mozilla/helpers.mjs @@ -421,7 +421,7 @@ export const isValidValue = ( /** * Checks if CSS value uses tokens correctly (as a group). * - * @param {string} value some CSS declaration to match + * @param {string | import('postcss').Node} value some CSS declaration to match * @param {string[]} tokenCSS * @param {object} cssCustomProperties * @param {string[]} allowList defaults to the base list in this file @@ -433,7 +433,9 @@ export const isValidTokenUsage = ( cssCustomProperties, allowList = ALLOW_LIST ) => { - const parsed = valueParser(value); + // TODO: this handles both string and postcss node values to support the old rule implementation + // once all design token rules are consolidated, we can remove this and use only postcss nodes + const parsed = typeof value === "string" ? valueParser(value) : value; let isValid = false; parsed.walk(node => { diff --git a/tools/lint/stylelint/stylelint-plugin-mozilla/property-validator.mjs b/tools/lint/stylelint/stylelint-plugin-mozilla/property-validator.mjs @@ -0,0 +1,228 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +import valueParser from "postcss-value-parser"; +import { getTokensTable } from "./helpers.mjs"; + +const tokensTable = getTokensTable(); + +/** + * Validates whether a given CSS property value complies with allowed design token rules. + * + * @class + * @property {PropertyConfig} config Configuration for the given property. + */ +export class PropertyValidator { + static GLOBAL_WORDS = new Set([ + "inherit", + "initial", + "revert", + "revert-layer", + "unset", + ]); + + /** @type {PropertyConfig} */ + config; + /** @type {Set<string>} */ + allowedWords; + /** @type {Set<string>} */ + validTokenNames; + /** @type {Set<string>} */ + allowedFunctions; + /** @type {boolean} */ + allowUnits; + /** @type {Record<string, string>} */ + customFixes; + + constructor(config) { + this.config = config; + this.allowedWords = new Set( + this.config.validTypes + .flatMap(propType => propType.allow) + .concat(...PropertyValidator.GLOBAL_WORDS) + ); + this.validTokenNames = new Set( + this.config.validTypes.flatMap(propType => + (propType.tokenTypes || []).flatMap(tokenType => + tokensTable[tokenType].map(token => token.name) + ) + ) + ); + this.allowedFunctions = new Set( + this.config.validTypes.flatMap(propType => propType.allowFunctions || []) + ); + this.allowUnits = this.config.validTypes.some( + propType => propType.allowUnits + ); + this.customFixes = this.config.validTypes + .map(type => type.customFixes) + .filter(Boolean) + .reduce((acc, fixes) => ({ ...acc, ...fixes }), {}); + } + + getFixedValue(parsedValue) { + let hasFixes = false; + parsedValue.walk(node => { + if (node.type == "word") { + const token = this.customFixes[node.value.trim().toLowerCase()]; + if (token) { + hasFixes = true; + node.value = token; + } + } + }); + return hasFixes ? parsedValue.toString() : null; + } + + getFunctionArguments(node) { + const argGroups = []; + let currentArg = []; + for (const part of node.nodes) { + if (part.type === "div") { + argGroups.push(currentArg); + currentArg = []; + } else { + currentArg.push(part); + } + } + argGroups.push(currentArg); + return argGroups; + } + + isAllowedDiv(value) { + if (value === ",") { + return Boolean(this.config.multiple); + } + if (value === "/") { + return Boolean(this.config.slash); + } + return false; + } + + isAllowedFunction(functionType) { + return this.allowedFunctions.has(functionType); + } + + isAllowedSpace() { + return Boolean(this.config.shorthand); + } + + isAllowedWord(word) { + if (this.allowUnits && this.isUnit(word)) { + return true; + } + const lowerWord = word.toLowerCase(); + return Array.from(this.allowedWords).some( + allowed => allowed.toLowerCase() === lowerWord + ); + } + + isUnit(word) { + const parsed = valueParser.unit(word); + return parsed !== false && parsed.unit !== ""; + } + + static isCalcOperand(node) { + if (node.type === "space") { + return true; + } + if (node.type === "word") { + return ( + /^[\+\-\*\/]$/.test(node.value) || /^-?\d+(\.\d+)?$/.test(node.value) + ); + } + return false; + } + + isValidCalcFunction(node) { + return node.nodes.every( + n => PropertyValidator.isCalcOperand(n) || this.isValidNode(n) + ); + } + + isValidColorMixFunction(node) { + // ignore the first argument (color space) + let [, ...colors] = this.getFunctionArguments(node); + return colors.every(color => + color.every( + part => + part.type == "space" || + (part.type == "word" && part.value.endsWith("%")) || + this.isValidNode(part) + ) + ); + } + + isValidFunction(node) { + switch (node.value) { + case "var": + return this.isValidVarFunction(node); + case "calc": + return this.isValidCalcFunction(node); + case "light-dark": + return this.isValidLightDarkFunction(node); + case "color-mix": + return this.isValidColorMixFunction(node); + default: + return this.isAllowedFunction(node.value); + } + } + + isValidLightDarkFunction(node) { + return node.nodes.every(n => n.type == "div" || this.isValidNode(n)); + } + + isValidNode(node) { + switch (node.type) { + case "space": + return this.isAllowedSpace(); + case "div": + return this.isAllowedDiv(node.value); + case "word": + return this.isAllowedWord(node.value); + case "function": + return this.isValidFunction(node); + default: + return false; + } + } + + isValidPropertyValue(parsedValue, localVars) { + this.localVars = localVars; + return parsedValue.nodes.every(node => this.isValidNode(node)); + } + + isValidToken(tokenName) { + return this.validTokenNames.has(tokenName); + } + + getTokenCategories() { + if (!this._categories) { + const categories = new Set(); + this.config.validTypes.forEach(propType => { + if (propType.tokenTypes) { + propType.tokenTypes.forEach(category => categories.add(category)); + } + }); + this._categories = Array.from(categories); + } + return this._categories; + } + + isValidVarFunction(node) { + const [varNameNode, , fallback] = node.nodes; + const varName = varNameNode.value; + if (this.isValidToken(varName)) { + return true; + } + const localVar = this.localVars[varName]; + return ( + (localVar && + valueParser(localVar).nodes.every(n => this.isValidNode(n))) || + (fallback && this.isValidNode(fallback)) + ); + } +} diff --git a/tools/lint/stylelint/stylelint-plugin-mozilla/rules/index.mjs b/tools/lint/stylelint/stylelint-plugin-mozilla/rules/index.mjs @@ -13,7 +13,7 @@ import useFontWeightTokens from "./use-font-weight-tokens.mjs"; import useSpaceTokens from "./use-space-tokens.mjs"; import useBackgroundColorTokens from "./use-background-color-tokens.mjs"; import useTextColorTokens from "./use-text-color-tokens.mjs"; -import useBoxShadowTokens from "./use-box-shadow-tokens.mjs"; +import useDesignTokens from "./use-design-tokens.mjs"; import noNonSemanticTokenUsage from "./no-non-semantic-token-usage.mjs"; import useSizeTokens from "./use-size-tokens.mjs"; @@ -27,7 +27,7 @@ export default { "use-space-tokens": useSpaceTokens, "use-background-color-tokens": useBackgroundColorTokens, "use-text-color-tokens": useTextColorTokens, - "use-box-shadow-tokens": useBoxShadowTokens, + "use-design-tokens": useDesignTokens, "no-non-semantic-token-usage": noNonSemanticTokenUsage, "use-size-tokens": useSizeTokens, }; diff --git a/tools/lint/stylelint/stylelint-plugin-mozilla/rules/use-box-shadow-tokens.mjs b/tools/lint/stylelint/stylelint-plugin-mozilla/rules/use-box-shadow-tokens.mjs @@ -1,74 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -import stylelint from "stylelint"; -import { - createTokenNamesArray, - createAllowList, - getLocalCustomProperties, - isValidTokenUsage, - namespace, -} from "../helpers.mjs"; - -const { - utils: { report, ruleMessages, validateOptions }, -} = stylelint; - -const ruleName = namespace("use-box-shadow-tokens"); - -const messages = ruleMessages(ruleName, { - rejected: value => `${value} should use a box-shadow design token.`, -}); - -const meta = { - url: "https://firefox-source-docs.mozilla.org/code-quality/lint/linters/stylelint-plugin-mozilla/rules/use-box-shadow-tokens.html", - fixable: false, -}; - -const PROPERTY_NAME = "box-shadow"; - -const tokenCSS = createTokenNamesArray([PROPERTY_NAME]); - -const ALLOW_LIST = createAllowList(["none"]); - -const ruleFunction = primaryOption => { - return (root, result) => { - const validOptions = validateOptions(result, ruleName, { - actual: primaryOption, - possible: [true], - }); - - if (!validOptions) { - return; - } - - const cssCustomProperties = getLocalCustomProperties(root); - - root.walkDecls(PROPERTY_NAME, declarations => { - if ( - isValidTokenUsage( - declarations.value, - tokenCSS, - cssCustomProperties, - ALLOW_LIST - ) - ) { - return; - } - - report({ - message: messages.rejected(declarations.value), - node: declarations, - result, - ruleName, - }); - }); - }; -}; - -ruleFunction.ruleName = ruleName; -ruleFunction.messages = messages; -ruleFunction.meta = meta; - -export default ruleFunction; diff --git a/tools/lint/stylelint/stylelint-plugin-mozilla/rules/use-design-tokens.mjs b/tools/lint/stylelint/stylelint-plugin-mozilla/rules/use-design-tokens.mjs @@ -0,0 +1,103 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/** @import { PropertyConfig, PropertyTypeConfig } from "../config.mjs" */ + +import stylelint from "stylelint"; +import valueParser from "postcss-value-parser"; +import { namespace, getLocalCustomProperties } from "../helpers.mjs"; +import { propertyConfig } from "../config.mjs"; +import { PropertyValidator } from "../property-validator.mjs"; + +const { + utils: { report, ruleMessages, validateOptions }, +} = stylelint; + +const ruleName = namespace("use-design-tokens"); + +const formatPropertyNames = property => + property.match(/^[aeiou]/i) ? `an ${property}` : `a ${property}`; + +const formatTokenCategory = categories => { + const firstCategories = categories.slice(0, -1).join(", "); + const lastCategory = categories[categories.length - 1]; + const formattedCategories = [firstCategories, lastCategory] + .filter(Boolean) + .join(" or "); + return `${formatPropertyNames(formattedCategories)} `; +}; + +const messages = ruleMessages(ruleName, { + rejected: (value, tokenCategories, suggestedValue) => { + let message = `${value} should use ${formatTokenCategory(tokenCategories)}design token.`; + if (suggestedValue) { + message += ` Suggested value: ${suggestedValue}. This may be fixable by running the same command again with --fix.`; + } + return message; + }, +}); + +const meta = { + url: "https://firefox-source-docs.mozilla.org/code-quality/lint/linters/stylelint-plugin-mozilla/rules/use-design-tokens.html", + fixable: true, +}; + +const ruleFunction = primaryOption => { + return (root, result) => { + const validOptions = validateOptions(result, ruleName, { + actual: primaryOption, + possible: [true, null], + }); + + if (!validOptions || primaryOption === null) { + return; + } + + const cssCustomProperties = getLocalCustomProperties(root); + + root.walkDecls(decl => { + const { prop, value } = decl; + + const config = propertyConfig[prop]; + if (!config) { + return; + } + + if (!config.validator) { + config.validator = new PropertyValidator(config); + } + + const parsedValue = valueParser(value); + const isValid = config.validator.isValidPropertyValue( + parsedValue, + cssCustomProperties + ); + + if (!isValid) { + const fixedValue = config.validator.getFixedValue(parsedValue); + const tokenCategories = config.validator.getTokenCategories(); + + report({ + message: messages.rejected(value, tokenCategories, fixedValue), + node: decl, + result, + ruleName, + fix: () => { + if (fixedValue !== null) { + decl.value = fixedValue; + } + }, + }); + } + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = messages; +ruleFunction.meta = meta; + +export default ruleFunction; diff --git a/tools/lint/stylelint/stylelint-plugin-mozilla/tests/use-box-shadow-tokens.tests.mjs b/tools/lint/stylelint/stylelint-plugin-mozilla/tests/use-box-shadow-tokens.tests.mjs @@ -1,141 +0,0 @@ -/** - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -// Bug 1948378: remove this exception when the eslint import plugin fully -// supports exports in package.json files -// eslint-disable-next-line import/no-unresolved -import { testRule } from "stylelint-test-rule-node"; -import stylelint from "stylelint"; -import useBoxShadowTokens from "../rules/use-box-shadow-tokens.mjs"; - -let plugin = stylelint.createPlugin( - useBoxShadowTokens.ruleName, - useBoxShadowTokens -); -let { - ruleName, - rule: { messages }, -} = plugin; - -testRule({ - plugins: [plugin], - ruleName, - config: [true, { tokenType: "brand" }], - fix: false, - accept: [ - // allowed token values - { - code: ".a { box-shadow: var(--box-shadow-card); }", - description: "Using box-shadow-card token is valid.", - }, - { - code: ".a { box-shadow: var(--box-shadow-card-hover); }", - description: "Using box-shadow-card-hover token is valid.", - }, - { - code: ".a { box-shadow: var(--box-shadow-level-1); }", - description: "Using box-shadow-level-1 token is valid.", - }, - { - code: ".a { box-shadow: var(--box-shadow-level-2); }", - description: "Using box-shadow-level-2 token is valid.", - }, - { - code: ".a { box-shadow: var(--box-shadow-level-3); }", - description: "Using box-shadow-level-3 token is valid.", - }, - { - code: ".a { box-shadow: var(--box-shadow-level-4); }", - description: "Using box-shadow-level-4 token is valid.", - }, - { - code: ".a { box-shadow: var(--box-shadow-popup); }", - description: "Using box-shadow-popup token is valid.", - }, - { - code: ".a { box-shadow: var(--box-shadow-tab); }", - description: "Using box-shadow-tab token is valid.", - }, - // allowed CSS values - { - code: ".a { box-shadow: inherit; }", - description: "Using inherit is valid.", - }, - { - code: ".a { box-shadow: initial; }", - description: "Using initial is valid.", - }, - { - code: ".a { box-shadow: revert; }", - description: "Using revert is valid.", - }, - { - code: ".a { box-shadow: revert-layer; }", - description: "Using revert-layer is valid.", - }, - { - code: ".a { box-shadow: unset; }", - description: "Using unset is valid.", - }, - { - code: ".a { box-shadow: none; }", - description: "Using none keyword is valid.", - }, - // fallbacks and custom properties - { - code: ".a { box-shadow:var(--my-local, var(--box-shadow-level-1)); }", - description: - "Using a custom property with fallback to design token is valid.", - }, - { - code: ` - :root { --custom-token: var(--box-shadow-card); } - .a { box-shadow: var(--custom-token); } - `, - description: - "Using a custom property with fallback to a design token is valid.", - }, - ], - - reject: [ - { - code: ".a { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); }", - message: messages.rejected("0 1px 3px rgba(0, 0, 0, 0.12)"), - description: "Using hardcoded box-shadow should use a design token.", - }, - { - code: ".a { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); }", - message: messages.rejected( - "0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)" - ), - description: "Using multiple box-shadows should use a design token.", - }, - { - code: ".a { box-shadow: calc(var(--my-local) + 1px) 2px 4px rgba(0, 0, 0, 0.1); }", - message: messages.rejected( - "calc(var(--my-local) + 1px) 2px 4px rgba(0, 0, 0, 0.1)" - ), - description: - "Using a calc() with custom variables should use a design token.", - }, - { - code: ".a { box-shadow: var(--random-token, 0 2px 4px rgba(0, 0, 0, 0.1)); }", - message: messages.rejected( - "var(--random-token, 0 2px 4px rgba(0, 0, 0, 0.1))" - ), - description: "Using a custom property should use a design token.", - }, - { - code: ` - :root { --custom-token: 0 2px 4px rgba(0, 0, 0, 0.1); } - .a { box-shadow: var(--custom-token); } - `, - message: messages.rejected("var(--custom-token)"), - description: - "Using a custom property that does not resolve to a design token should use a design token.", - }, - ], -}); diff --git a/tools/lint/stylelint/stylelint-plugin-mozilla/tests/use-design-tokens.box-shadow.tests.mjs b/tools/lint/stylelint/stylelint-plugin-mozilla/tests/use-design-tokens.box-shadow.tests.mjs @@ -0,0 +1,169 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +// Bug 1948378: remove this exception when the eslint import plugin fully +// supports exports in package.json files +// eslint-disable-next-line import/no-unresolved +import { testRule } from "stylelint-test-rule-node"; +import stylelint from "stylelint"; +import useDesignTokens from "../rules/use-design-tokens.mjs"; + +let plugin = stylelint.createPlugin(useDesignTokens.ruleName, useDesignTokens); +let { + ruleName, + rule: { messages }, +} = plugin; + +testRule({ + plugins: [plugin], + ruleName, + config: true, + fix: false, + accept: [ + // allowed token values + { + code: ".a { box-shadow: var(--box-shadow-card); }", + description: "Using box-shadow-card token is valid.", + }, + { + code: ".a { box-shadow: var(--box-shadow-card-hover); }", + description: "Using box-shadow-card-hover token is valid.", + }, + { + code: ".a { box-shadow: var(--box-shadow-level-1); }", + description: "Using box-shadow-level-1 token is valid.", + }, + { + code: ".a { box-shadow: var(--box-shadow-level-2); }", + description: "Using box-shadow-level-2 token is valid.", + }, + { + code: ".a { box-shadow: var(--box-shadow-level-2), var(--box-shadow-level-1); }", + description: "Multiple shadows using tokens is allowed.", + }, + { + code: ".a { box-shadow: var(--box-shadow-level-3); }", + description: "Using box-shadow-level-3 token is valid.", + }, + { + code: ".a { box-shadow: var(--box-shadow-level-4); }", + description: "Using box-shadow-level-4 token is valid.", + }, + { + code: ".a { box-shadow: var(--box-shadow-popup); }", + description: "Using box-shadow-popup token is valid.", + }, + { + code: ".a { box-shadow: var(--box-shadow-tab); }", + description: "Using box-shadow-tab token is valid.", + }, + // allowed CSS values + { + code: ".a { box-shadow: inherit; }", + description: "Using inherit is valid.", + }, + { + code: ".a { box-shadow: initial; }", + description: "Using initial is valid.", + }, + { + code: ".a { box-shadow: revert; }", + description: "Using revert is valid.", + }, + { + code: ".a { box-shadow: revert-layer; }", + description: "Using revert-layer is valid.", + }, + { + code: ".a { box-shadow: unset; }", + description: "Using unset is valid.", + }, + { + code: ".a { box-shadow: none; }", + description: "Using none keyword is valid.", + }, + // fallbacks and custom properties + { + code: ".a { box-shadow:var(--my-local, var(--box-shadow-level-1)); }", + description: + "Using a custom property with fallback to design token is valid.", + }, + { + code: ` + :root { --custom-token: var(--box-shadow-card); } + .a { box-shadow: var(--custom-token); } + `, + description: + "Using a custom property with fallback to a design token is valid.", + }, + ], + + reject: [ + { + code: ".a { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); }", + message: messages.rejected("0 1px 3px rgba(0, 0, 0, 0.12)", [ + "box-shadow", + ]), + description: "Using hardcoded box-shadow should use a design token.", + }, + { + code: ".a { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24); }", + message: messages.rejected( + "0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24)", + ["box-shadow"] + ), + description: "Using multiple box-shadows should use a design token.", + }, + { + code: ".a { box-shadow: calc(var(--my-local) + 1px) 2px 4px rgba(0, 0, 0, 0.1); }", + message: messages.rejected( + "calc(var(--my-local) + 1px) 2px 4px rgba(0, 0, 0, 0.1)", + ["box-shadow"] + ), + description: + "Using a calc() with custom variables should use a design token.", + }, + { + code: ".a { box-shadow: var(--random-token, 0 2px 4px rgba(0, 0, 0, 0.1)); }", + message: messages.rejected( + "var(--random-token, 0 2px 4px rgba(0, 0, 0, 0.1))", + ["box-shadow"] + ), + description: "Using a custom property should use a design token.", + }, + { + code: ` + :root { --custom-token: 0 2px 4px rgba(0, 0, 0, 0.1); } + .a { box-shadow: var(--custom-token); } + `, + message: messages.rejected("var(--custom-token)", ["box-shadow"]), + description: + "Using a custom property that does not resolve to a design token should use a design token.", + }, + { + code: ` + :root { --custom-token: 0 2px 4px rgba(0, 0, 0, 0.1); } + .a { box-shadow: var(--custom-token), var(--box-shadow-level-1); } + `, + message: messages.rejected( + "var(--custom-token), var(--box-shadow-level-1)", + ["box-shadow"] + ), + description: "All shadows must use a design token (invalid first)", + }, + { + code: ` + :root { --custom-token: 0 2px 4px rgba(0, 0, 0, 0.1); } + .a { box-shadow: var(--box-shadow-level-1), var(--custom-token); } + `, + message: messages.rejected( + "var(--box-shadow-level-1), var(--custom-token)", + ["box-shadow"] + ), + description: "All shadows must use a design token (invalid second)", + }, + ], +});