@sanity-labs/ui-poc 0.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components.css +9 -0
- package/dist/index.d.ts +203 -0
- package/dist/index.js +290 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +8044 -0
- package/dist/utilities.css +8032 -0
- package/package.json +89 -0
- package/src/components/box/Box.tsx +30 -0
- package/src/components/box/box.props.ts +15 -0
- package/src/components/flex/Flex.tsx +31 -0
- package/src/components/flex/flex.props.ts +19 -0
- package/src/components/grid/Grid.tsx +31 -0
- package/src/components/grid/grid.props.ts +19 -0
- package/src/components/index.css +0 -0
- package/src/components/text/Text.tsx +43 -0
- package/src/components/text/text.props.ts +15 -0
- package/src/css/global.css +103 -0
- package/src/css/index.css +6 -0
- package/src/css/utilities/dynamic/flex-child.css +5 -0
- package/src/css/utilities/dynamic/grid-child.css +8 -0
- package/src/css/utilities/dynamic/grid-parent.css +6 -0
- package/src/css/utilities/dynamic/height.css +5 -0
- package/src/css/utilities/dynamic/index.css +7 -0
- package/src/css/utilities/dynamic/line-clamp.css +6 -0
- package/src/css/utilities/dynamic/width.css +5 -0
- package/src/css/utilities/dynamic/z-index.css +3 -0
- package/src/css/utilities/generic/border.css +11 -0
- package/src/css/utilities/generic/display.css +13 -0
- package/src/css/utilities/generic/flex.css +24 -0
- package/src/css/utilities/generic/grid.css +7 -0
- package/src/css/utilities/generic/index.css +10 -0
- package/src/css/utilities/generic/overflow.css +19 -0
- package/src/css/utilities/generic/position.css +7 -0
- package/src/css/utilities/generic/text-align.css +5 -0
- package/src/css/utilities/generic/text-muted.css +2 -0
- package/src/css/utilities/generic/text-trim.css +38 -0
- package/src/css/utilities/generic/tone.css +34 -0
- package/src/css/utilities/tokenized/color.css +223 -0
- package/src/css/utilities/tokenized/container.css +8 -0
- package/src/css/utilities/tokenized/fontFamily.css +2 -0
- package/src/css/utilities/tokenized/fontWeight.css +4 -0
- package/src/css/utilities/tokenized/gap.css +34 -0
- package/src/css/utilities/tokenized/index.css +9 -0
- package/src/css/utilities/tokenized/inset.css +56 -0
- package/src/css/utilities/tokenized/margin.css +92 -0
- package/src/css/utilities/tokenized/padding.css +85 -0
- package/src/css/utilities/tokenized/radius.css +8 -0
- package/src/css/utilities/tokenized/shadow.css +6 -0
- package/src/css/utilities/tokenized/typography.css +31 -0
- package/src/index.css +2 -0
- package/src/index.ts +1 -0
- package/src/props/border.ts +51 -0
- package/src/props/flexChild.ts +29 -0
- package/src/props/flexParent.ts +46 -0
- package/src/props/gap.ts +30 -0
- package/src/props/gridChild.ts +50 -0
- package/src/props/gridParent.ts +44 -0
- package/src/props/height.ts +29 -0
- package/src/props/layout.ts +37 -0
- package/src/props/margin.ts +58 -0
- package/src/props/overflow.ts +30 -0
- package/src/props/padding.ts +58 -0
- package/src/props/position.ts +59 -0
- package/src/props/tone.ts +16 -0
- package/src/props/typography.ts +46 -0
- package/src/props/width.ts +29 -0
- package/src/types/Display.ts +8 -0
- package/src/types/Flex.ts +18 -0
- package/src/types/FontWeight.ts +2 -0
- package/src/types/Grid.ts +2 -0
- package/src/types/Overflow.ts +2 -0
- package/src/types/Position.ts +2 -0
- package/src/types/PropDef.ts +25 -0
- package/src/types/Radius.ts +2 -0
- package/src/types/Responsive.ts +10 -0
- package/src/types/Space.ts +5 -0
- package/src/types/Text.ts +2 -0
- package/src/types/TextAlign.ts +2 -0
- package/src/types/Tone.ts +2 -0
- package/src/utils/getProps.test.ts +103 -0
- package/src/utils/getProps.ts +74 -0
package/package.json
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sanity-labs/ui-poc",
|
|
3
|
+
"version": "0.0.1-alpha.0",
|
|
4
|
+
"description": "Sanity UI POC",
|
|
5
|
+
"keywords": [],
|
|
6
|
+
"homepage": "https://github.com/sanity-labs/ui-poc#readme",
|
|
7
|
+
"bugs": {
|
|
8
|
+
"url": "https://github.com/sanity-labs/ui-poc/issues"
|
|
9
|
+
},
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/sanity-labs/ui-poc.git"
|
|
13
|
+
},
|
|
14
|
+
"license": "ISC",
|
|
15
|
+
"author": "Sanity",
|
|
16
|
+
"sideEffects": false,
|
|
17
|
+
"type": "module",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"source": "./src/index.ts",
|
|
21
|
+
"default": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./package.json": "./package.json",
|
|
24
|
+
"./styles.css": "./dist/styles.css"
|
|
25
|
+
},
|
|
26
|
+
"types": "./dist/index.d.ts",
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"src"
|
|
30
|
+
],
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "pnpm run clean & pnpm run /^build:/",
|
|
33
|
+
"build:css:components": "postcss src/components/index.css -o dist/components.css",
|
|
34
|
+
"build:css:index": "postcss src/index.css -o dist/styles.css",
|
|
35
|
+
"build:css:utilities": "postcss src/css/index.css -o dist/utilities.css",
|
|
36
|
+
"build:js": "pkg build --strict --check",
|
|
37
|
+
"clean": "rimraf dist",
|
|
38
|
+
"dev": "pnpm run --parallel /^dev:/",
|
|
39
|
+
"dev:css": "postcss src/index.css -o src/styles.css --watch",
|
|
40
|
+
"dev:js": "pkg watch",
|
|
41
|
+
"format": "prettier --write --cache --ignore-unknown .",
|
|
42
|
+
"lint": "eslint . --ext .cjs,.js,.ts,.tsx",
|
|
43
|
+
"test": "vitest run",
|
|
44
|
+
"ts:check": "tsc --noEmit"
|
|
45
|
+
},
|
|
46
|
+
"lint-staged": {
|
|
47
|
+
"*": [
|
|
48
|
+
"prettier --write --cache --ignore-unknown"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"browserslist": "extends @sanity/browserslist-config",
|
|
52
|
+
"prettier": "@sanity/prettier-config",
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"@sanity-labs/design-tokens": "0.0.2-alpha.0",
|
|
55
|
+
"classnames": "^2.5.1"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@sanity/pkg-utils": "^9.2.3",
|
|
59
|
+
"@sanity/prettier-config": "^1.0.6",
|
|
60
|
+
"@sanity/tsconfig": "^1.0.0",
|
|
61
|
+
"@types/postcss-import": "^14.0.3",
|
|
62
|
+
"@types/react": "^19.2.14",
|
|
63
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
64
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
65
|
+
"autoprefixer": "^10.4.27",
|
|
66
|
+
"eslint": "^8.57.1",
|
|
67
|
+
"eslint-config-prettier": "^9.1.2",
|
|
68
|
+
"eslint-plugin-import": "^2.32.0",
|
|
69
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
70
|
+
"eslint-plugin-simple-import-sort": "^12.1.1",
|
|
71
|
+
"lint-staged": "^15.5.2",
|
|
72
|
+
"postcss": "^8.5.8",
|
|
73
|
+
"postcss-cli": "^11.0.1",
|
|
74
|
+
"postcss-import": "^16.1.1",
|
|
75
|
+
"prettier": "^3.8.1",
|
|
76
|
+
"prettier-plugin-packagejson": "^3.0.2",
|
|
77
|
+
"rimraf": "^6.1.3",
|
|
78
|
+
"typescript": "^5.9.3",
|
|
79
|
+
"vitest": "^4.1.1"
|
|
80
|
+
},
|
|
81
|
+
"peerDependencies": {
|
|
82
|
+
"react": "^19.2",
|
|
83
|
+
"react-dom": "^19.2"
|
|
84
|
+
},
|
|
85
|
+
"packageManager": "pnpm@10.17.0",
|
|
86
|
+
"engines": {
|
|
87
|
+
"node": ">=20.19 <22 || >=22.12"
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import classNames from 'classnames'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
|
|
4
|
+
import {type LayoutProps} from '../../props/layout'
|
|
5
|
+
import {type DisplayBlock} from '../../types/Display'
|
|
6
|
+
import {type Responsive} from '../../types/Responsive'
|
|
7
|
+
import {getProps} from '../../utils/getProps'
|
|
8
|
+
import {boxProps} from './box.props'
|
|
9
|
+
|
|
10
|
+
/** @public */
|
|
11
|
+
export interface BoxProps<T extends React.ElementType> extends LayoutProps {
|
|
12
|
+
/** Element to render */
|
|
13
|
+
as?: T
|
|
14
|
+
/** CSS **display** property */
|
|
15
|
+
display?: Responsive<DisplayBlock>
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** @public */
|
|
19
|
+
export function Box<T extends React.ElementType = 'div'>(
|
|
20
|
+
{display = 'block', ...props}: BoxProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof BoxProps<T>>,
|
|
21
|
+
) {
|
|
22
|
+
const {as, children, className, style, ...rest} = getProps({display, ...props}, boxProps)
|
|
23
|
+
const Component = as || 'div'
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<Component className={classNames('sui-Box', className)} style={style} data-ui="Box" {...rest}>
|
|
27
|
+
{children}
|
|
28
|
+
</Component>
|
|
29
|
+
)
|
|
30
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {layoutProps} from '../../props/layout'
|
|
2
|
+
import {DISPLAY_BLOCK} from '../../types/Display'
|
|
3
|
+
import {type PropDef} from '../../types/PropDef'
|
|
4
|
+
|
|
5
|
+
export const boxProps: Record<string, PropDef> = {
|
|
6
|
+
as: {
|
|
7
|
+
type: 'string',
|
|
8
|
+
},
|
|
9
|
+
display: {
|
|
10
|
+
type: 'union',
|
|
11
|
+
className: 'display',
|
|
12
|
+
values: DISPLAY_BLOCK,
|
|
13
|
+
},
|
|
14
|
+
...layoutProps,
|
|
15
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import classNames from 'classnames'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
|
|
4
|
+
import type {FlexParentProps} from '../../props/flexParent'
|
|
5
|
+
import type {GapProps} from '../../props/gap'
|
|
6
|
+
import {type LayoutProps} from '../../props/layout'
|
|
7
|
+
import {type DisplayFlex} from '../../types/Display'
|
|
8
|
+
import {type Responsive} from '../../types/Responsive'
|
|
9
|
+
import {getProps} from '../../utils/getProps'
|
|
10
|
+
import {flexProps} from './flex.props'
|
|
11
|
+
|
|
12
|
+
export interface FlexProps<T extends React.ElementType>
|
|
13
|
+
extends FlexParentProps, GapProps, LayoutProps {
|
|
14
|
+
/** Element to render */
|
|
15
|
+
as?: T
|
|
16
|
+
/** CSS **display** property */
|
|
17
|
+
display?: Responsive<DisplayFlex>
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function Flex<T extends React.ElementType = 'div'>(
|
|
21
|
+
{ display = 'flex', ...props}: FlexProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof FlexProps<T>>,
|
|
22
|
+
) {
|
|
23
|
+
const {as, children, className, style, ...rest} = getProps({display, ...props}, flexProps)
|
|
24
|
+
const Component = as || 'div'
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<Component className={classNames('sui-Flex', className)} style={style} data-ui="Flex" {...rest}>
|
|
28
|
+
{children}
|
|
29
|
+
</Component>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {flexParentProps} from '../../props/flexParent'
|
|
2
|
+
import {gapProps} from '../../props/gap'
|
|
3
|
+
import {layoutProps} from '../../props/layout'
|
|
4
|
+
import {DISPLAY_FLEX} from '../../types/Display'
|
|
5
|
+
import {type PropDef} from '../../types/PropDef'
|
|
6
|
+
|
|
7
|
+
export const flexProps: Record<string, PropDef> = {
|
|
8
|
+
as: {
|
|
9
|
+
type: 'string',
|
|
10
|
+
},
|
|
11
|
+
display: {
|
|
12
|
+
type: 'union',
|
|
13
|
+
className: 'display',
|
|
14
|
+
values: DISPLAY_FLEX,
|
|
15
|
+
},
|
|
16
|
+
...flexParentProps,
|
|
17
|
+
...gapProps,
|
|
18
|
+
...layoutProps,
|
|
19
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import classNames from 'classnames'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
|
|
4
|
+
import {type GapProps} from '../../props/gap'
|
|
5
|
+
import {type GridParentProps} from '../../props/gridParent'
|
|
6
|
+
import {type LayoutProps} from '../../props/layout'
|
|
7
|
+
import {type DisplayGrid} from '../../types/Display'
|
|
8
|
+
import {type Responsive} from '../../types/Responsive'
|
|
9
|
+
import {getProps} from '../../utils/getProps'
|
|
10
|
+
import {gridProps} from './grid.props'
|
|
11
|
+
|
|
12
|
+
export interface FlexProps<T extends React.ElementType>
|
|
13
|
+
extends GridParentProps, GapProps, LayoutProps {
|
|
14
|
+
/** Element to render */
|
|
15
|
+
as?: T
|
|
16
|
+
/** CSS **display** property */
|
|
17
|
+
display?: Responsive<DisplayGrid>
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function Grid<T extends React.ElementType = 'div'>(
|
|
21
|
+
{display = 'grid', ...props}: FlexProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof FlexProps<T>>,
|
|
22
|
+
) {
|
|
23
|
+
const {as, children, className, style, ...rest} = getProps({display, ...props}, gridProps)
|
|
24
|
+
const Component = as || 'div'
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<Component className={classNames('sui-Grid', className)} style={style} data-ui="Grid" {...rest}>
|
|
28
|
+
{children}
|
|
29
|
+
</Component>
|
|
30
|
+
)
|
|
31
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {gapProps} from '../../props/gap'
|
|
2
|
+
import {gridParentProps} from '../../props/gridParent'
|
|
3
|
+
import {layoutProps} from '../../props/layout'
|
|
4
|
+
import {DISPLAY_GRID} from '../../types/Display'
|
|
5
|
+
import {type PropDef} from '../../types/PropDef'
|
|
6
|
+
|
|
7
|
+
export const gridProps: Record<string, PropDef> = {
|
|
8
|
+
as: {
|
|
9
|
+
type: 'string',
|
|
10
|
+
},
|
|
11
|
+
display: {
|
|
12
|
+
type: 'union',
|
|
13
|
+
className: 'display',
|
|
14
|
+
values: DISPLAY_GRID,
|
|
15
|
+
},
|
|
16
|
+
...gridParentProps,
|
|
17
|
+
...gapProps,
|
|
18
|
+
...layoutProps,
|
|
19
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import classNames from 'classnames'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
|
|
4
|
+
import type {TypographyProps} from '../../props/typography'
|
|
5
|
+
import type {TextSize} from '../../types/Text'
|
|
6
|
+
import {getProps} from '../../utils/getProps'
|
|
7
|
+
import {textProps} from './text.props'
|
|
8
|
+
|
|
9
|
+
/** @public */
|
|
10
|
+
export interface TextProps<T extends React.ElementType> extends TypographyProps {
|
|
11
|
+
/** Element to render */
|
|
12
|
+
as?: T
|
|
13
|
+
/** CSS **font-size** property */
|
|
14
|
+
size?: TextSize
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** @public */
|
|
18
|
+
export function Text<T extends React.ElementType = 'p'>({
|
|
19
|
+
size = 2,
|
|
20
|
+
...props
|
|
21
|
+
}: TextProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof TextProps<T>>) {
|
|
22
|
+
const {as, children, className, style, ...rest} = getProps({size, ...props}, textProps)
|
|
23
|
+
const Component = as || 'p'
|
|
24
|
+
|
|
25
|
+
if (props.lineClamp && props.trim) {
|
|
26
|
+
return (
|
|
27
|
+
<Component
|
|
28
|
+
className={classNames('sui-Text', className?.replace('sui-line-clamp', ''))}
|
|
29
|
+
style={style}
|
|
30
|
+
data-ui="Text"
|
|
31
|
+
{...rest}
|
|
32
|
+
>
|
|
33
|
+
<span className="sui-line-clamp">{children}</span>
|
|
34
|
+
</Component>
|
|
35
|
+
)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<Component className={classNames('sui-Text', className)} style={style} data-ui="Text" {...rest}>
|
|
40
|
+
{children}
|
|
41
|
+
</Component>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import {typographyProps} from '../../props/typography'
|
|
2
|
+
import {type PropDef} from '../../types/PropDef'
|
|
3
|
+
import {TEXT_SIZE} from '../../types/Text'
|
|
4
|
+
|
|
5
|
+
export const textProps: Record<string, PropDef> = {
|
|
6
|
+
as: {
|
|
7
|
+
type: 'string',
|
|
8
|
+
},
|
|
9
|
+
size: {
|
|
10
|
+
type: 'union',
|
|
11
|
+
className: 'text-body',
|
|
12
|
+
values: TEXT_SIZE,
|
|
13
|
+
},
|
|
14
|
+
...typographyProps,
|
|
15
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
*,
|
|
2
|
+
*::before,
|
|
3
|
+
*::after {
|
|
4
|
+
margin: 0;
|
|
5
|
+
padding: 0;
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@font-face {
|
|
10
|
+
font-family: Inter;
|
|
11
|
+
font-style: normal;
|
|
12
|
+
font-weight: 400;
|
|
13
|
+
font-display: swap;
|
|
14
|
+
src: url('https://studio-static.sanity.io/Inter-Regular.woff2') format('woff2');
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@font-face {
|
|
18
|
+
font-family: Inter;
|
|
19
|
+
font-style: italic;
|
|
20
|
+
font-weight: 400;
|
|
21
|
+
font-display: swap;
|
|
22
|
+
src: url('https://studio-static.sanity.io/Inter-Italic.woff2') format('woff2');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@font-face {
|
|
26
|
+
font-family: Inter;
|
|
27
|
+
font-style: normal;
|
|
28
|
+
font-weight: 500;
|
|
29
|
+
font-display: swap;
|
|
30
|
+
src: url('https://studio-static.sanity.io/Inter-Medium.woff2') format('woff2');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@font-face {
|
|
34
|
+
font-family: Inter;
|
|
35
|
+
font-style: italic;
|
|
36
|
+
font-weight: 500;
|
|
37
|
+
font-display: swap;
|
|
38
|
+
src: url('https://studio-static.sanity.io/Inter-MediumItalic.woff2') format('woff2');
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@font-face {
|
|
42
|
+
font-family: Inter;
|
|
43
|
+
font-style: normal;
|
|
44
|
+
font-weight: 600;
|
|
45
|
+
font-display: swap;
|
|
46
|
+
src: url('https://studio-static.sanity.io/Inter-SemiBold.woff2') format('woff2');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@font-face {
|
|
50
|
+
font-family: Inter;
|
|
51
|
+
font-style: italic;
|
|
52
|
+
font-weight: 600;
|
|
53
|
+
font-display: swap;
|
|
54
|
+
src: url('https://studio-static.sanity.io/Inter-SemiBoldItalic.woff2') format('woff2');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@font-face {
|
|
58
|
+
font-family: Inter;
|
|
59
|
+
font-style: normal;
|
|
60
|
+
font-weight: 700;
|
|
61
|
+
font-display: swap;
|
|
62
|
+
src: url('https://studio-static.sanity.io/Inter-Bold.woff2') format('woff2');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@font-face {
|
|
66
|
+
font-family: Inter;
|
|
67
|
+
font-style: italic;
|
|
68
|
+
font-weight: 700;
|
|
69
|
+
font-display: swap;
|
|
70
|
+
src: url('https://studio-static.sanity.io/Inter-BoldItalic.woff2') format('woff2');
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
@font-face {
|
|
74
|
+
font-family: Inter;
|
|
75
|
+
font-style: normal;
|
|
76
|
+
font-weight: 800;
|
|
77
|
+
font-display: swap;
|
|
78
|
+
src: url('https://studio-static.sanity.io/Inter-ExtraBold.woff2') format('woff2');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@font-face {
|
|
82
|
+
font-family: Inter;
|
|
83
|
+
font-style: italic;
|
|
84
|
+
font-weight: 800;
|
|
85
|
+
font-display: swap;
|
|
86
|
+
src: url('https://studio-static.sanity.io/Inter-ExtraBoldItalic.woff2') format('woff2');
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@font-face {
|
|
90
|
+
font-family: Inter;
|
|
91
|
+
font-style: normal;
|
|
92
|
+
font-weight: 900;
|
|
93
|
+
font-display: swap;
|
|
94
|
+
src: url('https://studio-static.sanity.io/Inter-Black.woff2') format('woff2');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
@font-face {
|
|
98
|
+
font-family: Inter;
|
|
99
|
+
font-style: italic;
|
|
100
|
+
font-weight: 900;
|
|
101
|
+
font-display: swap;
|
|
102
|
+
src: url('https://studio-static.sanity.io/Inter-BlackItalic.woff2') format('woff2');
|
|
103
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
@breakpoints {
|
|
2
|
+
.sui-grid-column { grid-column: var(--grid-column); }
|
|
3
|
+
.sui-grid-column-start { grid-column-start: var(--grid-column-start); }
|
|
4
|
+
.sui-grid-column-end { grid-column-end: var(--grid-column-end); }
|
|
5
|
+
.sui-grid-row { grid-row: var(--grid-row); }
|
|
6
|
+
.sui-grid-row-start { grid-row-start: var(--grid-row-start); }
|
|
7
|
+
.sui-grid-row-end { grid-row-end: var(--grid-row-end); }
|
|
8
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
@breakpoints {
|
|
2
|
+
.sui-grid-auto-columns { grid-auto-columns: var(--grid-auto-columns); }
|
|
3
|
+
.sui-grid-auto-rows { grid-auto-rows: var(--grid-auto-rows); }
|
|
4
|
+
.sui-grid-template-columns { grid-template-columns: var(--grid-template-columns); }
|
|
5
|
+
.sui-grid-template-rows { grid-template-rows: var(--grid-template-rows); }
|
|
6
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
.sui-border { border: 1px solid var(--border-color, var(--gray-200)) }
|
|
2
|
+
.sui-border-top { border-top: 1px solid var(--border-color, var(--gray-200)) }
|
|
3
|
+
.sui-border-right { border-right: 1px solid var(--border-color, var(--gray-200)) }
|
|
4
|
+
.sui-border-bottom { border-bottom: 1px solid var(--border-color, var(--gray-200)) }
|
|
5
|
+
.sui-border-left { border-left: 1px solid var(--border-color, var(--gray-200)) }
|
|
6
|
+
|
|
7
|
+
.sui-border-none { border: none; }
|
|
8
|
+
.sui-border-top-none { border-top: none; }
|
|
9
|
+
.sui-border-right-none { border-right: none; }
|
|
10
|
+
.sui-border-bottom-none { border-bottom: none; }
|
|
11
|
+
.sui-border-left-none { border-left: none; }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@breakpoints {
|
|
2
|
+
.sui-display-block { display: block; }
|
|
3
|
+
.sui-display-inline-block { display: inline-block; }
|
|
4
|
+
.sui-display-inline { display: inline; }
|
|
5
|
+
|
|
6
|
+
.sui-display-flex { display: flex; }
|
|
7
|
+
.sui-display-inline-flex { display: inline-flex; }
|
|
8
|
+
|
|
9
|
+
.sui-display-grid { display: grid; }
|
|
10
|
+
.sui-display-inline-grid { display: inline-grid; }
|
|
11
|
+
|
|
12
|
+
.sui-display-none { display: none; }
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
@breakpoints {
|
|
2
|
+
.sui-align-items-start { align-items: flex-start; }
|
|
3
|
+
.sui-align-items-center { align-items: center; }
|
|
4
|
+
.sui-align-items-end { align-items: flex-end; }
|
|
5
|
+
.sui-align-items-baseline { align-items: baseline; }
|
|
6
|
+
.sui-align-items-stretch { align-items: stretch; }
|
|
7
|
+
|
|
8
|
+
.sui-justify-content-start { justify-content: flex-start; }
|
|
9
|
+
.sui-justify-content-center { justify-content: center; }
|
|
10
|
+
.sui-justify-content-end { justify-content: flex-end; }
|
|
11
|
+
.sui-justify-content-between { justify-content: space-between; }
|
|
12
|
+
.sui-justify-content-around { justify-content: space-around; }
|
|
13
|
+
.sui-justify-content-evenly { justify-content: space-evenly; }
|
|
14
|
+
.sui-justify-content-stretch { justify-content: stretch; }
|
|
15
|
+
|
|
16
|
+
.sui-flex-direction-row { flex-direction: row; }
|
|
17
|
+
.sui-flex-direction-row-reverse { flex-direction: row-reverse; }
|
|
18
|
+
.sui-flex-direction-column { flex-direction: column; }
|
|
19
|
+
.sui-flex-direction-column-reverse { flex-direction: column-reverse; }
|
|
20
|
+
|
|
21
|
+
.sui-flex-wrap { flex-wrap: wrap; }
|
|
22
|
+
.sui-flex-nowrap { flex-wrap: nowrap; }
|
|
23
|
+
.sui-flex-wrap-reverse { flex-wrap: wrap-reverse; }
|
|
24
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
@import './border.css';
|
|
2
|
+
@import './display.css';
|
|
3
|
+
@import './flex.css';
|
|
4
|
+
@import './grid.css';
|
|
5
|
+
@import './overflow.css';
|
|
6
|
+
@import './position.css';
|
|
7
|
+
@import './text-align.css';
|
|
8
|
+
@import './text-muted.css';
|
|
9
|
+
@import './text-trim.css';
|
|
10
|
+
@import './tone.css';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@breakpoints {
|
|
2
|
+
.sui-overflow-visible { overflow: visible; }
|
|
3
|
+
.sui-overflow-scroll { overflow: scroll; }
|
|
4
|
+
.sui-overflow-clip { overflow: clip; }
|
|
5
|
+
.sui-overflow-hidden { overflow: hidden; }
|
|
6
|
+
.sui-overflow-auto { overflow: auto; }
|
|
7
|
+
|
|
8
|
+
.sui-overflow-x-visible { overflow-x: visible; }
|
|
9
|
+
.sui-overflow-x-scroll { overflow-x: scroll; }
|
|
10
|
+
.sui-overflow-x-clip { overflow-x: clip; }
|
|
11
|
+
.sui-overflow-x-hidden { overflow-x: hidden; }
|
|
12
|
+
.sui-overflow-x-auto { overflow-x: auto; }
|
|
13
|
+
|
|
14
|
+
.sui-overflow-y-visible { overflow-y: visible; }
|
|
15
|
+
.sui-overflow-y-scroll { overflow-y: scroll; }
|
|
16
|
+
.sui-overflow-y-clip { overflow-y: clip; }
|
|
17
|
+
.sui-overflow-y-hidden { overflow-y: hidden; }
|
|
18
|
+
.sui-overflow-y-auto { overflow-y: auto; }
|
|
19
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
.sui-text-trim:before,
|
|
2
|
+
.sui-text-trim:after {
|
|
3
|
+
content: '';
|
|
4
|
+
display: block;
|
|
5
|
+
width: 0;
|
|
6
|
+
height: 0;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.sui-text-trim:before {
|
|
10
|
+
margin-bottom: var(--trim);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.sui-text-trim:after {
|
|
14
|
+
margin-top: var(--trim);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.sui-text-trim-none:before,
|
|
18
|
+
.sui-text-trim-none:after {
|
|
19
|
+
content: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@breakpoints {
|
|
23
|
+
.sui-text-body0 {
|
|
24
|
+
--trim: -4px;
|
|
25
|
+
}
|
|
26
|
+
.sui-text-body1 {
|
|
27
|
+
--trim: -5px;
|
|
28
|
+
}
|
|
29
|
+
.sui-text-body2 {
|
|
30
|
+
--trim: -6px;
|
|
31
|
+
}
|
|
32
|
+
.sui-text-body3 {
|
|
33
|
+
--trim: -7px;
|
|
34
|
+
}
|
|
35
|
+
.sui-text-body4 {
|
|
36
|
+
--trim: -8px;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.sui-tone-default {
|
|
2
|
+
background: var(--white);
|
|
3
|
+
border-color: var(--blue-100);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.sui-tone-neutral {
|
|
7
|
+
background: var(--gray-50);
|
|
8
|
+
border-color: var(--gray-100);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.sui-tone-primary {
|
|
12
|
+
background: var(--blue-50);
|
|
13
|
+
border-color: var(--blue-100);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.sui-tone-suggest {
|
|
17
|
+
background: var(--purple-50);
|
|
18
|
+
border-color: var(--purple-100);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.sui-tone-positive {
|
|
22
|
+
background: var(--green-50);
|
|
23
|
+
border-color: var(--green-100);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.sui-tone-caution {
|
|
27
|
+
background: var(--yellow-50);
|
|
28
|
+
border-color: var(--yellow-100);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.sui-tone-critical {
|
|
32
|
+
background: var(--red-50);
|
|
33
|
+
border-color: var(--red-100);
|
|
34
|
+
}
|