From 8317533ea978b00b86f9e633c108a614f4f24164 Mon Sep 17 00:00:00 2001
From: Antony Bouyon
Date: Wed, 21 Jan 2026 13:49:16 +0100
Subject: [PATCH] fix: improve useMediaQuery examples
Signed-off-by: Antony Bouyon
---
.../app/hooks/use-media-query/components.tsx | 15 +++++------
.../src/app/hooks/use-media-query/example.css | 25 +++++++++++++++++++
.../src/app/hooks/use-media-query/snippets.ts | 23 +++++++++--------
docs-ui/src/app/hooks/use-styles/page.mdx | 7 ++++--
4 files changed, 50 insertions(+), 20 deletions(-)
create mode 100644 docs-ui/src/app/hooks/use-media-query/example.css
diff --git a/docs-ui/src/app/hooks/use-media-query/components.tsx b/docs-ui/src/app/hooks/use-media-query/components.tsx
index 0d8edd944b..1ebcd64dfa 100644
--- a/docs-ui/src/app/hooks/use-media-query/components.tsx
+++ b/docs-ui/src/app/hooks/use-media-query/components.tsx
@@ -1,13 +1,12 @@
'use client';
import { useMediaQuery } from '@backstage/ui/src/hooks/useMediaQuery';
+import './example.css';
export function UseMediaQueryThemeExample() {
const isDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
return (
-
- {isDarkMode ? 'User prefers Dark mode' : 'User prefers Light mode'}
-
+ {isDarkMode ? 'User prefers Dark mode' : 'User prefers Light mode'}
);
}
@@ -17,11 +16,11 @@ export function UseMediaQueryResponsiveExample() {
const isDesktop = useMediaQuery('(min-width: 1025px)');
return (
-
+
{isMobile && ''}
{isTablet && ''}
{isDesktop && ''}
-
+
);
}
@@ -31,12 +30,14 @@ export function UseMediaQueryPreferencesExample() {
);
return (
- Content
+
+ Content
+
);
}
export function UseMediaQueryOrientationExample() {
const isPortrait = useMediaQuery('(orientation: portrait)');
- return {isPortrait ? 'Portrait mode' : 'Landscape mode'}
;
+ return {isPortrait ? 'Portrait mode' : 'Landscape mode'}
;
}
diff --git a/docs-ui/src/app/hooks/use-media-query/example.css b/docs-ui/src/app/hooks/use-media-query/example.css
new file mode 100644
index 0000000000..5fb132f9f4
--- /dev/null
+++ b/docs-ui/src/app/hooks/use-media-query/example.css
@@ -0,0 +1,25 @@
+@keyframes borderSlide {
+ 0%,
+ 100% {
+ transform: translateX(-90%);
+ }
+ 50% {
+ transform: translateX(190%);
+ }
+}
+
+.animated-border {
+ position: relative;
+ overflow: hidden;
+}
+
+.animated-border::after {
+ content: '';
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 50%;
+ height: 2px;
+ background-color: currentColor;
+ animation: borderSlide 5s ease-in-out infinite;
+}
diff --git a/docs-ui/src/app/hooks/use-media-query/snippets.ts b/docs-ui/src/app/hooks/use-media-query/snippets.ts
index 78423ef516..157da945f0 100644
--- a/docs-ui/src/app/hooks/use-media-query/snippets.ts
+++ b/docs-ui/src/app/hooks/use-media-query/snippets.ts
@@ -4,9 +4,12 @@ function MyComponent() {
const isDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
return (
-
- {isDarkMode ? 'Dark mode enabled' : 'Light mode enabled'}
-
+
+ {isDarkMode
+ ? 'User prefers Dark mode'
+ : 'User prefers Light mode'
+ }
+
);
}`;
@@ -18,11 +21,11 @@ function ResponsiveLayout() {
const isDesktop = useMediaQuery('(min-width: 1025px)');
return (
-
+
{isMobile && }
{isTablet && }
{isDesktop && }
-
+
);
}`;
@@ -32,11 +35,9 @@ function AccessibleComponent() {
const prefersReducedMotion = useMediaQuery('(prefers-reduced-motion: reduce)');
return (
-
+
);
}`;
@@ -46,8 +47,8 @@ function OrientationAware() {
const isPortrait = useMediaQuery('(orientation: portrait)');
return (
-
+
{isPortrait ? 'Portrait mode' : 'Landscape mode'}
-
+
);
}`;
diff --git a/docs-ui/src/app/hooks/use-styles/page.mdx b/docs-ui/src/app/hooks/use-styles/page.mdx
index ca235c4778..080a283dcc 100644
--- a/docs-ui/src/app/hooks/use-styles/page.mdx
+++ b/docs-ui/src/app/hooks/use-styles/page.mdx
@@ -33,6 +33,7 @@ The `useStyles` hook is the core styling utility that processes component defini
## Parameters
+
## Return Value
@@ -47,7 +48,10 @@ A component definition describes how a component should be styled:
-
+
### Data Attributes
@@ -55,5 +59,4 @@ Data attributes enable state-based styling through CSS selectors. The hook autom
-