UNPKG

@zendeskgarden/react-typography

Version:

Components relating to typography in the Garden Design System

49 lines (46 loc) 2.42 kB
/** * Copyright Zendesk, Inc. * * Use of this source code is governed under the Apache License, Version 2.0 * found at http://www.apache.org/licenses/LICENSE-2.0. */ import styled, { css } from 'styled-components'; import { math } from 'polished'; import { componentStyles, DEFAULT_THEME, getLineHeight } from '@zendeskgarden/react-theming'; import { StyledOrderedList, StyledUnorderedList } from './StyledList.js'; import { StyledFont } from './StyledFont.js'; const listItemPaddingStyles = props => { const base = props.theme.space.base; const paddingTop = props.$space === 'large' ? `${base * 2}px` : `${base}px`; return css(["padding-top:", ";", " > &:first-child,", " > &:first-child{padding-top:0;}", " ", " > &:first-child,", " ", " > &:first-child,", " ", " > &:first-child,", " ", " > &:first-child{padding-top:", ";}"], paddingTop, StyledOrderedList, StyledUnorderedList, StyledOrderedList, StyledOrderedList, StyledOrderedList, StyledUnorderedList, StyledUnorderedList, StyledUnorderedList, StyledUnorderedList, StyledOrderedList, paddingTop); }; const listItemStyles = props => { return css(["line-height:", ";", ";"], getLineHeight(props.theme.lineHeights.md, props.theme.fontSizes.md), props.$space !== 'small' && listItemPaddingStyles(props)); }; const ORDERED_ID = 'typography.ordered_list_item'; const StyledOrderedListItem = styled(StyledFont).attrs({ 'data-garden-id': ORDERED_ID, 'data-garden-version': '9.10.0', as: 'li' }).withConfig({ displayName: "StyledListItem__StyledOrderedListItem", componentId: "sc-9rsipg-0" })(["margin-", ":", ";padding-", ":", ";", ";", ";"], props => props.theme.rtl ? 'right' : 'left', props => math(`${props.theme.space.base} * -1px`), props => props.theme.rtl ? 'right' : 'left', props => math(`${props.theme.space.base} * 1px`), listItemStyles, componentStyles); StyledOrderedListItem.defaultProps = { $space: 'medium', theme: DEFAULT_THEME }; const UNORDERED_ID = 'typography.unordered_list_item'; const StyledUnorderedListItem = styled(StyledFont).attrs({ 'data-garden-id': UNORDERED_ID, 'data-garden-version': '9.10.0', as: 'li' }).withConfig({ displayName: "StyledListItem__StyledUnorderedListItem", componentId: "sc-9rsipg-1" })(["", ";", ";"], listItemStyles, componentStyles); StyledUnorderedListItem.defaultProps = { $space: 'medium', theme: DEFAULT_THEME }; export { StyledOrderedListItem, StyledUnorderedListItem };