brainzlab-ui 0.1.1 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ced860d47f714cff879f54a05c2a6112355dd19a869c5617a5745a6854b9ac51
4
- data.tar.gz: 3adfd42c848fbad199823d3fcaf0dfc921351a1207269e71e3448d591de99a34
3
+ metadata.gz: 273e92114173d155dbb570ceba73de87bd968282e5e0c942baf463ad2f225543
4
+ data.tar.gz: add3d18ca6a9ade3cb84728c49bea134bdbda89b5e776dacd9076f042341d065
5
5
  SHA512:
6
- metadata.gz: 893d62a6ab85948cfa57ad750ad2500cbed699b8475c0323a3fd1560d7e81fb17da95a4d812a1af638e50e7378bad4003e8871e6401c2230adac66fbbe124700
7
- data.tar.gz: bc731eec65e86c209bf4ac4558e409be3535610b391609b2bb242422070c5cca366ea2ca7960ccdcfb722887398823529c55672229e1040bc265e6f14661d4f0
6
+ metadata.gz: e7fdfdaea5814ccb02cd9b055f998fa221bfdc1b75c4a3ce69a5276433671c0e29fb736fa67793665a922119cb1909bed9f62125fb4771a5b7b429eefdc85d4c
7
+ data.tar.gz: 77dbb32022fd4ac9f4973c91c99719a095d29fa7f73147db797174f37e7b97453e04346f4aed717111d8309bedb189c57aea2c87ed83e909287c62ae0aa2d90c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [0.2.0] - 2026-06-07
6
+
7
+ ### Added
8
+ - **Service brand tokens** for all 16 platform services (Synapse, Nexus, Platform,
9
+ Signal, Beacon, Vision, Sentinel, Cortex, Dendrite, Nerve, Axon, Recall, Reflex,
10
+ Pulse, Flux, Vault) plus the Plexus engine, grouped by platform layer.
11
+ - **Layer accent tokens** (`--color-layer-ai|hub|obs|data|foundation`) so service
12
+ pages stay layer-coded while reading as one family.
13
+ - **Data-viz categorical palette** (`--color-viz-1..8`) for charts and dashboards
14
+ across every sub-app.
15
+ - **MaturityBadge** Phlex component + `.badge-maturity` / `.badge-disponible` /
16
+ `.badge-beta` / `.badge-proximamente` CSS (light + dark) for the app launcher
17
+ and service landing pages.
18
+
5
19
  ## [0.1.0] - 2024-12-27
6
20
 
7
21
  ### Added
data/README.md CHANGED
@@ -52,9 +52,26 @@ The design system follows Anthropic/Claude-inspired aesthetics with warm earth t
52
52
 
53
53
  | Token | Value | Usage |
54
54
  |-------|-------|-------|
55
- | `--color-primary-500` | #D97706 | Anthropic orange |
56
- | `--color-cream-50` | #FAFAF9 | Background |
57
- | `--color-ink-900` | #1C1917 | Text |
55
+ | `--color-primary-500` | #C77B58 | Brand terracotta |
56
+ | `--color-cream-50` | #FAF9F7 | Background |
57
+ | `--color-ink-900` | #3D3833 | Text |
58
+
59
+ #### Service & layer tokens
60
+
61
+ Each of the 16 platform services has a brand accent (`--color-<service>`, e.g.
62
+ `--color-signal`, `--color-vault`), grouped by platform layer. Service landing
63
+ pages and dashboards tint with the **layer accent** so the family stays coherent
64
+ while staying layer-coded:
65
+
66
+ | Layer | Token | Services |
67
+ |-------|-------|----------|
68
+ | L5 — AI | `--color-layer-ai` | Synapse, Nexus |
69
+ | L4 — Hub | `--color-layer-hub` | Platform |
70
+ | L3 — Observability | `--color-layer-obs` | Signal, Beacon, Vision, Sentinel, Cortex, Dendrite, Nerve, Axon |
71
+ | L2 — Data | `--color-layer-data` | Recall, Reflex, Pulse, Flux |
72
+ | L1 — Foundation | `--color-layer-foundation` | Vault |
73
+
74
+ Charts and dashboards use the categorical data-viz palette `--color-viz-1` … `--color-viz-8`.
58
75
 
59
76
  #### Typography
