Files
react/components/select/styles.ts
witt 5c02bcf0e1 refactor(themes): refactor theme module to keep multiple themes (#440)
* refactor(themes): refactor theme module to keep multiple themes

* chore: migrate APIs to be compatible with new theme system

* test: update snapshots

* chore: migrate the path of the theme module

* feat(themes): append static methods of themes

* chore: hide custom theme when no custom content in the context

* chore: manually add flush to preload styles in html

* docs(themes): update to fit the new theme system
2021-02-03 23:11:35 +08:00

36 lines
868 B
TypeScript

import { NormalSizes } from 'components/utils/prop-types'
import { GeistUIThemes } from 'components/themes/presets'
export interface SelectSize {
height: string
fontSize: string
minWidth: string
}
export const getSizes = (theme: GeistUIThemes, size?: NormalSizes) => {
const sizes: { [key in NormalSizes]: SelectSize } = {
medium: {
height: `calc(1.688 * ${theme.layout.gap})`,
fontSize: '.875rem',
minWidth: '10rem',
},
small: {
height: `calc(1.344 * ${theme.layout.gap})`,
fontSize: '.75rem',
minWidth: '8rem',
},
mini: {
height: `calc(1 * ${theme.layout.gap})`,
fontSize: '.75rem',
minWidth: '6.5rem',
},
large: {
height: `calc(2 * ${theme.layout.gap})`,
fontSize: '1.225rem',
minWidth: '12.5rem',
},
}
return size ? sizes[size] : sizes.medium
}