medesign 0.0.0-stage → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +128 -2
  3. package/bin/medesign.js +200 -0
  4. package/integrations/claude-code/SKILL.md +20 -0
  5. package/integrations/cursor/medesign.mdc +26 -0
  6. package/medesign.config.js +46 -0
  7. package/package.json +62 -4
  8. package/presets/apple/design-tokens.css +115 -0
  9. package/presets/apple/guidelines.md +19 -0
  10. package/presets/apple/preset.json +53 -0
  11. package/presets/metha/design-tokens.css +127 -0
  12. package/presets/metha/guidelines.md +23 -0
  13. package/presets/metha/preset.json +53 -0
  14. package/presets/schema.json +102 -0
  15. package/presets/tesla/design-tokens.css +112 -0
  16. package/presets/tesla/guidelines.md +17 -0
  17. package/presets/tesla/preset.json +53 -0
  18. package/references/ai-tells.md +127 -0
  19. package/references/appendices.md +220 -0
  20. package/references/architecture.md +39 -0
  21. package/references/argon-design-archetypes.md +317 -0
  22. package/references/banner-sizes-and-styles.md +118 -0
  23. package/references/block-library.md +61 -0
  24. package/references/brand-design-tokens.md +42 -0
  25. package/references/catalog.json +108 -0
  26. package/references/cip-deliverable-guide.md +95 -0
  27. package/references/cip-design.md +121 -0
  28. package/references/cip-prompt-engineering.md +84 -0
  29. package/references/cip-style-guide.md +68 -0
  30. package/references/cli-architecture.md +146 -0
  31. package/references/components.md +240 -0
  32. package/references/dark-mode.md +23 -0
  33. package/references/design-core.md +42 -0
  34. package/references/design-md-protocol.md +75 -0
  35. package/references/design-routing.md +207 -0
  36. package/references/eng-imagery-content.md +71 -0
  37. package/references/eng-layout.md +28 -0
  38. package/references/eng-other.md +26 -0
  39. package/references/eng-states-theme.md +22 -0
  40. package/references/eng-type-color.md +44 -0
  41. package/references/icon-design.md +122 -0
  42. package/references/image-mockup-direction.md +53 -0
  43. package/references/image-to-code.md +46 -0
  44. package/references/impeccable-polish.md +85 -0
  45. package/references/intake.md +90 -0
  46. package/references/logo-color-psychology.md +101 -0
  47. package/references/logo-design.md +110 -0
  48. package/references/logo-prompt-engineering.md +158 -0
  49. package/references/logo-style-guide.md +109 -0
  50. package/references/mesurv-dna.md +104 -0
  51. package/references/micro-interactions-and-auto-animate.md +71 -0
  52. package/references/modern-craft-invariants.md +332 -0
  53. package/references/motion-tokens.md +99 -0
  54. package/references/preflight.md +110 -0
  55. package/references/proactive-motion.md +167 -0
  56. package/references/quality-gate.md +147 -0
  57. package/references/redesign-audit.md +38 -0
  58. package/references/redesign.md +52 -0
  59. package/references/slides-copywriting-formulas.md +84 -0
  60. package/references/slides-create.md +4 -0
  61. package/references/slides-html-template.md +295 -0
  62. package/references/slides-layout-patterns.md +137 -0
  63. package/references/slides-strategies.md +94 -0
  64. package/references/slides.md +42 -0
  65. package/references/social-photos-design.md +329 -0
  66. package/references/spatial-canvas-engine.md +160 -0
  67. package/references/stitch-system.md +184 -0
  68. package/references/style-extraction.md +17 -0
  69. package/references/styles/brutalist.md +88 -0
  70. package/references/styles/minimalist.md +81 -0
  71. package/references/styles/soft.md +94 -0
  72. package/references/threeui-spatial-engine.md +224 -0
  73. package/references/ui-styling-shadcn.md +336 -0
  74. package/references/ui-ux-vocabulary-vault.json +1223 -0
  75. package/references/ui-ux-vocabulary-vault.md +438 -0
  76. package/references/vocab-protocol.md +52 -0
  77. package/references/vocabulary.md +78 -0
  78. package/scripts/export-tokens.js +403 -0
  79. package/tests/browser-audit.js +442 -0
  80. package/tests/linter.js +412 -0
  81. package/tests/schemas/sarif-2.1.0.schema.json +2915 -0
  82. package/tests/visual-testbed.html +681 -0
