@bluefly/openstandardagents 0.2.7 → 0.2.9
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/.devfile.yaml +1 -1
- package/.env.example +1 -1
- package/.github/AGENTS.md +245 -0
- package/.github/agents/github-issue-triage.ossa.yaml +99 -0
- package/.github/agents/github-pr-triage.ossa.yaml +137 -0
- package/.github/workflows/issue-sync-to-gitlab.yml +138 -0
- package/.github/workflows/pr-triage-to-gitlab.yml +164 -0
- package/.version.json +2 -2
- package/.wiki-config.json +24 -0
- package/CHANGELOG.md +44 -18
- package/CODEOWNERS +75 -0
- package/CONTRIBUTING.md +103 -4
- package/README.md +178 -243
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/repositories/schema.repository.d.ts +6 -1
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +49 -27
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/migration.service.d.ts +4 -3
- package/dist/services/migration.service.d.ts.map +1 -1
- package/dist/services/migration.service.js +11 -10
- package/dist/services/migration.service.js.map +1 -1
- package/dist/services/release-automation/release.service.js +1 -1
- package/dist/services/release-automation/release.service.js.map +1 -1
- package/dist/services/release-automation/schemas/release.schema.js +1 -1
- package/dist/services/release-automation/webhook.service.js +3 -3
- package/dist/services/release-automation/webhook.service.js.map +1 -1
- package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
- package/dist/services/runtime/claude/claude-adapter.js +2 -2
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
- package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.8/README.md +72 -0
- package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
- package/{spec/v0.2.6-dev/ossa-0.2.5.schema.json → dist/spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
- package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/dist/spec/v0.2.9/a2a-protocol.md +1337 -0
- package/dist/spec/v0.2.9/agent.md +1946 -0
- package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
- package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
- package/dist/spec/v0.2.9/capability-schema.md +576 -0
- package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
- package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
- package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
- package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
- package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
- package/dist/spec/v0.2.9/security-model.md +1245 -0
- package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
- package/dist/spec/v0.2.9/types.ts +522 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/policy.d.ts +377 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +84 -0
- package/dist/types/policy.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/version.d.ts +68 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +156 -0
- package/dist/utils/version.js.map +1 -0
- package/docs/specs/policy-dsl.md +925 -0
- package/eslint-report.json +1 -0
- package/examples/adk-integration/code-review-workflow.yml +1 -1
- package/examples/adk-integration/customer-support.yml +1 -1
- package/examples/adk-integration/data-pipeline.yml +1 -1
- package/examples/advanced/reasoning-agent.yaml +136 -0
- package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
- package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
- package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
- package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
- package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
- package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
- package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
- package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
- package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
- package/examples/agents-md/code-agent.ossa.json +100 -0
- package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
- package/examples/anthropic/claude-assistant.ossa.json +1 -1
- package/examples/autogen/multi-agent.ossa.json +1 -1
- package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
- package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
- package/examples/common_npm/agent-router.ossa.yaml +1 -0
- package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
- package/examples/crewai/research-team.ossa.json +1 -1
- package/examples/cursor/code-review-agent.ossa.json +1 -1
- package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
- package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
- package/examples/extensions/agents-md-v1.yml +175 -0
- package/examples/extensions/drupal-v1.yml +1 -1
- package/examples/extensions/kagent-v1.yml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
- package/examples/kagent/compliance-validator.ossa.yaml +1 -1
- package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
- package/examples/kagent/documentation-agent.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
- package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
- package/examples/kagent/security-scanner.ossa.yaml +1 -1
- package/examples/langchain/chain-agent.ossa.json +1 -1
- package/examples/langflow/workflow-agent.ossa.json +1 -1
- package/examples/langgraph/state-machine-agent.ossa.json +1 -1
- package/examples/llamaindex/rag-agent.ossa.json +1 -1
- package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
- package/examples/multi-agent/README.md +74 -0
- package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
- package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
- package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
- package/examples/openai/basic-agent.ossa.yaml +1 -1
- package/examples/openai/multi-tool-agent.ossa.json +1 -1
- package/examples/openai/swarm-agent.ossa.json +1 -1
- package/examples/production/document-analyzer-openai.yml +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/spec-examples/audit-agent.yml +1 -1
- package/examples/spec-examples/chat-agent.yml +1 -1
- package/examples/spec-examples/compliance-agent.yml +1 -1
- package/examples/spec-examples/monitoring-agent.yml +1 -1
- package/examples/spec-examples/workflow-agent.yml +1 -1
- package/examples/templates/ossa-compliance.yaml +1 -1
- package/examples/vercel/edge-agent.ossa.json +1 -1
- package/gl-code-quality-report.json +62 -0
- package/llms-ctx-full.txt +39 -0
- package/llms-ctx.txt +39 -0
- package/llms.txt +47 -0
- package/package.json +6 -3
- package/scripts/README.md +25 -0
- package/scripts/compliance-audit.ts +796 -0
- package/scripts/eslint-to-codequality.cjs +34 -0
- package/scripts/generate-agents-catalog.ts +2 -1
- package/scripts/generate-api-docs.ts +2 -1
- package/scripts/generate-examples-docs.ts +2 -1
- package/scripts/generate-llms-ctx.sh +17 -0
- package/scripts/generate-schema-docs.ts +31 -10
- package/scripts/sync-version.js +4 -12
- package/scripts/validate-schema.ts +2 -1
- package/spec/v0.2.8/CHANGELOG.md +401 -0
- package/spec/v0.2.8/README.md +72 -0
- package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
- package/spec/{v0.2.6-dev/ossa-0.2.6-dev.schema.json → v0.2.8/ossa-0.2.8.schema.json} +1509 -52
- package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/spec/v0.2.9/a2a-protocol.md +1337 -0
- package/spec/v0.2.9/agent.md +1946 -0
- package/spec/v0.2.9/capabilities/index.yaml +25 -0
- package/spec/v0.2.9/capabilities/memory.yaml +251 -0
- package/spec/v0.2.9/capability-schema.md +576 -0
- package/spec/v0.2.9/compliance-profiles.md +533 -0
- package/spec/v0.2.9/conformance-testing.md +1527 -0
- package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
- package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
- package/spec/v0.2.9/runtime-semantics.md +464 -0
- package/spec/v0.2.9/security-model.md +1245 -0
- package/spec/v0.2.9/semantic-conventions.md +347 -0
- package/spec/v0.2.9/types.ts +522 -0
- package/test-results/junit.xml +337 -0
- package/.github/workflows/pr-comment.yml +0 -33
- package/bin/validate-ossa-0.2.5-RC.ts +0 -244
- package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +0 -1696
- package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
- package/scripts/lib/exec.ts +0 -37
- package/scripts/lib/file-ops.ts +0 -58
- package/scripts/lib/version.ts +0 -83
- package/website/.lighthouserc.ts +0 -24
- package/website/.prettierrc +0 -10
- package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
- package/website/Dockerfile +0 -30
- package/website/app/about/page.tsx +0 -304
- package/website/app/blog/[slug]/page.tsx +0 -208
- package/website/app/blog/page.tsx +0 -249
- package/website/app/design-guide/page.tsx +0 -511
- package/website/app/docs/[[...slug]]/page.tsx +0 -847
- package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
- package/website/app/ecosystem/page.tsx +0 -410
- package/website/app/examples/page.tsx +0 -133
- package/website/app/globals.scss +0 -370
- package/website/app/layout.tsx +0 -106
- package/website/app/license/page.tsx +0 -183
- package/website/app/not-found.tsx +0 -18
- package/website/app/page.tsx +0 -686
- package/website/app/page.tsx.bak +0 -679
- package/website/app/page.tsx.bak2 +0 -649
- package/website/app/playground/page.tsx +0 -487
- package/website/app/robots.ts +0 -19
- package/website/app/rss.xml/route.ts +0 -74
- package/website/app/schema/page.tsx +0 -1001
- package/website/app/sitemap.ts +0 -56
- package/website/app/specification/page.tsx +0 -287
- package/website/components/InstallCommand.tsx +0 -96
- package/website/components/Logo.tsx +0 -97
- package/website/components/StructuredData.tsx +0 -65
- package/website/components/docs/DocsSearch.tsx +0 -104
- package/website/components/docs/DocsSidebar.tsx +0 -155
- package/website/components/docs/MarkdownContent.tsx +0 -401
- package/website/components/docs/VersionSelector.tsx +0 -105
- package/website/components/examples/ExamplesViewer.tsx +0 -293
- package/website/components/layout/Footer.tsx +0 -116
- package/website/components/layout/Header.tsx +0 -172
- package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
- package/website/components/schema/SchemaExplorer.tsx +0 -213
- package/website/components/ui/Badge.tsx +0 -82
- package/website/components/ui/Button.tsx +0 -116
- package/website/components/ui/Card.tsx +0 -167
- package/website/components/ui/Checkbox.tsx +0 -141
- package/website/components/ui/Input.tsx +0 -169
- package/website/components/ui/Radio.tsx +0 -141
- package/website/components/ui/Select.tsx +0 -182
- package/website/components/ui/Tag.tsx +0 -158
- package/website/components/ui/Textarea.tsx +0 -195
- package/website/components/ui/index.ts +0 -11
- package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
- package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
- package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
- package/website/content/blog/introducing-ossa-framework.md +0 -328
- package/website/content/blog/ossa-production-results.md +0 -279
- package/website/content/blog/welcome-to-ossa.md +0 -43
- package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
- package/website/content/docs/00-home.md +0 -153
- package/website/content/docs/adapters/openai-adapter.md +0 -693
- package/website/content/docs/agents/catalog.md +0 -28
- package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
- package/website/content/docs/api-reference/index.md +0 -38
- package/website/content/docs/api-reference/ossa-core-api.md +0 -634
- package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
- package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
- package/website/content/docs/architecture/execution-flow.md +0 -335
- package/website/content/docs/architecture/multi-agent-systems.md +0 -737
- package/website/content/docs/architecture/overview.md +0 -121
- package/website/content/docs/architecture/stack-integration.md +0 -461
- package/website/content/docs/changelog.md +0 -246
- package/website/content/docs/cli-reference/index.md +0 -111
- package/website/content/docs/cli-reference/ossa-agents.md +0 -70
- package/website/content/docs/cli-reference/ossa-export.md +0 -56
- package/website/content/docs/cli-reference/ossa-generate.md +0 -66
- package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
- package/website/content/docs/cli-reference/ossa-import.md +0 -56
- package/website/content/docs/cli-reference/ossa-init.md +0 -57
- package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
- package/website/content/docs/cli-reference/ossa-run.md +0 -66
- package/website/content/docs/cli-reference/ossa-schema.md +0 -57
- package/website/content/docs/cli-reference/ossa-setup.md +0 -57
- package/website/content/docs/cli-reference/ossa-validate.md +0 -66
- package/website/content/docs/configuration/index.md +0 -97
- package/website/content/docs/contributing.md +0 -599
- package/website/content/docs/deployment/github-mirroring.md +0 -924
- package/website/content/docs/documentation.md +0 -100
- package/website/content/docs/ecosystem/framework-support.md +0 -1361
- package/website/content/docs/ecosystem/overview.md +0 -366
- package/website/content/docs/errors/index.md +0 -10
- package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
- package/website/content/docs/examples/catalog.md +0 -300
- package/website/content/docs/for-audiences/students-researchers.md +0 -122
- package/website/content/docs/getting-started/index.md +0 -92
- package/website/content/docs/getting-started/installation.md +0 -155
- package/website/content/docs/getting-started/running-agents.md +0 -309
- package/website/content/docs/getting-started.md +0 -91
- package/website/content/docs/integrations/aiflow.md +0 -104
- package/website/content/docs/integrations/drupal.md +0 -105
- package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
- package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
- package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
- package/website/content/docs/migration-guides/index.md +0 -133
- package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
- package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
- package/website/content/docs/migration-guides/migration-manifest.json +0 -64
- package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
- package/website/content/docs/openapi-extensions/examples.md +0 -550
- package/website/content/docs/openapi-extensions/index.md +0 -551
- package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
- package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
- package/website/content/docs/ossa-compliant-badge.md +0 -251
- package/website/content/docs/pre-release/index.md +0 -175
- package/website/content/docs/quick-reference.md +0 -17
- package/website/content/docs/readme.md +0 -35
- package/website/content/docs/releases/v0.2.6.md +0 -99
- package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
- package/website/content/docs/schema-reference/agent-id.md +0 -52
- package/website/content/docs/schema-reference/agent-name.md +0 -50
- package/website/content/docs/schema-reference/agent-role.md +0 -54
- package/website/content/docs/schema-reference/agent-spec.md +0 -406
- package/website/content/docs/schema-reference/agent-version.md +0 -50
- package/website/content/docs/schema-reference/autonomy.md +0 -568
- package/website/content/docs/schema-reference/constraints.md +0 -543
- package/website/content/docs/schema-reference/index.md +0 -45
- package/website/content/docs/schema-reference/llm-config.md +0 -445
- package/website/content/docs/schema-reference/observability.md +0 -654
- package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
- package/website/content/docs/schema-reference/taxonomy.md +0 -509
- package/website/content/docs/schema-reference/tools.md +0 -628
- package/website/content/docs/templates/blog-post.md +0 -43
- package/website/content/docs/types-reference/index.md +0 -105
- package/website/content/docs/use-cases/00-index.md +0 -395
- package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
- package/website/content/docs/use-cases/customer-support.md +0 -1234
- package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
- package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
- package/website/content/docs/versioning.md +0 -288
- package/website/dev.sh +0 -53
- package/website/docker-compose.dev.yml +0 -36
- package/website/lib/version.ts +0 -35
- package/website/lib/versions.json +0 -103
- package/website/next.config.ts +0 -18
- package/website/nginx.conf +0 -32
- package/website/package-lock.json +0 -9679
- package/website/package.json +0 -59
- package/website/postcss.config.mjs +0 -9
- package/website/scripts/fetch-versions.js +0 -166
- package/website/scripts/generate-examples-index.js +0 -163
- package/website/scripts/merge-docs-to-wiki.ts +0 -207
- package/website/scripts/sync-version.js +0 -72
- package/website/scripts/sync-wiki.ts +0 -322
- package/website/scripts/upload-wiki.ts +0 -199
- package/website/styles/_spacing.scss +0 -453
- package/website/styles/_tokens.scss +0 -245
- package/website/styles/_typography.scss +0 -361
- package/website/styles/_variables.scss +0 -287
- package/website/tailwind.config.ts +0 -170
|
@@ -1,361 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,287 +0,0 @@
|
|
|
1
|
-
// OSSA Design System - Centralized Color Variables
|
|
2
|
-
// Update colors here to change them site-wide
|
|
3
|
-
// Based on Brand Guide v1.0.0 (Issue #44)
|
|
4
|
-
|
|
5
|
-
// ============================================================================
|
|
6
|
-
// PRIMARY BRAND COLOR - Deep Purple (#4A3ECD)
|
|
7
|
-
// ============================================================================
|
|
8
|
-
$ossa-primary-50: #f5f4fd;
|
|
9
|
-
$ossa-primary-100: #e8e5fa;
|
|
10
|
-
$ossa-primary-200: #d4cff5;
|
|
11
|
-
$ossa-primary-300: #b5abee;
|
|
12
|
-
$ossa-primary-400: #8f7ee4;
|
|
13
|
-
$ossa-primary-500: #4A3ECD; // Base - Main blue-purple
|
|
14
|
-
$ossa-primary-600: #3d2fb8;
|
|
15
|
-
$ossa-primary-700: #322598;
|
|
16
|
-
$ossa-primary-800: #2a1f7a;
|
|
17
|
-
$ossa-primary-900: #241f65;
|
|
18
|
-
$ossa-primary-950: #15113a;
|
|
19
|
-
|
|
20
|
-
// Legacy alias for backward compatibility
|
|
21
|
-
$ossa-primary: $ossa-primary-500;
|
|
22
|
-
|
|
23
|
-
// ============================================================================
|
|
24
|
-
// SECONDARY BRAND COLOR - Cyan Blue (#1CB9ED)
|
|
25
|
-
// ============================================================================
|
|
26
|
-
$ossa-secondary-50: #ecfbff;
|
|
27
|
-
$ossa-secondary-100: #d1f5fe;
|
|
28
|
-
$ossa-secondary-200: #a8e9fd;
|
|
29
|
-
$ossa-secondary-300: #6fd8fa;
|
|
30
|
-
$ossa-secondary-400: #2ec0f5;
|
|
31
|
-
$ossa-secondary-500: #1CB9ED; // Base - Cyan-blue
|
|
32
|
-
$ossa-secondary-600: #0a9dd1;
|
|
33
|
-
$ossa-secondary-700: #087da9;
|
|
34
|
-
$ossa-secondary-800: #0c6688;
|
|
35
|
-
$ossa-secondary-900: #105570;
|
|
36
|
-
$ossa-secondary-950: #08374a;
|
|
37
|
-
|
|
38
|
-
// Legacy alias for backward compatibility
|
|
39
|
-
$ossa-secondary: $ossa-secondary-500;
|
|
40
|
-
|
|
41
|
-
// ============================================================================
|
|
42
|
-
// ACCENT COLOR - Light Purple (#9060EA)
|
|
43
|
-
// ============================================================================
|
|
44
|
-
$ossa-accent-50: #f7f4fe;
|
|
45
|
-
$ossa-accent-100: #ede9fd;
|
|
46
|
-
$ossa-accent-200: #ddd4fb;
|
|
47
|
-
$ossa-accent-300: #c5b3f8;
|
|
48
|
-
$ossa-accent-400: #a887f3;
|
|
49
|
-
$ossa-accent-500: #9060EA; // Base - Purple accent
|
|
50
|
-
$ossa-accent-600: #7c3aed;
|
|
51
|
-
$ossa-accent-700: #6b28d9;
|
|
52
|
-
$ossa-accent-800: #5923b8;
|
|
53
|
-
$ossa-accent-900: #4b1f97;
|
|
54
|
-
$ossa-accent-950: #2d0f5c;
|
|
55
|
-
|
|
56
|
-
// Legacy alias for backward compatibility
|
|
57
|
-
$ossa-accent: $ossa-accent-500;
|
|
58
|
-
|
|
59
|
-
// ============================================================================
|
|
60
|
-
// DARK PURPLE - For contrast and depth (#2D1B69)
|
|
61
|
-
// ============================================================================
|
|
62
|
-
$ossa-dark-purple-50: #f5f3f9;
|
|
63
|
-
$ossa-dark-purple-100: #ebe7f3;
|
|
64
|
-
$ossa-dark-purple-200: #d9d1e9;
|
|
65
|
-
$ossa-dark-purple-300: #bfafd9;
|
|
66
|
-
$ossa-dark-purple-400: #9f85c5;
|
|
67
|
-
$ossa-dark-purple-500: #7d5db0;
|
|
68
|
-
$ossa-dark-purple-600: #654497;
|
|
69
|
-
$ossa-dark-purple-700: #53367d;
|
|
70
|
-
$ossa-dark-purple-800: #462e68;
|
|
71
|
-
$ossa-dark-purple-900: #2D1B69; // Base - Dark purple for contrast
|
|
72
|
-
$ossa-dark-purple-950: #1a0f3d;
|
|
73
|
-
|
|
74
|
-
// Alias
|
|
75
|
-
$ossa-dark-purple: $ossa-dark-purple-900;
|
|
76
|
-
|
|
77
|
-
// ============================================================================
|
|
78
|
-
// SEMANTIC COLORS - Success, Warning, Error, Info
|
|
79
|
-
// ============================================================================
|
|
80
|
-
|
|
81
|
-
// Success - Green
|
|
82
|
-
$ossa-success-50: #ecfdf5;
|
|
83
|
-
$ossa-success-100: #d1fae5;
|
|
84
|
-
$ossa-success-200: #a7f3d0;
|
|
85
|
-
$ossa-success-300: #6ee7b7;
|
|
86
|
-
$ossa-success-400: #34d399;
|
|
87
|
-
$ossa-success-500: #10b981; // Base
|
|
88
|
-
$ossa-success-600: #059669;
|
|
89
|
-
$ossa-success-700: #047857;
|
|
90
|
-
$ossa-success-800: #065f46;
|
|
91
|
-
$ossa-success-900: #064e3b;
|
|
92
|
-
$ossa-success-950: #022c22;
|
|
93
|
-
|
|
94
|
-
// Legacy alias
|
|
95
|
-
$ossa-success: $ossa-success-500;
|
|
96
|
-
|
|
97
|
-
// Warning - Amber
|
|
98
|
-
$ossa-warning-50: #fffbeb;
|
|
99
|
-
$ossa-warning-100: #fef3c7;
|
|
100
|
-
$ossa-warning-200: #fde68a;
|
|
101
|
-
$ossa-warning-300: #fcd34d;
|
|
102
|
-
$ossa-warning-400: #fbbf24;
|
|
103
|
-
$ossa-warning-500: #f59e0b; // Base
|
|
104
|
-
$ossa-warning-600: #d97706;
|
|
105
|
-
$ossa-warning-700: #b45309;
|
|
106
|
-
$ossa-warning-800: #92400e;
|
|
107
|
-
$ossa-warning-900: #78350f;
|
|
108
|
-
$ossa-warning-950: #451a03;
|
|
109
|
-
|
|
110
|
-
// Legacy alias
|
|
111
|
-
$ossa-warning: $ossa-warning-500;
|
|
112
|
-
|
|
113
|
-
// Error - Red
|
|
114
|
-
$ossa-error-50: #fef2f2;
|
|
115
|
-
$ossa-error-100: #fee2e2;
|
|
116
|
-
$ossa-error-200: #fecaca;
|
|
117
|
-
$ossa-error-300: #fca5a5;
|
|
118
|
-
$ossa-error-400: #f87171;
|
|
119
|
-
$ossa-error-500: #ef4444; // Base
|
|
120
|
-
$ossa-error-600: #dc2626;
|
|
121
|
-
$ossa-error-700: #b91c1c;
|
|
122
|
-
$ossa-error-800: #991b1b;
|
|
123
|
-
$ossa-error-900: #7f1d1d;
|
|
124
|
-
$ossa-error-950: #450a0a;
|
|
125
|
-
|
|
126
|
-
// Legacy alias
|
|
127
|
-
$ossa-error: $ossa-error-500;
|
|
128
|
-
|
|
129
|
-
// Info - Cyan
|
|
130
|
-
$ossa-info-50: #ecfeff;
|
|
131
|
-
$ossa-info-100: #cffafe;
|
|
132
|
-
$ossa-info-200: #a5f3fc;
|
|
133
|
-
$ossa-info-300: #67e8f9;
|
|
134
|
-
$ossa-info-400: #22d3ee;
|
|
135
|
-
$ossa-info-500: #06b6d4; // Base
|
|
136
|
-
$ossa-info-600: #0891b2;
|
|
137
|
-
$ossa-info-700: #0e7490;
|
|
138
|
-
$ossa-info-800: #155e75;
|
|
139
|
-
$ossa-info-900: #164e63;
|
|
140
|
-
$ossa-info-950: #083344;
|
|
141
|
-
|
|
142
|
-
// Legacy alias
|
|
143
|
-
$ossa-info: $ossa-info-500;
|
|
144
|
-
|
|
145
|
-
// ============================================================================
|
|
146
|
-
// NEUTRAL COLORS - Grays
|
|
147
|
-
// ============================================================================
|
|
148
|
-
$ossa-gray-50: #f9fafb;
|
|
149
|
-
$ossa-gray-100: #f3f4f6;
|
|
150
|
-
$ossa-gray-200: #e5e7eb;
|
|
151
|
-
$ossa-gray-300: #d1d5db;
|
|
152
|
-
$ossa-gray-400: #9ca3af;
|
|
153
|
-
$ossa-gray-500: #6b7280;
|
|
154
|
-
$ossa-gray-600: #4b5563;
|
|
155
|
-
$ossa-gray-700: #374151;
|
|
156
|
-
$ossa-gray-800: #1f2937;
|
|
157
|
-
$ossa-gray-900: #111827;
|
|
158
|
-
$ossa-gray-950: #030712;
|
|
159
|
-
|
|
160
|
-
// Special colors
|
|
161
|
-
$ossa-white: #ffffff;
|
|
162
|
-
$ossa-black: #000000;
|
|
163
|
-
$ossa-dark: #1A1A2E; // From brand guide
|
|
164
|
-
|
|
165
|
-
// ============================================================================
|
|
166
|
-
// FOCUS RING COLORS - For Accessibility
|
|
167
|
-
// ============================================================================
|
|
168
|
-
$ossa-focus-primary: rgba(74, 62, 205, 0.3); // primary/30
|
|
169
|
-
$ossa-focus-secondary: rgba(28, 185, 237, 0.3); // secondary/30
|
|
170
|
-
$ossa-focus-accent: rgba(144, 96, 234, 0.3); // accent/30
|
|
171
|
-
|
|
172
|
-
// Gradients - Lightest blue to darkest purple, blue spans more
|
|
173
|
-
// Order: secondary (lightest blue #1CB9ED) -> primary (blue-purple #4A3ECD) -> accent (darkest purple #9060EA)
|
|
174
|
-
$gradient-brand: linear-gradient(135deg, $ossa-secondary 0%, $ossa-secondary 40%, $ossa-primary 70%, $ossa-accent 100%);
|
|
175
|
-
$gradient-hero: linear-gradient(135deg, $ossa-secondary 0%, $ossa-secondary 35%, $ossa-primary 65%, $ossa-accent 100%);
|
|
176
|
-
$gradient-button: linear-gradient(135deg, $ossa-secondary 0%, $ossa-secondary 45%, $ossa-primary 75%, $ossa-accent 100%);
|
|
177
|
-
|
|
178
|
-
// ============================================================================
|
|
179
|
-
// TYPOGRAPHY SYSTEM - Based on Issue #44 Brand Guide
|
|
180
|
-
// ============================================================================
|
|
181
|
-
|
|
182
|
-
// Font Families
|
|
183
|
-
$font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
184
|
-
$font-mono: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
|
|
185
|
-
|
|
186
|
-
// Type Scale - Exact specifications from Issue #44
|
|
187
|
-
$text-display: 4.5rem; // 72px - Display/Hero
|
|
188
|
-
$text-h1: 3.5rem; // 56px - H1
|
|
189
|
-
$text-h2: 2.5rem; // 40px - H2
|
|
190
|
-
$text-h3: 2rem; // 32px - H3
|
|
191
|
-
$text-h4: 1.5rem; // 24px - H4
|
|
192
|
-
$text-h5: 1.25rem; // 20px - H5
|
|
193
|
-
$text-h6: 1.125rem; // 18px - H6
|
|
194
|
-
$text-body: 1rem; // 16px - Body
|
|
195
|
-
$text-small: 0.875rem; // 14px - Small
|
|
196
|
-
|
|
197
|
-
// Line Heights - From Issue #44
|
|
198
|
-
$leading-display: 1.1;
|
|
199
|
-
$leading-h1: 1.2;
|
|
200
|
-
$leading-h2: 1.3;
|
|
201
|
-
$leading-h3: 1.4;
|
|
202
|
-
$leading-h4: 1.5;
|
|
203
|
-
$leading-h5: 1.5;
|
|
204
|
-
$leading-h6: 1.5;
|
|
205
|
-
$leading-body: 1.6;
|
|
206
|
-
$leading-small: 1.5;
|
|
207
|
-
|
|
208
|
-
// Letter Spacing - From Issue #44
|
|
209
|
-
$tracking-display: -0.02em;
|
|
210
|
-
$tracking-h1: -0.01em;
|
|
211
|
-
$tracking-normal: 0;
|
|
212
|
-
|
|
213
|
-
// Font Weights
|
|
214
|
-
$font-normal: 400;
|
|
215
|
-
$font-medium: 500;
|
|
216
|
-
$font-semibold: 600;
|
|
217
|
-
$font-bold: 700;
|
|
218
|
-
$font-extrabold: 800;
|
|
219
|
-
|
|
220
|
-
// ============================================================================
|
|
221
|
-
// SPACING & LAYOUT SYSTEM - Based on 4px grid
|
|
222
|
-
// ============================================================================
|
|
223
|
-
|
|
224
|
-
// Spacing Scale
|
|
225
|
-
$space-1: 0.25rem; // 4px
|
|
226
|
-
$space-2: 0.5rem; // 8px
|
|
227
|
-
$space-3: 0.75rem; // 12px
|
|
228
|
-
$space-4: 1rem; // 16px
|
|
229
|
-
$space-5: 1.25rem; // 20px
|
|
230
|
-
$space-6: 1.5rem; // 24px
|
|
231
|
-
$space-8: 2rem; // 32px
|
|
232
|
-
$space-10: 2.5rem; // 40px
|
|
233
|
-
$space-12: 3rem; // 48px
|
|
234
|
-
$space-16: 4rem; // 64px
|
|
235
|
-
$space-20: 5rem; // 80px
|
|
236
|
-
$space-24: 6rem; // 96px
|
|
237
|
-
|
|
238
|
-
// Section Padding (Vertical Rhythm)
|
|
239
|
-
$section-padding-sm: $space-12; // 48px - py-12
|
|
240
|
-
$section-padding-md: $space-16; // 64px - py-16
|
|
241
|
-
$section-padding-lg: $space-20; // 80px - py-20
|
|
242
|
-
$section-padding-xl: $space-24; // 96px - py-24
|
|
243
|
-
|
|
244
|
-
// Container Max Widths
|
|
245
|
-
$container-sm: 640px; // max-w-sm
|
|
246
|
-
$container-md: 768px; // max-w-md
|
|
247
|
-
$container-lg: 1024px; // max-w-lg
|
|
248
|
-
$container-xl: 1280px; // max-w-xl
|
|
249
|
-
$container-2xl: 1536px; // max-w-2xl
|
|
250
|
-
$container-4xl: 56rem; // max-w-4xl (896px)
|
|
251
|
-
$container-6xl: 72rem; // max-w-6xl (1152px)
|
|
252
|
-
$container-7xl: 80rem; // max-w-7xl (1280px)
|
|
253
|
-
|
|
254
|
-
// Grid Gaps
|
|
255
|
-
$gap-sm: $space-4; // 16px - gap-4
|
|
256
|
-
$gap-md: $space-6; // 24px - gap-6
|
|
257
|
-
$gap-lg: $space-8; // 32px - gap-8
|
|
258
|
-
|
|
259
|
-
// Border Radius
|
|
260
|
-
$radius-sm: 0.25rem; // 4px
|
|
261
|
-
$radius-md: 0.5rem; // 8px
|
|
262
|
-
$radius-lg: 0.75rem; // 12px
|
|
263
|
-
$radius-xl: 1rem; // 16px
|
|
264
|
-
$radius-2xl: 1.5rem; // 24px
|
|
265
|
-
$radius-full: 9999px; // Full rounded
|
|
266
|
-
|
|
267
|
-
// Shadows
|
|
268
|
-
$shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
269
|
-
$shadow-md: 0 2px 8px rgba(0, 0, 0, 0.04);
|
|
270
|
-
$shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.08);
|
|
271
|
-
$shadow-xl: 0 16px 48px rgba(0, 0, 0, 0.12);
|
|
272
|
-
$shadow-brand: 0 8px 16px rgba(74, 62, 205, 0.3);
|
|
273
|
-
|
|
274
|
-
// Transitions
|
|
275
|
-
$transition-fast: 150ms ease;
|
|
276
|
-
$transition-base: 200ms ease;
|
|
277
|
-
$transition-slow: 300ms ease;
|
|
278
|
-
|
|
279
|
-
// ============================================================================
|
|
280
|
-
// CODE SYNTAX HIGHLIGHTING
|
|
281
|
-
// ============================================================================
|
|
282
|
-
$code-bg: #1e1e1e;
|
|
283
|
-
$code-text: #d4d4d4;
|
|
284
|
-
$code-keyword: #569cd6;
|
|
285
|
-
$code-string: #ce9178;
|
|
286
|
-
$code-comment: #6a9955;
|
|
287
|
-
|