@webspire/mcp 0.8.0 → 0.8.1
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 +22 -9
- package/css/webspire-components.css +176 -0
- package/data/registry.json +20001 -729
- package/dist/registration.d.ts +2 -2
- package/dist/registration.js +376 -285
- package/dist/search.d.ts +43 -1
- package/dist/search.js +778 -38
- package/dist/types.d.ts +15 -3
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
MCP server for [Webspire](https://webspire.de) — AI-native discovery of CSS snippets, UI patterns, and page templates with a 3-layer design token system.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Includes CSS snippets, UI patterns, and page templates — all Tailwind v4, token-based, dark mode, accessible.
|
|
6
6
|
|
|
7
7
|
## Quick Start
|
|
8
8
|
|
|
@@ -19,7 +19,7 @@ MCP server for [Webspire](https://webspire.de) — AI-native discovery of CSS sn
|
|
|
19
19
|
}
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
## Available Tools
|
|
22
|
+
## Available Tools
|
|
23
23
|
|
|
24
24
|
| Tool | Description |
|
|
25
25
|
|------|-------------|
|
|
@@ -27,8 +27,9 @@ MCP server for [Webspire](https://webspire.de) — AI-native discovery of CSS sn
|
|
|
27
27
|
| `search_snippets` | Search snippets by keyword, use case, or CSS technique |
|
|
28
28
|
| `get_snippet` | Get full CSS source, metadata, and usage example |
|
|
29
29
|
| `recommend_snippet` | Describe a UI problem, get best matching snippets |
|
|
30
|
-
| `list_pattern_families` | List
|
|
31
|
-
| `search_patterns` | Search
|
|
30
|
+
| `list_pattern_families` | List pattern families with counts |
|
|
31
|
+
| `search_patterns` | Search UI patterns by intent, family, or tier |
|
|
32
|
+
| `compose_page` | Compose a full page structure and recommend matching snippets |
|
|
32
33
|
| `get_pattern` | Get full pattern HTML with component token references |
|
|
33
34
|
| `list_templates` | List all page templates by category |
|
|
34
35
|
| `search_templates` | Search templates by keyword, category, or style |
|
|
@@ -90,15 +91,15 @@ Host Tokens (your project) → WebSpire Alias Tokens → Component Tokens → Ma
|
|
|
90
91
|
|
|
91
92
|
## Content
|
|
92
93
|
|
|
93
|
-
### CSS Snippets
|
|
94
|
+
### CSS Snippets
|
|
94
95
|
|
|
95
|
-
Effects that Tailwind v4 can't do natively: glass, animations, easing, scroll, decorative, interactions, text.
|
|
96
|
+
Effects that Tailwind v4 can't do natively across 12 categories: glass, animations, easing, scroll, decorative, interactions, text, lighting, depth, masks, surfaces, atmosphere.
|
|
96
97
|
|
|
97
|
-
### UI Patterns
|
|
98
|
+
### UI Patterns
|
|
98
99
|
|
|
99
|
-
|
|
100
|
+
Patterns across page sections and content elements — all using `--ws-*` component tokens.
|
|
100
101
|
|
|
101
|
-
### Page Templates
|
|
102
|
+
### Page Templates
|
|
102
103
|
|
|
103
104
|
Complete standalone pages: SaaS, agency, portfolio, shop, company — with Tailwind CDN.
|
|
104
105
|
|
|
@@ -115,3 +116,15 @@ const results = searchSnippets(registry, {
|
|
|
115
116
|
```
|
|
116
117
|
|
|
117
118
|
Docs: https://webspire.de/tokens
|
|
119
|
+
|
|
120
|
+
## Page Composition
|
|
121
|
+
|
|
122
|
+
`compose_page` combines semantic pattern selection with a lightweight snippet recommendation layer.
|
|
123
|
+
|
|
124
|
+
Typical flow:
|
|
125
|
+
|
|
126
|
+
1. Call `compose_page` with `domain`, `tone`, and `ux_goals`
|
|
127
|
+
2. Retrieve section markup with `get_pattern(id)`
|
|
128
|
+
3. Retrieve enhancement CSS with `get_snippet(id)` for the recommended snippets
|
|
129
|
+
|
|
130
|
+
That keeps structure and polish separate, but coordinated.
|
|
@@ -479,3 +479,179 @@
|
|
|
479
479
|
--ws-error-500-action-bg: var(--ws-color-primary);
|
|
480
480
|
--ws-error-500-action-text: var(--ws-color-primary-text);
|
|
481
481
|
}
|
|
482
|
+
|
|
483
|
+
/* ── Widgets (inspired by Wigggle UI) ── */
|
|
484
|
+
|
|
485
|
+
.ws-weather-widget {
|
|
486
|
+
--ws-weather-widget-bg: var(--ws-color-surface);
|
|
487
|
+
--ws-weather-widget-text: var(--ws-color-text);
|
|
488
|
+
--ws-weather-widget-text-soft: var(--ws-color-text-soft);
|
|
489
|
+
--ws-weather-widget-text-muted: var(--ws-color-text-muted);
|
|
490
|
+
--ws-weather-widget-border: var(--ws-color-border);
|
|
491
|
+
--ws-weather-widget-accent: var(--ws-color-accent);
|
|
492
|
+
--ws-weather-widget-accent-soft: var(--ws-color-accent-soft);
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
.ws-stock-widget {
|
|
496
|
+
--ws-stock-widget-bg: var(--ws-color-surface);
|
|
497
|
+
--ws-stock-widget-text: var(--ws-color-text);
|
|
498
|
+
--ws-stock-widget-text-soft: var(--ws-color-text-soft);
|
|
499
|
+
--ws-stock-widget-text-muted: var(--ws-color-text-muted);
|
|
500
|
+
--ws-stock-widget-border: var(--ws-color-border);
|
|
501
|
+
--ws-stock-widget-positive: var(--ws-color-success);
|
|
502
|
+
--ws-stock-widget-negative: var(--ws-color-danger);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.ws-calendar-widget {
|
|
506
|
+
--ws-calendar-widget-bg: var(--ws-color-surface);
|
|
507
|
+
--ws-calendar-widget-text: var(--ws-color-text);
|
|
508
|
+
--ws-calendar-widget-text-soft: var(--ws-color-text-soft);
|
|
509
|
+
--ws-calendar-widget-text-muted: var(--ws-color-text-muted);
|
|
510
|
+
--ws-calendar-widget-border: var(--ws-color-border);
|
|
511
|
+
--ws-calendar-widget-active: var(--ws-color-primary);
|
|
512
|
+
--ws-calendar-widget-active-text: var(--ws-color-primary-text);
|
|
513
|
+
--ws-calendar-widget-today-bg: var(--ws-color-primary-soft);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
.ws-media-widget {
|
|
517
|
+
--ws-media-widget-bg: var(--ws-color-surface);
|
|
518
|
+
--ws-media-widget-text: var(--ws-color-text);
|
|
519
|
+
--ws-media-widget-text-soft: var(--ws-color-text-soft);
|
|
520
|
+
--ws-media-widget-text-muted: var(--ws-color-text-muted);
|
|
521
|
+
--ws-media-widget-border: var(--ws-color-border);
|
|
522
|
+
--ws-media-widget-accent: var(--ws-color-primary);
|
|
523
|
+
--ws-media-widget-accent-soft: var(--ws-color-primary-soft);
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
.ws-task-widget {
|
|
527
|
+
--ws-task-widget-bg: var(--ws-color-surface);
|
|
528
|
+
--ws-task-widget-text: var(--ws-color-text);
|
|
529
|
+
--ws-task-widget-text-soft: var(--ws-color-text-soft);
|
|
530
|
+
--ws-task-widget-text-muted: var(--ws-color-text-muted);
|
|
531
|
+
--ws-task-widget-border: var(--ws-color-border);
|
|
532
|
+
--ws-task-widget-accent: var(--ws-color-primary);
|
|
533
|
+
--ws-task-widget-success: var(--ws-color-success);
|
|
534
|
+
--ws-task-widget-muted-bg: var(--ws-color-surface-muted);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
.ws-stat-widget {
|
|
538
|
+
--ws-stat-widget-bg: var(--ws-color-surface);
|
|
539
|
+
--ws-stat-widget-text: var(--ws-color-text);
|
|
540
|
+
--ws-stat-widget-text-soft: var(--ws-color-text-soft);
|
|
541
|
+
--ws-stat-widget-text-muted: var(--ws-color-text-muted);
|
|
542
|
+
--ws-stat-widget-border: var(--ws-color-border);
|
|
543
|
+
--ws-stat-widget-accent: var(--ws-color-primary);
|
|
544
|
+
--ws-stat-widget-accent-soft: var(--ws-color-primary-soft);
|
|
545
|
+
--ws-stat-widget-positive: var(--ws-color-success);
|
|
546
|
+
--ws-stat-widget-negative: var(--ws-color-danger);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.ws-clock-widget {
|
|
550
|
+
--ws-clock-widget-bg: var(--ws-color-surface);
|
|
551
|
+
--ws-clock-widget-text: var(--ws-color-text);
|
|
552
|
+
--ws-clock-widget-text-soft: var(--ws-color-text-soft);
|
|
553
|
+
--ws-clock-widget-text-muted: var(--ws-color-text-muted);
|
|
554
|
+
--ws-clock-widget-border: var(--ws-color-border);
|
|
555
|
+
--ws-clock-widget-accent: var(--ws-color-primary);
|
|
556
|
+
--ws-clock-widget-accent-soft: var(--ws-color-primary-soft);
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
.ws-profile-widget {
|
|
560
|
+
--ws-profile-widget-bg: var(--ws-color-surface);
|
|
561
|
+
--ws-profile-widget-text: var(--ws-color-text);
|
|
562
|
+
--ws-profile-widget-text-soft: var(--ws-color-text-soft);
|
|
563
|
+
--ws-profile-widget-text-muted: var(--ws-color-text-muted);
|
|
564
|
+
--ws-profile-widget-border: var(--ws-color-border);
|
|
565
|
+
--ws-profile-widget-accent: var(--ws-color-primary);
|
|
566
|
+
--ws-profile-widget-accent-soft: var(--ws-color-primary-soft);
|
|
567
|
+
--ws-profile-widget-success: var(--ws-color-success);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.ws-notification-widget {
|
|
571
|
+
--ws-notification-widget-bg: var(--ws-color-surface);
|
|
572
|
+
--ws-notification-widget-text: var(--ws-color-text);
|
|
573
|
+
--ws-notification-widget-text-soft: var(--ws-color-text-soft);
|
|
574
|
+
--ws-notification-widget-text-muted: var(--ws-color-text-muted);
|
|
575
|
+
--ws-notification-widget-border: var(--ws-color-border);
|
|
576
|
+
--ws-notification-widget-accent: var(--ws-color-primary);
|
|
577
|
+
--ws-notification-widget-accent-soft: var(--ws-color-primary-soft);
|
|
578
|
+
--ws-notification-widget-danger: var(--ws-color-danger);
|
|
579
|
+
--ws-notification-widget-warning: var(--ws-color-warning);
|
|
580
|
+
--ws-notification-widget-success: var(--ws-color-success);
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
.ws-progress-widget {
|
|
584
|
+
--ws-progress-widget-bg: var(--ws-color-surface);
|
|
585
|
+
--ws-progress-widget-text: var(--ws-color-text);
|
|
586
|
+
--ws-progress-widget-text-soft: var(--ws-color-text-soft);
|
|
587
|
+
--ws-progress-widget-text-muted: var(--ws-color-text-muted);
|
|
588
|
+
--ws-progress-widget-border: var(--ws-color-border);
|
|
589
|
+
--ws-progress-widget-accent: var(--ws-color-primary);
|
|
590
|
+
--ws-progress-widget-accent-soft: var(--ws-color-primary-soft);
|
|
591
|
+
--ws-progress-widget-track: var(--ws-color-surface-muted);
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
.ws-analytics-widget {
|
|
595
|
+
--ws-analytics-widget-bg: var(--ws-color-surface);
|
|
596
|
+
--ws-analytics-widget-text: var(--ws-color-text);
|
|
597
|
+
--ws-analytics-widget-text-soft: var(--ws-color-text-soft);
|
|
598
|
+
--ws-analytics-widget-text-muted: var(--ws-color-text-muted);
|
|
599
|
+
--ws-analytics-widget-border: var(--ws-color-border);
|
|
600
|
+
--ws-analytics-widget-accent: var(--ws-color-primary);
|
|
601
|
+
--ws-analytics-widget-accent-soft: var(--ws-color-primary-soft);
|
|
602
|
+
--ws-analytics-widget-positive: var(--ws-color-success);
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
.ws-storage-widget {
|
|
606
|
+
--ws-storage-widget-bg: var(--ws-color-surface);
|
|
607
|
+
--ws-storage-widget-text: var(--ws-color-text);
|
|
608
|
+
--ws-storage-widget-text-soft: var(--ws-color-text-soft);
|
|
609
|
+
--ws-storage-widget-text-muted: var(--ws-color-text-muted);
|
|
610
|
+
--ws-storage-widget-border: var(--ws-color-border);
|
|
611
|
+
--ws-storage-widget-accent: var(--ws-color-primary);
|
|
612
|
+
--ws-storage-widget-track: var(--ws-color-surface-muted);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
.ws-currency-widget {
|
|
616
|
+
--ws-currency-widget-bg: var(--ws-color-surface);
|
|
617
|
+
--ws-currency-widget-text: var(--ws-color-text);
|
|
618
|
+
--ws-currency-widget-text-soft: var(--ws-color-text-soft);
|
|
619
|
+
--ws-currency-widget-text-muted: var(--ws-color-text-muted);
|
|
620
|
+
--ws-currency-widget-border: var(--ws-color-border);
|
|
621
|
+
--ws-currency-widget-accent: var(--ws-color-primary);
|
|
622
|
+
--ws-currency-widget-positive: var(--ws-color-success);
|
|
623
|
+
--ws-currency-widget-negative: var(--ws-color-danger);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
.ws-shipping-widget {
|
|
627
|
+
--ws-shipping-widget-bg: var(--ws-color-surface);
|
|
628
|
+
--ws-shipping-widget-text: var(--ws-color-text);
|
|
629
|
+
--ws-shipping-widget-text-soft: var(--ws-color-text-soft);
|
|
630
|
+
--ws-shipping-widget-text-muted: var(--ws-color-text-muted);
|
|
631
|
+
--ws-shipping-widget-border: var(--ws-color-border);
|
|
632
|
+
--ws-shipping-widget-accent: var(--ws-color-primary);
|
|
633
|
+
--ws-shipping-widget-accent-soft: var(--ws-color-primary-soft);
|
|
634
|
+
--ws-shipping-widget-success: var(--ws-color-success);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.ws-rating-widget {
|
|
638
|
+
--ws-rating-widget-bg: var(--ws-color-surface);
|
|
639
|
+
--ws-rating-widget-text: var(--ws-color-text);
|
|
640
|
+
--ws-rating-widget-text-soft: var(--ws-color-text-soft);
|
|
641
|
+
--ws-rating-widget-text-muted: var(--ws-color-text-muted);
|
|
642
|
+
--ws-rating-widget-border: var(--ws-color-border);
|
|
643
|
+
--ws-rating-widget-accent: var(--ws-color-warning);
|
|
644
|
+
--ws-rating-widget-accent-soft: var(--ws-color-warning-soft);
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
.ws-chat-widget {
|
|
648
|
+
--ws-chat-widget-bg: var(--ws-color-surface);
|
|
649
|
+
--ws-chat-widget-text: var(--ws-color-text);
|
|
650
|
+
--ws-chat-widget-text-soft: var(--ws-color-text-soft);
|
|
651
|
+
--ws-chat-widget-text-muted: var(--ws-color-text-muted);
|
|
652
|
+
--ws-chat-widget-border: var(--ws-color-border);
|
|
653
|
+
--ws-chat-widget-accent: var(--ws-color-primary);
|
|
654
|
+
--ws-chat-widget-accent-soft: var(--ws-color-primary-soft);
|
|
655
|
+
--ws-chat-widget-accent-text: var(--ws-color-primary-text);
|
|
656
|
+
--ws-chat-widget-muted-bg: var(--ws-color-surface-muted);
|
|
657
|
+
}
|