Skip to content

Commit d24f80f

Browse files
authored
fix: default style for list components
1 parent c0e482e commit d24f80f

File tree

3 files changed

+88
-53
lines changed

3 files changed

+88
-53
lines changed

components/List/List.stories.tsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { Button } from '../Button';
77
import { Checkbox } from '../Checkbox';
88
import { Flex } from '../Flex';
99
import { Text } from '../Text';
10-
import { Li, Ul } from './List';
10+
import { Li, Ol, Ul } from './List';
1111

1212
const Component: Meta<typeof Ul> = {
1313
title: 'Components/List',
@@ -25,13 +25,22 @@ const Template: StoryFn<typeof Ul> = (args) => (
2525

2626
export const Basic: StoryFn<typeof Ul> = Template.bind({});
2727

28+
export const Ordered: StoryFn<typeof Ol> = (args) => (
29+
<Ol {...args}>
30+
<Li>Dashboard</Li>
31+
<Li>Profile</Li>
32+
<Li>Settings</Li>
33+
<Li>Help</Li>
34+
</Ol>
35+
);
36+
2837
export const Interactive: StoryFn<typeof Ul> = Template.bind({});
2938
Interactive.args = {
3039
interactive: true,
3140
};
3241

3342
export const Users: StoryFn<typeof Ul> = (args) => (
34-
<Ul {...args}>
43+
<Ul css={{ listStyleType: 'none' }} {...args}>
3544
<Li gap="3">
3645
<Avatar id="100" src="https://picsum.photos/100" />
3746
<Flex align="start" direction="column">
@@ -60,7 +69,7 @@ Users.args = {
6069
};
6170

6271
export const Controls: StoryFn<typeof Ul> = (args) => (
63-
<Ul {...args}>
72+
<Ul css={{ listStyleType: 'none' }} {...args}>
6473
<Li gap="3" controls={<Checkbox />}>
6574
<Avatar id="100" src="https://picsum.photos/100" />
6675
<Flex align="start" direction="column">

components/List/List.tsx

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const StyledSpan = styled('span', Flex, {
1818
// APPLY BUTTON STYLES
1919
...LIST_ITEM_CONTENT_STYLES,
2020
// CUSTOM
21-
p: '$2',
21+
p: '$1',
2222
});
2323

2424
const StyledListItemButton = styled('button', Flex, {
@@ -71,29 +71,38 @@ const StyledListItemButton = styled('button', Flex, {
7171
});
7272

7373
const StyledLi = styled('li', {
74-
borderRadius: '$1',
7574
m: '$2',
7675
outline: 'none',
7776
position: 'relative',
78-
display: 'flex',
7977
'&:focus-within': {
8078
boxShadow: 'none',
8179
},
8280
variants: {
8381
elevation: elevationVariants,
8482
},
8583
defaultVariants: {
86-
elevation: '1',
84+
elevation: '0',
8785
},
8886
});
8987

9088
const StyledUl = styled('ul', {
91-
listStyleType: 'none',
9289
m: 0,
9390
p: 0,
9491
color: '$hiContrast',
9592
});
9693

94+
const StyledOl = styled('ol', {
95+
m: 0,
96+
p: 0,
97+
color: '$hiContrast',
98+
99+
'> li::marker': {
100+
fontSize: '$3',
101+
color: '$hiContrast',
102+
fontFamily: '$rubik',
103+
},
104+
});
105+
97106
const ListContext = createContext({
98107
interactive: false,
99108
});
@@ -110,7 +119,25 @@ export const Ul = React.forwardRef<React.ElementRef<typeof StyledUl>, ListProps>
110119
<StyledUl role="list" ref={forwardedRef} {...props} />
111120
</ListContext.Provider>
112121
);
113-
}
122+
},
123+
);
124+
125+
export interface OrderedListProps
126+
extends ComponentProps<typeof StyledOl>,
127+
VariantProps<typeof StyledOl> {
128+
interactive?: boolean;
129+
}
130+
131+
export const Ol = React.forwardRef<React.ElementRef<typeof StyledOl>, OrderedListProps>(
132+
({ interactive, ...props }, forwardedRef) => {
133+
const contextValue = useMemo(() => ({ interactive: !!interactive }), [interactive]);
134+
135+
return (
136+
<ListContext.Provider value={contextValue}>
137+
<StyledOl role="list" ref={forwardedRef} {...props} />
138+
</ListContext.Provider>
139+
);
140+
},
114141
);
115142

116143
const ControlsWrapper = styled('div', {
@@ -161,5 +188,5 @@ export const Li = React.forwardRef<React.ElementRef<typeof StyledLi>, ListItemPr
161188
{!!controls && <ControlsWrapper>{controls}</ControlsWrapper>}
162189
</StyledLi>
163190
);
164-
}
191+
},
165192
);

index.ts

