From 103dd9f717d1ba19f6bdafec7f752abd226107be Mon Sep 17 00:00:00 2001 From: Maria Hutt Date: Thu, 5 Nov 2026 16:22:48 -0800 Subject: [PATCH] chore(styles): restructure stylesheets to follow Docusaurus' layout --- docusaurus.config.js | 2 +- .../global/BestPracticeFigure/index.tsx | 106 +++---- ...-practice-figure.css => styles.module.css} | 32 +- src/components/global/DocDemo/index.js | 28 +- .../DocDemo/{demo.css => styles.module.css} | 48 ++- src/components/global/DocsCard/index.tsx | 6 +- .../global/DocsCard/styles.module.scss | 96 +----- src/components/global/DocsCards/cards.css | 20 -- .../{IconDots.css => IconDots.module.css} | 12 +- .../global/Playground/icons/IconDots.tsx | 4 +- .../global/PlaygroundTabs/styles.module.css | 8 - src/components/global/Tooltip/index.tsx | 6 +- .../{tooltip.css => styles.module.css} | 2 +- .../page/api/EncapsulationPill/index.tsx | 2 +- .../api/EncapsulationPill/styles.module.scss | 3 + .../page/intro/AppWizard/index.module.scss | 2 +- .../NativeEnterpriseCard/index.module.scss | 64 ---- .../theming/ColorGenerator/styles.module.scss | 20 -- src/css/README.md | 57 ++++ src/{styles => css}/_mixins.scss | 4 +- src/{styles => css}/custom.scss | 138 ++------ .../theme/Admonition.scss} | 16 +- src/css/theme/AnnouncementBar.scss | 40 +++ .../theme/BackToTopButton.scss} | 2 +- .../_code.scss => css/theme/CodeBlock.scss} | 12 +- .../theme/DocItem/Content.scss} | 57 +--- src/css/theme/DocPaginator.scss | 42 +++ .../theme/DocSidebar.scss} | 82 ++--- .../theme/EditThisPage.scss} | 0 .../theme/MDXComponents/Table.scss} | 24 -- src/css/theme/Navbar.scss | 266 ++++++++++++++++ .../theme/Navbar/MobileSidebar.scss} | 37 +-- .../_search.scss => css/theme/SearchBar.scss} | 44 ++- src/css/theme/TOC.scss | 26 ++ .../_tabs.scss => css/theme/Tabs.scss} | 6 +- src/styles/README.md | 6 - src/styles/components/README.md | 37 --- src/styles/components/_doc-item.scss | 78 ----- src/styles/components/_doc-root.scss | 21 -- src/styles/components/_navbar.scss | 300 ------------------ src/styles/components/_pagination.scss | 46 --- src/styles/components/_toc.scss | 94 ------ src/theme/DocItem/Layout/index.tsx | 14 +- src/theme/DocItem/Layout/styles.module.css | 65 ++++ src/theme/DocRoot/Layout/Main/index.tsx | 4 +- .../DocRoot/Layout/Main/styles.module.css | 10 + src/theme/DocSidebar/index.tsx | 4 +- src/theme/DocSidebar/styles.module.css | 6 + src/theme/EditMetaRow/index.tsx | 5 +- src/theme/EditMetaRow/styles.module.css | 26 ++ src/theme/Icon/Edit/index.tsx | 2 +- src/theme/Icon/Edit/styles.module.css | 11 + src/theme/Layout/index.tsx | 2 +- src/theme/Layout/styles.module.css | 28 ++ .../{Table.tsx => Table/index.tsx} | 4 +- .../MDXComponents/Table/styles.module.css | 3 + .../LocaleDropdownNavbarItem/index.tsx | 5 +- .../styles.module.css | 34 +- src/theme/README.md | 12 +- src/theme/TOC/index.tsx | 6 +- src/theme/TOC/styles.module.css | 54 ++++ 61 files changed, 921 insertions(+), 1270 deletions(-) rename src/components/global/BestPracticeFigure/{best-practice-figure.css => styles.module.css} (61%) rename src/components/global/DocDemo/{demo.css => styles.module.css} (72%) rename src/components/global/Playground/icons/{IconDots.css => IconDots.module.css} (81%) rename src/components/global/Tooltip/{tooltip.css => styles.module.css} (96%) create mode 100644 src/css/README.md rename src/{styles => css}/_mixins.scss (79%) rename src/{styles => css}/custom.scss (59%) rename src/{styles/components/_admonition.scss => css/theme/Admonition.scss} (94%) create mode 100644 src/css/theme/AnnouncementBar.scss rename src/{styles/components/_back-to-top-button.scss => css/theme/BackToTopButton.scss} (80%) rename src/{styles/components/_code.scss => css/theme/CodeBlock.scss} (89%) rename src/{styles/components/_markdown.scss => css/theme/DocItem/Content.scss} (60%) create mode 100644 src/css/theme/DocPaginator.scss rename src/{styles/components/_doc-sidebar.scss => css/theme/DocSidebar.scss} (68%) rename src/{styles/components/_edit-this-page.scss => css/theme/EditThisPage.scss} (100%) rename src/{styles/components/_table.scss => css/theme/MDXComponents/Table.scss} (69%) create mode 100644 src/css/theme/Navbar.scss rename src/{styles/components/_navbar-sidebar.scss => css/theme/Navbar/MobileSidebar.scss} (63%) rename src/{styles/components/_search.scss => css/theme/SearchBar.scss} (70%) create mode 100644 src/css/theme/TOC.scss rename src/{styles/components/_tabs.scss => css/theme/Tabs.scss} (93%) delete mode 100644 src/styles/README.md delete mode 100644 src/styles/components/README.md delete mode 100644 src/styles/components/_doc-item.scss delete mode 100644 src/styles/components/_doc-root.scss delete mode 100644 src/styles/components/_navbar.scss delete mode 100644 src/styles/components/_pagination.scss delete mode 100644 src/styles/components/_toc.scss create mode 100644 src/theme/DocItem/Layout/styles.module.css create mode 100644 src/theme/DocRoot/Layout/Main/styles.module.css create mode 100644 src/theme/DocSidebar/styles.module.css create mode 100644 src/theme/Icon/Edit/styles.module.css create mode 100644 src/theme/Layout/styles.module.css rename src/theme/MDXComponents/{Table.tsx => Table/index.tsx} (92%) create mode 100644 src/theme/MDXComponents/Table/styles.module.css create mode 100644 src/theme/TOC/styles.module.css diff --git a/docusaurus.config.js b/docusaurus.config.js index 25fa433aa76..bdd8059a392 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -135,7 +135,7 @@ module.exports = { customCss: [ require.resolve('./node_modules/modern-normalize/modern-normalize.css'), require.resolve('./node_modules/@ionic-internal/ionic-ds/dist/tokens/tokens.css'), - require.resolve('./src/styles/custom.scss'), + require.resolve('./src/css/custom.scss'), ], }, }, diff --git a/src/components/global/BestPracticeFigure/index.tsx b/src/components/global/BestPracticeFigure/index.tsx index d66f48e2412..efeafff51a2 100644 --- a/src/components/global/BestPracticeFigure/index.tsx +++ b/src/components/global/BestPracticeFigure/index.tsx @@ -1,49 +1,49 @@ import React, { type ReactNode } from 'react'; -import './best-practice-figure.css'; +import styles from './styles.module.css'; /** - Usage: - - import BestPracticeFigure from '@components/global/BestPracticeFigure'; - - } - doNotImage={...} - /> - - All images must have alt text for screen readers. - - Custom HTML can also be passed to any of the text properties by using curly braces: - - text={<>My text with a link} - - Markdown such as backticks will not be processed when using curly braces. - The tag can be used instead: - - text={<>The button property} - - This component also supports a caution option. Typically you should use - either a "Don't" image or a "Caution" image but not both. - - } - cautionImage={...} - /> - - @prop text - Text that describes the figure as a whole - @prop doText - Text that describes a best practice - @prop doNotText - Text that describes an anti-pattern - @prop cautionText - Text that describes something that could be an anti-pattern based on use case - @prop doImage - Image associated with doText - @prop doNotImage - Image associated with doNotText - @prop cautionImage - Image associated with cautionText + * Usage: + * + * import BestPracticeFigure from '@components/global/BestPracticeFigure'; + * + * } + * doNotImage={...} + * /> + * + * All images must have alt text for screen readers. + * + * Custom HTML can also be passed to any of the text properties by using curly braces: + * + * text={<>My text with a link} + * + * Markdown such as backticks will not be processed when using curly braces. + * The tag can be used instead: + * + * text={<>The button property} + * + * This component also supports a caution option. Typically you should use + * either a "Don't" image or a "Caution" image but not both. + * + * } + * cautionImage={...} + * /> + * + * @prop text - Text that describes the figure as a whole + * @prop doText - Text that describes a best practice + * @prop doNotText - Text that describes an anti-pattern + * @prop cautionText - Text that describes something that could be an anti-pattern based on use case + * @prop doImage - Image associated with doText + * @prop doNotImage - Image associated with doNotText + * @prop cautionImage - Image associated with cautionText */ export default function BestPracticeFigure({ @@ -64,30 +64,30 @@ export default function BestPracticeFigure({ cautionImage?: ReactNode; }) { return ( -
+

