@kubit-ui-web/react-components
Version:
Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience
338 lines • 14.5 kB
JavaScript
import { LinkActionType } from '../../../../../components/link/types/action';
import { LinkStateType } from '../../../../../components/link/types/state';
import { TextDisplayType } from '../../../../../components/text/types/display';
import { RADIUS } from '../../../../../designSystem/kubitWireframe/commons/foundations/borders';
import { SPACINGS } from '../../../../../designSystem/kubitWireframe/commons/foundations/spacings';
import { FONT_WEIGHT } from '../../../../../designSystem/kubitWireframe/commons/foundations/typography';
import { shadowAfterStylesSpecificProps, transformShadow, } from '../../../../../designSystem/kubitWireframe/utils/wireframe';
import { LinkVariantType, TextVariantType } from '../variants';
const commonTokens = {
labelIconContainer: {
display: TextDisplayType.INLINE_FLEX,
align_items: 'center',
color: 'inherit',
gap: SPACINGS.spacing_100,
},
};
const commonContainerTokens = COLORS => ({
display: TextDisplayType.INLINE_FLEX,
// Used to border on focus
border_radius: RADIUS.radius_full,
font_variant: TextVariantType.PARAGRAPH_SMALL_EXPANDED,
font_weight: FONT_WEIGHT.font_weight_400,
cursor: 'pointer',
...transformShadow(RADIUS.radius_00),
...shadowAfterStylesSpecificProps(RADIUS.radius_300, COLORS, SPACINGS.spacing_50, `calc(100% + ${SPACINGS.spacing_100})`, SPACINGS.spacing_50, SPACINGS.spacing_0, `calc(100% + ${SPACINGS.spacing_100})`),
});
const commonContainerTokensWithouShadow = {
display: TextDisplayType.INLINE_FLEX,
// Used to border on focus
border_radius: RADIUS.radius_full,
font_variant: TextVariantType.PARAGRAPH_SMALL_EXPANDED,
font_weight: FONT_WEIGHT.font_weight_400,
cursor: 'pointer',
};
const commonIconTokens = {
width: SPACINGS.spacing_350,
height: SPACINGS.spacing_350,
};
export const getLinkStyles = (COLORS) => {
return {
[LinkActionType.NAVIGATION]: {
[LinkVariantType.PRIMARY]: {
[LinkStateType.DEFAULT]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_100,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_100,
},
},
[LinkStateType.PRESSED]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.PRESSED.color_accent_pressed_font_200,
background_color: COLORS.PRESSED.color_accent_pressed_bg_100,
},
icon: {
...commonIconTokens,
color: COLORS.PRESSED.color_accent_pressed_icon_200,
},
},
[LinkStateType.VISITED]: {},
[LinkStateType.DISABLED]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.DISABLED.color_accentDisabled_font_100,
},
icon: {
...commonIconTokens,
color: COLORS.DISABLED.color_accentDisabled_icon_100,
},
},
[LinkStateType.HOVER]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_100,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_100,
},
},
},
[LinkVariantType.SECONDARY]: {
[LinkStateType.DEFAULT]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_50,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_50,
},
},
[LinkStateType.PRESSED]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.PRESSED.color_accent_pressed_font_150,
background_color: COLORS.PRESSED.color_accent_pressed_bg_100,
},
icon: {
...commonIconTokens,
color: COLORS.PRESSED.color_accent_pressed_icon_150,
},
},
[LinkStateType.VISITED]: {},
[LinkStateType.DISABLED]: {
...commonTokens,
container: {
...commonContainerTokensWithouShadow,
color: COLORS.DISABLED.color_accentDisabled_font_100,
},
icon: {
...commonIconTokens,
color: COLORS.DISABLED.color_accentDisabled_icon_100,
},
},
[LinkStateType.HOVER]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_50,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_50,
},
},
},
[LinkVariantType.SECONDARY_ALT]: {
[LinkStateType.DEFAULT]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_150,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_150,
},
},
[LinkStateType.PRESSED]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.PRESSED.color_accent_pressed_font_100,
background_color: COLORS.PRESSED.color_accent_pressed_bg_200,
},
icon: {
...commonIconTokens,
color: COLORS.PRESSED.color_accent_pressed_icon_100,
},
},
[LinkStateType.VISITED]: {},
[LinkStateType.DISABLED]: {
...commonTokens,
container: {
...commonContainerTokensWithouShadow,
color: COLORS.DISABLED.color_accentDisabled_font_100,
},
icon: {
...commonIconTokens,
color: COLORS.DISABLED.color_accentDisabled_icon_100,
},
},
[LinkStateType.HOVER]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_150,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_150,
},
},
},
},
[LinkActionType.INLINE]: {
[LinkVariantType.PRIMARY]: {
[LinkStateType.DEFAULT]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_100,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_100,
},
},
[LinkStateType.PRESSED]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.PRESSED.color_accent_pressed_font_200,
background_color: COLORS.PRESSED.color_accent_pressed_bg_100,
},
icon: {
...commonIconTokens,
color: COLORS.PRESSED.color_accent_pressed_icon_200,
},
},
[LinkStateType.VISITED]: {},
[LinkStateType.DISABLED]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.DISABLED.color_accentDisabled_font_100,
},
icon: {
color: COLORS.DISABLED.color_accentDisabled_icon_100,
width: SPACINGS.spacing_350,
height: SPACINGS.spacing_350,
},
},
[LinkStateType.HOVER]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_100,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_100,
},
},
},
[LinkVariantType.SECONDARY]: {
[LinkStateType.DEFAULT]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_50,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_50,
},
},
[LinkStateType.PRESSED]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.PRESSED.color_accent_pressed_font_150,
background_color: COLORS.PRESSED.color_accent_pressed_bg_100,
},
icon: {
...commonIconTokens,
color: COLORS.PRESSED.color_accent_pressed_icon_150,
},
},
[LinkStateType.VISITED]: {},
[LinkStateType.DISABLED]: {
...commonTokens,
container: {
...commonContainerTokensWithouShadow,
color: COLORS.DISABLED.color_accentDisabled_font_100,
},
icon: {
color: COLORS.DISABLED.color_accentDisabled_icon_100,
width: SPACINGS.spacing_350,
height: SPACINGS.spacing_350,
},
},
[LinkStateType.HOVER]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_50,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_50,
},
},
},
[LinkVariantType.SECONDARY_ALT]: {
[LinkStateType.DEFAULT]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_150,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_150,
},
},
[LinkStateType.PRESSED]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.PRESSED.color_accent_pressed_font_100,
background_color: COLORS.PRESSED.color_accent_pressed_bg_200,
},
icon: {
...commonIconTokens,
color: COLORS.PRESSED.color_accent_pressed_icon_100,
},
},
[LinkStateType.VISITED]: {},
[LinkStateType.DISABLED]: {
...commonTokens,
container: {
...commonContainerTokensWithouShadow,
color: COLORS.DISABLED.color_accentDisabled_font_100,
},
icon: {
color: COLORS.DISABLED.color_accentDisabled_icon_100,
width: SPACINGS.spacing_350,
height: SPACINGS.spacing_350,
},
},
[LinkStateType.HOVER]: {
...commonTokens,
container: {
...commonContainerTokens(COLORS),
color: COLORS.ACCENT.color_accent_default_font_150,
},
icon: {
...commonIconTokens,
color: COLORS.ACCENT.color_accent_default_icon_150,
},
},
},
},
};
};
//# sourceMappingURL=styles.js.map