anentrypoint-design 0.0.121 → 0.0.124
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 +253 -253
- package/app-shell.css +931 -594
- package/colors_and_type.css +226 -226
- package/community.css +817 -1222
- package/dist/247420.css +2202 -2084
- package/dist/247420.js +13 -13
- package/package.json +80 -80
- package/src/bootstrap.js +25 -25
- package/src/components/chat.js +199 -199
- package/src/components/community.js +190 -208
- package/src/components/content.js +269 -269
- package/src/components/editor-primitives.js +100 -0
- package/src/components/files-modals.js +107 -107
- package/src/components/files.js +118 -118
- package/src/components/freddie/helpers.js +50 -50
- package/src/components/freddie.js +33 -33
- package/src/components/shell.js +117 -117
- package/src/components/theme-toggle.js +70 -70
- package/src/components.js +59 -57
- package/src/debug.js +30 -30
- package/src/deck-stage.js +21 -21
- package/src/highlight.js +65 -32
- package/src/index.js +86 -86
- package/src/kits/os/about-app.js +52 -52
- package/src/kits/os/app-panes.css +152 -152
- package/src/kits/os/browser-app.js +58 -58
- package/src/kits/os/files-app.js +44 -44
- package/src/kits/os/freddie/helpers.js +59 -59
- package/src/kits/os/freddie/pages-chat.js +143 -143
- package/src/kits/os/freddie/pages-core.js +101 -101
- package/src/kits/os/freddie/pages-os.js +51 -51
- package/src/kits/os/freddie/pages-tools.js +183 -183
- package/src/kits/os/freddie/routes.js +24 -24
- package/src/kits/os/freddie-dashboard.css +51 -51
- package/src/kits/os/freddie-dashboard.js +101 -101
- package/src/kits/os/icons.js +17 -17
- package/src/kits/os/index.js +17 -17
- package/src/kits/os/launcher.css +61 -61
- package/src/kits/os/launcher.js +79 -79
- package/src/kits/os/monitor-app.js +34 -34
- package/src/kits/os/shell.js +214 -214
- package/src/kits/os/terminal-app.js +45 -45
- package/src/kits/os/theme.css +450 -450
- package/src/kits/os/validate.css +19 -19
- package/src/kits/os/validator-app.js +55 -55
- package/src/kits/os/wm.css +115 -115
- package/src/kits/os/wm.js +111 -111
- package/src/markdown.js +39 -39
- package/src/motion.js +35 -35
- package/src/page-html.js +196 -196
- package/src/styles.js +25 -25
- package/src/theme.js +99 -99
- package/src/web-components/ds-chat.js +116 -116
- package/dist/.nojekyll +0 -0
- package/dist/app-shell.css +0 -594
- package/dist/colors_and_type.css +0 -197
- package/dist/favicon.svg +0 -1
- package/dist/index.html +0 -308
- package/dist/preview/buttons.html +0 -28
- package/dist/preview/colors-core.html +0 -45
- package/dist/preview/colors-lore.html +0 -28
- package/dist/preview/colors-semantic.html +0 -34
- package/dist/preview/dateline.html +0 -19
- package/dist/preview/dropzone.html +0 -30
- package/dist/preview/file-grid.html +0 -19
- package/dist/preview/file-row.html +0 -20
- package/dist/preview/file-toolbar.html +0 -40
- package/dist/preview/file-viewer.html +0 -31
- package/dist/preview/header.html +0 -24
- package/dist/preview/icons-unicode.html +0 -26
- package/dist/preview/index-row.html +0 -25
- package/dist/preview/inputs.html +0 -22
- package/dist/preview/manifesto.html +0 -52
- package/dist/preview/motion-default.js +0 -106
- package/dist/preview/rules.html +0 -16
- package/dist/preview/spacing.html +0 -18
- package/dist/preview/stamps-lore.html +0 -20
- package/dist/preview/stamps.html +0 -14
- package/dist/preview/theme-ink.html +0 -15
- package/dist/preview/type-display.html +0 -16
- package/dist/preview/type-mono.html +0 -15
- package/dist/preview/type-prose.html +0 -11
- package/dist/preview/type-scale.html +0 -20
- package/dist/preview/wordmarks.html +0 -28
- package/dist/robots.txt +0 -8
- package/dist/site/content/globals/navigation.yaml +0 -5
- package/dist/site/content/globals/site.yaml +0 -16
- package/dist/site/content/pages/freddie.yaml +0 -88
- package/dist/site/content/pages/home.yaml +0 -190
- package/dist/site/theme.mjs +0 -368
- package/dist/sitemap.xml +0 -31
- package/dist/slides/deck-stage-overlay.js +0 -63
- package/dist/slides/deck-stage-state.js +0 -81
- package/dist/slides/deck-stage-style.js +0 -117
- package/dist/slides/deck-stage.js +0 -159
- package/dist/slides/index.html +0 -276
- package/dist/src/bootstrap.js +0 -25
- package/dist/src/components/chat.js +0 -199
- package/dist/src/components/community.js +0 -167
- package/dist/src/components/content.js +0 -213
- package/dist/src/components/files-modals.js +0 -107
- package/dist/src/components/files.js +0 -118
- package/dist/src/components/freddie/helpers.js +0 -50
- package/dist/src/components/freddie.js +0 -33
- package/dist/src/components/shell.js +0 -117
- package/dist/src/components/theme-toggle.js +0 -70
- package/dist/src/components.js +0 -52
- package/dist/src/debug.js +0 -30
- package/dist/src/deck-stage.js +0 -21
- package/dist/src/highlight.js +0 -32
- package/dist/src/index.js +0 -86
- package/dist/src/kits/os/about-app.js +0 -52
- package/dist/src/kits/os/app-panes.css +0 -152
- package/dist/src/kits/os/browser-app.js +0 -58
- package/dist/src/kits/os/files-app.js +0 -44
- package/dist/src/kits/os/freddie/helpers.js +0 -59
- package/dist/src/kits/os/freddie/pages-chat.js +0 -143
- package/dist/src/kits/os/freddie/pages-core.js +0 -101
- package/dist/src/kits/os/freddie/pages-os.js +0 -51
- package/dist/src/kits/os/freddie/pages-tools.js +0 -183
- package/dist/src/kits/os/freddie/routes.js +0 -24
- package/dist/src/kits/os/freddie-dashboard.css +0 -51
- package/dist/src/kits/os/freddie-dashboard.js +0 -101
- package/dist/src/kits/os/icons.js +0 -17
- package/dist/src/kits/os/index.js +0 -5
- package/dist/src/kits/os/launcher.css +0 -61
- package/dist/src/kits/os/launcher.js +0 -79
- package/dist/src/kits/os/monitor-app.js +0 -34
- package/dist/src/kits/os/shell.js +0 -214
- package/dist/src/kits/os/terminal-app.js +0 -45
- package/dist/src/kits/os/theme.css +0 -412
- package/dist/src/kits/os/validate.css +0 -19
- package/dist/src/kits/os/validator-app.js +0 -55
- package/dist/src/kits/os/wm.css +0 -115
- package/dist/src/kits/os/wm.js +0 -111
- package/dist/src/markdown.js +0 -39
- package/dist/src/motion.js +0 -35
- package/dist/src/page-html.js +0 -196
- package/dist/src/styles.js +0 -25
- package/dist/src/theme.js +0 -99
- package/dist/src/web-components/ds-chat.js +0 -45
- package/dist/ui_kits/aicat/README.md +0 -7
- package/dist/ui_kits/aicat/app.js +0 -156
- package/dist/ui_kits/aicat/index.html +0 -26
- package/dist/ui_kits/aicat/sample-square.png +0 -0
- package/dist/ui_kits/aicat/sample-svg.svg +0 -1
- package/dist/ui_kits/aicat/sample.pdf +0 -32
- package/dist/ui_kits/blog/README.md +0 -3
- package/dist/ui_kits/blog/index.html +0 -90
- package/dist/ui_kits/chat/README.md +0 -5
- package/dist/ui_kits/chat/app.js +0 -110
- package/dist/ui_kits/chat/index.html +0 -26
- package/dist/ui_kits/chat/sample-square.png +0 -0
- package/dist/ui_kits/chat/sample-svg.svg +0 -1
- package/dist/ui_kits/chat/sample.pdf +0 -32
- package/dist/ui_kits/community/app.js +0 -134
- package/dist/ui_kits/community/index.html +0 -24
- package/dist/ui_kits/dashboard/app.js +0 -92
- package/dist/ui_kits/dashboard/index.html +0 -26
- package/dist/ui_kits/docs/README.md +0 -3
- package/dist/ui_kits/docs/index.html +0 -123
- package/dist/ui_kits/error_404/app.js +0 -56
- package/dist/ui_kits/error_404/index.html +0 -26
- package/dist/ui_kits/file_browser/README.md +0 -48
- package/dist/ui_kits/file_browser/app.js +0 -231
- package/dist/ui_kits/file_browser/index.html +0 -33
- package/dist/ui_kits/gallery/app.js +0 -121
- package/dist/ui_kits/gallery/index.html +0 -26
- package/dist/ui_kits/homepage/README.md +0 -7
- package/dist/ui_kits/homepage/app.js +0 -167
- package/dist/ui_kits/homepage/index.html +0 -46
- package/dist/ui_kits/project_page/README.md +0 -3
- package/dist/ui_kits/project_page/app.js +0 -154
- package/dist/ui_kits/project_page/index.html +0 -45
- package/dist/ui_kits/search/app.js +0 -107
- package/dist/ui_kits/search/index.html +0 -26
- package/dist/ui_kits/settings/app.js +0 -133
- package/dist/ui_kits/settings/index.html +0 -26
- package/dist/ui_kits/signin/app.js +0 -115
- package/dist/ui_kits/signin/index.html +0 -26
- package/dist/ui_kits/slide_deck/app.js +0 -174
- package/dist/ui_kits/slide_deck/index.html +0 -26
- package/dist/ui_kits/system_primer/app.js +0 -152
- package/dist/ui_kits/system_primer/index.html +0 -26
- package/dist/ui_kits/terminal/app.js +0 -150
- package/dist/ui_kits/terminal/index.html +0 -26
- package/dist/vendor/webjsx/applyDiff.js +0 -182
- package/dist/vendor/webjsx/attributes.js +0 -154
- package/dist/vendor/webjsx/constants.js +0 -4
- package/dist/vendor/webjsx/createDOMElement.js +0 -52
- package/dist/vendor/webjsx/createElement.js +0 -75
- package/dist/vendor/webjsx/elementTags.js +0 -115
- package/dist/vendor/webjsx/factory.js +0 -6
- package/dist/vendor/webjsx/index.js +0 -6
- package/dist/vendor/webjsx/jsx-dev-runtime.js +0 -2
- package/dist/vendor/webjsx/jsx-runtime.js +0 -30
- package/dist/vendor/webjsx/jsx.js +0 -2
- package/dist/vendor/webjsx/package.json +0 -39
- package/dist/vendor/webjsx/renderSuspension.js +0 -25
- package/dist/vendor/webjsx/types.js +0 -5
- package/dist/vendor/webjsx/utils.js +0 -84
- package/src/components/overlays.js +0 -151
package/dist/colors_and_type.css
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
/* ============================================================
|
|
2
|
-
247420 design system — colors + type
|
|
3
|
-
Calm, readable, scope-prefixed at build time.
|
|
4
|
-
Source-of-truth tokens. Component sheet lives in app-shell.css.
|
|
5
|
-
============================================================ */
|
|
6
|
-
|
|
7
|
-
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,700&family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
|
|
8
|
-
|
|
9
|
-
:root {
|
|
10
|
-
/* Paper / Ink — cool stone scale; lets lore palette pop. */
|
|
11
|
-
--paper: #F6F5F1;
|
|
12
|
-
--paper-2: #ECEBE6;
|
|
13
|
-
--paper-3: #DFDED9;
|
|
14
|
-
--ink: #131318;
|
|
15
|
-
--ink-2: #25252C;
|
|
16
|
-
--ink-3: #6A6A70;
|
|
17
|
-
|
|
18
|
-
/* Lore palette */
|
|
19
|
-
--green: #247420;
|
|
20
|
-
--green-2: #3A9A34;
|
|
21
|
-
--green-deep: #133F10;
|
|
22
|
-
--green-tint: #D9E5C8;
|
|
23
|
-
--purple: #420247;
|
|
24
|
-
--purple-2: #7F18A4;
|
|
25
|
-
--purple-deep: #28002B;
|
|
26
|
-
--purple-tint: #E4D3E5;
|
|
27
|
-
--mascot: #E84B8A;
|
|
28
|
-
--mascot-2: #FF3CA7;
|
|
29
|
-
--mascot-tint: #F5D2DF;
|
|
30
|
-
|
|
31
|
-
/* Signals */
|
|
32
|
-
--sun: #F5C344;
|
|
33
|
-
--flame: #FF5A1F;
|
|
34
|
-
--sky: #3A6EFF;
|
|
35
|
-
--warn: #E0241A;
|
|
36
|
-
--live: var(--green);
|
|
37
|
-
|
|
38
|
-
/* Semantic surfaces */
|
|
39
|
-
--bg: var(--paper);
|
|
40
|
-
--bg-2: var(--paper-2);
|
|
41
|
-
--bg-3: var(--paper-3);
|
|
42
|
-
--fg: var(--ink);
|
|
43
|
-
--fg-2: var(--ink-2);
|
|
44
|
-
--fg-3: var(--ink-3);
|
|
45
|
-
|
|
46
|
-
--accent: var(--green);
|
|
47
|
-
--accent-fg: var(--paper);
|
|
48
|
-
--accent-tint: color-mix(in oklab, var(--accent) 18%, var(--bg));
|
|
49
|
-
|
|
50
|
-
--panel-bg: var(--bg);
|
|
51
|
-
--panel-bg-2: var(--bg-2);
|
|
52
|
-
--panel-accent: var(--accent);
|
|
53
|
-
--panel-1: var(--bg-2);
|
|
54
|
-
--panel-2: var(--bg-3);
|
|
55
|
-
--panel-3: color-mix(in oklab, var(--fg) 12%, transparent);
|
|
56
|
-
--panel-text: var(--fg);
|
|
57
|
-
--panel-text-2: var(--fg-2);
|
|
58
|
-
--panel-text-3: var(--fg-3);
|
|
59
|
-
--panel-accent-2: var(--accent-bright, var(--accent));
|
|
60
|
-
--panel-shadow: 0 1px 0 color-mix(in oklab, var(--fg) 6%, transparent), 0 4px 14px color-mix(in oklab, var(--fg) 8%, transparent);
|
|
61
|
-
|
|
62
|
-
/* Type — one family, used purposefully. Space Grotesk for everything
|
|
63
|
-
non-mono. The display/narrow aliases stay so consumers that reference
|
|
64
|
-
them keep working; they just resolve to the body font now. */
|
|
65
|
-
--ff-display: 'Space Grotesk', system-ui, sans-serif;
|
|
66
|
-
--ff-narrow: 'Space Grotesk', system-ui, sans-serif;
|
|
67
|
-
--ff-body: 'Space Grotesk', system-ui, sans-serif;
|
|
68
|
-
--ff-mono: 'JetBrains Mono', ui-monospace, Menlo, Consolas, monospace;
|
|
69
|
-
|
|
70
|
-
--fs-micro: 11px;
|
|
71
|
-
--fs-tiny: 12px;
|
|
72
|
-
--fs-xs: 13px;
|
|
73
|
-
--fs-sm: 14px;
|
|
74
|
-
--fs-body: 16px;
|
|
75
|
-
--fs-lg: 18px;
|
|
76
|
-
--fs-xl: 21px;
|
|
77
|
-
--fs-h4: clamp(19px, 1.8cqi, 24px);
|
|
78
|
-
--fs-h3: clamp(22px, 2.4cqi, 30px);
|
|
79
|
-
--fs-h2: clamp(28px, 3.6cqi, 44px);
|
|
80
|
-
--fs-h1: clamp(34px, 5cqi, 64px);
|
|
81
|
-
--fs-hero: clamp(42px, 7cqi, 96px);
|
|
82
|
-
--fs-mega: clamp(56px, 11cqi, 168px);
|
|
83
|
-
|
|
84
|
-
--lh-tight: 1.05;
|
|
85
|
-
--lh-snug: 1.2;
|
|
86
|
-
--lh-base: 1.55;
|
|
87
|
-
--lh-long: 1.7;
|
|
88
|
-
|
|
89
|
-
--tr-caps: 0.06em;
|
|
90
|
-
--tr-label: 0.10em;
|
|
91
|
-
--tr-tight: -0.02em;
|
|
92
|
-
--tr-tighter: -0.03em;
|
|
93
|
-
|
|
94
|
-
/* Spacing (8pt) */
|
|
95
|
-
--space-0: 0;
|
|
96
|
-
--space-1: 4px;
|
|
97
|
-
--space-2: 8px;
|
|
98
|
-
--space-3: 16px;
|
|
99
|
-
--space-4: 24px;
|
|
100
|
-
--space-5: 32px;
|
|
101
|
-
--space-6: 48px;
|
|
102
|
-
--space-7: 64px;
|
|
103
|
-
--space-8: 96px;
|
|
104
|
-
--space-9: 128px;
|
|
105
|
-
|
|
106
|
-
--density: 1;
|
|
107
|
-
--pad-y: calc(var(--space-5) * var(--density));
|
|
108
|
-
--pad-x: calc(var(--space-5) * var(--density));
|
|
109
|
-
--gutter: calc(var(--space-4) * var(--density));
|
|
110
|
-
|
|
111
|
-
/* Borders — chunky or none */
|
|
112
|
-
--bw-hair: 1px;
|
|
113
|
-
--bw-rule: 2px;
|
|
114
|
-
--bw-chunk: 4px;
|
|
115
|
-
--bw-slab: 8px;
|
|
116
|
-
|
|
117
|
-
--rule: color-mix(in oklab, currentColor 14%, transparent);
|
|
118
|
-
--rule-strong: color-mix(in oklab, currentColor 28%, transparent);
|
|
119
|
-
|
|
120
|
-
--r-1: 10px;
|
|
121
|
-
--r-2: 14px;
|
|
122
|
-
--r-3: 22px;
|
|
123
|
-
--r-4: 32px;
|
|
124
|
-
--r-pill: 999px;
|
|
125
|
-
|
|
126
|
-
--dur-snap: 80ms;
|
|
127
|
-
--dur-base: 160ms;
|
|
128
|
-
--dur-slow: 280ms;
|
|
129
|
-
--ease: cubic-bezier(0.2, 0, 0, 1);
|
|
130
|
-
|
|
131
|
-
--z-header: 100;
|
|
132
|
-
--z-overlay: 1000;
|
|
133
|
-
|
|
134
|
-
--measure: 68ch;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
[data-theme="ink"] {
|
|
138
|
-
--bg: var(--ink);
|
|
139
|
-
--bg-2: var(--ink-2);
|
|
140
|
-
--bg-3: #34343C;
|
|
141
|
-
--fg: var(--paper);
|
|
142
|
-
--fg-2: var(--paper-2);
|
|
143
|
-
--fg-3: #9A9AA2;
|
|
144
|
-
--panel-bg: var(--bg);
|
|
145
|
-
--panel-bg-2: var(--bg-2);
|
|
146
|
-
--accent: var(--accent-bright, var(--green-2));
|
|
147
|
-
--accent-fg: var(--ink);
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
@media (prefers-color-scheme: dark) {
|
|
151
|
-
[data-theme="auto"] {
|
|
152
|
-
--bg: var(--ink);
|
|
153
|
-
--bg-2: var(--ink-2);
|
|
154
|
-
--bg-3: #34343C;
|
|
155
|
-
--fg: var(--paper);
|
|
156
|
-
--fg-2: var(--paper-2);
|
|
157
|
-
--fg-3: #9A9AA2;
|
|
158
|
-
--panel-bg: var(--bg);
|
|
159
|
-
--panel-bg-2: var(--bg-2);
|
|
160
|
-
--accent: var(--accent-bright, var(--green-2));
|
|
161
|
-
--accent-fg: var(--ink);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
/* Nested-scope safety: if .ds-247420 appears under another .ds-247420 (e.g.
|
|
166
|
-
mount() added the class to an inner element while the ancestor html
|
|
167
|
-
already had it), the inner element would otherwise re-trigger the root
|
|
168
|
-
light defaults and detach from the ancestor's data-theme override. Force
|
|
169
|
-
the inner element to inherit the ancestor's resolved tokens. */
|
|
170
|
-
.ds-247420 .ds-247420 {
|
|
171
|
-
--bg: inherit;
|
|
172
|
-
--bg-2: inherit;
|
|
173
|
-
--bg-3: inherit;
|
|
174
|
-
--fg: inherit;
|
|
175
|
-
--fg-2: inherit;
|
|
176
|
-
--fg-3: inherit;
|
|
177
|
-
--panel-bg: inherit;
|
|
178
|
-
--panel-bg-2: inherit;
|
|
179
|
-
--accent: inherit;
|
|
180
|
-
--accent-fg: inherit;
|
|
181
|
-
--panel-1: inherit;
|
|
182
|
-
--panel-2: inherit;
|
|
183
|
-
--panel-3: inherit;
|
|
184
|
-
--panel-text: inherit;
|
|
185
|
-
--panel-text-2: inherit;
|
|
186
|
-
--panel-text-3: inherit;
|
|
187
|
-
--panel-accent-2: inherit;
|
|
188
|
-
--panel-shadow: inherit;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
[data-density="compact"] { --density: 0.75; }
|
|
192
|
-
[data-density="comfortable"] { --density: 1; }
|
|
193
|
-
[data-density="spacious"] { --density: 1.35; }
|
|
194
|
-
|
|
195
|
-
[data-accent="green"] { --accent: var(--green); --accent-bright: var(--green-2); --accent-fg: var(--paper); --panel-accent: var(--green); }
|
|
196
|
-
[data-accent="purple"] { --accent: var(--purple); --accent-bright: #C277FF; --accent-fg: var(--paper); --panel-accent: var(--purple); }
|
|
197
|
-
[data-accent="mascot"] { --accent: var(--mascot); --accent-bright: var(--mascot-2); --accent-fg: var(--ink); --panel-accent: var(--mascot); }
|
package/dist/favicon.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><rect width="32" height="32" rx="6" fill="#247420"/><text x="16" y="22" font-family="'JetBrains Mono',ui-monospace,monospace" font-size="14" font-weight="700" fill="#EFE9DD" text-anchor="middle">24</text></svg>
|
package/dist/index.html
DELETED
|
@@ -1,308 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en" class="ds-247420" data-theme="auto">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
-
<title>design — 247420 design system</title>
|
|
7
|
-
<meta name="description" content="the visual paradigm. layered surfaces, monospace labels, loud content inside quiet chrome. consumed by every 247420 surface." />
|
|
8
|
-
<meta name="keywords" content="design-system, tokens, 247420, anentrypoint" />
|
|
9
|
-
<meta name="author" content="247420 / AnEntrypoint" />
|
|
10
|
-
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" />
|
|
11
|
-
<meta name="referrer" content="strict-origin-when-cross-origin" />
|
|
12
|
-
<meta name="generator" content="anentrypoint-design" />
|
|
13
|
-
<meta name="theme-color" content="#247420" media="(prefers-color-scheme: light)" />
|
|
14
|
-
<meta name="theme-color" content="#3A9A34" media="(prefers-color-scheme: dark)" />
|
|
15
|
-
<meta name="color-scheme" content="light dark" />
|
|
16
|
-
<meta name="application-name" content="design" />
|
|
17
|
-
<meta name="apple-mobile-web-app-title" content="design" />
|
|
18
|
-
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
19
|
-
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
20
|
-
<meta name="mobile-web-app-capable" content="yes" />
|
|
21
|
-
<meta name="msapplication-TileColor" content="#247420" />
|
|
22
|
-
<meta http-equiv="content-language" content="en" />
|
|
23
|
-
<link rel="canonical" href="https://anentrypoint.github.io/design" />
|
|
24
|
-
<link rel="alternate" hreflang="en" href="https://anentrypoint.github.io/design" />
|
|
25
|
-
<link rel="alternate" hreflang="x-default" href="https://anentrypoint.github.io/design" />
|
|
26
|
-
<meta property="og:type" content="website" />
|
|
27
|
-
<meta property="og:title" content="design" />
|
|
28
|
-
<meta property="og:description" content="the visual paradigm. layered surfaces, monospace labels, loud content inside quiet chrome. consumed by every 247420 surface." />
|
|
29
|
-
<meta property="og:url" content="https://anentrypoint.github.io/design" />
|
|
30
|
-
<meta property="og:site_name" content="design" />
|
|
31
|
-
<meta property="og:locale" content="en_US" />
|
|
32
|
-
<meta property="og:image" content="https://anentrypoint.github.io/design/og-card.png" />
|
|
33
|
-
<meta property="og:image:secure_url" content="https://anentrypoint.github.io/design/og-card.png" />
|
|
34
|
-
<meta property="og:image:type" content="image/png" />
|
|
35
|
-
<meta property="og:image:width" content="1200" />
|
|
36
|
-
<meta property="og:image:height" content="630" />
|
|
37
|
-
<meta property="og:image:alt" content="design" />
|
|
38
|
-
<meta name="twitter:card" content="summary_large_image" />
|
|
39
|
-
<meta name="twitter:title" content="design" />
|
|
40
|
-
<meta name="twitter:description" content="the visual paradigm. layered surfaces, monospace labels, loud content inside quiet chrome. consumed by every 247420 surface." />
|
|
41
|
-
<meta name="twitter:site" content="@AnEntrypoint" />
|
|
42
|
-
<meta name="twitter:creator" content="@AnEntrypoint" />
|
|
43
|
-
<meta name="twitter:image" content="https://anentrypoint.github.io/design/og-card.png" />
|
|
44
|
-
<meta name="twitter:image:alt" content="design" />
|
|
45
|
-
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ctext y='26' font-size='26'%3E%E2%97%B0%3C/text%3E%3C/svg%3E" />
|
|
46
|
-
<link rel="apple-touch-icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ctext y='26' font-size='26'%3E%E2%97%B0%3C/text%3E%3C/svg%3E" />
|
|
47
|
-
<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"design","url":"https://anentrypoint.github.io/design","description":"the visual paradigm. layered surfaces, monospace labels, loud content inside quiet chrome. consumed by every 247420 surface.","inLanguage":"en","publisher":{"@type":"Organization","name":"247420 / AnEntrypoint","url":"https://247420.xyz"}}</script>
|
|
48
|
-
<script type="importmap">{"imports":{"anentrypoint-design":"https://unpkg.com/anentrypoint-design@latest/dist/247420.js"}}</script>
|
|
49
|
-
<link rel="stylesheet" href="https://unpkg.com/anentrypoint-design@latest/dist/247420.css">
|
|
50
|
-
<link rel="preconnect" href="https://unpkg.com" crossorigin>
|
|
51
|
-
<link rel="dns-prefetch" href="https://unpkg.com">
|
|
52
|
-
<style>html,body{margin:0;padding:0}body{background:var(--app-bg,#FBF6EB);color:var(--ink,#1F1B16);font-family:var(--ff-ui,'Nunito',system-ui,sans-serif)}html:not(.ds-ready) body{visibility:hidden}html.ds-ready body{visibility:visible;animation:ds-fade-in .18s ease-out both}@keyframes ds-fade-in{from{opacity:0}to{opacity:1}}</style>
|
|
53
|
-
<noscript><style>html body{visibility:visible !important}</style></noscript>
|
|
54
|
-
</head>
|
|
55
|
-
<body>
|
|
56
|
-
<div id="app"></div>
|
|
57
|
-
<script type="application/json" id="__site__">{"site":{"title":"design","tagline":"247420 design system","description":"the visual paradigm. layered surfaces, monospace labels, loud content inside quiet chrome. consumed by every 247420 surface.","repo":"https://github.com/AnEntrypoint/design","url":"https://anentrypoint.github.io/design","year":2026,"keywords":["design-system","tokens","247420","anentrypoint"],"accent_from":"#56d364","accent_to":"#79c0ff","glyph":"◰","code":"072","category":"web"},"nav":{"links":[{"label":247420,"href":"https://247420.xyz"},{"label":"GitHub","href":"https://github.com/AnEntrypoint"}]},"home":{"id":"home","title":"Home","hero":{"heading":"design","subheading":"247420 design system","body":"the visual paradigm. layered surfaces, monospace labels, loud content inside quiet chrome. consumed by every 247420 surface.","badges":[{"label":"design-system"},{"label":"tokens"},{"label":"web"}],"ctas":[{"label":"GitHub","href":"https://github.com/AnEntrypoint/design","primary":true},{"label":"247420","href":"https://247420.xyz"}]},"sidebar":{"fab":{"label":"open","glyph":"✦","href":"./ui_kits/homepage/"},"bins":[{"glyph":"▣","label":"everything","href":"#all","count":23,"active":true},{"glyph":"★","label":"starred","href":"#starred","count":5},{"glyph":"◐","label":"shipped","href":"#shipped","count":12},{"glyph":"◌","label":"drafts","href":"#drafts","count":6}],"labels_group":"labels","labels":[{"glyph":"●","label":"ui kits","href":"#kits","count":4,"color":"var(--panel-accent)"},{"glyph":"●","label":"decks","href":"#decks","count":1,"color":"var(--mascot,#e0a200)"},{"glyph":"●","label":"previews","href":"#previews","count":20,"color":"var(--purple,#8856b3)"},{"glyph":"●","label":"docs","href":"#docs","count":3,"color":"var(--panel-text-3)"}],"more_group":"more","more":[{"glyph":"§","label":"readme","href":"https://github.com/AnEntrypoint/design/blob/main/README.md"},{"glyph":"§","label":"skill","href":"https://github.com/AnEntrypoint/design/blob/main/SKILL.md"},{"glyph":"⌘","label":"tokens","href":"https://github.com/AnEntrypoint/design/blob/main/colors_and_type.css"},{"glyph":"↗","label":"source","href":"https://github.com/AnEntrypoint/design"}]},"tabs":[{"glyph":"▣","label":"everything","href":"#all","active":true},{"glyph":"◎","label":"kits","href":"#kits"},{"glyph":"▰","label":"decks","href":"#decks"},{"glyph":"§","label":"previews","href":"#previews"}],"kits":{"heading":"ui kits","count":"14 surfaces","items":[{"code":"01","title":"homepage","sub":"marquee + works grid","desc":"editorial banner over a quiet shell","href":"./ui_kits/homepage/"},{"code":"02","title":"project page","sub":"hero · receipt · install · changelog","desc":"shippable case-study template","href":"./ui_kits/project_page/"},{"code":"03","title":"docs","sub":"long-form prose chrome","desc":"sidebar nav, mono headings, code blocks","href":"./ui_kits/docs/"},{"code":"04","title":"blog","sub":"dated index + reading view","desc":"typographic, no clutter","href":"./ui_kits/blog/"},{"code":"05","title":"chat","sub":"message thread + composer","desc":"pill bubbles, monospace timestamps, room sidebar","href":"./ui_kits/chat/"},{"code":"06","title":"aicat","sub":"ai assistant with cat persona","desc":"ascii portrait, thinking dots, mood-swapping face","href":"./ui_kits/aicat/"},{"code":"07","title":"file browser","sub":"rails by file type · drop · preview","desc":"static demo wired to fsbrowse — every file-row primitive in one surface","href":"./ui_kits/file_browser/"},{"code":"08","title":"dashboard","sub":"kpis · tables · receipts · changelog","desc":"every content primitive in one operations surface","href":"./ui_kits/dashboard/"},{"code":"09","title":"terminal","sub":"cli prompt · command lines · log view","desc":"five line kinds — cmt cmd out ok warn — over a tonal panel","href":"./ui_kits/terminal/"},{"code":"10","title":"settings","sub":"sectioned forms · toggles · save bar","desc":"every input primitive — fields, segmented buttons, danger panel","href":"./ui_kits/settings/"},{"code":"11","title":"signin","sub":"auth · providers · magic link","desc":"narrow shell + tone-on-tone form, no shadows, no spinners","href":"./ui_kits/signin/"},{"code":"12","title":"search","sub":"topbar query · faceted filters · rows","desc":"ranked results reuse the same RowLink primitive every list does","href":"./ui_kits/search/"},{"code":"13","title":"404","sub":"empty-state hero · suggested routes","desc":"narrow shell, oversized mono code, three CTAs","href":"./ui_kits/error_404/"},{"code":"14","title":"gallery","sub":"visual grid · tonal cards · lightbox","desc":"tiles share the panel tokens; lightbox reuses the same surface","href":"./ui_kits/gallery/"}]},"decks":{"heading":"decks","items":[{"code":"01","title":"deck template","sub":"16:9 stage with auto-fit","desc":"title, lede, code, comparison, manifesto","href":"./slides/"}]},"docs":{"heading":"docs","items":[{"code":"md","title":"readme","sub":"overview, manifesto, conventions","desc":"start here","href":"https://github.com/AnEntrypoint/design/blob/main/README.md"},{"code":"md","title":"skill","sub":"authoring rules for the agent","desc":"editorial · zine · surface modes","href":"https://github.com/AnEntrypoint/design/blob/main/SKILL.md"},{"code":"css","title":"tokens","sub":"colors, type, panel surface tokens","desc":"canonical source of truth","href":"https://github.com/AnEntrypoint/design/blob/main/colors_and_type.css"}]},"previews":{"heading":"previews","base":"./preview/","items":["buttons","colors-core","colors-lore","colors-semantic","dateline","dropzone","file-grid","file-row","file-toolbar","file-viewer","header","icons-unicode","index-row","inputs","manifesto","rules","spacing","stamps","stamps-lore","theme-ink","type-display","type-mono","type-prose","type-scale","wordmarks"]},"file_browser":{"heading":"file browser","count":"primitives","items":[{"code":"fb","title":"file_browser kit","sub":"drop, list, preview, dialogs","desc":"the full surface, working with mock data","href":"./ui_kits/file_browser/","cta":"open kit ↗"},{"code":"fb","title":"FileRow","sub":"rail · icon · name · meta","desc":"data-file-type drives the rail color — never apply rail-* manually","href":"./preview/file-row.html","cta":"preview ↗"},{"code":"fb","title":"FileGrid","sub":"stack of rows in a panel","desc":"directories sort first; selected row gets the mint .active tone","href":"./preview/file-grid.html","cta":"preview ↗"},{"code":"fb","title":"DropZone","sub":"tonal upload target","desc":"swap to --panel-select on dragover; preventDefault on document, not just zone","href":"./preview/dropzone.html","cta":"preview ↗"},{"code":"fb","title":"FileViewer","sub":"modal preview · keyed head","desc":"head + body both carry data-file-type so rails propagate inside the modal","href":"./preview/file-viewer.html","cta":"preview ↗"},{"code":"fb","title":"FileToolbar","sub":"actions · breadcrumb · upload","desc":"left-aligned actions, right-aligned count; UploadProgress sits underneath","href":"./preview/file-toolbar.html","cta":"preview ↗"},{"code":"fb","title":"fsbrowse","sub":"Express + busboy backend","desc":"canonical real-world wiring — same SDK, real filesystem operations","href":"https://github.com/AnEntrypoint/fsbrowse","cta":"source ↗"}]},"quickstart":{"heading":"quick start","lines":[{"kind":"cmt","text":"# install via importmap (no bundler)"},{"kind":"cmd","text":"\u003cscript type='importmap'\u003e{\"imports\":{\"anentrypoint-design\":\"https://unpkg.com/anentrypoint-design@latest/dist/247420.js\"}}\u003c/script\u003e"},{"kind":"cmt","text":"# or clone the source"},{"kind":"cmd","text":"git clone https://github.com/AnEntrypoint/design.git"}]},"desktop_os":{"heading":"desktop os shell","count":"in-page wm","items":[{"code":"os","title":"createDesktopShell","sub":"menubar · apps launcher · taskbar · window manager","desc":"in-page desktop OS chrome — mount any app registry into a draggable wm","href":"https://github.com/AnEntrypoint/design/blob/main/src/desktop/shell.js","cta":"shell.js ↗"},{"code":"os","title":"icons set","sub":"svg glyphs for menubar + taskbar","desc":"home, apps, search, settings — used by the shell and exposed for apps","href":"https://github.com/AnEntrypoint/design/blob/main/src/desktop/icons.js","cta":"icons.js ↗"},{"code":"os","title":"theme.css","sub":"os chrome tokens · menubar · launcher · wm","desc":"scoped css module loaded by the shell — keeps desktop visuals isolated","href":"https://github.com/AnEntrypoint/design/blob/main/src/desktop/theme.css","cta":"theme.css ↗"},{"code":"os","title":"import path","sub":"anentrypoint-design/desktop","desc":"subpath export; no bundler needed — pulls icons + createDesktopShell","href":"https://github.com/AnEntrypoint/design/blob/main/package.json","cta":"exports ↗"}]},"web_components":{"heading":"web components","count":"1 element","items":[{"code":"wc","title":"\u003cds-chat\u003e","sub":"auto-registers when the sdk loads in a browser","desc":"set el.messages = [...] or pass json via attribute; listen for 'send' event","href":"https://github.com/AnEntrypoint/design/blob/main/src/web-components/ds-chat.js","cta":"ds-chat.js ↗"},{"code":"wc","title":"registerChatElement","sub":"manual register helper","desc":"exported from the sdk root for ssr / late-mount when customElements is gated","href":"https://github.com/AnEntrypoint/design/blob/main/src/index.js","cta":"source ↗"}]},"api_exports":{"heading":"public api","count":"sdk surface","items":[{"code":"api","title":"h / applyDiff","sub":"webjsx createElement + diff","desc":"build vnodes with h(), render with applyDiff(root, [vnode]) — no jsx pragma needed","href":"https://github.com/AnEntrypoint/design/blob/main/src/index.js","cta":"index.js ↗"},{"code":"api","title":"installStyles / scope","sub":"ds-247420 css scope + bootstrap","desc":"installStyles() injects the prefixed css; scope = '.ds-247420' for selector composition","href":"https://github.com/AnEntrypoint/design/blob/main/src/styles.js","cta":"styles.js ↗"},{"code":"api","title":"loadCss","sub":"fetch the bundled css string","desc":"useful for shadow roots or custom style injection paths","href":"https://github.com/AnEntrypoint/design/blob/main/src/styles.js","cta":"styles.js ↗"},{"code":"api","title":"mount / mountKit","sub":"ds shell + ui_kit bootstrap","desc":"mount(root, viewFn) wires applyDiff + motion; mountKit({root,view,screen}) wires a kit","href":"https://github.com/AnEntrypoint/design/blob/main/src/bootstrap.js","cta":"bootstrap.js ↗"},{"code":"api","title":"registerDeckStage / getDeckStage","sub":"16:9 deck stage api","desc":"register custom deck stages and fetch the active stage for slide transitions","href":"https://github.com/AnEntrypoint/design/blob/main/src/deck-stage.js","cta":"deck-stage.js ↗"},{"code":"api","title":"renderMarkdown","sub":"marked v15 + dompurify lazy stack","desc":"lazy-loads marked + dompurify from jsdelivr; only xss gate for chat html","href":"https://github.com/AnEntrypoint/design/blob/main/src/markdown.js","cta":"markdown.js ↗"},{"code":"api","title":"ensurePrism / highlightAllUnder","sub":"prism core + per-language","desc":"injects prism on first use; CodeNode ref-callback highlights inside any subtree","href":"https://github.com/AnEntrypoint/design/blob/main/src/highlight.js","cta":"highlight.js ↗"},{"code":"api","title":"renderPageHtml","sub":"static page html template","desc":"shared head/body wrapper for kit pages — meta, importmap, ds-247420 scope","href":"https://github.com/AnEntrypoint/design/blob/main/src/page-html.js","cta":"page-html.js ↗"},{"code":"api","title":"components / motion / debug","sub":"namespaces from the default export","desc":"components.* are the C.* primitives; motion.animateTree, debug.window.__debug registry","href":"https://github.com/AnEntrypoint/design/blob/main/src/components.js","cta":"components.js ↗"}]},"features":{"heading":"why design","items":[{"name":"layered surfaces","desc":"panel-on-panel rhythm; loud content sits inside quiet chrome."},{"name":"monospace labels","desc":"mono only for codes/labels/CLI; sans for everything legible."},{"name":"indicator rails","desc":"color-coded inset rails for category separation, never borders."},{"name":"tokens-only","desc":"every surface, type ramp, accent driven by --panel-* / --fs-* tokens."}]},"examples":{"heading":"live examples","items":[{"name":"index shell","desc":"full navigation shell with tabs, filters, and row interactions.","href":"./index.html","cta":"open index"},{"name":"homepage kit","desc":"hero + works layout and updated readable type scale.","href":"./ui_kits/homepage/","cta":"open kit"},{"name":"project page kit","desc":"overview, install, receipt, and changelog template.","href":"./ui_kits/project_page/","cta":"open kit"},{"name":"docs kit","desc":"technical documentation layout with sidebar and prose.","href":"./ui_kits/docs/","cta":"open docs"},{"name":"blog kit","desc":"long-form writing layout tuned for readability.","href":"./ui_kits/blog/","cta":"open writing"},{"name":"chat kit","desc":"message thread + composer with pill bubbles and room sidebar.","href":"./ui_kits/chat/","cta":"open chat"},{"name":"aicat kit","desc":"ai assistant with cat persona — ascii portrait + mood face.","href":"./ui_kits/aicat/","cta":"open aicat"},{"name":"slide deck","desc":"16:9 deck stage with improved presenter controls text.","href":"./slides/","cta":"open slides"},{"name":"dashboard kit","desc":"kpis, tables, receipts, changelog — operations surface.","href":"./ui_kits/dashboard/","cta":"open dashboard"},{"name":"terminal kit","desc":"cli prompt, command lines, log viewer.","href":"./ui_kits/terminal/","cta":"open terminal"},{"name":"settings kit","desc":"sectioned forms, toggles, segmented buttons, save bar.","href":"./ui_kits/settings/","cta":"open settings"},{"name":"signin kit","desc":"auth panel, providers, magic link.","href":"./ui_kits/signin/","cta":"open signin"},{"name":"search kit","desc":"query bar, faceted filters, ranked results.","href":"./ui_kits/search/","cta":"open search"},{"name":"404 kit","desc":"empty-state hero with suggested routes.","href":"./ui_kits/error_404/","cta":"open 404"},{"name":"gallery kit","desc":"visual grid + lightbox over tonal cards.","href":"./ui_kits/gallery/","cta":"open gallery"},{"name":"preview samples","desc":"design previews and component samples.","href":"./preview/buttons.html","cta":"open previews"}]},"status_left":["main","• utf-8","• lf"],"status_right":["247420 / mmxxvi","• probably emerging"]}}</script>
|
|
58
|
-
<script type="module">
|
|
59
|
-
import { h, applyDiff, installStyles, components as C, initTheme } from 'anentrypoint-design';
|
|
60
|
-
installStyles();
|
|
61
|
-
document.documentElement.classList.add('ds-247420');
|
|
62
|
-
// initTheme picks up data-theme on <html>, reapplies stored override from
|
|
63
|
-
// localStorage if present, and binds matchMedia so OS-level dark-mode flips
|
|
64
|
-
// re-emit to listeners. Safe no-op if data-theme is already 'auto'.
|
|
65
|
-
try { initTheme && initTheme(); } catch {}
|
|
66
|
-
|
|
67
|
-
const __reveal = () => document.documentElement.classList.add('ds-ready');
|
|
68
|
-
const __fallback = setTimeout(__reveal, 1500);
|
|
69
|
-
|
|
70
|
-
const data = JSON.parse(document.getElementById('__site__').textContent);
|
|
71
|
-
const { site, nav, home } = data;
|
|
72
|
-
|
|
73
|
-
function Hero() {
|
|
74
|
-
if (!home || !home.hero) return null;
|
|
75
|
-
const hero = home.hero;
|
|
76
|
-
return C.Panel({
|
|
77
|
-
style: 'margin:8px',
|
|
78
|
-
children: h('div', { style: 'padding:24px 22px' },
|
|
79
|
-
C.Heading({ level: 1, style: 'margin:0 0 8px 0', children: hero.heading || site.title }),
|
|
80
|
-
hero.subheading ? C.Lede({ children: hero.subheading }) : null,
|
|
81
|
-
hero.body ? h('p', { style: 'margin:8px 0 16px 0;color:var(--panel-text-2);max-width:64ch' }, hero.body) : null,
|
|
82
|
-
(hero.badges && hero.badges.length) ? h('div', { style: 'display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px 0' },
|
|
83
|
-
...hero.badges.map((b, i) => C.Chip({ key: 'b' + i, children: b.label }))
|
|
84
|
-
) : null,
|
|
85
|
-
(hero.ctas && hero.ctas.length) ? h('div', { style: 'display:flex;gap:8px;flex-wrap:wrap' },
|
|
86
|
-
...hero.ctas.map((c, i) => C.Btn({ key: 'c' + i, href: c.href, primary: c.primary, children: c.label }))
|
|
87
|
-
) : null
|
|
88
|
-
)
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function rowsFromItems(items, prefix) {
|
|
93
|
-
return items.map((it, i) => C.RowLink({
|
|
94
|
-
key: prefix + i,
|
|
95
|
-
code: it.code || String(i + 1).padStart(2, '0'),
|
|
96
|
-
title: it.title || it.name,
|
|
97
|
-
sub: it.sub || it.desc || '',
|
|
98
|
-
meta: it.cta || it.meta || 'open ↗',
|
|
99
|
-
href: it.href || '#'
|
|
100
|
-
}));
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function Kits() {
|
|
104
|
-
if (!home.kits || !home.kits.items || !home.kits.items.length) return null;
|
|
105
|
-
return C.Panel({
|
|
106
|
-
title: home.kits.heading || 'ui kits',
|
|
107
|
-
count: home.kits.count || home.kits.items.length,
|
|
108
|
-
style: 'margin:8px',
|
|
109
|
-
children: rowsFromItems(home.kits.items, 'k')
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function Decks() {
|
|
114
|
-
if (!home.decks || !home.decks.items || !home.decks.items.length) return null;
|
|
115
|
-
return C.Panel({
|
|
116
|
-
title: home.decks.heading || 'decks',
|
|
117
|
-
style: 'margin:8px',
|
|
118
|
-
children: rowsFromItems(home.decks.items, 'd')
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
function FileBrowser() {
|
|
123
|
-
if (!home.file_browser || !home.file_browser.items || !home.file_browser.items.length) return null;
|
|
124
|
-
return C.Panel({
|
|
125
|
-
title: home.file_browser.heading || 'file browser',
|
|
126
|
-
count: home.file_browser.count || home.file_browser.items.length,
|
|
127
|
-
style: 'margin:8px',
|
|
128
|
-
children: rowsFromItems(home.file_browser.items, 'fb')
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function Docs() {
|
|
133
|
-
if (!home.docs || !home.docs.items || !home.docs.items.length) return null;
|
|
134
|
-
return C.Panel({
|
|
135
|
-
title: home.docs.heading || 'docs',
|
|
136
|
-
style: 'margin:8px',
|
|
137
|
-
children: rowsFromItems(home.docs.items, 'doc')
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
function Previews() {
|
|
142
|
-
if (!home.previews || !home.previews.items || !home.previews.items.length) return null;
|
|
143
|
-
const base = home.previews.base || './preview/';
|
|
144
|
-
const rows = home.previews.items.map((name, i) => C.RowLink({
|
|
145
|
-
key: 'p' + i,
|
|
146
|
-
code: String(i + 1).padStart(2, '0'),
|
|
147
|
-
title: String(name).replace(/-/g, ' '),
|
|
148
|
-
sub: 'preview · ' + name + '.html',
|
|
149
|
-
meta: 'open ↗',
|
|
150
|
-
href: base + name + '.html'
|
|
151
|
-
}));
|
|
152
|
-
return C.Panel({
|
|
153
|
-
title: home.previews.heading || 'previews',
|
|
154
|
-
count: rows.length,
|
|
155
|
-
style: 'margin:8px',
|
|
156
|
-
children: rows
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function Features() {
|
|
161
|
-
if (!home.features || !home.features.items || !home.features.items.length) return null;
|
|
162
|
-
const rows = home.features.items.map((it, i) => C.RowLink({
|
|
163
|
-
key: 'f' + i,
|
|
164
|
-
code: String(i + 1).padStart(2, '0'),
|
|
165
|
-
title: it.name,
|
|
166
|
-
sub: it.desc || '',
|
|
167
|
-
meta: it.meta || '',
|
|
168
|
-
href: it.href || '#'
|
|
169
|
-
}));
|
|
170
|
-
return C.Panel({
|
|
171
|
-
title: home.features.heading || 'why design',
|
|
172
|
-
style: 'margin:8px',
|
|
173
|
-
children: rows
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
function Quickstart() {
|
|
178
|
-
if (!home.quickstart || !home.quickstart.lines || !home.quickstart.lines.length) return null;
|
|
179
|
-
const lineNodes = home.quickstart.lines.map((l, i) => h('div', { key: 'q' + i, class: 'cli' },
|
|
180
|
-
h('span', { class: 'prompt' }, l.kind === 'cmt' ? '#' : '$'),
|
|
181
|
-
h('span', { class: 'cmd' }, l.text)
|
|
182
|
-
));
|
|
183
|
-
return C.Panel({
|
|
184
|
-
title: home.quickstart.heading || 'quick start',
|
|
185
|
-
style: 'margin:8px',
|
|
186
|
-
children: h('div', { style: 'padding:16px 22px;display:flex;flex-direction:column;gap:6px' }, ...lineNodes)
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
function DesktopOS() {
|
|
191
|
-
if (!home.desktop_os || !home.desktop_os.items || !home.desktop_os.items.length) return null;
|
|
192
|
-
return C.Panel({
|
|
193
|
-
title: home.desktop_os.heading || 'desktop os shell',
|
|
194
|
-
count: home.desktop_os.count || home.desktop_os.items.length,
|
|
195
|
-
style: 'margin:8px',
|
|
196
|
-
children: rowsFromItems(home.desktop_os.items, 'os')
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
function WebComponents() {
|
|
201
|
-
if (!home.web_components || !home.web_components.items || !home.web_components.items.length) return null;
|
|
202
|
-
return C.Panel({
|
|
203
|
-
title: home.web_components.heading || 'web components',
|
|
204
|
-
count: home.web_components.count || home.web_components.items.length,
|
|
205
|
-
style: 'margin:8px',
|
|
206
|
-
children: rowsFromItems(home.web_components.items, 'wc')
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
function ApiExports() {
|
|
211
|
-
if (!home.api_exports || !home.api_exports.items || !home.api_exports.items.length) return null;
|
|
212
|
-
return C.Panel({
|
|
213
|
-
title: home.api_exports.heading || 'public api',
|
|
214
|
-
count: home.api_exports.count || home.api_exports.items.length,
|
|
215
|
-
style: 'margin:8px',
|
|
216
|
-
children: rowsFromItems(home.api_exports.items, 'api')
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
function Examples() {
|
|
221
|
-
if (!home.examples || !home.examples.items || !home.examples.items.length) return null;
|
|
222
|
-
return C.Panel({
|
|
223
|
-
title: home.examples.heading || 'live examples',
|
|
224
|
-
count: home.examples.items.length,
|
|
225
|
-
style: 'margin:8px',
|
|
226
|
-
children: rowsFromItems(home.examples.items, 'e')
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
function buildSide() {
|
|
231
|
-
const sb = home.sidebar || {};
|
|
232
|
-
const sections = [];
|
|
233
|
-
if (sb.fab) {
|
|
234
|
-
sections.push({
|
|
235
|
-
group: 'open',
|
|
236
|
-
items: [{ glyph: sb.fab.glyph || '✦', label: sb.fab.label || 'open', href: sb.fab.href || '#' }]
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
if (sb.bins && sb.bins.length) {
|
|
240
|
-
sections.push({ group: 'bins', items: sb.bins });
|
|
241
|
-
}
|
|
242
|
-
if (sb.labels && sb.labels.length) {
|
|
243
|
-
sections.push({ group: sb.labels_group || 'labels', items: sb.labels });
|
|
244
|
-
}
|
|
245
|
-
if (sb.more && sb.more.length) {
|
|
246
|
-
sections.push({ group: sb.more_group || 'more', items: sb.more });
|
|
247
|
-
}
|
|
248
|
-
return C.Side({ sections });
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
function Tabs() {
|
|
252
|
-
if (!home.tabs || !home.tabs.length) return null;
|
|
253
|
-
return h('div', { class: 'tabs', role: 'tablist', style: 'margin:8px' },
|
|
254
|
-
...home.tabs.map((t, i) => h('a', {
|
|
255
|
-
key: 't' + i,
|
|
256
|
-
href: t.href || '#',
|
|
257
|
-
class: t.active ? 'active' : '',
|
|
258
|
-
role: 'tab'
|
|
259
|
-
},
|
|
260
|
-
t.glyph ? h('span', { class: 'glyph' }, t.glyph) : null,
|
|
261
|
-
h('span', {}, t.label)
|
|
262
|
-
))
|
|
263
|
-
);
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
const navItems = (nav && nav.links ? nav.links : []).map(l => [String(l.label || ''), l.href]);
|
|
267
|
-
|
|
268
|
-
const statusLeft = home.status_left || ['main', '• utf-8', '• lf'];
|
|
269
|
-
const statusRight = home.status_right || ['247420 / mmxxvi', '• probably emerging'];
|
|
270
|
-
|
|
271
|
-
const App = C.AppShell({
|
|
272
|
-
topbar: C.Topbar({
|
|
273
|
-
brand: '247420',
|
|
274
|
-
leaf: site.title || 'design',
|
|
275
|
-
items: navItems
|
|
276
|
-
}),
|
|
277
|
-
crumb: C.Crumb({ trail: ['247420'], leaf: site.title || 'design' }),
|
|
278
|
-
side: buildSide(),
|
|
279
|
-
main: h('div', {},
|
|
280
|
-
Hero(),
|
|
281
|
-
Tabs(),
|
|
282
|
-
Kits(),
|
|
283
|
-
FileBrowser(),
|
|
284
|
-
DesktopOS(),
|
|
285
|
-
WebComponents(),
|
|
286
|
-
ApiExports(),
|
|
287
|
-
Decks(),
|
|
288
|
-
Docs(),
|
|
289
|
-
Previews(),
|
|
290
|
-
Features(),
|
|
291
|
-
Quickstart(),
|
|
292
|
-
Examples()
|
|
293
|
-
),
|
|
294
|
-
status: C.Status({ left: statusLeft, right: statusRight })
|
|
295
|
-
});
|
|
296
|
-
|
|
297
|
-
applyDiff(document.getElementById('app'), [App]);
|
|
298
|
-
|
|
299
|
-
const __fontsReady = (document.fonts && document.fonts.ready) ? document.fonts.ready : Promise.resolve();
|
|
300
|
-
Promise.race([__fontsReady, new Promise(r => setTimeout(r, 1200))]).then(() => {
|
|
301
|
-
requestAnimationFrame(() => requestAnimationFrame(() => {
|
|
302
|
-
clearTimeout(__fallback);
|
|
303
|
-
__reveal();
|
|
304
|
-
}));
|
|
305
|
-
});
|
|
306
|
-
</script>
|
|
307
|
-
</body>
|
|
308
|
-
</html>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en" data-theme="auto" class="ds-247420"><head><meta charset="utf-8">
|
|
3
|
-
<link rel="stylesheet" href="../colors_and_type.css">
|
|
4
|
-
<link rel="stylesheet" href="../app-shell.css">
|
|
5
|
-
<style>body{padding:24px;background:var(--panel-0);color:var(--panel-text);}</style>
|
|
6
|
-
<script defer src="./motion-default.js"></script>
|
|
7
|
-
</head><body>
|
|
8
|
-
<div style="font-family:var(--ff-mono);font-size:14px;text-transform:uppercase;letter-spacing:0.08em;color:var(--panel-text-2);margin-bottom:16px">247420 / components / buttons</div>
|
|
9
|
-
|
|
10
|
-
<div style="display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px">
|
|
11
|
-
<button class="btn-primary">ship it ↗</button>
|
|
12
|
-
<button class="btn">read source</button>
|
|
13
|
-
<button class="btn-ghost">cancel</button>
|
|
14
|
-
<a href="#" class="btn">link as button</a>
|
|
15
|
-
</div>
|
|
16
|
-
|
|
17
|
-
<div style="display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px">
|
|
18
|
-
<button class="btn-primary" disabled style="opacity:0.5;cursor:not-allowed">disabled</button>
|
|
19
|
-
<button class="btn">
|
|
20
|
-
<span style="color:var(--panel-accent)">●</span>
|
|
21
|
-
<span>with icon</span>
|
|
22
|
-
</button>
|
|
23
|
-
<button class="btn" style="padding:5px 10px;font-size:14px">small</button>
|
|
24
|
-
<button class="btn" style="padding:10px 18px;font-size:14px">large</button>
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
<div style="font-family:var(--ff-mono);font-size:14px;color:var(--panel-text-2);margin-top:6px">primary · secondary · ghost — 6px radius, hover lightens, active darkens</div>
|
|
28
|
-
</body></html>
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en" data-theme="auto" class="ds-247420"><head><meta charset="utf-8"><link rel="stylesheet" href="../colors_and_type.css">
|
|
3
|
-
<link rel="stylesheet" href="../app-shell.css">
|
|
4
|
-
<style>
|
|
5
|
-
body{padding:24px;background:var(--panel-0);}
|
|
6
|
-
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px;}
|
|
7
|
-
.sw{padding:20px;min-height:140px;border-radius:var(--r-3);display:flex;flex-direction:column;justify-content:space-between;}
|
|
8
|
-
.sw .name{font-family:var(--ff-display);font-size:24px;font-weight:700;letter-spacing:-0.01em;}
|
|
9
|
-
.sw .hex{font-family:var(--ff-mono);font-size:15px;font-weight:500;}
|
|
10
|
-
.sw .tok{font-family:var(--ff-mono);font-size:13px;text-transform:uppercase;letter-spacing:0.14em;opacity:0.7;}
|
|
11
|
-
</style><script defer src="./motion-default.js"></script>
|
|
12
|
-
</head><body>
|
|
13
|
-
<div class="dateline"><span>247420 // COLORS // CORE</span><span class="spread"></span><span>04 SWATCHES</span></div>
|
|
14
|
-
<div class="grid">
|
|
15
|
-
<div class="sw" style="background:var(--panel-0);color:var(--panel-text)">
|
|
16
|
-
<div class="name">paper</div>
|
|
17
|
-
<div>
|
|
18
|
-
<div class="hex">var(--panel-0)</div>
|
|
19
|
-
<div class="tok">--paper · default bg</div>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
<div class="sw" style="background:var(--panel-2);color:var(--panel-text)">
|
|
23
|
-
<div class="name">paper-2</div>
|
|
24
|
-
<div>
|
|
25
|
-
<div class="hex">var(--panel-2)</div>
|
|
26
|
-
<div class="tok">--cream-3 · hover / chips</div>
|
|
27
|
-
</div>
|
|
28
|
-
</div>
|
|
29
|
-
<div class="sw" style="background:var(--panel-text);color:var(--panel-0)">
|
|
30
|
-
<div class="name">ink</div>
|
|
31
|
-
<div>
|
|
32
|
-
<div class="hex">var(--panel-text)</div>
|
|
33
|
-
<div class="tok" style="opacity:0.8">--ink · warm near-black</div>
|
|
34
|
-
</div>
|
|
35
|
-
</div>
|
|
36
|
-
<div class="sw" style="background:#247420;color:var(--panel-0)">
|
|
37
|
-
<div class="name">green</div>
|
|
38
|
-
<div>
|
|
39
|
-
<div class="hex">#247420</div>
|
|
40
|
-
<div class="tok" style="opacity:0.9">--green · primary accent</div>
|
|
41
|
-
</div>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
44
|
-
<p class="t-meta" style="margin-top:16px">paper = default surface. paper-2 (cream-3) = hover/chip bg with real contrast against paper. ink = warm, not harsh. green = 247420, the primary accent.</p>
|
|
45
|
-
</body></html>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="en" data-theme="auto" class="ds-247420"><head><meta charset="utf-8"><link rel="stylesheet" href="../colors_and_type.css">
|
|
3
|
-
<link rel="stylesheet" href="../app-shell.css">
|
|
4
|
-
<style>body{padding:20px;background:var(--panel-0);color:var(--panel-text);}</style><script defer src="./motion-default.js"></script>
|
|
5
|
-
</head><body>
|
|
6
|
-
<div class="dateline"><span>247420 // COLORS // LORE</span><span class="spread"></span><span>THE ACTUAL PALETTE</span></div>
|
|
7
|
-
<div style="display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:16px">
|
|
8
|
-
<div style="background:#247420;color:var(--panel-0);padding:20px;min-height:140px">
|
|
9
|
-
<div class="t-label" style="color:var(--panel-0)">MARIJUANA GREEN</div>
|
|
10
|
-
<div class="t-micro" style="margin-top:6px;color:var(--panel-0)">#247420</div>
|
|
11
|
-
<div class="t-micro" style="color:var(--panel-0)">--green · primary lore accent</div>
|
|
12
|
-
<div style="margin-top:14px;font-family:var(--ff-display);font-size:36px;line-height:1">24·74·20</div>
|
|
13
|
-
</div>
|
|
14
|
-
<div style="background:#420247;color:var(--panel-0);padding:20px;min-height:140px">
|
|
15
|
-
<div class="t-label" style="color:var(--panel-0)">MARIJUANA PURPLE</div>
|
|
16
|
-
<div class="t-micro" style="margin-top:6px;color:var(--panel-0)">#420247</div>
|
|
17
|
-
<div class="t-micro" style="color:var(--panel-0)">--purple · the ONE allowed purple</div>
|
|
18
|
-
<div style="margin-top:14px;font-family:var(--ff-display);font-size:36px;line-height:1">42·02·47</div>
|
|
19
|
-
</div>
|
|
20
|
-
<div style="background:#E84B8A;color:#ffffff;padding:20px;min-height:140px">
|
|
21
|
-
<div class="t-label" style="color:#ffffff">MASCOT</div>
|
|
22
|
-
<div class="t-micro" style="margin-top:6px;color:#ffffff">#E84B8A</div>
|
|
23
|
-
<div class="t-micro" style="color:#ffffff">--mascot · magenta/mauve/pink · wild</div>
|
|
24
|
-
<div style="margin-top:14px;font-family:var(--ff-display);font-size:36px;line-height:1;color:#ffffff">hi.</div>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
<div class="t-meta" style="margin-top:12px">247420 (green) + 420247 (purple) — the lore pair. mascot pink used randomly/wildly on accent elements.</div>
|
|
28
|
-
</body></html>
|