Lines changed: 42 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,30 @@
1+
export { AccessibleIcon } from './components/AccessibleIcon';
12
export {
2-
AccordionRoot,
3+
AccordionContent,
34
AccordionItem,
5+
AccordionRoot,
46
AccordionTrigger,
5-
AccordionContent,
67
} from './components/Accordion';
7-
export {
8-
RadioAccordionRoot,
9-
RadioAccordionItem,
10-
RadioAccordionTrigger,
11-
RadioAccordionContent,
12-
} from './components/RadioAccordion';
138
export { Alert } from './components/Alert';
14-
export { AspectRatio } from '@radix-ui/react-aspect-ratio';
9+
export {
10+
Caption as AriaCaption,
11+
Table as AriaTable,
12+
Tbody as AriaTbody,
13+
Td as AriaTd,
14+
Tfoot as AriaTfoot,
15+
Th as AriaTh,
16+
Thead as AriaThead,
17+
Tr as AriaTr,
18+
} from './components/AriaTable';
19+
export { Avatar } from './components/Avatar';
1520
export { Badge } from './components/Badge';
1621
export { Box } from './components/Box';
1722
export { Bubble } from './components/Bubble';
1823
export { Button } from './components/Button';
24+
export { ButtonSwitchContainer, ButtonSwitchItem } from './components/ButtonSwitch';
1925
export { Card } from './components/Card';
2026
export { Checkbox } from './components/Checkbox';
2127
export { Container } from './components/Container';
22-
export { Elevation, elevationVariants } from './components/Elevation';
23-
export { FaencyProvider } from './components/FaencyProvider';
2428
export { DateTimePicker } from './components/DateTimePicker';
2529
export {
2630
Dialog,
@@ -36,26 +40,26 @@ export {
3640
} from './components/Dialog';
3741
export {
3842
DropdownMenu,
39-
DropdownMenuTrigger,
40-
DropdownMenuContent,
4143
DropdownMenuCheckboxItem,
44+
DropdownMenuContent,
4245
DropdownMenuGroup,
4346
DropdownMenuItem,
4447
DropdownMenuLabel,
48+
DropdownMenuPortal,
4549
DropdownMenuRadioGroup,
4650
DropdownMenuRadioItem,
4751
DropdownMenuSeparator,
48-
DropdownMenuPortal,
52+
DropdownMenuTrigger,
4953
} from './components/DropdownMenu';
54+
export { Elevation, elevationVariants } from './components/Elevation';
55+
export { FaencyProvider } from './components/FaencyProvider';
5056
export { Flex } from './components/Flex';
5157
export { Grid } from './components/Grid';
5258
export { H1, H2, H3, H4, H5, H6 } from './components/Heading';
5359
export { Image } from './components/Image';
54-
export { TextField } from './components/TextField';
55-
export { Textarea } from './components/Textarea';
5660
export { Label } from './components/Label';
5761
export { Link } from './components/Link';
58-
export { Ul, Li } from './components/List';
62+
export { Li, Ol, Ul } from './components/List';
5963
export {
6064
NavigationContainer,
6165
NavigationDrawer,
@@ -73,54 +77,49 @@ export {
7377
NavigationMenuViewport,
7478
} from './components/NavigationMenu';
7579
export {
76-
NavigationTreeDrawer,
7780
NavigationTreeContainer,
81+
NavigationTreeDrawer,
7882
NavigationTreeItem,
7983
} from './components/NavigationTree';
8084
export { Overlay } from './components/Overlay';
8185
export {
8286
Popover,
87+
PopoverAnchor,
8388
PopoverClose,
8489
PopoverContent,
85-
PopoverTrigger,
86-
PopoverAnchor,
8790
PopoverPortal,
91+
PopoverTrigger,
8892
} from './components/Popover';
89-
export { Portal } from '@radix-ui/react-portal';
9093
export { Radio, RadioGroup } from './components/Radio';
94+
export {
95+
RadioAccordionContent,
96+
RadioAccordionItem,
97+
RadioAccordionRoot,
98+
RadioAccordionTrigger,
99+
} from './components/RadioAccordion';
91100
export { Select } from './components/Select';
92101
export { Skeleton } from './components/Skeleton';
93102
export { Switch } from './components/Switch';
94-
export {
95-
Caption as AriaCaption,
96-
Tbody as AriaTbody,
97-
Tfoot as AriaTfoot,
98-
Tr as AriaTr,
99-
Th as AriaTh,
100-
Td as AriaTd,
101-
Thead as AriaThead,
102-
Table as AriaTable,
103-
} from './components/AriaTable';
104-
export { Caption, Tbody, Tfoot, Tr, Th, Td, Thead, Table } from './components/Table';
103+
export { Caption, Table, Tbody, Td, Tfoot, Th, Thead, Tr } from './components/Table';
104+
export { TabsContainer, TabsContent, TabsList, TabsTrigger } from './components/Tabs';
105105
export { Text } from './components/Text';
106-
export { Tooltip, TooltipRoot, TooltipTrigger, TooltipContent } from './components/Tooltip';
106+
export { Textarea } from './components/Textarea';
107+
export { TextField } from './components/TextField';
108+
export { Tooltip, TooltipContent, TooltipRoot, TooltipTrigger } from './components/Tooltip';
107109
export { VisuallyHidden } from './components/VisuallyHidden';
108-
export { Avatar } from './components/Avatar';
109-
export { ButtonSwitchContainer, ButtonSwitchItem } from './components/ButtonSwitch';
110-
export { TabsContainer, TabsList, TabsTrigger, TabsContent } from './components/Tabs';
111-
export { AccessibleIcon } from './components/AccessibleIcon';
110+
export { AspectRatio } from '@radix-ui/react-aspect-ratio';
111+
export { Portal } from '@radix-ui/react-portal';
112112

113113
// Stitches
114+
export type { CSS, VariantProps } from './stitches.config';
114115
export {
115-
styled,
116-
css,
116+
config,
117117
createTheme,
118+
css,
119+
darkTheme,
118120
getCssText,
119121
globalCss,
120122
keyframes,
121-
config,
122123
lightTheme,
123-
darkTheme,
124+
styled,
124125
} from './stitches.config';
125-
126-
export type { CSS, VariantProps } from './stitches.config';

0 commit comments

Comments
 (0)