Yamada UIにスターをあげる

スター
Yamada UIYamada UIv1.7.2

グローバルスタイル

グローバルスタイルは、テーマのstyles.globalStyleで定義されているスタイルを反映するコンポーネントです。

実際に定義されている値はこちらです。

global-style.ts

export const globalStyle: UIStyle = {
body: {
fontFamily: "body",
bg: ["white", "black"],
color: ["black", "white"],
transitionProperty: "background-color",
transitionDuration: "normal",
lineHeight: "base",
overflowX: "hidden",
},
"*::placeholder": {
color: "gray.500",
},
_dark: {
"*::placeholder": {
color: "whiteAlpha.400",
},
},
"*, *::before, &::after": {
borderWidth: "0",
borderStyle: "solid",
borderColor: "border",
wordWrap: "break-word",
},
}
Copied!

グローバルスタイルをカスタマイズする

テーマのstyles.globalStyleを変更するだけ、グローバルスタイルはカスタマイズできます。

styles.globalStyleは、スタイルオブジェクトまたはスタイルオブジェクトを返す関数を定義できます。

import { UIProvider, extendTheme, UIStyle } from "@yamada-ui/react"
const globalStyle: UIStyle = {
body: {
bg: "red.600",
color: "white",
},
}
const customTheme = extendTheme({ styles: { globalStyle } })()
const App = () => {
return (
<UIProvider theme={customTheme}>
<YourApplication />
</UIProvider>
)
}
Copied!

関数の場合は、themecolorModeを取得できます。

import { UIProvider, extendTheme, UIStyle } from "@yamada-ui/react"
const globalStyle: UIStyle = ({ theme, colorMode }) => ({
body: {
bg: "red.600",
color: "white",
},
})
const customTheme = extendTheme({ styles: { globalStyle } })()
const App = () => {
return (
<UIProvider theme={customTheme}>
<YourApplication />
</UIProvider>
)
}
Copied!

グローバルスタイルを追加する

インストールで個別最小限を選択して、@yamada-ui/coreをインストールしている場合、グローバルスタイルのコンポーネントは呼び出されていません。

グローバルスタイルを使いたい場合は、次の3つのことを行う必要があります。

  1. アプリケーションのルートにThemeProviderを追加する。
  2. GlobalStyleを追加する。
  3. グローバルスタイルを定義し、ThemeProviderthemeに渡す。
import { ThemeProvider, GlobalStyle } from "@yamada-ui/core"
const globalStyle: UIStyle = {
body: {
bg: ["white", "black"],
color: ["black", "white"],
},
}
const App = () => {
return (
<ThemeProvider theme={{ styles: { globalStyle } }}>
<GlobalStyle />
<YourApplication />
</ThemeProvider>
)
}
Copied!

デフォルトのテーマのグローバルスタイルを使いたい場合は、@yamada-ui/themeをインストールした後、defaultThemebaseThemeThemeProviderに渡します。

pnpm add @yamada-ui/theme
Copied!
import { ThemeProvider, GlobalStyle } from "@yamada-ui/core"
import { defaultTheme, baseTheme } from "@yamada-ui/theme"
const App = () => {
return (
// `defaultTheme` or `baseTheme`
<ThemeProvider theme={baseTheme}>
<GlobalStyle />
<YourApplication />
</ThemeProvider>
)
}
Copied!

GitHubでこのページを編集する

インターポレーションリセットスタイル