{text}

-
-
-
{doImage}
+
+
+
{doImage}
-
Do
+
Do

{doText}

{doNotText && doNotImage && ( -
-
{doNotImage}
+
+
{doNotImage}
-
Don't
+
Don't

{doNotText}

)} {cautionText && cautionImage && ( -
-
{cautionImage}
+
+
{cautionImage}
-
Caution
+
Caution

{cautionText}

diff --git a/src/components/global/BestPracticeFigure/best-practice-figure.css b/src/components/global/BestPracticeFigure/styles.module.css similarity index 61% rename from src/components/global/BestPracticeFigure/best-practice-figure.css rename to src/components/global/BestPracticeFigure/styles.module.css index 140024cbf83..d2a1ff72a2e 100644 --- a/src/components/global/BestPracticeFigure/best-practice-figure.css +++ b/src/components/global/BestPracticeFigure/styles.module.css @@ -1,4 +1,4 @@ -.best-practice__do_dont { +.doDont { display: grid; grid-template-columns: 1fr 1fr; @@ -8,30 +8,30 @@ /* Collapse to 1 column per row on smaller viewports */ @media (max-width: 996px) { - .best-practice__do_dont { + .doDont { grid-template-columns: 1fr; } } -.best-practice__container figcaption { +.container figcaption { text-align: start; } -.best-practice__do p, -.best-practice__dont p, -.best-practice__caution p { +.do p, +.dont p, +.caution p { padding: 8px 16px; } -.best-practice__image-wrapper { +.imageWrapper { border-radius: 8px 8px 0px 0px; overflow: hidden; } -.best-practice__dont-text, -.best-practice__do-text, -.best-practice__caution-text { +.dontText, +.doText, +.cautionText { padding: 12px 16px; font-weight: 600; @@ -39,28 +39,28 @@ border-radius: 0px 0px 8px 8px; } -.best-practice__do .best-practice__image-wrapper { +.do .imageWrapper { border: 1px solid var(--c-blue-10); } -.best-practice__dont .best-practice__image-wrapper { +.dont .imageWrapper { border: 1px solid var(--c-red-10); } -.best-practice__caution .best-practice__image-wrapper { +.caution .imageWrapper { border: 1px solid var(--c-yellow-10); } -.best-practice__dont-text { +.dontText { color: var(--c-red-100); background: var(--c-red-10); } -.best-practice__do-text { +.doText { color: var(--c-blue-100); background: var(--c-blue-10); } -.best-practice__caution-text { +.cautionText { /* --c-yellow-100 does not have enough contrast * placed on top of --c-yellow-10, so we manually * choose a darker text color here. diff --git a/src/components/global/DocDemo/index.js b/src/components/global/DocDemo/index.js index 21984c697bc..6e0ca73496a 100644 --- a/src/components/global/DocDemo/index.js +++ b/src/components/global/DocDemo/index.js @@ -2,7 +2,7 @@ import React, { useEffect, useState, useRef, useCallback } from 'react'; import clsx from 'clsx'; import Link from '@docusaurus/Link'; -import './demo.css'; +import styles from './styles.module.css'; const DocDemo = (props) => { const [ionicMode, setIonicMode] = useState('ios'); @@ -41,11 +41,11 @@ const DocDemo = (props) => { }; const modeToggle = ( -
+
{['ios', 'md'].map((mode) => (