welcome-ui
Version:
Customizable design system with react • styled-components • styled-system and ariakit.
133 lines (132 loc) • 5.83 kB
TypeScript
import { CSSScalar, ITheme as StyledComponentDefaultTheme, DefaultTheme as XStyledDefaultTheme } from '@xstyled/styled-components';
import { ThemeAccordions } from '../components/Accordion/theme';
import { ThemeAlerts } from '../components/Alert/theme';
import { ThemeAvatars } from '../components/Avatar/theme';
import { ThemeBadges } from '../components/Badge/theme';
import { ThemeBreadcrumbs } from '../components/Breadcrumb/theme';
import { ThemeButtons } from '../components/Button/theme';
import { ThemeCards } from '../components/Card/theme';
import { ThemeCheckboxes } from '../components/Checkbox/theme';
import { ThemeDateTimePickerCommon } from '../components/DateTimePickerCommon/theme';
import { ThemeDrawers } from '../components/Drawer/theme';
import { ThemeDropdownMenu } from '../components/DropdownMenu/theme';
import { ThemeFileDrops } from '../components/FileDrop/theme';
import { ThemeHints } from '../components/Hint/theme';
import { ThemeIcons } from '../components/Icon/theme';
import { ThemeLabels } from '../components/Label/theme';
import { ThemeLinks } from '../components/Link/theme';
import { ThemeLoaders } from '../components/Loader/theme';
import { ThemeModals } from '../components/Modal/theme';
import { ThemePagination } from '../components/Pagination/theme';
import { ThemePopovers } from '../components/Popover/theme';
import { ThemeRadios } from '../components/Radio/theme';
import { ThemeRadioTabs } from '../components/RadioTab/theme';
import { ThemeSliders } from '../components/Slider/theme';
import { ThemeSwipers } from '../components/Swiper/theme';
import { ThemeTables } from '../components/Table/theme';
import { ThemeTabs } from '../components/Tabs/theme';
import { ThemeTags } from '../components/Tag/theme';
import { ThemeTextareas } from '../components/Textarea/theme';
import { ThemeToasts } from '../components/Toast/theme';
import { ThemeToggles } from '../components/Toggle/theme';
import { ThemeTooltips } from '../components/Tooltip/theme';
import { ThemeVariantIcon } from '../components/VariantIcon/theme';
import { ThemeBorderWidths } from './borders';
import { ThemeColors } from './colors';
import { darkTheme } from './dark';
import { ThemeDefaultFields } from './defaultFields';
import { ThemeFocus } from './focus';
import { ThemeFontFaces } from './fonts';
import { ThemeRadii } from './radii';
import { ThemeScreens } from './screens';
import { ThemeSelection } from './selection';
import { ThemeShadows } from './shadows';
import { ThemeSpace } from './space';
import { ThemeTimingFunction, ThemeTransitions } from './transitions';
import { ThemeFonts, ThemeFontSizes, ThemeFontWeights, ThemeLetterSpacings, ThemeLineHeights, ThemeTexts, ThemeTextsFontColors, ThemeTextsFontFamily, ThemeTextsFontWeights, ThemeTextsTextTransform } from './typography';
import { ThemeUnderline } from './underline';
export type ThemeColorTokens = keyof ThemeColors;
export type ThemeFontsUrl = 'https://cdn.welcome-ui.com/fonts' | 'https://cdn.welcometothejungle.com/fonts' | string;
export type ThemeProps = {
[param: string]: unknown;
defaultFontFamily?: string;
defaultFontSize?: number;
defaultLetterSpacing?: string;
defaultLineHeight?: number;
fontsUrl?: ThemeFontsUrl;
headingFontFamily?: string;
iconFontFamily?: string;
};
export interface ThemeValues extends StyledComponentsTheme, XStyledTheme {
accordions: ThemeAccordions;
alerts: ThemeAlerts;
avatars: ThemeAvatars;
badges: ThemeBadges;
borderWidths: ThemeBorderWidths;
breadcrumbs: ThemeBreadcrumbs;
buttons: ThemeButtons;
cards: ThemeCards;
checkboxes: ThemeCheckboxes;
colors: ThemeColors;
dateTimePickerCommon: ThemeDateTimePickerCommon;
defaultFields: ThemeDefaultFields;
defaultLetterSpacing: string;
defaultLineHeight: number;
drawers: ThemeDrawers;
dropdownMenu: ThemeDropdownMenu;
fileDrops: ThemeFileDrops;
focus: ThemeFocus;
fontFaces: ThemeFontFaces;
fonts: ThemeFonts;
fontSizes: ThemeFontSizes;
fontsUrl: ThemeFontsUrl;
fontWeights: ThemeFontWeights;
hints: ThemeHints;
icons: ThemeIcons;
inset: ThemeSpace;
labels: ThemeLabels;
letterSpacings: ThemeLetterSpacings;
lineHeights: ThemeLineHeights;
links: ThemeLinks;
loaders: ThemeLoaders;
modals: ThemeModals;
pagination: ThemePagination;
popovers: ThemePopovers;
radii: ThemeRadii;
radios: ThemeRadios;
radiosTab: ThemeRadioTabs;
screens: ThemeScreens;
selection: ThemeSelection;
shadows: ThemeShadows;
sliders: ThemeSliders;
space: ThemeSpace;
swipers: ThemeSwipers;
tables: ThemeTables;
tabs: ThemeTabs;
tags: ThemeTags;
textareas: ThemeTextareas;
texts: ThemeTexts;
textsFontColors: ThemeTextsFontColors;
textsFontFamily: ThemeTextsFontFamily;
textsFontWeights: ThemeTextsFontWeights;
textsTextTransform: ThemeTextsTextTransform;
timingFunction: ThemeTimingFunction;
toasts: ThemeToasts;
toEm: (int: number) => string;
toggles: ThemeToggles;
tooltips: ThemeTooltips;
toPx: (int: number) => string;
toRem: (int: number) => string;
transformers: {
border: (value: CSSScalar) => CSSScalar;
px: (value: CSSScalar) => CSSScalar;
};
transitions: ThemeTransitions;
underline: ThemeUnderline;
variantIcon: ThemeVariantIcon;
}
type OverrideKeys = 'borderWidths' | 'colors' | 'fonts' | 'fontSizes' | 'fontWeights' | 'letterSpacings' | 'lineHeights' | 'radii' | 'screens' | 'shadows' | 'sizes' | 'space' | 'texts';
type StyledComponentsTheme = Omit<StyledComponentDefaultTheme, OverrideKeys>;
type XStyledTheme = Omit<XStyledDefaultTheme, OverrideKeys>;
export declare const createTheme: (options?: ThemeProps) => ThemeValues;
export { darkTheme };