@@ -0,0 +1,53 @@
1
+ {
2
+ "$schema": "../schema.json",
3
+ "id": "apple",
4
+ "name": "Apple Human Interface & Product Showcase",
5
+ "version": "1.0.0",
6
+ "archetype": "Archetype 02: High-End Hardware Showcase",
7
+ "description": "Cupertino optical precision: generous negative space, concentric squircles, frosted vibrancy glass, and restrained typographic hierarchy.",
8
+ "typography": {
9
+ "display": "-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', sans-serif",
10
+ "sans": "-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Inter', sans-serif",
11
+ "mono": "'SF Mono', 'Menlo', 'Fira Code', monospace",
12
+ "headingTracking": "-0.022em",
13
+ "uiLineHeight": "1.28",
14
+ "proseLineHeight": "1.65",
15
+ "thaiHeadroom": "3px"
16
+ },
17
+ "color": {
18
+ "canvas": "#000000",
19
+ "surfaceRaised": "#1c1c1e",
20
+ "surfaceInset": "#161618",
21
+ "borderSubtle": "rgba(255, 255, 255, 0.12)",
22
+ "borderFocus": "oklch(0.62 0.22 255)",
23
+ "accent": "oklch(0.58 0.22 255)",
24
+ "accentForeground": "#ffffff",
25
+ "status": {
26
+ "info": "oklch(0.65 0.18 245)",
27
+ "success": "oklch(0.70 0.19 145)",
28
+ "warning": "oklch(0.78 0.18 70)",
29
+ "critical": "oklch(0.62 0.22 25)"
30
+ }
31
+ },
32
+ "geometry": {
33
+ "radiusBase": "16px",
34
+ "radiusOuter": "24px",
35
+ "concentricFormula": "max(0px, 24px - 1px - 8px) = 15px",
36
+ "scalingFormula": "clamp(0.96, 1 - 2.5/max(W, H), 0.995)",
37
+ "hitTargetMinTouch": "44px"
38
+ },
39
+ "motion": {
40
+ "profile": "soft-settle",
41
+ "durationEntry": "240ms",
42
+ "durationExit": "160ms",
43
+ "easingEntry": "cubic-bezier(0.16, 1, 0.3, 1)",
44
+ "easingExit": "cubic-bezier(0.4, 0, 0.7, 0.2)"
45
+ },
46
+ "rules": [
47
+ "MD001_FOCUS_RING",
48
+ "MD002_REDUCED_MOTION",
49
+ "MD003_HIT_TARGET_ISOLATION",
50
+ "MD004_DEAD_BUTTON_CONTRACT",
51
+ "MD101_BENTO_ROW_FLOW"
52
+ ]
53
+ }
@@ -0,0 +1,127 @@
1
+ /**
2
+ * ME-DESIGN Preset: Metha Engineering & Geoinformatics Cockpit
3
+ * Author: เมธา ตรีประพันธ์กิจ (Survey Engineering, Kasetsart University)
4
+ * Version: 1.0.0
5
+ * Architecture: 3-Layer Design Tokens (Global -> Semantic -> Component)
6
+ */
7
+
8
+ :root {
9
+ /* 01. Typography */
10
+ --font-display: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
11
+ --font-sans: "Inter", "Sukhumvit Set", sans-serif;
12
+ --font-mono: "IBM Plex Mono", "Fira Code", monospace;
13
+ --tracking-heading: -0.020em;
14
+ --tracking-coord: 0.04em;
15
+ --leading-ui: 1.25;
16
+ --leading-prose: 1.60;
17
+ --thai-headroom: 4px;
18
+
19
+ /* 02. Color Tokens (Deep Slate / Geodetic Field Rig) */
20
+ --color-canvas: #0c0e14;
21
+ --color-surface-raised: #141721;
22
+ --color-surface-inset: #090a0f;
23
+ --color-surface-dock: rgba(20, 23, 33, 0.88);
24
+ --color-text-primary: #e6edf3;
25
+ --color-text-secondary: #8b949e;
26
+ --color-text-tertiary: #545d68;
27
+ --color-border-subtle: rgba(255, 255, 255, 0.09);
28
+ --color-border-strong: rgba(255, 255, 255, 0.18);
29
+ --color-border-focus: oklch(0.68 0.20 250);
30
+
31
+ /* Brand Accents (Survey Electric Indigo & Geodetic Green) */
32
+ --color-accent: oklch(0.65 0.20 250);
33
+ --color-accent-hover: oklch(0.70 0.20 250);
34
+ --color-accent-fg: #ffffff;
35
+
36
+ --color-status-info: oklch(0.68 0.20 250);
37
+ --color-status-success: oklch(0.72 0.18 145);
38
+ --color-status-warning: oklch(0.78 0.16 75);
39
+ --color-status-critical: oklch(0.62 0.22 25);
40
+
41
+ /* 03. Optical Geometry (Engineering Grid) */
42
+ --radius-outer: 8px;
43
+ --radius-inner: 4px;
44
+ --hit-target-min: 44px;
45
+
46
+ /* 04. Motion Tokens (Sub-second Field Precision) */
47
+ --duration-entry: 140ms;
48
+ --duration-exit: 90ms;
49
+ --ease-entry: cubic-bezier(0.16, 1, 0.3, 1);
50
+ --ease-exit: cubic-bezier(0.4, 0, 1, 1);
51
+
52
+ /* 05. Blur & Glass */
53
+ --backdrop-blur: blur(12px);
54
+ }
55
+
56
+ /* Light Mode Overrides */
57
+ @media (prefers-color-scheme: light) {
58
+ :root {
59
+ --color-canvas: #f8f9fa;
60
+ --color-surface-raised: #ffffff;
61
+ --color-surface-inset: #f1f3f5;
62
+ --color-surface-dock: rgba(255, 255, 255, 0.90);
63
+ --color-text-primary: #1a1e24;
64
+ --color-text-secondary: #57606a;
65
+ --color-text-tertiary: #8c959f;
66
+ --color-border-subtle: rgba(0, 0, 0, 0.10);
67
+ --color-border-strong: rgba(0, 0, 0, 0.22);
68
+ --color-accent: oklch(0.55 0.20 250);
69
+ }
70
+ }
71
+
72
+ /* Core Component Utilities */
73
+ .metha-workbench-card {
74
+ background: var(--color-surface-raised);
75
+ border: 1px solid var(--color-border-subtle);
76
+ border-radius: var(--radius-outer);
77
+ padding: 16px;
78
+ transition: border-color var(--duration-entry) var(--ease-entry);
79
+ }
80
+
81
+ .metha-telemetry-dock {
82
+ background: var(--color-surface-dock);
83
+ backdrop-filter: var(--backdrop-blur);
84
+ border: 1px solid var(--color-border-strong);
85
+ border-radius: var(--radius-outer);
86
+ padding: 12px 16px;
87
+ }
88
+
89
+ .metha-btn {
90
+ display: inline-flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ min-height: var(--hit-target-min);
94
+ padding: 0 16px;
95
+ border-radius: var(--radius-inner);
96
+ font-family: var(--font-sans);
97
+ font-size: 13px;
98
+ font-weight: 500;
99
+ background: var(--color-accent);
100
+ color: var(--color-accent-fg);
101
+ border: 1px solid transparent;
102
+ cursor: pointer;
103
+ outline-offset: 2px;
104
+ transition: background var(--duration-entry) var(--ease-entry);
105
+ }
106
+
107
+ .metha-btn:focus-visible {
108
+ outline: 2px solid var(--color-border-focus);
109
+ }
110
+
111
+ .metha-btn:active .visual-surface {
112
+ transform: scale(0.98);
113
+ }
114
+
115
+ .geodetic-coord {
116
+ font-family: var(--font-mono);
117
+ font-variant-numeric: tabular-nums;
118
+ letter-spacing: var(--tracking-coord);
119
+ }
120
+
121
+ @media (prefers-reduced-motion: reduce) {
122
+ *, *::before, *::after {
123
+ animation-duration: 0.01ms !important;
124
+ animation-iteration-count: 1 !important;
125
+ transition-duration: 0.01ms !important;
126
+ }
127
+ }
@@ -0,0 +1,23 @@
1
+ # Metha Preset Guidelines (`/medesign metha`)
2
+
3
+ ## Designer & Domain Context
4
+ - **Creator:** เมธา ตรีประพันธ์กิจ (Survey Engineering & Geoinformatics, Kasetsart University)
5
+ - **Primary Archetype:** Archetype 32 (GIS Situation Awareness & Telemetry)
6
+ - **Secondary Archetype:** Archetype 38 (Cadastral Survey & QA/QC Workbench)
7
+
8
+ ## Invariants & Design Principles
9
+ 1. **Engineering Precision & 8pt Spatial Rhythm:**
10
+ Outer card radius `8px`, inner component radius `4px`. All geometry, paddings, and data cell heights align to an 8pt baseline grid (16px, 24px, 32px, 48px).
11
+ 2. **Geodetic Coordinates & Tabular Typography:**
12
+ - Coordinate, Distance, Azimuth, and Traverse Closure readouts MUST use monospace (`IBM Plex Mono` / `Fira Code`) with `tabular-nums` and `letter-spacing: 0.04em`.
13
+ - UI chrome uses `Inter` or `Sukhumvit Set` with `1.25` line-height.
14
+ - Thai diacritic headroom: minimum `4px` top padding to prevent tone mark clipping (`่ ้ ๊ ๋ ์`) on compact table headers.
15
+ 3. **Cockpit Color Palette & ISA-101 Situational Awareness:**
16
+ - Dark Slate `#0c0e14` background prevents eye fatigue during 8+ hour surveying shifts.
17
+ - Survey Electric Cyan `oklch(0.65 0.20 250)` for selected cadastral parcel or primary action.
18
+ - Survey Precision Green `oklch(0.72 0.18 145)` strictly reserved for verified closures / fixed GPS solutions ($1\sigma < 5\text{mm}$).
19
+ - Warning Amber `oklch(0.78 0.16 75)` for float solutions or high HDOP.
20
+ 4. **Motion Profile:**
21
+ `precision` motion profile (140ms entry, 90ms exit). Map selection and point inspection must respond instantly without distracting physics bounces.
22
+ 5. **Layout Architecture:**
23
+ 100dvh viewport canvas layout with floating telemetry docks, collapsible side inspectors, and non-scrambled Bento row grids (`grid-auto-flow: row`).
@@ -0,0 +1,53 @@
1
+ {
2
+ "$schema": "../schema.json",
3
+ "id": "metha",
4
+ "name": "Metha Engineering & Geoinformatics Cockpit",
5
+ "version": "1.0.0",
6
+ "archetype": "Archetype 32: GIS Situation Awareness & Archetype 38: Cadastral Survey & QA/QC Workbench",
7
+ "description": "Metha's personal engineering design signature: high-density cadastral tables, 8pt optical grid, Inter + IBM Plex Mono tabular coordinates, charcoal/deep slate dark canvas, and survey electric cyan/precision green accents.",
8
+ "typography": {
9
+ "display": "'Inter', 'SF Pro Display', sans-serif",
10
+ "sans": "'Inter', 'Sukhumvit Set', sans-serif",
11
+ "mono": "'IBM Plex Mono', 'Fira Code', monospace",
12
+ "headingTracking": "-0.020em",
13
+ "uiLineHeight": "1.25",
14
+ "proseLineHeight": "1.60",
15
+ "thaiHeadroom": "4px"
16
+ },
17
+ "color": {
18
+ "canvas": "#0c0e14",
19
+ "surfaceRaised": "#141721",
20
+ "surfaceInset": "#090a0f",
21
+ "borderSubtle": "rgba(255, 255, 255, 0.09)",
22
+ "borderFocus": "oklch(0.68 0.20 250)",
23
+ "accent": "oklch(0.65 0.20 250)",
24
+ "accentForeground": "#ffffff",
25
+ "status": {
26
+ "info": "oklch(0.68 0.20 250)",
27
+ "success": "oklch(0.72 0.18 145)",
28
+ "warning": "oklch(0.78 0.16 75)",
29
+ "critical": "oklch(0.62 0.22 25)"
30
+ }
31
+ },
32
+ "geometry": {
33
+ "radiusBase": "6px",
34
+ "radiusOuter": "8px",
35
+ "concentricFormula": "max(0px, 8px - 1px - 4px) = 3px",
36
+ "scalingFormula": "clamp(0.97, 1 - 2.2/max(W, H), 0.995)",
37
+ "hitTargetMinTouch": "44px"
38
+ },
39
+ "motion": {
40
+ "profile": "precision",
41
+ "durationEntry": "140ms",
42
+ "durationExit": "90ms",
43
+ "easingEntry": "cubic-bezier(0.16, 1, 0.3, 1)",
44
+ "easingExit": "cubic-bezier(0.4, 0, 1, 1)"
45
+ },
46
+ "rules": [
47
+ "MD001_FOCUS_RING",
48
+ "MD002_REDUCED_MOTION",
49
+ "MD003_HIT_TARGET_ISOLATION",
50
+ "MD004_DEAD_BUTTON_CONTRACT",
51
+ "MD101_BENTO_ROW_FLOW"
52
+ ]
53
+ }
@@ -0,0 +1,102 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "MEDesignPreset",
4
+ "description": "Schema for ME-DESIGN reusable style and engineering presets",
5
+ "type": "object",
6
+ "required": [
7
+ "id",
8
+ "name",
9
+ "version",
10
+ "archetype",
11
+ "description",
12
+ "typography",
13
+ "color",
14
+ "geometry",
15
+ "motion",
16
+ "rules"
17
+ ],
18
+ "properties": {
19
+ "id": {
20
+ "type": "string",
21
+ "pattern": "^[a-z0-9_-]+$"
22
+ },
23
+ "name": {
24
+ "type": "string"
25
+ },
26
+ "version": {
27
+ "type": "string"
28
+ },
29
+ "archetype": {
30
+ "type": "string",
31
+ "description": "Reference to one of the 38 ME-DESIGN Archetypes (e.g. Archetype 02, Archetype 32)"
32
+ },
33
+ "description": {
34
+ "type": "string"
35
+ },
36
+ "typography": {
37
+ "type": "object",
38
+ "required": ["display", "sans", "mono", "headingTracking", "uiLineHeight", "proseLineHeight"],
39
+ "properties": {
40
+ "display": { "type": "string" },
41
+ "sans": { "type": "string" },
42
+ "mono": { "type": "string" },
43
+ "headingTracking": { "type": "string" },
44
+ "uiLineHeight": { "type": "string" },
45
+ "proseLineHeight": { "type": "string" },
46
+ "thaiHeadroom": { "type": "string" }
47
+ }
48
+ },
49
+ "color": {
50
+ "type": "object",
51
+ "required": ["canvas", "surfaceRaised", "surfaceInset", "borderSubtle", "borderFocus", "accent", "accentForeground", "status"],
52
+ "properties": {
53
+ "canvas": { "type": "string" },
54
+ "surfaceRaised": { "type": "string" },
55
+ "surfaceInset": { "type": "string" },
56
+ "borderSubtle": { "type": "string" },
57
+ "borderFocus": { "type": "string" },
58
+ "accent": { "type": "string" },
59
+ "accentForeground": { "type": "string" },
60
+ "status": {
61
+ "type": "object",
62
+ "required": ["info", "success", "warning", "critical"],
63
+ "properties": {
64
+ "info": { "type": "string" },
65
+ "success": { "type": "string" },
66
+ "warning": { "type": "string" },
67
+ "critical": { "type": "string" }
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "geometry": {
73
+ "type": "object",
74
+ "required": ["radiusBase", "radiusOuter", "concentricFormula", "scalingFormula", "hitTargetMinTouch"],
75
+ "properties": {
76
+ "radiusBase": { "type": "string" },
77
+ "radiusOuter": { "type": "string" },
78
+ "concentricFormula": { "type": "string" },
79
+ "scalingFormula": { "type": "string" },
80
+ "hitTargetMinTouch": { "type": "string" }
81
+ }
82
+ },
83
+ "motion": {
84
+ "type": "object",
85
+ "required": ["profile", "durationEntry", "durationExit", "easingEntry", "easingExit"],
86
+ "properties": {
87
+ "profile": {
88
+ "type": "string",
89
+ "enum": ["precision", "soft-settle", "spring-settle", "instant"]
90
+ },
91
+ "durationEntry": { "type": "string" },
92
+ "durationExit": { "type": "string" },
93
+ "easingEntry": { "type": "string" },
94
+ "easingExit": { "type": "string" }
95
+ }
96
+ },
97
+ "rules": {
98
+ "type": "array",
99
+ "items": { "type": "string" }
100
+ }
101
+ }
102
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * ME-DESIGN Preset: Tesla Cybertruck & In-Vehicle Telemetry
3
+ * Version: 1.0.0
4
+ * Architecture: 3-Layer Design Tokens (Global -> Semantic -> Component)
5
+ */
6
+
7
+ :root {
8
+ /* 01. Typography */
9
+ --font-display: "Space Grotesk", "Inter", sans-serif;
10
+ --font-sans: "Inter", sans-serif;
11
+ --font-mono: "IBM Plex Mono", "JetBrains Mono", monospace;
12
+ --tracking-heading: -0.015em;
13
+ --tracking-badge: 0.08em;
14
+ --leading-ui: 1.22;
15
+ --leading-prose: 1.55;
16
+ --thai-headroom: 2px;
17
+
18
+ /* 02. Color Tokens */
19
+ --color-canvas: #050505;
20
+ --color-surface-raised: #111111;
21
+ --color-surface-inset: #0a0a0a;
22
+ --color-text-primary: #ffffff;
23
+ --color-text-secondary: #8e8e93;
24
+ --color-text-tertiary: #48484a;
25
+ --color-border-subtle: rgba(255, 255, 255, 0.08);
26
+ --color-border-strong: rgba(255, 255, 255, 0.20);
27
+ --color-border-focus: oklch(0.65 0.24 28);
28
+
29
+ --color-accent: oklch(0.58 0.24 28);
30
+ --color-accent-hover: oklch(0.64 0.24 28);
31
+ --color-accent-fg: #ffffff;
32
+
33
+ --color-status-info: oklch(0.78 0.15 200);
34
+ --color-status-success: oklch(0.72 0.20 142);
35
+ --color-status-warning: oklch(0.80 0.18 75);
36
+ --color-status-critical: oklch(0.60 0.25 28);
37
+
38
+ /* 03. Optical Geometry (Strict Low-Radius Chamfer) */
39
+ --radius-outer: 4px;
40
+ --radius-inner: 2px;
41
+ --hit-target-min: 44px;
42
+
43
+ /* 04. Motion Tokens (High-Velocity Precision) */
44
+ --duration-entry: 100ms;
45
+ --duration-exit: 70ms;
46
+ --ease-entry: cubic-bezier(0.2, 0, 0, 1);
47
+ --ease-exit: cubic-bezier(0.4, 0, 1, 1);
48
+ }
49
+
50
+ /* Light Mode Overrides */
51
+ @media (prefers-color-scheme: light) {
52
+ :root {
53
+ --color-canvas: #f4f4f4;
54
+ --color-surface-raised: #ffffff;
55
+ --color-surface-inset: #e5e5e5;
56
+ --color-text-primary: #111111;
57
+ --color-text-secondary: #5c5c5c;
58
+ --color-border-subtle: rgba(0, 0, 0, 0.10);
59
+ --color-border-strong: rgba(0, 0, 0, 0.25);
60
+ }
61
+ }
62
+
63
+ /* Core Component Utilities */
64
+ .tesla-panel {
65
+ background: var(--color-surface-raised);
66
+ border: 1px solid var(--color-border-subtle);
67
+ border-radius: var(--radius-outer);
68
+ padding: 16px 20px;
69
+ transition: border-color var(--duration-entry) var(--ease-entry);
70
+ }
71
+
72
+ .tesla-btn {
73
+ display: inline-flex;
74
+ align-items: center;
75
+ justify-content: center;
76
+ min-height: var(--hit-target-min);
77
+ padding: 0 16px;
78
+ border-radius: var(--radius-outer);
79
+ font-family: var(--font-sans);
80
+ font-size: 13px;
81
+ font-weight: 600;
82
+ text-transform: uppercase;
83
+ letter-spacing: var(--tracking-badge);
84
+ background: var(--color-accent);
85
+ color: var(--color-accent-fg);
86
+ border: 1px solid transparent;
87
+ cursor: pointer;
88
+ outline-offset: 2px;
89
+ transition: background var(--duration-entry) var(--ease-entry);
90
+ }
91
+
92
+ .tesla-btn:focus-visible {
93
+ outline: 2px solid var(--color-border-focus);
94
+ }
95
+
96
+ .tesla-btn:active .visual-surface {
97
+ transform: scale(0.98);
98
+ }
99
+
100
+ .telemetry-val {
101
+ font-family: var(--font-mono);
102
+ font-variant-numeric: tabular-nums;
103
+ font-weight: 700;
104
+ }
105
+
106
+ @media (prefers-reduced-motion: reduce) {
107
+ *, *::before, *::after {
108
+ animation-duration: 0.01ms !important;
109
+ animation-iteration-count: 1 !important;
110
+ transition-duration: 0.01ms !important;
111
+ }
112
+ }
@@ -0,0 +1,17 @@
1
+ # Tesla Preset Guidelines (`/medesign tesla`)
2
+
3
+ ## Archetype Mapping
4
+ - **Primary Archetype:** Archetype 18 (Industrial / Hardware Product)
5
+ - **Secondary Archetype:** Archetype 32 (GIS Situation Awareness & Telemetry)
6
+
7
+ ## Invariants & Design Principles
8
+ 1. **Brutal Geometry & Minimal Radii:**
9
+ Outer card radius `4px`, inner nested radius `2px`. Avoid large bubbly curves; adhere to razor-sharp automotive engineering surfaces.
10
+ 2. **Telemetric Typography:**
11
+ - Display/Headlines: Space Grotesk / Gotham with crisp technical presence.
12
+ - Values & Metrics: Monospace (`IBM Plex Mono` / `JetBrains Mono`) with `tabular-nums` for real-time telemetry readouts.
13
+ - Letter-spacing: `+0.08em` uppercase tracking on status badges and controls.
14
+ 3. **High-Velocity Precision Motion:**
15
+ `precision` motion profile (100ms entry, 70ms exit). State feedback must feel immediate, like physical vehicle switches.
16
+ 4. **Contrast & Night Mode Invariant:**
17
+ Deep obsidian background `#050505`, crisp white metrics `#ffffff`, Tesla Crimson accent `oklch(0.58 0.24 28)` for primary action and critical warnings.
@@ -0,0 +1,53 @@
1
+ {
2
+ "$schema": "../schema.json",
3
+ "id": "tesla",
4
+ "name": "Tesla Cybertruck & In-Vehicle Telemetry",
5
+ "version": "1.0.0",
6
+ "archetype": "Archetype 18: Industrial / Hardware Product & Archetype 32: GIS / Telemetry",
7
+ "description": "Brutal hardware minimalism: razor-sharp 2px-4px chamfer radii, deep obsidian/pure black contrast, precision 90-120ms telemetry response, and electric red/cyan telemetry accents.",
8
+ "typography": {
9
+ "display": "'Gotham', 'Inter', 'Space Grotesk', sans-serif",
10
+ "sans": "'Inter', 'Roboto', sans-serif",
11
+ "mono": "'IBM Plex Mono', 'JetBrains Mono', monospace",
12
+ "headingTracking": "-0.015em",
13
+ "uiLineHeight": "1.22",
14
+ "proseLineHeight": "1.55",
15
+ "thaiHeadroom": "2px"
16
+ },
17
+ "color": {
18
+ "canvas": "#050505",
19
+ "surfaceRaised": "#111111",
20
+ "surfaceInset": "#0a0a0a",
21
+ "borderSubtle": "rgba(255, 255, 255, 0.08)",
22
+ "borderFocus": "oklch(0.65 0.24 28)",
23
+ "accent": "oklch(0.58 0.24 28)",
24
+ "accentForeground": "#ffffff",
25
+ "status": {
26
+ "info": "oklch(0.78 0.15 200)",
27
+ "success": "oklch(0.72 0.20 142)",
28
+ "warning": "oklch(0.80 0.18 75)",
29
+ "critical": "oklch(0.60 0.25 28)"
30
+ }
31
+ },
32
+ "geometry": {
33
+ "radiusBase": "2px",
34
+ "radiusOuter": "4px",
35
+ "concentricFormula": "max(0px, 4px - 1px - 2px) = 1px",
36
+ "scalingFormula": "clamp(0.97, 1 - 2.0/max(W, H), 0.995)",
37
+ "hitTargetMinTouch": "44px"
38
+ },
39
+ "motion": {
40
+ "profile": "precision",
41
+ "durationEntry": "100ms",
42
+ "durationExit": "70ms",
43
+ "easingEntry": "cubic-bezier(0.2, 0, 0, 1)",
44
+ "easingExit": "cubic-bezier(0.4, 0, 1, 1)"
45
+ },
46
+ "rules": [
47
+ "MD001_FOCUS_RING",
48
+ "MD002_REDUCED_MOTION",
49
+ "MD003_HIT_TARGET_ISOLATION",
50
+ "MD004_DEAD_BUTTON_CONTRACT",
51
+ "MD101_BENTO_ROW_FLOW"
52
+ ]
53
+ }