@nebularstreams/statify 3.0.6 → 3.0.8

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.
Files changed (76) hide show
  1. package/dist/website.simple/website.css +1 -1
  2. package/dist/website.software/website.css +1 -1
  3. package/dist/website.worlds/website.css +1 -1
  4. package/package.json +2 -1
  5. package/skill/statify-site/SKILL.md +53 -0
  6. package/skill/statify-site/agents/openai.yaml +4 -0
  7. package/skill/statify-site/references/authoring.md +121 -0
  8. package/skill/statify-site/references/landing-pages.md +107 -0
  9. package/skill/statify-site/references/skins.md +150 -0
  10. package/src.website/css/css-core/ui.navibar.css +95 -1
  11. package/src.website/css/css-core/ui.qrcode.css +20 -0
  12. package/src.website/src/app/app.style.mjs +2 -0
  13. package/templates/documentation/metadata.json +3 -6
  14. package/templates/landing/metadata.json +1 -1
  15. package/templates/landing/pages/docs/cookies.md +25 -0
  16. package/templates/landing/pages/docs/index.md +13 -0
  17. package/templates/landing/pages/docs/privacy.md +50 -0
  18. package/templates/landing/pages/docs/tos.md +49 -0
  19. package/templates/landing/pages/index.json +3 -3
  20. package/templates/landing-rich/assets/app/webfonts/fa-brands-400.woff2 +0 -0
  21. package/templates/landing-rich/assets/app/webfonts/fa-solid-900.woff2 +0 -0
  22. package/templates/landing-rich/assets/app/website.css +32 -0
  23. package/templates/landing-rich/assets/app/website.min.js +6 -0
  24. package/templates/landing-rich/assets/res/carousel/image-1.webp +0 -0
  25. package/templates/landing-rich/assets/res/carousel/image-2.webp +0 -0
  26. package/templates/landing-rich/assets/res/carousel/image-3.webp +0 -0
  27. package/templates/landing-rich/assets/res/custom.css +122 -0
  28. package/templates/landing-rich/assets/res/logos/favicon.ico +0 -0
  29. package/templates/landing-rich/assets/res/logos/favicon.png +0 -0
  30. package/templates/landing-rich/assets/res/logos/logo.medallion.png +0 -0
  31. package/templates/landing-rich/assets/res/logos/logo.white.png +0 -0
  32. package/templates/landing-rich/assets/res/proj/banda-tech-client.webp +0 -0
  33. package/templates/landing-rich/assets/res/proj/banda-tech-server.webp +0 -0
  34. package/templates/landing-rich/assets/res/proj/proj-common-ground.webp +0 -0
  35. package/templates/landing-rich/assets/res/proj/proj-fieldnote.webp +0 -0
  36. package/templates/landing-rich/assets/res/proj/proj-tribes.webp +0 -0
  37. package/templates/landing-rich/images.json +932 -0
  38. package/templates/landing-rich/metadata.json +115 -0
  39. package/templates/landing-rich/pages/docs/cookies.md +25 -0
  40. package/templates/landing-rich/pages/docs/index.md +13 -0
  41. package/templates/landing-rich/pages/docs/privacy.md +50 -0
  42. package/templates/landing-rich/pages/docs/tos.md +49 -0
  43. package/templates/landing-rich/pages/faq.json +68 -0
  44. package/templates/landing-rich/pages/index.json +333 -0
  45. package/templates/landing-rich/pages/res/bg/molecule.svg +3 -0
  46. package/templates/landing-rich/pages/res/custom.css +270 -0
  47. package/templates/landing-rich/pages/res/icon-1024.png +0 -0
  48. package/templates/landing-rich/pages/res/index/cooking-0.webp +0 -0
  49. package/templates/landing-rich/pages/res/index/cooking-1.webp +0 -0
  50. package/templates/landing-rich/pages/res/index/cooking-2.webp +0 -0
  51. package/templates/landing-rich/pages/res/index/cooking-3.webp +0 -0
  52. package/templates/landing-rich/pages/res/index/icon-holopoke.png +0 -0
  53. package/templates/landing-rich/pages/res/index/obscene-diagram.webp +0 -0
  54. package/templates/landing-rich/pages/res/index/obscene-screenshot.webp +0 -0
  55. package/templates/landing-rich/pages/res/index/obscene-screenshots.png +0 -0
  56. package/templates/landing-rich/pages/res/index/obscene-studio-midi-controllers-3.webp +0 -0
  57. package/templates/landing-rich/pages/res/index/scr-avion-dentro.webp +0 -0
  58. package/templates/landing-rich/pages/res/index/scr-avion.webp +0 -0
  59. package/templates/landing-rich/pages/res/index/scr-football-0.webp +0 -0
  60. package/templates/landing-rich/pages/res/index/scr-football-0a.webp +0 -0
  61. package/templates/landing-rich/pages/res/index/scr-football-1.webp +0 -0
  62. package/templates/landing-rich/pages/res/index/scr-football-1b.webp +0 -0
  63. package/templates/landing-rich/pages/res/index/scr-football-jp.webp +0 -0
  64. package/templates/landing-rich/pages/res/index/scr-gaming-warning-mini.webp +0 -0
  65. package/templates/landing-rich/pages/res/index/scr-gaming-warning.webp +0 -0
  66. package/templates/landing-rich/pages/res/index/scr-music-clubbing.webp +0 -0
  67. package/templates/landing-rich/pages/res/index/scr-pollos-hermanos.webp +0 -0
  68. package/templates/landing-rich/pages/res/index/shot-livestream.webp +0 -0
  69. package/templates/landing-rich/pages/res/index/studio-screenshot.webp +0 -0
  70. package/templates/landing-rich/pages/res/trans-horizontal.png +0 -0
  71. package/templates/landing-rich/pages/res/videos/obscene-promo-720.mp4 +0 -0
  72. package/templates/landing-rich/pages/res/videos/obscene-promo-720.webp +0 -0
  73. package/templates/landing-rich/pages/res/videos/obscene-studio-showcase-1.mp4 +0 -0
  74. package/templates/landing-rich/pages/res/videos/obscene-studio-showcase-1.webp +0 -0
  75. package/tool/cli.js +1 -1
  76. package/src.website/package-lock.json +0 -2151