60
77
 
@@ -92,6 +109,7 @@ The design system follows Anthropic/Claude-inspired aesthetics with warm earth t
92
109
  | **Button** | primary, secondary, ghost, danger |
93
110
  | **Card** | default, bordered, elevated |
94
111
  | **Badge** | default, success, warning, error, info |
112
+ | **MaturityBadge** | disponible, beta, proximamente |
95
113
  | **Alert** | info, success, warning, error |
96
114
  | **Input** | text, email, password, number |
97
115
  | **Select** | default, multi |
@@ -280,6 +280,43 @@
280
280
  color: var(--color-ink-600);
281
281
  }
282
282
 
283
+ /* ----------------------------------------
284
+ MATURITY BADGES
285
+ ----------------------------------------
286
+ Service maturity signal used on landing pages and the
287
+ app launcher. Honesty rule: never imply a scaffold is
288
+ production-ready — "proximamente" must read as not-yet.
289
+ */
290
+ .badge-maturity {
291
+ text-transform: uppercase;
292
+ letter-spacing: 0.04em;
293
+ font-size: 0.6875rem;
294
+ font-weight: 600;
295
+ }
296
+
297
+ .badge-maturity::before {
298
+ content: '';
299
+ width: 0.4375rem;
300
+ height: 0.4375rem;
301
+ border-radius: 9999px;
302
+ background: currentColor;
303
+ }
304
+
305
+ .badge-disponible {
306
+ background: rgba(34, 197, 94, 0.1);
307
+ color: var(--color-success-600);
308
+ }
309
+
310
+ .badge-beta {
311
+ background: rgba(59, 130, 246, 0.1);
312
+ color: var(--color-info-600);
313
+ }
314
+
315
+ .badge-proximamente {
316
+ background: var(--color-cream-200);
317
+ color: var(--color-ink-500);
318
+ }
319
+
283
320
  /* ----------------------------------------
284
321
  NAVIGATION
285
322
  ---------------------------------------- */
@@ -828,6 +865,21 @@ input[type="radio"]:focus-visible {
828
865
  color: var(--color-dark-text-muted);
829
866
  }
830
867
 
868
+ .dark .badge-disponible {
869
+ background: rgba(34, 197, 94, 0.2);
870
+ color: var(--color-success-400);
871
+ }
872
+
873
+ .dark .badge-beta {
874
+ background: rgba(59, 130, 246, 0.2);
875
+ color: var(--color-info-400);
876
+ }
877
+
878
+ .dark .badge-proximamente {
879
+ background: var(--color-dark-surface-light);
880
+ color: var(--color-dark-text-muted);
881
+ }
882
+
831
883
  /* ----------------------------------------
832
884
  DARK MODE - NAVIGATION
833
885
  ---------------------------------------- */
@@ -65,13 +65,64 @@
65
65
  --color-ink-900: #3D3833;
66
66
  --color-ink-950: #1a1a1a;
67
67
 
