@keyfunc/keybricks-ds 2.1.1 → 2.3.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/DEPLOY.md +13 -4
- package/DESIGN.md +104 -19
- package/INTEGRATION.md +75 -20
- package/SKILL.md +11 -11
- package/_adherence.oxlintrc.json +28 -11
- package/_scripts/build-index.mjs +15 -4
- package/assets/icons/icon-index.js +1 -1
- package/assets/icons/icon-index.json +1 -1
- package/components/_cards/accordion.card.html +1 -1
- package/components/_cards/action-chip.card.html +11 -14
- package/components/_cards/activity.card.html +2 -2
- package/components/_cards/alert.card.html +2 -2
- package/components/_cards/app-chrome.card.html +1 -1
- package/components/_cards/banner.card.html +1 -1
- package/components/_cards/breadcrumb.card.html +4 -4
- package/components/_cards/button-1-base.card.html +23 -26
- package/components/_cards/button-2-states.card.html +14 -12
- package/components/_cards/button-3-sizes-icons.card.html +20 -19
- package/components/_cards/button-4-group.card.html +14 -31
- package/components/_cards/canvas-zoom-controls.card.html +1 -1
- package/components/_cards/cards-indicators.card.html +1 -1
- package/components/_cards/charts-1-sparkline.card.html +4 -4
- package/components/_cards/charts-10-gauge.card.html +2 -2
- package/components/_cards/charts-11-funnel.card.html +2 -2
- package/components/_cards/charts-12-treemap.card.html +2 -2
- package/components/_cards/charts-14-radar.card.html +3 -3
- package/components/_cards/charts-15-distribution.card.html +2 -2
- package/components/_cards/charts-16-pareto.card.html +2 -2
- package/components/_cards/charts-17-candlestick.card.html +2 -2
- package/components/_cards/charts-18-sankey.card.html +2 -2
- package/components/_cards/charts-19-chord.card.html +2 -2
- package/components/_cards/charts-2-line.card.html +3 -3
- package/components/_cards/charts-20-sunburst.card.html +2 -2
- package/components/_cards/charts-21-worldmap.card.html +3 -3
- package/components/_cards/charts-22-gantt.card.html +2 -2
- package/components/_cards/charts-23-bar3d.card.html +2 -2
- package/components/_cards/charts-24-pie3d.card.html +2 -2
- package/components/_cards/charts-25-surface3d.card.html +2 -2
- package/components/_cards/charts-26-scatter3d.card.html +2 -2
- package/components/_cards/charts-27-ribbon3d.card.html +2 -2
- package/components/_cards/charts-3-bar.card.html +6 -6
- package/components/_cards/charts-4-barlist.card.html +2 -2
- package/components/_cards/charts-5-donut.card.html +2 -2
- package/components/_cards/charts-6-scatter.card.html +2 -2
- package/components/_cards/charts-7-heatmap.card.html +2 -2
- package/components/_cards/charts-8-waterfall.card.html +2 -2
- package/components/_cards/charts-9-bullet.card.html +3 -3
- package/components/_cards/charts-99-fullpage.card.html +1 -1
- package/components/_cards/checkbox.card.html +6 -3
- package/components/_cards/codeblock.card.html +2 -2
- package/components/_cards/combobox.card.html +6 -4
- package/components/_cards/context-menu.card.html +6 -4
- package/components/_cards/date-picker.card.html +8 -5
- package/components/_cards/diffvalue.card.html +2 -2
- package/components/_cards/divider.card.html +2 -2
- package/components/_cards/drawer.card.html +3 -3
- package/components/_cards/dropdown-menu.card.html +2 -2
- package/components/_cards/dropzone.card.html +5 -3
- package/components/_cards/empty-state.card.html +2 -2
- package/components/_cards/filter-bar.card.html +1 -1
- package/components/_cards/icon-button.card.html +14 -14
- package/components/_cards/icons-1-core.card.html +4 -4
- package/components/_cards/icons-2-feather.card.html +4 -4
- package/components/_cards/icons-3-unicons.card.html +3 -3
- package/components/_cards/input.card.html +5 -5
- package/components/_cards/kbd.card.html +1 -1
- package/components/_cards/keyvalue.card.html +1 -1
- package/components/_cards/listrow.card.html +1 -1
- package/components/_cards/loading.card.html +2 -2
- package/components/_cards/log-viewer.card.html +2 -2
- package/components/_cards/modal.card.html +1 -1
- package/components/_cards/multi-select.card.html +6 -4
- package/components/_cards/number-stepper.card.html +9 -6
- package/components/_cards/pagination.card.html +6 -4
- package/components/_cards/people.card.html +2 -2
- package/components/_cards/pipeline-node.card.html +8 -8
- package/components/_cards/pipeline-palette.card.html +2 -2
- package/components/_cards/radio.card.html +12 -7
- package/components/_cards/search.card.html +6 -6
- package/components/_cards/segmented-control.card.html +11 -10
- package/components/_cards/select.card.html +7 -3
- package/components/_cards/slider.card.html +2 -2
- package/components/_cards/smart-table.card.html +3 -3
- package/components/_cards/spreadsheet.card.html +2 -2
- package/components/_cards/stepper.card.html +2 -2
- package/components/_cards/table.card.html +79 -17
- package/components/_cards/tabs.card.html +6 -4
- package/components/_cards/tag.card.html +6 -6
- package/components/_cards/textarea.card.html +1 -1
- package/components/_cards/timeline.card.html +3 -3
- package/components/_cards/toast.card.html +7 -5
- package/components/_cards/toggles.card.html +14 -9
- package/components/_cards/tooltip.card.html +3 -3
- package/components/_cards/tree.card.html +2 -2
- package/components/_shared/card-kit.css +25 -0
- package/components/_shared/card-kit.js +50 -0
- package/components/_shared/src-buttons.js +1 -1
- package/components/_shared/src-charts.js +1 -1
- package/components/_shared/src-data.js +1 -1
- package/components/_shared/src-display.js +1 -1
- package/components/_shared/src-feedback.js +1 -1
- package/components/_shared/src-forms.js +1 -1
- package/components/_shared/src-icons.js +1 -1
- package/components/_shared/src-navigation.js +1 -1
- package/components/_shared/src-tabs.js +1 -1
- package/components/_shared/view-source.js +3 -3
- package/components/_vue/index.mjs +7 -0
- package/components/buttons/ActionChip.d.ts +1 -1
- package/components/buttons/Button.d.ts +1 -1
- package/components/buttons/Button.jsx +1 -1
- package/components/buttons/Button.vue +1 -1
- package/components/buttons/IconButton.d.ts +1 -1
- package/components/buttons/IconButton.jsx +5 -3
- package/components/buttons/IconButton.vue +3 -2
- package/components/charts/Bar3D.jsx +1 -1
- package/components/charts/Bar3D.vue +2 -2
- package/components/charts/BarChart.jsx +3 -3
- package/components/charts/BarChart.vue +6 -6
- package/components/charts/BarList.jsx +3 -3
- package/components/charts/BarList.vue +3 -3
- package/components/charts/BoxPlot.vue +2 -2
- package/components/charts/BulletChart.jsx +5 -5
- package/components/charts/BulletChart.vue +5 -5
- package/components/charts/CandlestickChart.vue +3 -3
- package/components/charts/ChartKit.jsx +4 -3
- package/components/charts/ChartTooltip.vue +1 -1
- package/components/charts/ChordChart.jsx +1 -1
- package/components/charts/ChordChart.vue +2 -2
- package/components/charts/DonutChart.jsx +1 -1
- package/components/charts/DonutChart.vue +2 -2
- package/components/charts/FunnelChart.jsx +3 -3
- package/components/charts/FunnelChart.vue +4 -4
- package/components/charts/GanttChart.vue +1 -1
- package/components/charts/GaugeChart.jsx +2 -2
- package/components/charts/GaugeChart.vue +2 -2
- package/components/charts/HeatmapChart.jsx +1 -1
- package/components/charts/HeatmapChart.vue +1 -1
- package/components/charts/Histogram.jsx +2 -2
- package/components/charts/Histogram.vue +4 -4
- package/components/charts/LineChart.vue +2 -2
- package/components/charts/ParetoChart.jsx +1 -1
- package/components/charts/ParetoChart.vue +3 -3
- package/components/charts/Pie3D.jsx +1 -1
- package/components/charts/Pie3D.vue +2 -2
- package/components/charts/PlotGrid.vue +1 -1
- package/components/charts/RadarChart.vue +1 -1
- package/components/charts/Ribbon3D.jsx +1 -1
- package/components/charts/Ribbon3D.vue +2 -2
- package/components/charts/SankeyChart.jsx +1 -1
- package/components/charts/SankeyChart.vue +2 -2
- package/components/charts/Scatter3D.vue +1 -1
- package/components/charts/ScatterChart.jsx +1 -1
- package/components/charts/ScatterChart.vue +3 -3
- package/components/charts/Sparkline.jsx +1 -1
- package/components/charts/Sparkline.vue +1 -1
- package/components/charts/SunburstChart.vue +1 -1
- package/components/charts/Surface3D.jsx +1 -1
- package/components/charts/Surface3D.vue +2 -2
- package/components/charts/TreemapChart.jsx +1 -1
- package/components/charts/TreemapChart.vue +2 -2
- package/components/charts/WaterfallChart.jsx +1 -1
- package/components/charts/WaterfallChart.vue +5 -4
- package/components/charts/WorldMap.jsx +4 -4
- package/components/charts/WorldMap.vue +5 -5
- package/components/data/DiffValue.d.ts +1 -0
- package/components/data/DiffValue.jsx +1 -1
- package/components/data/DiffValue.vue +1 -1
- package/components/data/KeyValue.d.ts +1 -1
- package/components/data/KeyValue.jsx +2 -2
- package/components/data/KeyValue.vue +2 -2
- package/components/data/Pagination.jsx +2 -2
- package/components/data/Pagination.vue +1 -1
- package/components/data/SmartTable.jsx +5 -5
- package/components/data/SmartTable.vue +6 -6
- package/components/data/Spreadsheet.jsx +5 -5
- package/components/data/Spreadsheet.vue +6 -6
- package/components/data/Table.d.ts +58 -4
- package/components/data/Table.jsx +153 -15
- package/components/data/Table.vue +105 -15
- package/components/data/data.prompt.md +1 -1
- package/components/display/Avatar.jsx +2 -2
- package/components/display/Avatar.vue +1 -1
- package/components/display/AvatarGroup.vue +1 -1
- package/components/display/Badge.d.ts +4 -1
- package/components/display/Badge.jsx +10 -5
- package/components/display/IconTile.vue +9 -4
- package/components/display/Kbd.d.ts +1 -1
- package/components/display/Kbd.jsx +1 -1
- package/components/display/Kbd.vue +1 -1
- package/components/feedback/ActivityItem.jsx +1 -1
- package/components/feedback/Modal.jsx +1 -1
- package/components/feedback/Modal.vue +1 -1
- package/components/feedback/Timeline.vue +2 -2
- package/components/forms/Combobox.d.ts +1 -1
- package/components/forms/DatePicker.d.ts +1 -1
- package/components/forms/Input.d.ts +1 -1
- package/components/forms/Input.jsx +2 -2
- package/components/forms/Input.vue +1 -1
- package/components/forms/MultiSelect.d.ts +1 -1
- package/components/forms/NumberStepper.d.ts +1 -1
- package/components/forms/SearchInput.d.ts +1 -1
- package/components/forms/Select.d.ts +1 -1
- package/components/forms/Select.jsx +1 -1
- package/components/forms/Select.vue +1 -1
- package/components/forms/Slider.jsx +1 -1
- package/components/forms/Slider.vue +1 -1
- package/components/forms/Switch.jsx +3 -3
- package/components/forms/Switch.vue +11 -8
- package/components/forms/Textarea.vue +1 -1
- package/components/forms/input-base.js +1 -1
- package/components/icons/Icon.jsx +17 -1
- package/components/icons/Icon.prompt.md +2 -0
- package/components/icons/Icon.vue +1 -1
- package/components/icons/icon-paths.js +15 -0
- package/components/index.js +1 -1
- package/components/navigation/Breadcrumb.jsx +3 -7
- package/components/navigation/Breadcrumb.vue +2 -8
- package/components/navigation/Sidebar.jsx +3 -22
- package/components/navigation/Sidebar.vue +2 -7
- package/components/navigation/Tree.jsx +1 -1
- package/components/navigation/Tree.vue +9 -4
- package/components/navigation/nav-model.js +23 -0
- package/components/navigation/theme-store.js +9 -0
- package/components/tabs/PillTabs.vue +1 -1
- package/components/tabs/SegmentedControl.d.ts +1 -1
- package/components/tabs/SegmentedControl.jsx +1 -1
- package/components/tabs/SegmentedControl.vue +1 -1
- package/components/tabs/Tabs.jsx +1 -1
- package/components/tabs/ViewToggle.d.ts +1 -1
- package/package.json +2 -2
- package/readme.md +6 -5
- package/readme.zh-CN.md +6 -5
- package/tokens/alpha.css +3 -1
- package/tokens/colors.css +1 -1
- package/tokens/dark.css +1 -1
- package/tokens/layout.css +7 -5
- package/tokens/tokens.d.ts +22 -0
- package/tokens/tokens.js +39 -6
- package/tokens/tokens.json +90 -11
- package/tokens/typography.css +26 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
/** list/grid icon toggle — two IconButtons at the region's tier (sm
|
|
2
|
+
/** list/grid icon toggle — two IconButtons at the region's tier (sm 28 · md 32 · lg 40), active gets the tinted wash. */
|
|
3
3
|
export interface ViewToggleProps {
|
|
4
4
|
value?: "list" | "grid";
|
|
5
5
|
/** Size tier. Omit to inherit the enclosing region's tier (the default). */
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keyfunc/keybricks-ds",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "Keybricks design system —
|
|
3
|
+
"version": "2.3.1",
|
|
4
|
+
"description": "Keybricks design system — design tokens, three size tiers and 117 UI components in React and Vue 3, source-only.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": [
|
package/readme.md
CHANGED
|
@@ -11,7 +11,7 @@ One product: the Keybricks web app (desktop, 1512×~860 design size). Key surfac
|
|
|
11
11
|
- **Voice**: terse, technical, verb-first. Buttons are imperative: "Run Test", "Submit", "Save Settings", "Continue to Confirmation", "Mark as New", "Skip Selected".
|
|
12
12
|
- **Casing**: Title Case for nav, headings, buttons, table headers ("Import History", "Custom Parameters"); sentence case for helper copy ("Import and manage configuration migrations across systems", "Click to upload or drag and drop", "JSON files only").
|
|
13
13
|
- **Person**: no "I/we/you" — labels are objective and system-centric. Personal touch is limited to the dashboard greeting "Good evening, Felix" + full date "Monday, April 21, 2026".
|
|
14
|
-
- **Terminology**: domain-precise EPM/ETL vocabulary — Detail Sheet, Dimension, Model, Association Match, Multi-Condition Judge, Group Calculation, Concat Merge, Reconciliation, Consolidation. Config codes
|
|
14
|
+
- **Terminology**: domain-precise EPM/ETL vocabulary — Detail Sheet, Dimension, Model, Association Match, Multi-Condition Judge, Group Calculation, Concat Merge, Reconciliation, Consolidation. Config codes are ALL_CAPS_SNAKE ("FIN_CURRENCY_DEFAULT") and render as code chips — Menlo 12px on a light inset fill.
|
|
15
15
|
- **Numbers & meta**: counts as "1 document", "2 items", relative time "2 hours ago", log lines "[14:30] Task started: Import".
|
|
16
16
|
- **Status language**: "• Editing" dot-prefixed state chip; steps named as nouns ("Upload & Parse", "Comparison", "Confirmation", "Execution", "Results").
|
|
17
17
|
- **Emoji**: never. Icons carry all decoration.
|
|
@@ -25,9 +25,9 @@ One product: the Keybricks web app (desktop, 1512×~860 design size). Key surfac
|
|
|
25
25
|
3. **Component** — `--cat-*`, `--tooltip-bg`, `--dropzone-border-hover`: one part of one component, added only when no tier-2 role fits.
|
|
26
26
|
|
|
27
27
|
Rules that don't bend: step 400 and lighter never carry body text on white (they are surfaces, borders, disabled glyphs); `--on-accent` (#FFFFFF) is the only foreground allowed on a saturated fill, in **both** themes; label hues are mechanical (light = 100-step bg + 700-step text, dark = 950-step bg + 300-step text) so a new category needs no judgement; hue means *category*, the four feedback roles mean *severity*. Contrast targets: 4.5:1 body text, 3:1 for 18px+/bold and for UI boundaries. Three Colors cards carry the values: Palette (every ramp), Schemes (sets that work together), Transparency (the alpha scale).
|
|
28
|
-
- **Type**: Inter only (300 stat numerals, 400 body, 500 UI-medium, 600 titles and table headers) on the 14px scale — 12 captions · 14 body and controls · 16 section titles · 20 page titles; 24px only for the greeting + stat numbers (weight 300); 11px for chart
|
|
28
|
+
- **Type**: Inter only (300 stat numerals, 400 body, 500 UI-medium, 600 titles and table headers) on the 14px scale — 12 captions · 14 body and controls · 16 section titles · 20 page titles; 24px only for the greeting + stat numbers (weight 300); 11px for chart text and nothing else. Negative tracking from 14px up (-.15 to -.54px), 0 at 12px. Menlo for data/code/logs at the row's own size with tabular figures. Chinese (Simplified and Traditional), Japanese and Korean (`lang="zh|ja|ko"`) follow one rule: below 14px they are one step larger than Latin (12 → 13, 11 → 12, so no CJK text is under 12px), weights 500 and 600 both → 500 (CJK glyphs read heavier at the same number; medium 400 in sm regions, where bold strokes merge), tracking 0, never caps.
|
|
29
29
|
- **Spacing**: 4-px family in practice (2/4/6/8/10/12/16/24/32); page padding 24×32; card padding 21 (dense 17); section gap 24. Inside a bar the gaps come from the size tier: 8 inside a group, 12/16/24 between groups, 12/16 from a card edge to the first control.
|
|
30
|
-
- **Size tiers**: one tier per region — `data-size="sm" | "md" | "lg"` gives
|
|
30
|
+
- **Size tiers**: one tier per region — `data-size="sm" | "md" | "lg"` gives 28 / 32 / 40px controls, 12 / 14 / 14px control text (13 / 14 / 14 in CJK) and 36 / 40 / 48px rows; every control inside inherits, nothing interactive is below 24px, and heights or text sizes are never mixed in one row. md is the app default; dialogs are lg; dense grids are sm.
|
|
31
31
|
- **Radii**: 4 small controls · 8 buttons/inputs/nav/chips · 10 cards/search/dropzone · 14 palette tiles · 16 canvas nodes · full circles for ports/steps/pills.
|
|
32
32
|
- **Borders**: hairline everywhere — cards rgba(229,229,229,.6); controls #e5e5e5; row separators #f5f5f5; checkbox #d1d5db 1.5px; ports #d4d4d4 2px; dropzone dashed #d4d4d4 2px.
|
|
33
33
|
- **Shadows**: nearly flat. Canvas nodes only: `0 1px 3px rgba(0,0,0,.1), 0 1px 2px -1px rgba(0,0,0,.1)`; selection = blue-400 border + 2px blue-100 ring; badges get a 2px white ring. Everything else relies on borders.
|
|
@@ -36,10 +36,12 @@ One product: the Keybricks web app (desktop, 1512×~860 design size). Key surfac
|
|
|
36
36
|
- **Motion**: kept minimal by design (see Motion below) — 120–160ms ease-out on hover/selection, nothing bouncy or far-traveling.
|
|
37
37
|
- **Layout chrome**: left sidebar 240px (collapsible to a 64px icon rail), 56px top bar (search left, bell + black "AI Assistant" pill right), optional 240px secondary panel (Documents tree, pipeline palette), 400px right config panel, 250px bottom data-preview drawer.
|
|
38
38
|
- **Cards**: white, radius 10, hairline border, 21px padding, 14px/500 title — never elevated.
|
|
39
|
-
- **Density**: high; table rows 32 (sm) · 40 (md) · 44 (lg); header cells the same size as body cells in weight 600, sentence case;
|
|
39
|
+
- **Density**: high; table rows 32 (sm) · 40 (md) · 44 (lg); header cells the same size as body cells in weight 600, sentence case; amount cells at the row's size with tabular figures; config codes as 12px code chips.
|
|
40
40
|
|
|
41
41
|
## Iconography
|
|
42
42
|
- The product's icons are the **Lucide** stroke set (16/14px at 1.33px effective stroke, `currentColor`). We ship `components/icons/Icon.jsx`, embedding the exact Lucide path data for every glyph the product uses. Usage: `<Icon name="search" size={16}/>`.
|
|
43
|
+
- **Keybricks glyphs**: thirteen icons drawn for Keybricks itself sit in the core set beside the Lucide glyphs — AI (`ai`, `ai-sparkles`), modules (`reconciliation`, `consolidation`, `journal`, `event`, `view-tree`) and actions (`drilldown`, `add-below`, `copy-data`, `task-execution`, `time-future`, `time-restatement`). Search the Icon Gallery before drawing a new one: *hierarchy* turned out to be `layers`, and *change* is `repeat`.
|
|
44
|
+
- **Drawing rules** (every core glyph, and any glyph added later): 24×24 grid; paths stay inside 2–22, which leaves 1px of padding once the stroke is drawn; stroke 2, round caps and joins, no fill, `currentColor`; integer coordinates; at least 2px of clear space between separate elements; rect corners rx 2, or rx 1 at 8px and smaller. Check a new glyph at 14 and 16px before adding it.
|
|
43
45
|
- Icon color follows text color (#525252 default chrome, #a1a1a1 muted, category hue inside tinted tiles).
|
|
44
46
|
- Tinted icon tiles are a signature motif: 40×40 r14 (palette), 48×48 r16 (nodes), 32×32 r8 hairline-bordered (list rows) — 100-tint bg + 600-hue glyph.
|
|
45
47
|
- Emoji or unicode-as-icon: never.
|
|
@@ -76,7 +78,6 @@ One product: the Keybricks web app (desktop, 1512×~860 design size). Key surfac
|
|
|
76
78
|
- `styles.css` — global CSS entry (imports all token files); `keybricks.css` — the package's stylesheet entry (tokens + hover hooks).
|
|
77
79
|
- `assets/` — keybricks-logo.png and the icon keyword indexes.
|
|
78
80
|
- `guidelines/` — foundation showcase cards (Design System tab).
|
|
79
|
-
- `ui_kits/keybricks-app/` — interactive product recreation: Home, Documents, Pipeline editor, System Migration.
|
|
80
81
|
- `SKILL.md` — agent skill entry file.
|
|
81
82
|
|
|
82
83
|
## Components
|
package/readme.zh-CN.md
CHANGED
|
@@ -13,7 +13,7 @@ Keybricks 是面向财务团队的企业绩效管理(EPM)平台:文档与
|
|
|
13
13
|
- **语气**:简洁、技术化、动词开头。按钮用祈使句:"Run Test"、"Submit"、"Save Settings"、"Continue to Confirmation"、"Mark as New"、"Skip Selected"。
|
|
14
14
|
- **大小写**:导航、标题、按钮、表头用词首大写(Title Case),如 "Import History"、"Custom Parameters";辅助说明文字用句首大写(sentence case),如 "Import and manage configuration migrations across systems"、"Click to upload or drag and drop"、"JSON files only"。
|
|
15
15
|
- **人称**:不使用"我 / 我们 / 你"——文案客观、以系统为中心。唯一的人性化表达是仪表盘问候语 "Good evening, Felix" 加完整日期 "Monday, April 21, 2026"。
|
|
16
|
-
- **术语**:精确的 EPM/ETL 领域词汇——Detail Sheet、Dimension、Model、Association Match、Multi-Condition Judge、Group Calculation、Concat Merge、Reconciliation、Consolidation
|
|
16
|
+
- **术语**:精确的 EPM/ETL 领域词汇——Detail Sheet、Dimension、Model、Association Match、Multi-Condition Judge、Group Calculation、Concat Merge、Reconciliation、Consolidation。配置代码写作全大写下划线("FIN_CURRENCY_DEFAULT"),显示为代码标签:Menlo 12px、浅灰底。配置代码用等宽字体、全大写下划线格式("FIN_CURRENCY_DEFAULT")。
|
|
17
17
|
- **数字与元信息**:计数写作 "1 document"、"2 items";相对时间写作 "2 hours ago";日志行写作 "[14:30] Task started: Import"。
|
|
18
18
|
- **状态文案**:状态标签带圆点前缀,如 "• Editing";步骤用名词命名("Upload & Parse"、"Comparison"、"Confirmation"、"Execution"、"Results")。
|
|
19
19
|
- **Emoji**:从不使用。所有装饰性表达交给图标。
|
|
@@ -27,9 +27,9 @@ Keybricks 是面向财务团队的企业绩效管理(EPM)平台:文档与
|
|
|
27
27
|
3. **组件层** —— `--cat-*`、`--tooltip-bg`、`--dropzone-border-hover`:只属于某个组件的某个部位,仅在第二层确实没有合适角色时才新增。
|
|
28
28
|
|
|
29
29
|
不可打破的规则:400 及更浅的档位不得在白底上承载正文(它们是表面色、边框色、禁用态图标色);饱和填充之上的前景色只能用 `--on-accent`(#FFFFFF),**两套主题都是**;标签色相按机械规则取值(浅色 = 100 档底 + 700 档字,深色 = 950 档底 + 300 档字),新增分类无需主观判断;色相表达*分类*,四组反馈色表达*严重程度*。对比度目标:正文 4.5:1,18px 以上或加粗文字及界面边界 3:1。Colors 分组下三张卡片给出全部色值:Palette(完整色阶)、Schemes(可搭配使用的配色组合)、Transparency(透明度阶)。
|
|
30
|
-
- **字体**:只用 Inter(300 用于统计数字,400 正文,500 界面中等字重,600 标题与表头),采用 14px 字号阶梯——12 说明文字 · 14 正文与控件 · 16 区块标题 · 20 页面标题;24px 只用于问候语和统计数字(字重 300);11px
|
|
30
|
+
- **字体**:只用 Inter(300 用于统计数字,400 正文,500 界面中等字重,600 标题与表头),采用 14px 字号阶梯——12 说明文字 · 14 正文与控件 · 16 区块标题 · 20 页面标题;24px 只用于问候语和统计数字(字重 300);11px 只用于图表文字。14px 起使用负字距(-.15 到 -.54px),12px 字距为 0。数据 / 代码 / 日志用 Menlo,与所在行同字号,使用等宽数字。中文(简体与繁体)、日文、韩文(`lang="zh|ja|ko"`)统一一条规则:14px 以下比西文大一号(12 → 13,11 → 12,任何 CJK 文字都不小于 12px);500 和 600 字重都改为 500(同样的数字,中日韩文字看起来比字母粗;sm 区域内中等字重改为 400,因为小字号加粗会让笔画粘连);字距为 0,不做大写转换。
|
|
31
31
|
- **间距**:实际采用 4px 体系(2/4/6/8/10/12/16/24/32);页面内边距 24×32;卡片内边距 21(紧凑型 17);区块间距 24。工具栏内的间距由尺寸层级决定:组内 8,组间 12/16/24,卡片边缘到第一个控件 12/16。
|
|
32
|
-
- **尺寸层级**:每个区域只用一档——`data-size="sm" | "md" | "lg"` 对应
|
|
32
|
+
- **尺寸层级**:每个区域只用一档——`data-size="sm" | "md" | "lg"` 对应 28 / 32 / 40px 控件、12 / 14 / 14px 控件文字(CJK 为 13 / 14 / 14)、36 / 40 / 48px 行高;区域内所有控件自动继承,可交互元素不小于 24px,同一行内绝不混用高度或字号。md 是应用默认,对话框为 lg,密集表格为 sm。
|
|
33
33
|
- **圆角**:4 小型控件 · 8 按钮 / 输入框 / 导航 / 标签 · 10 卡片 / 搜索框 / 上传区 · 14 组件面板图标块 · 16 画布节点 · 端口 / 步骤圆点 / 胶囊用全圆角。
|
|
34
34
|
- **边框**:全局使用发丝级细边框——卡片 rgba(229,229,229,.6);控件 #e5e5e5;行分隔线 #f5f5f5;复选框 #d1d5db 1.5px;端口 #d4d4d4 2px;上传区虚线 #d4d4d4 2px。
|
|
35
35
|
- **阴影**:几乎全平面。只有画布节点有阴影:`0 1px 3px rgba(0,0,0,.1), 0 1px 2px -1px rgba(0,0,0,.1)`;选中态 = blue-400 边框 + 2px blue-100 光环;徽标带 2px 白色描边。其余一律靠边框区分层次。
|
|
@@ -38,10 +38,12 @@ Keybricks 是面向财务团队的企业绩效管理(EPM)平台:文档与
|
|
|
38
38
|
- **动效**:刻意克制(见下方"动效"一节)——悬停 / 选中 120–160ms 缓出,不弹跳,不大幅位移。
|
|
39
39
|
- **布局框架**:左侧边栏 240px(可收起为 64px 图标栏);顶栏 56px(左侧搜索,右侧铃铛 + 黑色 "AI Assistant" 胶囊);可选的 240px 二级面板(文档树、管道组件面板);右侧配置面板 400px;底部数据预览抽屉 250px。
|
|
40
40
|
- **卡片**:白底、10px 圆角、细边框、21px 内边距、14px / 500 字重标题——从不使用投影抬高。
|
|
41
|
-
- **密度**:高密度;表格行高 32(sm)· 40(md)· 44(lg);表头与单元格同字号、字重 600
|
|
41
|
+
- **密度**:高密度;表格行高 32(sm)· 40(md)· 44(lg);表头与单元格同字号、字重 600、句首大写;金额单元格与所在行同字号、同字体,只加等宽数字(tabular figures);配置代码用 12px 代码标签。等宽字体只用于代码。
|
|
42
42
|
|
|
43
43
|
## 图标系统
|
|
44
44
|
- 产品图标是 **Lucide** 线性图标集(16/14px,实际描边约 1.33px,颜色为 `currentColor`)。我们提供 `components/icons/Icon.jsx`,内嵌产品用到的每个图形的 Lucide 原始路径数据。用法:`<Icon name="search" size={16}/>`。
|
|
45
|
+
- **Keybricks 自绘图标**:为 Keybricks 自行绘制的 13 个图标与 Lucide 图标一起放在核心集中——AI 类(`ai`、`ai-sparkles`)、模块类(`reconciliation`、`consolidation`、`journal`、`event`、`view-tree`)和操作类(`drilldown`、`add-below`、`copy-data`、`task-execution`、`time-future`、`time-restatement`)。新画图标之前,先在图标库里搜索:*hierarchy* 其实就是 `layers`,*change* 就是 `repeat`。
|
|
46
|
+
- **绘制规范**(所有核心图标,以及今后新增的图标):24×24 网格;路径限制在 2–22 范围内,描边后四周留 1px 边距;描边 2,圆头圆角,无填充,`currentColor`;坐标取整数;相互独立的元素之间至少留 2px 空隙;矩形圆角 rx 2,8px 及以下的小矩形用 rx 1。新增图标前,先在 14px 和 16px 下检查。
|
|
45
47
|
- 图标颜色跟随文字颜色(默认框架色 #525252,弱化态 #a1a1a1,彩色图标块内为对应分类色)。
|
|
46
48
|
- 彩色图标块是标志性元素:40×40 圆角 14(组件面板)、48×48 圆角 16(节点)、32×32 圆角 8 带细边框(列表行)——100 档浅色底 + 600 档分类色图标。
|
|
47
49
|
- 从不用 emoji 或 unicode 字符充当图标。
|
|
@@ -78,7 +80,6 @@ Keybricks 是面向财务团队的企业绩效管理(EPM)平台:文档与
|
|
|
78
80
|
- `styles.css` —— 全局 CSS 入口(引入所有 token 文件);`keybricks.css` —— 包的样式入口(token + 悬停钩子)。
|
|
79
81
|
- `assets/` —— keybricks-logo.png 与图标关键词索引。
|
|
80
82
|
- `guidelines/` —— 基础规范展示卡片(Design System 标签页)。
|
|
81
|
-
- `ui_kits/keybricks-app/` —— 可交互的产品复刻:首页、文档、管道编辑器、系统迁移。
|
|
82
83
|
- `SKILL.md` —— Agent 技能入口文件。
|
|
83
84
|
|
|
84
85
|
## 组件清单
|
package/tokens/alpha.css
CHANGED
|
@@ -15,9 +15,11 @@
|
|
|
15
15
|
--neutral-alpha-2:rgba(10,10,10,.02);--neutral-alpha-4:rgba(10,10,10,.04);--neutral-alpha-8:rgba(10,10,10,.08);--neutral-alpha-12:rgba(10,10,10,.12);--neutral-alpha-16:rgba(10,10,10,.16);--neutral-alpha-24:rgba(10,10,10,.24);--neutral-alpha-32:rgba(10,10,10,.32);--neutral-alpha-48:rgba(10,10,10,.48);--neutral-alpha-64:rgba(10,10,10,.64);--neutral-alpha-80:rgba(10,10,10,.8);
|
|
16
16
|
--brand-alpha-8:rgba(21,93,252,.08);--brand-alpha-12:rgba(21,93,252,.12);--brand-alpha-16:rgba(21,93,252,.16);--brand-alpha-24:rgba(21,93,252,.24);--brand-alpha-32:rgba(21,93,252,.32);
|
|
17
17
|
/* Semantic overlays built from the ramps above */
|
|
18
|
-
--overlay-hover:var(--neutral-alpha-4);--overlay-press:var(--neutral-alpha-
|
|
18
|
+
--overlay-hover:var(--neutral-alpha-4);--overlay-press:var(--neutral-alpha-12); /* on white these equal --bg-hover / --bg-press; on any other surface they darken it by the same step */
|
|
19
|
+
--overlay-selected:var(--brand-alpha-8);--overlay-drag:var(--brand-alpha-12);
|
|
19
20
|
}
|
|
20
21
|
[data-theme="dark"]{
|
|
21
22
|
--neutral-alpha-2:rgba(255,255,255,.02);--neutral-alpha-4:rgba(255,255,255,.04);--neutral-alpha-8:rgba(255,255,255,.08);--neutral-alpha-12:rgba(255,255,255,.12);--neutral-alpha-16:rgba(255,255,255,.16);--neutral-alpha-24:rgba(255,255,255,.24);--neutral-alpha-32:rgba(255,255,255,.32);--neutral-alpha-48:rgba(255,255,255,.48);--neutral-alpha-64:rgba(255,255,255,.64);--neutral-alpha-80:rgba(255,255,255,.8);
|
|
22
23
|
--brand-alpha-8:rgba(43,127,255,.1);--brand-alpha-12:rgba(43,127,255,.14);--brand-alpha-16:rgba(43,127,255,.2);--brand-alpha-24:rgba(43,127,255,.28);--brand-alpha-32:rgba(43,127,255,.36);
|
|
24
|
+
--overlay-hover:var(--neutral-alpha-8);--overlay-press:var(--neutral-alpha-16); /* dark: matches the --bg-hover / --bg-press steps on --bg-surface */
|
|
23
25
|
}
|
package/tokens/colors.css
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
--on-accent:#ffffff;
|
|
26
26
|
/* Foreground on the neutral "dark pill" (AI Assistant), which inverts in dark */
|
|
27
27
|
--action-dark-fg:#ffffff;
|
|
28
|
-
--border-card:rgba(229,229,229,.6);--border-control:var(--neutral-200);--border-subtle:var(--neutral-100);--border-strong:var(--neutral-300);
|
|
28
|
+
--border-card:rgba(229,229,229,.6);--border-control:var(--neutral-200);--border-split:var(--neutral-300);--border-subtle:var(--neutral-100);--border-strong:var(--neutral-300);
|
|
29
29
|
--action-primary:var(--blue-600);--action-primary-hover:var(--blue-700);--action-primary-active:#1039c4;--action-dark:var(--neutral-900);--action-dark-hover:var(--neutral-800);--action-dark-active:var(--neutral-950);
|
|
30
30
|
/* Press (active) fills — one step past the hover value in each family */
|
|
31
31
|
--bg-press:var(--neutral-200);--soft-active:var(--blue-200);--danger-active:var(--red-800);--danger-soft-hover:var(--red-100);--danger-soft-active:var(--red-200);
|
package/tokens/dark.css
CHANGED
|
@@ -20,7 +20,7 @@ color-scheme:dark;
|
|
|
20
20
|
--text-primary:#fafafa;--text-heading:#f5f5f5;--text-strong:#e5e5e5;--text-body:#d4d4d4;--text-secondary:#a1a1a1;--text-muted:#737373;--text-inverse:#0a0a0a;
|
|
21
21
|
--on-accent:#ffffff;--action-dark-fg:#0a0a0a;
|
|
22
22
|
/* Borders */
|
|
23
|
-
--border-card:rgba(255,255,255,.09);--border-control:#333333;--border-subtle:#242424;--border-strong:#454545;
|
|
23
|
+
--border-card:rgba(255,255,255,.09);--border-control:#333333;--border-split:#404040;--border-subtle:#242424;--border-strong:#454545;
|
|
24
24
|
/* Actions */
|
|
25
25
|
--action-primary:#1f6feb;--action-primary-hover:#2b7fff;--action-primary-active:#1a5ec9;--action-dark:#fafafa;--action-dark-hover:#e5e5e5;--action-dark-active:#d4d4d4;
|
|
26
26
|
/* Press (active) fills — one step past the hover value in each family */
|
package/tokens/layout.css
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
/* Size tiers — one scale that every control reads. A region (app root, toolbar, filter bar, form, table,
|
|
21
21
|
dialog, drawer) declares data-size="sm" | "md" | "lg"; everything inside inherits these values, so controls
|
|
22
22
|
that share a row can never disagree. md is the default; the rules below the :root block switch the tier.
|
|
23
|
-
sm
|
|
23
|
+
sm 28 · md 32 · lg 40 for controls (2.3.0: was 24 / 32 / 36); bars and rows are 8px taller; a bar inside a bordered card 16px taller. */
|
|
24
24
|
--control-h:32px; /* buttons, inputs, selects, search, steppers, segmented controls, chips, pagination items */
|
|
25
25
|
--control-text:var(--text-base);--control-leading:var(--leading-base);--control-tracking:var(--tracking-base); /* text inside controls and their labels */
|
|
26
26
|
--control-icon:16px; /* icon inside a control */
|
|
@@ -34,8 +34,10 @@
|
|
|
34
34
|
--check-size:16px; /* checkbox and radio box */
|
|
35
35
|
--tag-h:24px; /* Tag */
|
|
36
36
|
--switch-w:36px;--switch-h:20px; /* Switch track */
|
|
37
|
+
/* Two-line title cell (Table column `twoLine`): row padding, title → description gap, icon tile, tile → text gap. md row = 10 + 20 + 2 + 16 + 10 = 58px */
|
|
38
|
+
--title-cell-py:10px;--title-cell-gap:2px;--title-cell-tile:32px;--title-cell-icon:16px;--title-cell-tile-r:8px;--title-cell-tile-gap:12px;
|
|
37
39
|
/* Compatibility aliases — superseded by the tier tokens above */
|
|
38
|
-
--h-button:var(--control-h);--h-input:var(--control-h);--h-button-sm:
|
|
40
|
+
--h-button:var(--control-h);--h-input:var(--control-h);--h-button-sm:28px;
|
|
39
41
|
/* Page rhythm */
|
|
40
42
|
--page-pad-y:24px;--page-pad-x:32px;--section-gap:24px;--card-pad:21px;--card-pad-sm:17px;
|
|
41
43
|
/* Stacking */
|
|
@@ -47,6 +49,6 @@
|
|
|
47
49
|
--z-tooltip:100; /* @kind other */
|
|
48
50
|
}
|
|
49
51
|
/* The three tiers. Declared after :root so a tier set on <html> itself also wins. */
|
|
50
|
-
[data-size="sm"]{--control-h:
|
|
51
|
-
[data-size="md"]{--control-h:32px;--control-text:var(--text-base);--control-leading:var(--leading-base);--control-tracking:var(--tracking-base);--control-icon:16px;--control-px:12px;--control-gap:8px;--group-gap:16px;--bar-h:40px;--bar-card-h:48px;--edge-pad:16px;--cell-px:12px;--check-size:16px;--tag-h:24px;--switch-w:36px;--switch-h:20px}
|
|
52
|
-
[data-size="lg"]{--control-h:
|
|
52
|
+
[data-size="sm"]{--control-h:28px;--control-text:var(--text-xs);--control-leading:var(--leading-xs);--control-tracking:var(--tracking-xs);--control-icon:14px;--control-px:8px;--control-gap:8px;--group-gap:12px;--bar-h:36px;--bar-card-h:44px;--edge-pad:12px;--cell-px:8px;--check-size:14px;--tag-h:20px;--switch-w:28px;--switch-h:16px;--text-code:11px;--leading-code:16px;--title-cell-py:8px;--title-cell-gap:2px;--title-cell-tile:28px;--title-cell-icon:14px;--title-cell-tile-r:8px;--title-cell-tile-gap:8px}
|
|
53
|
+
[data-size="md"]{--control-h:32px;--control-text:var(--text-base);--control-leading:var(--leading-base);--control-tracking:var(--tracking-base);--control-icon:16px;--control-px:12px;--control-gap:8px;--group-gap:16px;--bar-h:40px;--bar-card-h:48px;--edge-pad:16px;--cell-px:12px;--check-size:16px;--tag-h:24px;--switch-w:36px;--switch-h:20px;--text-code:12px;--leading-code:18px;--title-cell-py:10px;--title-cell-gap:2px;--title-cell-tile:32px;--title-cell-icon:16px;--title-cell-tile-r:8px;--title-cell-tile-gap:12px}
|
|
54
|
+
[data-size="lg"]{--control-h:40px;--control-text:var(--text-base);--control-leading:var(--leading-base);--control-tracking:var(--tracking-base);--control-icon:16px;--control-px:16px;--control-gap:8px;--group-gap:24px;--bar-h:48px;--bar-card-h:56px;--edge-pad:16px;--cell-px:16px;--check-size:16px;--tag-h:28px;--switch-w:44px;--switch-h:24px;--text-code:12px;--leading-code:18px;--title-cell-py:14px;--title-cell-gap:4px;--title-cell-tile:40px;--title-cell-icon:20px;--title-cell-tile-r:10px;--title-cell-tile-gap:12px}
|
package/tokens/tokens.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export type TokenName =
|
|
|
42
42
|
| "--blue-950"
|
|
43
43
|
| "--border-card"
|
|
44
44
|
| "--border-control"
|
|
45
|
+
| "--border-split"
|
|
45
46
|
| "--border-strong"
|
|
46
47
|
| "--border-subtle"
|
|
47
48
|
| "--brand-alpha-12"
|
|
@@ -167,6 +168,7 @@ export type TokenName =
|
|
|
167
168
|
| "--leading-3xl"
|
|
168
169
|
| "--leading-4xl"
|
|
169
170
|
| "--leading-base"
|
|
171
|
+
| "--leading-code"
|
|
170
172
|
| "--leading-display"
|
|
171
173
|
| "--leading-lg"
|
|
172
174
|
| "--leading-md"
|
|
@@ -306,11 +308,14 @@ export type TokenName =
|
|
|
306
308
|
| "--teal-950"
|
|
307
309
|
| "--text-2xl"
|
|
308
310
|
| "--text-2xs"
|
|
311
|
+
| "--text-2xs-mono"
|
|
309
312
|
| "--text-3xl"
|
|
310
313
|
| "--text-4xl"
|
|
311
314
|
| "--text-base"
|
|
312
315
|
| "--text-body"
|
|
316
|
+
| "--text-code"
|
|
313
317
|
| "--text-display"
|
|
318
|
+
| "--text-glyph-min"
|
|
314
319
|
| "--text-heading"
|
|
315
320
|
| "--text-inverse"
|
|
316
321
|
| "--text-lg"
|
|
@@ -323,6 +328,12 @@ export type TokenName =
|
|
|
323
328
|
| "--text-strong"
|
|
324
329
|
| "--text-xl"
|
|
325
330
|
| "--text-xs"
|
|
331
|
+
| "--title-cell-gap"
|
|
332
|
+
| "--title-cell-icon"
|
|
333
|
+
| "--title-cell-py"
|
|
334
|
+
| "--title-cell-tile"
|
|
335
|
+
| "--title-cell-tile-gap"
|
|
336
|
+
| "--title-cell-tile-r"
|
|
326
337
|
| "--tooltip-bg"
|
|
327
338
|
| "--tooltip-fg"
|
|
328
339
|
| "--topbar-h"
|
|
@@ -395,6 +406,7 @@ export type TokenKey =
|
|
|
395
406
|
| "blue950"
|
|
396
407
|
| "borderCard"
|
|
397
408
|
| "borderControl"
|
|
409
|
+
| "borderSplit"
|
|
398
410
|
| "borderStrong"
|
|
399
411
|
| "borderSubtle"
|
|
400
412
|
| "brandAlpha12"
|
|
@@ -520,6 +532,7 @@ export type TokenKey =
|
|
|
520
532
|
| "leading3xl"
|
|
521
533
|
| "leading4xl"
|
|
522
534
|
| "leadingBase"
|
|
535
|
+
| "leadingCode"
|
|
523
536
|
| "leadingDisplay"
|
|
524
537
|
| "leadingLg"
|
|
525
538
|
| "leadingMd"
|
|
@@ -659,11 +672,14 @@ export type TokenKey =
|
|
|
659
672
|
| "teal950"
|
|
660
673
|
| "text2xl"
|
|
661
674
|
| "text2xs"
|
|
675
|
+
| "text2xsMono"
|
|
662
676
|
| "text3xl"
|
|
663
677
|
| "text4xl"
|
|
664
678
|
| "textBase"
|
|
665
679
|
| "textBody"
|
|
680
|
+
| "textCode"
|
|
666
681
|
| "textDisplay"
|
|
682
|
+
| "textGlyphMin"
|
|
667
683
|
| "textHeading"
|
|
668
684
|
| "textInverse"
|
|
669
685
|
| "textLg"
|
|
@@ -676,6 +692,12 @@ export type TokenKey =
|
|
|
676
692
|
| "textStrong"
|
|
677
693
|
| "textXl"
|
|
678
694
|
| "textXs"
|
|
695
|
+
| "titleCellGap"
|
|
696
|
+
| "titleCellIcon"
|
|
697
|
+
| "titleCellPy"
|
|
698
|
+
| "titleCellTile"
|
|
699
|
+
| "titleCellTileGap"
|
|
700
|
+
| "titleCellTileR"
|
|
679
701
|
| "tooltipBg"
|
|
680
702
|
| "tooltipFg"
|
|
681
703
|
| "topbarH"
|
package/tokens/tokens.js
CHANGED
|
@@ -45,6 +45,7 @@ export const cssVar = {
|
|
|
45
45
|
blue950: "var(--blue-950)",
|
|
46
46
|
borderCard: "var(--border-card)",
|
|
47
47
|
borderControl: "var(--border-control)",
|
|
48
|
+
borderSplit: "var(--border-split)",
|
|
48
49
|
borderStrong: "var(--border-strong)",
|
|
49
50
|
borderSubtle: "var(--border-subtle)",
|
|
50
51
|
brandAlpha12: "var(--brand-alpha-12)",
|
|
@@ -170,6 +171,7 @@ export const cssVar = {
|
|
|
170
171
|
leading3xl: "var(--leading-3xl)",
|
|
171
172
|
leading4xl: "var(--leading-4xl)",
|
|
172
173
|
leadingBase: "var(--leading-base)",
|
|
174
|
+
leadingCode: "var(--leading-code)",
|
|
173
175
|
leadingDisplay: "var(--leading-display)",
|
|
174
176
|
leadingLg: "var(--leading-lg)",
|
|
175
177
|
leadingMd: "var(--leading-md)",
|
|
@@ -309,11 +311,14 @@ export const cssVar = {
|
|
|
309
311
|
teal950: "var(--teal-950)",
|
|
310
312
|
text2xl: "var(--text-2xl)",
|
|
311
313
|
text2xs: "var(--text-2xs)",
|
|
314
|
+
text2xsMono: "var(--text-2xs-mono)",
|
|
312
315
|
text3xl: "var(--text-3xl)",
|
|
313
316
|
text4xl: "var(--text-4xl)",
|
|
314
317
|
textBase: "var(--text-base)",
|
|
315
318
|
textBody: "var(--text-body)",
|
|
319
|
+
textCode: "var(--text-code)",
|
|
316
320
|
textDisplay: "var(--text-display)",
|
|
321
|
+
textGlyphMin: "var(--text-glyph-min)",
|
|
317
322
|
textHeading: "var(--text-heading)",
|
|
318
323
|
textInverse: "var(--text-inverse)",
|
|
319
324
|
textLg: "var(--text-lg)",
|
|
@@ -326,6 +331,12 @@ export const cssVar = {
|
|
|
326
331
|
textStrong: "var(--text-strong)",
|
|
327
332
|
textXl: "var(--text-xl)",
|
|
328
333
|
textXs: "var(--text-xs)",
|
|
334
|
+
titleCellGap: "var(--title-cell-gap)",
|
|
335
|
+
titleCellIcon: "var(--title-cell-icon)",
|
|
336
|
+
titleCellPy: "var(--title-cell-py)",
|
|
337
|
+
titleCellTile: "var(--title-cell-tile)",
|
|
338
|
+
titleCellTileGap: "var(--title-cell-tile-gap)",
|
|
339
|
+
titleCellTileR: "var(--title-cell-tile-r)",
|
|
329
340
|
tooltipBg: "var(--tooltip-bg)",
|
|
330
341
|
tooltipFg: "var(--tooltip-fg)",
|
|
331
342
|
topbarH: "var(--topbar-h)",
|
|
@@ -400,6 +411,7 @@ export const light = {
|
|
|
400
411
|
blue950: "#162456",
|
|
401
412
|
borderCard: "rgba(229,229,229,.6)",
|
|
402
413
|
borderControl: "#e5e5e5",
|
|
414
|
+
borderSplit: "#d4d4d4",
|
|
403
415
|
borderStrong: "#d4d4d4",
|
|
404
416
|
borderSubtle: "#f5f5f5",
|
|
405
417
|
brandAlpha12: "rgba(21,93,252,.12)",
|
|
@@ -493,7 +505,7 @@ export const light = {
|
|
|
493
505
|
fontSans: "'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif",
|
|
494
506
|
groupGap: "16px",
|
|
495
507
|
hButton: "32px",
|
|
496
|
-
hButtonSm: "
|
|
508
|
+
hButtonSm: "28px",
|
|
497
509
|
hInput: "32px",
|
|
498
510
|
hNavItem: "36px",
|
|
499
511
|
hSubnavItem: "32px",
|
|
@@ -525,6 +537,7 @@ export const light = {
|
|
|
525
537
|
leading3xl: "46px",
|
|
526
538
|
leading4xl: "56px",
|
|
527
539
|
leadingBase: "20px",
|
|
540
|
+
leadingCode: "18px",
|
|
528
541
|
leadingDisplay: "68px",
|
|
529
542
|
leadingLg: "28px",
|
|
530
543
|
leadingMd: "24px",
|
|
@@ -570,7 +583,7 @@ export const light = {
|
|
|
570
583
|
orange950: "#461700",
|
|
571
584
|
overlayDrag: "rgba(21,93,252,.12)",
|
|
572
585
|
overlayHover: "rgba(10,10,10,.04)",
|
|
573
|
-
overlayPress: "rgba(10,10,10,.
|
|
586
|
+
overlayPress: "rgba(10,10,10,.12)",
|
|
574
587
|
overlaySelected: "rgba(21,93,252,.08)",
|
|
575
588
|
pagePadX: "32px",
|
|
576
589
|
pagePadY: "24px",
|
|
@@ -664,11 +677,14 @@ export const light = {
|
|
|
664
677
|
teal950: "#002f2a",
|
|
665
678
|
text2xl: "30px",
|
|
666
679
|
text2xs: "11px",
|
|
680
|
+
text2xsMono: "11px",
|
|
667
681
|
text3xl: "38px",
|
|
668
682
|
text4xl: "48px",
|
|
669
683
|
textBase: "14px",
|
|
670
684
|
textBody: "#525252",
|
|
685
|
+
textCode: "12px",
|
|
671
686
|
textDisplay: "60px",
|
|
687
|
+
textGlyphMin: "11px",
|
|
672
688
|
textHeading: "#171717",
|
|
673
689
|
textInverse: "#ffffff",
|
|
674
690
|
textLg: "20px",
|
|
@@ -681,6 +697,12 @@ export const light = {
|
|
|
681
697
|
textStrong: "#404040",
|
|
682
698
|
textXl: "24px",
|
|
683
699
|
textXs: "12px",
|
|
700
|
+
titleCellGap: "2px",
|
|
701
|
+
titleCellIcon: "16px",
|
|
702
|
+
titleCellPy: "10px",
|
|
703
|
+
titleCellTile: "32px",
|
|
704
|
+
titleCellTileGap: "12px",
|
|
705
|
+
titleCellTileR: "8px",
|
|
684
706
|
tooltipBg: "#171717",
|
|
685
707
|
tooltipFg: "#ffffff",
|
|
686
708
|
topbarH: "56px",
|
|
@@ -755,6 +777,7 @@ export const dark = {
|
|
|
755
777
|
blue950: "#162456",
|
|
756
778
|
borderCard: "rgba(255,255,255,.09)",
|
|
757
779
|
borderControl: "#333333",
|
|
780
|
+
borderSplit: "#404040",
|
|
758
781
|
borderStrong: "#454545",
|
|
759
782
|
borderSubtle: "#242424",
|
|
760
783
|
brandAlpha12: "rgba(43,127,255,.14)",
|
|
@@ -848,7 +871,7 @@ export const dark = {
|
|
|
848
871
|
fontSans: "'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif",
|
|
849
872
|
groupGap: "16px",
|
|
850
873
|
hButton: "32px",
|
|
851
|
-
hButtonSm: "
|
|
874
|
+
hButtonSm: "28px",
|
|
852
875
|
hInput: "32px",
|
|
853
876
|
hNavItem: "36px",
|
|
854
877
|
hSubnavItem: "32px",
|
|
@@ -880,6 +903,7 @@ export const dark = {
|
|
|
880
903
|
leading3xl: "46px",
|
|
881
904
|
leading4xl: "56px",
|
|
882
905
|
leadingBase: "20px",
|
|
906
|
+
leadingCode: "18px",
|
|
883
907
|
leadingDisplay: "68px",
|
|
884
908
|
leadingLg: "28px",
|
|
885
909
|
leadingMd: "24px",
|
|
@@ -924,8 +948,8 @@ export const dark = {
|
|
|
924
948
|
orange900: "#612300",
|
|
925
949
|
orange950: "#461700",
|
|
926
950
|
overlayDrag: "rgba(43,127,255,.14)",
|
|
927
|
-
overlayHover: "rgba(255,255,255,.
|
|
928
|
-
overlayPress: "rgba(255,255,255,.
|
|
951
|
+
overlayHover: "rgba(255,255,255,.08)",
|
|
952
|
+
overlayPress: "rgba(255,255,255,.16)",
|
|
929
953
|
overlaySelected: "rgba(43,127,255,.1)",
|
|
930
954
|
pagePadX: "32px",
|
|
931
955
|
pagePadY: "24px",
|
|
@@ -1019,11 +1043,14 @@ export const dark = {
|
|
|
1019
1043
|
teal950: "#002f2a",
|
|
1020
1044
|
text2xl: "30px",
|
|
1021
1045
|
text2xs: "11px",
|
|
1046
|
+
text2xsMono: "11px",
|
|
1022
1047
|
text3xl: "38px",
|
|
1023
1048
|
text4xl: "48px",
|
|
1024
1049
|
textBase: "14px",
|
|
1025
1050
|
textBody: "#d4d4d4",
|
|
1051
|
+
textCode: "12px",
|
|
1026
1052
|
textDisplay: "60px",
|
|
1053
|
+
textGlyphMin: "11px",
|
|
1027
1054
|
textHeading: "#f5f5f5",
|
|
1028
1055
|
textInverse: "#0a0a0a",
|
|
1029
1056
|
textLg: "20px",
|
|
@@ -1036,6 +1063,12 @@ export const dark = {
|
|
|
1036
1063
|
textStrong: "#e5e5e5",
|
|
1037
1064
|
textXl: "24px",
|
|
1038
1065
|
textXs: "12px",
|
|
1066
|
+
titleCellGap: "2px",
|
|
1067
|
+
titleCellIcon: "16px",
|
|
1068
|
+
titleCellPy: "10px",
|
|
1069
|
+
titleCellTile: "32px",
|
|
1070
|
+
titleCellTileGap: "12px",
|
|
1071
|
+
titleCellTileR: "8px",
|
|
1039
1072
|
tooltipBg: "#f5f5f5",
|
|
1040
1073
|
tooltipFg: "#0a0a0a",
|
|
1041
1074
|
topbarH: "56px",
|
|
@@ -1067,6 +1100,6 @@ export const dark = {
|
|
|
1067
1100
|
zTooltip: "100",
|
|
1068
1101
|
};
|
|
1069
1102
|
|
|
1070
|
-
export const tokenNames = ["--action-dark","--action-dark-active","--action-dark-fg","--action-dark-hover","--action-primary","--action-primary-active","--action-primary-hover","--amber-100","--amber-200","--amber-300","--amber-400","--amber-50","--amber-500","--amber-600","--amber-700","--amber-800","--amber-900","--amber-950","--bar-card-h","--bar-h","--bg-active","--bg-app","--bg-hover","--bg-inset","--bg-press","--bg-raised","--bg-scrim","--bg-surface","--bg-table-header","--blue-100","--blue-200","--blue-300","--blue-400","--blue-50","--blue-500","--blue-600","--blue-700","--blue-800","--blue-900","--blue-950","--border-card","--border-control","--border-strong","--border-subtle","--brand-alpha-12","--brand-alpha-16","--brand-alpha-24","--brand-alpha-32","--brand-alpha-8","--card-pad","--card-pad-sm","--cat-join","--cat-join-bg","--cat-merge","--cat-merge-bg","--cat-output","--cat-output-bg","--cat-source","--cat-source-bg","--cat-transform","--cat-transform-bg","--cell-px","--chart-area-alpha","--chart-axis","--chart-blue","--chart-grid","--chart-guide","--chart-heat-1","--chart-heat-2","--chart-heat-3","--chart-heat-4","--chart-heat-5","--chart-heat-ink","--chart-label","--chart-neg","--chart-pos","--chart-total","--chart-track","--check-size","--checkbox-border","--control-gap","--control-h","--control-icon","--control-leading","--control-px","--control-text","--control-tracking","--cyan-100","--cyan-200","--cyan-300","--cyan-400","--cyan-50","--cyan-500","--cyan-600","--cyan-700","--cyan-800","--cyan-900","--cyan-950","--danger","--danger-active","--danger-bg","--danger-soft-active","--danger-soft-hover","--danger-text","--dot-neutral","--drawer-h","--dropzone-border","--dropzone-border-hover","--dur","--dur-fast","--dur-instant","--dur-slow","--dur-slower","--ease-in","--ease-in-out","--ease-out","--edge","--edge-pad","--emerald-100","--emerald-200","--emerald-300","--emerald-400","--emerald-50","--emerald-500","--emerald-600","--emerald-700","--emerald-800","--emerald-900","--emerald-950","--focus-border","--focus-ring","--font-mono","--font-sans","--group-gap","--h-button","--h-button-sm","--h-input","--h-nav-item","--h-subnav-item","--h-tree-item","--hue-amber-bg","--hue-amber-fg","--hue-blue-bg","--hue-blue-fg","--hue-cyan-bg","--hue-cyan-fg","--hue-gray-bg","--hue-gray-fg","--hue-green-bg","--hue-green-fg","--hue-orange-bg","--hue-orange-fg","--hue-pink-bg","--hue-pink-fg","--hue-purple-bg","--hue-purple-fg","--hue-red-bg","--hue-red-fg","--hue-teal-bg","--hue-teal-fg","--info-bg","--info-fg","--leading-2xl","--leading-2xs","--leading-3xl","--leading-4xl","--leading-base","--leading-display","--leading-lg","--leading-md","--leading-num","--leading-sm","--leading-xl","--leading-xs","--link","--link-hover","--neutral-0","--neutral-100","--neutral-200","--neutral-300","--neutral-400","--neutral-50","--neutral-500","--neutral-600","--neutral-700","--neutral-800","--neutral-900","--neutral-950","--neutral-alpha-12","--neutral-alpha-16","--neutral-alpha-2","--neutral-alpha-24","--neutral-alpha-32","--neutral-alpha-4","--neutral-alpha-48","--neutral-alpha-64","--neutral-alpha-8","--neutral-alpha-80","--on-accent","--orange-100","--orange-200","--orange-300","--orange-400","--orange-50","--orange-500","--orange-600","--orange-700","--orange-800","--orange-900","--orange-950","--overlay-drag","--overlay-hover","--overlay-press","--overlay-selected","--page-pad-x","--page-pad-y","--panel-w","--pink-100","--pink-200","--pink-300","--pink-400","--pink-50","--pink-500","--pink-600","--pink-700","--pink-800","--pink-900","--pink-950","--port-border","--press-filter","--press-filter-strong","--purple-100","--purple-200","--purple-300","--purple-400","--purple-50","--purple-500","--purple-600","--purple-700","--purple-800","--purple-900","--purple-950","--radius-full","--radius-lg","--radius-md","--radius-node","--radius-sm","--radius-tile","--rail-w","--red-100","--red-200","--red-300","--red-400","--red-50","--red-500","--red-600","--red-700","--red-800","--red-900","--red-950","--ring-focus","--ring-surface","--section-gap","--selected-border","--series-1","--series-10","--series-2","--series-3","--series-4","--series-5","--series-6","--series-7","--series-8","--series-9","--shadow-menu","--shadow-modal","--shadow-node","--shadow-selected","--sidebar-w","--skeleton","--soft-active","--soft-bg","--soft-border","--soft-hover","--success","--success-bg","--success-strong","--success-text","--switch-h","--switch-w","--t-hover","--t-theme","--tag-h","--teal-100","--teal-200","--teal-300","--teal-400","--teal-50","--teal-500","--teal-600","--teal-700","--teal-800","--teal-900","--teal-950","--text-2xl","--text-2xs","--text-3xl","--text-4xl","--text-base","--text-body","--text-display","--text-heading","--text-inverse","--text-lg","--text-md","--text-muted","--text-num","--text-primary","--text-secondary","--text-sm","--text-strong","--text-xl","--text-xs","--tooltip-bg","--tooltip-fg","--topbar-h","--track","--tracking-2xl","--tracking-2xs","--tracking-3xl","--tracking-4xl","--tracking-base","--tracking-display","--tracking-lg","--tracking-md","--tracking-num","--tracking-sm","--tracking-xl","--tracking-xs","--warning","--warning-bg","--warning-text","--weight-light","--weight-medium","--weight-regular","--weight-semibold","--z-drawer","--z-menu","--z-modal","--z-sticky","--z-toast","--z-tooltip"];
|
|
1103
|
+
export const tokenNames = ["--action-dark","--action-dark-active","--action-dark-fg","--action-dark-hover","--action-primary","--action-primary-active","--action-primary-hover","--amber-100","--amber-200","--amber-300","--amber-400","--amber-50","--amber-500","--amber-600","--amber-700","--amber-800","--amber-900","--amber-950","--bar-card-h","--bar-h","--bg-active","--bg-app","--bg-hover","--bg-inset","--bg-press","--bg-raised","--bg-scrim","--bg-surface","--bg-table-header","--blue-100","--blue-200","--blue-300","--blue-400","--blue-50","--blue-500","--blue-600","--blue-700","--blue-800","--blue-900","--blue-950","--border-card","--border-control","--border-split","--border-strong","--border-subtle","--brand-alpha-12","--brand-alpha-16","--brand-alpha-24","--brand-alpha-32","--brand-alpha-8","--card-pad","--card-pad-sm","--cat-join","--cat-join-bg","--cat-merge","--cat-merge-bg","--cat-output","--cat-output-bg","--cat-source","--cat-source-bg","--cat-transform","--cat-transform-bg","--cell-px","--chart-area-alpha","--chart-axis","--chart-blue","--chart-grid","--chart-guide","--chart-heat-1","--chart-heat-2","--chart-heat-3","--chart-heat-4","--chart-heat-5","--chart-heat-ink","--chart-label","--chart-neg","--chart-pos","--chart-total","--chart-track","--check-size","--checkbox-border","--control-gap","--control-h","--control-icon","--control-leading","--control-px","--control-text","--control-tracking","--cyan-100","--cyan-200","--cyan-300","--cyan-400","--cyan-50","--cyan-500","--cyan-600","--cyan-700","--cyan-800","--cyan-900","--cyan-950","--danger","--danger-active","--danger-bg","--danger-soft-active","--danger-soft-hover","--danger-text","--dot-neutral","--drawer-h","--dropzone-border","--dropzone-border-hover","--dur","--dur-fast","--dur-instant","--dur-slow","--dur-slower","--ease-in","--ease-in-out","--ease-out","--edge","--edge-pad","--emerald-100","--emerald-200","--emerald-300","--emerald-400","--emerald-50","--emerald-500","--emerald-600","--emerald-700","--emerald-800","--emerald-900","--emerald-950","--focus-border","--focus-ring","--font-mono","--font-sans","--group-gap","--h-button","--h-button-sm","--h-input","--h-nav-item","--h-subnav-item","--h-tree-item","--hue-amber-bg","--hue-amber-fg","--hue-blue-bg","--hue-blue-fg","--hue-cyan-bg","--hue-cyan-fg","--hue-gray-bg","--hue-gray-fg","--hue-green-bg","--hue-green-fg","--hue-orange-bg","--hue-orange-fg","--hue-pink-bg","--hue-pink-fg","--hue-purple-bg","--hue-purple-fg","--hue-red-bg","--hue-red-fg","--hue-teal-bg","--hue-teal-fg","--info-bg","--info-fg","--leading-2xl","--leading-2xs","--leading-3xl","--leading-4xl","--leading-base","--leading-code","--leading-display","--leading-lg","--leading-md","--leading-num","--leading-sm","--leading-xl","--leading-xs","--link","--link-hover","--neutral-0","--neutral-100","--neutral-200","--neutral-300","--neutral-400","--neutral-50","--neutral-500","--neutral-600","--neutral-700","--neutral-800","--neutral-900","--neutral-950","--neutral-alpha-12","--neutral-alpha-16","--neutral-alpha-2","--neutral-alpha-24","--neutral-alpha-32","--neutral-alpha-4","--neutral-alpha-48","--neutral-alpha-64","--neutral-alpha-8","--neutral-alpha-80","--on-accent","--orange-100","--orange-200","--orange-300","--orange-400","--orange-50","--orange-500","--orange-600","--orange-700","--orange-800","--orange-900","--orange-950","--overlay-drag","--overlay-hover","--overlay-press","--overlay-selected","--page-pad-x","--page-pad-y","--panel-w","--pink-100","--pink-200","--pink-300","--pink-400","--pink-50","--pink-500","--pink-600","--pink-700","--pink-800","--pink-900","--pink-950","--port-border","--press-filter","--press-filter-strong","--purple-100","--purple-200","--purple-300","--purple-400","--purple-50","--purple-500","--purple-600","--purple-700","--purple-800","--purple-900","--purple-950","--radius-full","--radius-lg","--radius-md","--radius-node","--radius-sm","--radius-tile","--rail-w","--red-100","--red-200","--red-300","--red-400","--red-50","--red-500","--red-600","--red-700","--red-800","--red-900","--red-950","--ring-focus","--ring-surface","--section-gap","--selected-border","--series-1","--series-10","--series-2","--series-3","--series-4","--series-5","--series-6","--series-7","--series-8","--series-9","--shadow-menu","--shadow-modal","--shadow-node","--shadow-selected","--sidebar-w","--skeleton","--soft-active","--soft-bg","--soft-border","--soft-hover","--success","--success-bg","--success-strong","--success-text","--switch-h","--switch-w","--t-hover","--t-theme","--tag-h","--teal-100","--teal-200","--teal-300","--teal-400","--teal-50","--teal-500","--teal-600","--teal-700","--teal-800","--teal-900","--teal-950","--text-2xl","--text-2xs","--text-2xs-mono","--text-3xl","--text-4xl","--text-base","--text-body","--text-code","--text-display","--text-glyph-min","--text-heading","--text-inverse","--text-lg","--text-md","--text-muted","--text-num","--text-primary","--text-secondary","--text-sm","--text-strong","--text-xl","--text-xs","--title-cell-gap","--title-cell-icon","--title-cell-py","--title-cell-tile","--title-cell-tile-gap","--title-cell-tile-r","--tooltip-bg","--tooltip-fg","--topbar-h","--track","--tracking-2xl","--tracking-2xs","--tracking-3xl","--tracking-4xl","--tracking-base","--tracking-display","--tracking-lg","--tracking-md","--tracking-num","--tracking-sm","--tracking-xl","--tracking-xs","--warning","--warning-bg","--warning-text","--weight-light","--weight-medium","--weight-regular","--weight-semibold","--z-drawer","--z-menu","--z-modal","--z-sticky","--z-toast","--z-tooltip"];
|
|
1071
1104
|
|
|
1072
1105
|
export default { cssVar, light, dark, tokenNames };
|