@juxtui/ui 0.5.0 → 0.7.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/README.md +64 -63
- package/dist/JTooltip-CAL9lsPF.js +1115 -0
- package/dist/JTooltip-CAL9lsPF.js.map +1 -0
- package/dist/composables/useLayer.d.ts +1 -1
- package/dist/editor/JEditor.vue.d.ts +69 -0
- package/dist/editor/JEditorButton.vue.d.ts +25 -0
- package/dist/editor/commands.d.ts +18 -0
- package/dist/editor/icons.d.ts +26 -0
- package/dist/editor/index.d.ts +4 -0
- package/dist/editor/slash.d.ts +19 -0
- package/dist/editor.js +1115 -0
- package/dist/editor.js.map +1 -0
- package/dist/index.js +129 -1238
- package/dist/index.js.map +1 -1
- package/dist/nuxt.js +5 -0
- package/dist/nuxt.js.map +1 -1
- package/dist/style.css +796 -228
- package/package.json +15 -2
package/README.md
CHANGED
|
@@ -1,63 +1,64 @@
|
|
|
1
|
-
# juxt.ui
|
|
2
|
-
|
|
3
|
-
**Thoughtfully crafted components for Nuxt & Vue.**
|
|
4
|
-
|
|
5
|
-
juxt.ui is a small component library that cares about the details you feel but rarely notice: how far a menu travels when it opens, where focus goes when a dialog closes, whether a loading button changes width, what happens when you press Escape with a select open inside a dialog.
|
|
6
|
-
|
|
7
|
-
It is Multiple components, one token system and one motion language. It's mostly grayscale, and the green `#079D6B` is kept for state.
|
|
8
|
-
|
|
9
|
-
```vue
|
|
10
|
-
<JButton>
|
|
11
|
-
Save changes
|
|
12
|
-
</JButton>
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Installation
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
pnpm add @juxtui/ui
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
**Nuxt**: add the module. Components, composables and styles are wired up for you.
|
|
22
|
-
|
|
23
|
-
```ts
|
|
24
|
-
// nuxt.config.ts
|
|
25
|
-
export default defineNuxtConfig({
|
|
26
|
-
modules: ['@juxtui/ui/nuxt'],
|
|
27
|
-
})
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
**Vue**: import the stylesheet once, then import what you use.
|
|
31
|
-
|
|
32
|
-
```ts
|
|
33
|
-
import '@juxtui/ui/style.css'
|
|
34
|
-
import { JButton, toast } from '@juxtui/ui'
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Using Tailwind CSS v4? `@import '@juxtui/ui/tailwind.css'` maps the tokens onto utilities (`bg-surface`, `text-fg-muted`, `rounded-md`, `duration-fast`, …). juxt.ui's styles live in a `juxt` cascade layer, so your own classes always win.
|
|
38
|
-
|
|
39
|
-
## Components
|
|
40
|
-
|
|
41
|
-
| | |
|
|
42
|
-
| --- | --- |
|
|
43
|
-
| **Actions** | Button |
|
|
44
|
-
| **Forms** | Input · Textarea · Checkbox · Switch · Select |
|
|
45
|
-
| **Overlays** | Dialog · Dropdown Menu · Tooltip · Command Palette |
|
|
46
|
-
| **Feedback** | Toast · Badge |
|
|
47
|
-
| **Display** | Avatar · Card |
|
|
48
|
-
| **Navigation** | Tabs |
|
|
49
|
-
| **Layout** | Navbar · Burger · Footer · Sidebar |
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
59
|
-
- **
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
1
|
+
# juxt.ui | https://juliuss3722.github.io/juxt-library/
|
|
2
|
+
|
|
3
|
+
**Thoughtfully crafted components for Nuxt & Vue.**
|
|
4
|
+
|
|
5
|
+
juxt.ui is a small component library that cares about the details you feel but rarely notice: how far a menu travels when it opens, where focus goes when a dialog closes, whether a loading button changes width, what happens when you press Escape with a select open inside a dialog.
|
|
6
|
+
|
|
7
|
+
It is Multiple components, one token system and one motion language. It's mostly grayscale, and the green `#079D6B` is kept for state.
|
|
8
|
+
|
|
9
|
+
```vue
|
|
10
|
+
<JButton>
|
|
11
|
+
Save changes
|
|
12
|
+
</JButton>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @juxtui/ui
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Nuxt**: add the module. Components, composables and styles are wired up for you.
|
|
22
|
+
|
|
23
|
+
```ts
|
|
24
|
+
// nuxt.config.ts
|
|
25
|
+
export default defineNuxtConfig({
|
|
26
|
+
modules: ['@juxtui/ui/nuxt'],
|
|
27
|
+
})
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Vue**: import the stylesheet once, then import what you use.
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import '@juxtui/ui/style.css'
|
|
34
|
+
import { JButton, toast } from '@juxtui/ui'
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Using Tailwind CSS v4? `@import '@juxtui/ui/tailwind.css'` maps the tokens onto utilities (`bg-surface`, `text-fg-muted`, `rounded-md`, `duration-fast`, …). juxt.ui's styles live in a `juxt` cascade layer, so your own classes always win.
|
|
38
|
+
|
|
39
|
+
## Components
|
|
40
|
+
|
|
41
|
+
| | |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| **Actions** | Button |
|
|
44
|
+
| **Forms** | Input · Textarea · Checkbox · Switch · Select |
|
|
45
|
+
| **Overlays** | Dialog · Dropdown Menu · Tooltip · Command Palette |
|
|
46
|
+
| **Feedback** | Toast · Badge |
|
|
47
|
+
| **Display** | Avatar · Card |
|
|
48
|
+
| **Navigation** | Tabs |
|
|
49
|
+
| **Layout** | Navbar · Burger · Footer · Sidebar |
|
|
50
|
+
| **Editor** | Rich text editor with toolbar, selection menu, slash commands and Markdown shortcuts, from `@juxtui/ui/editor` |
|
|
51
|
+
|
|
52
|
+
Each one supports light and dark themes, full keyboard use, reduced motion and SSR. Its docs page lists the keys it handles and the ARIA it exposes.
|
|
53
|
+
|
|
54
|
+
## Design philosophy
|
|
55
|
+
|
|
56
|
+
- **Quiet until it matters.** The interface is grayscale, and green marks state: focus, checked, success, where you are. Primary buttons use ink, not green.
|
|
57
|
+
- **Motion is feedback.** There are four durations (80–240ms) and three curves, and only `transform` and `opacity` animate. Entrances are slower than exits. With reduced motion, things still fade but don't move.
|
|
58
|
+
- **Accessible by construction.** Overlays trap focus, restore it when they close, and stack correctly: Escape and outside clicks go to the top-most layer only.
|
|
59
|
+
- **Small APIs.** Props are named after what they do, and anything that holds state has a `v-model`. If you know one component, you know the rest.
|
|
60
|
+
- **Tokens all the way down.** Colour, type, space, radius, elevation, motion and layering are CSS custom properties. Change `--juxt-accent` and the whole system follows.
|
|
61
|
+
|
|
62
|
+
## License
|
|
63
|
+
|
|
64
|
+
MIT
|