布局
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 | 字符串、数字 | 当组件悬停时应用为 opacity-[value] 的 0 到 1 之间的一个数字。 |
disabledOpacity | 字符串、数字 | 当组件禁用时应用为 opacity-[value] 的 0 到 1 之间的一个数字。 |
dividerWeight | 字符串 | 应用于分隔符组件的默认高度。我们建议使用 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;};