@rip-lang/ui 0.3.21 → 0.3.22
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 +20 -12
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Rip UI
|
|
2
2
|
|
|
3
|
-
Headless, accessible UI components written in Rip. Zero dependencies.
|
|
3
|
+
Headless, accessible UI components written in Rip. Zero dependencies.
|
|
4
4
|
Every widget exposes `$` attributes (compiled to `data-*`) for styling and
|
|
5
|
-
handles keyboard interactions per WAI-ARIA Authoring Practices.
|
|
5
|
+
handles keyboard interactions per WAI-ARIA Authoring Practices. Style with
|
|
6
|
+
Tailwind, vanilla CSS, or any methodology you prefer.
|
|
6
7
|
|
|
7
8
|
Components are plain `.rip` source files — no build step. The browser compiles
|
|
8
9
|
them on the fly.
|
|
@@ -31,7 +32,7 @@ Every widget:
|
|
|
31
32
|
- Handles all keyboard interactions per WAI-ARIA Authoring Practices
|
|
32
33
|
- Sets correct ARIA attributes automatically
|
|
33
34
|
- Exposes state via `$` sigil (`$open`, `$selected`) for CSS styling
|
|
34
|
-
- Ships
|
|
35
|
+
- Ships no CSS — style with Tailwind or any methodology
|
|
35
36
|
- Uses Rip's reactive primitives for all state management
|
|
36
37
|
|
|
37
38
|
---
|
|
@@ -78,7 +79,7 @@ input value <=> @name
|
|
|
78
79
|
| Component count | ~40 | 54 |
|
|
79
80
|
| Total source | ShadCN wrappers (~3K LOC) atop Radix (~20K+ LOC) | 5,191 SLOC — everything included |
|
|
80
81
|
| Build step | Required (Next.js, Vite, etc.) | None — browser compiles `.rip` source |
|
|
81
|
-
| Styling | Pre-wired Tailwind (ShadCN) or unstyled (Radix) |
|
|
82
|
+
| Styling | Pre-wired Tailwind (ShadCN) or unstyled (Radix) | Headless — `data-*` contract, style with Tailwind or any CSS |
|
|
82
83
|
| Controlled components | `value` + `onChange` callback pair | `<=>` two-way binding |
|
|
83
84
|
| Shared state | React Context + Provider wrappers | `offer` / `accept` keywords |
|
|
84
85
|
| Reactivity | `useState` + `useEffect` + dependency arrays | `:=` / `~=` / `~>` — language-level |
|
|
@@ -127,25 +128,32 @@ own.
|
|
|
127
128
|
|
|
128
129
|
## Styling
|
|
129
130
|
|
|
130
|
-
All widgets ship
|
|
131
|
-
`data-*` attributes:
|
|
131
|
+
All widgets are headless — they ship no CSS. The contract between behavior
|
|
132
|
+
and styling is `data-*` attributes:
|
|
132
133
|
|
|
133
134
|
```coffee
|
|
134
135
|
# Widget exposes semantic state
|
|
135
136
|
button $open: open?!, $disabled: @disabled?!
|
|
136
137
|
```
|
|
137
138
|
|
|
139
|
+
Style with Tailwind's data attribute variants:
|
|
140
|
+
|
|
141
|
+
```html
|
|
142
|
+
<button class="data-[open]:border-blue-500 data-[disabled]:opacity-50 data-[disabled]:cursor-not-allowed">
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Or vanilla CSS:
|
|
146
|
+
|
|
138
147
|
```css
|
|
139
|
-
|
|
140
|
-
[data-open] { border-color: var(--color-primary); }
|
|
148
|
+
[data-open] { border-color: theme('colors.blue.500'); }
|
|
141
149
|
[data-disabled] { opacity: 0.5; cursor: not-allowed; }
|
|
142
150
|
```
|
|
143
151
|
|
|
144
|
-
|
|
145
|
-
design system. The widgets don't care.
|
|
152
|
+
Add Tailwind via CDN — no build step needed:
|
|
146
153
|
|
|
147
|
-
|
|
148
|
-
|
|
154
|
+
```html
|
|
155
|
+
<script src="https://cdn.tailwindcss.com"></script>
|
|
156
|
+
```
|
|
149
157
|
|
|
150
158
|
---
|
|
151
159
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rip-lang/ui",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.22",
|
|
4
4
|
"description": "Headless, accessible UI components written in Rip — zero CSS, zero dependencies",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"author": "Steve Shreeve <steve.shreeve@gmail.com>",
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"rip-lang": ">=3.13.
|
|
34
|
+
"rip-lang": ">=3.13.77"
|
|
35
35
|
},
|
|
36
36
|
"files": [
|
|
37
37
|
"*.rip",
|