@cascivo/mcp 0.1.8 → 0.3.3
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/LICENSE +1 -1
- package/README.md +53 -22
- package/dist/context/accordion.md +93 -0
- package/dist/context/action-sheet.md +117 -0
- package/dist/context/alert-dialog.md +122 -0
- package/dist/context/alert.md +110 -0
- package/dist/context/app-shell.md +98 -0
- package/dist/context/aspect-ratio.md +92 -0
- package/dist/context/avatar-group.md +111 -0
- package/dist/context/avatar.md +100 -0
- package/dist/context/badge.md +119 -0
- package/dist/context/block/console-app.md +66 -0
- package/dist/context/block/dashboard-charts.md +61 -0
- package/dist/context/block/empty-dashboard.md +60 -0
- package/dist/context/block/login-page.md +60 -0
- package/dist/context/block/notification-center.md +61 -0
- package/dist/context/block/page-with-breadcrumb.md +54 -0
- package/dist/context/block/settings-form-page.md +60 -0
- package/dist/context/block/sidebar-app.md +55 -0
- package/dist/context/block/stats-cards.md +61 -0
- package/dist/context/block/users-table-page.md +61 -0
- package/dist/context/blockquote.md +95 -0
- package/dist/context/bottom-sheet.md +112 -0
- package/dist/context/breadcrumb.md +106 -0
- package/dist/context/button-group.md +100 -0
- package/dist/context/button.md +117 -0
- package/dist/context/calendar.md +118 -0
- package/dist/context/card.md +90 -0
- package/dist/context/carousel.md +101 -0
- package/dist/context/chart/area-chart.md +99 -0
- package/dist/context/chart/bar-chart.md +114 -0
- package/dist/context/chart/boxplot.md +82 -0
- package/dist/context/chart/bubble-chart.md +80 -0
- package/dist/context/chart/bullet.md +75 -0
- package/dist/context/chart/calendar.md +79 -0
- package/dist/context/chart/candlestick.md +104 -0
- package/dist/context/chart/combo-chart.md +78 -0
- package/dist/context/chart/funnel.md +87 -0
- package/dist/context/chart/gauge.md +87 -0
- package/dist/context/chart/heatmap.md +77 -0
- package/dist/context/chart/histogram.md +74 -0
- package/dist/context/chart/kpi.md +70 -0
- package/dist/context/chart/line-chart.md +113 -0
- package/dist/context/chart/meter.md +71 -0
- package/dist/context/chart/pie-chart.md +126 -0
- package/dist/context/chart/polar.md +92 -0
- package/dist/context/chart/radar.md +81 -0
- package/dist/context/chart/radial-bar.md +96 -0
- package/dist/context/chart/sankey.md +89 -0
- package/dist/context/chart/scatter-chart.md +90 -0
- package/dist/context/chart/sparkline.md +69 -0
- package/dist/context/chart/stream.md +88 -0
- package/dist/context/chart/sunburst.md +93 -0
- package/dist/context/chart/treemap.md +84 -0
- package/dist/context/chat-bubble.md +116 -0
- package/dist/context/checkbox-card.md +104 -0
- package/dist/context/checkbox.md +104 -0
- package/dist/context/code-snippet.md +118 -0
- package/dist/context/code.md +103 -0
- package/dist/context/collapsible.md +104 -0
- package/dist/context/color-picker.md +101 -0
- package/dist/context/combobox.md +125 -0
- package/dist/context/command-menu.md +121 -0
- package/dist/context/comparison.md +117 -0
- package/dist/context/contained-list.md +103 -0
- package/dist/context/context-menu.md +103 -0
- package/dist/context/copy-button.md +106 -0
- package/dist/context/data-list.md +99 -0
- package/dist/context/data-table.md +149 -0
- package/dist/context/date-picker.md +116 -0
- package/dist/context/date-range-picker.md +113 -0
- package/dist/context/dock.md +117 -0
- package/dist/context/drawer.md +111 -0
- package/dist/context/dropdown.md +96 -0
- package/dist/context/editable.md +101 -0
- package/dist/context/editor/code-editor.md +146 -0
- package/dist/context/editor/highlight.md +74 -0
- package/dist/context/empty-state.md +101 -0
- package/dist/context/fab.md +128 -0
- package/dist/context/field.md +118 -0
- package/dist/context/file-uploader.md +121 -0
- package/dist/context/filter.md +129 -0
- package/dist/context/flow/flow-background.md +103 -0
- package/dist/context/flow/flow-canvas.md +82 -0
- package/dist/context/flow/flow-controls.md +84 -0
- package/dist/context/flow/flow-edge.md +128 -0
- package/dist/context/flow/flow-handle.md +83 -0
- package/dist/context/flow/flow-minimap.md +89 -0
- package/dist/context/flow/flow-node.md +97 -0
- package/dist/context/flow/flow-panel.md +75 -0
- package/dist/context/flow/flow-story.md +145 -0
- package/dist/context/flow/flow.md +139 -0
- package/dist/context/form.md +104 -0
- package/dist/context/header-panel.md +96 -0
- package/dist/context/header.md +104 -0
- package/dist/context/heading.md +107 -0
- package/dist/context/hover-card.md +108 -0
- package/dist/context/icon-button.md +115 -0
- package/dist/context/image.md +115 -0
- package/dist/context/indicator.md +95 -0
- package/dist/context/inline-loading.md +101 -0
- package/dist/context/input-group.md +122 -0
- package/dist/context/input.md +101 -0
- package/dist/context/item.md +109 -0
- package/dist/context/join.md +97 -0
- package/dist/context/kbd.md +100 -0
- package/dist/context/label.md +117 -0
- package/dist/context/layout/app-shell.md +85 -0
- package/dist/context/layout/auth-layout.md +74 -0
- package/dist/context/layout/auto-grid.md +69 -0
- package/dist/context/layout/center.md +67 -0
- package/dist/context/layout/columns.md +70 -0
- package/dist/context/layout/dashboard-layout.md +68 -0
- package/dist/context/layout/grid.md +70 -0
- package/dist/context/layout/masonry.md +70 -0
- package/dist/context/layout/page-header.md +75 -0
- package/dist/context/layout/section.md +69 -0
- package/dist/context/layout/settings-layout.md +68 -0
- package/dist/context/layout/spacer.md +64 -0
- package/dist/context/layout/split-view.md +71 -0
- package/dist/context/layout/stack.md +93 -0
- package/dist/context/link.md +112 -0
- package/dist/context/list.md +109 -0
- package/dist/context/log-viewer.md +124 -0
- package/dist/context/menu-button.md +137 -0
- package/dist/context/menu.md +108 -0
- package/dist/context/menubar.md +92 -0
- package/dist/context/modal.md +96 -0
- package/dist/context/multi-select.md +104 -0
- package/dist/context/native-select.md +118 -0
- package/dist/context/navigation-menu.md +95 -0
- package/dist/context/notification.md +116 -0
- package/dist/context/number-input.md +117 -0
- package/dist/context/otp-input.md +98 -0
- package/dist/context/overflow-menu.md +107 -0
- package/dist/context/pagination.md +123 -0
- package/dist/context/password-input.md +100 -0
- package/dist/context/popover.md +108 -0
- package/dist/context/progress-bar.md +107 -0
- package/dist/context/progress-circle.md +101 -0
- package/dist/context/progress-indicator.md +105 -0
- package/dist/context/progress.md +109 -0
- package/dist/context/prose.md +110 -0
- package/dist/context/pull-to-refresh.md +101 -0
- package/dist/context/qr-code.md +101 -0
- package/dist/context/radial-progress.md +117 -0
- package/dist/context/radio-card.md +95 -0
- package/dist/context/radio.md +94 -0
- package/dist/context/rating-group.md +97 -0
- package/dist/context/relative-time.md +90 -0
- package/dist/context/resizable.md +102 -0
- package/dist/context/scroll-area.md +101 -0
- package/dist/context/search.md +113 -0
- package/dist/context/section/cta.md +83 -0
- package/dist/context/section/feature-grid.md +98 -0
- package/dist/context/section/hero.md +101 -0
- package/dist/context/section/media-masonry.md +77 -0
- package/dist/context/section/page-footer.md +101 -0
- package/dist/context/section/stats-band.md +81 -0
- package/dist/context/segmented-control.md +101 -0
- package/dist/context/select.md +101 -0
- package/dist/context/separator.md +88 -0
- package/dist/context/sheet.md +100 -0
- package/dist/context/shell-header.md +105 -0
- package/dist/context/side-nav.md +134 -0
- package/dist/context/skeleton.md +101 -0
- package/dist/context/skip-nav.md +103 -0
- package/dist/context/slider.md +98 -0
- package/dist/context/spinner.md +89 -0
- package/dist/context/stack.md +96 -0
- package/dist/context/stat.md +101 -0
- package/dist/context/status.md +105 -0
- package/dist/context/steps.md +124 -0
- package/dist/context/structured-list.md +107 -0
- package/dist/context/swap.md +100 -0
- package/dist/context/swipe-item.md +110 -0
- package/dist/context/switcher.md +97 -0
- package/dist/context/tabs.md +93 -0
- package/dist/context/tag.md +110 -0
- package/dist/context/tags-input.md +94 -0
- package/dist/context/text.md +111 -0
- package/dist/context/textarea.md +98 -0
- package/dist/context/tile.md +116 -0
- package/dist/context/time-picker.md +102 -0
- package/dist/context/timeline.md +93 -0
- package/dist/context/toast.md +91 -0
- package/dist/context/toc.md +110 -0
- package/dist/context/toggle-group.md +118 -0
- package/dist/context/toggle.md +103 -0
- package/dist/context/toggletip.md +119 -0
- package/dist/context/tooltip.md +92 -0
- package/dist/context/tree-view.md +107 -0
- package/dist/context/user.md +100 -0
- package/dist/context/visually-hidden.md +90 -0
- package/dist/context.json +22456 -0
- package/dist/index.d.mts +5 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +374 -64
- package/dist/index.mjs.map +1 -1
- package/dist/marketplace.json +70 -0
- package/dist/registry.json +5622 -786
- package/dist/tokens.catalog.json +2375 -0
- package/dist/tokens.variants.json +3291 -0
- package/package.json +4 -3
- package/readme.body.md +53 -22
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Center
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** Horizontally centered container with a configurable max-width.
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- Horizontally centering content within a configurable max-width
|
|
9
|
+
- Constraining page or section content to a readable measure
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- Stacking children with consistent gaps — use Stack
|
|
14
|
+
- Multi-column or grid arrangements — use Columns or Grid
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **Section** (contained-by): Sections use a centered inner width built on the same idea
|
|
19
|
+
- **Stack** (pairs-with): Stack the centered content vertically inside it
|
|
20
|
+
|
|
21
|
+
## Accessibility rationale
|
|
22
|
+
|
|
23
|
+
Pure layout wrapper with no semantic role; does not affect the accessibility tree.
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| Name | Type | Required | Default | Description |
|
|
28
|
+
| ---------- | -------- | -------- | ------- | ------------------- |
|
|
29
|
+
| `maxWidth` | `string` | No | — | CSS max-width value |
|
|
30
|
+
|
|
31
|
+
## Tokens
|
|
32
|
+
|
|
33
|
+
- `--cascivo-space-4`
|
|
34
|
+
|
|
35
|
+
## Examples
|
|
36
|
+
|
|
37
|
+
### Centered content
|
|
38
|
+
|
|
39
|
+
Centered container with custom max-width
|
|
40
|
+
|
|
41
|
+
```jsx
|
|
42
|
+
<Center maxWidth="60rem">
|
|
43
|
+
<p>Content</p>
|
|
44
|
+
</Center>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## AI context prompt
|
|
48
|
+
|
|
49
|
+
Copy this into an LLM context bar before editing this component:
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
I am modifying the cascivo Center component (layout). Horizontally centered container with a configurable max-width.
|
|
53
|
+
|
|
54
|
+
Architecture constraints — follow exactly:
|
|
55
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
56
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
57
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
58
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
59
|
+
- CSS logical properties only (RTL-safe).
|
|
60
|
+
|
|
61
|
+
Center is strictly bound to these tokens — use only these, do not invent token names:
|
|
62
|
+
--cascivo-space-4
|
|
63
|
+
|
|
64
|
+
Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
|
|
65
|
+
|
|
66
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
67
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Columns
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** Equal-width multi-column layout that collapses to single column on narrow viewports.
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- Equal-width multi-column content that collapses to one column when narrow
|
|
9
|
+
- Side-by-side text or content blocks at a fixed column count
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- Card grids that auto-fit to width — use AutoGrid
|
|
14
|
+
- Single-direction stacking — use Stack
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **Grid** (alternative): Use for general two-dimensional grid placement
|
|
19
|
+
- **AutoGrid** (alternative): Use when column count should adapt to available width
|
|
20
|
+
|
|
21
|
+
## Accessibility rationale
|
|
22
|
+
|
|
23
|
+
Pure layout primitive with no semantic role; does not affect the accessibility tree.
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| Name | Type | Required | Default | Description |
|
|
28
|
+
| ------- | ----------------------------- | -------- | ------- | ----------------------- |
|
|
29
|
+
| `count` | `2\|3\|4` | No | — | Number of equal columns |
|
|
30
|
+
| `gap` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | — | Spacing token step |
|
|
31
|
+
|
|
32
|
+
## Tokens
|
|
33
|
+
|
|
34
|
+
- `--cascivo-space-*`
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
### Three columns
|
|
39
|
+
|
|
40
|
+
Three equal columns
|
|
41
|
+
|
|
42
|
+
```jsx
|
|
43
|
+
<Columns count={3}>
|
|
44
|
+
<div>A</div>
|
|
45
|
+
<div>B</div>
|
|
46
|
+
<div>C</div>
|
|
47
|
+
</Columns>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## AI context prompt
|
|
51
|
+
|
|
52
|
+
Copy this into an LLM context bar before editing this component:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
I am modifying the cascivo Columns component (layout). Equal-width multi-column layout that collapses to single column on narrow viewports.
|
|
56
|
+
|
|
57
|
+
Architecture constraints — follow exactly:
|
|
58
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
59
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
60
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
61
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
62
|
+
- CSS logical properties only (RTL-safe).
|
|
63
|
+
|
|
64
|
+
Columns is strictly bound to these tokens — use only these, do not invent token names:
|
|
65
|
+
--cascivo-space-*
|
|
66
|
+
|
|
67
|
+
Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
|
|
68
|
+
|
|
69
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
70
|
+
```
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# DashboardLayout
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** Dashboard page layout with stats strip, main content area, and optional aside.
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- A dashboard page with a stats strip, main content area, and optional aside
|
|
9
|
+
- Composing KPI tiles and charts into a standard analytics layout
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- A bare app frame without dashboard structure — use AppShell
|
|
14
|
+
- A simple form or content page — use Section or SettingsLayout
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **AppShell** (alternative): Use the bare shell when you do not need dashboard structure
|
|
19
|
+
- **StatsCards** (contains): KPI cards commonly fill the stats strip
|
|
20
|
+
|
|
21
|
+
## Accessibility rationale
|
|
22
|
+
|
|
23
|
+
Provides landmark regions for main content and complementary aside.
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| Name | Type | Required | Default | Description |
|
|
28
|
+
| ------- | ----------- | -------- | ------- | ----------------------------- |
|
|
29
|
+
| `stats` | `ReactNode` | No | — | Stats/KPI row (auto-fit grid) |
|
|
30
|
+
| `main` | `ReactNode` | Yes | — | Main content area |
|
|
31
|
+
| `aside` | `ReactNode` | No | — | Optional aside panel (20rem) |
|
|
32
|
+
|
|
33
|
+
## Tokens
|
|
34
|
+
|
|
35
|
+
- `--cascivo-space-4`
|
|
36
|
+
- `--cascivo-space-6`
|
|
37
|
+
|
|
38
|
+
## Examples
|
|
39
|
+
|
|
40
|
+
### With stats
|
|
41
|
+
|
|
42
|
+
Stats + main layout
|
|
43
|
+
|
|
44
|
+
```jsx
|
|
45
|
+
<DashboardLayout stats={<div>KPIs</div>} main={<div>Content</div>} />
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## AI context prompt
|
|
49
|
+
|
|
50
|
+
Copy this into an LLM context bar before editing this component:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
I am modifying the cascivo DashboardLayout component (layout). Dashboard page layout with stats strip, main content area, and optional aside.
|
|
54
|
+
|
|
55
|
+
Architecture constraints — follow exactly:
|
|
56
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
57
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
58
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
59
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
60
|
+
- CSS logical properties only (RTL-safe).
|
|
61
|
+
|
|
62
|
+
DashboardLayout is strictly bound to these tokens — use only these, do not invent token names:
|
|
63
|
+
--cascivo-space-4, --cascivo-space-6
|
|
64
|
+
|
|
65
|
+
Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
|
|
66
|
+
|
|
67
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
68
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Grid
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** CSS grid layout primitive with responsive column collapsing.
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- Two-dimensional layouts with an explicit column count
|
|
9
|
+
- Arranging cards or tiles that should align in rows and columns
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- Single-direction stacking — use Stack
|
|
14
|
+
- Columns that auto-fit to available width — use AutoGrid
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **AutoGrid** (alternative): Use when columns should auto-fill without fixed counts
|
|
19
|
+
- **Columns** (alternative): Use for equal-width text columns that collapse on narrow viewports
|
|
20
|
+
|
|
21
|
+
## Accessibility rationale
|
|
22
|
+
|
|
23
|
+
Pure layout primitive with no semantic role; does not affect the accessibility tree.
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| Name | Type | Required | Default | Description |
|
|
28
|
+
| ------ | ----------------------------- | -------- | ------- | --------------------------- |
|
|
29
|
+
| `cols` | `number` | No | — | Number of grid columns |
|
|
30
|
+
| `gap` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | — | Spacing token step |
|
|
31
|
+
| `span` | `number` | No | — | GridItem: column span count |
|
|
32
|
+
|
|
33
|
+
## Tokens
|
|
34
|
+
|
|
35
|
+
- `--cascivo-space-*`
|
|
36
|
+
|
|
37
|
+
## Examples
|
|
38
|
+
|
|
39
|
+
### Basic grid
|
|
40
|
+
|
|
41
|
+
3-column grid with spanning item
|
|
42
|
+
|
|
43
|
+
```jsx
|
|
44
|
+
<Grid cols={3} gap={4}>
|
|
45
|
+
<GridItem span={1}>A</GridItem>
|
|
46
|
+
<GridItem span={2}>B</GridItem>
|
|
47
|
+
</Grid>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## AI context prompt
|
|
51
|
+
|
|
52
|
+
Copy this into an LLM context bar before editing this component:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
I am modifying the cascivo Grid component (layout). CSS grid layout primitive with responsive column collapsing.
|
|
56
|
+
|
|
57
|
+
Architecture constraints — follow exactly:
|
|
58
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
59
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
60
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
61
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
62
|
+
- CSS logical properties only (RTL-safe).
|
|
63
|
+
|
|
64
|
+
Grid is strictly bound to these tokens — use only these, do not invent token names:
|
|
65
|
+
--cascivo-space-*
|
|
66
|
+
|
|
67
|
+
Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
|
|
68
|
+
|
|
69
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
70
|
+
```
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Masonry
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** Masonry layout — native CSS masonry where supported, multi-column fallback elsewhere (fallback orders items top-to-bottom per column).
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- Galleries of variable-height items packed into balanced columns
|
|
9
|
+
- Pinterest-style image or card walls
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- Items that must align in rows — use Grid
|
|
14
|
+
- Uniform-height cards — use AutoGrid
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **AutoGrid** (alternative): Use when items are uniform height and should align in rows
|
|
19
|
+
- **MediaMasonry** (alternative): Use the section-level masonry for full-width media galleries
|
|
20
|
+
|
|
21
|
+
## Accessibility rationale
|
|
22
|
+
|
|
23
|
+
Pure layout primitive with no semantic role; does not affect the accessibility tree.
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| Name | Type | Required | Default | Description |
|
|
28
|
+
| ------ | ----------------------------- | -------- | ------- | ------------------ |
|
|
29
|
+
| `cols` | `number` | No | 3 | Number of columns |
|
|
30
|
+
| `gap` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | 4 | Spacing token step |
|
|
31
|
+
|
|
32
|
+
## Tokens
|
|
33
|
+
|
|
34
|
+
- `--cascivo-space-*`
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
### Masonry gallery
|
|
39
|
+
|
|
40
|
+
Variable-height cards laid out in a masonry pattern; falls back to CSS columns
|
|
41
|
+
|
|
42
|
+
```jsx
|
|
43
|
+
<Masonry cols={3} gap={4}>
|
|
44
|
+
{items.map((item) => (
|
|
45
|
+
<Card key={item.id}>{item.content}</Card>
|
|
46
|
+
))}
|
|
47
|
+
</Masonry>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## AI context prompt
|
|
51
|
+
|
|
52
|
+
Copy this into an LLM context bar before editing this component:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
I am modifying the cascivo Masonry component (layout). Masonry layout — native CSS masonry where supported, multi-column fallback elsewhere (fallback orders items top-to-bottom per column).
|
|
56
|
+
|
|
57
|
+
Architecture constraints — follow exactly:
|
|
58
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
59
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
60
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
61
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
62
|
+
- CSS logical properties only (RTL-safe).
|
|
63
|
+
|
|
64
|
+
Masonry is strictly bound to these tokens — use only these, do not invent token names:
|
|
65
|
+
--cascivo-space-*
|
|
66
|
+
|
|
67
|
+
Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
|
|
68
|
+
|
|
69
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
70
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# PageHeader
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** Page-level header with title, description, breadcrumb, and actions slots.
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- A page-level header with title, description, breadcrumb, and action slots
|
|
9
|
+
- Establishing consistent page tops across an application
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- A marketing hero with large media — use Hero
|
|
14
|
+
- A full app top bar with navigation — use AppShell
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **Hero** (alternative): Use the marketing hero for landing-page tops
|
|
19
|
+
- **Section** (pairs-with): Place sections below the header to build out the page
|
|
20
|
+
|
|
21
|
+
## Accessibility rationale
|
|
22
|
+
|
|
23
|
+
Renders a header region with a top-level heading for screen reader page structure.
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| Name | Type | Required | Default | Description |
|
|
28
|
+
| ------------- | ----------- | -------- | ------- | ---------------------- |
|
|
29
|
+
| `title` | `string` | Yes | — | Page title |
|
|
30
|
+
| `description` | `string` | No | — | Supporting description |
|
|
31
|
+
| `breadcrumb` | `ReactNode` | No | — | Breadcrumb slot |
|
|
32
|
+
| `actions` | `ReactNode` | No | — | Action buttons slot |
|
|
33
|
+
| `className` | `string` | No | — | Additional CSS class |
|
|
34
|
+
|
|
35
|
+
## Tokens
|
|
36
|
+
|
|
37
|
+
- `--cascivo-space-2`
|
|
38
|
+
- `--cascivo-space-4`
|
|
39
|
+
- `--cascivo-font-size-2xl`
|
|
40
|
+
- `--cascivo-font-weight-bold`
|
|
41
|
+
- `--cascivo-color-text`
|
|
42
|
+
- `--cascivo-color-text-muted`
|
|
43
|
+
- `--cascivo-font-size-sm`
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
|
|
47
|
+
### Basic
|
|
48
|
+
|
|
49
|
+
Title with description
|
|
50
|
+
|
|
51
|
+
```jsx
|
|
52
|
+
<PageHeader title="Dashboard" description="Welcome back" />
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## AI context prompt
|
|
56
|
+
|
|
57
|
+
Copy this into an LLM context bar before editing this component:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
I am modifying the cascivo PageHeader component (layout). Page-level header with title, description, breadcrumb, and actions slots.
|
|
61
|
+
|
|
62
|
+
Architecture constraints — follow exactly:
|
|
63
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
64
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
65
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
66
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
67
|
+
- CSS logical properties only (RTL-safe).
|
|
68
|
+
|
|
69
|
+
PageHeader is strictly bound to these tokens — use only these, do not invent token names:
|
|
70
|
+
--cascivo-space-2, --cascivo-space-4, --cascivo-font-size-2xl, --cascivo-font-weight-bold, --cascivo-color-text, --cascivo-color-text-muted, --cascivo-font-size-sm
|
|
71
|
+
|
|
72
|
+
Accessibility: role "banner", WCAG 2.1-AA. Keep it AA.
|
|
73
|
+
|
|
74
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
75
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Section
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** Page-section shell with block padding, centered inner width, and stack gap.
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- Wrapping a page region with block padding and a centered inner width
|
|
9
|
+
- The default container for stacking content within a page
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- Just centering a single element — use Center
|
|
14
|
+
- A marketing band with built-in CTA content — use Cta or Hero
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **Center** (contains): Uses centered inner width internally
|
|
19
|
+
- **PageHeader** (pairs-with): Pair sections below a page header
|
|
20
|
+
|
|
21
|
+
## Accessibility rationale
|
|
22
|
+
|
|
23
|
+
Renders a section element to group related content for screen readers.
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| Name | Type | Required | Default | Description |
|
|
28
|
+
| ------- | ------------------------------- | -------- | --------- | ----------------------------------------------------- |
|
|
29
|
+
| `width` | `"content" \| "wide" \| "full"` | No | "content" | Max inline size: content=72rem, wide=90rem, full=none |
|
|
30
|
+
| `gap` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | 8 | Stack gap between children (spacing token step) |
|
|
31
|
+
|
|
32
|
+
## Tokens
|
|
33
|
+
|
|
34
|
+
- `--cascivo-space-*`
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
### Content section
|
|
39
|
+
|
|
40
|
+
Centered 72rem content column with 2rem block padding
|
|
41
|
+
|
|
42
|
+
```jsx
|
|
43
|
+
<Section width="content" gap={8}>
|
|
44
|
+
<h2>Heading</h2>
|
|
45
|
+
<p>Body copy.</p>
|
|
46
|
+
</Section>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## AI context prompt
|
|
50
|
+
|
|
51
|
+
Copy this into an LLM context bar before editing this component:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
I am modifying the cascivo Section component (layout). Page-section shell with block padding, centered inner width, and stack gap.
|
|
55
|
+
|
|
56
|
+
Architecture constraints — follow exactly:
|
|
57
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
58
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
59
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
60
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
61
|
+
- CSS logical properties only (RTL-safe).
|
|
62
|
+
|
|
63
|
+
Section is strictly bound to these tokens — use only these, do not invent token names:
|
|
64
|
+
--cascivo-space-*
|
|
65
|
+
|
|
66
|
+
Accessibility: role "region", WCAG 2.1-AA. Keep it AA.
|
|
67
|
+
|
|
68
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
69
|
+
```
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# SettingsLayout
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** Two-column settings page layout with a fixed-width menu and fluid content area.
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- A two-column settings page with a fixed-width menu and fluid content
|
|
9
|
+
- Account, preferences, or admin pages with sectioned navigation
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- A general resizable two-pane layout — use SplitView
|
|
14
|
+
- A full app frame — use AppShell or SidebarApp
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **SettingsFormPage** (contained-by): The settings form block composes this layout
|
|
19
|
+
- **SplitView** (alternative): Use when the two panes should be user-resizable
|
|
20
|
+
|
|
21
|
+
## Accessibility rationale
|
|
22
|
+
|
|
23
|
+
Provides a navigation region for the menu and a main region for content.
|
|
24
|
+
|
|
25
|
+
## Props
|
|
26
|
+
|
|
27
|
+
| Name | Type | Required | Default | Description |
|
|
28
|
+
| ---------- | ----------- | -------- | ------- | --------------------- |
|
|
29
|
+
| `menu` | `ReactNode` | Yes | — | Side navigation menu |
|
|
30
|
+
| `children` | `ReactNode` | Yes | — | Settings content area |
|
|
31
|
+
|
|
32
|
+
## Tokens
|
|
33
|
+
|
|
34
|
+
- `--cascivo-space-8`
|
|
35
|
+
|
|
36
|
+
## Examples
|
|
37
|
+
|
|
38
|
+
### Basic
|
|
39
|
+
|
|
40
|
+
Menu + content layout
|
|
41
|
+
|
|
42
|
+
```jsx
|
|
43
|
+
<SettingsLayout menu={<nav>Menu</nav>}>
|
|
44
|
+
<div>Settings</div>
|
|
45
|
+
</SettingsLayout>
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## AI context prompt
|
|
49
|
+
|
|
50
|
+
Copy this into an LLM context bar before editing this component:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
I am modifying the cascivo SettingsLayout component (layout). Two-column settings page layout with a fixed-width menu and fluid content area.
|
|
54
|
+
|
|
55
|
+
Architecture constraints — follow exactly:
|
|
56
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
57
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
58
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
59
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
60
|
+
- CSS logical properties only (RTL-safe).
|
|
61
|
+
|
|
62
|
+
SettingsLayout is strictly bound to these tokens — use only these, do not invent token names:
|
|
63
|
+
--cascivo-space-8
|
|
64
|
+
|
|
65
|
+
Accessibility: role "generic", WCAG 2.1-AA. Keep it AA.
|
|
66
|
+
|
|
67
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
68
|
+
```
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Spacer
|
|
2
|
+
|
|
3
|
+
**Category:** layout
|
|
4
|
+
**Description:** Fixed-height spacing block using design token steps.
|
|
5
|
+
|
|
6
|
+
## When to use
|
|
7
|
+
|
|
8
|
+
- Inserting a fixed vertical gap between blocks using spacing token steps
|
|
9
|
+
- Adding deliberate breathing room where margins are awkward
|
|
10
|
+
|
|
11
|
+
## When NOT to use
|
|
12
|
+
|
|
13
|
+
- Spacing a series of siblings — use Stack with a gap instead
|
|
14
|
+
- Arbitrary one-off spacing — prefer token-based gap props
|
|
15
|
+
|
|
16
|
+
## Related components
|
|
17
|
+
|
|
18
|
+
- **Stack** (alternative): Use gap on Stack to space multiple siblings consistently
|
|
19
|
+
|
|
20
|
+
## Accessibility rationale
|
|
21
|
+
|
|
22
|
+
Empty presentational spacer with no semantic role; ignored by assistive tech.
|
|
23
|
+
|
|
24
|
+
## Props
|
|
25
|
+
|
|
26
|
+
| Name | Type | Required | Default | Description |
|
|
27
|
+
| ------ | ----------------------------- | -------- | ------- | ------------------ |
|
|
28
|
+
| `size` | `1\|2\|3\|4\|5\|6\|8\|10\|12` | No | — | Spacing token step |
|
|
29
|
+
|
|
30
|
+
## Tokens
|
|
31
|
+
|
|
32
|
+
- `--cascivo-space-*`
|
|
33
|
+
|
|
34
|
+
## Examples
|
|
35
|
+
|
|
36
|
+
### Spacer
|
|
37
|
+
|
|
38
|
+
Adds vertical space between elements
|
|
39
|
+
|
|
40
|
+
```jsx
|
|
41
|
+
<Spacer size={8} />
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## AI context prompt
|
|
45
|
+
|
|
46
|
+
Copy this into an LLM context bar before editing this component:
|
|
47
|
+
|
|
48
|
+
```text
|
|
49
|
+
I am modifying the cascivo Spacer component (layout). Fixed-height spacing block using design token steps.
|
|
50
|
+
|
|
51
|
+
Architecture constraints — follow exactly:
|
|
52
|
+
- Signals only (useSignal/useComputed/useSignalEffect from @cascivo/core). Never useState/useEffect/useContext/useReducer.
|
|
53
|
+
- Style only through --cascivo-* custom properties. No Tailwind, no inline styles, no CSS-in-JS.
|
|
54
|
+
- Responsive via @container queries on the canonical scale (30rem/40rem/64rem/80rem). Do not use global viewport @media breakpoints.
|
|
55
|
+
- Visual states (hover/focus/active/disabled) via CSS pseudo-classes, not JS.
|
|
56
|
+
- CSS logical properties only (RTL-safe).
|
|
57
|
+
|
|
58
|
+
Spacer is strictly bound to these tokens — use only these, do not invent token names:
|
|
59
|
+
--cascivo-space-*
|
|
60
|
+
|
|
61
|
+
Accessibility: role "none", WCAG 2.1-AA. Keep it AA.
|
|
62
|
+
|
|
63
|
+
Do not invent props, tokens, or global viewport media queries.
|
|
64
|
+
```
|