Radix Themes のリリースと変更ログ。
Checkboxコンポーネントに対する不定のインジケーターをサポートareasプロパティをGridコンポーネントに追加し、gridAreaプロパティをすべてのレイアウトコンポーネント(Box、Container、Flex、Grid、Section)に追加DataListコンポーネントにoverflow-wrap: anywhereスタイルを追加Checkboxコンポーネントに対する不定のインジケーターをサポートalign、height、minHeight、およびmaxHeightプロパティをAlertDialog.ContentとDialog.Contentに追加しました。maxプロパティをサポートしました。grayColorが、明示的なappearance="light"またはappearance="dark"値と組み合わせて効果がない問題を修正しました。color値が使用されている場合に、Linkが自動的な高コントラストの色を使用しない回帰を修正しました。Linkが正しいテキスト選択とフォーカスカラーを使用しない回帰を修正しました。Linkのタップハイライトスタイルを調整しました。CheckboxGroup.ItemとRadioGroup.Itemを調整し、テキストがはみ出した際の切り詰めレイアウトを実現できるようにしました。data-accent-color属性を削除しました。colorプロパティ定義の内蔵処理を改良しました。TextFieldとTextAreaの自動入力と無効時の色を改良しました。Spinnerコンポーネント用に内部--spinner-animation-duration CSS変数を追加しました。Linkが自動的な高コントラストの色を使用しない回帰を修正しました。Linkがbuttonとしてレンダリングされた場合に、ホバースタイルが表示されない回帰を修正しました。TextAreaがFirefoxで空白文字列を保持しない回帰を修正しました。size="1"インジケーターのチェックマークの配置を修正しました。Radix Themes 3.0には、新しいレイアウトエンジン、11個の新しいコンポーネント、および完全なESMサポートが含まれています。発表記事を読む。
このリリースには、いくつかの破壊的変更が含まれています。アップグレードするには、以下の手順に従ってください。
DialogRoot → Dialog.RootDialogTrigger → Dialog.TriggerDialogContent → Dialog.ContentAlertDialogCalloutContextMenuDialogDropdownMenuHoverCardPopoverRadioGroupSelectTableTabsTextField@radix-ui/themesインポートエントリポイントから使用できなくなりました。
@radix-ui/themes/propsと@radix-ui/themes/helpersからインポートしてください。widthとheightプロパティは、もうスペーススケールにマップされません。widthとheightプロパティの使用箇所を対応するスペーススケールステップで置き換えてください。
width="1" → width="4px"width="2" → width="8px"width="3" → width="12px"width="4" → width="16px"width="5" → width="24px"width="6" → width="32px"width="7" → width="40px"width="8" → width="48px"width="9" → width="64px"heightも同様です。var(--space-1)からvar(--space-9)を使用することもできます。shrinkとgrowプロパティの名前が変更されました。
shrink → flexShrinkgrow → flexGrowカスタムコンポーネントで以下のトークンを使用していた場合は、対応する参照を置き換えてください。
--color-surface-accent → --accent-surface--accent-9-contrast → --accent-contrast--red-9-contrast → --red-contrast--pink-9-contrast → --pink-contrast--blue-9-contrast → --blue-contrast--color-autofill-root → --focus-a3--color-focus-root → --focus-8--color-selection-root → --focus-a5--gray-2-translucentおよび対応する色付きグレーの色は削除されました。
--color-panel-translucentを使用してください。AlertDialog、Dialogは、Content部分でデフォルトでmaxWidth="600px"になりました。
580px値よりもわずかに大きくなっています。異なる幅のダイアログを使用する場合は、独自の値でmaxWidthを上書きしてください。Badgeに新しいsize="3"が追加され、size="2"はサイズが小さくなり、size="1"の寸法が調整されました。
size="2"の使用箇所をsize="3"に置き換えてください。Cardコンポーネントの内部HTML構造とスタイルが変更され、現在は単一のHTMLノードでレンダリングされます。スタイルや動作をオーバーライドするために実装上の特殊な動作に依存していた場合、コードが期待通りに動作することを確認してください。
ghost以外のバリアントでCardの背景色をオーバーライドする必要がある場合は、background-colorを直接指定する代わりに、--card-background-color変数を使用するか、Cardの最初の子要素としてネストされた<Inset p="current">要素で背景色を設定してください。asChildを使用している、または親コンポーネントによってasChild化されているCardインスタンスを確認してください。(追加のスタイルのないリンクまたはボタンカードのような一般的なケースは、期待通りに動作します。)HoverCardとPopoverは、コンテンツ部分にデフォルトでmaxWidth="480px"が設定されるようになりました。
maxWidthをオーバーライドしてください。RadioGroupの内部HTML構造とスタイルが変更され、Item部分にchildrenを渡す際にオプションのテキストラベルを表示するように設計されました。Root部分は、フレックスカラムスタイルとスペーシングも提供するようになりました。
Radioコンポーネントを使用してください。Sectionに新しいsize="3"が追加されました。size="3"を使用していたすべてのSectionをsize="4"に更新してください。Tabsの基礎となる文字/単語間隔のCSS変数が、TabsとTabNavの両方のコンポーネントをサポートするように名前が変更されました。これらの変数を使用していた場合は、新しい値に名前を変更してください。
--tabs-trigger-active-letter-spacing → --tab-active-letter-spacing--tabs-trigger-active-word-spacing → --tab-active-word-spacing--tabs-trigger-inactive-letter-spacing → --tab-inactive-letter-spacing--tabs-trigger-inactive-word-spacing → --tab-inactive-word-spacingTextFieldは、RootとSlotの2つの部分のみになり、Input部分が削除され、プロップの転送方法が簡素化されました。
TextField.Rootを使用せずに使用されていたすべてのTextField.Input部分は、TextField.Rootに名前を変更する必要があります。TextField.Root内で使用されていたすべてのTextField.Input部分は削除し、そのプロップをTextField.Root部分に直接配置する必要があります。TextField.Inputの右側に配置されたすべてのTextField.Slot部分には、side="right"プロップが必要です。ただし、1つのTextField内に2つのスロット(例:左に1つ、右に1つ)を使用していた場合は、調整は必要ありません。その場合、スロットは自動的に異なる側に配置されます。Themeは、もはやbodyの背景色を自動的に設定しません。背景色は、デフォルトでルートThemeによって提供されるようになりました。CSS変数--color-page-backgroundは使用できなくなりました。
.radix-themes要素で使用可能な--color-backgroundで安全に置き換えることができます。Tooltipは、コンテンツ部分にデフォルトでmaxWidth="360px"が設定されるようになりました。
maxWidthをオーバーライドしてください。@radix-ui/themesインポートエントリポイントからコンポーネントのプロップ定義と内部ヘルパーを削除し、@radix-ui/themes/propsと@radix-ui/themes/helpersからエクスポートして、同じテクニックを使用してRadix Themesの上に独自のコンポーネントライブラリを構築できるようにします。tokens.css、components.css、utilities.cssファイルをエクスポートします。たとえば、独自のCSSの後にRadix Themesのutilities.cssをインポートし、それ以外のすべてをその前にインポートできます。tokens.cssをインポートする代わりに、tokens/base.cssとtokens/colors/*.cssをインポートすることもできます。ここで*は、プロジェクトに必要なアクセントカラーとグレーカラーの名前に対応します。layout.cssをエクスポートします。上記のユースケースをサポートするために、個々のエクスポートlayout/tokens.css、layout/components.css、layout/utilities.cssも利用できます。minWidth、maxWidthminHeight、maxHeightflexBasis、flexShrink、flexGrowgridColumn、gridColumnStart、gridColumnEndgridRow、gridRowStart、gridRowEndoverflow、overflowX、overflowYwidth、minWidth、maxWidthheight、minHeight、maxHeightm、mx、my、mt、mr、mb、mlflexBasis、flexShrink、flexGrowgridColumn、gridColumnStart、gridColumnEndgridRow、gridRowStart、gridRowEndDataList
RootItemLabelValueCheckboxGroup
RootItemCheckboxCards
RootItemProgress
Radio
RadioCards
RootItemReset
SegmentedControl
Skeleton
Spinner
TabNav
RootLinkBadge
Card
Code
Container
DropdownMenu
display: block`スタイルが強制適用されるようになりました。Button`、`IconButton`loading`プロパティを追加しました。Flex
gapX`と`gapY`プロパティを追加しました。HoverCard`、`Popover`width`、`minWidth`、`maxWidth`、`height`、`minHeight`、`maxHeight`プロパティを追加しました。maxWidth`を`"480px"`に設定しました。RadioGroup
Item`部分に`children`を渡した場合にオプションのテキストラベルを表示するように設計されており、`Root`部分はflex columnスタイルと間隔を提供するようになりました。Section
size="3"`の値を新しい値に変更し、`size="4"`には以前の値を使用します。Select
<label>`要素などから継承されないようにします。Separator
orientation`プロパティでレスポンシブな値を許可しました。ScrollArea
Slider
flex-shrink: 0`を`flex-grow: 1`と`width: stretch`/`height: stretch`に置き換えて、レイアウトにおいてスライダー要素がより直感的に伸縮できるようにしました。Table
table-layout`スタイルプロパティを制御するための新しい`layout`プロパティを追加しました。TableCell`部分の`width`プロパティの型シグネチャと実装を、レイアウトコンポーネントの`width`プロパティと調整しました。TableCell`部分に`minWidth`と`maxWidth`プロパティを追加しました。Tabs:
TabsList`に`color`と`highContrast`プロパティを追加しました。TabsList`と`TabsContent`にマージンに関するプロパティを追加しました。.radix-themes`内の文字/単語間隔のCSS変数を改名し、`Tabs`と`TabNav`両方のコンポーネントをサポートするようにしました。
--tabs-trigger-active-letter-spacing → --tab-active-letter-spacing--tabs-trigger-active-word-spacing → --tab-active-word-spacing--tabs-trigger-inactive-letter-spacing → --tab-inactive-letter-spacing--tabs-trigger-inactive-word-spacing → --tab-inactive-word-spacingTextArea
radius`プロパティを追加しました。resize`プロパティを追加しました。<label>`要素などからフォントウェイトが継承されないようにします。TextField
Input`部分を削除しました。type`で`getSelectionRange`がサポートされない問題を修正しました。<label>`要素などからフォントウェイトが継承されないようにします。ThemePanel
テーマ
Theme`コンポーネントに`min-height: 100vh`を設定しました。hasBackground`プロパティの値が効果を持たない問題を修正しました。Theme`がデフォルトで背景色を持つ場合のロジックを改良しました。明示的な`hasBackground`プロパティを持たない`Themeは背景色を表示します。
Theme`コンポーネントの場合<Theme apperance="light">`または`<Theme apperance="dark">`)Theme`によって提供されるようになりました。
--color-page-background`は使用できなくなりました。html`の`suppressHydrationWarning`は不要になりました(他のライブラリ(例: `next-themes`)で必要とされない限り)。Tooltip
width`、`minWidth`、`maxWidth`プロパティを追加しました。maxWidth`を`"360px"`に設定しました。Card
variant="surface"`の境界線が`color-mix`をサポートしていないブラウザで消えてしまう問題を修正しました。variant="surface"`の境界線の色を調整しました。Code
Link`内で`variant="ghost"`が使用されている場合、`Link`の`underline="hover"`が尊重されるようにしました。TextField
0,1,0`に、擬似要素のスタイル設定では`0,1,1`に制限し、Tailwindとの互換性を向上させました。
--black-a1、--white-a1など)、新しい値を確認し、デザインが期待通りに見えるように使用されているステップを更新してください。
--black-a1をrgba(0, 0, 0, 0.01)に変更します。--black-a2をrgba(0, 0, 0, 0.024)に変更します。--black-a3を--black-a1に変更します。--black-a4を--black-a2に変更します。--black-a5を--black-a2に変更します。--black-a6を--black-a3に変更します。--black-a7を--black-a3または--black-a4に変更します。--black-a8を--black-a5に変更します。--black-a9を--black-a6または--black-a7に変更します。--black-a10を--black-a7に変更します。--black-a11を--black-a8に変更します。--black-a12を--black-a11に変更します。--white-a1をtransparentに変更します。--white-a2をrgba(255, 255, 255, 0.01)に変更します。--white-a3を--white-a1または--white-a2に変更します。--white-a4を--white-a2に変更します。--white-a5を--white-a3に変更します。--white-a6を--white-a3または--white-a4に変更します。--white-a7を--white-a4に変更します。--white-a8を--white-a5に変更します。--white-a9を--white-a6に変更します。--white-a10を--white-a7に変更します。--white-a11を--white-a9に変更します。--white-a12を--white-a11または--white-a12に変更します。color="gray"コンポーネントのフォーカスリングにテーマのアクセントカラーを維持します。Themeコンポーネントでの強制的な明/暗表示は、正しい入力自動入力の背景色など、対応するブラウザの色も設定します。@keyframesアニメーション名をrt-プレフィックスを追加し、ケバブケースに変更します。box-shadowではなくoutlineを使用します。これにより、フォーカスされた要素でのChromeにおけるわずかなアンチエイリアシングの問題を回避できます。アバター
svgアセットを使用していた場合は、適切なサイズを手動で設定してください。--cursor-button: default;--cursor-checkbox: default;--cursor-disabled: not-allowed;--cursor-link: pointer;--cursor-menu-item: default;--cursor-radio: default;--cursor-slider-thumb: default;--cursor-slider-thumb-active: default;--cursor-switch: default;.rt-reset-buttonクラスと.rt-reset-aクラスを単一の.rt-resetクラスに置き換えます。
.rt-resetクラスは、カスタムコンポーネントを作成する際にa、button、h1、h2、h3、h4、h5、h6、ol、ul、p、preタグのリセットに使用できます。blockquote
trimプロパティを削除しました。Button`、`IconButton`disabledをasChildと共に使用する場合、他の要素にも無効スタイルを適用します。variant="classic"のルックアンドフィールを向上させました。Callout
Callout.Root内に複数のCallout.Text要素をネストできるように、レイアウトの動作を調整しました。Callout.Rootがflexプロパティを提供していた方法に依存していた場合は、レイアウトを明示的にFlexコンポーネントを使用するように変更してください。colorプロパティが渡されない限り、コールアウトがテキストカラーを継承する問題を修正しました。
highContrastプロパティをコールアウトに渡してください。variant="surface"には灰色の背景を使用します。variant="outline"には、より濃いアウトラインの色を使用します。チェックボックス
Textコンポーネントでラップすると、チェックボックスがテキストの最初の行に自動的に配置されるようにレイアウトを改善しました。
<Text as="label" size="...">でチェックボックスをラップし、優先するテキストサイズを使用してください。size="1"を追加し、デフォルトサイズをsize="2"に変更し、より洗練されたsize="3"を追加しました。sizeプロパティを使用してsize="1"またはsize="2"のチェックボックスを使用していた場合は、それぞれsize="2"とsize="3"に名前を変更してください。variant="classic"のルックアンドフィールを調整しました。Card
variant="classic"のシャドウが要素の外側に広がらないように調整しました。variant="classic"のホバーと押下スタイルを調整しました。Code
CodeがLink内にある場合に、インタラクティブスタイルを追加しました。Text要素に基づいたサイズか、コード自身のsizeプロパティからのサイズかに関わらず、variant="ghost"のフォントサイズが不整合になる問題を修正しました。variant="outline"とvariant="surface"について、アウトラインの太さをフォントサイズに相対的にスケーリングしました。variant="solid"の::selection背景色を改善しました。CodeバリアントのパディングをカスタマイズするためのCSS変数を.radix-themesに追加しました。
--code-padding-top--code-padding-bottomDropdownMenu、ContextMenuradius="full"の場合、ボーダーの半径を小さくしました。グリッド
Gridコンポーネントをネストした際に、子孫のGridが意図せず親のスタイルを継承するバグを修正しました。インセット
clipプロパティを追加しました。TableがInset内にある場合、テーブルセルのパディングを自動的に調整します。Kbd
Link
Textと同様に、色の付いたHeading要素内にあるリンクを自動的に高コントラストにしました。variant="outline"とvariant="surface"について、下線の太さをフォントサイズに相対的にスケーリングしました。RadioGroup
Textコンポーネントでラップすると、ラジオボタンがテキストの最初の行に自動的に揃うようになりました。
<Text as="label" size="...">を使用して、お好みのテキストサイズでラジオボタンをラップしてください。size="1"を追加し、デフォルトサイズをsize="2"に変更し、より洗練されたsize="3"を追加しました。
sizeプロパティを使用してsize="1"またはsize="2"のラジオボタンを使用していた場合、それぞれsize="2"とsize="3"に名前を変更してください。variant="classic"のルックアンドフィールを調整しました。Select
variant="classic"の見た目と感触を改善しました。position="popper"を使用する場合、SelectContentをトリガーの左側に配置しました。size="3"を再設計しました。ScrollArea
.radix-themesで宣言して、スクロールバーの位置調整を容易にしました。
--scrollarea-scrollbar-margin-top、--scrollarea-scrollbar-margin-leftなどを利用していた場合、新しい名前に従い、適切なレベルで設定されていることを確認してください。.rt-ScrollAreaScrollbar要素をターゲットにして変数を設定する必要はもうありません。オーバーライドが必要なコンポーネントで直接設定できます。新しい変数
--scrollarea-scrollbar-horizontal-margin-top--scrollarea-scrollbar-horizontal-margin-bottom--scrollarea-scrollbar-horizontal-margin-left--scrollarea-scrollbar-horizontal-margin-right--scrollarea-scrollbar-vertical-margin-top--scrollarea-scrollbar-vertical-margin-bottom--scrollarea-scrollbar-vertical-margin-left--scrollarea-scrollbar-vertical-margin-rightSlider
スイッチ
Switchコンポーネントでラップすると、スイッチがテキストの最初の行に自動的に揃うようになりました。
<Text as="label" size="...">を使用して、お好みのテキストサイズでスイッチをラップしてください。size="2"とsize="3"を小さくしました。
size="2"の代わりにsize="3"を使用してください。Table
Tabs
.radix-themesに追加しました。これにより、視覚的なウェイトの変化を最小限に抑えることができます。
--tabs-trigger-active-letter-spacing--tabs-trigger-active-word-spacing--tabs-trigger-inactive-letter-spacing--tabs-trigger-inactive-word-spacingテキスト
asプロパティにas="label"オプションを追加しました。asプロパティが指定されていない場合の、プロパティ型の解決方法を改善しました。TextArea
TextAreaが真のdisplay: block要素のように動作し、利用可能なスペースを水平方向に満たすようにしました。styleとclassNameは、ラッピングdiv要素に転送されるようになりました。refおよびその他のプロパティは、引き続きtextarea自体に転送されます。style、className、または関連するHTMLノードをターゲットとするカスタムCSSを使用してTextAreaのスタイルをオーバーライドしていた場合、カスタムスタイルが期待通りに動作することを確認してください。TextAreaの固有の幅に依存していた場合、レイアウトが期待通りに表示されることを確認してください。TextAreaがオーバーフローする場合に、より快適なタイピング体験のために、一致するスクロールマージンを使用しました。TextField
z-indexをリセットしました。padding-leftの代わりにtext-indentを使用しました。ThemePanel
Tooltip
radius="full"の場合、ボーダーの半径を小さくしました。multilineプロパティを削除しました。
multilineプロパティを使用していた場合、関連するTooltip要素にstyle={{ maxWidth: 250 }}を渡してください。ThemePropsとThemePanelPropsをエクスポートしました。ruby、iris、jadeContextMenuSub、DialogRoot、HoverCardRoot、PopoverRootに明示的なReact.FC型を使用しました。