Skip to content

feat(Page): added styles for glass#12293

Open
thatblindgeye wants to merge 6 commits intopatternfly:mainfrom
thatblindgeye:iss12270_pageGlass
Open

feat(Page): added styles for glass#12293
thatblindgeye wants to merge 6 commits intopatternfly:mainfrom
thatblindgeye:iss12270_pageGlass

Conversation

@thatblindgeye
Copy link
Copy Markdown
Contributor

@thatblindgeye thatblindgeye commented Mar 25, 2026

What: Closes #12270

Waiting on core bump to go in to pull in correct styles object properties

Additional issues:

Summary by CodeRabbit

  • New Features

    • Added isPlain prop to PageSection and PageGroup to remove default background
    • Added isNoPlainOnGlass (beta) prop for specialized styling control
  • Refactor

    • Adjusted masthead and sidebar markup wrappers to improve structure and styling consistency
  • Tests

    • Added unit tests covering docked masthead, sidebar wrapper, and plain/no-plain modifiers
  • Documentation

    • Added docs and example demonstrating plain sections and groups usage

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 25, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3024e987-6721-4749-a08d-c55aab9ca3f4

📥 Commits

Reviewing files that changed from the base of the PR and between ce66449 and 7d90f05.

📒 Files selected for processing (3)
  • packages/react-core/src/components/Page/__tests__/Page.test.tsx
  • packages/react-core/src/components/Page/__tests__/PageGroup.test.tsx
  • packages/react-core/src/components/Page/__tests__/PageSection.test.tsx
✅ Files skipped from review due to trivial changes (2)
  • packages/react-core/src/components/Page/tests/PageSection.test.tsx
  • packages/react-core/src/components/Page/tests/Page.test.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/react-core/src/components/Page/tests/PageGroup.test.tsx

Walkthrough

Adds wrapper elements for docked masthead and sidebar content, and introduces isPlain and isNoPlainOnGlass boolean props to PageSection and PageGroup to toggle CSS modifier classes; tests, docs, and an example demonstrating plain sections were added or updated.

Changes

Cohort / File(s) Summary
Page layout wrappers
packages/react-core/src/components/Page/Page.tsx, packages/react-core/src/components/Page/PageSidebar.tsx
Wrapped docked masthead with an additional pageDockMain div and wrapped PageSidebar children with pageSidebarMain div. No public API signature changes.
Plain styling modifiers
packages/react-core/src/components/Page/PageGroup.tsx, packages/react-core/src/components/Page/PageSection.tsx
Added isPlain?: boolean and isNoPlainOnGlass?: boolean props (beta flag on isNoPlainOnGlass) and conditionally apply styles.modifiers.plain and styles.modifiers.noPlainOnGlass. Default destructured values set to false.
Tests
packages/react-core/src/components/Page/__tests__/Page.test.tsx, .../PageGroup.test.tsx, .../PageSection.test.tsx, .../PageSidebar.test.tsx
Added tests asserting pageDockMain and pageSidebarMain wrapper presence and modifier-class application; promoted PageGroup tests to top-level and added new assertions for isPlain/isNoPlainOnGlass.
Docs & examples
packages/react-core/src/components/Page/examples/Page.md, packages/react-core/src/components/Page/examples/PagePlainSections.tsx
Updated documentation to describe plain sections/groups and added PagePlainSections example component demonstrating isPlain usage and sidebar toggle behavior.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • nicolethoen
  • kmcfaul
  • mcoker
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title mentions 'added styles for glass' but the changes focus on DOM structure wrappers and component props rather than style definitions. Clarify whether 'styles for glass' refers to CSS class modifiers or DOM structure changes, or rename to reflect the actual implementation focus.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed The PR successfully implements all three objectives from issue #12270: introduces PageDockMain and PageSidebarMain wrappers, adds isPlain modifier to PageSection and PageGroup, and provides complete test coverage.
Out of Scope Changes check ✅ Passed All changes directly support the glass styles objectives. Documentation and example component additions are appropriate supporting materials for the new feature.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

❤️ Share

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

@patternfly-build
Copy link
Copy Markdown
Collaborator

patternfly-build commented Mar 25, 2026

@thatblindgeye
Copy link
Copy Markdown
Contributor Author

My assumption is the integration tests are failing due to this Core bug? patternfly/patternfly#8243

