@litfamily/lithermes 1.0.28 → 1.0.30
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 +12 -9
- package/README_Ko-KR.md +12 -9
- package/assets/lithermes-plugin/README.md +15 -2
- package/assets/lithermes-plugin/__init__.py +49 -10
- package/assets/lithermes-plugin/adhd_stack.py +228 -0
- package/assets/lithermes-plugin/core.py +30 -4
- package/assets/lithermes-plugin/core_commands.py +99 -0
- package/assets/lithermes-plugin/core_contexts.py +54 -4
- package/assets/lithermes-plugin/core_contract.py +2 -2
- package/assets/lithermes-plugin/core_routing.py +126 -0
- package/assets/lithermes-plugin/diagnostics.py +3 -2
- package/assets/lithermes-plugin/lit_mark.py +75 -0
- package/assets/lithermes-plugin/payload-version.json +472 -60
- package/assets/lithermes-plugin/plugin.yaml +1 -1
- package/assets/lithermes-plugin/scientific_visualization.py +23 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/SKILL.md +7 -7
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/components.css +414 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/fonts.json +42 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/layouts/landing.html +164 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/layouts/settings.html +114 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/layouts/workspace.html +115 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/styles/computational-brutalism.json +227 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/styles/field-notes.json +205 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/styles/graphite.json +200 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/styles/meadow.json +199 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/styles/neo-brutalism.json +222 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/kit/ui.js +226 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/README.md +2 -4
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/complete-contract.md +4 -4
- package/assets/lithermes-plugin/skills/frontend-ui-ux/references/craft-floor.md +10 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/design-lock.mjs +400 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/probe-rules.json +6 -1
- package/assets/lithermes-plugin/skills/frontend-ui-ux/scripts/probe.mjs +76 -4
- package/assets/lithermes-plugin/skills/lit-adhd/SKILL.md +194 -0
- package/assets/lithermes-plugin/skills/lit-adhd/references/brief-contract.md +55 -0
- package/assets/lithermes-plugin/skills/lit-adhd/references/card-examples.md +86 -0
- package/assets/lithermes-plugin/skills/lit-adhd/references/status-taxonomy.md +40 -0
- package/assets/lithermes-plugin/skills/lit-adhd/scripts/adhd.mjs +11 -0
- package/assets/lithermes-plugin/skills/lit-adhd/scripts/lib/collect.mjs +554 -0
- package/assets/lithermes-plugin/skills/lit-adhd/scripts/lib/gauge.mjs +89 -0
- package/assets/lithermes-plugin/skills/lit-adhd/scripts/lib/hermes-sessions.mjs +219 -0
- package/assets/lithermes-plugin/skills/lit-adhd/scripts/lib/next-step.mjs +101 -0
- package/assets/lithermes-plugin/skills/lit-adhd/scripts/lib/plan-task-rows.mjs +32 -0
- package/assets/lithermes-plugin/skills/lit-adhd/scripts/lib/redact.mjs +42 -0
- package/assets/lithermes-plugin/skills/lit-adhd/scripts/lib/secret-shapes.mjs +59 -0
- package/assets/lithermes-plugin/skills/lit-diagram-drawer/SKILL.md +7 -4
- package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/style-guide.md +20 -11
- package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-architecture.md +3 -3
- package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-dependency.md +1 -1
- package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-tree.md +3 -3
- package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/type-wardley.md +1 -1
- package/assets/lithermes-plugin/skills/lit-diagram-drawer/references/verifier-guide.md +5 -0
- package/assets/lithermes-plugin/skills/lit-diagram-drawer/scripts/diagram_quality.py +4 -4
- package/assets/lithermes-plugin/skills/lit-docx/SKILL.md +1 -1
- package/assets/lithermes-plugin/skills/lit-hijack/SKILL.md +239 -0
- package/assets/lithermes-plugin/skills/lit-hijack/references/capture-and-provenance.md +123 -0
- package/assets/lithermes-plugin/skills/lit-hijack/references/clean-room-build.md +128 -0
- package/assets/lithermes-plugin/skills/lit-hijack/references/distil-and-licence.md +128 -0
- package/assets/lithermes-plugin/skills/lit-hijack/references/gap-and-port-design.md +152 -0
- package/assets/lithermes-plugin/skills/lit-hijack/references/parity-and-report.md +131 -0
- package/assets/lithermes-plugin/skills/lit-hijack/scripts/hijack.mjs +995 -0
- package/assets/lithermes-plugin/skills/lit-plan/SKILL.md +1 -0
- package/assets/lithermes-plugin/skills/lit-pptx/SKILL.md +11 -6
- package/assets/lithermes-plugin/skills/lit-pptx/fonts/jetbrains-mono/JetBrainsMono-Bold.ttf +0 -0
- package/assets/lithermes-plugin/skills/lit-pptx/fonts/jetbrains-mono/JetBrainsMono-Regular.ttf +0 -0
- package/assets/lithermes-plugin/skills/lit-pptx/fonts/jetbrains-mono/OFL.txt +93 -0
- package/assets/lithermes-plugin/skills/lit-pptx/fonts/provenance.json +1 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/anti-slop-checklist.md +3 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/authoring-guide.md +1 -1
- package/assets/lithermes-plugin/skills/lit-pptx/references/consensus-protocol.md +1 -1
- package/assets/lithermes-plugin/skills/lit-pptx/references/direction-step.md +8 -2
- package/assets/lithermes-plugin/skills/lit-pptx/references/examples/13-engineering-review-computational-brutalism-ko.md +175 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/examples/14-launch-pitch-neo-brutalism-ko.md +156 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/examples/15-design-lecture-bauhaus-ko.md +141 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/examples/16-community-programme-riso-ko.md +160 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/examples/17-public-data-briefing-newsroom-ko.md +183 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/layout-families.md +1 -1
- package/assets/lithermes-plugin/skills/lit-pptx/references/tonalities/bauhaus.md +105 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/tonalities/computational-brutalism.md +111 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/tonalities/neo-brutalism.md +114 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/tonalities/newsroom.md +106 -0
- package/assets/lithermes-plugin/skills/lit-pptx/references/tonalities/riso.md +101 -0
- package/assets/lithermes-plugin/skills/lit-pptx/scripts/craft_extras.py +49 -0
- package/assets/lithermes-plugin/skills/lit-pptx/scripts/deck_output.py +4 -2
- package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/render-pack.js +96 -10
- package/assets/lithermes-plugin/skills/lit-pptx/scripts/lib/template-registry.js +50 -6
- package/assets/lithermes-plugin/skills/lit-pptx/templates/tonalities/bauhaus/pack.yaml +103 -0
- package/assets/lithermes-plugin/skills/lit-pptx/templates/tonalities/computational-brutalism/pack.yaml +99 -0
- package/assets/lithermes-plugin/skills/lit-pptx/templates/tonalities/neo-brutalism/pack.yaml +107 -0
- package/assets/lithermes-plugin/skills/lit-pptx/templates/tonalities/newsroom/pack.yaml +99 -0
- package/assets/lithermes-plugin/skills/lit-pptx/templates/tonalities/riso/pack.yaml +99 -0
- package/assets/lithermes-plugin/skills/lit-recap/SKILL.md +1 -1
- package/assets/lithermes-plugin/skills/lit-schematic/SKILL.md +144 -0
- package/assets/lithermes-plugin/skills/lit-schematic/examples/iso-heat-exchanger/build.mjs +38 -0
- package/assets/lithermes-plugin/skills/lit-schematic/examples/iso-heat-exchanger/scene.mjs +133 -0
- package/assets/lithermes-plugin/skills/lit-schematic/examples/journal-adsorption-rig/build.mjs +87 -0
- package/assets/lithermes-plugin/skills/lit-schematic/examples/pid-dosing-skid/build.mjs +85 -0
- package/assets/lithermes-plugin/skills/lit-schematic/references/cutaway-outputs.md +70 -0
- package/assets/lithermes-plugin/skills/lit-schematic/references/isometric-craft.md +101 -0
- package/assets/lithermes-plugin/skills/lit-schematic/references/journal-figures.md +72 -0
- package/assets/lithermes-plugin/skills/lit-schematic/references/kit-api.md +134 -0
- package/assets/lithermes-plugin/skills/lit-schematic/references/pfd-and-layout.md +53 -0
- package/assets/lithermes-plugin/skills/lit-schematic/references/pid-drafting.md +103 -0
- package/assets/lithermes-plugin/skills/lit-schematic/references/pid-symbols.md +163 -0
- package/assets/lithermes-plugin/skills/lit-schematic/references/verification.md +100 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/doctor.mjs +57 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/figure.mjs +81 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/fonts.mjs +27 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/geom.mjs +113 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/interactive.mjs +292 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/isa.mjs +115 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/iso.mjs +719 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/legend-sheet.mjs +162 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/pid.mjs +937 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/png.mjs +132 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/qa-core.mjs +658 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/route.mjs +218 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/sheet.mjs +890 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/svg.mjs +82 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/lib/theme.mjs +115 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/motion.mjs +129 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/qa.mjs +92 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/render.mjs +233 -0
- package/assets/lithermes-plugin/skills/lit-schematic/scripts/scaffold.mjs +60 -0
- package/assets/lithermes-plugin/skills/lit-scientific-visualization/SKILL.md +19 -1
- package/assets/lithermes-plugin/skills/lit-typographic-motion/SKILL.md +12 -11
- package/assets/lithermes-plugin/skills/lit-typographic-motion/bin/motion.mjs +56 -2
- package/assets/lithermes-plugin/skills/lit-typographic-motion/bin/runtime.mjs +129 -4
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/THIRD_PARTY_NOTICES +9 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/blender/runner.py +218 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/blender.mjs +154 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/board.mjs +132 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/completion.mjs +48 -5
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/gate.mjs +13 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/house.mjs +44 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/scaffold.mjs +238 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/score.mjs +643 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/sound-dsp.mjs +21 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/sound.mjs +171 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stage-qa.mjs +23 -3
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/stage.mjs +124 -17
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/styles.mjs +240 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/treatment.mjs +152 -10
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/vendor/three/LICENSE +21 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/vendor/three/addons/environments/RoomEnvironment.js +144 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/vendor/three/addons/geometries/RoundedBoxGeometry.js +155 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/engine/vendor/three/three.module.js +54571 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/recipes/hero-3d/expected.json +67 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/recipes/hero-3d/index.html +139 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/references/depth.md +74 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/references/studio.md +87 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/references/style-bibles.md +9 -2
- package/assets/lithermes-plugin/skills/lit-typographic-motion/references/treatment.md +24 -8
- package/assets/lithermes-plugin/skills/lit-typographic-motion/styles/paper.json +41 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/styles/swiss-signal.json +41 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/styles/terminalcore.json +42 -0
- package/assets/lithermes-plugin/skills/lit-typographic-motion/styles/tidal.json +41 -0
- package/assets/lithermes-plugin/skills/litresearch/SKILL.md +4 -0
- package/assets/lithermes-plugin/skills/readme-studio/SKILL.md +1 -1
- package/assets/lithermes-plugin/skills/readme-studio/templates/hyperframes/package-lock.json +3 -3
- package/assets/lithermes-plugin/skills/readme-studio/templates/remotion/package-lock.json +3 -3
- package/assets/lithermes-plugin/skills/review-work/SKILL.md +2 -0
- package/assets/lithermes-plugin/skills/start-work/SKILL.md +2 -1
- package/assets/lithermes-plugin/skills/visual-qa/references/complete-contract.md +3 -3
- package/package.json +1 -1
- package/readme-assets/badge-version.svg +1 -1
- package/src/lib/skillPayload.js +1 -1
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="{{lang: en or ko}}">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>{{Product}} — {{one-line value}}</title>
|
|
7
|
+
<meta name="description" content="{{one sentence for search results}}">
|
|
8
|
+
<link rel="stylesheet" href="ui/tokens.css">
|
|
9
|
+
<link rel="stylesheet" href="ui/components.css">
|
|
10
|
+
<!-- Page-specific rules go in their own file and use only var(--…) tokens and ui-* classes. -->
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<!-- Landing starter (kit/layouts/landing.html). Keep the order unless the brief says otherwise;
|
|
14
|
+
delete a section the brief does not ask for rather than filling it with filler. Replace every
|
|
15
|
+
{{slot}}; the interface probe reports any slot left behind (DS-006). -->
|
|
16
|
+
<a class="ui-skip" href="#main">{{Skip to content}}</a>
|
|
17
|
+
<header class="ui-sitebar">
|
|
18
|
+
<div class="ui-container ui-sitebar__inner">
|
|
19
|
+
<a class="ui-brand" href="#top" aria-label="{{Product}} home">
|
|
20
|
+
<!-- A 20 px mark drawn on the 4 px grid in var(--c-ink) and var(--c-accent), or text only. -->
|
|
21
|
+
{{Product}}
|
|
22
|
+
</a>
|
|
23
|
+
<nav class="ui-sitenav" aria-label="{{Primary}}">
|
|
24
|
+
<a href="#how">{{How it works}}</a>
|
|
25
|
+
<a href="#features">{{Features}}</a>
|
|
26
|
+
<a href="#pricing">{{Pricing}}</a>
|
|
27
|
+
<a href="#faq">{{FAQ}}</a>
|
|
28
|
+
<a class="ui-btn ui-btn--primary ui-btn--sm" href="#pricing">{{Primary action}}</a>
|
|
29
|
+
</nav>
|
|
30
|
+
<details class="ui-menu">
|
|
31
|
+
<summary aria-label="{{Open menu}}">{{Menu}}</summary>
|
|
32
|
+
<div class="ui-menu__panel">
|
|
33
|
+
<a href="#how">{{How it works}}</a>
|
|
34
|
+
<a href="#features">{{Features}}</a>
|
|
35
|
+
<a href="#pricing">{{Pricing}}</a>
|
|
36
|
+
<a href="#faq">{{FAQ}}</a>
|
|
37
|
+
<a class="ui-btn ui-btn--primary" href="#pricing">{{Primary action}}</a>
|
|
38
|
+
</div>
|
|
39
|
+
</details>
|
|
40
|
+
</div>
|
|
41
|
+
</header>
|
|
42
|
+
|
|
43
|
+
<main id="main">
|
|
44
|
+
<!-- Hero: one focal element. The h1 says what the product does for whom in at most three
|
|
45
|
+
lines at 1440 px; the art column carries the style's accent art (field-notes: an original
|
|
46
|
+
pixel motif made with scripts/pixel-art.mjs) or a real product view built from kit parts. -->
|
|
47
|
+
<section class="ui-hero ui-wash" id="top">
|
|
48
|
+
<div class="ui-container ui-split">
|
|
49
|
+
<div class="ui-hero__copy">
|
|
50
|
+
<p class="ui-label">{{who it is for, lowercase, five words at most}}</p>
|
|
51
|
+
<h1 class="ui-display">{{What it does, in the reader's words}}</h1>
|
|
52
|
+
<p class="ui-lead">{{Two sentences: the job it takes off their hands and the result they see.}}</p>
|
|
53
|
+
<div class="ui-cluster">
|
|
54
|
+
<a class="ui-btn ui-btn--primary" href="#pricing">{{Primary action}}</a>
|
|
55
|
+
<a class="ui-btn" href="#how">{{Secondary action}}</a>
|
|
56
|
+
</div>
|
|
57
|
+
<p class="ui-meta">{{The one fact that removes the main hesitation (trial length, card policy).}}</p>
|
|
58
|
+
</div>
|
|
59
|
+
<!-- The signature moment (house-styles.md section 6): the one bold thing on this page, chosen
|
|
60
|
+
for its content and recorded in design.lock.json. It sits in the first screen; for a
|
|
61
|
+
type set piece or a full-width composition move data-ui-moment to that element, or use
|
|
62
|
+
ui-hero--stage to give the art the larger column. -->
|
|
63
|
+
<div class="ui-hero__art ui-glow" data-ui-moment="{{moment kind from design.lock.json}}">
|
|
64
|
+
{{the signature moment: accent art for the locked style (house-styles.md sections 5 and 6) on real content}}
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
</section>
|
|
68
|
+
|
|
69
|
+
<section class="ui-section" id="how" aria-labelledby="how-title">
|
|
70
|
+
<div class="ui-container">
|
|
71
|
+
<div class="ui-section-head">
|
|
72
|
+
<h2 class="ui-h2" id="how-title">{{How it works}}</h2>
|
|
73
|
+
<p class="ui-lead">{{One sentence that frames the steps.}}</p>
|
|
74
|
+
</div>
|
|
75
|
+
<ol class="ui-steps">
|
|
76
|
+
<li><h3 class="ui-h3">{{Step one}}</h3><p class="ui-muted">{{What the user does and what they get.}}</p></li>
|
|
77
|
+
<li><h3 class="ui-h3">{{Step two}}</h3><p class="ui-muted">{{…}}</p></li>
|
|
78
|
+
<li><h3 class="ui-h3">{{Step three}}</h3><p class="ui-muted">{{…}}</p></li>
|
|
79
|
+
</ol>
|
|
80
|
+
</div>
|
|
81
|
+
</section>
|
|
82
|
+
|
|
83
|
+
<!-- Features: alternate the split side once at most, and show each claim with a real kit
|
|
84
|
+
component (a ui-table, a ui-panel with figures) instead of an icon-topped card grid. -->
|
|
85
|
+
<section class="ui-section ui-section--sunken" id="features" aria-labelledby="features-title">
|
|
86
|
+
<div class="ui-container ui-stack ui-stack--loose">
|
|
87
|
+
<div class="ui-section-head">
|
|
88
|
+
<h2 class="ui-h2" id="features-title">{{What it does for them}}</h2>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="ui-split ui-split--top">
|
|
91
|
+
<div class="ui-stack">
|
|
92
|
+
<h3 class="ui-h3">{{Feature one, as an outcome}}</h3>
|
|
93
|
+
<p class="ui-body ui-muted">{{How it works, with one concrete detail.}}</p>
|
|
94
|
+
<ul class="ui-checklist">
|
|
95
|
+
<li>{{specific capability}}</li>
|
|
96
|
+
<li>{{specific capability}}</li>
|
|
97
|
+
</ul>
|
|
98
|
+
</div>
|
|
99
|
+
<div class="ui-panel">{{a small real view: ui-table, ui-stat or ui-list with believable data labelled as an example}}</div>
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
</section>
|
|
103
|
+
|
|
104
|
+
<!-- A colour band between sections: its text takes the band's own ink (ui-band, house-styles.md section 2). -->
|
|
105
|
+
<section class="ui-section ui-band ui-band--accent-2" aria-label="{{Customer story}}">
|
|
106
|
+
<div class="ui-container">
|
|
107
|
+
<figure class="ui-quote">
|
|
108
|
+
<blockquote><p>{{A specific quote with a concrete before and after.}}</p></blockquote>
|
|
109
|
+
<figcaption><strong>{{Name}}</strong><span>{{Role, organisation, place}}</span></figcaption>
|
|
110
|
+
</figure>
|
|
111
|
+
</div>
|
|
112
|
+
</section>
|
|
113
|
+
|
|
114
|
+
<section class="ui-section" id="pricing" aria-labelledby="pricing-title">
|
|
115
|
+
<div class="ui-container">
|
|
116
|
+
<div class="ui-section-head">
|
|
117
|
+
<h2 class="ui-h2" id="pricing-title">{{Pricing}}</h2>
|
|
118
|
+
<p class="ui-lead">{{What every plan includes and how billing works.}}</p>
|
|
119
|
+
</div>
|
|
120
|
+
<div class="ui-plans">
|
|
121
|
+
<article class="ui-plan">
|
|
122
|
+
<div class="ui-stack ui-stack--tight"><h3 class="ui-h3">{{Plan}}</h3><p class="ui-meta">{{Who it is for}}</p></div>
|
|
123
|
+
<div class="ui-plan__price">{{price}} <small>{{per period}}</small></div>
|
|
124
|
+
<ul class="ui-checklist"><li>{{included}}</li><li>{{included}}</li></ul>
|
|
125
|
+
<a class="ui-btn" href="#top">{{Plan action}}</a>
|
|
126
|
+
</article>
|
|
127
|
+
<article class="ui-plan ui-plan--featured">
|
|
128
|
+
<div class="ui-stack ui-stack--tight"><h3 class="ui-h3">{{Plan}}</h3><p class="ui-meta">{{Who it is for}}</p></div>
|
|
129
|
+
<div class="ui-plan__price">{{price}} <small>{{per period}}</small></div>
|
|
130
|
+
<ul class="ui-checklist"><li>{{included}}</li><li>{{included}}</li></ul>
|
|
131
|
+
<a class="ui-btn ui-btn--primary" href="#top">{{Plan action}}</a>
|
|
132
|
+
</article>
|
|
133
|
+
<article class="ui-plan">
|
|
134
|
+
<div class="ui-stack ui-stack--tight"><h3 class="ui-h3">{{Plan}}</h3><p class="ui-meta">{{Who it is for}}</p></div>
|
|
135
|
+
<div class="ui-plan__price">{{price}} <small>{{per period}}</small></div>
|
|
136
|
+
<ul class="ui-checklist"><li>{{included}}</li><li>{{included}}</li></ul>
|
|
137
|
+
<a class="ui-btn" href="#top">{{Plan action}}</a>
|
|
138
|
+
</article>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
</section>
|
|
142
|
+
|
|
143
|
+
<section class="ui-section" id="faq" aria-labelledby="faq-title">
|
|
144
|
+
<div class="ui-container ui-split ui-split--top">
|
|
145
|
+
<div class="ui-stack">
|
|
146
|
+
<h2 class="ui-h2" id="faq-title">{{Questions}}</h2>
|
|
147
|
+
<p class="ui-muted">{{Where to ask anything else.}}</p>
|
|
148
|
+
</div>
|
|
149
|
+
<div>
|
|
150
|
+
<details class="ui-disclosure"><summary>{{Question}}</summary><p>{{Answer}}</p></details>
|
|
151
|
+
<details class="ui-disclosure"><summary>{{Question}}</summary><p>{{Answer}}</p></details>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</section>
|
|
155
|
+
</main>
|
|
156
|
+
|
|
157
|
+
<footer class="ui-footer">
|
|
158
|
+
<div class="ui-container ui-cluster" style="justify-content: space-between">
|
|
159
|
+
<p><strong>{{Product}}</strong></p>
|
|
160
|
+
<p class="ui-meta">{{Legal line}}</p>
|
|
161
|
+
</div>
|
|
162
|
+
</footer>
|
|
163
|
+
</body>
|
|
164
|
+
</html>
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="{{lang: en or ko}}">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>{{Settings}} · {{Product}}</title>
|
|
7
|
+
<link rel="stylesheet" href="ui/tokens.css">
|
|
8
|
+
<link rel="stylesheet" href="ui/components.css">
|
|
9
|
+
<script src="ui/ui.js" defer></script>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<!-- Settings starter (kit/layouts/settings.html): one column of sections capped near 720 px,
|
|
13
|
+
a section index beside it on wide screens, labels above fields, errors beside their field
|
|
14
|
+
on blur, one save bar that shows saving, saved and error in words. Destructive actions
|
|
15
|
+
sit last, behind a confirmation that names the thing being destroyed. Replace every
|
|
16
|
+
{{slot}} (DS-006 flags leftovers). -->
|
|
17
|
+
<a class="ui-skip" href="#main">{{Skip to content}}</a>
|
|
18
|
+
<header class="ui-sitebar">
|
|
19
|
+
<div class="ui-container ui-container--wide ui-sitebar__inner">
|
|
20
|
+
<a class="ui-brand" href="#main">{{Product}}</a>
|
|
21
|
+
<p class="ui-meta">{{Workspace or account name}}</p>
|
|
22
|
+
</div>
|
|
23
|
+
</header>
|
|
24
|
+
|
|
25
|
+
<div class="ui-container ui-container--wide">
|
|
26
|
+
<div class="ui-page">
|
|
27
|
+
<!-- The small signature moment, usually a header detail (the workspace's own mark, plan or
|
|
28
|
+
status set with care); mark the one element that carries it. -->
|
|
29
|
+
<div class="ui-page__head" data-ui-moment="{{small moment kind from design.lock.json, or move it}}">
|
|
30
|
+
<div class="ui-stack ui-stack--tight">
|
|
31
|
+
<h1 class="ui-page__title">{{Settings}}</h1>
|
|
32
|
+
<p class="ui-meta">{{What these settings affect}}</p>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
|
|
36
|
+
<div class="ui-settings">
|
|
37
|
+
<nav class="ui-settings__nav" aria-label="{{Settings sections}}">
|
|
38
|
+
<ul class="ui-navlist">
|
|
39
|
+
<li><a href="#general" aria-current="true">{{General}}</a></li>
|
|
40
|
+
<li><a href="#{{id}}">{{Section}}</a></li>
|
|
41
|
+
<li><a href="#danger">{{Danger zone}}</a></li>
|
|
42
|
+
</ul>
|
|
43
|
+
</nav>
|
|
44
|
+
|
|
45
|
+
<main class="ui-settings__body" id="main">
|
|
46
|
+
<form id="settings-form" class="ui-settings__body" novalidate>
|
|
47
|
+
<section class="ui-panel ui-setting-section" id="general" aria-labelledby="general-title">
|
|
48
|
+
<div class="ui-setting-section__head">
|
|
49
|
+
<h2 class="ui-h3" id="general-title">{{General}}</h2>
|
|
50
|
+
<p class="ui-meta">{{What this section controls}}</p>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="ui-field">
|
|
53
|
+
<label class="ui-field__label" for="name">{{Field label}}</label>
|
|
54
|
+
<input class="ui-input" id="name" name="name" required aria-describedby="name-hint name-error">
|
|
55
|
+
<p class="ui-field__hint" id="name-hint">{{Rule stated before the user types}}</p>
|
|
56
|
+
<p class="ui-field__error" id="name-error" hidden>{{What went wrong and how to fix it}}</p>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="ui-field">
|
|
59
|
+
<label class="ui-field__label" for="slug">{{Address}}</label>
|
|
60
|
+
<div class="ui-input-group">
|
|
61
|
+
<span class="ui-input-group__addon">{{example.com/}}</span>
|
|
62
|
+
<input class="ui-input" id="slug" name="slug" required aria-describedby="slug-hint slug-error">
|
|
63
|
+
</div>
|
|
64
|
+
<p class="ui-field__hint" id="slug-hint">{{Allowed characters and length}}</p>
|
|
65
|
+
<p class="ui-field__error" id="slug-error" hidden>{{…}}</p>
|
|
66
|
+
</div>
|
|
67
|
+
</section>
|
|
68
|
+
|
|
69
|
+
<section class="ui-panel ui-setting-section" id="{{id}}" aria-labelledby="{{id}}-title">
|
|
70
|
+
<div class="ui-setting-section__head">
|
|
71
|
+
<h2 class="ui-h3" id="{{id}}-title">{{Section}}</h2>
|
|
72
|
+
</div>
|
|
73
|
+
<label class="ui-switch"><span class="ui-stack ui-stack--tight"><span>{{What turns on}}</span><span class="ui-meta">{{consequence}}</span></span><input type="checkbox" role="switch"></label>
|
|
74
|
+
</section>
|
|
75
|
+
|
|
76
|
+
<div class="ui-savebar" role="region" aria-label="{{Save changes}}">
|
|
77
|
+
<p class="ui-status" id="save-state" role="status" aria-live="polite">{{No unsaved changes}}</p>
|
|
78
|
+
<div class="ui-form-actions">
|
|
79
|
+
<button class="ui-btn ui-btn--quiet" type="reset">{{Discard}}</button>
|
|
80
|
+
<button class="ui-btn ui-btn--primary" type="submit">{{Save changes}}</button>
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
</form>
|
|
84
|
+
|
|
85
|
+
<section class="ui-panel ui-setting-section ui-setting-section--danger" id="danger" aria-labelledby="danger-title">
|
|
86
|
+
<div class="ui-setting-section__head">
|
|
87
|
+
<h2 class="ui-h3" id="danger-title">{{Danger zone}}</h2>
|
|
88
|
+
<p class="ui-meta">{{What is lost, and that it cannot be undone}}</p>
|
|
89
|
+
</div>
|
|
90
|
+
<div><button class="ui-btn ui-btn--danger" type="button" id="delete-open">{{Delete …}}</button></div>
|
|
91
|
+
</section>
|
|
92
|
+
</main>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<dialog class="ui-dialog" id="delete-dialog" aria-labelledby="delete-title">
|
|
98
|
+
<form method="dialog">
|
|
99
|
+
<div class="ui-dialog__body">
|
|
100
|
+
<h2 class="ui-h3" id="delete-title">{{Delete name?}}</h2>
|
|
101
|
+
<p class="ui-muted">{{Exactly what disappears}}</p>
|
|
102
|
+
<div class="ui-field">
|
|
103
|
+
<label class="ui-field__label" for="confirm">{{Type the name to confirm}}</label>
|
|
104
|
+
<input class="ui-input" id="confirm" autocomplete="off">
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="ui-dialog__actions">
|
|
108
|
+
<button class="ui-btn" type="submit" value="cancel">{{Cancel}}</button>
|
|
109
|
+
<button class="ui-btn ui-btn--danger" type="submit" value="confirm" id="delete-confirm" disabled>{{Delete permanently}}</button>
|
|
110
|
+
</div>
|
|
111
|
+
</form>
|
|
112
|
+
</dialog>
|
|
113
|
+
</body>
|
|
114
|
+
</html>
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="{{lang: en or ko}}">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>{{Screen}} · {{Product}}</title>
|
|
7
|
+
<link rel="stylesheet" href="ui/tokens.css">
|
|
8
|
+
<link rel="stylesheet" href="ui/components.css">
|
|
9
|
+
<script src="ui/ui.js" defer></script>
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<!-- Workspace starter (kit/layouts/workspace.html): an app shell for screens people work in.
|
|
13
|
+
The first viewport is the working content: headline figures, then the main view. No hero,
|
|
14
|
+
no tagline, no illustration block. Replace every {{slot}} (DS-006 flags leftovers). -->
|
|
15
|
+
<a class="ui-skip" href="#main">{{Skip to content}}</a>
|
|
16
|
+
<div class="ui-app">
|
|
17
|
+
<aside class="ui-app__nav" aria-label="{{Product}}">
|
|
18
|
+
<a class="ui-brand" href="#main">{{Product}}</a>
|
|
19
|
+
<nav class="ui-navgroup" aria-label="{{Sections}}">
|
|
20
|
+
<p class="ui-navgroup__label">{{Group}}</p>
|
|
21
|
+
<ul class="ui-navlist">
|
|
22
|
+
<li><a href="#main" aria-current="page">{{This screen}}</a></li>
|
|
23
|
+
<li><a href="#{{id}}">{{Other screen}}</a></li>
|
|
24
|
+
</ul>
|
|
25
|
+
</nav>
|
|
26
|
+
</aside>
|
|
27
|
+
|
|
28
|
+
<div class="ui-app__main">
|
|
29
|
+
<header class="ui-topbar">
|
|
30
|
+
<div class="ui-stack ui-stack--tight">
|
|
31
|
+
<h1 class="ui-page__title">{{Screen title}}</h1>
|
|
32
|
+
<p class="ui-meta">{{Scope and freshness, e.g. "Today · data as of 14:20"}}</p>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="ui-cluster">
|
|
35
|
+
<!-- One primary action at most; the rest stay quiet. -->
|
|
36
|
+
<button class="ui-btn ui-btn--sm" type="button">{{Secondary}}</button>
|
|
37
|
+
</div>
|
|
38
|
+
</header>
|
|
39
|
+
|
|
40
|
+
<main class="ui-page" id="main">
|
|
41
|
+
<!-- Headline figures: each one is a number the user acts on, with its comparison. -->
|
|
42
|
+
<section class="ui-stat-row" aria-label="{{Headline figures}}">
|
|
43
|
+
<div class="ui-stat">
|
|
44
|
+
<p class="ui-stat__label">{{Figure}}</p>
|
|
45
|
+
<div class="ui-stat__value">{{value}} <small>{{unit or of total}}</small></div>
|
|
46
|
+
<p class="ui-stat__note">{{comparison: target, yesterday, or what it means}}</p>
|
|
47
|
+
</div>
|
|
48
|
+
<div class="ui-stat">…</div>
|
|
49
|
+
<div class="ui-stat">…</div>
|
|
50
|
+
<div class="ui-stat">…</div>
|
|
51
|
+
</section>
|
|
52
|
+
|
|
53
|
+
<div class="ui-workgrid">
|
|
54
|
+
<!-- The small signature moment (chart, empty-state or header-detail): mark the one element
|
|
55
|
+
that carries it; the rest of the screen stays calm. -->
|
|
56
|
+
<section class="ui-panel ui-span-8" aria-labelledby="chart-title" data-ui-moment="{{small moment kind from design.lock.json, or move it}}">
|
|
57
|
+
<div class="ui-panel__head">
|
|
58
|
+
<h2 class="ui-panel__title" id="chart-title">{{Chart title that states the question}}</h2>
|
|
59
|
+
<p class="ui-meta">{{what the marks mean}}</p>
|
|
60
|
+
</div>
|
|
61
|
+
<!-- UI.bars(document.getElementById('chart'), { labels, series: [{ name, values, role: 'chart-1' }], marker: { index, label }, caption }) -->
|
|
62
|
+
<div id="chart"></div>
|
|
63
|
+
</section>
|
|
64
|
+
|
|
65
|
+
<section class="ui-panel ui-panel--accent-2 ui-span-4" aria-labelledby="side-title">
|
|
66
|
+
<div class="ui-panel__head">
|
|
67
|
+
<h2 class="ui-panel__title" id="side-title">{{Exceptions or alerts}}</h2>
|
|
68
|
+
<p class="ui-meta">{{count and period}}</p>
|
|
69
|
+
</div>
|
|
70
|
+
<ul class="ui-list ui-scroll">
|
|
71
|
+
<li>
|
|
72
|
+
<div class="ui-stack ui-stack--tight"><strong>{{item}}</strong><span class="ui-meta">{{detail}}</span></div>
|
|
73
|
+
<span class="ui-status ui-status--negative">{{state in words}}</span>
|
|
74
|
+
</li>
|
|
75
|
+
</ul>
|
|
76
|
+
</section>
|
|
77
|
+
|
|
78
|
+
<section class="ui-panel ui-panel--flush ui-span-12" aria-labelledby="table-title">
|
|
79
|
+
<div class="ui-panel__head">
|
|
80
|
+
<h2 class="ui-panel__title" id="table-title">{{Records}}</h2>
|
|
81
|
+
<div class="ui-toolbar">
|
|
82
|
+
<div class="ui-segmented" role="group" aria-label="{{Filter by status}}">
|
|
83
|
+
<button type="button" aria-pressed="true">{{All}} <span class="ui-count">{{n}}</span></button>
|
|
84
|
+
<button type="button" aria-pressed="false">{{Status}} <span class="ui-count">{{n}}</span></button>
|
|
85
|
+
</div>
|
|
86
|
+
<label class="ui-search"><span class="ui-visually-hidden">{{Search}}</span><input class="ui-input" type="search" placeholder="{{Search by …}}"></label>
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="ui-table-wrap" style="border: 0; border-radius: 0">
|
|
90
|
+
<table class="ui-table ui-table--compact ui-table--stack" data-ui-sortable>
|
|
91
|
+
<thead>
|
|
92
|
+
<tr>
|
|
93
|
+
<th scope="col" aria-sort="ascending"><button class="ui-sort">{{Column}}</button></th>
|
|
94
|
+
<th scope="col"><button class="ui-sort">{{Column}}</button></th>
|
|
95
|
+
<th scope="col" class="is-num"><button class="ui-sort">{{Number}}</button></th>
|
|
96
|
+
<th scope="col"><button class="ui-sort">{{Status}}</button></th>
|
|
97
|
+
</tr>
|
|
98
|
+
</thead>
|
|
99
|
+
<tbody>
|
|
100
|
+
<tr>
|
|
101
|
+
<td data-label="{{Column}}">{{value}}</td>
|
|
102
|
+
<td data-label="{{Column}}">{{value}}</td>
|
|
103
|
+
<td data-label="{{Number}}" class="is-num" data-value="{{raw number}}">{{formatted}}</td>
|
|
104
|
+
<td data-label="{{Status}}"><span class="ui-status ui-status--positive">{{state}}</span></td>
|
|
105
|
+
</tr>
|
|
106
|
+
</tbody>
|
|
107
|
+
</table>
|
|
108
|
+
</div>
|
|
109
|
+
</section>
|
|
110
|
+
</div>
|
|
111
|
+
</main>
|
|
112
|
+
</div>
|
|
113
|
+
</div>
|
|
114
|
+
</body>
|
|
115
|
+
</html>
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_id": "litfamily.frontend-style/v1",
|
|
3
|
+
"id": "computational-brutalism",
|
|
4
|
+
"name": "Computational brutalism",
|
|
5
|
+
"summary": "A retro-futurist instrument register with its structure on show: drafting-film grey over a plotting grid with major lines every five cells, monospaced text and mono headings at real size, square corners, heavy 3 px section rules and 2 px compartments with inverse header bars, coordinate-marked sections, uppercase measurement labels and one hazard-orange signal; in dark mode the same build reads as a phosphor CRT with an amber signal. Flat: no blur, no soft elevation.",
|
|
6
|
+
"use_when": [
|
|
7
|
+
"opt-in only: the brief names brutalist, brutalism, computational, retro-futurist, CRT, terminal or telemetry, or the Korean 브루탈리즘, 레트로퓨처 or 터미널 감성",
|
|
8
|
+
"developer tools, consoles, data instruments, research or engineering products that want a raw, mechanical, high-density voice",
|
|
9
|
+
"a launch page for a technical product that should read as a spec sheet rather than a brochure"
|
|
10
|
+
],
|
|
11
|
+
"avoid_when": [
|
|
12
|
+
"the brief asks for warmth, softness, play or a consumer-friendly tone",
|
|
13
|
+
"long-form reading for a general audience (monospaced body text slows it down)",
|
|
14
|
+
"the brief says neo-brutalism or neo-brutalist (that is the neo-brutalism style)"
|
|
15
|
+
],
|
|
16
|
+
"keywords": [
|
|
17
|
+
"computational brutalism",
|
|
18
|
+
"computational-brutalism",
|
|
19
|
+
"brutalist",
|
|
20
|
+
"brutalism",
|
|
21
|
+
"retro-futurist",
|
|
22
|
+
"retro-futurism",
|
|
23
|
+
"retrofuturist",
|
|
24
|
+
"retrofuturism",
|
|
25
|
+
"retro futurist",
|
|
26
|
+
"crt",
|
|
27
|
+
"terminal aesthetic",
|
|
28
|
+
"telemetry",
|
|
29
|
+
"브루탈리즘",
|
|
30
|
+
"브루탈리스트",
|
|
31
|
+
"브루탈",
|
|
32
|
+
"레트로퓨처",
|
|
33
|
+
"레트로 퓨처",
|
|
34
|
+
"레트로퓨처리즘",
|
|
35
|
+
"터미널 감성"
|
|
36
|
+
],
|
|
37
|
+
"signature": [
|
|
38
|
+
"an exposed plotting grid: a faint 32 px grid with a stronger line every 160 px, and blocks that sit on it",
|
|
39
|
+
"mono type at real scale: body, headings, figures and the signature moment in JetBrains Mono, the display title in heavy uppercase Pretendard",
|
|
40
|
+
"raw structure on purpose: 3 px section rules, 2 px compartments in line-strong, panel heads as inverse ink bars, square corners everywhere (status dots stay round)",
|
|
41
|
+
"measurement and index labels: every section carries a data-coord label on its rule (sheet, grid reference, revision), ui-coord and ui-ruler name real sizes and positions, ui-frame adds registration crosses",
|
|
42
|
+
"uppercase mono meta: labels, table heads, nav groups, tags and legends in capitals with 0.08 em tracking",
|
|
43
|
+
"a strong signal colour plus a plotter-blue second accent: hazard orange in light, amber phosphor in dark, on the primary action and the figure that matters; plotter blue on the second series and featured compartments; phosphor green as the support tint",
|
|
44
|
+
"terminal and CRT detail: a ui-prompt with a static block cursor, ui-scan scanlines on readouts (never over body text), stepped motion (steps(3, end))"
|
|
45
|
+
],
|
|
46
|
+
"forbid": [
|
|
47
|
+
"rounded corners, pills and soft cards (DS-005 reports any radius off the lock)",
|
|
48
|
+
"blurred or soft drop shadows and offset shadows (DS-007: the lock declares flat elevation)",
|
|
49
|
+
"gradients other than the plotting grid, glassmorphism, glow and neon bloom (CF-404 and the slop register report them)",
|
|
50
|
+
"rainbow charts, more than four accent hue families in one view, or decorative emoji",
|
|
51
|
+
"scanlines or noise over body text; flicker, blinking cursors or animated scan effects",
|
|
52
|
+
"decorative fake data: every coordinate, revision, grid reference or unit id must label something on the page",
|
|
53
|
+
"hiding the structure: borderless floating cards, centred hero text over empty space"
|
|
54
|
+
],
|
|
55
|
+
"fonts": {
|
|
56
|
+
"text": "JetBrains Mono",
|
|
57
|
+
"display": "Pretendard",
|
|
58
|
+
"mono": "JetBrains Mono"
|
|
59
|
+
},
|
|
60
|
+
"type": {
|
|
61
|
+
"scale_px": {
|
|
62
|
+
"xs": 12,
|
|
63
|
+
"sm": 13,
|
|
64
|
+
"md": 14,
|
|
65
|
+
"base": 16,
|
|
66
|
+
"lg": 18,
|
|
67
|
+
"xl": 20,
|
|
68
|
+
"2xl": 24,
|
|
69
|
+
"3xl": 30,
|
|
70
|
+
"4xl": 38,
|
|
71
|
+
"5xl": 48
|
|
72
|
+
},
|
|
73
|
+
"display_px": {
|
|
74
|
+
"min": 40,
|
|
75
|
+
"max": 88
|
|
76
|
+
},
|
|
77
|
+
"moment_px": {
|
|
78
|
+
"max": 168
|
|
79
|
+
},
|
|
80
|
+
"weights": {
|
|
81
|
+
"text": 400,
|
|
82
|
+
"medium": 500,
|
|
83
|
+
"strong": 700,
|
|
84
|
+
"display": 820
|
|
85
|
+
},
|
|
86
|
+
"tracking_em": {
|
|
87
|
+
"display": -0.035,
|
|
88
|
+
"label": 0.08
|
|
89
|
+
},
|
|
90
|
+
"leading": {
|
|
91
|
+
"body": 1.6,
|
|
92
|
+
"tight": 1.3,
|
|
93
|
+
"display_latin": 0.98,
|
|
94
|
+
"display_korean": 1.14
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"space_px": [
|
|
98
|
+
4,
|
|
99
|
+
8,
|
|
100
|
+
12,
|
|
101
|
+
16,
|
|
102
|
+
20,
|
|
103
|
+
24,
|
|
104
|
+
32,
|
|
105
|
+
40,
|
|
106
|
+
48,
|
|
107
|
+
64,
|
|
108
|
+
80,
|
|
109
|
+
96,
|
|
110
|
+
128
|
|
111
|
+
],
|
|
112
|
+
"radius_px": {
|
|
113
|
+
"xs": 0,
|
|
114
|
+
"sm": 0,
|
|
115
|
+
"md": 0,
|
|
116
|
+
"lg": 0,
|
|
117
|
+
"pill": 0
|
|
118
|
+
},
|
|
119
|
+
"shadow": {
|
|
120
|
+
"raised": "none",
|
|
121
|
+
"overlay": "0 0 0 1px var(--c-ink)"
|
|
122
|
+
},
|
|
123
|
+
"motion": {
|
|
124
|
+
"fast_ms": 80,
|
|
125
|
+
"ui_ms": 120,
|
|
126
|
+
"enter_ms": 240,
|
|
127
|
+
"exit_ms": 100,
|
|
128
|
+
"ease": "steps(3, end)"
|
|
129
|
+
},
|
|
130
|
+
"shape": {
|
|
131
|
+
"border_px": {
|
|
132
|
+
"rule": 3,
|
|
133
|
+
"surface": 2,
|
|
134
|
+
"control": 2
|
|
135
|
+
},
|
|
136
|
+
"surface_line": "line-strong",
|
|
137
|
+
"control_edge": "control",
|
|
138
|
+
"elevation": "flat",
|
|
139
|
+
"offset_px": {
|
|
140
|
+
"surface": 0,
|
|
141
|
+
"control": 0
|
|
142
|
+
},
|
|
143
|
+
"press": "none",
|
|
144
|
+
"meta_font": "mono",
|
|
145
|
+
"meta_case": "uppercase",
|
|
146
|
+
"display_case": "uppercase",
|
|
147
|
+
"canvas_pattern": "plot",
|
|
148
|
+
"heading_font": "mono",
|
|
149
|
+
"panel_head": "inverse",
|
|
150
|
+
"section_marks": "coord"
|
|
151
|
+
},
|
|
152
|
+
"color": {
|
|
153
|
+
"light": {
|
|
154
|
+
"canvas": "#e6e7e3",
|
|
155
|
+
"surface": "#f4f4f1",
|
|
156
|
+
"sunken": "#dadbd6",
|
|
157
|
+
"ink": "#0d0e0d",
|
|
158
|
+
"ink-2": "#2f322f",
|
|
159
|
+
"ink-3": "#4d514d",
|
|
160
|
+
"line": "#c3c5bf",
|
|
161
|
+
"line-strong": "#3a3d3a",
|
|
162
|
+
"control": "#666a66",
|
|
163
|
+
"accent": "#c8370c",
|
|
164
|
+
"accent-hover": "#a92d09",
|
|
165
|
+
"on-accent": "#ffffff",
|
|
166
|
+
"accent-wash": "#f3dccf",
|
|
167
|
+
"accent-ink": "#a12b07",
|
|
168
|
+
"accent-2": "#1559b8",
|
|
169
|
+
"accent-2-ink": "#134e9e",
|
|
170
|
+
"accent-2-wash": "#dbe6f5",
|
|
171
|
+
"on-accent-2": "#ffffff",
|
|
172
|
+
"support": "#cfe6c7",
|
|
173
|
+
"support-ink": "#1d4a17",
|
|
174
|
+
"focus": "#c8370c",
|
|
175
|
+
"positive": "#1d6b2c",
|
|
176
|
+
"positive-wash": "#d4ead4",
|
|
177
|
+
"warning": "#734e00",
|
|
178
|
+
"warning-wash": "#f1e3c0",
|
|
179
|
+
"negative": "#b0131a",
|
|
180
|
+
"negative-wash": "#f4d6d4",
|
|
181
|
+
"info": "#1f4f8a",
|
|
182
|
+
"info-wash": "#d7e2ef",
|
|
183
|
+
"chart-1": "#0d0e0d",
|
|
184
|
+
"chart-2": "#c8370c",
|
|
185
|
+
"chart-3": "#666a66",
|
|
186
|
+
"chart-4": "#b4b7b0",
|
|
187
|
+
"chart-5": "#2f8a3a"
|
|
188
|
+
},
|
|
189
|
+
"dark": {
|
|
190
|
+
"canvas": "#0b0d0b",
|
|
191
|
+
"surface": "#111411",
|
|
192
|
+
"sunken": "#070807",
|
|
193
|
+
"ink": "#c8f5c0",
|
|
194
|
+
"ink-2": "#a2d39b",
|
|
195
|
+
"ink-3": "#7eab78",
|
|
196
|
+
"line": "#1f2a1f",
|
|
197
|
+
"line-strong": "#44633f",
|
|
198
|
+
"control": "#557a50",
|
|
199
|
+
"accent": "#ffb000",
|
|
200
|
+
"accent-hover": "#ffc233",
|
|
201
|
+
"on-accent": "#120c00",
|
|
202
|
+
"accent-wash": "#2a1f05",
|
|
203
|
+
"accent-ink": "#ffbf3d",
|
|
204
|
+
"accent-2": "#5aa8ff",
|
|
205
|
+
"accent-2-ink": "#7dbbff",
|
|
206
|
+
"accent-2-wash": "#10243a",
|
|
207
|
+
"on-accent-2": "#06121f",
|
|
208
|
+
"support": "#173016",
|
|
209
|
+
"support-ink": "#b6f0ab",
|
|
210
|
+
"focus": "#ffb000",
|
|
211
|
+
"positive": "#6fe07a",
|
|
212
|
+
"positive-wash": "#0f2a12",
|
|
213
|
+
"warning": "#ffcf5a",
|
|
214
|
+
"warning-wash": "#2c2307",
|
|
215
|
+
"negative": "#ff7b6b",
|
|
216
|
+
"negative-wash": "#331410",
|
|
217
|
+
"info": "#7cc4ff",
|
|
218
|
+
"info-wash": "#0e2233",
|
|
219
|
+
"chart-1": "#c8f5c0",
|
|
220
|
+
"chart-2": "#ffb000",
|
|
221
|
+
"chart-3": "#5f8f5a",
|
|
222
|
+
"chart-4": "#2f452d",
|
|
223
|
+
"chart-5": "#ff7b6b"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"accent_art": "instrument"
|
|
227
|
+
}
|