From 937a80cfe85fec86562b960e18fbfcca021ae798 Mon Sep 17 00:00:00 2001 From: Devon Govett Date: Wed, 19 Nov 2025 15:08:53 -0800 Subject: [PATCH 01/11] docs: Refine typography --- .../react-aria/blog/ColorEditorExample.tsx | 4 +- .../react-aria/blog/SubmenuAnimation.tsx | 1 - .../blog/accessible-color-descriptions.mdx | 2 - .../blog/building-a-button-part-1.mdx | 2 - .../blog/building-a-button-part-2.mdx | 2 - .../blog/building-a-button-part-3.mdx | 2 - .../react-aria/blog/building-a-combobox.mdx | 2 - ...-a-pointer-friendly-submenu-experience.mdx | 2 - .../blog/date-and-time-pickers-for-all.mdx | 2 - .../pages/react-aria/blog/drag-and-drop.mdx | 2 - ...w-we-internationalized-our-numberfield.mdx | 2 - .../pages/react-aria/blog/rtl-date-time.mdx | 2 - .../pages/react-aria/releases/v1-0-0.mdx | 2 - .../pages/react-aria/releases/v1-1-0.mdx | 2 - .../pages/react-aria/releases/v1-10-0.mdx | 2 - .../pages/react-aria/releases/v1-11-0.mdx | 2 - .../pages/react-aria/releases/v1-12-0.mdx | 2 - .../pages/react-aria/releases/v1-13-0.mdx | 2 - .../pages/react-aria/releases/v1-2-0.mdx | 2 - .../pages/react-aria/releases/v1-3-0.mdx | 2 - .../pages/react-aria/releases/v1-4-0.mdx | 2 - .../pages/react-aria/releases/v1-5-0.mdx | 2 - .../pages/react-aria/releases/v1-6-0.mdx | 2 - .../pages/react-aria/releases/v1-7-0.mdx | 2 - .../pages/react-aria/releases/v1-8-0.mdx | 2 - .../pages/react-aria/releases/v1-9-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-1-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-10-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-11-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-12-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-2-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-3-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-4-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-5-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-6-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-7-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-8-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-9-0.mdx | 2 - .../dev/s2-docs/pages/s2/releases/v0-9-1.mdx | 2 - packages/dev/s2-docs/src/BlogList.tsx | 4 +- packages/dev/s2-docs/src/Code.tsx | 2 +- packages/dev/s2-docs/src/CodeBlock.tsx | 8 +- packages/dev/s2-docs/src/Headings.tsx | 6 +- packages/dev/s2-docs/src/Layout.tsx | 74 +++++++++++-------- packages/dev/s2-docs/src/Link.tsx | 7 +- packages/dev/s2-docs/src/ReleasesList.tsx | 2 +- 46 files changed, 59 insertions(+), 123 deletions(-) diff --git a/packages/dev/s2-docs/pages/react-aria/blog/ColorEditorExample.tsx b/packages/dev/s2-docs/pages/react-aria/blog/ColorEditorExample.tsx index 2794f68a93d..df70de58d99 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/ColorEditorExample.tsx +++ b/packages/dev/s2-docs/pages/react-aria/blog/ColorEditorExample.tsx @@ -75,7 +75,9 @@ export function ColorEditorExample() { padding: { default: 12, lg: 24 - } + }, + maxWidth: '--text-width', + marginX: 'auto' })}> {({color}) => ( diff --git a/packages/dev/s2-docs/pages/react-aria/blog/SubmenuAnimation.tsx b/packages/dev/s2-docs/pages/react-aria/blog/SubmenuAnimation.tsx index 2114063e38d..f34749333b6 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/SubmenuAnimation.tsx +++ b/packages/dev/s2-docs/pages/react-aria/blog/SubmenuAnimation.tsx @@ -120,7 +120,6 @@ export function SubmenuAnimation(): JSX.Element { className={style({ backgroundColor: 'layer-1', borderRadius: 'xl', - marginY: 32, padding: { default: 12, lg: 24 diff --git a/packages/dev/s2-docs/pages/react-aria/blog/accessible-color-descriptions.mdx b/packages/dev/s2-docs/pages/react-aria/blog/accessible-color-descriptions.mdx index db256aee4e8..fad57e3c933 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/accessible-color-descriptions.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/accessible-color-descriptions.mdx @@ -16,7 +16,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; import {ColorEditorExample} from './ColorEditorExample'; export const hideNav = true; @@ -29,7 +28,6 @@ export const section = 'Blog'; export const isSubpage = true; # Accessible Color Descriptions for Improved Color Pickers - Recently, we released a suite of color picker components in React Aria and React Spectrum. These components help users choose a color in various ways, including a 2D [ColorArea](../ColorArea.html), channel-based [ColorSlider](../ColorSlider.html), circular [ColorWheel](../ColorWheel.html), preset [ColorSwatchPicker](../ColorSwatchPicker.html), and a hex value [ColorField](../ColorField.html). You can compose these individual pieces together to create a full [ColorPicker](../ColorPicker.html) with whatever custom layout or configuration you need. diff --git a/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-1.mdx b/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-1.mdx index 689c04abd07..4f4caff2327 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-1.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-1.mdx @@ -16,7 +16,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; export const hideNav = true; export const tags = ['react aria', 'react spectrum', 'react', 'spectrum', 'interactions', 'button', 'touch']; @@ -28,7 +27,6 @@ export const section = 'Blog'; export const isSubpage = true; # Building a Button Part 1: Press Events - UI development is really hard. While building components has become much easier with modern UI frameworks like React, handling interactions across devices and supporting proper accessibility and internationalization is still extraordinarily difficult. Building UIs has a very [long tail](https://en.wikipedia.org/wiki/Long_tail): it's fairly easy to get the basics for a given component working, but there are many details to consider, and these add up to a majority of the work. diff --git a/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-2.mdx b/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-2.mdx index 260b201ccf0..55394c6e9ed 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-2.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-2.mdx @@ -15,7 +15,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; export const hideNav = true; export const tags = ['react aria', 'react spectrum', 'react', 'interactions', 'button', 'touch', 'hover', 'web development', 'javascript', 'css']; @@ -27,7 +26,6 @@ export const section = 'Blog'; export const isSubpage = true; # Building a Button Part 2: Hover Interactions - This is the second post in our three part series on building a button component. In the [first post](building-a-button-part-1.html), we covered how React Spectrum and React Aria implement adaptive press events across mouse, touch, keyboard, and screen readers. Today, we'll cover hover interactions. diff --git a/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-3.mdx b/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-3.mdx index fa696c101b3..d30bcc62e88 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-3.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/building-a-button-part-3.mdx @@ -15,7 +15,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; export const hideNav = true; export const tags = ['react aria', 'react spectrum', 'react', 'interactions', 'button', 'keyboard', 'focus', 'web development', 'javascript', 'css']; @@ -27,7 +26,6 @@ export const section = 'Blog'; export const isSubpage = true; # Building a Button Part 3: Keyboard Focus Behavior - This is the last post in our three part series on building a button component. In the [first post](building-a-button-part-1.html), we covered how React Spectrum and React Aria implement adaptive press events across mouse, touch, keyboard, and screen readers. In the [second post](building-a-button-part-2.html), we covered hover interactions. Today, we'll cover keyboard focus behavior. diff --git a/packages/dev/s2-docs/pages/react-aria/blog/building-a-combobox.mdx b/packages/dev/s2-docs/pages/react-aria/blog/building-a-combobox.mdx index 165ce6d7250..ca6f56e6074 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/building-a-combobox.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/building-a-combobox.mdx @@ -19,7 +19,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; export const hideNav = true; export const tags = ['combobox', 'accessibility', 'mobile', 'react spectrum', 'react', 'spectrum', 'interactions', 'touch']; @@ -31,7 +30,6 @@ export const section = 'Blog'; export const isSubpage = true; # Creating an accessible autocomplete experience - After many months of research, development, and extensive testing across browsers, devices, and assistive technology, we're excited to announce that the React Spectrum [ComboBox](../../s2/ComboBox.html) component and React Aria [useComboBox](https://react-spectrum.adobe.com/react-aria/useComboBox.html) hook are now available! We've focused on the following areas to help you build quality autocomplete experiences. diff --git a/packages/dev/s2-docs/pages/react-aria/blog/creating-a-pointer-friendly-submenu-experience.mdx b/packages/dev/s2-docs/pages/react-aria/blog/creating-a-pointer-friendly-submenu-experience.mdx index ddf143f1433..b49c8240a21 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/creating-a-pointer-friendly-submenu-experience.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/creating-a-pointer-friendly-submenu-experience.mdx @@ -17,7 +17,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; export const hideNav = true; export const tags = ['react aria', 'react spectrum', 'react', 'spectrum', 'interactions', 'submenu', 'pointer']; @@ -29,7 +28,6 @@ export const section = 'Blog'; export const isSubpage = true; # Creating a pointer-friendly submenu experience - We are excited to announce support of submenus in the latest release of [React Spectrum](../../s2/Menu.html#submenus) and [React Aria](../Menu.html#submenus)! In the process of adding this feature, we found ourselves solving some unique challenges while working to make submenus user-friendly and accessible across an array of devices and input types. In doing so, we wanted to share our thought process in solving one of the challenges we faced along the way. diff --git a/packages/dev/s2-docs/pages/react-aria/blog/date-and-time-pickers-for-all.mdx b/packages/dev/s2-docs/pages/react-aria/blog/date-and-time-pickers-for-all.mdx index d949f021ff2..9908aebd1e4 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/date-and-time-pickers-for-all.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/date-and-time-pickers-for-all.mdx @@ -18,7 +18,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; import {DateField, RangeCalendar} from '@react-spectrum/s2'; import {today, getLocalTimeZone} from '@internationalized/date'; import RangeCalendarExample from './RangeCalendarExample'; @@ -34,7 +33,6 @@ export const section = 'Blog'; export const isSubpage = true; # Date and Time Pickers for All - We are very excited to announce the release of the [React Aria](https://react-spectrum.adobe.com/react-aria/useNumberField.html) and [React Spectrum](../../s2/DatePicker.html) date and time picker components! This includes a full suite of fully featured components and hooks including calendars, date and time fields, and range pickers, all with a focus on internationalization and accessibility. It also includes [@internationalized/date](../../internationalized/date/index.html), a brand new framework-agnostic library for locale-aware date and time manipulation. diff --git a/packages/dev/s2-docs/pages/react-aria/blog/drag-and-drop.mdx b/packages/dev/s2-docs/pages/react-aria/blog/drag-and-drop.mdx index ce7b80f9b79..2d869e605a8 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/drag-and-drop.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/drag-and-drop.mdx @@ -22,7 +22,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; export const hideNav = true; export const tags = ['drag and drop', 'dnd', 'components', 'accessibility', 'keyboard', 'mobile', 'react spectrum', 'react', 'spectrum', 'interactions', 'touch']; @@ -34,7 +33,6 @@ export const section = 'Blog'; export const isSubpage = true; # Taming the dragon: Accessible drag and drop - We are excited to announce the release of drag and drop support in [React Aria](../dnd.html) and [React Spectrum](../../s2/dnd.html)! This includes a suite of hooks for implementing drag and drop interactions, with support for both mouse and touch, as well as full parity for keyboard and screen reader input. We've designed these hooks with the following features in mind: diff --git a/packages/dev/s2-docs/pages/react-aria/blog/how-we-internationalized-our-numberfield.mdx b/packages/dev/s2-docs/pages/react-aria/blog/how-we-internationalized-our-numberfield.mdx index aab5a684550..c6f7b191a37 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/how-we-internationalized-our-numberfield.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/how-we-internationalized-our-numberfield.mdx @@ -19,7 +19,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; import {NumberField} from '@react-spectrum/s2'; export const hideNav = true; @@ -32,7 +31,6 @@ export const section = 'Blog'; export const isSubpage = true; # How we internationalized our number field - Number fields are commonly used form components, but are frequently not a great user experience. They often lack support for advanced formatting, such as currency and unit values, and do not provide a localized experience for users around the world. In this post, we'll discuss how we approached building our number field component with support for formatting and internationalization in mind. diff --git a/packages/dev/s2-docs/pages/react-aria/blog/rtl-date-time.mdx b/packages/dev/s2-docs/pages/react-aria/blog/rtl-date-time.mdx index d11503ebaee..9f0f2912ed1 100644 --- a/packages/dev/s2-docs/pages/react-aria/blog/rtl-date-time.mdx +++ b/packages/dev/s2-docs/pages/react-aria/blog/rtl-date-time.mdx @@ -18,7 +18,6 @@ export default Layout; import docs from 'docs:@react-spectrum/s2'; import React from 'react'; -import {Byline} from '../../../src/BlogList'; export const hideNav = true; export const tags = ['date picker', 'date', 'time', 'calendar', 'components', 'accessibility', 'react spectrum', 'react', 'spectrum']; @@ -30,7 +29,6 @@ export const section = 'Blog'; export const isSubpage = true; # Improving Internationalization Support in Our Date and Time Components - Internationalization is a core feature of our Date and Time components. We support 13 different calendar systems as well as locale-specific formatting, number systems, and 12 and 24 hour time. However, we identified an issue in our support for several right-to-left (RTL) languages where in some, the format of the date and time fields was incorrect. While investigating this bug, we faced several challenges in ensuring accurate date and time representation in RTL languages and implemented various strategies that we'd like to share. diff --git a/packages/dev/s2-docs/pages/react-aria/releases/v1-0-0.mdx b/packages/dev/s2-docs/pages/react-aria/releases/v1-0-0.mdx index 5f7a1811a0f..4f113cc3894 100644 --- a/packages/dev/s2-docs/pages/react-aria/releases/v1-0-0.mdx +++ b/packages/dev/s2-docs/pages/react-aria/releases/v1-0-0.mdx @@ -11,7 +11,6 @@ import {Layout} from '../../../src/Layout'; export default Layout; import docs from 'docs:@react-spectrum/s2'; -import {Time} from '../../../src/ReleasesList'; export const hideNav = true; export const section = 'Releases'; @@ -22,7 +21,6 @@ export const description = 'In this release, we\'re promoting React Aria Compone export const isSubpage = true; # v1.0.0 -