@thatblindgeye thatblindgeye marked this pull request as ready for review April 1, 2026 15:38
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (1)
packages/react-core/src/components/Page/examples/PagePlainSections.tsx (1)

48-50: Add rel="noopener noreferrer" for external link security.

When using target="_blank" with external links, it's a security best practice to include rel="noopener noreferrer" to prevent the opened page from accessing window.opener.

🔒 Proposed fix
-          <MastheadLogo href="https://patternfly.org" target="_blank">
+          <MastheadLogo href="https://patternfly.org" target="_blank" rel="noopener noreferrer">
             Logo
           </MastheadLogo>
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/react-core/src/components/Page/examples/PagePlainSections.tsx`
around lines 48 - 50, The external MastheadLogo anchor uses target="_blank"
without the security attributes; update the JSX for the MastheadLogo component
instance (the MastheadLogo element in PagePlainSections) to include
rel="noopener noreferrer" alongside target="_blank" so the opened page cannot
access window.opener and to mitigate reverse tabnabbing risks.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/react-core/src/components/Page/__tests__/Page.test.tsx`:
- Around line 410-417: Rename the first duplicate/misleading test title so it
reflects that the test asserts the absence of the pageDockMain wrapper when the
Page is not docked; update the test(...) string that currently reads "Renders
with ${styles.pageDockMain} wrapper when variant is docked" to something like
"Does not render ${styles.pageDockMain} wrapper when variant is not docked" to
avoid duplication with the positive docked case and make it clear this test
checks non-docked behavior (refer to the test block that renders <Page
masthead={<>Masthead</>} data-testid="page"> and uses
screen.getByText('Masthead').closest(`.${styles.pageDockMain}`)).

In `@packages/react-core/src/components/Page/__tests__/PageGroup.test.tsx`:
- Around line 99-102: The test title is incorrect: update the test description
for the test that renders <PageGroup isNoPlainOnGlass> so it references the
isNoPlainOnGlass prop (not isPlain). Locate the test with the template literal
test(`Renders with ${styles.modifiers.noPlainOnGlass} class when isPlain is
true`, ...) and change the string to something like "Renders with
${styles.modifiers.noPlainOnGlass} class when isNoPlainOnGlass is true" so the
title matches the prop under test (PageGroup, isNoPlainOnGlass,
styles.modifiers.noPlainOnGlass).

In `@packages/react-core/src/components/Page/__tests__/PageSection.test.tsx`:
- Around line 193-200: Update the test title to accurately reflect the prop
being tested: change the description string in the test for PageSection from
referencing isPlain to reference isNoPlainOnGlass; locate the test that renders
<PageSection hasBodyWrapper={false} isNoPlainOnGlass> and update its title to
something like "Renders with noPlainOnGlass class when isNoPlainOnGlass is true"
so it matches the assertion that expects styles.modifiers.noPlainOnGlass.

In `@packages/react-core/src/components/Page/Page.tsx`:
- Around line 351-354: The PR imports a missing CSS module causing
styles.pageDockMain (used in Page.tsx within the variant === 'docked' branch) to
be undefined; either add the Page CSS artifact to `@patternfly/react-styles`
exporting the required keys (pageDockMain and pageSidebarMain) or remove/guard
usages of styles.pageDockMain and styles.pageSidebarMain in the Page component
(and other Page-related files) until the CSS module exists; update the import
that references packages/react-styles/css/components/Page/page to point to the
correct file or ensure the package publishes the page CSS with the exact keys
expected by the Page component.

---

Nitpick comments:
In `@packages/react-core/src/components/Page/examples/PagePlainSections.tsx`:
- Around line 48-50: The external MastheadLogo anchor uses target="_blank"
without the security attributes; update the JSX for the MastheadLogo component
instance (the MastheadLogo element in PagePlainSections) to include
rel="noopener noreferrer" alongside target="_blank" so the opened page cannot
access window.opener and to mitigate reverse tabnabbing risks.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bac938c5-d927-4bdb-af19-bbf905e56989

📥 Commits

Reviewing files that changed from the base of the PR and between 93e7816 and ce66449.