@@ -0,0 +1,150 @@
1
+ # Skin variables
2
+
3
+ Statify's shared `website.css` defines a variable-driven light/dark skin. Override these variables in the template-local stylesheet, normally `assets/res/custom.css`; do not edit the compiled application stylesheet.
4
+
5
+ Use `:root` for a value shared by both modes. Use `.skinroot.light` or `.skinroot.dark` when a token needs different contrast in each mode. Keep overrides limited to variables the design actually needs.
6
+
7
+ ## Core surface and text tokens
8
+
9
+ | Variable | Role |
10
+ | --- | --- |
11
+ | `--window-background` | Main application background |
12
+ | `--window-background-0` | Lowest dark-skin surface step |
13
+ | `--window-background-1` | First raised dark-skin surface step |
14
+ | `--window-background-2` | Second raised dark-skin surface step |
15
+ | `--window-background-3` | Third raised dark-skin surface step |
16
+ | `--window-background-hi` | Highlighted or raised surface |
17
+ | `--window-background-lo` | Recessed light-skin surface |
18
+ | `--primary-color` | Primary chrome or strong surface color |
19
+ | `--black` | Stable black token |
20
+ | `--text` | Main text color |
21
+ | `--text-lo` | Secondary or subdued text |
22
+ | `--border-color` | Borders and separators |
23
+ | `--placeholder` | Placeholder or empty-state surface |
24
+ | `--inputs` | Input background |
25
+ | `--shadow-color` | Shadow color |
26
+
27
+ The numbered `--window-background-*` variables are present in the dark source skin, while `--window-background-lo` is present in the light source skin. A custom stylesheet may define the complete set in both modes when its components need them.
28
+
29
+ ## Accent and foreground tokens
30
+
31
+ The templates define the main branding accents locally:
32
+
33
+ | Variable | Role |
34
+ | --- | --- |
35
+ | `--accent` | Primary brand/action color |
36
+ | `--accent-tx` | Translucent or softer accent used by decorative treatments |
37
+
38
+ The shared skin provides related foreground and state tokens:
39
+
40
+ | Variable | Role |
41
+ | --- | --- |
42
+ | `--accent-light` | Pale accent surface, especially in light mode |
43
+ | `--accent-alt` | Alternate accent |
44
+ | `--text-over-accent` | Text placed over the main accent |
45
+ | `--text-over-accent-hover` | Hover text over the main accent |
46
+ | `--text-over-primary` | Text placed over the primary surface |
47
+ | `--text-over-primary-hover` | Hover text over the primary surface |
48
+
49
+ Check text-over-color pairs together. A visually attractive accent is not usable if `--text-over-accent` lacks contrast.
50
+
51
+ ## Status and overlay tokens
52
+
53
+ | Variable | Role |
54
+ | --- | --- |
55
+ | `--back-success` | Success-message background |
56
+ | `--back-warning` | Warning-message background |
57
+ | `--back-error` | Error-message background |
58
+ | `--bg-ok` | Strong success indicator |
59
+ | `--bg-warning` | Strong warning indicator |
60
+ | `--bg-error` | Strong error indicator |
61
+ | `--alpha-band` | Translucent band or overlay |
62
+ | `--alpha-gradient` | Overlay/gradient endpoint |
63
+ | `--green` | Generic green utility color |
64
+ | `--orange` | Generic orange utility color |
65
+ | `--red` | Generic red utility color |
66
+
67
+ `--bg-ok`, `--bg-warning`, and `--bg-error` are declared by the light skin; define dark equivalents only if components using them need different dark-mode values. Preserve recognizable success, warning, and error meaning.
68
+
69
+ ## Section backgrounds
70
+
71
+ The `.back-zero`, `.back-one`, `.back-two`, and `.back-three` helpers consume matching variables:
72
+
73
+ | Variable | Default intent |
74
+ | --- | --- |
75
+ | `--back-zero` | Base section background |
76
+ | `--back-one` | First contrasting section background |
77
+ | `--back-two` | Second contrasting section background |
78
+ | `--back-three` | Third contrasting section background |
79
+
80
+ The default dark skin derives these from the window surfaces with 45-degree gradients. They may also be solid colors. Some templates define additional local levels such as `--back-four` and `--back-five`; these are template extensions, not base skin variables.
81
+
82
+ Example paired palette:
83
+
84
+ ```css
85
+ .skinroot.light {
86
+ --back-zero: #ffffff;
87
+ --back-one: #f6f2ff;
88
+ --back-two: #e8dcff;
89
+ --back-three: #cab0ff;
90
+ }
91
+
92
+ .skinroot.dark {
93
+ --back-zero: #111111;
94
+ --back-one: #211934;
95
+ --back-two: #32234f;
96
+ --back-three: #49316f;
97
+ }
98
+ ```
99
+
100
+ Only define levels used by the page. Check the main and subdued text colors against every chosen level.
101
+
102
+ ## Responsive font variables
103
+
104
+ The application provides root font sizes by breakpoint:
105
+
106
+ | Variable | Source default |
107
+ | --- | --- |
108
+ | `--font-xs` | `16px` |
109
+ | `--font-sm` | `16px` |
110
+ | `--font-md` | `18px` |
111
+ | `--font-lg` | `18px` |
112
+ | `--font-xl` | `18px` |
113
+ | `--font-fullhd` | `20px` |
114
+
115
+ Override these only when the site needs a different global type scale. Preserve readable mobile sizes and test long headings, navigation labels, tables, and code blocks after changing them.
116
+
117
+ ## Control-size variables
118
+
119
+ | Variable | Source default | Role |
120
+ | --- | --- | --- |
121
+ | `--unitsize` | `3rem` | Standard control and navigation unit |
122
+ | `--unitsize-small` | `2.54rem` | Compact control unit |
123
+
124
+ These are structural variables rather than branding colors. Change them cautiously because many controls, icons, and navigation elements share them.
125
+
126
+ ## Practical starter override
127
+
128
+ For most sites, begin with the accents and leave the structural defaults alone:
129
+
130
+ ```css
131
+ :root {
132
+ --accent: #ff8800;
133
+ --accent-tx: rgba(255, 136, 0, 0.5);
134
+ }
135
+
136
+ .skinroot.light {
137
+ --accent: #b74d00;
138
+ --accent-light: #fff1e6;
139
+ --text-over-accent: #ffffff;
140
+ --text-over-accent-hover: #ffffff;
141
+ }
142
+
143
+ .skinroot.dark {
144
+ --accent: #ff9d3d;
145
+ --text-over-accent: #111111;
146
+ --text-over-accent-hover: #000000;
147
+ }
148
+ ```
149
+
150
+ Preview the generated site in both skins at narrow and wide widths. Verify ordinary text, muted text, links, buttons, inputs, borders, cards, status colors, and every section-background level used by the page.
@@ -1,7 +1,101 @@
1
+
2
+ nav a {
3
+ color: inherit !important;
4
+ text-decoration: none
5
+ }
6
+
7
+ nav a:hover {
8
+ text-decoration: underline
9
+ }
10
+
1
11
  nav.titlebar {
2
- line-height: var(--unitsize);
12
+ z-index: 1000;
13
+ align-items: center;
14
+ white-space: nowrap;
15
+ font-variant: all-small-caps
16
+ }
17
+
18
+ nav.titlebar>* {
19
+ margin: 0 .5rem;
20
+ text-overflow: ellipsis;
21
+ overflow: hidden
22
+ }
23
+
24
+ nav.titlebar .square {
25
+ flex-shrink: 0;
26
+ display: inline-block;
27
+ margin: 0;
28
+ padding: 0 1rem;
29
+ border-left: solid 1px var(--border-color);
30
+ height: var(--unitsize);
31
+ line-height: var(--unitsize)
32
+ }
33
+
34
+ nav.titlebar .inter,nav.titlebar .mute {
35
+ flex-shrink: 0
36
+ }
37
+
38
+ nav.titlebar>.inter:after {
39
+ content: "\f0da";
40
+ font-family: "Font Awesome 5 Free";
41
+ padding-left: 1rem
42
+ }
43
+
44
+ nav.titlebar>.sep {
45
+ padding: 0;
46
+ color: var(--text-lo)
47
+ }
48
+
49
+ .naviholder i {
50
+ line-height: inherit
51
+ }
52
+
53
+ nav.autohide {
54
+ transition: opacity .5s linear
55
+ }
56
+
57
+ .scrolltop nav.autohide {
58
+ opacity: 0
59
+ }
60
+
61
+ nav .transbutton {
62
+ background: transparent;
63
+ border: 0;
64
+ color: var(--text);
65
+ cursor: pointer;
66
+ margin: 0;
67
+ border-left: solid 1px var(--border-color)
68
+ }
69
+
70
+ nav.tab-menu.flexrow {
71
+
72
+ right: 0;
73
+ left: 0;
74
+ padding-left: 0.5rem;
75
+ box-shadow: 0 0 2px var(--shadow-color);
76
+ }
77
+
78
+ nav input {
79
+ border: 0;
80
+ border-radius: 2rem;
81
+ padding: 0.25rem 0.25rem 0.25rem 0.5rem;
3
82
  }
