Compare commits

..

5 Commits

Author SHA1 Message Date
hsiegeln
433d0926e6 style: enforce 12px minimum font size across all components
All checks were successful
Build & Publish / publish (push) Successful in 1m2s
SonarQube Analysis / sonarqube (push) Successful in 2m25s
Add --font-size-min: 12px token to tokens.css. Replace all 10px and 11px
font-size declarations with 12px across 54 CSS module files for improved
readability.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 12:13:17 +02:00
hsiegeln
7e545140a2 feat: add userMenuItems prop to TopBar and export DropdownItem type
All checks were successful
Build & Publish / publish (push) Successful in 1m0s
Allows consumers to inject custom menu items above the Logout action
in the user dropdown. Items are separated from Logout by a divider.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 12:07:26 +02:00
hsiegeln
e572df8558 fix(assets): remove semi-white background artifacts from logo SVG and PNGs
All checks were successful
Build & Publish / publish (push) Successful in 1m4s
SonarQube Analysis / sonarqube (push) Successful in 2m27s
Stripped 8 near-white path layers (brightness > 200) from the traced SVG,
leaving only amber/gold tones. Regenerated all PNG variants from the
cleaned SVG. Validated on dark and red backgrounds with zero artifacts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 23:19:39 +02:00
hsiegeln
a3afe3cb1b feat(assets): add high-detail cameleer3-logo.svg traced from PNG via Inkscape
All checks were successful
Build & Publish / publish (push) Successful in 1m4s
32-scan potrace vector trace with transparent background. Added to brand
assets inventory, documentation, and package exports.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:58:44 +02:00
hsiegeln
4841a7ad7c refactor(assets): replace named exports with wildcard ./assets/* export
All checks were successful
Build & Publish / publish (push) Successful in 1m10s
Consumers now import via @cameleer/design-system/assets/<filename> instead
of named aliases like /logo-32. Simpler, more flexible, and supports any
future assets without adding new export entries.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 22:43:01 +02:00
69 changed files with 407 additions and 176 deletions

View File

@@ -119,13 +119,12 @@ import type { ChartSeries, DataPoint } from '@cameleer/design-system'
// Styles (once, at app root) // Styles (once, at app root)
import '@cameleer/design-system/style.css' import '@cameleer/design-system/style.css'
// Brand assets (static files — logo variants and favicon sizes) // Brand assets (static files via ./assets/* export)
import logo from '@cameleer/design-system/logo' // full resolution PNG import logo from '@cameleer/design-system/assets/cameleer3-logo.png' // full resolution
import logo16 from '@cameleer/design-system/logo-16' // 16×16 favicon import logo32 from '@cameleer/design-system/assets/cameleer3-32.png' // 32×32 favicon
import logo32 from '@cameleer/design-system/logo-32' // 32×32 favicon import logo180 from '@cameleer/design-system/assets/cameleer3-180.png' // Apple touch icon
import logo48 from '@cameleer/design-system/logo-48' // 48×48 taskbar import logo192 from '@cameleer/design-system/assets/cameleer3-192.png' // Android/PWA icon
import logo180 from '@cameleer/design-system/logo-180' // Apple touch icon import logo512 from '@cameleer/design-system/assets/cameleer3-512.png' // PWA splash, og:image
import logo192 from '@cameleer/design-system/logo-192' // Android/PWA icon import logoSvg from '@cameleer/design-system/assets/cameleer3-logo.svg' // high-detail SVG logo
import logo512 from '@cameleer/design-system/logo-512' // PWA splash, og:image import camelSvg from '@cameleer/design-system/assets/camel-logo.svg' // simplified camel SVG
import logoSvg from '@cameleer/design-system/logo-svg' // SVG vector logo
``` ```

View File

@@ -336,23 +336,24 @@ See `CLAUDE.md` "Using This Design System in Other Apps" for full setup instruct
## Brand Assets ## Brand Assets
The design system ships logo assets as static files via package exports. These are not React components — they resolve to file URLs when imported via a bundler. The design system ships logo assets as static files via the `./assets/*` package export. These are not React components — they resolve to file URLs when imported via a bundler. All PNGs have transparent backgrounds.
| Export | Size | Use case | | File | Size | Use case |
|--------|------|----------| |------|------|----------|
| `@cameleer/design-system/logo` | Original | Full resolution for print/marketing | | `cameleer3-logo.png` | Original | Full resolution for print/marketing |
| `@cameleer/design-system/logo-16` | 16×16 | Browser tab favicon | | `cameleer3-16.png` | 16×16 | Browser tab favicon |
| `@cameleer/design-system/logo-32` | 32×32 | Standard favicon, bookmarks | | `cameleer3-32.png` | 32×32 | Standard favicon, bookmarks |
| `@cameleer/design-system/logo-48` | 48×48 | Windows taskbar | | `cameleer3-48.png` | 48×48 | Windows taskbar |
| `@cameleer/design-system/logo-180` | 180×180 | Apple touch icon | | `cameleer3-180.png` | 180×180 | Apple touch icon |
| `@cameleer/design-system/logo-192` | 192×192 | Android/PWA icon | | `cameleer3-192.png` | 192×192 | Android/PWA icon |
| `@cameleer/design-system/logo-512` | 512×512 | PWA splash, og:image | | `cameleer3-512.png` | 512×512 | PWA splash, og:image |
| `@cameleer/design-system/logo-svg` | Vector | SVG logo for scalable usage | | `cameleer3-logo.svg` | Vector | High-detail SVG logo (traced from PNG, transparent) |
| `camel-logo.svg` | Vector | Simplified camel SVG logo |
### Usage ### Usage
```tsx ```tsx
import logo from '@cameleer/design-system/logo-512' import logo from '@cameleer/design-system/assets/cameleer3-512.png'
<img src={logo} alt="Cameleer3" /> <img src={logo} alt="Cameleer3" />
``` ```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 983 B

After

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 KiB

After

Width:  |  Height:  |  Size: 342 KiB

112
assets/cameleer3-logo.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -11,14 +11,7 @@
"import": "./dist/index.es.js" "import": "./dist/index.es.js"
}, },
"./style.css": "./dist/style.css", "./style.css": "./dist/style.css",
"./logo": "./assets/cameleer3-logo.png", "./assets/*": "./assets/*"
"./logo-16": "./assets/cameleer3-16.png",
"./logo-32": "./assets/cameleer3-32.png",
"./logo-48": "./assets/cameleer3-48.png",
"./logo-180": "./assets/cameleer3-180.png",
"./logo-192": "./assets/cameleer3-192.png",
"./logo-512": "./assets/cameleer3-512.png",
"./logo-svg": "./assets/camel-logo.svg"
}, },
"files": [ "files": [
"dist", "dist",

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -72,7 +72,7 @@
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
box-shadow: var(--shadow-md); box-shadow: var(--shadow-md);
padding: 6px 10px; padding: 6px 10px;
font-size: 11px; font-size: 12px;
pointer-events: none; pointer-events: none;
z-index: 10; z-index: 10;
white-space: nowrap; white-space: nowrap;
@@ -118,7 +118,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 5px; gap: 5px;
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
} }
@@ -130,12 +130,12 @@
} }
.legendLabel { .legendLabel {
font-size: 11px; font-size: 12px;
} }
/* Axis labels */ /* Axis labels */
.yLabel { .yLabel {
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
writing-mode: vertical-lr; writing-mode: vertical-lr;
transform: rotate(180deg); transform: rotate(180deg);
@@ -151,7 +151,7 @@
.xLabel { .xLabel {
text-align: center; text-align: center;
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
padding-left: 48px; padding-left: 48px;
} }

View File

@@ -32,7 +32,7 @@
background-color: var(--bg-inset); background-color: var(--bg-inset);
color: var(--text-secondary); color: var(--text-secondary);
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
flex-shrink: 0; flex-shrink: 0;
margin-left: -8px; margin-left: -8px;

View File

@@ -53,7 +53,7 @@
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
box-shadow: var(--shadow-md); box-shadow: var(--shadow-md);
padding: 6px 10px; padding: 6px 10px;
font-size: 11px; font-size: 12px;
pointer-events: none; pointer-events: none;
z-index: 10; z-index: 10;
white-space: nowrap; white-space: nowrap;
@@ -63,7 +63,7 @@
font-weight: 600; font-weight: 600;
color: var(--text-primary); color: var(--text-primary);
margin-bottom: 4px; margin-bottom: 4px;
font-size: 11px; font-size: 12px;
} }
.tooltipRow { .tooltipRow {
@@ -105,7 +105,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 5px; gap: 5px;
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
} }
@@ -117,11 +117,11 @@
} }
.legendLabel { .legendLabel {
font-size: 11px; font-size: 12px;
} }
.yLabel { .yLabel {
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
writing-mode: vertical-lr; writing-mode: vertical-lr;
transform: rotate(180deg); transform: rotate(180deg);
@@ -137,7 +137,7 @@
.xLabel { .xLabel {
text-align: center; text-align: center;
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
padding-left: 48px; padding-left: 48px;
} }

View File

@@ -16,7 +16,7 @@
.sep { .sep {
color: var(--text-faint); color: var(--text-faint);
font-size: 11px; font-size: 12px;
} }
.link { .link {

View File

@@ -63,7 +63,7 @@
border: 1px solid var(--amber-light); border: 1px solid var(--amber-light);
border-radius: 4px; border-radius: 4px;
padding: 1px 6px; padding: 1px 6px;
font-size: 11px; font-size: 12px;
flex-shrink: 0; flex-shrink: 0;
} }
@@ -133,7 +133,7 @@
background: var(--bg-inset); background: var(--bg-inset);
border-radius: 10px; border-radius: 10px;
padding: 0 6px; padding: 0 6px;
font-size: 10px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
color: var(--text-muted); color: var(--text-muted);
} }
@@ -227,7 +227,7 @@
display: inline-flex; display: inline-flex;
padding: 1px 7px; padding: 1px 7px;
border-radius: 10px; border-radius: 10px;
font-size: 10px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
font-weight: 600; font-weight: 600;
background: var(--bg-inset); background: var(--bg-inset);
@@ -239,13 +239,13 @@
.itemTime { .itemTime {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
color: var(--text-faint); color: var(--text-faint);
margin-left: auto; margin-left: auto;
} }
.itemMeta { .itemMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
margin-top: 2px; margin-top: 2px;
@@ -259,7 +259,7 @@
border: none; border: none;
color: var(--text-muted); color: var(--text-muted);
cursor: pointer; cursor: pointer;
font-size: 10px; font-size: 12px;
padding: 2px 6px; padding: 2px 6px;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
flex-shrink: 0; flex-shrink: 0;
@@ -279,7 +279,7 @@
/* Match context snippet */ /* Match context snippet */
.matchContext { .matchContext {
font-size: 11px; font-size: 12px;
color: var(--text-faint); color: var(--text-faint);
font-family: var(--font-mono); font-family: var(--font-mono);
margin-top: 3px; margin-top: 3px;
@@ -316,6 +316,6 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 5px; gap: 5px;
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
} }

View File

@@ -42,7 +42,7 @@
.th { .th {
padding: 9px 14px; padding: 9px 14px;
text-align: left; text-align: left;
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.8px; letter-spacing: 0.8px;
@@ -147,7 +147,7 @@
.rangeInfo { .rangeInfo {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 11px; font-size: 12px;
} }
.paginationRight { .paginationRight {
@@ -157,7 +157,7 @@
} }
.pageSizeLabel { .pageSizeLabel {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
} }
@@ -173,7 +173,7 @@
.pageNum { .pageNum {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
min-width: 40px; min-width: 40px;
text-align: center; text-align: center;

View File

@@ -29,7 +29,7 @@
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
background: var(--bg-surface); background: var(--bg-surface);
font-size: 11px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
color: var(--text-primary); color: var(--text-primary);
outline: none; outline: none;
@@ -81,7 +81,7 @@
background: none; background: none;
border: none; border: none;
color: var(--text-muted); color: var(--text-muted);
font-size: 11px; font-size: 12px;
cursor: pointer; cursor: pointer;
padding: 2px 6px; padding: 2px 6px;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
@@ -165,7 +165,7 @@
} }
.time { .time {
font-size: 10px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
color: var(--text-muted); color: var(--text-muted);
margin-top: 1px; margin-top: 1px;
@@ -215,7 +215,7 @@
border: 1px solid var(--amber-light); border: 1px solid var(--amber-light);
border-radius: 0; border-radius: 0;
color: var(--amber-deep); color: var(--amber-deep);
font-size: 11px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;

View File

@@ -43,7 +43,7 @@
} }
.clearAll { .clearAll {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
cursor: pointer; cursor: pointer;
padding: 3px 6px; padding: 3px 6px;

View File

@@ -63,7 +63,7 @@
gap: 16px; gap: 16px;
padding: 8px 16px; padding: 8px 16px;
border-bottom: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle);
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
background: var(--bg-surface); background: var(--bg-surface);
} }

View File

@@ -30,7 +30,7 @@
} }
.label { .label {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.6px; letter-spacing: 0.6px;
@@ -55,7 +55,7 @@
.trend { .trend {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 11px; font-size: 12px;
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
gap: 2px; gap: 2px;
@@ -68,7 +68,7 @@
.trendMuted { color: var(--text-muted); } .trendMuted { color: var(--text-muted); }
.subtitle { .subtitle {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
margin-top: 2px; margin-top: 2px;
} }

View File

@@ -63,7 +63,7 @@
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
box-shadow: var(--shadow-md); box-shadow: var(--shadow-md);
padding: 6px 10px; padding: 6px 10px;
font-size: 11px; font-size: 12px;
pointer-events: none; pointer-events: none;
z-index: 10; z-index: 10;
white-space: nowrap; white-space: nowrap;
@@ -108,7 +108,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 5px; gap: 5px;
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
} }
@@ -120,11 +120,11 @@
} }
.legendLabel { .legendLabel {
font-size: 11px; font-size: 12px;
} }
.yLabel { .yLabel {
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
writing-mode: vertical-lr; writing-mode: vertical-lr;
transform: rotate(180deg); transform: rotate(180deg);
@@ -140,7 +140,7 @@
.xLabel { .xLabel {
text-align: center; text-align: center;
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
padding-left: 48px; padding-left: 48px;
} }

View File

@@ -18,7 +18,7 @@
.timestamp { .timestamp {
flex-shrink: 0; flex-shrink: 0;
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
min-width: 56px; min-width: 56px;
} }

View File

@@ -51,7 +51,7 @@
.dividerText { .dividerText {
color: var(--text-muted); color: var(--text-muted);
font-size: 11px; font-size: 12px;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.5px; letter-spacing: 0.5px;
font-weight: 500; font-weight: 500;
@@ -71,7 +71,7 @@
} }
.forgotLink { .forgotLink {
font-size: 11px; font-size: 12px;
color: var(--amber); color: var(--amber);
font-weight: 500; font-weight: 500;
background: none; background: none;

View File

@@ -45,7 +45,7 @@
} }
.meta { .meta {
font-size: 11px; font-size: 12px;
color: var(--sidebar-muted); color: var(--sidebar-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
white-space: nowrap; white-space: nowrap;
@@ -59,7 +59,7 @@
.count { .count {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 11px; font-size: 12px;
color: var(--sidebar-muted); color: var(--sidebar-muted);
background: rgba(255, 255, 255, 0.06); background: rgba(255, 255, 255, 0.06);
padding: 1px 6px; padding: 1px 6px;

View File

@@ -46,7 +46,7 @@
.chevron { .chevron {
color: var(--text-faint); color: var(--text-faint);
font-size: 11px; font-size: 12px;
flex-shrink: 0; flex-shrink: 0;
} }

View File

@@ -8,7 +8,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 8px; gap: 8px;
font-size: 11px; font-size: 12px;
} }
.row.clickable { .row.clickable {
@@ -32,7 +32,7 @@
text-align: right; text-align: right;
color: var(--text-secondary); color: var(--text-secondary);
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
@@ -83,7 +83,7 @@
.dur { .dur {
width: 42px; width: 42px;
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
flex-shrink: 0; flex-shrink: 0;
text-align: right; text-align: right;

View File

@@ -52,7 +52,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
font-size: 10px; font-size: 12px;
flex-shrink: 0; flex-shrink: 0;
} }
@@ -97,7 +97,7 @@
.label { .label {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
color: var(--text-primary); color: var(--text-primary);
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
@@ -112,7 +112,7 @@
.duration { .duration {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
} }

View File

@@ -57,7 +57,7 @@
.count { .count {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
background: var(--bg-hover); background: var(--bg-hover);
color: var(--text-muted); color: var(--text-muted);

View File

@@ -17,7 +17,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 5px; gap: 5px;
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
background: var(--bg-surface); background: var(--bg-surface);
border: 1px solid var(--border-subtle); border: 1px solid var(--border-subtle);

View File

@@ -38,7 +38,7 @@
.count { .count {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
background: var(--bg-inset); background: var(--bg-inset);
color: var(--text-muted); color: var(--text-muted);
padding: 1px 5px; padding: 1px 5px;

View File

@@ -59,7 +59,7 @@
} }
.chevron { .chevron {
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
line-height: 1; line-height: 1;
} }
@@ -85,7 +85,7 @@
.meta { .meta {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
margin-left: auto; margin-left: auto;
padding-left: 8px; padding-left: 8px;

View File

@@ -13,6 +13,7 @@ export type { Column, DataTableProps } from './DataTable/types'
export { DetailPanel } from './DetailPanel/DetailPanel' export { DetailPanel } from './DetailPanel/DetailPanel'
export { EntityList } from './EntityList/EntityList' export { EntityList } from './EntityList/EntityList'
export { Dropdown } from './Dropdown/Dropdown' export { Dropdown } from './Dropdown/Dropdown'
export type { DropdownItem } from './Dropdown/Dropdown'
export { EventFeed } from './EventFeed/EventFeed' export { EventFeed } from './EventFeed/EventFeed'
export { GroupCard } from './GroupCard/GroupCard' export { GroupCard } from './GroupCard/GroupCard'
export { KpiStrip } from './KpiStrip/KpiStrip' export { KpiStrip } from './KpiStrip/KpiStrip'

View File

@@ -70,7 +70,7 @@
.version { .version {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
color: var(--sidebar-muted); color: var(--sidebar-muted);
margin-left: 4px; margin-left: 4px;
} }
@@ -238,7 +238,7 @@
} }
.treeSectionLabel { .treeSectionLabel {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 1px; letter-spacing: 1px;
@@ -313,7 +313,7 @@
padding: 0; padding: 0;
margin: 0; margin: 0;
color: var(--sidebar-muted); color: var(--sidebar-muted);
font-size: 11px; font-size: 12px;
cursor: pointer; cursor: pointer;
line-height: 1; line-height: 1;
display: flex; display: flex;
@@ -345,7 +345,7 @@
/* Badge */ /* Badge */
.treeBadge { .treeBadge {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
color: var(--sidebar-muted); color: var(--sidebar-muted);
background: rgba(255, 255, 255, 0.06); background: rgba(255, 255, 255, 0.06);
padding: 1px 6px; padding: 1px 6px;

View File

@@ -62,7 +62,7 @@
.kbd { .kbd {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
background: var(--bg-surface); background: var(--bg-surface);
border: 1px solid var(--border); border: 1px solid var(--border);
padding: 0 4px; padding: 0 4px;
@@ -91,7 +91,7 @@
background: var(--bg-raised); background: var(--bg-raised);
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
letter-spacing: 0.5px; letter-spacing: 0.5px;
cursor: pointer; cursor: pointer;
@@ -162,7 +162,7 @@
background: var(--bg-raised); background: var(--bg-raised);
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.5px; letter-spacing: 0.5px;

View File

@@ -17,6 +17,7 @@ interface TopBarProps {
breadcrumb: BreadcrumbItem[] breadcrumb: BreadcrumbItem[]
environment?: ReactNode environment?: ReactNode
user?: { name: string } user?: { name: string }
userMenuItems?: import('../../composites/Dropdown/Dropdown').DropdownItem[]
onLogout?: () => void onLogout?: () => void
className?: string className?: string
} }
@@ -32,6 +33,7 @@ export function TopBar({
breadcrumb, breadcrumb,
environment, environment,
user, user,
userMenuItems,
onLogout, onLogout,
className, className,
}: TopBarProps) { }: TopBarProps) {
@@ -114,6 +116,8 @@ export function TopBar({
</div> </div>
} }
items={[ items={[
...(userMenuItems ?? []),
...(userMenuItems?.length ? [{ label: '', divider: true }] : []),
{ label: 'Logout', icon: <Power size={14} />, onClick: onLogout }, { label: 'Logout', icon: <Power size={14} />, onClick: onLogout },
]} ]}
/> />

View File

@@ -8,5 +8,5 @@
flex-shrink: 0; flex-shrink: 0;
} }
.sm { width: 24px; height: 24px; font-size: 9px; } .sm { width: 24px; height: 24px; font-size: 9px; }
.md { width: 28px; height: 28px; font-size: 11px; } .md { width: 28px; height: 28px; font-size: 12px; }
.lg { width: 40px; height: 40px; font-size: 14px; } .lg { width: 40px; height: 40px; font-size: 14px; }

View File

@@ -5,7 +5,7 @@
padding: 1px 8px; padding: 1px 8px;
border-radius: 10px; border-radius: 10px;
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
white-space: nowrap; white-space: nowrap;
border: 1px solid transparent; border: 1px solid transparent;

View File

@@ -13,7 +13,7 @@
.btn:disabled { opacity: 0.6; cursor: not-allowed; } .btn:disabled { opacity: 0.6; cursor: not-allowed; }
.sm { padding: 4px 10px; font-size: 11px; } .sm { padding: 4px 10px; font-size: 12px; }
.md { padding: 6px 14px; font-size: 12px; } .md { padding: 6px 14px; font-size: 12px; }
.primary { .primary {

View File

@@ -18,7 +18,7 @@
} }
.titleText { .titleText {
font-size: 11px; font-size: 12px;
text-transform: uppercase; text-transform: uppercase;
font-family: var(--font-mono); font-family: var(--font-mono);
font-weight: 600; font-weight: 600;

View File

@@ -26,7 +26,7 @@
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
cursor: pointer; cursor: pointer;
transition: all 0.15s; transition: all 0.15s;
@@ -49,5 +49,5 @@
user-select: none; user-select: none;
text-align: right; text-align: right;
margin-right: 12px; margin-right: 12px;
font-size: 11px; font-size: 12px;
} }

View File

@@ -5,7 +5,7 @@
} }
.label { .label {
font-size: 11px; font-size: 12px;
font-weight: 500; font-weight: 500;
color: var(--text-muted); color: var(--text-muted);
text-transform: uppercase; text-transform: uppercase;
@@ -18,7 +18,7 @@
background: transparent; background: transparent;
color: var(--text-primary); color: var(--text-primary);
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 11px; font-size: 12px;
text-align: left; text-align: left;
cursor: pointer; cursor: pointer;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
@@ -72,7 +72,7 @@
border: none; border: none;
background: none; background: none;
color: var(--text-muted); color: var(--text-muted);
font-size: 10px; font-size: 12px;
cursor: pointer; cursor: pointer;
padding: 4px 8px; padding: 4px 8px;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
@@ -93,7 +93,7 @@
} }
.dayHeader { .dayHeader {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
color: var(--text-faint); color: var(--text-faint);
text-align: center; text-align: center;
@@ -151,7 +151,7 @@
} }
.timeLabel { .timeLabel {
font-size: 11px; font-size: 12px;
font-weight: 500; font-weight: 500;
color: var(--text-muted); color: var(--text-muted);
margin-right: auto; margin-right: auto;

View File

@@ -8,7 +8,7 @@
background: var(--bg-raised); background: var(--bg-raised);
color: var(--text-secondary); color: var(--text-secondary);
font-family: var(--font-body); font-family: var(--font-body);
font-size: 11px; font-size: 12px;
font-weight: 500; font-weight: 500;
cursor: pointer; cursor: pointer;
transition: all 0.15s; transition: all 0.15s;
@@ -49,7 +49,7 @@
.count { .count {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
background: var(--bg-inset); background: var(--bg-inset);
border-radius: 8px; border-radius: 8px;

View File

@@ -6,13 +6,13 @@
} }
.hint { .hint {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
margin-top: 4px; margin-top: 4px;
} }
.error { .error {
font-size: 11px; font-size: 12px;
color: var(--error); color: var(--error);
margin-top: 4px; margin-top: 4px;
} }

View File

@@ -1,6 +1,6 @@
.kbd { .kbd {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
background: var(--bg-raised); background: var(--bg-raised);
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: 3px; border-radius: 3px;

View File

@@ -1,4 +1,4 @@
.mono { font-family: var(--font-mono); } .mono { font-family: var(--font-mono); }
.xs { font-size: 10px; } .xs { font-size: 12px; }
.sm { font-size: 11px; } .sm { font-size: 12px; }
.md { font-size: 13px; } .md { font-size: 13px; }

View File

@@ -7,7 +7,7 @@
.label { .label {
font-family: var(--font-body); font-family: var(--font-body);
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
line-height: 1; line-height: 1;
} }

View File

@@ -5,7 +5,7 @@
} }
.label { .label {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 1.2px; letter-spacing: 1.2px;

View File

@@ -35,6 +35,6 @@
top: 50%; top: 50%;
transform: translateY(-50%); transform: translateY(-50%);
color: var(--text-faint); color: var(--text-faint);
font-size: 11px; font-size: 12px;
pointer-events: none; pointer-events: none;
} }

View File

@@ -21,7 +21,7 @@
} }
.label { .label {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 1.2px; letter-spacing: 1.2px;
@@ -47,7 +47,7 @@
} }
.trend { .trend {
font-size: 11px; font-size: 12px;
font-weight: 500; font-weight: 500;
} }
@@ -56,7 +56,7 @@
.trend.neutral { color: var(--text-muted); } .trend.neutral { color: var(--text-muted); }
.detail { .detail {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
margin-top: 6px; margin-top: 6px;
} }

View File

@@ -5,7 +5,7 @@
padding: 3px 10px; padding: 3px 10px;
border: 1px solid; border: 1px solid;
border-radius: 20px; border-radius: 20px;
font-size: 11px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
} }

View File

@@ -10,7 +10,7 @@
padding: 5px 9px; padding: 5px 9px;
background: var(--text-primary); background: var(--text-primary);
color: var(--bg-surface); color: var(--bg-surface);
font-size: 11px; font-size: 12px;
font-family: var(--font-body); font-family: var(--font-body);
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
white-space: nowrap; white-space: nowrap;

View File

@@ -46,6 +46,7 @@
/* Typography */ /* Typography */
--font-body: 'DM Sans', system-ui, -apple-system, sans-serif; --font-body: 'DM Sans', system-ui, -apple-system, sans-serif;
--font-mono: 'JetBrains Mono', 'Fira Code', monospace; --font-mono: 'JetBrains Mono', 'Fira Code', monospace;
--font-size-min: 12px;
/* Spacing & Radii */ /* Spacing & Radii */
--radius-sm: 5px; --radius-sm: 5px;

View File

@@ -42,7 +42,7 @@
} }
.tableMeta { .tableMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
} }
@@ -72,7 +72,7 @@
} }
.detailLabel { .detailLabel {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.8px; letter-spacing: 0.8px;

View File

@@ -24,7 +24,7 @@
} }
.hint { .hint {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-body); font-family: var(--font-body);
} }

View File

@@ -11,7 +11,7 @@
} }
.entityMeta { .entityMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-body); font-family: var(--font-body);
margin-top: 2px; margin-top: 2px;
@@ -101,7 +101,7 @@
} }
.inheritedNote { .inheritedNote {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-style: italic; font-style: italic;
font-family: var(--font-body); font-family: var(--font-body);

View File

@@ -19,7 +19,7 @@
.breakdown { .breakdown {
display: flex; display: flex;
gap: 8px; gap: 8px;
font-size: 11px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
} }
@@ -52,7 +52,7 @@
.scopeSep { .scopeSep {
color: var(--text-muted); color: var(--text-muted);
font-size: 10px; font-size: 12px;
} }
.scopeCurrent { .scopeCurrent {
@@ -76,7 +76,7 @@
} }
.sectionMeta { .sectionMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
} }
@@ -101,7 +101,7 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 16px; gap: 16px;
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
} }
@@ -118,7 +118,7 @@
gap: 8px; gap: 8px;
padding: 8px 16px; padding: 8px 16px;
background: var(--error-bg); background: var(--error-bg);
font-size: 11px; font-size: 12px;
color: var(--error); color: var(--error);
font-weight: 500; font-weight: 500;
} }
@@ -192,7 +192,7 @@
} }
.chartTitle { .chartTitle {
font-size: 11px; font-size: 12px;
font-weight: 600; font-weight: 600;
color: var(--text-secondary); color: var(--text-secondary);
text-transform: uppercase; text-transform: uppercase;

View File

@@ -42,7 +42,7 @@
.scopeSep { .scopeSep {
color: var(--text-muted); color: var(--text-muted);
font-size: 10px; font-size: 12px;
} }
.scopeCurrent { .scopeCurrent {
@@ -82,7 +82,7 @@
} }
.chartMeta { .chartMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
} }

View File

@@ -49,7 +49,7 @@
} }
.tableMeta { .tableMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
} }
@@ -97,7 +97,7 @@
align-items: center; align-items: center;
gap: 5px; gap: 5px;
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
} }
@@ -128,14 +128,14 @@
} }
.inlineErrorText { .inlineErrorText {
font-size: 11px; font-size: 12px;
color: var(--error); color: var(--error);
font-family: var(--font-mono); font-family: var(--font-mono);
line-height: 1.4; line-height: 1.4;
} }
.inlineErrorHint { .inlineErrorHint {
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
margin-top: 3px; margin-top: 3px;
} }
@@ -154,7 +154,7 @@
} }
.panelSectionTitle { .panelSectionTitle {
font-size: 11px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.5px; letter-spacing: 0.5px;
@@ -168,7 +168,7 @@
.panelSectionMeta { .panelSectionMeta {
margin-left: auto; margin-left: auto;
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 500; font-weight: 500;
text-transform: none; text-transform: none;
letter-spacing: 0; letter-spacing: 0;
@@ -189,7 +189,7 @@
} }
.overviewLabel { .overviewLabel {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.6px; letter-spacing: 0.6px;
@@ -209,14 +209,14 @@
.errorClass { .errorClass {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
color: var(--error); color: var(--error);
margin-bottom: 4px; margin-bottom: 4px;
} }
.errorMessage { .errorMessage {
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
line-height: 1.5; line-height: 1.5;
font-family: var(--font-mono); font-family: var(--font-mono);

View File

@@ -75,7 +75,7 @@
} }
.headerStatLabel { .headerStatLabel {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.6px; letter-spacing: 0.6px;
@@ -105,7 +105,7 @@
} }
.chainLabel { .chainLabel {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.5px; letter-spacing: 0.5px;
@@ -120,7 +120,7 @@
padding: 4px 10px; padding: 4px 10px;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
border: 1px solid var(--border-subtle); border: 1px solid var(--border-subtle);
font-size: 11px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
cursor: pointer; cursor: pointer;
background: var(--bg-surface); background: var(--bg-surface);
@@ -187,7 +187,7 @@
.procCount { .procCount {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 500; font-weight: 500;
padding: 1px 8px; padding: 1px 8px;
border-radius: 10px; border-radius: 10px;
@@ -205,7 +205,7 @@
.toggleBtn { .toggleBtn {
padding: 4px 12px; padding: 4px 12px;
font-size: 11px; font-size: 12px;
font-family: var(--font-body); font-family: var(--font-body);
border: none; border: none;
background: transparent; background: transparent;
@@ -297,7 +297,7 @@
.panelTag { .panelTag {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
padding: 1px 6px; padding: 1px 6px;
border-radius: 8px; border-radius: 8px;
background: var(--bg-inset); background: var(--bg-inset);
@@ -326,7 +326,7 @@
grid-template-columns: 140px 1fr; grid-template-columns: 140px 1fr;
padding: 4px 0; padding: 4px 0;
border-bottom: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle);
font-size: 11px; font-size: 12px;
} }
.headerKvRow:last-child { .headerKvRow:last-child {
@@ -356,7 +356,7 @@
} }
.sectionLabel { .sectionLabel {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.6px; letter-spacing: 0.6px;
@@ -369,7 +369,7 @@
.count { .count {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
padding: 0 5px; padding: 0 5px;
border-radius: 8px; border-radius: 8px;
background: var(--bg-inset); background: var(--bg-inset);
@@ -389,7 +389,7 @@
padding: 2px 8px; padding: 2px 8px;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
background: var(--error-bg); background: var(--error-bg);
color: var(--error); color: var(--error);
@@ -398,7 +398,7 @@
.errorMessageBox { .errorMessageBox {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
background: var(--error-bg); background: var(--error-bg);
padding: 10px 12px; padding: 10px 12px;
@@ -414,7 +414,7 @@
display: grid; display: grid;
grid-template-columns: 120px 1fr; grid-template-columns: 120px 1fr;
gap: 4px 12px; gap: 4px 12px;
font-size: 11px; font-size: 12px;
} }
.errorDetailLabel { .errorDetailLabel {

View File

@@ -57,7 +57,7 @@
} }
.navLabel { .navLabel {
font-size: 11px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.06em; letter-spacing: 0.06em;

View File

@@ -76,7 +76,7 @@
} }
.logoExport { .logoExport {
font-size: 10px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
color: var(--text-muted); color: var(--text-muted);
background: var(--bg-body); background: var(--bg-body);

View File

@@ -1,6 +1,7 @@
import styles from './BrandAssetsSection.module.css' import styles from './BrandAssetsSection.module.css'
import camelLogoSvg from '../../../assets/camel-logo.svg' import camelLogoSvg from '../../../assets/camel-logo.svg'
import cameleer3Logo from '../../../assets/cameleer3-logo.png' import cameleer3Logo from '../../../assets/cameleer3-logo.png'
import cameleer3LogoSvg from '../../../assets/cameleer3-logo.svg'
const LOGO_SIZES = [16, 32, 48, 180, 192, 512] as const const LOGO_SIZES = [16, 32, 48, 180, 192, 512] as const
@@ -13,7 +14,7 @@ export function BrandAssetsSection() {
<h3 className={styles.componentTitle}>Cameleer3 Logo (PNG)</h3> <h3 className={styles.componentTitle}>Cameleer3 Logo (PNG)</h3>
<p className={styles.componentDesc}> <p className={styles.componentDesc}>
Full-resolution logo and pre-generated size variants for favicons, PWA icons, and social images. Full-resolution logo and pre-generated size variants for favicons, PWA icons, and social images.
Shipped as static assets via package exports. Shipped as static assets via <code>@cameleer/design-system/assets/*</code> export.
</p> </p>
<div className={styles.demoArea}> <div className={styles.demoArea}>
<div className={styles.logoGrid}> <div className={styles.logoGrid}>
@@ -28,7 +29,7 @@ export function BrandAssetsSection() {
/> />
</div> </div>
<span className={styles.logoLabel}>{size}×{size}</span> <span className={styles.logoLabel}>{size}×{size}</span>
<code className={styles.logoExport}>@cameleer/design-system/logo-{size}</code> <code className={styles.logoExport}>assets/cameleer3-{size}.png</code>
</div> </div>
))} ))}
<div className={styles.logoItem}> <div className={styles.logoItem}>
@@ -41,25 +42,32 @@ export function BrandAssetsSection() {
/> />
</div> </div>
<span className={styles.logoLabel}>Original</span> <span className={styles.logoLabel}>Original</span>
<code className={styles.logoExport}>@cameleer/design-system/logo</code> <code className={styles.logoExport}>assets/cameleer3-logo.png</code>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div className={styles.componentCard}> <div className={styles.componentCard}>
<h3 className={styles.componentTitle}>Camel Logo (SVG)</h3> <h3 className={styles.componentTitle}>SVG Logos</h3>
<p className={styles.componentDesc}> <p className={styles.componentDesc}>
Vector logo for scalable usage. Shipped as a static asset via package export. Vector logos for scalable usage. Transparent backgrounds, infinitely scalable.
</p> </p>
<div className={styles.demoArea}> <div className={styles.demoArea}>
<div className={styles.logoGrid}> <div className={styles.logoGrid}>
<div className={styles.logoItem}>
<div className={styles.logoPreview}>
<img src={cameleer3LogoSvg} alt="Cameleer3 SVG logo" width={96} height={96} />
</div>
<span className={styles.logoLabel}>Cameleer3 SVG</span>
<code className={styles.logoExport}>assets/cameleer3-logo.svg</code>
</div>
<div className={styles.logoItem}> <div className={styles.logoItem}>
<div className={styles.logoPreview}> <div className={styles.logoPreview}>
<img src={camelLogoSvg} alt="Camel SVG logo" width={96} height={96} /> <img src={camelLogoSvg} alt="Camel SVG logo" width={96} height={96} />
</div> </div>
<span className={styles.logoLabel}>SVG</span> <span className={styles.logoLabel}>Camel SVG</span>
<code className={styles.logoExport}>@cameleer/design-system/logo-svg</code> <code className={styles.logoExport}>assets/camel-logo.svg</code>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -56,7 +56,7 @@
} }
.demoLabel { .demoLabel {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-weight: 500; font-weight: 500;
} }

View File

@@ -56,7 +56,7 @@
} }
.demoLabel { .demoLabel {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-weight: 500; font-weight: 500;
} }
@@ -80,7 +80,7 @@
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
overflow: hidden; overflow: hidden;
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
} }

View File

@@ -56,7 +56,7 @@
} }
.demoLabel { .demoLabel {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-weight: 500; font-weight: 500;
} }

View File

@@ -45,7 +45,7 @@
} }
.routeGroup { .routeGroup {
font-size: 11px; font-size: 12px;
font-family: var(--font-mono); font-family: var(--font-mono);
color: var(--text-muted); color: var(--text-muted);
background: var(--bg-inset); background: var(--bg-inset);
@@ -78,7 +78,7 @@
} }
.kpiLabel { .kpiLabel {
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.6px; letter-spacing: 0.6px;
@@ -124,7 +124,7 @@
} }
.sectionMeta { .sectionMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
} }
@@ -167,7 +167,7 @@
} }
.tableMeta { .tableMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
} }
@@ -196,7 +196,7 @@
align-items: center; align-items: center;
gap: 5px; gap: 5px;
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
} }
@@ -228,14 +228,14 @@
.errorClass { .errorClass {
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 10px; font-size: 12px;
font-weight: 600; font-weight: 600;
color: var(--error); color: var(--error);
margin-bottom: 4px; margin-bottom: 4px;
} }
.errorText { .errorText {
font-size: 11px; font-size: 12px;
color: var(--error); color: var(--error);
font-family: var(--font-mono); font-family: var(--font-mono);
line-height: 1.4; line-height: 1.4;
@@ -264,7 +264,7 @@
} }
.errorPatternMessage { .errorPatternMessage {
font-size: 11px; font-size: 12px;
color: var(--text-secondary); color: var(--text-secondary);
font-family: var(--font-mono); font-family: var(--font-mono);
line-height: 1.5; line-height: 1.5;
@@ -274,7 +274,7 @@
} }
.errorPatternTime { .errorPatternTime {
font-size: 10px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
} }

View File

@@ -30,7 +30,7 @@
} }
.refreshText { .refreshText {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
} }
@@ -66,7 +66,7 @@
} }
.tableMeta { .tableMeta {
font-size: 11px; font-size: 12px;
color: var(--text-muted); color: var(--text-muted);
font-family: var(--font-mono); font-family: var(--font-mono);
} }