⛔ Files ignored due to path filters (3)
  • packages/react-core/src/components/Page/__tests__/Generated/__snapshots__/PageSidebar.test.tsx.snap is excluded by !**/*.snap, !**/generated/**
  • packages/react-core/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap is excluded by !**/*.snap
  • packages/react-core/src/components/Page/__tests__/__snapshots__/PageGroup.test.tsx.snap is excluded by !**/*.snap
📒 Files selected for processing (10)
  • packages/react-core/src/components/Page/Page.tsx
  • packages/react-core/src/components/Page/PageGroup.tsx
  • packages/react-core/src/components/Page/PageSection.tsx
  • packages/react-core/src/components/Page/PageSidebar.tsx
  • packages/react-core/src/components/Page/__tests__/Page.test.tsx
  • packages/react-core/src/components/Page/__tests__/PageGroup.test.tsx
  • packages/react-core/src/components/Page/__tests__/PageSection.test.tsx
  • packages/react-core/src/components/Page/__tests__/PageSidebar.test.tsx
  • packages/react-core/src/components/Page/examples/Page.md
  • packages/react-core/src/components/Page/examples/PagePlainSections.tsx

Comment on lines +410 to +417
test(`Renders with ${styles.pageDockMain} wrapper when variant is docked`, () => {
render(<Page masthead={<>Masthead</>} data-testid="page"></Page>);

const pageDockMain = screen.getByText('Masthead').closest(`.${styles.pageDockMain}`);
expect(pageDockMain).not.toBeInTheDocument();
});

test(`Renders with ${styles.pageDockMain} wrapper when variant is docked`, () => {
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Rename the first dock-wrapper test; current title is misleading and duplicated.

The first new test verifies the absence of pageDockMain when variant is not docked, but its title duplicates the docked-positive case.

Proposed test-title fix
-test(`Renders with ${styles.pageDockMain} wrapper when variant is docked`, () => {
+test(`Does not render ${styles.pageDockMain} wrapper when variant is not docked`, () => {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/react-core/src/components/Page/__tests__/Page.test.tsx` around lines
410 - 417, Rename the first duplicate/misleading test title so it reflects that
the test asserts the absence of the pageDockMain wrapper when the Page is not
docked; update the test(...) string that currently reads "Renders with
${styles.pageDockMain} wrapper when variant is docked" to something like "Does
not render ${styles.pageDockMain} wrapper when variant is not docked" to avoid
duplication with the positive docked case and make it clear this test checks
non-docked behavior (refer to the test block that renders <Page
masthead={<>Masthead</>} data-testid="page"> and uses
screen.getByText('Masthead').closest(`.${styles.pageDockMain}`)).

Comment on lines +351 to +354
{variant === 'docked' ? (
<div className={css(styles.pageDock)}>
<div className={css(styles.pageDockMain)}>{masthead}</div>
</div>
Copy link
Copy Markdown

@coderabbitai coderabbitai bot Apr 1, 2026

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Checking Page component references..."
rg -n 'styles\.pageDockMain|styles\.pageSidebarMain' packages/react-core/src/components/Page

echo "Locating generated Page style artifacts..."
fd -i 'page.*' | rg -n 'components[/\\]Page[/\\]page(\.|$)|css/components/Page/page(\.|$)' || true

echo "Verifying style keys exist in available artifacts..."
fd -i 'page.*' | xargs -r rg -n 'pageDockMain|pageSidebarMain'

Repository: patternfly/patternfly-react

Length of output: 4154


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Finding imports of styles in Page.tsx ==="
head -50 packages/react-core/src/components/Page/Page.tsx | grep -n "import.*styles\|from.*styles"

echo -e "\n=== Checking where styles object comes from ==="
rg -n "^import.*styles" packages/react-core/src/components/Page/Page.tsx | head -5

echo -e "\n=== Locating style definition files ==="
fd -i "page\.scss|page\.css|page\.module" packages/

echo -e "\n=== Checking for style type definitions ==="
fd -type f -name "*.d.ts" -path "*/Page/*" | head -20

echo -e "\n=== Searching for pageDockMain in type definitions ==="
rg -n "pageDockMain" --type ts packages/ 2>/dev/null | head -20

Repository: patternfly/patternfly-react

Length of output: 687


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Checking package.json for `@patternfly/react-styles` version ==="
rg -A2 '"@patternfly/react-styles"' package.json packages/react-core/package.json 2>/dev/null | head -10

echo -e "\n=== Checking if node_modules is available ==="
ls -la node_modules/@patternfly/react-styles/css/components/Page/ 2>/dev/null || echo "node_modules not available"

echo -e "\n=== Searching for TypeScript type definitions for page styles ==="
fd page packages/react-core/src -type f | grep -E "\.(d\.ts|tsx)$" | head -10

echo -e "\n=== Checking test file to see if pageDockMain is defined in a type ==="
rg -B5 "pageDockMain" packages/react-core/src/components/Page/__tests__/Page.test.tsx | head -30

echo -e "\n=== Checking if styles object has a type annotation ==="
rg -A3 "import styles from" packages/react-core/src/components/Page/Page.tsx

echo -e "\n=== Looking for any .d.ts or type stubs related to page ==="
fd "page" packages/react-core -name "*.d.ts"

Repository: patternfly/patternfly-react

Length of output: 686


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Finding `@patternfly/react-styles` in the monorepo ==="
find . -maxdepth 3 -type d -name "react-styles" 2>/dev/null

echo -e "\n=== Checking directory structure in packages/ ==="
ls -la packages/ | grep -E "^d"

echo -e "\n=== Looking for page.css or page.scss in the entire repo ==="
fd -e css -e scss "page" . 2>/dev/null | grep -v node_modules | head -20

echo -e "\n=== Searching for pageDockMain definition anywhere ==="
rg "pageDockMain" . --type-list 2>/dev/null | head -5
rg "pageDockMain\s*[:=]" . --no-heading 2>/dev/null | head -20

Repository: patternfly/patternfly-react

Length of output: 1377


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Exploring packages/react-styles structure ==="
ls -la packages/react-styles/src/

echo -e "\n=== Looking for page-related CSS files ==="
find packages/react-styles -name "*page*" -type f 2>/dev/null

echo -e "\n=== Checking CSS components directory ==="
find packages/react-styles -path "*/css/components/Page*" -o -path "*/sass/components/Page*" 2>/dev/null | head -20

