videowright 0.1.0
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 +91 -0
- package/dist/cli/argv.d.ts +28 -0
- package/dist/cli/argv.d.ts.map +1 -0
- package/dist/cli/argv.js +115 -0
- package/dist/cli/argv.js.map +1 -0
- package/dist/cli/bin.d.ts +7 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +10 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/dev.d.ts +19 -0
- package/dist/cli/dev.d.ts.map +1 -0
- package/dist/cli/dev.js +104 -0
- package/dist/cli/dev.js.map +1 -0
- package/dist/cli/discover.d.ts +29 -0
- package/dist/cli/discover.d.ts.map +1 -0
- package/dist/cli/discover.js +104 -0
- package/dist/cli/discover.js.map +1 -0
- package/dist/cli/discover_project.d.ts +29 -0
- package/dist/cli/discover_project.d.ts.map +1 -0
- package/dist/cli/discover_project.js +108 -0
- package/dist/cli/discover_project.js.map +1 -0
- package/dist/cli/errors.d.ts +10 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +13 -0
- package/dist/cli/errors.js.map +1 -0
- package/dist/cli/ffmpeg.d.ts +57 -0
- package/dist/cli/ffmpeg.d.ts.map +1 -0
- package/dist/cli/ffmpeg.js +122 -0
- package/dist/cli/ffmpeg.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +152 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/playwright_check.d.ts +44 -0
- package/dist/cli/playwright_check.d.ts.map +1 -0
- package/dist/cli/playwright_check.js +20 -0
- package/dist/cli/playwright_check.js.map +1 -0
- package/dist/cli/prompt.d.ts +13 -0
- package/dist/cli/prompt.d.ts.map +1 -0
- package/dist/cli/prompt.js +47 -0
- package/dist/cli/prompt.js.map +1 -0
- package/dist/cli/render.d.ts +60 -0
- package/dist/cli/render.d.ts.map +1 -0
- package/dist/cli/render.js +471 -0
- package/dist/cli/render.js.map +1 -0
- package/dist/cli/script_cmd.d.ts +26 -0
- package/dist/cli/script_cmd.d.ts.map +1 -0
- package/dist/cli/script_cmd.js +88 -0
- package/dist/cli/script_cmd.js.map +1 -0
- package/dist/cli/time_shim.d.ts +44 -0
- package/dist/cli/time_shim.d.ts.map +1 -0
- package/dist/cli/time_shim.js +390 -0
- package/dist/cli/time_shim.js.map +1 -0
- package/dist/cli/ts_loader.d.ts +28 -0
- package/dist/cli/ts_loader.d.ts.map +1 -0
- package/dist/cli/ts_loader.js +95 -0
- package/dist/cli/ts_loader.js.map +1 -0
- package/dist/cli/vite_helpers.d.ts +62 -0
- package/dist/cli/vite_helpers.d.ts.map +1 -0
- package/dist/cli/vite_helpers.js +273 -0
- package/dist/cli/vite_helpers.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/player/hash_router.d.ts +23 -0
- package/dist/player/hash_router.d.ts.map +1 -0
- package/dist/player/hash_router.js +49 -0
- package/dist/player/hash_router.js.map +1 -0
- package/dist/player/hud.d.ts +33 -0
- package/dist/player/hud.d.ts.map +1 -0
- package/dist/player/hud.js +357 -0
- package/dist/player/hud.js.map +1 -0
- package/dist/player/index.d.ts +123 -0
- package/dist/player/index.d.ts.map +1 -0
- package/dist/player/index.js +848 -0
- package/dist/player/index.js.map +1 -0
- package/dist/player/input.d.ts +14 -0
- package/dist/player/input.d.ts.map +1 -0
- package/dist/player/input.js +90 -0
- package/dist/player/input.js.map +1 -0
- package/dist/player/slot.d.ts +22 -0
- package/dist/player/slot.d.ts.map +1 -0
- package/dist/player/slot.js +43 -0
- package/dist/player/slot.js.map +1 -0
- package/dist/player/transitions/cut.d.ts +7 -0
- package/dist/player/transitions/cut.d.ts.map +1 -0
- package/dist/player/transitions/cut.js +9 -0
- package/dist/player/transitions/cut.js.map +1 -0
- package/dist/player/transitions/fade.d.ts +7 -0
- package/dist/player/transitions/fade.d.ts.map +1 -0
- package/dist/player/transitions/fade.js +18 -0
- package/dist/player/transitions/fade.js.map +1 -0
- package/dist/player/transitions/index.d.ts +4 -0
- package/dist/player/transitions/index.d.ts.map +1 -0
- package/dist/player/transitions/index.js +4 -0
- package/dist/player/transitions/index.js.map +1 -0
- package/dist/player/transitions/slide.d.ts +6 -0
- package/dist/player/transitions/slide.d.ts.map +1 -0
- package/dist/player/transitions/slide.js +35 -0
- package/dist/player/transitions/slide.js.map +1 -0
- package/dist/script/index.d.ts +2 -0
- package/dist/script/index.d.ts.map +1 -0
- package/dist/script/index.js +2 -0
- package/dist/script/index.js.map +1 -0
- package/dist/script/script.d.ts +10 -0
- package/dist/script/script.d.ts.map +1 -0
- package/dist/script/script.js +41 -0
- package/dist/script/script.js.map +1 -0
- package/dist/segment/SegmentRunner.d.ts +52 -0
- package/dist/segment/SegmentRunner.d.ts.map +1 -0
- package/dist/segment/SegmentRunner.js +187 -0
- package/dist/segment/SegmentRunner.js.map +1 -0
- package/dist/segment/defineConfig.d.ts +6 -0
- package/dist/segment/defineConfig.d.ts.map +1 -0
- package/dist/segment/defineConfig.js +7 -0
- package/dist/segment/defineConfig.js.map +1 -0
- package/dist/segment/defineSegment.d.ts +7 -0
- package/dist/segment/defineSegment.d.ts.map +1 -0
- package/dist/segment/defineSegment.js +25 -0
- package/dist/segment/defineSegment.js.map +1 -0
- package/dist/segment/index.d.ts +5 -0
- package/dist/segment/index.d.ts.map +1 -0
- package/dist/segment/index.js +4 -0
- package/dist/segment/index.js.map +1 -0
- package/dist/timeline/index.d.ts +73 -0
- package/dist/timeline/index.d.ts.map +1 -0
- package/dist/timeline/index.js +142 -0
- package/dist/timeline/index.js.map +1 -0
- package/dist/timeline/loadAudioTrack.d.ts +18 -0
- package/dist/timeline/loadAudioTrack.d.ts.map +1 -0
- package/dist/timeline/loadAudioTrack.js +44 -0
- package/dist/timeline/loadAudioTrack.js.map +1 -0
- package/dist/timeline/loadVoiceover.d.ts +18 -0
- package/dist/timeline/loadVoiceover.d.ts.map +1 -0
- package/dist/timeline/loadVoiceover.js +38 -0
- package/dist/timeline/loadVoiceover.js.map +1 -0
- package/dist/timeline/resolveTiming.d.ts +28 -0
- package/dist/timeline/resolveTiming.d.ts.map +1 -0
- package/dist/timeline/resolveTiming.js +63 -0
- package/dist/timeline/resolveTiming.js.map +1 -0
- package/dist/timeline/validateTiming.d.ts +29 -0
- package/dist/timeline/validateTiming.d.ts.map +1 -0
- package/dist/timeline/validateTiming.js +62 -0
- package/dist/timeline/validateTiming.js.map +1 -0
- package/dist/types.d.ts +216 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +47 -0
- package/skill/SKILL.md +64 -0
- package/skill/assets/hello_world/PLAN.md +31 -0
- package/skill/assets/hello_world/README.md +27 -0
- package/skill/assets/hello_world/audio/audio_plan.md +14 -0
- package/skill/assets/hello_world/segments/hello_intro.ts +69 -0
- package/skill/assets/hello_world/segments/hello_outro.ts +71 -0
- package/skill/assets/hello_world/timeline.ts +15 -0
- package/skill/assets/hello_world/voiceover_script/script.md +10 -0
- package/skill/assets/install/package.json +10 -0
- package/skill/assets/install/tsconfig.json +23 -0
- package/skill/assets/styles/editorial-mono/STYLE.md +124 -0
- package/skill/assets/styles/editorial-mono/brand.md +85 -0
- package/skill/assets/styles/editorial-mono/reference/animations.jsx +752 -0
- package/skill/assets/styles/editorial-mono/reference/scenes.html +563 -0
- package/skill/assets/styles/editorial-mono/sample/bullet.ts +101 -0
- package/skill/assets/styles/editorial-mono/sample/content.ts +104 -0
- package/skill/assets/styles/editorial-mono/sample/cta.ts +113 -0
- package/skill/assets/styles/editorial-mono/sample/feature.ts +111 -0
- package/skill/assets/styles/editorial-mono/sample/grid.ts +97 -0
- package/skill/assets/styles/editorial-mono/sample/kinetic.ts +96 -0
- package/skill/assets/styles/editorial-mono/sample/section.ts +101 -0
- package/skill/assets/styles/editorial-mono/sample/stat.ts +128 -0
- package/skill/assets/styles/editorial-mono/sample/title.ts +97 -0
- package/skill/assets/styles/editorial-mono/sample/ui-showcase.ts +159 -0
- package/skill/assets/styles/editorial-mono/tokens.css +44 -0
- package/skill/assets/styles/iso-diagram/STYLE.md +109 -0
- package/skill/assets/styles/iso-diagram/brand.md +32 -0
- package/skill/assets/styles/iso-diagram/reference/animations.jsx +673 -0
- package/skill/assets/styles/iso-diagram/reference/scenes.html +427 -0
- package/skill/assets/styles/iso-diagram/sample/bullet.ts +144 -0
- package/skill/assets/styles/iso-diagram/sample/content.ts +192 -0
- package/skill/assets/styles/iso-diagram/sample/cta.ts +162 -0
- package/skill/assets/styles/iso-diagram/sample/feature.ts +205 -0
- package/skill/assets/styles/iso-diagram/sample/grid.ts +181 -0
- package/skill/assets/styles/iso-diagram/sample/kinetic.ts +102 -0
- package/skill/assets/styles/iso-diagram/sample/section.ts +149 -0
- package/skill/assets/styles/iso-diagram/sample/stat.ts +164 -0
- package/skill/assets/styles/iso-diagram/sample/title.ts +173 -0
- package/skill/assets/styles/iso-diagram/sample/ui-showcase.ts +162 -0
- package/skill/assets/styles/iso-diagram/tokens.css +40 -0
- package/skill/assets/styles/motion-engineering/STYLE.md +106 -0
- package/skill/assets/styles/motion-engineering/brand.md +29 -0
- package/skill/assets/styles/motion-engineering/reference/animations.jsx +673 -0
- package/skill/assets/styles/motion-engineering/reference/scenes.html +513 -0
- package/skill/assets/styles/motion-engineering/sample/bullet.ts +176 -0
- package/skill/assets/styles/motion-engineering/sample/content.ts +228 -0
- package/skill/assets/styles/motion-engineering/sample/cta.ts +209 -0
- package/skill/assets/styles/motion-engineering/sample/feature.ts +299 -0
- package/skill/assets/styles/motion-engineering/sample/grid.ts +190 -0
- package/skill/assets/styles/motion-engineering/sample/kinetic.ts +159 -0
- package/skill/assets/styles/motion-engineering/sample/section.ts +196 -0
- package/skill/assets/styles/motion-engineering/sample/stat.ts +230 -0
- package/skill/assets/styles/motion-engineering/sample/title.ts +219 -0
- package/skill/assets/styles/motion-engineering/sample/ui-showcase.ts +267 -0
- package/skill/assets/styles/motion-engineering/tokens.css +40 -0
- package/skill/assets/styles/neon-terminal/STYLE.md +105 -0
- package/skill/assets/styles/neon-terminal/brand.md +27 -0
- package/skill/assets/styles/neon-terminal/reference/animations.jsx +673 -0
- package/skill/assets/styles/neon-terminal/reference/scenes.html +387 -0
- package/skill/assets/styles/neon-terminal/sample/bullet.ts +113 -0
- package/skill/assets/styles/neon-terminal/sample/content.ts +117 -0
- package/skill/assets/styles/neon-terminal/sample/cta.ts +131 -0
- package/skill/assets/styles/neon-terminal/sample/feature.ts +112 -0
- package/skill/assets/styles/neon-terminal/sample/grid.ts +128 -0
- package/skill/assets/styles/neon-terminal/sample/kinetic.ts +105 -0
- package/skill/assets/styles/neon-terminal/sample/section.ts +96 -0
- package/skill/assets/styles/neon-terminal/sample/stat.ts +123 -0
- package/skill/assets/styles/neon-terminal/sample/title.ts +122 -0
- package/skill/assets/styles/neon-terminal/sample/ui-showcase.ts +127 -0
- package/skill/assets/styles/neon-terminal/tokens.css +39 -0
- package/skill/assets/styles/risograph/STYLE.md +110 -0
- package/skill/assets/styles/risograph/brand.md +26 -0
- package/skill/assets/styles/risograph/reference/animations.jsx +673 -0
- package/skill/assets/styles/risograph/reference/scenes.html +403 -0
- package/skill/assets/styles/risograph/sample/bullet.ts +124 -0
- package/skill/assets/styles/risograph/sample/content.ts +135 -0
- package/skill/assets/styles/risograph/sample/cta.ts +149 -0
- package/skill/assets/styles/risograph/sample/feature.ts +152 -0
- package/skill/assets/styles/risograph/sample/grid.ts +123 -0
- package/skill/assets/styles/risograph/sample/kinetic.ts +125 -0
- package/skill/assets/styles/risograph/sample/section.ts +130 -0
- package/skill/assets/styles/risograph/sample/stat.ts +145 -0
- package/skill/assets/styles/risograph/sample/title.ts +132 -0
- package/skill/assets/styles/risograph/sample/ui-showcase.ts +147 -0
- package/skill/assets/styles/risograph/tokens.css +39 -0
- package/skill/assets/styles/swiss-console/STYLE.md +107 -0
- package/skill/assets/styles/swiss-console/brand.md +37 -0
- package/skill/assets/styles/swiss-console/reference/animations.jsx +673 -0
- package/skill/assets/styles/swiss-console/reference/scenes.html +420 -0
- package/skill/assets/styles/swiss-console/sample/bullet.ts +122 -0
- package/skill/assets/styles/swiss-console/sample/content.ts +137 -0
- package/skill/assets/styles/swiss-console/sample/cta.ts +109 -0
- package/skill/assets/styles/swiss-console/sample/feature.ts +163 -0
- package/skill/assets/styles/swiss-console/sample/grid.ts +145 -0
- package/skill/assets/styles/swiss-console/sample/kinetic.ts +117 -0
- package/skill/assets/styles/swiss-console/sample/section.ts +127 -0
- package/skill/assets/styles/swiss-console/sample/stat.ts +148 -0
- package/skill/assets/styles/swiss-console/sample/title.ts +148 -0
- package/skill/assets/styles/swiss-console/sample/ui-showcase.ts +198 -0
- package/skill/assets/styles/swiss-console/tokens.css +39 -0
- package/skill/install/INSTALL.md +400 -0
- package/skill/references/audio/audio_plan.md +199 -0
- package/skill/references/audio/build.md +208 -0
- package/skill/references/audio/cue_template.md +219 -0
- package/skill/references/audio/ffmpeg_cookbook.md +267 -0
- package/skill/references/audio/music/music.md +171 -0
- package/skill/references/audio/music/providers/elevenlabs.md +170 -0
- package/skill/references/audio/music/providers/manual.md +140 -0
- package/skill/references/audio/music/providers/openverse.md +265 -0
- package/skill/references/audio/sfx/providers/elevenlabs.md +152 -0
- package/skill/references/audio/sfx/providers/manual.md +117 -0
- package/skill/references/audio/sfx/providers/openverse.md +243 -0
- package/skill/references/audio/sfx/sfx.md +149 -0
- package/skill/references/audio/styles.md +102 -0
- package/skill/references/audio/sync.md +237 -0
- package/skill/references/audio/voiceover/animation_sync.md +142 -0
- package/skill/references/audio/voiceover/provider_script.md +153 -0
- package/skill/references/audio/voiceover/providers/elevenlabs.md +288 -0
- package/skill/references/audio/voiceover/providers/manual.md +100 -0
- package/skill/references/audio/voiceover/script_writing.md +100 -0
- package/skill/references/audio/voiceover/style_intake.md +56 -0
- package/skill/references/audio/voiceover/sync_algorithm.md +167 -0
- package/skill/references/audio/voiceover.md +296 -0
- package/skill/references/audio.md +135 -0
- package/skill/references/authoring_segment.md +446 -0
- package/skill/references/create_or_edit_video.md +232 -0
- package/skill/references/dev_server.md +157 -0
- package/skill/references/export.md +145 -0
- package/skill/references/new_video.md +117 -0
- package/skill/references/project_structure.md +144 -0
- package/skill/references/setup.md +109 -0
- package/skill/references/setup_new_style.md +158 -0
- package/skill/references/styles.md +154 -0
- package/skill/references/testing.md +115 -0
- package/skill/references/types.md +240 -0
- package/src/cli/entry/components/copy_button.ts +42 -0
- package/src/cli/entry/components/download_modal.ts +204 -0
- package/src/cli/entry/components/empty_state.ts +55 -0
- package/src/cli/entry/components/hide_hud_tab.ts +37 -0
- package/src/cli/entry/components/icons.ts +31 -0
- package/src/cli/entry/components/top_bar.ts +69 -0
- package/src/cli/entry/components/video_card.ts +57 -0
- package/src/cli/entry/dev_frame.ts +189 -0
- package/src/cli/entry/entry_index.ts +16 -0
- package/src/cli/entry/entry_video.ts +24 -0
- package/src/cli/entry/index.html +12 -0
- package/src/cli/entry/parse_slug.ts +14 -0
- package/src/cli/entry/render.html +17 -0
- package/src/cli/entry/render_entry.ts +121 -0
- package/src/cli/entry/styles/base.css +45 -0
- package/src/cli/entry/styles/components.css +605 -0
- package/src/cli/entry/styles/tokens.css +44 -0
- package/src/cli/entry/video.html +22 -0
- package/src/cli/entry/views/homepage.ts +66 -0
- package/src/cli/entry/views/video_view.ts +286 -0
- package/src/cli/entry/virtual.d.ts +8 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* Risograph — design tokens
|
|
2
|
+
* Two-color screen print. Fluorescent pink + ink blue on cream.
|
|
3
|
+
* Visible grain, slight misregistration, paper warmth.
|
|
4
|
+
*/
|
|
5
|
+
:root {
|
|
6
|
+
--color-bg: #f2ebdc; /* warm uncoated cream */
|
|
7
|
+
--color-fg: #1a2a6a; /* riso ink blue */
|
|
8
|
+
--color-accent: #ff4f8b; /* fluorescent pink */
|
|
9
|
+
|
|
10
|
+
--color-muted: #4f5b8e;
|
|
11
|
+
--color-border: #1a2a6a;
|
|
12
|
+
--color-second: #ffc83d; /* riso yellow, sparingly */
|
|
13
|
+
|
|
14
|
+
--font-display: "Archivo Black", "Druk", sans-serif;
|
|
15
|
+
--font-body: "Archivo", "Inter", system-ui, sans-serif;
|
|
16
|
+
--font-mono: "JetBrains Mono", ui-monospace, monospace;
|
|
17
|
+
|
|
18
|
+
--space-sm: 12px;
|
|
19
|
+
--space-md: 24px;
|
|
20
|
+
--space-lg: 48px;
|
|
21
|
+
--space-xl: 96px;
|
|
22
|
+
|
|
23
|
+
--duration-fast: 140ms;
|
|
24
|
+
--duration-normal: 320ms;
|
|
25
|
+
--duration-slow: 640ms;
|
|
26
|
+
|
|
27
|
+
--radius-sm: 0px;
|
|
28
|
+
--radius-md: 0px;
|
|
29
|
+
--stagger: 70ms;
|
|
30
|
+
--ease-out: steps(6, end); /* stop-motion frames */
|
|
31
|
+
--ease-in: steps(6, end);
|
|
32
|
+
--scene-hold: 4s;
|
|
33
|
+
|
|
34
|
+
--safe-x: 120px;
|
|
35
|
+
--safe-y: 96px;
|
|
36
|
+
|
|
37
|
+
--misreg: 3px; /* color channel offset */
|
|
38
|
+
--grain-opacity: 0.18;
|
|
39
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Swiss Console
|
|
3
|
+
slug: swiss-console
|
|
4
|
+
picker_description: 'Strict 12-column grid. Hairline rules. Tabular numerals. Micro-labels everywhere.'
|
|
5
|
+
font_sources:
|
|
6
|
+
- https://api.fontshare.com/v2/css?f[]=switzer@400,500,600,700&display=swap
|
|
7
|
+
- https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&display=swap
|
|
8
|
+
mood: [precise, systematic, neutral, informational, dense]
|
|
9
|
+
good_for:
|
|
10
|
+
- Dev tools and SDKs
|
|
11
|
+
- Data products and dashboards
|
|
12
|
+
- Infrastructure and platform launches
|
|
13
|
+
- Fintech, trading, analytics
|
|
14
|
+
- Anything that benefits from showing structure
|
|
15
|
+
bad_for:
|
|
16
|
+
- Consumer apps needing warmth
|
|
17
|
+
- Brand/lifestyle launches
|
|
18
|
+
- Stories or narrative explainers (use Editorial Mono)
|
|
19
|
+
tags: [swiss, grid, grotesk, minimal, informational, light-mode]
|
|
20
|
+
references: [Pentagram, Linear marketing site, Vercel changelog, Stripe dashboard]
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Swiss Console — STYLE.md
|
|
24
|
+
|
|
25
|
+
## Identity
|
|
26
|
+
|
|
27
|
+
A precise, information-dense aesthetic. Helvetica-grade grotesk throughout. Strict 12-column grid. Hairline rules. Mono micro-labels anchor every element to the grid. One signal-red accent. Tabular numerals everywhere.
|
|
28
|
+
|
|
29
|
+
**Mood:** precise, systematic, neutral, informational, dense.
|
|
30
|
+
|
|
31
|
+
## When to use
|
|
32
|
+
|
|
33
|
+
- Dev tools, SDKs, infrastructure launches
|
|
34
|
+
- Data products, dashboards, analytics
|
|
35
|
+
- Fintech and trading platforms
|
|
36
|
+
- Anything that benefits from showing its own structure
|
|
37
|
+
|
|
38
|
+
## When to avoid
|
|
39
|
+
|
|
40
|
+
- Consumer apps needing warmth or whimsy
|
|
41
|
+
- Brand/lifestyle launches
|
|
42
|
+
- Slow narrative pieces → use Editorial Mono
|
|
43
|
+
|
|
44
|
+
## Layout principles
|
|
45
|
+
|
|
46
|
+
- **12-column grid is law.** Every element snaps to a column. `--safe-x` is 96px each side; gutters are 24px.
|
|
47
|
+
- **Micro-labels above and beside everything.** `01 / 12`, `→ 03:12`, `FIG. 2.3` in mono uppercase, 12–14px, tracked +0.08em.
|
|
48
|
+
- **Hairline rules organize space.** Top rule, bottom rule, between-column rules. 1px `--color-border`.
|
|
49
|
+
- **Dense by design.** Multiple elements per scene is fine — this style *invites* density. Show structure.
|
|
50
|
+
- **Numerals are tabular.** `font-variant-numeric: tabular-nums` on anything numeric.
|
|
51
|
+
|
|
52
|
+
## Color application
|
|
53
|
+
|
|
54
|
+
- White bg, graphite fg. No cream, no off-white.
|
|
55
|
+
- Red `--color-accent` is signal: highlights one number, one underline, one arrow. Never decorative.
|
|
56
|
+
- Muted gray for labels, captions, secondary type, less-important rows.
|
|
57
|
+
- Surface gray for cards, table headers, sidebars.
|
|
58
|
+
|
|
59
|
+
## Type rules
|
|
60
|
+
|
|
61
|
+
- **Display = Body = Switzer.** One grotesk family. Variation via weight (400/500/600) and size, not family.
|
|
62
|
+
- Sizes: micro 14, body 18–24, headline 56–96, display 140–220. No serif anywhere.
|
|
63
|
+
- **Mono = JetBrains Mono.** Uppercase, tracked +0.08em, for labels and identifiers.
|
|
64
|
+
- Tabular numerals on any number that updates.
|
|
65
|
+
|
|
66
|
+
## Motion principles
|
|
67
|
+
|
|
68
|
+
- **Slide on grid rails.** Elements enter by sliding 24–48px from a grid edge (right→left, top→bottom). Subtle.
|
|
69
|
+
- **Stagger = 60ms.** Many small staggered entries, not few big ones.
|
|
70
|
+
- **Number ticks.** Numbers count up with a digit-by-digit feel; pair with the value changing in tabular-num style.
|
|
71
|
+
- **Scene transitions = hard cut.** No fades. The page advances.
|
|
72
|
+
- **Forbidden:** spring, bounce, fade-up alone (must combine with grid-rail slide).
|
|
73
|
+
- **Ambient layer:** the grid itself can pulse subtly — a hairline rule sweeping right→left on idle scenes.
|
|
74
|
+
|
|
75
|
+
## Pacing
|
|
76
|
+
|
|
77
|
+
Brisk. Scenes hold 3–4s. Information is the content — get to it.
|
|
78
|
+
|
|
79
|
+
## Per-scene recipes
|
|
80
|
+
|
|
81
|
+
| Scene | Recipe |
|
|
82
|
+
|---|---|
|
|
83
|
+
| **Title** | Top-left micro-label (`01 / OVERVIEW`), top-right timestamp. Display headline at 200px, left-aligned, columns 1–8. Subtitle 28px, columns 1–6. |
|
|
84
|
+
| **Section** | Centered numeral `03` at 280px above a section name at 64px. Hairlines top + bottom of the slab. |
|
|
85
|
+
| **Kinetic** | One sentence, 80–96px, left-aligned, columns 1–10. Last word colored red. Optional `STATEMENT 02` micro-label. |
|
|
86
|
+
| **Bullet** | Numbered list with mono numerals in column 1, rule between, body in column 2–N. 5–6 items OK. |
|
|
87
|
+
| **Stat** | Big number columns 1–6 (180–280px), label columns 7–12. Optional sparkline below. Count-up over 720ms. |
|
|
88
|
+
| **Feature** | Three-column layout: icon/label, feature name, description. Micro-labels above each. |
|
|
89
|
+
| **Grid** | 4 or 6-column grid of small feature cards. Each has micro-label, name, 1-line desc. Cards staggered in. |
|
|
90
|
+
| **UI showcase** | Mock fills columns 2–11 with hairline frame. Callouts in remaining margins use mono labels with leader lines in red. |
|
|
91
|
+
| **Content** | Two-column body: heading columns 1–4, paragraph columns 5–12. |
|
|
92
|
+
| **CTA** | Bottom-right URL in mono, top-left micro-label `END / 10`, logo bottom-left. |
|
|
93
|
+
|
|
94
|
+
### Connective elements
|
|
95
|
+
|
|
96
|
+
- **Lower third:** mono label bottom-left with hairline rule above
|
|
97
|
+
- **Scene transition:** hard cut. No flash, no fade.
|
|
98
|
+
- **Ambient:** optional sweeping hairline on long-held scenes
|
|
99
|
+
|
|
100
|
+
## Pitfalls
|
|
101
|
+
|
|
102
|
+
- **Don't break the grid.** Off-grid placement reads as broken, not stylish.
|
|
103
|
+
- **Don't use serifs.** Anywhere. Ever.
|
|
104
|
+
- **Don't overuse the red.** One signal element per scene.
|
|
105
|
+
- **Don't soft-corner anything.** All corners 90°.
|
|
106
|
+
- **Don't fade between scenes.** Hard cut.
|
|
107
|
+
- **Don't skip the micro-labels.** They are the load-bearing element of the style.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Swiss Console — Brand
|
|
2
|
+
|
|
3
|
+
Token rationale.
|
|
4
|
+
|
|
5
|
+
## Color
|
|
6
|
+
|
|
7
|
+
**`--color-bg` `#FFFFFF`** — pure white. The Swiss page is paper-white; cream would soften the precision.
|
|
8
|
+
|
|
9
|
+
**`--color-fg` `#0A0A0A`** — near-black. Avoids absolute black so it reads as ink, not OLED.
|
|
10
|
+
|
|
11
|
+
**`--color-accent` `#E0301E`** — Swiss red. Signal color, used as an editor would: one mark per page.
|
|
12
|
+
|
|
13
|
+
**`--color-muted` `#6B7280`** — neutral mid-gray for the dense layer of mono labels and secondary type.
|
|
14
|
+
|
|
15
|
+
**`--color-border` `#E5E5E5`** — for hairline rules. Visible but never assertive.
|
|
16
|
+
|
|
17
|
+
**`--color-surface` `#F6F6F6`** — for table headers, sidebars, callout boxes. Almost imperceptible.
|
|
18
|
+
|
|
19
|
+
## Typography
|
|
20
|
+
|
|
21
|
+
**Switzer** (Indian Type Foundry) is the closest free analogue to Söhne / GT America. Geometric grotesk with neutral character, designed for interface work.
|
|
22
|
+
|
|
23
|
+
**JetBrains Mono** for labels and identifiers. Tracked +0.08em uppercase gives a tertiary structural layer.
|
|
24
|
+
|
|
25
|
+
No serif anywhere. One grotesk family across all sizes — variation comes from weight and case, not from family-mixing.
|
|
26
|
+
|
|
27
|
+
## Spacing
|
|
28
|
+
|
|
29
|
+
12 / 24 / 48 / 96 scale. 24px is the gutter unit. The 12-column grid produces 132px columns at 1920 wide (after 96px margins each side).
|
|
30
|
+
|
|
31
|
+
## Geometry
|
|
32
|
+
|
|
33
|
+
`--radius-sm/md = 0`. Swiss has no rounded corners. The grid is rectilinear.
|
|
34
|
+
|
|
35
|
+
## Motion
|
|
36
|
+
|
|
37
|
+
Faster than Editorial Mono. 360ms standard entry. Slide-on-grid is the dominant move — fade alone is never enough.
|