4
83
 
84
+ nav.tab-menu > .tab-menu-item.selected-tab-item {
85
+ color: var(--accent);
86
+ border-radius: 10rem;
87
+ display: inline-block;
88
+ }
89
+
90
+ nav.subbar {
91
+ z-index: 100;
92
+ line-height: 2rem;
93
+ border-top: dashed 1px var(--border-color);
94
+ font-variant: all-small-caps;
95
+ height: 2rem;
96
+ }
97
+
98
+
5
99
  nav.tab-menu.flexrow {
6
100
 
7
101
  right: 0;
@@ -0,0 +1,20 @@
1
+ figure.qrcode {
2
+ width: 30%;
3
+ background-color: rgba(0, 0, 0, 0.4);
4
+ padding: .5rem;
5
+ border-radius: .5rem;
6
+ position: relative;
7
+ max-width: 200px;
8
+ }
9
+
10
+ figure.qrcode:before {
11
+ content: "read in your mobile";
12
+ font-size: .5rem;
13
+ position: absolute;
14
+ color: white;
15
+ top: -0.8rem;
16
+ width: 100%;
17
+ left: 0;
18
+ text-align: center;
19
+ text-shadow: 1px 1px black;
20
+ }
@@ -24,6 +24,8 @@ import "../../css/css-core/root.css";
24
24
  import "../../css/css-core/root.fullheight.css";
25
25
  import "../../css/css-core/ui.dialog.round.css";
26
26
  import "../../css/css-core/ui.notifications.css";
27
+ import "../../css/css-core/ui.navibar.css";
28
+ import "../../css/css-core/ui.qrcode.css";
27
29
 
28
30
  import "../../css/css-featurelist/feature.css";
29
31
  import "../../css/css-featurelist/tail.css";
@@ -86,16 +86,13 @@
86
86
  "navibar": {
87
87
  "home": "/",
88
88
  "logo": "res/logos/logo.medallion.png",
89
- "displayTitle": false,
89
+ "displayTitle": true,
90
90
  "autoHide": true,
91
91
  "links": {
92
92
  "documents": {
93
93
  "static": true,
94
- "icon": "file",
95
- "class": "grows"
96
- },
97
- "SPACER": {
98
- "separator": true
94
+ "icon": "file-alt",
95
+ "class": "inter"
99
96
  }
100
97
  }
101
98
  },
@@ -96,7 +96,7 @@
96
96
  "separator": true
97
97
  },