echo -e "\n=== Searching for pageDockMain in react-styles package ==="
rg "pageDockMain" packages/react-styles/ 2>/dev/null

echo -e "\n=== Searching for page styles file ==="
find packages/react-styles -name "page.*" -type f 2>/dev/null

Repository: patternfly/patternfly-react

Length of output: 485


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Listing packages/react-styles/src/css ==="
ls -la packages/react-styles/src/css/

echo -e "\n=== Checking for components subdirectory ==="
find packages/react-styles/src/css -type d -name "components" -o -type d -name "Page*"

echo -e "\n=== Listing all files in react-styles/src/css ==="
find packages/react-styles/src/css -type f 2>/dev/null | head -30

echo -e "\n=== Searching entire react-styles for pageDockMain or pageSidebarMain ==="
rg "pageDockMain|pageSidebarMain" packages/react-styles/ 2>/dev/null

echo -e "\n=== Check if CSS files are compiled or in a different format ==="
find packages/react-styles -name "*.css" -o -name "*.scss" 2>/dev/null | head -20

Repository: patternfly/patternfly-react

Length of output: 729


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Listing all subdirectories in components ==="
ls -la packages/react-styles/src/css/components/

echo -e "\n=== Check for Page directory specifically ==="
ls -la packages/react-styles/src/css/components/Page 2>&1

echo -e "\n=== List all CSS files in react-styles ==="
find packages/react-styles -name "*.css" -type f

echo -e "\n=== Check the index.ts to understand how styles are exported ==="
cat packages/react-styles/src/index.ts

Repository: patternfly/patternfly-react

Length of output: 473


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Reading the relevant test section ==="
sed -n '410,422p' packages/react-core/src/components/Page/__tests__/Page.test.tsx

echo -e "\n=== Reading more context around the test ==="
sed -n '408,425p' packages/react-core/src/components/Page/__tests__/Page.test.tsx

Repository: patternfly/patternfly-react

Length of output: 1409


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== Check if page.css/page.scss exists in a different location ==="
find packages/react-styles -name "*.scss" -o -name "*.css" 2>/dev/null

echo -e "\n=== Check the PR or commit messages for context ==="
git log --oneline -20 2>/dev/null | grep -i "page\|dock\|style" || echo "Git log not available"

echo -e "\n=== Verify that import path will fail ==="
rg "@patternfly/react-styles/css/components/Page/page" packages/react-core/

echo -e "\n=== Check if there are any TypeScript type stubs or mock files ==="
find packages -name "*.d.ts" -path "*/Page/*" 2>/dev/null | xargs grep -l "pageDockMain" 2>/dev/null || echo "No type stubs found"

