レイアウト
NextUIのプラグインは、さまざまなレイアウトのカスタマイズオプションを提供します。スペーシング単位、フォントサイズ、行の高さ、半径などを変更して、各テーマを好みに合わせてパーソナライズできます。
レイアウトトークンを使用すると、デフォルトのTailwind CSS構成をオーバーライドする必要なく、すべてのコンポーネントで均一な外観を確保できます。
module.exports = {plugins: [nextui({layout: {}, // common layout optionsthemes: {light: {layout: {}, // light theme layout options// ...},dark: {layout: {}, // dark theme layout options// ...},// ... custom themes},}),],};
レイアウトオプションは、すべてのコンポーネントに適用されます。
デフォルトレイアウト
レイアウトトークンのデフォルト値は次のとおりです。
module.exports = {plugins: [nextui({layout: {dividerWeight: "1px", // h-divider the default height applied to the divider componentdisabledOpacity: 0.5, // this value is applied as opacity-[value] when the component is disabledfontSize: {tiny: "0.75rem", // text-tinysmall: "0.875rem", // text-smallmedium: "1rem", // text-mediumlarge: "1.125rem", // text-large},lineHeight: {tiny: "1rem", // text-tinysmall: "1.25rem", // text-smallmedium: "1.5rem", // text-mediumlarge: "1.75rem", // text-large},radius: {small: "8px", // rounded-smallmedium: "12px", // rounded-mediumlarge: "14px", // rounded-large},borderWidth: {small: "1px", // border-smallmedium: "2px", // border-medium (default)large: "3px", // border-large},},themes: {light: {layout: {hoverOpacity: 0.8, // this value is applied as opacity-[value] when the component is hoveredboxShadow: {// shadow-smallsmall:"0px 0px 5px 0px rgb(0 0 0 / 0.02), 0px 2px 10px 0px rgb(0 0 0 / 0.06), 0px 0px 1px 0px rgb(0 0 0 / 0.3)",// shadow-mediummedium:"0px 0px 15px 0px rgb(0 0 0 / 0.03), 0px 2px 30px 0px rgb(0 0 0 / 0.08), 0px 0px 1px 0px rgb(0 0 0 / 0.3)",// shadow-largelarge:"0px 0px 30px 0px rgb(0 0 0 / 0.04), 0px 30px 60px 0px rgb(0 0 0 / 0.12), 0px 0px 1px 0px rgb(0 0 0 / 0.3)",},},},dark: {layout: {hoverOpacity: 0.9, // this value is applied as opacity-[value] when the component is hoveredboxShadow: {// shadow-smallsmall:"0px 0px 5px 0px rgb(0 0 0 / 0.05), 0px 2px 10px 0px rgb(0 0 0 / 0.2), inset 0px 0px 1px 0px rgb(255 255 255 / 0.15)",// shadow-mediummedium:"0px 0px 15px 0px rgb(0 0 0 / 0.06), 0px 2px 30px 0px rgb(0 0 0 / 0.22), inset 0px 0px 1px 0px rgb(255 255 255 / 0.15)",// shadow-largelarge:"0px 0px 30px 0px rgb(0 0 0 / 0.07), 0px 30px 60px 0px rgb(0 0 0 / 0.26), inset 0px 0px 1px 0px rgb(255 255 255 / 0.15)",},},},},}),],};
CSS変数
NextUIは、各レイアウトトークンに対して--prefix-prop-name-scale
形式を使用してCSS変数を作成します。デフォルトでは、プレフィックスはnextui
ですが、prefix
オプションで変更できます。
module.exports = {plugins: [nextui({prefix: "myapp",}),],};
次に、CSSファイルでCSS変数を使用できます。
/* With default prefix */.my-button {font-size: var(--nextui-font-size-small);line-height: var(--nextui-line-height-small);border-radius: var(--nextui-radius-medium);}/* With custom prefix */.my-component {font-size: var(--myapp-font-size-small);line-height: var(--myapp-line-height-small);border-radius: var(--myapp-radius-medium);}
APIリファレンス
属性 | タイプ | 説明 |
---|---|---|
hoverOpacity | string, number | コンポーネントがホバーされたときにopacity-[値]として適用される0から1の間の数値。 |
disabledOpacity | string, number | コンポーネントが無効になっているときにopacity-[値]として適用される0から1の間の数値。 |
dividerWeight | string | dividerコンポーネントに適用されるデフォルトの高さ。px 単位を使用することをお勧めします。 |
fontSize | FontThemeUnit | コンポーネント全体に適用されるデフォルトのフォントサイズ。 |
lineHeight | FontThemeUnit | コンポーネント全体に適用されるデフォルトの行の高さ。 |
radius | BaseThemeUnit | コンポーネント全体に適用されるデフォルトの半径。rem 単位を使用することをお勧めします。 |
borderWidth | BaseThemeUnit | コンポーネント全体に適用されるボーダー幅。 |
boxShadow | BaseThemeUnit | コンポーネント全体に適用されるボックスシャドウ。 |
BaseThemeUnit
export type BaseThemeUnit = {small?: string;medium?: string;large?: string;};
FontThemeUnit
export type FontThemeUnit = {small?: string;medium?: string;large?: string;tiny?: string;};