68
- /* Product Brand Colors */
69
- --color-recall: #D97757;
70
- --color-reflex: #E45B3A;
71
- --color-pulse: #3B82F6;
72
- --color-flux: #8B5CF6;
73
- --color-signal: #F59E0B;
74
- --color-cortex: #10B981;
68
+ /* ============================================
69
+ Service Brand Colors (the 16-service platform)
70
+ ============================================
71
+ One accent per service, grouped by platform layer.
72
+ Used for service landing pages, the app launcher,
73
+ and per-service dashboard theming.
74
+ */
75
+ /* L5 — AI */
76
+ --color-synapse: #E07B39; /* orchestration engine */
77
+ --color-nexus: #14B8A6; /* AI seller */
78
+ /* L4 — Hub */
79
+ --color-platform: #64748B; /* identity + billing hub */
80
+ /* L3 — Observability */
81
+ --color-signal: #F59E0B; /* alerting */
82
+ --color-beacon: #06B6D4; /* uptime */
83
+ --color-vision: #EC4899; /* visual regression + browser AI */
84
+ --color-sentinel: #84CC16; /* host/container monitor */
85
+ --color-cortex: #10B981; /* feature flags */
86
+ --color-dendrite: #6366F1; /* living wikis */
87
+ --color-nerve: #F97316; /* background-job monitor */
88
+ --color-axon: #A855F7; /* workflow engine */
89
+ /* L2 — Data */
90
+ --color-recall: #D97757; /* logs */
91
+ --color-reflex: #E45B3A; /* errors */
92
+ --color-pulse: #3B82F6; /* traces / APM */
93
+ --color-flux: #8B5CF6; /* events / metrics */
94
+ /* L1 — Foundation */
95
+ --color-vault: #475569; /* secrets substrate */
96
+ /* Engine (internal substrate, not a public SKU) */
97
+ --color-plexus: #0EA5E9; /* AI-execution engine */
98
+
99
+ /* ============================================
100
+ Layer Accent Tokens
101
+ ============================================
102
+ The accent a service page is tinted with, by layer,
103
+ so the 16 services read as one family while staying
104
+ layer-coded.
105
+ */
106
+ --color-layer-ai: #7C3AED; /* L5 */
107
+ --color-layer-hub: #64748B; /* L4 */
108
+ --color-layer-obs: #F59E0B; /* L3 */
109
+ --color-layer-data: #3B82F6; /* L2 */
110
+ --color-layer-foundation: #475569; /* L1 */
111
+
112
+ /* ============================================
113
+ Data-Viz Categorical Palette
114
+ ============================================
115
+ Ordered, distinguishable series colors for charts,
116
+ dashboards, and metrics across every sub-app.
117
+ */
118
+ --color-viz-1: #C77B58; /* brand terracotta */
119
+ --color-viz-2: #3B82F6;
120
+ --color-viz-3: #10B981;
121
+ --color-viz-4: #8B5CF6;
122
+ --color-viz-5: #F59E0B;
123
+ --color-viz-6: #EC4899;
124
+ --color-viz-7: #06B6D4;
125
+ --color-viz-8: #84CC16;
75
126
 
76
127
  /* Semantic - Success */
77
128
  --color-success-50: #F0FDF4;
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Brainzlab
4
+ module Components
5
+ # Signals how production-ready a platform service is.
6
+ # Honesty rule: a scaffold/early service must render as
7
+ # :proximamente (not yet), never as :disponible.
8
+ class MaturityBadge < Base
9
+ LEVELS = {
10
+ disponible: { class: 'badge-disponible', label: 'Disponible' },
11
+ beta: { class: 'badge-beta', label: 'Beta' },
12
+ proximamente: { class: 'badge-proximamente', label: 'Próximamente' }
13
+ }.freeze
14
+
15
+ def initialize(level: :beta, label: nil, **attrs)
16
+ @level = LEVELS.key?(level) ? level : :beta
17
+ @label = label
18
+ @attrs = attrs
19
+ end
20
+
21
+ def view_template
22
+ span(class: badge_classes, **@attrs.except(:class)) { @label || LEVELS[@level][:label] }
23
+ end
24
+
25
+ private
26
+
27
+ def badge_classes
28
+ classes('badge', 'badge-maturity', LEVELS[@level][:class], @attrs[:class])
29
+ end
30
+ end
31
+ end
32
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Brainzlab
4
4
  module UI
5
- VERSION = '0.1.1'
5
+ VERSION = '0.2.0'
6
6
  end
7
7
  end
data/lib/brainzlab/ui.rb CHANGED
@@ -19,6 +19,7 @@ module Brainzlab
19
19
  autoload :Button, 'brainzlab/components/button'
20
20
  autoload :Card, 'brainzlab/components/card'
21
21
  autoload :Badge, 'brainzlab/components/badge'
22
+ autoload :MaturityBadge, 'brainzlab/components/maturity_badge'
22
23
  autoload :Input, 'brainzlab/components/input'
23
24
  autoload :Alert, 'brainzlab/components/alert'
24
25
  autoload :Avatar, 'brainzlab/components/avatar'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brainzlab-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brainz Lab
@@ -105,6 +105,7 @@ files:
105
105
  - lib/brainzlab/components/card.rb
106
106
  - lib/brainzlab/components/empty_state.rb
107
107
  - lib/brainzlab/components/input.rb
108
+ - lib/brainzlab/components/maturity_badge.rb
108
109
  - lib/brainzlab/components/modal.rb
109
110
  - lib/brainzlab/components/nav_item.rb
110
111
  - lib/brainzlab/components/stat_card.rb