react-material-expressive 1.0.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/CHANGELOG.md +39 -0
- package/LICENSE +21 -0
- package/README.md +286 -0
- package/dist/index.cjs +7014 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +2068 -0
- package/dist/index.d.ts +2068 -0
- package/dist/index.js +6941 -0
- package/dist/index.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/theme.css +187 -0
- package/docs/components/Amount.md +48 -0
- package/docs/components/Avatar.md +69 -0
- package/docs/components/AvatarStack.md +50 -0
- package/docs/components/Badge.md +50 -0
- package/docs/components/Blob.md +44 -0
- package/docs/components/Button.md +79 -0
- package/docs/components/ButtonGroup.md +46 -0
- package/docs/components/ButtonGroupConnected.md +62 -0
- package/docs/components/Card.md +52 -0
- package/docs/components/Checkbox.md +45 -0
- package/docs/components/Chips.md +77 -0
- package/docs/components/DatePicker.md +112 -0
- package/docs/components/Dialog.md +83 -0
- package/docs/components/Divider.md +48 -0
- package/docs/components/Dropdown.md +79 -0
- package/docs/components/FAB.md +63 -0
- package/docs/components/FABMenu.md +76 -0
- package/docs/components/Gallery.md +35 -0
- package/docs/components/Icon.md +36 -0
- package/docs/components/IconButton.md +69 -0
- package/docs/components/Img.md +52 -0
- package/docs/components/Layers.md +43 -0
- package/docs/components/Link.md +43 -0
- package/docs/components/List.md +87 -0
- package/docs/components/Loading.md +67 -0
- package/docs/components/LoadingIndicator.md +64 -0
- package/docs/components/MaterialSymbol.md +48 -0
- package/docs/components/MediaFrame.md +46 -0
- package/docs/components/Menu.md +149 -0
- package/docs/components/NavigationBar.md +78 -0
- package/docs/components/NavigationRail.md +105 -0
- package/docs/components/OverflowMenu.md +65 -0
- package/docs/components/Perspective.md +45 -0
- package/docs/components/Progress.md +83 -0
- package/docs/components/Radio.md +39 -0
- package/docs/components/Search.md +100 -0
- package/docs/components/Select.md +76 -0
- package/docs/components/Sheets.md +62 -0
- package/docs/components/Slider.md +89 -0
- package/docs/components/Snackbar.md +73 -0
- package/docs/components/SplitButton.md +75 -0
- package/docs/components/Stories.md +71 -0
- package/docs/components/Switch.md +40 -0
- package/docs/components/Table.md +67 -0
- package/docs/components/Tabs.md +67 -0
- package/docs/components/TextElement.md +37 -0
- package/docs/components/TextField.md +70 -0
- package/docs/components/TimePicker.md +83 -0
- package/docs/components/ToggleTheme.md +71 -0
- package/docs/components/Toolbar.md +102 -0
- package/docs/components/Tooltip.md +63 -0
- package/docs/components/TopAppBar.md +84 -0
- package/docs/components/Video.md +35 -0
- package/llms.txt +90 -0
- package/package.json +101 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Video
|
|
2
|
+
|
|
3
|
+
Native looping video for ambient/media content: `autoPlay`, `muted`,
|
|
4
|
+
`loop` and `playsInline` are on by default (override via props),
|
|
5
|
+
object-fit cover. The autoplay is decorative motion, so it pauses under
|
|
6
|
+
`prefers-reduced-motion: reduce`.
|
|
7
|
+
|
|
8
|
+
## Import
|
|
9
|
+
|
|
10
|
+
```tsx
|
|
11
|
+
import {Video} from "react-material-expressive";
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## API
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
type VideoProps = ComponentProps<"video">;
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Example
|
|
21
|
+
|
|
22
|
+
```tsx
|
|
23
|
+
<Video
|
|
24
|
+
className="aspect-video w-full rounded-large"
|
|
25
|
+
poster="/poster.jpg"
|
|
26
|
+
src="/clip.mp4"
|
|
27
|
+
/>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Gotchas
|
|
31
|
+
|
|
32
|
+
- Muted autoplay is required by browsers; unmute only on user gesture.
|
|
33
|
+
- Autoplay pauses when the user prefers reduced motion (WCAG 2.2.2). Pass
|
|
34
|
+
`controls` if you also want an explicit play/pause affordance.
|
|
35
|
+
- Combine with `MediaFrame` for framed/clipped placements.
|
package/llms.txt
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# react-material-expressive
|
|
2
|
+
|
|
3
|
+
> React component system implementing Material 3 Expressive. Framework-
|
|
4
|
+
> agnostic (native <img>/<a> + media injection), precompiled CSS (no
|
|
5
|
+
> Tailwind setup needed), runtime theming via official --md-sys-* tokens,
|
|
6
|
+
> React >= 19 (ESM + CJS + types, "use client" embedded). Single root
|
|
7
|
+
> export (react-material-expressive) plus the precompiled ./styles.css
|
|
8
|
+
> and the raw ./theme.css Tailwind partial (only to extend with your own
|
|
9
|
+
> Tailwind v4).
|
|
10
|
+
|
|
11
|
+
## Start here
|
|
12
|
+
|
|
13
|
+
- [README](README.md): install, quickstart,
|
|
14
|
+
theming, icons, media/link injection, i18n (per-component `labels` prop,
|
|
15
|
+
English defaults only; `locale` for Intl formatting), subpath map.
|
|
16
|
+
- [CHANGELOG](CHANGELOG.md): per-release history with a migration note on
|
|
17
|
+
every breaking change (pre-1.0: breaking bumps the minor version).
|
|
18
|
+
|
|
19
|
+
## Component docs (API, props, variants, examples, gotchas)
|
|
20
|
+
|
|
21
|
+
### Actions
|
|
22
|
+
- [Button](docs/components/Button.md)
|
|
23
|
+
- [ButtonGroup](docs/components/ButtonGroup.md)
|
|
24
|
+
- [ButtonGroupConnected](docs/components/ButtonGroupConnected.md)
|
|
25
|
+
- [IconButton](docs/components/IconButton.md)
|
|
26
|
+
- [FAB and ExtendedFAB](docs/components/FAB.md)
|
|
27
|
+
- [FABMenu](docs/components/FABMenu.md)
|
|
28
|
+
- [SplitButton](docs/components/SplitButton.md)
|
|
29
|
+
|
|
30
|
+
### Communication
|
|
31
|
+
- [Badge, DotBadge, OnIconBadge](docs/components/Badge.md)
|
|
32
|
+
- [Progress and Circle](docs/components/Progress.md)
|
|
33
|
+
- [LoadingIndicator](docs/components/LoadingIndicator.md)
|
|
34
|
+
- [Snackbar and SnackbarWrapper](docs/components/Snackbar.md)
|
|
35
|
+
- [Tooltip](docs/components/Tooltip.md)
|
|
36
|
+
- [Loading](docs/components/Loading.md)
|
|
37
|
+
|
|
38
|
+
### Containment
|
|
39
|
+
- [Card (+Header/Body/Footer)](docs/components/Card.md)
|
|
40
|
+
- [Dialog (+Header/Body/Footer)](docs/components/Dialog.md)
|
|
41
|
+
- [BottomSheet and SideSheet](docs/components/Sheets.md)
|
|
42
|
+
- [Divider](docs/components/Divider.md)
|
|
43
|
+
- [List (+List.Item)](docs/components/List.md)
|
|
44
|
+
- [Table (+Head/Body/Row/Cell/HeaderCell/TextContainer)](docs/components/Table.md)
|
|
45
|
+
|
|
46
|
+
### Selection and input
|
|
47
|
+
- [Checkbox](docs/components/Checkbox.md)
|
|
48
|
+
- [Radio](docs/components/Radio.md)
|
|
49
|
+
- [Switch](docs/components/Switch.md)
|
|
50
|
+
- [Chips](docs/components/Chips.md)
|
|
51
|
+
- [Slider and SliderDual](docs/components/Slider.md)
|
|
52
|
+
- [TextField (InputOutlined/InputFilled/TextFieldOutlined/TextFieldFilled)](docs/components/TextField.md)
|
|
53
|
+
- [Select (SelectFilled/SelectOutlined)](docs/components/Select.md)
|
|
54
|
+
- [Amount](docs/components/Amount.md)
|
|
55
|
+
- [DatePicker (+Docked) and DateRangePicker](docs/components/DatePicker.md)
|
|
56
|
+
- [TimePicker (dial + input)](docs/components/TimePicker.md)
|
|
57
|
+
|
|
58
|
+
### Navigation
|
|
59
|
+
- [NavigationBar (+Item)](docs/components/NavigationBar.md)
|
|
60
|
+
- [NavigationRail (+Item)](docs/components/NavigationRail.md)
|
|
61
|
+
- [TopAppBar (Small/Center/Medium/Large)](docs/components/TopAppBar.md)
|
|
62
|
+
- [DockedToolbar and FloatingToolbar](docs/components/Toolbar.md)
|
|
63
|
+
- [TabsPrimary and TabsSecondary](docs/components/Tabs.md)
|
|
64
|
+
- [LinkBox and LinkContainer](docs/components/Link.md)
|
|
65
|
+
- [Search (+Input/Item)](docs/components/Search.md)
|
|
66
|
+
|
|
67
|
+
### Menus
|
|
68
|
+
- [Menu (+Item/+Group/+Sub/+Label/+Divider)](docs/components/Menu.md) — shared M3E vertical-menu primitive
|
|
69
|
+
- [Dropdown (+Item)](docs/components/Dropdown.md)
|
|
70
|
+
- [OverflowMenu (+Item)](docs/components/OverflowMenu.md)
|
|
71
|
+
- [ToggleTheme and ToggleThemeMenu](docs/components/ToggleTheme.md)
|
|
72
|
+
|
|
73
|
+
### Media and showcase
|
|
74
|
+
- [Avatar](docs/components/Avatar.md)
|
|
75
|
+
- [AvatarStack](docs/components/AvatarStack.md)
|
|
76
|
+
- [Img](docs/components/Img.md)
|
|
77
|
+
- [MediaFrame](docs/components/MediaFrame.md)
|
|
78
|
+
- [Gallery (+Row)](docs/components/Gallery.md)
|
|
79
|
+
- [Stories (+User/Business)](docs/components/Stories.md)
|
|
80
|
+
- [Video](docs/components/Video.md)
|
|
81
|
+
- [PerspectiveImage and PerspectiveCard](docs/components/Perspective.md)
|
|
82
|
+
- [Blob](docs/components/Blob.md)
|
|
83
|
+
|
|
84
|
+
### Text and icons
|
|
85
|
+
- [TextElement](docs/components/TextElement.md)
|
|
86
|
+
- [Icon](docs/components/Icon.md)
|
|
87
|
+
- [MaterialSymbol](docs/components/MaterialSymbol.md)
|
|
88
|
+
|
|
89
|
+
### Layout
|
|
90
|
+
- [Layers: Container and Section](docs/components/Layers.md)
|
package/package.json
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "react-material-expressive",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Material 3 Expressive React component library. Framework-agnostic, precompiled CSS, official M3 design tokens.",
|
|
5
|
+
"author": "Ger Silva",
|
|
6
|
+
"homepage": "https://github.com/gersilva96/react-material-expressive#readme",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/gersilva96/react-material-expressive.git"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://github.com/gersilva96/react-material-expressive/issues"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"react",
|
|
16
|
+
"material-design",
|
|
17
|
+
"material-3",
|
|
18
|
+
"m3-expressive",
|
|
19
|
+
"components",
|
|
20
|
+
"design-system",
|
|
21
|
+
"tailwind"
|
|
22
|
+
],
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"type": "module",
|
|
25
|
+
"engines": {
|
|
26
|
+
"node": ">=20"
|
|
27
|
+
},
|
|
28
|
+
"sideEffects": [
|
|
29
|
+
"*.css"
|
|
30
|
+
],
|
|
31
|
+
"files": [
|
|
32
|
+
"dist",
|
|
33
|
+
"docs",
|
|
34
|
+
"CHANGELOG.md",
|
|
35
|
+
"README.md",
|
|
36
|
+
"llms.txt"
|
|
37
|
+
],
|
|
38
|
+
"main": "./dist/index.cjs",
|
|
39
|
+
"module": "./dist/index.js",
|
|
40
|
+
"types": "./dist/index.d.ts",
|
|
41
|
+
"exports": {
|
|
42
|
+
".": {
|
|
43
|
+
"types": "./dist/index.d.ts",
|
|
44
|
+
"import": "./dist/index.js",
|
|
45
|
+
"require": "./dist/index.cjs"
|
|
46
|
+
},
|
|
47
|
+
"./styles.css": "./dist/styles.css",
|
|
48
|
+
"./theme.css": "./dist/theme.css",
|
|
49
|
+
"./package.json": "./package.json"
|
|
50
|
+
},
|
|
51
|
+
"scripts": {
|
|
52
|
+
"clean": "rimraf dist",
|
|
53
|
+
"build:css": "tailwindcss -i src/styles.css -o dist/styles.css --minify",
|
|
54
|
+
"build:lib": "tsup",
|
|
55
|
+
"copy:themes": "node scripts/copy-themes.mjs",
|
|
56
|
+
"build": "npm run clean && npm run build:css && npm run build:lib && npm run copy:themes",
|
|
57
|
+
"typecheck": "tsc --noEmit",
|
|
58
|
+
"test": "vitest run",
|
|
59
|
+
"test:watch": "vitest",
|
|
60
|
+
"lint": "eslint . --max-warnings=0",
|
|
61
|
+
"format": "prettier --write .",
|
|
62
|
+
"pack:dry": "npm pack --dry-run",
|
|
63
|
+
"prepack": "npm run build",
|
|
64
|
+
"prepublishOnly": "npm run lint && npm run typecheck && npm run test"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"react": ">=19.0.0",
|
|
68
|
+
"react-dom": ">=19.0.0"
|
|
69
|
+
},
|
|
70
|
+
"dependencies": {
|
|
71
|
+
"clsx": "2.1.1",
|
|
72
|
+
"tailwind-merge": "3.6.0"
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"@eslint/js": "10.0.1",
|
|
76
|
+
"@tailwindcss/cli": "4.3.0",
|
|
77
|
+
"@testing-library/jest-dom": "6.9.1",
|
|
78
|
+
"@testing-library/react": "16.3.2",
|
|
79
|
+
"@testing-library/user-event": "14.6.1",
|
|
80
|
+
"@types/jest-axe": "3.5.9",
|
|
81
|
+
"@types/react": "19.2.17",
|
|
82
|
+
"@types/react-dom": "19.2.3",
|
|
83
|
+
"eslint": "10.4.1",
|
|
84
|
+
"globals": "17.6.0",
|
|
85
|
+
"jest-axe": "10.0.0",
|
|
86
|
+
"jiti": "2.7.0",
|
|
87
|
+
"jsdom": "29.1.1",
|
|
88
|
+
"prettier": "3.8.3",
|
|
89
|
+
"react": "19.2.7",
|
|
90
|
+
"react-dom": "19.2.7",
|
|
91
|
+
"rimraf": "6.1.3",
|
|
92
|
+
"tailwindcss": "4.3.0",
|
|
93
|
+
"tsup": "8.5.1",
|
|
94
|
+
"typescript": "6.0.3",
|
|
95
|
+
"typescript-eslint": "8.60.1",
|
|
96
|
+
"vitest": "4.1.9"
|
|
97
|
+
},
|
|
98
|
+
"publishConfig": {
|
|
99
|
+
"access": "public"
|
|
100
|
+
}
|
|
101
|
+
}
|