グローバルスタイル
グローバルスタイルは、テーマのstyles.globalStyle
で定義されているスタイルを反映するコンポーネントです。
グローバルスタイルのコンポーネントは、UIProvider
のなかに含まれています。
実際に定義されている値はこちらです。
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",},}
グローバルスタイルをカスタマイズする
テーマの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>)}
関数の場合は、theme
とcolorMode
を取得できます。
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>)}
テーマをもっと学びたい場合は、テーマをカスタマイズするやコンポーネントのスタイルをご覧ください。
グローバルスタイルを追加する
インストールで個別や最小限を選択して、@yamada-ui/core
をインストールしている場合、グローバルスタイルのコンポーネントは呼び出されていません。
グローバルスタイルを使いたい場合は、次の3つのことを行う必要があります。
- アプリケーションのルートに
ThemeProvider
を追加する。 GlobalStyle
を追加する。- グローバルスタイルを定義し、
ThemeProvider
のtheme
に渡す。
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>)}
デフォルトのテーマのグローバルスタイルを使いたい場合は、@yamada-ui/theme
をインストールした後、defaultTheme
かbaseTheme
をThemeProvider
に渡します。
pnpm add @yamada-ui/theme
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>)}
defaultTheme
は、コンポーネントのスタイルなど、すべてのトークンが定義されています。
baseTheme
は、グローバルスタイルやカラーなどのトークンは定義されていますが、コンポーネントのスタイルが定義されていません。
GitHubでこのページを編集する