98
98
  "Documentation": {
99
- "url": "/docs/index",
99
+ "url": "docs/index",
100
100
  "icon": "book"
101
101
  },
102
102
  "Contact": {
@@ -0,0 +1,25 @@
1
+ # Cookies and Local Storage
2
+
3
+ **Example policy — replace before publishing. Last updated: September 17, 2026.**
4
+
5
+ This page explains how the Brightfield Labs website uses cookies and browser storage.
6
+
7
+ ## What we store
8
+
9
+ The website does not use advertising or third-party tracking cookies. It stores only preferences requested by the visitor.
10
+
11
+ | Storage key | Purpose | Duration |
12
+ | --- | --- | --- |
13
+ | `brightfield.preferences` | Remembers theme and policy-notice choices | Until changed or deleted |
14
+
15
+ This information remains in the visitor's browser and is not used to create an advertising profile.
16
+
17
+ ## Managing stored data
18
+
19
+ Visitors can remove local preferences through their browser's privacy or site-data settings. Removing them resets the saved theme and may display the policy notice again.
20
+
21
+ If optional analytics or other cookies are introduced, this policy and the website's consent controls should be updated before those technologies are enabled.
22
+
23
+ ## Contact
24
+
25
+ Questions about this example policy can be sent to [privacy@example.com](mailto:privacy@example.com).
@@ -0,0 +1,13 @@
1
+ # Documentation
2
+
3
+ Welcome to the Brightfield Labs documentation center. Use this template for product guides, company policies, technical references, or any other structured content.
4
+
5
+ ## Company Policies
6
+
7
+ * [Terms of Service](tos.md)
8
+ * [Privacy Policy](privacy.md)
9
+ * [Cookies and Local Storage](cookies.md)
10
+
11
+ ## Getting Started
12
+
13
+ Add Markdown files anywhere inside the `pages` folder. Subfolders become sections, and ordinary assets such as stylesheets and downloads are copied into the generated site.
@@ -0,0 +1,50 @@
1
+ # Privacy Policy
2
+
3
+ **Example policy — obtain appropriate legal review before publishing. Last updated: September 17, 2026.**
4
+
5
+ This policy describes how **Brightfield Labs** (**we**, **us**, or **our**) handles personal information when someone visits **example.com** or contacts us.
6
+
7
+ ## Information we process
8
+
9
+ We aim to collect only the information needed to operate and protect the website, communicate with visitors, and provide requested services.
10
+
11
+ This may include:
12
+
13
+ * ordinary technical request data, such as IP address, browser information, requested pages, and timestamps;
14
+ * preferences stored locally in the visitor's browser;
15
+ * contact details and message content supplied when someone writes to us; and
16
+ * information required to provide a service requested by a customer.
17
+
18
+ We do not sell personal information or use website visitor information to create advertising profiles.
19
+
20
+ ## Why we use information
21
+
22
+ We may use information to operate and secure the website, prevent abuse, respond to enquiries, deliver requested services, meet legal obligations, and protect our rights. The appropriate legal basis depends on the context and applicable law.
23
+
24
+ ## Cookies and local storage
25
+
26
+ The website may store limited preferences in the visitor's browser. See our [Cookies and Local Storage Policy](cookies.md) for details.
27
+
28
+ ## Service providers and transfers
29
+
30
+ Trusted providers may process information when they host, maintain, deliver, or secure the website. We expect providers to handle information under suitable contractual and legal safeguards, including safeguards for international transfers where required.
31
+
32
+ ## Retention and security
33
+
34
+ We retain information only as long as reasonably necessary for its purpose, legal obligations, security, and dispute resolution. We use reasonable technical and organizational safeguards, although no internet service can guarantee absolute security.
35
+
36
+ ## Individual rights
37
+
38
+ Depending on location, individuals may have rights to access, correct, delete, restrict, or receive a copy of their personal information, or to object to certain processing. Identity verification may be required before a request is completed.
39
+
40
+ ## Changes
41
+
42
+ We may update this policy as the website, our practices, or applicable requirements change. The revision date above identifies the latest version.
43
+
44
+ ## Contact
45
+
46
+ **Brightfield Labs**
47
+ 100 Example Street
48
+ Sample City, EX 10000
49
+
50
+ Email: [privacy@example.com](mailto:privacy@example.com)
@@ -0,0 +1,49 @@
1
+ # Website Terms
2
+
3
+ **Example terms — obtain appropriate legal review before publishing. Last updated: September 17, 2026.**
4
+
5
+ These terms govern access to the Brightfield Labs website at **example.com**. By using the website, visitors agree to these terms.
6
+
7
+ ## Website purpose
8
+
9
+ The website provides general information about Brightfield Labs, its services, and example work. Descriptions, demonstrations, roadmaps, and other materials are informational and do not create a binding offer, warranty, or service commitment.
10
+
11
+ Separate agreements may govern paid products, professional services, software licenses, support, or customer projects. Those agreements take precedence for the services they cover.
12
+
13
+ ## Intellectual property
14
+
15
+ Unless stated otherwise, Brightfield Labs owns the original website content and design or uses them with permission. Visitors may view the website for ordinary informational and business-evaluation purposes, but may not republish or commercially exploit substantial content without permission.
16
+
17
+ Third-party names, trademarks, and materials remain the property of their respective owners.
18
+
19
+ ## Acceptable use
20
+
21
+ Visitors must not use the website unlawfully, interfere with its operation or security, attempt unauthorized access, introduce malicious code, impose unreasonable automated load, or misrepresent an affiliation with Brightfield Labs.
22
+
23
+ ## External services
24
+
25
+ Links to third-party websites are provided for convenience. Brightfield Labs does not control their availability, security, content, or terms.
26
+
27
+ ## Availability and disclaimer
28
+
29
+ We may change, suspend, or discontinue the website at any time. The website and its informational content are provided on an **"as available"** basis. To the extent permitted by law, we do not guarantee that the website will always be available, error-free, complete, or suitable for a particular purpose.
30
+
31
+ ## Liability
32
+
33
+ To the extent permitted by law, Brightfield Labs is not liable for indirect or consequential losses arising solely from use of, inability to use, or reliance on this public website. Nothing here excludes rights or liabilities that cannot legally be excluded.
34
+
35
+ ## Privacy
36
+
37
+ Our handling of personal information is described in the [Privacy Policy](privacy.md), and browser storage is described in the [Cookies and Local Storage Policy](cookies.md).
38
+
39
+ ## Changes
40
+
41
+ We may update these terms from time to time. Updated terms apply from publication unless otherwise stated.
42
+
43
+ ## Contact
44
+
45
+ **Brightfield Labs**
46
+ 100 Example Street
47
+ Sample City, EX 10000
48
+
49
+ Email: [hello@example.com](mailto:hello@example.com)
@@ -250,17 +250,17 @@
250
250
  },
251
251
  {
252
252
  "title": "Cookies",
253
- "href": "/docs/cookies",
253
+ "href": "docs/cookies",
254
254
  "target": "doc"
255
255
  },
256
256
  {
257
257
  "title": "Privacy",
258
- "href": "/docs/privacy",
258
+ "href": "docs/privacy",
259
259
  "target": "doc"
260
260
  },
261
261
  {
262
262
  "title": "Terms",
263
- "href": "/docs/tos",
263
+ "href": "docs/tos",
264
264
  "target": "doc"
265
265
  }
266
266
  ]