UNPKG

@fluentui/react

Version:

Reusable React components for building web experiences.

60 lines (49 loc) 2.09 kB
import * as React from 'react'; import type { IStyle, ITheme } from '../../Styling'; import type { IRefObject, IStyleFunctionOrObject } from '../../Utilities'; export interface IFabricProps extends React.HTMLAttributes<HTMLDivElement>, React.RefAttributes<HTMLDivElement> { componentRef?: IRefObject<{}>; /** * Overrides the root element type, defaults to `div`. */ as?: React.ElementType; /** * Injected by the `styled` HOC wrapper. */ theme?: ITheme; /** * Overrides the styles for the component. */ styles?: IStyleFunctionOrObject<IFabricStyleProps, IFabricStyles>; /** * Applies the current body background specified in the theme to the root element. */ applyTheme?: boolean; /** * Applies the current body background specified in the theme to the body element. */ applyThemeToBody?: boolean; /** * Specifies the direction of the content. Will inject a `dir` attribute, and also ensure that the `rtl` flag of the * contextual theme object is set correctly so that css registered with merge-styles can be auto flipped correctly. */ dir?: 'rtl' | 'ltr' | 'auto'; /** * By default, the Fabric component has children selectors for button, input and textarea elements that apply the * style `fontFamily: 'inherit'`. This is done so the font family is consistent across all of these elements under a * Fabric component. However, this is expensive in style recalculation scenarios and it is not the responsibility of * the Fabric component to ensure that non-Fluent elements within it have these styles. * Setting this prop to true prevents the Fabric component from applying these children selectors. As long as only * v8 Fluent components are being used within it, no changes should be apparent since all Fluent components already * set the font family in their styles. * @defaultvalue false */ preventBlanketFontInheritance?: boolean; } export interface IFabricStyleProps extends IFabricProps { theme: ITheme; } export interface IFabricStyles { root: IStyle; bodyThemed: IStyle; }