@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.
Files changed (81) hide show
  1. package/dist/components.css +9 -0
  2. package/dist/index.d.ts +203 -0
  3. package/dist/index.js +290 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/styles.css +8044 -0
  6. package/dist/utilities.css +8032 -0
  7. package/package.json +89 -0
  8. package/src/components/box/Box.tsx +30 -0
  9. package/src/components/box/box.props.ts +15 -0
  10. package/src/components/flex/Flex.tsx +31 -0
  11. package/src/components/flex/flex.props.ts +19 -0
  12. package/src/components/grid/Grid.tsx +31 -0
  13. package/src/components/grid/grid.props.ts +19 -0
  14. package/src/components/index.css +0 -0
  15. package/src/components/text/Text.tsx +43 -0
  16. package/src/components/text/text.props.ts +15 -0
  17. package/src/css/global.css +103 -0
  18. package/src/css/index.css +6 -0
  19. package/src/css/utilities/dynamic/flex-child.css +5 -0
  20. package/src/css/utilities/dynamic/grid-child.css +8 -0
  21. package/src/css/utilities/dynamic/grid-parent.css +6 -0
  22. package/src/css/utilities/dynamic/height.css +5 -0
  23. package/src/css/utilities/dynamic/index.css +7 -0
  24. package/src/css/utilities/dynamic/line-clamp.css +6 -0
  25. package/src/css/utilities/dynamic/width.css +5 -0
  26. package/src/css/utilities/dynamic/z-index.css +3 -0
  27. package/src/css/utilities/generic/border.css +11 -0
  28. package/src/css/utilities/generic/display.css +13 -0
  29. package/src/css/utilities/generic/flex.css +24 -0
  30. package/src/css/utilities/generic/grid.css +7 -0
  31. package/src/css/utilities/generic/index.css +10 -0
  32. package/src/css/utilities/generic/overflow.css +19 -0
  33. package/src/css/utilities/generic/position.css +7 -0
  34. package/src/css/utilities/generic/text-align.css +5 -0
  35. package/src/css/utilities/generic/text-muted.css +2 -0
  36. package/src/css/utilities/generic/text-trim.css +38 -0
  37. package/src/css/utilities/generic/tone.css +34 -0
  38. package/src/css/utilities/tokenized/color.css +223 -0
  39. package/src/css/utilities/tokenized/container.css +8 -0
  40. package/src/css/utilities/tokenized/fontFamily.css +2 -0
  41. package/src/css/utilities/tokenized/fontWeight.css +4 -0
  42. package/src/css/utilities/tokenized/gap.css +34 -0
  43. package/src/css/utilities/tokenized/index.css +9 -0
  44. package/src/css/utilities/tokenized/inset.css +56 -0
  45. package/src/css/utilities/tokenized/margin.css +92 -0
  46. package/src/css/utilities/tokenized/padding.css +85 -0
  47. package/src/css/utilities/tokenized/radius.css +8 -0
  48. package/src/css/utilities/tokenized/shadow.css +6 -0
  49. package/src/css/utilities/tokenized/typography.css +31 -0
  50. package/src/index.css +2 -0
  51. package/src/index.ts +1 -0
  52. package/src/props/border.ts +51 -0
  53. package/src/props/flexChild.ts +29 -0
  54. package/src/props/flexParent.ts +46 -0
  55. package/src/props/gap.ts +30 -0
  56. package/src/props/gridChild.ts +50 -0
  57. package/src/props/gridParent.ts +44 -0
  58. package/src/props/height.ts +29 -0
  59. package/src/props/layout.ts +37 -0
  60. package/src/props/margin.ts +58 -0
  61. package/src/props/overflow.ts +30 -0
  62. package/src/props/padding.ts +58 -0
  63. package/src/props/position.ts +59 -0
  64. package/src/props/tone.ts +16 -0
  65. package/src/props/typography.ts +46 -0
  66. package/src/props/width.ts +29 -0
  67. package/src/types/Display.ts +8 -0
  68. package/src/types/Flex.ts +18 -0
  69. package/src/types/FontWeight.ts +2 -0
  70. package/src/types/Grid.ts +2 -0
  71. package/src/types/Overflow.ts +2 -0
  72. package/src/types/Position.ts +2 -0
  73. package/src/types/PropDef.ts +25 -0
  74. package/src/types/Radius.ts +2 -0
  75. package/src/types/Responsive.ts +10 -0
  76. package/src/types/Space.ts +5 -0
  77. package/src/types/Text.ts +2 -0
  78. package/src/types/TextAlign.ts +2 -0
  79. package/src/types/Tone.ts +2 -0
  80. package/src/utils/getProps.test.ts +103 -0
  81. 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,6 @@
1
+ @import '@sanity-labs/design-tokens/dist/css/index.css';
2
+
3
+ @import './global.css';
4
+ @import './utilities/dynamic/index.css';
5
+ @import './utilities/generic/index.css';
6
+ @import './utilities/tokenized/index.css';
@@ -0,0 +1,5 @@
1
+ @breakpoints {
2
+ .sui-flex-basis { flex-basis: var(--flex-basis); }
3
+ .sui-flex-grow { flex-grow: var(--flex-grow); }
4
+ .sui-flex-shrink { flex-shrink: var(--flex-shrink); }
5
+ }
@@ -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,5 @@
1
+ @breakpoints {
2
+ .sui-height { height: var(--height); }
3
+ .sui-min-height { min-height: var(--min-height); }
4
+ .sui-max-height { max-height: var(--max-height); }
5
+ }
@@ -0,0 +1,7 @@
1
+ @import './flex-child.css';
2
+ @import './grid-child.css';
3
+ @import './grid-parent.css';
4
+ @import './height.css';
5
+ @import './width.css';
6
+ @import './line-clamp.css';
7
+ @import './z-index.css';
@@ -0,0 +1,6 @@
1
+ .sui-line-clamp {
2
+ display: -webkit-box;
3
+ -webkit-line-clamp: var(--line-clamp);
4
+ -webkit-box-orient: vertical;
5
+ overflow: hidden;
6
+ }
@@ -0,0 +1,5 @@
1
+ @breakpoints {
2
+ .sui-width { width: var(--width); }
3
+ .sui-min-width { min-width: var(--min-width); }
4
+ .sui-max-width { max-width: var(--max-width); }
5
+ }
@@ -0,0 +1,3 @@
1
+ @breakpoints {
2
+ .sui-z-index { z-index: var(--z-index); }
3
+ }
@@ -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,7 @@
1
+ @breakpoints {
2
+ .sui-flow-row { grid-auto-flow: row; }
3
+ .sui-flow-row-dense { grid-auto-flow: row dense; }
4
+ .sui-flow-column { grid-auto-flow: column; }
5
+ .sui-flow-column-dense { grid-auto-flow: column dense; }
6
+ .sui-flow-dense { grid-auto-flow: dense; }
7
+ }
@@ -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,7 @@
1
+ @breakpoints {
2
+ .sui-position-static { position: static; }
3
+ .sui-position-relative { position: relative; }
4
+ .sui-position-absolute { position: absolute; }
5
+ .sui-position-fixed { position: fixed; }
6
+ .sui-position-sticky { position: sticky; }
7
+ }
@@ -0,0 +1,5 @@
1
+ @breakpoints {
2
+ .sui-text-left { text-align: left; }
3
+ .sui-text-center { text-align: center; }
4
+ .sui-text-right { text-align: right; }
5
+ }
@@ -0,0 +1,2 @@
1
+ .sui-text-muted { color: var(--gray-600) }
2
+ .sui-text-default { color: var(--gray-800) }
@@ -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
+ }