echo -e "\n=== Double check: does the import path actually resolve? ==="
ls -la packages/react-styles/css/components/Page/ 2>&1 || echo "Path confirmed missing"
</parameter>

Repository: patternfly/patternfly-react

Length of output: 2671


Block this PR until the Page CSS file is available in @patternfly/react-styles.

The CSS file packages/react-styles/css/components/Page/page does not exist. The import at line 2 of Page.tsx (and 13 other Page-related files) will fail, and styles.pageDockMain referenced at line 353 is undefined. The corresponding CSS component directory is missing from the react-styles package entirely.

This change cannot proceed until the style artifact includes the Page component CSS file with the pageDockMain and pageSidebarMain keys.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/react-core/src/components/Page/Page.tsx` around lines 351 - 354, The
PR imports a missing CSS module causing styles.pageDockMain (used in Page.tsx
within the variant === 'docked' branch) to be undefined; either add the Page CSS
artifact to `@patternfly/react-styles` exporting the required keys (pageDockMain
and pageSidebarMain) or remove/guard usages of styles.pageDockMain and
styles.pageSidebarMain in the Page component (and other Page-related files)
until the CSS module exists; update the import that references
packages/react-styles/css/components/Page/page to point to the correct file or
ensure the package publishes the page CSS with the exact keys expected by the
Page component.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The file does exist, I have no issues locally.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

@thatblindgeye, you're absolutely right — I apologize for the false positive. My analysis was flawed because the sandbox environment used for script execution doesn't have node_modules available, so I incorrectly concluded the file was missing. @patternfly/react-styles is an external npm package, and @patternfly/react-styles/css/components/Page/page resolves through the installed package — not from within the repository source tree. The CSS file and its exported keys (pageDockMain, pageSidebarMain) exist in your locally installed dependency, as expected.


✏️ Learnings added
Learnt from: thatblindgeye
Repo: patternfly/patternfly-react PR: 12293
File: packages/react-core/src/components/Page/Page.tsx:351-354
Timestamp: 2026-04-01T15:54:35.860Z
Learning: In the patternfly/patternfly-react repository, style imports like `import styles from 'patternfly/react-styles/css/components/Page/page'` resolve to the installed `patternfly/react-styles` npm package in `node_modules`, not to files tracked within the repository source tree. The sandbox environment lacks `node_modules`, so searching for these paths within the repo will always fail. Do not flag missing CSS files from `patternfly/react-styles` as errors based on repo-level file searches.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: arpanroy41
Repo: patternfly/patternfly-react PR: 12237
File: packages/react-core/src/components/Toolbar/examples/ToolbarFlexGrowAndWidths.tsx:6-6
Timestamp: 2026-02-06T19:58:49.801Z
Learning: In the PatternFly React repository, React may be used without an explicit import in TSX files because React is provided globally by the build configuration. You can reference React types (e.g., React.FunctionComponent, React.ReactNode) without importing React. Do not add 'import React from 'react'' in TSX files; rely on the global React availability.

Learnt from: nicolethoen
Repo: patternfly/patternfly-react PR: 12251
File: packages/react-core/src/components/FormSelect/FormSelect.tsx:76-77
Timestamp: 2026-02-26T22:33:56.823Z
Learning: For PatternFly React components using SSRSafeIds, ensure that ouiaComponentType is a stable string (typically the component's displayName) that does not change during the component's lifecycle. Do not include dynamic props such as validation state in ouiaComponentType, as this will make the generated OUIA ID unstable. If you need to expose dynamic state for testing or UI logic, use separate data attributes instead of embedding them in ouiaComponentType.

Learnt from: tlabaj
Repo: patternfly/patternfly-react PR: 12288
File: packages/react-core/src/components/Accordion/__tests__/Accordion.test.tsx:144-150
Timestamp: 2026-03-24T14:47:35.816Z
Learning: In PatternFly React components, treat the `isPlain` prop as a public prop that follows the existing PatternFly convention: its default behavior is `false`. If `isPlain` is omitted by a consumer, it should be treated as equivalent to `isPlain={false}`. During code review, do not recommend changing this default to `undefined` or modifying any `!isPlain`-based conditional logic, since doing so would diverge from established PatternFly API patterns and could introduce a behavioral breaking change.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Page - follow up for glass styles (react followup)

2 participants