@bluefly/openstandardagents 0.2.5-RC → 0.2.7

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 (238) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +63 -0
  2. package/.github/ISSUE_TEMPLATE/feature_request.yml +40 -0
  3. package/.github/workflows/dependabot-comment.yml +34 -0
  4. package/.github/workflows/pr-comment.yml +33 -0
  5. package/.husky/pre-commit +5 -0
  6. package/.kiro/config.json +21 -0
  7. package/.kiro/settings/mcp.json +61 -0
  8. package/.kiro/specs/scripts-migration-api-first/design.md +883 -0
  9. package/.kiro/specs/scripts-migration-api-first/requirements.md +165 -0
  10. package/.kiro/specs/scripts-migration-api-first/tasks.md +539 -0
  11. package/.kiro/specs/{website-design-audit → website-brand-identity}/design.md +381 -0
  12. package/.kiro/specs/{website-design-audit → website-brand-identity}/requirements.md +88 -0
  13. package/.kiro/specs/website-brand-identity/tasks.md +981 -0
  14. package/CHANGELOG.md +23 -0
  15. package/README.md +12 -3
  16. package/bin/ossa-dev +42 -0
  17. package/bin/ossa-export +32 -0
  18. package/bin/ossa-generate +60 -0
  19. package/bin/ossa-health +40 -0
  20. package/bin/ossa-init +26 -0
  21. package/dist/repositories/schema.repository.d.ts.map +1 -1
  22. package/dist/repositories/schema.repository.js +15 -10
  23. package/dist/repositories/schema.repository.js.map +1 -1
  24. package/dist/services/github-sync/github-client.d.ts +14 -0
  25. package/dist/services/github-sync/github-client.d.ts.map +1 -0
  26. package/dist/services/github-sync/github-client.js +41 -0
  27. package/dist/services/github-sync/github-client.js.map +1 -0
  28. package/dist/services/github-sync/gitlab-client.d.ts +17 -0
  29. package/dist/services/github-sync/gitlab-client.d.ts.map +1 -0
  30. package/dist/services/github-sync/gitlab-client.js +42 -0
  31. package/dist/services/github-sync/gitlab-client.js.map +1 -0
  32. package/dist/services/github-sync/schemas.d.ts +46 -0
  33. package/dist/services/github-sync/schemas.d.ts.map +1 -0
  34. package/dist/services/github-sync/schemas.js +36 -0
  35. package/dist/services/github-sync/schemas.js.map +1 -0
  36. package/dist/services/github-sync/sync.service.d.ts +27 -0
  37. package/dist/services/github-sync/sync.service.d.ts.map +1 -0
  38. package/dist/services/github-sync/sync.service.js +99 -0
  39. package/dist/services/github-sync/sync.service.js.map +1 -0
  40. package/dist/services/runtime/claude/capability-mapper.d.ts +84 -0
  41. package/dist/services/runtime/claude/capability-mapper.d.ts.map +1 -0
  42. package/dist/services/runtime/claude/capability-mapper.js +245 -0
  43. package/dist/services/runtime/claude/capability-mapper.js.map +1 -0
  44. package/dist/services/runtime/claude/claude-adapter.d.ts +80 -0
  45. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -0
  46. package/dist/services/runtime/claude/claude-adapter.js +287 -0
  47. package/dist/services/runtime/claude/claude-adapter.js.map +1 -0
  48. package/dist/services/runtime/claude/manifest-parser.d.ts +77 -0
  49. package/dist/services/runtime/claude/manifest-parser.d.ts.map +1 -0
  50. package/dist/services/runtime/claude/manifest-parser.js +169 -0
  51. package/dist/services/runtime/claude/manifest-parser.js.map +1 -0
  52. package/dist/services/runtime/claude/types.d.ts +115 -0
  53. package/dist/services/runtime/claude/types.d.ts.map +1 -0
  54. package/dist/services/runtime/claude/types.js +6 -0
  55. package/dist/services/runtime/claude/types.js.map +1 -0
  56. package/dist/services/validation.service.d.ts.map +1 -1
  57. package/dist/services/validation.service.js +12 -1
  58. package/dist/services/validation.service.js.map +1 -1
  59. package/dist/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  60. package/dist/spec/v0.2.6/CHANGELOG.md +401 -0
  61. package/dist/spec/v0.2.6/README.md +72 -0
  62. package/dist/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  63. package/dist/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  64. package/dist/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  65. package/dist/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  66. package/dist/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  67. package/dist/spec/v0.2.6-dev/README.md +75 -0
  68. package/dist/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  69. package/dist/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  70. package/dist/spec/{v0.2.4/ossa-0.2.4-dev.schema.json → v0.2.6-dev/ossa-0.2.5.schema.json} +9 -9
  71. package/dist/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  72. package/{spec/v0.2.4/ossa-0.2.4-dev.schema.json → dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json} +9 -9
  73. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  74. package/dist/spec/v0.2.7/core/agentgraph.md +324 -0
  75. package/dist/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  76. package/docs/brand-guide/01-brand-overview.md +37 -0
  77. package/docs/brand-guide/02-logo-usage.md +43 -0
  78. package/docs/brand-guide/03-color-palette.md +70 -0
  79. package/docs/brand-guide/04-typography.md +82 -0
  80. package/docs/brand-guide/05-voice-and-tone.md +108 -0
  81. package/docs/brand-guide/06-visual-elements.md +137 -0
  82. package/docs/brand-guide/07-application-examples.md +153 -0
  83. package/docs/brand-guide/OssaLogo/OssA_Logo.svg +21 -0
  84. package/docs/brand-guide/OssaLogo/brand.af +0 -0
  85. package/docs/brand-guide/README.md +107 -0
  86. package/docs/comparison.md +315 -0
  87. package/docs/operations/automation-roadmap.md +245 -0
  88. package/docs/operations/github-sync-strategy.md +357 -0
  89. package/examples/anthropic/claude-assistant.ossa.json +5 -4
  90. package/examples/autogen/multi-agent.ossa.json +6 -4
  91. package/examples/crewai/research-team.ossa.json +14 -5
  92. package/examples/cursor/code-review-agent.ossa.json +21 -6
  93. package/examples/langchain/chain-agent.ossa.json +21 -5
  94. package/examples/langflow/workflow-agent.ossa.json +2 -3
  95. package/examples/langgraph/state-machine-agent.ossa.json +2 -3
  96. package/examples/llamaindex/rag-agent.ossa.json +2 -3
  97. package/examples/openai/multi-tool-agent.ossa.json +32 -9
  98. package/examples/openai/swarm-agent.ossa.json +18 -5
  99. package/examples/vercel/edge-agent.ossa.json +5 -4
  100. package/openapi/github-sync.yaml +115 -0
  101. package/package.json +25 -4
  102. package/scripts/README.md +103 -0
  103. package/scripts/auto-rebase-mrs.ts +106 -0
  104. package/scripts/batch-dependabot.sh +57 -0
  105. package/scripts/configure-gitlab-branch-protection.ts +95 -0
  106. package/scripts/create-issue-helper.ts +238 -0
  107. package/scripts/create-milestone-issue.ts +73 -0
  108. package/scripts/fix-schema-formats.js +82 -0
  109. package/scripts/generate-agents-catalog.ts +77 -0
  110. package/scripts/generate-api-docs.ts +218 -0
  111. package/scripts/generate-cli-docs.ts +410 -0
  112. package/scripts/generate-config-docs.ts +109 -0
  113. package/scripts/generate-errors-docs.ts +76 -0
  114. package/scripts/generate-examples-docs.ts +99 -0
  115. package/scripts/generate-schema-docs.ts +296 -0
  116. package/scripts/generate-types-docs.ts +48 -0
  117. package/scripts/lowercase-docs.ts +43 -0
  118. package/scripts/manage-milestone-mrs.ts +279 -0
  119. package/scripts/rebase-all-mrs.sh +75 -0
  120. package/scripts/sync-github-pr.sh +48 -0
  121. package/scripts/sync-version.js +40 -0
  122. package/scripts/sync-wiki.sh +50 -0
  123. package/scripts/validate-all.js +127 -0
  124. package/spec/v0.2.4/ossa-0.2.4.schema.json +85 -208
  125. package/spec/v0.2.6/CHANGELOG.md +401 -0
  126. package/spec/v0.2.6/README.md +72 -0
  127. package/spec/v0.2.6/migrations/v0.2.3-to-v0.2.4.md +599 -0
  128. package/spec/v0.2.6/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  129. package/spec/v0.2.6/ossa-0.2.6.schema.json +1786 -0
  130. package/spec/v0.2.6/ossa-0.2.6.yaml +581 -0
  131. package/spec/v0.2.6-dev/CHANGELOG.md +164 -0
  132. package/spec/v0.2.6-dev/README.md +75 -0
  133. package/spec/v0.2.6-dev/migrations/v0.2.2-to-v0.2.3.md +343 -0
  134. package/spec/v0.2.6-dev/migrations/v0.2.3-to-v0.2.4.md +599 -0
  135. package/spec/v0.2.6-dev/ossa-0.2.5.schema.json +1696 -0
  136. package/spec/v0.2.6-dev/ossa-0.2.5.yaml +581 -0
  137. package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +1696 -0
  138. package/spec/v0.2.6-dev/ossa-0.2.6-dev.yaml +448 -0
  139. package/spec/v0.2.7/core/agentgraph.md +324 -0
  140. package/spec/v0.2.7/resources/agentgraph.yaml +135 -0
  141. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +445 -0
  142. package/website/app/about/page.tsx +53 -44
  143. package/website/app/ecosystem/page.tsx +146 -111
  144. package/website/app/globals.scss +256 -21
  145. package/website/app/page.tsx +394 -182
  146. package/website/app/page.tsx.bak +679 -0
  147. package/website/app/page.tsx.bak2 +649 -0
  148. package/website/app/schema/page.tsx +3 -3
  149. package/website/app/specification/page.tsx +1 -1
  150. package/website/components/layout/Header.tsx +27 -23
  151. package/website/components/ui/Badge.tsx +82 -0
  152. package/website/components/ui/Button.tsx +116 -0
  153. package/website/components/ui/Card.tsx +167 -0
  154. package/website/components/ui/Checkbox.tsx +141 -0
  155. package/website/components/ui/Input.tsx +169 -0
  156. package/website/components/ui/Radio.tsx +141 -0
  157. package/website/components/ui/Select.tsx +182 -0
  158. package/website/components/ui/Tag.tsx +158 -0
  159. package/website/components/ui/Textarea.tsx +195 -0
  160. package/website/components/ui/index.ts +11 -0
  161. package/website/content/docs/{00-HOME.md → 00-home.md} +1 -1
  162. package/website/content/docs/agents/catalog.md +28 -0
  163. package/website/content/docs/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  164. package/website/content/docs/api-reference/index.md +38 -0
  165. package/website/content/docs/api-reference/ossa-core-api.md +634 -0
  166. package/website/content/docs/api-reference/ossa-registry-api.md +515 -0
  167. package/website/content/docs/api-reference/unified-agent-gateway.md +599 -0
  168. package/website/content/docs/cli-reference/index.md +111 -0
  169. package/website/content/docs/cli-reference/ossa-agents.md +70 -0
  170. package/website/content/docs/cli-reference/ossa-export.md +56 -0
  171. package/website/content/docs/cli-reference/ossa-generate.md +66 -0
  172. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +57 -0
  173. package/website/content/docs/cli-reference/ossa-import.md +56 -0
  174. package/website/content/docs/cli-reference/ossa-init.md +57 -0
  175. package/website/content/docs/cli-reference/ossa-migrate.md +62 -0
  176. package/website/content/docs/cli-reference/ossa-run.md +66 -0
  177. package/website/content/docs/cli-reference/ossa-schema.md +57 -0
  178. package/website/content/docs/cli-reference/ossa-setup.md +57 -0
  179. package/website/content/docs/cli-reference/ossa-validate.md +66 -0
  180. package/website/content/docs/configuration/index.md +97 -0
  181. package/website/content/docs/deployment/github-mirroring.md +924 -0
  182. package/website/content/docs/documentation.md +100 -0
  183. package/website/content/docs/ecosystem/framework-support.md +551 -9
  184. package/website/content/docs/errors/index.md +10 -0
  185. package/website/content/docs/examples/{AIFlow-Framework-Integration-with-OSSA.md → aiflow-framework-integration-with-ossa.md} +2 -2
  186. package/website/content/docs/examples/catalog.md +300 -0
  187. package/website/content/docs/for-audiences/{Students-Researchers.md → students-researchers.md} +1 -1
  188. package/website/content/docs/getting-started/{Installation.md → installation.md} +1 -1
  189. package/website/content/docs/getting-started.md +1 -1
  190. package/website/content/docs/integrations/aiflow.md +2 -2
  191. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +5 -5
  192. package/website/content/docs/migration-guides/crewai-to-ossa.md +3 -3
  193. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +7 -7
  194. package/website/content/docs/migration-guides/langchain-to-ossa.md +4 -4
  195. package/website/content/docs/openapi-extensions/index.md +1 -1
  196. package/website/content/docs/ossa-compliant-badge.md +1 -1
  197. package/website/content/docs/pre-release/index.md +5 -5
  198. package/website/content/docs/releases/v0.2.6.md +99 -0
  199. package/website/content/docs/schema-reference/agent-capabilities.md +50 -0
  200. package/website/content/docs/schema-reference/agent-id.md +52 -0
  201. package/website/content/docs/schema-reference/agent-name.md +50 -0
  202. package/website/content/docs/schema-reference/agent-role.md +54 -0
  203. package/website/content/docs/schema-reference/agent-version.md +50 -0
  204. package/website/content/docs/schema-reference/index.md +26 -157
  205. package/website/content/docs/types-reference/index.md +105 -0
  206. package/website/content/docs/versioning.md +3 -3
  207. package/website/dev.sh +53 -0
  208. package/website/docker-compose.dev.yml +36 -0
  209. package/website/lib/version.ts +1 -1
  210. package/website/lib/versions.json +45 -20
  211. package/website/package.json +1 -1
  212. package/website/styles/_spacing.scss +453 -0
  213. package/website/styles/_tokens.scss +245 -0
  214. package/website/styles/_typography.scss +361 -0
  215. package/website/styles/_variables.scss +270 -19
  216. package/website/tailwind.config.ts +113 -79
  217. package/.kiro/specs/agent-buildkit-templates/design.md +0 -495
  218. package/.kiro/specs/agent-buildkit-templates/requirements.md +0 -165
  219. package/.kiro/specs/kiro-ide-supercharger/README.md +0 -202
  220. package/.kiro/specs/kiro-ide-supercharger/design.md +0 -1005
  221. package/.kiro/specs/kiro-ide-supercharger/requirements.md +0 -141
  222. package/.kiro/specs/kiro-ide-supercharger/tasks.md +0 -507
  223. package/docs/issue-19-completion-summary.md +0 -648
  224. package/docs/issue-19-validation.md +0 -351
  225. package/website/content/docs/Examples.md +0 -71
  226. package/website/content/docs/OpenAPI-Extensions.md +0 -934
  227. package/website/content/docs/core-concepts/Project-Structure.md +0 -348
  228. package/website/content/docs/examples/Migration-Guides.md +0 -214
  229. package/website/content/docs/for-audiences/Architects.md +0 -224
  230. package/website/content/docs/for-audiences/Developers.md +0 -220
  231. package/website/content/docs/for-audiences/Enterprises.md +0 -256
  232. package/website/content/docs/getting-started/5-Minute-Overview.md +0 -85
  233. package/website/content/docs/getting-started/First-Agent.md +0 -196
  234. package/website/content/docs/getting-started/Hello-World.md +0 -184
  235. package/website/content/docs/migration-guides/00-INDEX.md +0 -76
  236. package/website/content/docs/migration-guides/README.md +0 -133
  237. /package/dist/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
  238. /package/spec/v0.2.4/{ossa-0.2.4-dev.yaml → ossa-0.2.4.yaml} +0 -0
