Skip to content

Commit e36ad5e

Browse files
add motion base tokens to storybook (#1148)
1 parent 47194a7 commit e36ad5e

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
import React from 'react'
2+
// eslint-disable-next-line import/extensions
3+
import baseMotionTokens from '../../../../dist/docs/base/motion/motion.json'
4+
import {DataTable, Table} from '@primer/react/drafts'
5+
import {InlineCode} from '../StorybookComponents/InlineCode/InlineCode'
6+
import {getTokensByName} from '../utilities/getTokensByName'
7+
8+
export default {
9+
title: 'Motion/Base',
10+
parameters: {
11+
controls: {hideNoControlsWarning: true},
12+
tags: ['snapshotLight'],
13+
},
14+
}
15+
16+
export const Base = () => {
17+
const data = getTokensByName(baseMotionTokens, 'base').map(token => {
18+
return {
19+
id: token.name,
20+
...token,
21+
}
22+
})
23+
24+
return (
25+
<>
26+
<Table.Container>
27+
<h2 id="weight">Base duration</h2>
28+
<DataTable
29+
aria-labelledby="weight"
30+
data={data
31+
.filter(item => item.type === 'duration')
32+
.sort((a, b) => a.name.replace('base-duration-', '') - b.name.replace('base-duration-', ''))}
33+
columns={[
34+
{
35+
header: 'Token',
36+
field: 'name',
37+
rowHeader: true,
38+
renderCell: row => {
39+
return <InlineCode value={row.name} copyClipboard />
40+
},
41+
},
42+
{
43+
header: 'Output value',
44+
field: 'value',
45+
rowHeader: true,
46+
renderCell: row => {
47+
return <p>{row.value}</p>
48+
},
49+
},
50+
{
51+
header: 'Source value',
52+
field: 'original',
53+
rowHeader: true,
54+
renderCell: row => {
55+
return <p>{row.original.$value}</p>
56+
},
57+
},
58+
]}
59+
/>
60+
</Table.Container>
61+
<Table.Container>
62+
<h2 id="easing">Base easing</h2>
63+
<DataTable
64+
aria-labelledby="easing"
65+
data={data.filter(item => item.type === 'cubicBezier')}
66+
columns={[
67+
{
68+
header: 'Token',
69+
field: 'name',
70+
rowHeader: true,
71+
renderCell: row => {
72+
return <InlineCode value={row.name} copyClipboard />
73+
},
74+
},
75+
{
76+
header: 'Output value',
77+
field: 'value',
78+
rowHeader: true,
79+
renderCell: row => {
80+
return <p>{JSON.stringify(row.value)}</p>
81+
},
82+
},
83+
{
84+
header: 'Source value',
85+
field: 'original',
86+
rowHeader: true,
87+
renderCell: row => {
88+
return <p>{JSON.stringify(row.original.$value)}</p>
89+
},
90+
},
91+
]}
92+
/>
93+
</Table.Container>
94+
</>
95+
)
96+
}

0 commit comments

Comments
 (0)