@amsterdamdatalabs/enact-extensions 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -20
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/install.d.ts +89 -0
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +219 -18
- package/dist/install.js.map +1 -1
- package/dist/validate/index.d.ts +21 -0
- package/dist/validate/index.d.ts.map +1 -1
- package/dist/validate/index.js +77 -0
- package/dist/validate/index.js.map +1 -1
- package/extensions/cmux/.agents/plugin.json +37 -0
- package/extensions/cmux/skills/cmux/SKILL.md +82 -0
- package/extensions/cmux/skills/cmux/agents/openai.yaml +4 -0
- package/extensions/cmux/skills/cmux/references/handles-and-identify.md +35 -0
- package/extensions/cmux/skills/cmux/references/panes-surfaces.md +37 -0
- package/extensions/cmux/skills/cmux/references/trigger-flash-and-health.md +23 -0
- package/extensions/cmux/skills/cmux/references/windows-workspaces.md +31 -0
- package/extensions/cmux/skills/cmux-vm-monitor/SKILL.md +122 -0
- package/extensions/cmux/skills/cmux-vm-monitor/agents/openai.yaml +4 -0
- package/extensions/cmux/skills/cmux-vm-monitor/references/cmux-commands.md +66 -0
- package/extensions/cmux/skills/cmux-vm-monitor/scripts/codex_vm_monitor.sh +45 -0
- package/extensions/cmux/skills/cmux-workspace/SKILL.md +93 -0
- package/extensions/dev-state/.agents/plugin.json +35 -0
- package/extensions/dev-state/skills/dev-state-plan-graduation/SKILL.md +194 -0
- package/extensions/dev-state/skills/dev-state-plan-graduation/agents/openai.yaml +4 -0
- package/extensions/dev-state/skills/dev-state-plan-graduation/references/reference.md +130 -0
- package/extensions/devops/.agents/plugin.json +36 -0
- package/extensions/devops/skills/azure-devops-cli/SKILL.md +431 -0
- package/extensions/devops/skills/azure-devops-cli/agents/openai.yaml +4 -0
- package/extensions/devops/skills/ci-pipeline-strategy/SKILL.md +217 -0
- package/extensions/devops/skills/ci-pipeline-strategy/agents/openai.yaml +4 -0
- package/{plugins/net-revenue-management/.codex-plugin → extensions/net-revenue-management/.agents}/plugin.json +10 -6
- package/extensions/plugin-dev/.agents/plugin.json +42 -0
- package/extensions/plugin-dev/.mcp.json +3 -0
- package/extensions/plugin-dev/agents/agent-creator.md +199 -0
- package/extensions/plugin-dev/agents/plugin-validator.md +91 -0
- package/extensions/plugin-dev/agents/skill-reviewer.md +212 -0
- package/extensions/plugin-dev/commands/_archive/create-marketplace.md +427 -0
- package/extensions/plugin-dev/commands/_archive/plugin-dev-guide.md +12 -0
- package/extensions/plugin-dev/commands/create-plugin.md +498 -0
- package/extensions/plugin-dev/commands/start.md +81 -0
- package/extensions/plugin-dev/hooks/hooks.json +3 -0
- package/extensions/plugin-dev/skills/agent-development/SKILL.md +641 -0
- package/extensions/plugin-dev/skills/agent-development/examples/agent-creation-prompt.md +250 -0
- package/extensions/plugin-dev/skills/agent-development/examples/complete-agent-examples.md +461 -0
- package/extensions/plugin-dev/skills/agent-development/references/advanced-agent-fields.md +246 -0
- package/extensions/plugin-dev/skills/agent-development/references/agent-creation-system-prompt.md +216 -0
- package/extensions/plugin-dev/skills/agent-development/references/permission-modes-rules.md +226 -0
- package/extensions/plugin-dev/skills/agent-development/references/system-prompt-design.md +464 -0
- package/extensions/plugin-dev/skills/agent-development/references/triggering-examples.md +474 -0
- package/extensions/plugin-dev/skills/agent-development/scripts/create-agent-skeleton.sh +176 -0
- package/extensions/plugin-dev/skills/agent-development/scripts/test-agent-trigger.sh +227 -0
- package/extensions/plugin-dev/skills/agent-development/scripts/validate-agent.sh +227 -0
- package/extensions/plugin-dev/skills/command-development/SKILL.md +763 -0
- package/extensions/plugin-dev/skills/command-development/examples/plugin-commands.md +612 -0
- package/extensions/plugin-dev/skills/command-development/examples/simple-commands.md +527 -0
- package/extensions/plugin-dev/skills/command-development/references/advanced-workflows.md +762 -0
- package/extensions/plugin-dev/skills/command-development/references/documentation-patterns.md +769 -0
- package/extensions/plugin-dev/skills/command-development/references/frontmatter-reference.md +508 -0
- package/extensions/plugin-dev/skills/command-development/references/interactive-commands.md +966 -0
- package/extensions/plugin-dev/skills/command-development/references/marketplace-considerations.md +943 -0
- package/extensions/plugin-dev/skills/command-development/references/plugin-features-reference.md +637 -0
- package/extensions/plugin-dev/skills/command-development/references/plugin-integration.md +191 -0
- package/extensions/plugin-dev/skills/command-development/references/skill-tool.md +447 -0
- package/extensions/plugin-dev/skills/command-development/references/testing-strategies.md +723 -0
- package/extensions/plugin-dev/skills/command-development/scripts/check-frontmatter.sh +234 -0
- package/extensions/plugin-dev/skills/command-development/scripts/validate-command.sh +160 -0
- package/extensions/plugin-dev/skills/hook-development/SKILL.md +861 -0
- package/extensions/plugin-dev/skills/hook-development/examples/load-context.sh +55 -0
- package/extensions/plugin-dev/skills/hook-development/examples/validate-bash.sh +57 -0
- package/extensions/plugin-dev/skills/hook-development/examples/validate-write.sh +48 -0
- package/extensions/plugin-dev/skills/hook-development/references/advanced.md +871 -0
- package/extensions/plugin-dev/skills/hook-development/references/hook-input-schemas.md +145 -0
- package/extensions/plugin-dev/skills/hook-development/references/migration.md +392 -0
- package/extensions/plugin-dev/skills/hook-development/references/patterns.md +430 -0
- package/extensions/plugin-dev/skills/hook-development/scripts/README.md +181 -0
- package/extensions/plugin-dev/skills/hook-development/scripts/hook-linter.sh +153 -0
- package/extensions/plugin-dev/skills/hook-development/scripts/test-hook.sh +276 -0
- package/extensions/plugin-dev/skills/hook-development/scripts/validate-hook-schema.sh +159 -0
- package/extensions/plugin-dev/skills/mcp-integration/SKILL.md +775 -0
- package/extensions/plugin-dev/skills/mcp-integration/examples/http-server.json +20 -0
- package/extensions/plugin-dev/skills/mcp-integration/examples/sse-server.json +19 -0
- package/extensions/plugin-dev/skills/mcp-integration/examples/stdio-server.json +38 -0
- package/extensions/plugin-dev/skills/mcp-integration/examples/ws-server.json +26 -0
- package/extensions/plugin-dev/skills/mcp-integration/references/authentication.md +601 -0
- package/extensions/plugin-dev/skills/mcp-integration/references/server-discovery.md +190 -0
- package/extensions/plugin-dev/skills/mcp-integration/references/server-types.md +572 -0
- package/extensions/plugin-dev/skills/mcp-integration/references/tool-usage.md +623 -0
- package/extensions/plugin-dev/skills/plugin-dev-guide/SKILL.md +222 -0
- package/extensions/plugin-dev/skills/plugin-structure/SKILL.md +705 -0
- package/extensions/plugin-dev/skills/plugin-structure/examples/advanced-plugin.md +774 -0
- package/extensions/plugin-dev/skills/plugin-structure/examples/minimal-plugin.md +83 -0
- package/extensions/plugin-dev/skills/plugin-structure/examples/standard-plugin.md +611 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/advanced-topics.md +289 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/component-patterns.md +592 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/github-actions.md +233 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/headless-ci-mode.md +193 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/manifest-reference.md +625 -0
- package/extensions/plugin-dev/skills/plugin-structure/references/output-styles.md +116 -0
- package/extensions/plugin-dev/skills/skill-development/SKILL.md +564 -0
- package/extensions/plugin-dev/skills/skill-development/examples/complete-skill.md +465 -0
- package/extensions/plugin-dev/skills/skill-development/examples/frontmatter-templates.md +167 -0
- package/extensions/plugin-dev/skills/skill-development/examples/minimal-skill.md +111 -0
- package/extensions/plugin-dev/skills/skill-development/references/advanced-frontmatter.md +225 -0
- package/extensions/plugin-dev/skills/skill-development/references/commands-vs-skills.md +39 -0
- package/extensions/plugin-dev/skills/skill-development/references/skill-creation-workflow.md +379 -0
- package/extensions/plugin-dev/skills/skill-development/references/skill-creator-original.md +210 -0
- package/package.json +8 -11
- package/scripts/enact-extensions.mjs +751 -16
- package/scripts/hooks/session-start-drift-check.mjs +58 -0
- package/scripts/lib/build-index.mjs +50 -0
- package/scripts/lib/bundle-hash.mjs +137 -0
- package/scripts/lib/hooks.mjs +389 -0
- package/scripts/lib/ledger.mjs +162 -0
- package/scripts/lib/list-bundles.mjs +70 -0
- package/scripts/lib/outdated.mjs +144 -0
- package/scripts/lib/provision-mcp.mjs +369 -0
- package/scripts/lib/resolve-bundle.mjs +121 -0
- package/scripts/lib/run-install.mjs +321 -39
- package/scripts/lib/run-uninstall.mjs +220 -0
- package/scripts/lib/run-update.mjs +152 -0
- package/scripts/lib/run-validate.mjs +12 -18
- package/scripts/lib/serve.mjs +454 -0
- package/scripts/postinstall.mjs +63 -0
- package/scripts/setup-enact-context.sh +2 -2
- package/spec/index.json +59 -0
- package/web/assets/README.md +111 -0
- package/web/assets/logo-full.png +0 -0
- package/web/assets/logo-slim.png +0 -0
- package/web/assets/tokens/base.css +45 -0
- package/web/assets/tokens/colors.css +248 -0
- package/web/assets/tokens/effects.css +24 -0
- package/web/assets/tokens/fonts.css +8 -0
- package/web/assets/tokens/index.css +18 -0
- package/web/assets/tokens/spacing.css +50 -0
- package/web/index.html +1188 -0
- package/.agents/plugins/marketplace.json +0 -20
- package/catalog/enact-context.json +0 -9
- package/catalog/enact-factory.json +0 -7
- package/catalog/enact-operator.json +0 -7
- package/catalog/enact-wiki.json +0 -7
- package/catalog/net-revenue-management.json +0 -8
- package/scripts/rename-supervisor-to-operator.pl +0 -66
- package/scripts/sync-manifests.mjs +0 -23
- package/scripts/validate-catalog.mjs +0 -37
- package/scripts/validate-plugin.mjs +0 -10
- /package/{plugins → extensions}/net-revenue-management/.mcp.json +0 -0
- /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-risks/SKILL.md +0 -0
- /package/{plugins → extensions}/net-revenue-management/skills/net-revenue-scenario/SKILL.md +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* postinstall.mjs — TTY-aware npm postinstall script for enact-extensions.
|
|
4
|
+
*
|
|
5
|
+
* CI-SAFETY CONTRACT (most important property):
|
|
6
|
+
* - If NOT a TTY → print one-line notice and exit 0. NEVER hang.
|
|
7
|
+
* - If CI env var is set → print one-line notice and exit 0.
|
|
8
|
+
* - If ENACT_EXTENSIONS_NO_POSTINSTALL is set → print one-line notice and exit 0.
|
|
9
|
+
* - If interactive TTY (and not CI) → run `hooks setup` interactive picker.
|
|
10
|
+
* - Entire script is wrapped in try/catch → ALWAYS process.exit(0).
|
|
11
|
+
* A postinstall that throws would break `npm ci` in CI.
|
|
12
|
+
*
|
|
13
|
+
* The CI/TTY guards ensure this script is fully safe in:
|
|
14
|
+
* - Docker CI environments (CI=1, no TTY)
|
|
15
|
+
* - npm ci / npm install in CI pipelines
|
|
16
|
+
* - Automated install tooling (pipes, scripts)
|
|
17
|
+
* - Developer machines with interactive TTY (triggers the interactive picker)
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
try {
|
|
21
|
+
const { stdin, env } = process;
|
|
22
|
+
|
|
23
|
+
const isCI = !!(env.CI || env.CONTINUOUS_INTEGRATION || env.BUILD_ID || env.GITHUB_ACTIONS);
|
|
24
|
+
const isNoPostinstall = !!(env.ENACT_EXTENSIONS_NO_POSTINSTALL);
|
|
25
|
+
const isTTY = !!(stdin.isTTY);
|
|
26
|
+
|
|
27
|
+
const NOTICE = `Run \`enact-extensions hooks setup\` to enable session-start drift checks.\n`;
|
|
28
|
+
|
|
29
|
+
if (!isTTY || isCI || isNoPostinstall) {
|
|
30
|
+
// Non-interactive or CI: print notice and exit immediately.
|
|
31
|
+
process.stdout.write(NOTICE);
|
|
32
|
+
process.exit(0);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Interactive TTY (non-CI): run the hooks setup interactive picker via CLI.
|
|
36
|
+
// We spawn a child process rather than importing directly to keep postinstall
|
|
37
|
+
// isolated from any import-time side-effects in the CLI modules.
|
|
38
|
+
const { spawnSync } = await import("node:child_process");
|
|
39
|
+
const { dirname, join, resolve } = await import("node:path");
|
|
40
|
+
const { fileURLToPath } = await import("node:url");
|
|
41
|
+
|
|
42
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
43
|
+
const CLI = join(resolve(__dirname, ".."), "scripts", "enact-extensions.mjs");
|
|
44
|
+
|
|
45
|
+
// Spawn with stdio inherited so the interactive readline prompt is visible.
|
|
46
|
+
// We spawn and ignore the exit code — postinstall must always exit 0.
|
|
47
|
+
spawnSync(process.execPath, [CLI, "hooks", "setup"], {
|
|
48
|
+
stdio: "inherit",
|
|
49
|
+
env: { ...process.env },
|
|
50
|
+
});
|
|
51
|
+
process.exit(0);
|
|
52
|
+
} catch {
|
|
53
|
+
// CRITICAL: never let an error propagate from postinstall.
|
|
54
|
+
// Printing to stderr is best-effort (safe to fail).
|
|
55
|
+
try {
|
|
56
|
+
process.stderr.write(
|
|
57
|
+
"[enact-extensions postinstall] Non-fatal error during hook setup. Run `enact-extensions hooks setup` manually.\n",
|
|
58
|
+
);
|
|
59
|
+
} catch {
|
|
60
|
+
// Even stderr.write failed — just exit 0.
|
|
61
|
+
}
|
|
62
|
+
process.exit(0);
|
|
63
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
# Wire enact-context setup into the enact-extensions workspace.
|
|
3
|
-
# Validates the plugin bundle
|
|
3
|
+
# Validates the plugin-dev bundle then runs consolidated agent setup.
|
|
4
4
|
set -euo pipefail
|
|
5
5
|
|
|
6
6
|
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
@@ -16,7 +16,7 @@ if ! command -v enact-context >/dev/null 2>&1; then
|
|
|
16
16
|
fi
|
|
17
17
|
|
|
18
18
|
cd "$ROOT"
|
|
19
|
-
npm run validate
|
|
19
|
+
npm run validate
|
|
20
20
|
|
|
21
21
|
echo ""
|
|
22
22
|
echo "Running enact-context setup (claude, codex, opencode, enact, zed)..."
|
package/spec/index.json
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "enact-extensions-index.json",
|
|
4
|
+
"title": "Enact Extensions Discovery Index",
|
|
5
|
+
"description": "Schema for the generated discovery index produced by `enact-extensions index`. This is a generated artifact (never committed). The schema file is committed as the contract.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["generatedAt", "count", "plugins"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"generatedAt": {
|
|
11
|
+
"description": "ISO 8601 timestamp when the index was generated, or null if not provided.",
|
|
12
|
+
"oneOf": [
|
|
13
|
+
{ "type": "string", "format": "date-time" },
|
|
14
|
+
{ "type": "null" }
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"count": {
|
|
18
|
+
"type": "integer",
|
|
19
|
+
"minimum": 0,
|
|
20
|
+
"description": "Total number of plugin bundles discovered. Must equal plugins.length."
|
|
21
|
+
},
|
|
22
|
+
"plugins": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"description": "Ordered list of discovered plugin bundle entries.",
|
|
25
|
+
"items": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"required": ["name", "version", "category", "description", "targets", "path"],
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"properties": {
|
|
30
|
+
"name": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"description": "Unique plugin identifier from .agents/plugin.json."
|
|
33
|
+
},
|
|
34
|
+
"version": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"description": "Plugin version string."
|
|
37
|
+
},
|
|
38
|
+
"category": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"description": "Plugin category (from interface.category, may be empty string)."
|
|
41
|
+
},
|
|
42
|
+
"description": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"description": "Short human-readable plugin description."
|
|
45
|
+
},
|
|
46
|
+
"targets": {
|
|
47
|
+
"type": "array",
|
|
48
|
+
"items": { "type": "string" },
|
|
49
|
+
"description": "Agent platforms this plugin targets (e.g. claude, codex, cursor)."
|
|
50
|
+
},
|
|
51
|
+
"path": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"description": "Repo-relative path to the plugin bundle directory (relative to package root, not absolute)."
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# web/assets — Amsterdam Data Labs Design System
|
|
2
|
+
|
|
3
|
+
## Provenance
|
|
4
|
+
|
|
5
|
+
These assets are vendored from the Amsterdam Data Labs (ADL) design system,
|
|
6
|
+
originally sourced from the `net-revenue-demo` repository
|
|
7
|
+
(`public/_ds/amsterdam-data-labs-design-system-*/tokens/`).
|
|
8
|
+
|
|
9
|
+
They are committed source — not generated — and represent the UI styling
|
|
10
|
+
contract for any HTML surfaces served by enact-extensions. Do not hand-edit
|
|
11
|
+
token values; update from the upstream design system and re-vendor.
|
|
12
|
+
|
|
13
|
+
## Contents
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
web/assets/
|
|
17
|
+
logo-full.png — ADL full wordmark (horizontal)
|
|
18
|
+
logo-slim.png — ADL compact mark (icon-only / slim)
|
|
19
|
+
tokens/
|
|
20
|
+
index.css — single entrypoint: @imports all 5 token files
|
|
21
|
+
fonts.css — Google Fonts @import (Space Grotesk / Manrope / IBM Plex Mono)
|
|
22
|
+
colors.css — primitive ramps (--adl-*) + semantic aliases
|
|
23
|
+
spacing.css — 4px-grid space scale, breakpoints, z-index
|
|
24
|
+
effects.css — radii, shadows, motion easing + duration
|
|
25
|
+
base.css — element resets that consume the tokens above
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Link `tokens/index.css` from HTML — it loads all five files in the correct
|
|
29
|
+
dependency order (fonts → colors → spacing → effects → base).
|
|
30
|
+
|
|
31
|
+
## Key Semantic Tokens
|
|
32
|
+
|
|
33
|
+
Product code should consume **semantic** tokens only — never the raw `--adl-*`
|
|
34
|
+
primitive ramps.
|
|
35
|
+
|
|
36
|
+
### Backgrounds & Surfaces
|
|
37
|
+
|
|
38
|
+
| Token | Light | Dark |
|
|
39
|
+
|---|---|---|
|
|
40
|
+
| `--bg-canvas` | `#ffffff` | `#061726` |
|
|
41
|
+
| `--surface-default` | `#ffffff` | `--adl-navy-900` |
|
|
42
|
+
| `--surface-raised` | `--adl-neutral-50` | `--adl-navy-800` |
|
|
43
|
+
| `--surface-sunken` | `--adl-neutral-100` | `--adl-navy-950` |
|
|
44
|
+
|
|
45
|
+
### Text
|
|
46
|
+
|
|
47
|
+
| Token | Purpose |
|
|
48
|
+
|---|---|
|
|
49
|
+
| `--text-primary` | Body copy, headings |
|
|
50
|
+
| `--text-secondary` | Supporting labels |
|
|
51
|
+
| `--text-muted` | Placeholder, captions |
|
|
52
|
+
| `--text-link` | Hyperlinks |
|
|
53
|
+
|
|
54
|
+
### Borders
|
|
55
|
+
|
|
56
|
+
| Token | Purpose |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `--border-subtle` | Dividers, ghost cards |
|
|
59
|
+
| `--border-default` | Standard input borders |
|
|
60
|
+
| `--border-strong` | Emphasized outlines |
|
|
61
|
+
| `--border-focus` | Keyboard focus ring |
|
|
62
|
+
|
|
63
|
+
### Brand
|
|
64
|
+
|
|
65
|
+
The ADL primary brand anchor is **`--adl-teal-500: #18949a`**.
|
|
66
|
+
|
|
67
|
+
```css
|
|
68
|
+
--brand-primary: var(--adl-teal-500); /* #18949a */
|
|
69
|
+
--brand-primary-hover: var(--adl-teal-600);
|
|
70
|
+
--brand-primary-active: var(--adl-teal-700);
|
|
71
|
+
--brand-secondary: var(--adl-mint-400); /* #5acfb0 */
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Light / Dark Theming
|
|
75
|
+
|
|
76
|
+
Tokens switch automatically via the `[data-theme]` attribute. Apply it to
|
|
77
|
+
`<html>` (or any subtree root) to switch the entire surface:
|
|
78
|
+
|
|
79
|
+
```html
|
|
80
|
+
<!-- light (default — no attribute needed) -->
|
|
81
|
+
<html>
|
|
82
|
+
|
|
83
|
+
<!-- dark -->
|
|
84
|
+
<html data-theme="dark">
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
All semantic tokens resolve to their dark-mode equivalents when
|
|
88
|
+
`[data-theme="dark"]` is in scope. Primitive ramps (`--adl-*`) are
|
|
89
|
+
theme-invariant.
|
|
90
|
+
|
|
91
|
+
## Typography
|
|
92
|
+
|
|
93
|
+
Fonts load from Google Fonts via the `@import` in `fonts.css`. No font
|
|
94
|
+
binaries are committed.
|
|
95
|
+
|
|
96
|
+
| Role | Family | Weights |
|
|
97
|
+
|---|---|---|
|
|
98
|
+
| Display / headings | Space Grotesk | 400 500 600 700 |
|
|
99
|
+
| Body / UI text | Manrope | 400 500 600 700 800 |
|
|
100
|
+
| Code / mono / data | IBM Plex Mono | 400 500 600 |
|
|
101
|
+
|
|
102
|
+
CSS variable references:
|
|
103
|
+
|
|
104
|
+
```css
|
|
105
|
+
--font-display: "Space Grotesk", sans-serif;
|
|
106
|
+
--font-body: "Manrope", sans-serif;
|
|
107
|
+
--font-mono: "IBM Plex Mono", monospace;
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Replace with licensed ADL brand font binaries when they become available;
|
|
111
|
+
update `fonts.css` to use `@font-face` declarations pointing to local files.
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* Amsterdam Data Labs — minimal base element styles. */
|
|
2
|
+
:root {
|
|
3
|
+
color-scheme: light;
|
|
4
|
+
}
|
|
5
|
+
[data-theme="dark"] {
|
|
6
|
+
color-scheme: dark;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
body {
|
|
10
|
+
margin: 0;
|
|
11
|
+
font-family: var(--font-body);
|
|
12
|
+
font-size: var(--text-md);
|
|
13
|
+
line-height: var(--leading-normal);
|
|
14
|
+
color: var(--text-primary);
|
|
15
|
+
background: var(--bg-canvas);
|
|
16
|
+
-webkit-font-smoothing: antialiased;
|
|
17
|
+
text-rendering: optimizeLegibility;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
h1, h2, h3, h4 {
|
|
21
|
+
font-family: var(--font-display);
|
|
22
|
+
font-weight: var(--weight-semibold);
|
|
23
|
+
line-height: var(--leading-snug);
|
|
24
|
+
letter-spacing: var(--tracking-tight);
|
|
25
|
+
color: var(--text-primary);
|
|
26
|
+
margin: 0;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
code, pre, kbd {
|
|
30
|
+
font-family: var(--font-mono);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
a {
|
|
34
|
+
color: var(--text-link);
|
|
35
|
+
text-decoration: none;
|
|
36
|
+
}
|
|
37
|
+
a:hover {
|
|
38
|
+
text-decoration: underline;
|
|
39
|
+
text-underline-offset: 3px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
::selection {
|
|
43
|
+
background: var(--adl-teal-100);
|
|
44
|
+
color: var(--adl-navy-900);
|
|
45
|
+
}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/* Amsterdam Data Labs — color tokens.
|
|
2
|
+
Primitives (--adl-*) come from the ADL W3C DTCG token source.
|
|
3
|
+
Product code should consume the SEMANTIC tokens (bottom of file). */
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
/* ── Primitive ramps ───────────────────────────────────────── */
|
|
7
|
+
|
|
8
|
+
/* Teal — primary brand. Anchor 500 = #18949a */
|
|
9
|
+
--adl-teal-50: #e6f4f5;
|
|
10
|
+
--adl-teal-100: #c0e3e5;
|
|
11
|
+
--adl-teal-200: #95d0d3;
|
|
12
|
+
--adl-teal-300: #66bcc0;
|
|
13
|
+
--adl-teal-400: #3aa9ae;
|
|
14
|
+
--adl-teal-500: #18949a;
|
|
15
|
+
--adl-teal-600: #147f84;
|
|
16
|
+
--adl-teal-700: #10696d;
|
|
17
|
+
--adl-teal-800: #0c5256;
|
|
18
|
+
--adl-teal-900: #073b3e;
|
|
19
|
+
|
|
20
|
+
/* Mint — secondary brand / success. Anchor 400 = #5acfb0 */
|
|
21
|
+
--adl-mint-50: #e9f9f4;
|
|
22
|
+
--adl-mint-100: #cdf1e6;
|
|
23
|
+
--adl-mint-200: #a6e6d2;
|
|
24
|
+
--adl-mint-300: #7eddc1;
|
|
25
|
+
--adl-mint-400: #5acfb0;
|
|
26
|
+
--adl-mint-500: #3bb898;
|
|
27
|
+
--adl-mint-600: #2e9a7f;
|
|
28
|
+
--adl-mint-700: #237b66;
|
|
29
|
+
--adl-mint-800: #195d4d;
|
|
30
|
+
--adl-mint-900: #103f34;
|
|
31
|
+
|
|
32
|
+
/* Navy — cool ink / dark neutral. Anchors 600/700/900 */
|
|
33
|
+
--adl-navy-50: #eef2f6;
|
|
34
|
+
--adl-navy-100: #d2dde7;
|
|
35
|
+
--adl-navy-200: #a8bccf;
|
|
36
|
+
--adl-navy-300: #7795b1;
|
|
37
|
+
--adl-navy-400: #4a6a8a;
|
|
38
|
+
--adl-navy-500: #2c4763;
|
|
39
|
+
--adl-navy-600: #1f3a5f;
|
|
40
|
+
--adl-navy-700: #1a2332;
|
|
41
|
+
--adl-navy-800: #0f2a44;
|
|
42
|
+
--adl-navy-900: #0a2840;
|
|
43
|
+
--adl-navy-950: #061726;
|
|
44
|
+
|
|
45
|
+
/* Blue — sky / bright blue. Anchors 200/400/500 */
|
|
46
|
+
--adl-blue-50: #eaf3fc;
|
|
47
|
+
--adl-blue-100: #cfe6f9;
|
|
48
|
+
--adl-blue-200: #c5ddf2;
|
|
49
|
+
--adl-blue-300: #8ec6ee;
|
|
50
|
+
--adl-blue-400: #5dade2;
|
|
51
|
+
--adl-blue-500: #4fa0e3;
|
|
52
|
+
--adl-blue-600: #3a82c4;
|
|
53
|
+
--adl-blue-700: #2e679e;
|
|
54
|
+
--adl-blue-800: #234e78;
|
|
55
|
+
--adl-blue-900: #183753;
|
|
56
|
+
|
|
57
|
+
/* Indigo — periwinkle. Anchors 500/600 */
|
|
58
|
+
--adl-indigo-50: #eef1fb;
|
|
59
|
+
--adl-indigo-100: #d6ddf5;
|
|
60
|
+
--adl-indigo-200: #b3c0ec;
|
|
61
|
+
--adl-indigo-300: #8fa3e2;
|
|
62
|
+
--adl-indigo-400: #7389db;
|
|
63
|
+
--adl-indigo-500: #5b7bd5;
|
|
64
|
+
--adl-indigo-600: #5b6bc0;
|
|
65
|
+
--adl-indigo-700: #48569c;
|
|
66
|
+
--adl-indigo-800: #384278;
|
|
67
|
+
--adl-indigo-900: #282f55;
|
|
68
|
+
|
|
69
|
+
/* Violet — accent. Anchor 500 = #6c5ce7 */
|
|
70
|
+
--adl-violet-50: #efedfc;
|
|
71
|
+
--adl-violet-100: #d8d2f8;
|
|
72
|
+
--adl-violet-200: #bab0f2;
|
|
73
|
+
--adl-violet-300: #9b8eec;
|
|
74
|
+
--adl-violet-400: #8170e9;
|
|
75
|
+
--adl-violet-500: #6c5ce7;
|
|
76
|
+
--adl-violet-600: #5847c4;
|
|
77
|
+
--adl-violet-700: #46389c;
|
|
78
|
+
--adl-violet-800: #352b76;
|
|
79
|
+
--adl-violet-900: #251e52;
|
|
80
|
+
|
|
81
|
+
/* Cyan — highlight. Anchor 400 = #4dd0e1 */
|
|
82
|
+
--adl-cyan-50: #e7fafc;
|
|
83
|
+
--adl-cyan-100: #c4f1f6;
|
|
84
|
+
--adl-cyan-200: #97e5ee;
|
|
85
|
+
--adl-cyan-300: #6cdae6;
|
|
86
|
+
--adl-cyan-400: #4dd0e1;
|
|
87
|
+
--adl-cyan-500: #2bb6c8;
|
|
88
|
+
--adl-cyan-600: #2194a3;
|
|
89
|
+
--adl-cyan-700: #19737f;
|
|
90
|
+
--adl-cyan-800: #12545d;
|
|
91
|
+
--adl-cyan-900: #0b373d;
|
|
92
|
+
|
|
93
|
+
/* Maroon — deep accent (estimated anchor 600) */
|
|
94
|
+
--adl-maroon-50: #f7eaea;
|
|
95
|
+
--adl-maroon-100: #ecc9c9;
|
|
96
|
+
--adl-maroon-200: #dc9d9d;
|
|
97
|
+
--adl-maroon-300: #c96f6f;
|
|
98
|
+
--adl-maroon-400: #a84444;
|
|
99
|
+
--adl-maroon-500: #842b2b;
|
|
100
|
+
--adl-maroon-600: #6b2020;
|
|
101
|
+
--adl-maroon-700: #561a1a;
|
|
102
|
+
--adl-maroon-800: #411414;
|
|
103
|
+
--adl-maroon-900: #2d0e0e;
|
|
104
|
+
|
|
105
|
+
/* Red — error / danger. Anchors 300 (dark) / 500 (light) */
|
|
106
|
+
--adl-red-50: #fcebe9;
|
|
107
|
+
--adl-red-100: #f6cac5;
|
|
108
|
+
--adl-red-200: #eea49b;
|
|
109
|
+
--adl-red-300: #e57373;
|
|
110
|
+
--adl-red-400: #d4564a;
|
|
111
|
+
--adl-red-500: #c0392b;
|
|
112
|
+
--adl-red-600: #a32d21;
|
|
113
|
+
--adl-red-700: #82241a;
|
|
114
|
+
--adl-red-800: #611b14;
|
|
115
|
+
--adl-red-900: #41120d;
|
|
116
|
+
|
|
117
|
+
/* Pink — soft tint. Anchor 200 = #f5c2c7 */
|
|
118
|
+
--adl-pink-50: #fdf0f1;
|
|
119
|
+
--adl-pink-100: #fad9dc;
|
|
120
|
+
--adl-pink-200: #f5c2c7;
|
|
121
|
+
--adl-pink-300: #eda1a8;
|
|
122
|
+
--adl-pink-400: #e07c85;
|
|
123
|
+
--adl-pink-500: #cf5762;
|
|
124
|
+
|
|
125
|
+
/* Amber — warning (added default; no native ADL warning hue) */
|
|
126
|
+
--adl-amber-50: #fdf6e8;
|
|
127
|
+
--adl-amber-100: #f9e6bf;
|
|
128
|
+
--adl-amber-200: #f2cf86;
|
|
129
|
+
--adl-amber-300: #e9b652;
|
|
130
|
+
--adl-amber-400: #e0a23b;
|
|
131
|
+
--adl-amber-500: #c8842a;
|
|
132
|
+
--adl-amber-600: #a4691f;
|
|
133
|
+
--adl-amber-700: #7e4f18;
|
|
134
|
+
|
|
135
|
+
/* Neutral — cool grays. Anchors 0/50/200 */
|
|
136
|
+
--adl-neutral-0: #ffffff;
|
|
137
|
+
--adl-neutral-50: #f7fbff;
|
|
138
|
+
--adl-neutral-100: #eef4fa;
|
|
139
|
+
--adl-neutral-200: #dde7f0;
|
|
140
|
+
--adl-neutral-300: #c2d2e0;
|
|
141
|
+
--adl-neutral-400: #9fb2c4;
|
|
142
|
+
--adl-neutral-500: #7388a0;
|
|
143
|
+
--adl-neutral-600: #51647a;
|
|
144
|
+
--adl-neutral-700: #374759;
|
|
145
|
+
--adl-neutral-800: #1f2c3a;
|
|
146
|
+
--adl-neutral-900: #0e1822;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* ── Semantic tokens — LIGHT (default) ─────────────────────────
|
|
150
|
+
Consume these in product code; never the raw ramps. */
|
|
151
|
+
:root {
|
|
152
|
+
--bg-canvas: var(--adl-neutral-0);
|
|
153
|
+
--bg-subtle: var(--adl-neutral-50);
|
|
154
|
+
--bg-muted: var(--adl-neutral-200);
|
|
155
|
+
--bg-inverse: var(--adl-navy-900);
|
|
156
|
+
|
|
157
|
+
--surface-default: var(--adl-neutral-0);
|
|
158
|
+
--surface-raised: var(--adl-neutral-50);
|
|
159
|
+
--surface-sunken: var(--adl-neutral-100);
|
|
160
|
+
|
|
161
|
+
--text-primary: var(--adl-navy-900);
|
|
162
|
+
--text-secondary: var(--adl-navy-600);
|
|
163
|
+
--text-muted: var(--adl-neutral-500);
|
|
164
|
+
--text-inverse: var(--adl-neutral-0);
|
|
165
|
+
--text-link: var(--adl-teal-600);
|
|
166
|
+
--text-on-brand: var(--adl-neutral-0);
|
|
167
|
+
|
|
168
|
+
--border-subtle: var(--adl-neutral-200);
|
|
169
|
+
--border-default: var(--adl-neutral-300);
|
|
170
|
+
--border-strong: var(--adl-neutral-400);
|
|
171
|
+
--border-focus: var(--adl-teal-500);
|
|
172
|
+
|
|
173
|
+
--brand-primary: var(--adl-teal-500);
|
|
174
|
+
--brand-primary-hover: var(--adl-teal-600);
|
|
175
|
+
--brand-primary-active: var(--adl-teal-700);
|
|
176
|
+
--brand-primary-subtle: var(--adl-teal-50);
|
|
177
|
+
--brand-secondary: var(--adl-mint-400);
|
|
178
|
+
--brand-secondary-hover: var(--adl-mint-500);
|
|
179
|
+
--brand-accent: var(--adl-indigo-500);
|
|
180
|
+
--brand-accent-alt: var(--adl-violet-500);
|
|
181
|
+
|
|
182
|
+
--feedback-info: var(--adl-blue-500);
|
|
183
|
+
--feedback-info-subtle: var(--adl-blue-50);
|
|
184
|
+
--feedback-success: var(--adl-mint-600);
|
|
185
|
+
--feedback-success-subtle: var(--adl-mint-50);
|
|
186
|
+
--feedback-warning: var(--adl-amber-400);
|
|
187
|
+
--feedback-warning-subtle: var(--adl-amber-50);
|
|
188
|
+
--feedback-danger: var(--adl-red-500);
|
|
189
|
+
--feedback-danger-subtle: var(--adl-red-50);
|
|
190
|
+
|
|
191
|
+
/* Data-viz categorical order */
|
|
192
|
+
--chart-1: var(--adl-teal-500);
|
|
193
|
+
--chart-2: var(--adl-indigo-500);
|
|
194
|
+
--chart-3: var(--adl-cyan-400);
|
|
195
|
+
--chart-4: var(--adl-violet-500);
|
|
196
|
+
--chart-5: var(--adl-blue-500);
|
|
197
|
+
--chart-6: var(--adl-mint-400);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* ── Semantic tokens — DARK ───────────────────────────────────
|
|
201
|
+
Apply data-theme="dark" on <html> or any subtree root. */
|
|
202
|
+
[data-theme="dark"] {
|
|
203
|
+
--bg-canvas: var(--adl-navy-950);
|
|
204
|
+
--bg-subtle: var(--adl-navy-900);
|
|
205
|
+
--bg-muted: var(--adl-navy-800);
|
|
206
|
+
--bg-inverse: var(--adl-neutral-50);
|
|
207
|
+
|
|
208
|
+
--surface-default: var(--adl-navy-900);
|
|
209
|
+
--surface-raised: var(--adl-navy-800);
|
|
210
|
+
--surface-sunken: var(--adl-navy-950);
|
|
211
|
+
|
|
212
|
+
--text-primary: var(--adl-neutral-50);
|
|
213
|
+
--text-secondary: var(--adl-blue-200);
|
|
214
|
+
--text-muted: var(--adl-navy-300);
|
|
215
|
+
--text-inverse: var(--adl-navy-900);
|
|
216
|
+
--text-link: var(--adl-blue-400);
|
|
217
|
+
--text-on-brand: var(--adl-navy-900);
|
|
218
|
+
|
|
219
|
+
--border-subtle: var(--adl-navy-800);
|
|
220
|
+
--border-default: var(--adl-navy-700);
|
|
221
|
+
--border-strong: var(--adl-navy-600);
|
|
222
|
+
--border-focus: var(--adl-mint-400);
|
|
223
|
+
|
|
224
|
+
--brand-primary: var(--adl-mint-400);
|
|
225
|
+
--brand-primary-hover: var(--adl-mint-300);
|
|
226
|
+
--brand-primary-active: var(--adl-mint-200);
|
|
227
|
+
--brand-primary-subtle: var(--adl-teal-900);
|
|
228
|
+
--brand-secondary: var(--adl-blue-500);
|
|
229
|
+
--brand-secondary-hover: var(--adl-blue-400);
|
|
230
|
+
--brand-accent: var(--adl-indigo-600);
|
|
231
|
+
--brand-accent-alt: var(--adl-cyan-400);
|
|
232
|
+
|
|
233
|
+
--feedback-info: var(--adl-blue-400);
|
|
234
|
+
--feedback-info-subtle: var(--adl-navy-800);
|
|
235
|
+
--feedback-success: var(--adl-mint-400);
|
|
236
|
+
--feedback-success-subtle: var(--adl-teal-900);
|
|
237
|
+
--feedback-warning: var(--adl-amber-300);
|
|
238
|
+
--feedback-warning-subtle: var(--adl-amber-700);
|
|
239
|
+
--feedback-danger: var(--adl-red-300);
|
|
240
|
+
--feedback-danger-subtle: var(--adl-red-900);
|
|
241
|
+
|
|
242
|
+
--chart-1: var(--adl-cyan-400);
|
|
243
|
+
--chart-2: var(--adl-indigo-400);
|
|
244
|
+
--chart-3: var(--adl-mint-400);
|
|
245
|
+
--chart-4: var(--adl-violet-400);
|
|
246
|
+
--chart-5: var(--adl-blue-400);
|
|
247
|
+
--chart-6: var(--adl-teal-300);
|
|
248
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/* Amsterdam Data Labs — radii, shadows, motion. */
|
|
2
|
+
:root {
|
|
3
|
+
/* Corner radii — crisp, technical; generous only on pills/avatars */
|
|
4
|
+
--radius-xs: 4px; /* checkboxes, tags */
|
|
5
|
+
--radius-sm: 6px; /* inputs, buttons */
|
|
6
|
+
--radius-md: 10px; /* cards */
|
|
7
|
+
--radius-lg: 14px; /* modals, feature panels */
|
|
8
|
+
--radius-xl: 20px; /* hero media */
|
|
9
|
+
--radius-full: 999px; /* pills, avatars */
|
|
10
|
+
|
|
11
|
+
/* Shadows — cool navy-tinted, low spread. Elevation, not decoration. */
|
|
12
|
+
--shadow-xs: 0 1px 2px rgba(10, 40, 64, 0.06);
|
|
13
|
+
--shadow-sm: 0 1px 3px rgba(10, 40, 64, 0.08), 0 1px 2px rgba(10, 40, 64, 0.04);
|
|
14
|
+
--shadow-md: 0 4px 12px rgba(10, 40, 64, 0.10), 0 1px 3px rgba(10, 40, 64, 0.06);
|
|
15
|
+
--shadow-lg: 0 12px 32px rgba(10, 40, 64, 0.14), 0 2px 6px rgba(10, 40, 64, 0.06);
|
|
16
|
+
--shadow-focus: 0 0 0 3px color-mix(in srgb, var(--border-focus) 30%, transparent);
|
|
17
|
+
|
|
18
|
+
/* Motion — quick, understated. No bounces. */
|
|
19
|
+
--ease-out: cubic-bezier(0.16, 1, 0.3, 1); /* @kind other */
|
|
20
|
+
--ease-in-out: cubic-bezier(0.45, 0, 0.55, 1); /* @kind other */
|
|
21
|
+
--duration-fast: 120ms; /* @kind other */
|
|
22
|
+
--duration-base: 180ms; /* @kind other */
|
|
23
|
+
--duration-slow: 320ms; /* @kind other */
|
|
24
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* Amsterdam Data Labs — webfonts.
|
|
2
|
+
NOTE: No brand font binaries were provided. These are Google Fonts
|
|
3
|
+
substitutions chosen to match the geometric, technical wordmark:
|
|
4
|
+
- Space Grotesk → display / headings (geometric grotesque, techy)
|
|
5
|
+
- Manrope → body / UI text (clean, slightly geometric humanist)
|
|
6
|
+
- IBM Plex Mono → code, data, numerals in tables
|
|
7
|
+
Replace with licensed brand fonts when available. */
|
|
8
|
+
@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap");
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/* Amsterdam Data Labs Design System — token entrypoint.
|
|
2
|
+
Link this single file from HTML to load the full ADL token set.
|
|
3
|
+
|
|
4
|
+
Import order:
|
|
5
|
+
1. fonts — @import Google Fonts (must be first so the font faces are
|
|
6
|
+
available when other tokens reference --font-* vars)
|
|
7
|
+
2. colors — primitive ramps (--adl-*) + semantic aliases
|
|
8
|
+
(--bg-*, --surface-*, --text-*, --border-*, --brand-*, etc.)
|
|
9
|
+
3. spacing — 4px-grid space scale, breakpoints, z-index layers
|
|
10
|
+
4. effects — radii, shadows, motion easing + duration
|
|
11
|
+
5. base — element resets that consume the tokens above
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
@import "./fonts.css";
|
|
15
|
+
@import "./colors.css";
|
|
16
|
+
@import "./spacing.css";
|
|
17
|
+
@import "./effects.css";
|
|
18
|
+
@import "./base.css";
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* Amsterdam Data Labs — spacing, breakpoints, z-index. 4px base grid. */
|
|
2
|
+
:root {
|
|
3
|
+
--space-0: 0;
|
|
4
|
+
--space-px: 1px;
|
|
5
|
+
--space-0-5: 2px;
|
|
6
|
+
--space-1: 4px;
|
|
7
|
+
--space-1-5: 6px;
|
|
8
|
+
--space-2: 8px;
|
|
9
|
+
--space-2-5: 10px;
|
|
10
|
+
--space-3: 12px;
|
|
11
|
+
--space-4: 16px;
|
|
12
|
+
--space-5: 20px;
|
|
13
|
+
--space-6: 24px;
|
|
14
|
+
--space-7: 28px;
|
|
15
|
+
--space-8: 32px;
|
|
16
|
+
--space-10: 40px;
|
|
17
|
+
--space-12: 48px;
|
|
18
|
+
--space-14: 56px;
|
|
19
|
+
--space-16: 64px;
|
|
20
|
+
--space-20: 80px;
|
|
21
|
+
--space-24: 96px;
|
|
22
|
+
--space-32: 128px;
|
|
23
|
+
--space-40: 160px;
|
|
24
|
+
--space-48: 192px;
|
|
25
|
+
|
|
26
|
+
/* Breakpoints (min-width, mobile-first) — for reference in JS/media queries:
|
|
27
|
+
sm 640 / md 768 / lg 1024 / xl 1280 / 2xl 1536 */
|
|
28
|
+
--breakpoint-sm: 640px;
|
|
29
|
+
--breakpoint-md: 768px;
|
|
30
|
+
--breakpoint-lg: 1024px;
|
|
31
|
+
--breakpoint-xl: 1280px;
|
|
32
|
+
--breakpoint-2xl: 1536px;
|
|
33
|
+
|
|
34
|
+
/* Content widths */
|
|
35
|
+
--container-max: 1200px;
|
|
36
|
+
--container-narrow: 720px;
|
|
37
|
+
|
|
38
|
+
/* Z-index layers */
|
|
39
|
+
--z-hide: -1; /* @kind other */
|
|
40
|
+
--z-base: 0; /* @kind other */
|
|
41
|
+
--z-raised: 10; /* @kind other */
|
|
42
|
+
--z-dropdown: 1000; /* @kind other */
|
|
43
|
+
--z-sticky: 1100; /* @kind other */
|
|
44
|
+
--z-banner: 1200; /* @kind other */
|
|
45
|
+
--z-overlay: 1300; /* @kind other */
|
|
46
|
+
--z-modal: 1400; /* @kind other */
|
|
47
|
+
--z-popover: 1500; /* @kind other */
|
|
48
|
+
--z-toast: 1600; /* @kind other */
|
|
49
|
+
--z-tooltip: 1700; /* @kind other */
|
|
50
|
+
}
|