@@ -0,0 +1,245 @@
1
+ // OSSA Design System - Design Tokens
2
+ // Complete color scales, gradients, and design tokens
3
+
4
+ // ============================================================================
5
+ // COLOR SCALES (50-900)
6
+ // ============================================================================
7
+
8
+ // Primary Color Scale (Blue-Purple #4A3ECD)
9
+ $ossa-primary-50: #f5f4fd;
10
+ $ossa-primary-100: #e8e5fa;
11
+ $ossa-primary-200: #d4cff5;
12
+ $ossa-primary-300: #b5abee;
13
+ $ossa-primary-400: #8f7ee4;
14
+ $ossa-primary-500: #4A3ECD; // Base primary color
15
+ $ossa-primary-600: #3d2fb8;
16
+ $ossa-primary-700: #322598;
17
+ $ossa-primary-800: #2a1f7a;
18
+ $ossa-primary-900: #241f65;
19
+ $ossa-primary-950: #15113a;
20
+
21
+ // Secondary Color Scale (Cyan-Blue #1CB9ED)
22
+ $ossa-secondary-50: #ecfbff;
23
+ $ossa-secondary-100: #d1f5fe;
24
+ $ossa-secondary-200: #a8e9fd;
25
+ $ossa-secondary-300: #6fd8fa;
26
+ $ossa-secondary-400: #2ec0f5;
27
+ $ossa-secondary-500: #1CB9ED; // Base secondary color
28
+ $ossa-secondary-600: #0a9dd1;
29
+ $ossa-secondary-700: #087da9;
30
+ $ossa-secondary-800: #0c6688;
31
+ $ossa-secondary-900: #105570;
32
+ $ossa-secondary-950: #08374a;
33
+
34
+ // Accent Color Scale (Purple #9060EA)
35
+ $ossa-accent-50: #f7f4fe;
36
+ $ossa-accent-100: #ede9fd;
37
+ $ossa-accent-200: #ddd4fb;
38
+ $ossa-accent-300: #c5b3f8;
39
+ $ossa-accent-400: #a887f3;
40
+ $ossa-accent-500: #9060EA; // Base accent color
41
+ $ossa-accent-600: #7c3aed;
42
+ $ossa-accent-700: #6b28d9;
43
+ $ossa-accent-800: #5923b8;
44
+ $ossa-accent-900: #4b1f97;
45
+ $ossa-accent-950: #2d0f5c;
46
+
47
+ // Success Color Scale (Green #10b981)
48
+ $ossa-success-50: #ecfdf5;
49
+ $ossa-success-100: #d1fae5;
50
+ $ossa-success-200: #a7f3d0;
51
+ $ossa-success-300: #6ee7b7;
52
+ $ossa-success-400: #34d399;
53
+ $ossa-success-500: #10b981; // Base success color
54
+ $ossa-success-600: #059669;
55
+ $ossa-success-700: #047857;
56
+ $ossa-success-800: #065f46;
57
+ $ossa-success-900: #064e3b;
58
+ $ossa-success-950: #022c22;
59
+
60
+ // Warning Color Scale (Amber #f59e0b)
61
+ $ossa-warning-50: #fffbeb;
62
+ $ossa-warning-100: #fef3c7;
63
+ $ossa-warning-200: #fde68a;
64
+ $ossa-warning-300: #fcd34d;
65
+ $ossa-warning-400: #fbbf24;
66
+ $ossa-warning-500: #f59e0b; // Base warning color
67
+ $ossa-warning-600: #d97706;
68
+ $ossa-warning-700: #b45309;
69
+ $ossa-warning-800: #92400e;
70
+ $ossa-warning-900: #78350f;
71
+ $ossa-warning-950: #451a03;
72
+
73
+ // Error Color Scale (Red #ef4444)
74
+ $ossa-error-50: #fef2f2;
75
+ $ossa-error-100: #fee2e2;
76
+ $ossa-error-200: #fecaca;
77
+ $ossa-error-300: #fca5a5;
78
+ $ossa-error-400: #f87171;
79
+ $ossa-error-500: #ef4444; // Base error color
80
+ $ossa-error-600: #dc2626;
81
+ $ossa-error-700: #b91c1c;
82
+ $ossa-error-800: #991b1b;
83
+ $ossa-error-900: #7f1d1d;
84
+ $ossa-error-950: #450a0a;
85
+
86
+ // Info Color Scale (Cyan #06b6d4)
87
+ $ossa-info-50: #ecfeff;
88
+ $ossa-info-100: #cffafe;
89
+ $ossa-info-200: #a5f3fc;
90
+ $ossa-info-300: #67e8f9;
91
+ $ossa-info-400: #22d3ee;
92
+ $ossa-info-500: #06b6d4; // Base info color
93
+ $ossa-info-600: #0891b2;
94
+ $ossa-info-700: #0e7490;
95
+ $ossa-info-800: #155e75;
96
+ $ossa-info-900: #164e63;
97
+ $ossa-info-950: #083344;
98
+
99
+ // Neutral/Gray Color Scale
100
+ $ossa-gray-50: #f9fafb;
101
+ $ossa-gray-100: #f3f4f6;
102
+ $ossa-gray-200: #e5e7eb;
103
+ $ossa-gray-300: #d1d5db;
104
+ $ossa-gray-400: #9ca3af;
105
+ $ossa-gray-500: #6b7280;
106
+ $ossa-gray-600: #4b5563;
107
+ $ossa-gray-700: #374151;
108
+ $ossa-gray-800: #1f2937;
109
+ $ossa-gray-900: #111827;
110
+ $ossa-gray-950: #030712;
111
+
112
+ // ============================================================================
113
+ // DARK MODE COLOR MAPPINGS (Future-ready)
114
+ // ============================================================================
115
+
116
+ // Dark mode will invert the color scales
117
+ // Light backgrounds (50-100) become dark (900-950)
118
+ // Dark text (900-950) becomes light (50-100)
119
+
120
+ $ossa-dark-bg-primary: $ossa-gray-900;
121
+ $ossa-dark-bg-secondary: $ossa-gray-800;
122
+ $ossa-dark-bg-tertiary: $ossa-gray-700;
123
+ $ossa-dark-text-primary: $ossa-gray-50;
124
+ $ossa-dark-text-secondary: $ossa-gray-300;
125
+ $ossa-dark-text-tertiary: $ossa-gray-400;
126
+
127
+ // ============================================================================
128
+ // GRADIENT TOKENS (CSS Custom Properties)
129
+ // ============================================================================
130
+
131
+ // Primary gradient (Purple spectrum)
132
+ $gradient-primary: linear-gradient(135deg, $ossa-primary-500 0%, $ossa-accent-600 100%);
133
+
134
+ // Secondary gradient (Blue to Cyan)
135
+ $gradient-secondary: linear-gradient(135deg, $ossa-secondary-500 0%, $ossa-info-500 100%);
136
+
137
+ // Accent gradient (Purple to Pink)
138
+ $gradient-accent: linear-gradient(135deg, $ossa-accent-500 0%, #ec4899 100%);
139
+
140
+ // Hero gradient (Full spectrum - Blue to Purple)
141
+ $gradient-hero: linear-gradient(135deg, $ossa-secondary-500 0%, $ossa-primary-500 50%, $ossa-accent-500 100%);
142
+
143
+ // Button gradient (Subtle blue to purple)
144
+ $gradient-button: linear-gradient(135deg, $ossa-secondary-400 0%, $ossa-primary-500 100%);
145
+
146
+ // Success gradient
147
+ $gradient-success: linear-gradient(135deg, $ossa-success-400 0%, $ossa-success-600 100%);
148
+
149
+ // Warning gradient
150
+ $gradient-warning: linear-gradient(135deg, $ossa-warning-400 0%, $ossa-warning-600 100%);
151
+
152
+ // Error gradient
153
+ $gradient-error: linear-gradient(135deg, $ossa-error-400 0%, $ossa-error-600 100%);
154
+
155
+ // Info gradient
156
+ $gradient-info: linear-gradient(135deg, $ossa-info-400 0%, $ossa-info-600 100%);
157
+
158
+ // Subtle background gradients
159
+ $gradient-bg-light: linear-gradient(180deg, $ossa-gray-50 0%, $ossa-gray-100 100%);
160
+ $gradient-bg-primary: linear-gradient(180deg, $ossa-primary-50 0%, $ossa-primary-100 100%);
161
+ $gradient-bg-secondary: linear-gradient(180deg, $ossa-secondary-50 0%, $ossa-secondary-100 100%);
162
+
163
+ // ============================================================================
164
+ // FOCUS RING COLORS (Accessibility)
165
+ // ============================================================================
166
+
167
+ $focus-ring-primary: $ossa-primary-500;
168
+ $focus-ring-secondary: $ossa-secondary-500;
169
+ $focus-ring-accent: $ossa-accent-500;
170
+ $focus-ring-error: $ossa-error-500;
171
+ $focus-ring-success: $ossa-success-500;
172
+
173
+ // Focus ring with opacity for layering
174
+ $focus-ring-primary-alpha: rgba($ossa-primary-500, 0.5);
175
+ $focus-ring-secondary-alpha: rgba($ossa-secondary-500, 0.5);
176
+ $focus-ring-accent-alpha: rgba($ossa-accent-500, 0.5);
177
+
178
+ // ============================================================================
179
+ // SHADOW TOKENS
180
+ // ============================================================================
181
+
182
+ $shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
183
+ $shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
184
+ $shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
185
+ $shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
186
+ $shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
187
+
188
+ // Colored shadows for emphasis
189
+ $shadow-primary: 0 10px 15px -3px rgba($ossa-primary-500, 0.2), 0 4px 6px -2px rgba($ossa-primary-500, 0.1);
190
+ $shadow-secondary: 0 10px 15px -3px rgba($ossa-secondary-500, 0.2), 0 4px 6px -2px rgba($ossa-secondary-500, 0.1);
191
+ $shadow-accent: 0 10px 15px -3px rgba($ossa-accent-500, 0.2), 0 4px 6px -2px rgba($ossa-accent-500, 0.1);
192
+
193
+ // ============================================================================
194
+ // BORDER RADIUS TOKENS
195
+ // ============================================================================
196
+
197
+ $radius-none: 0;
198
+ $radius-sm: 0.125rem; // 2px
199
+ $radius-md: 0.375rem; // 6px
200
+ $radius-lg: 0.5rem; // 8px
201
+ $radius-xl: 0.75rem; // 12px
202
+ $radius-2xl: 1rem; // 16px
203
+ $radius-3xl: 1.5rem; // 24px
204
+ $radius-full: 9999px; // Full circle
205
+
206
+ // ============================================================================
207
+ // TRANSITION TOKENS
208
+ // ============================================================================
209
+
210
+ $transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
211
+ $transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
212
+ $transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
213
+ $transition-slower: 500ms cubic-bezier(0.4, 0, 0.2, 1);
214
+
215
+ // ============================================================================
216
+ // Z-INDEX TOKENS
217
+ // ============================================================================
218
+
219
+ $z-dropdown: 1000;
220
+ $z-sticky: 1020;
221
+ $z-fixed: 1030;
222
+ $z-modal-backdrop: 1040;
223
+ $z-modal: 1050;
224
+ $z-popover: 1060;
225
+ $z-tooltip: 1070;
226
+
227
+ // ============================================================================
228
+ // OPACITY TOKENS
229
+ // ============================================================================
230
+
231
+ $opacity-0: 0;
232
+ $opacity-5: 0.05;
233
+ $opacity-10: 0.1;
234
+ $opacity-20: 0.2;
235
+ $opacity-25: 0.25;
236
+ $opacity-30: 0.3;
237
+ $opacity-40: 0.4;
238
+ $opacity-50: 0.5;
239
+ $opacity-60: 0.6;
240
+ $opacity-70: 0.7;
241
+ $opacity-75: 0.75;
242
+ $opacity-80: 0.8;
243
+ $opacity-90: 0.9;
244
+ $opacity-95: 0.95;
245
+ $opacity-100: 1;
@@ -0,0 +1,361 @@
1
+ // OSSA Design System - Typography System
2
+ // Complete typography hierarchy with responsive scales
3
+
4
+ // ============================================================================
5
+ // FONT FAMILIES
6
+ // ============================================================================
7
+
8
+ $font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
9
+ $font-mono: 'JetBrains Mono', 'Fira Code', Menlo, Monaco, 'Courier New', monospace;
10
+ $font-display: 'Inter', system-ui, -apple-system, sans-serif;
11
+ $font-body: 'Inter', system-ui, -apple-system, sans-serif;
12
+ $font-heading: 'Inter', system-ui, -apple-system, sans-serif;
13
+
14
+ // ============================================================================
15
+ // FONT WEIGHTS
16
+ // ============================================================================
17
+
18
+ $font-weight-thin: 100;
19
+ $font-weight-extralight: 200;
20
+ $font-weight-light: 300;
21
+ $font-weight-normal: 400;
22
+ $font-weight-medium: 500;
23
+ $font-weight-semibold: 600;
24
+ $font-weight-bold: 700;
25
+ $font-weight-extrabold: 800;
26
+ $font-weight-black: 900;
27
+
28
+ // ============================================================================
29
+ // FONT SIZES (Desktop)
30
+ // ============================================================================
31
+
32
+ // Display level (Hero text)
33
+ $font-size-display: 4.5rem; // 72px
34
+ $line-height-display: 1.1;
35
+ $font-weight-display: $font-weight-extrabold;
36
+
37
+ // Heading levels
38
+ $font-size-h1: 3.5rem; // 56px
39
+ $line-height-h1: 1.2;
40
+ $font-weight-h1: $font-weight-bold;
41
+
42
+ $font-size-h2: 2.5rem; // 40px
43
+ $line-height-h2: 1.3;
44
+ $font-weight-h2: $font-weight-bold;
45
+
46
+ $font-size-h3: 2rem; // 32px
47
+ $line-height-h3: 1.4;
48
+ $font-weight-h3: $font-weight-semibold;
49
+
50
+ $font-size-h4: 1.5rem; // 24px
51
+ $line-height-h4: 1.5;
52
+ $font-weight-h4: $font-weight-semibold;
53
+
54
+ $font-size-h5: 1.25rem; // 20px
55
+ $line-height-h5: 1.5;
56
+ $font-weight-h5: $font-weight-semibold;
57
+
58
+ $font-size-h6: 1.125rem; // 18px
59
+ $line-height-h6: 1.5;
60
+ $font-weight-h6: $font-weight-semibold;
61
+
62
+ // Body text
63
+ $font-size-base: 1rem; // 16px
64
+ $line-height-base: 1.6;
65
+ $font-weight-base: $font-weight-normal;
66
+
67
+ $font-size-lg: 1.125rem; // 18px
68
+ $line-height-lg: 1.6;
69
+
70
+ $font-size-sm: 0.875rem; // 14px
71
+ $line-height-sm: 1.5;
72
+
73
+ $font-size-xs: 0.75rem; // 12px
74
+ $line-height-xs: 1.4;
75
+
76
+ // ============================================================================
77
+ // RESPONSIVE FONT SIZES (Mobile)
78
+ // ============================================================================
79
+
80
+ // Mobile adjustments (reduce by ~20-30% for smaller screens)
81
+ $font-size-display-mobile: 3rem; // 48px (from 72px)
82
+ $font-size-h1-mobile: 2.5rem; // 40px (from 56px)
83
+ $font-size-h2-mobile: 2rem; // 32px (from 40px)
84
+ $font-size-h3-mobile: 1.75rem; // 28px (from 32px)
85
+ $font-size-h4-mobile: 1.375rem; // 22px (from 24px)
86
+ $font-size-h5-mobile: 1.125rem; // 18px (from 20px)
87
+ $font-size-h6-mobile: 1rem; // 16px (from 18px)
88
+
89
+ // ============================================================================
90
+ // LETTER SPACING
91
+ // ============================================================================
92
+
93
+ $letter-spacing-tighter: -0.05em;
94
+ $letter-spacing-tight: -0.025em;
95
+ $letter-spacing-normal: 0;
96
+ $letter-spacing-wide: 0.025em;
97
+ $letter-spacing-wider: 0.05em;
98
+ $letter-spacing-widest: 0.1em;
99
+
100
+ // ============================================================================
101
+ // TYPOGRAPHY MIXINS
102
+ // ============================================================================
103
+
104
+ // Display text (Hero sections)
105
+ @mixin text-display {
106
+ font-family: $font-display;
107
+ font-size: $font-size-display;
108
+ line-height: $line-height-display;
109
+ font-weight: $font-weight-display;
110
+ letter-spacing: $letter-spacing-tight;
111
+
112
+ @media (max-width: 768px) {
113
+ font-size: $font-size-display-mobile;
114
+ }
115
+ }
116
+
117
+ // Heading 1
118
+ @mixin text-h1 {
119
+ font-family: $font-heading;
120
+ font-size: $font-size-h1;
121
+ line-height: $line-height-h1;
122
+ font-weight: $font-weight-h1;
123
+ letter-spacing: $letter-spacing-tight;
124
+
125
+ @media (max-width: 768px) {
126
+ font-size: $font-size-h1-mobile;
127
+ }
128
+ }
129
+
130
+ // Heading 2
131
+ @mixin text-h2 {
132
+ font-family: $font-heading;
133
+ font-size: $font-size-h2;
134
+ line-height: $line-height-h2;
135
+ font-weight: $font-weight-h2;
136
+ letter-spacing: $letter-spacing-tight;
137
+
138
+ @media (max-width: 768px) {
139
+ font-size: $font-size-h2-mobile;
140
+ }
141
+ }
142
+
143
+ // Heading 3
144
+ @mixin text-h3 {
145
+ font-family: $font-heading;
146
+ font-size: $font-size-h3;
147
+ line-height: $line-height-h3;
148
+ font-weight: $font-weight-h3;
149
+ letter-spacing: $letter-spacing-normal;
150
+
151
+ @media (max-width: 768px) {
152
+ font-size: $font-size-h3-mobile;
153
+ }
154
+ }
155
+
156
+ // Heading 4
157
+ @mixin text-h4 {
158
+ font-family: $font-heading;
159
+ font-size: $font-size-h4;
160
+ line-height: $line-height-h4;
161
+ font-weight: $font-weight-h4;
162
+ letter-spacing: $letter-spacing-normal;
163
+
164
+ @media (max-width: 768px) {
165
+ font-size: $font-size-h4-mobile;
166
+ }
167
+ }
168
+
169
+ // Heading 5
170
+ @mixin text-h5 {
171
+ font-family: $font-heading;
172
+ font-size: $font-size-h5;
173
+ line-height: $line-height-h5;
174
+ font-weight: $font-weight-h5;
175
+ letter-spacing: $letter-spacing-normal;
176
+
177
+ @media (max-width: 768px) {
178
+ font-size: $font-size-h5-mobile;
179
+ }
180
+ }
181
+
182
+ // Heading 6
183
+ @mixin text-h6 {
184
+ font-family: $font-heading;
185
+ font-size: $font-size-h6;
186
+ line-height: $line-height-h6;
187
+ font-weight: $font-weight-h6;
188
+ letter-spacing: $letter-spacing-normal;
189
+
190
+ @media (max-width: 768px) {
191
+ font-size: $font-size-h6-mobile;
192
+ }
193
+ }
194
+
195
+ // Body text
196
+ @mixin text-body {
197
+ font-family: $font-body;
198
+ font-size: $font-size-base;
199
+ line-height: $line-height-base;
200
+ font-weight: $font-weight-base;
201
+ letter-spacing: $letter-spacing-normal;
202
+ }
203
+
204
+ // Large body text
205
+ @mixin text-body-lg {
206
+ font-family: $font-body;
207
+ font-size: $font-size-lg;
208
+ line-height: $line-height-lg;
209
+ font-weight: $font-weight-base;
210
+ letter-spacing: $letter-spacing-normal;
211
+ }
212
+
213
+ // Small text
214
+ @mixin text-sm {
215
+ font-family: $font-body;
216
+ font-size: $font-size-sm;
217
+ line-height: $line-height-sm;
218
+ font-weight: $font-weight-base;
219
+ letter-spacing: $letter-spacing-normal;
220
+ }
221
+
222
+ // Extra small text
223
+ @mixin text-xs {
224
+ font-family: $font-body;
225
+ font-size: $font-size-xs;
226
+ line-height: $line-height-xs;
227
+ font-weight: $font-weight-base;
228
+ letter-spacing: $letter-spacing-wide;
229
+ }
230
+
231
+ // Code/monospace text
232
+ @mixin text-code {
233
+ font-family: $font-mono;
234
+ font-size: 0.875em; // Slightly smaller than surrounding text
235
+ line-height: 1.5;
236
+ font-weight: $font-weight-normal;
237
+ }
238
+
239
+ // ============================================================================
240
+ // UTILITY CLASSES
241
+ // ============================================================================
242
+
243
+ .text-display {
244
+ @include text-display;
245
+ }
246
+
247
+ .text-h1 {
248
+ @include text-h1;
249
+ }
250
+
251
+ .text-h2 {
252
+ @include text-h2;
253
+ }
254
+
255
+ .text-h3 {
256
+ @include text-h3;
257
+ }
258
+
259
+ .text-h4 {
260
+ @include text-h4;
261
+ }
262
+
263
+ .text-h5 {
264
+ @include text-h5;
265
+ }
266
+
267
+ .text-h6 {
268
+ @include text-h6;
269
+ }
270
+
271
+ .text-body {
272
+ @include text-body;
273
+ }
274
+
275
+ .text-body-lg {
276
+ @include text-body-lg;
277
+ }
278
+
279
+ .text-sm {
280
+ @include text-sm;
281
+ }
282
+
283
+ .text-xs {
284
+ @include text-xs;
285
+ }
286
+
287
+ .text-code {
288
+ @include text-code;
289
+ }
290
+
291
+ // Font weight utilities
292
+ .font-thin { font-weight: $font-weight-thin; }
293
+ .font-extralight { font-weight: $font-weight-extralight; }
294
+ .font-light { font-weight: $font-weight-light; }
295
+ .font-normal { font-weight: $font-weight-normal; }
296
+ .font-medium { font-weight: $font-weight-medium; }
297
+ .font-semibold { font-weight: $font-weight-semibold; }
298
+ .font-bold { font-weight: $font-weight-bold; }
299
+ .font-extrabold { font-weight: $font-weight-extrabold; }
300
+ .font-black { font-weight: $font-weight-black; }
301
+
302
+ // Letter spacing utilities
303
+ .tracking-tighter { letter-spacing: $letter-spacing-tighter; }
304
+ .tracking-tight { letter-spacing: $letter-spacing-tight; }
305
+ .tracking-normal { letter-spacing: $letter-spacing-normal; }
306
+ .tracking-wide { letter-spacing: $letter-spacing-wide; }
307
+ .tracking-wider { letter-spacing: $letter-spacing-wider; }
308
+ .tracking-widest { letter-spacing: $letter-spacing-widest; }
309
+
310
+ // Text transform utilities
311
+ .uppercase { text-transform: uppercase; }
312
+ .lowercase { text-transform: lowercase; }
313
+ .capitalize { text-transform: capitalize; }
314
+ .normal-case { text-transform: none; }
315
+
316
+ // Text decoration utilities
317
+ .underline { text-decoration: underline; }
318
+ .line-through { text-decoration: line-through; }
319
+ .no-underline { text-decoration: none; }
320
+
321
+ // Text alignment utilities
322
+ .text-left { text-align: left; }
323
+ .text-center { text-align: center; }
324
+ .text-right { text-align: right; }
325
+ .text-justify { text-align: justify; }
326
+
327
+ // Truncate text
328
+ .truncate {
329
+ overflow: hidden;
330
+ text-overflow: ellipsis;
331
+ white-space: nowrap;
332
+ }
333
+
334
+ // Line clamp utilities
335
+ .line-clamp-1 {
336
+ display: -webkit-box;
337
+ -webkit-line-clamp: 1;
338
+ -webkit-box-orient: vertical;
339
+ overflow: hidden;
340
+ }
341
+
342
+ .line-clamp-2 {
343
+ display: -webkit-box;
344
+ -webkit-line-clamp: 2;
345
+ -webkit-box-orient: vertical;
346
+ overflow: hidden;
347
+ }
348
+
349
+ .line-clamp-3 {
350
+ display: -webkit-box;
351
+ -webkit-line-clamp: 3;
352
+ -webkit-box-orient: vertical;
353
+ overflow: hidden;
354
+ }
355
+
356
+ .line-clamp-4 {
357
+ display: -webkit-box;
358
+ -webkit-line-clamp: 4;
359
+ -webkit-box-orient: vertical;
360
+ overflow: hidden;
361
+ }