@lightdash/cli 0.3431.0 → 0.3433.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.
@@ -1123,6 +1123,41 @@ Lightdash-specific constraints that apply on top of `frontend-design`'s directio
1123
1123
  - **Commit to one theme; don't design for dark while rendering light.** The template's `:root` defaults to white (light tokens). If your design needs a dark background, you must do *one* of: (a) apply `className="dark"` to your top-level `<div>` so Tailwind activates the dark token values, or (b) override the CSS variables on `:root` directly to match your chosen theme. **Never** author colors that assume a dark background without ensuring the page actually loads dark — the symptom is invisible secondary text (faint red/gray on white). Before declaring done, check: does the page background actually look the way you described it? If not, you have a theme-wiring bug.
1124
1124
  - **Leave a gutter at the bottom of the page.** Don't let the last card, chart, or footer sit flush against the iframe's bottom edge — it reads as clipped. Add bottom padding (`pb-8` or similar) on your page's top-level themed wrapper so the gutter inherits the theme's background. Don't push the gutter onto `#root` or `body` instead — those sit outside your theme, so any space below the wrapper falls back to the template default and shows as a mismatched strip.
1125
1125
 
1126
+ ### Sizing for scheduled-delivery screenshots
1127
+
1128
+ Scheduled deliveries (Slack/email) render the app inside a tall **1400×4000** iframe and screenshot from the top down to the deepest visible element. If the app stretches to fill that height — via viewport-relative heights or full-bleed decorative backgrounds — the delivered image is mostly empty space around a small island of content.
1129
+
1130
+
1131
+ **Mark the content extent with `data-screenshot-bounds`.** Put the attribute on your top-level themed wrapper — the same element that carries the background and bottom gutter from the rule above. The delivery pipeline uses that element's bottom edge as the image height and crops anything below it. Without the attribute it falls back to a best-effort measurement that the patterns below easily inflate, so set it.
1132
+
1133
+ ```tsx
1134
+ <div data-screenshot-bounds className="dark bg-background p-8 pb-12">
1135
+
1136
+ <Header />
1137
+ <ChartGrid />
1138
+ <Footer />
1139
+ </div>
1140
+ ```
1141
+
1142
+ Then keep the layout from inflating the canvas:
1143
+
1144
+ - **No viewport-relative heights on root or near-root containers** — avoid `min-h-screen`, `h-screen`, `h-[100vh]`, or `min-height: 100vh` on the page wrapper; let it size to its content. A nested component that genuinely needs a fixed height (e.g. a resizable panel) may still use one, as long as it lives inside `data-screenshot-bounds`.
1145
+ - **Don't vertically center variable-height content in a viewport-height parent** — `h-screen flex items-center justify-center` around a short widget parks it in the middle of a 4000px-tall screenshot.
1146
+ - **Keep decorative backgrounds within the content area** — themed sprites, gradients, particle layers, and landscape art paint on the `data-screenshot-bounds` element itself, never on a separate 100vh layer that extends past the content.
1147
+
1148
+ Avoid — each of these inflates the screenshot:
1149
+
1150
+ ```tsx
1151
+ // min-h-screen blows up to 4000px in the delivery iframe
1152
+ <div className="min-h-screen bg-blue-400">…</div>
1153
+
1154
+ // a short widget centered in 100vh ends up mid-screenshot
1155
+ <div className="h-screen flex items-center justify-center"><SmallWidget /></div>
1156
+
1157
+ // a decorative background filling 100vh past the real content
1158
+ <div className="h-screen bg-[url('/sky.png')] bg-cover"><Dashboard /></div>
1159
+ ```
1160
+
1126
1161
  ### Organization themes
1127
1162
 
1128
1163
  When `/app/src/design/` exists in the workspace, the organization has supplied brand assets that **must** drive the visual direction. The pipeline copies them in at build time; you do not create them. Treat their contents as inviolable: read and reference, never edit or duplicate.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightdash/cli",
3
- "version": "0.3431.0",
3
+ "version": "0.3433.0",
4
4
  "description": "Lightdash CLI tool",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,8 +41,8 @@
41
41
  "unique-names-generator": "4.7.1",
42
42
  "uuid": "11.1.1",
43
43
  "yaml": "2.8.3",
44
- "@lightdash/common": "0.3431.0",
45
- "@lightdash/warehouses": "0.3431.0"
44
+ "@lightdash/common": "0.3433.0",
45
+ "@lightdash/warehouses": "0.3433.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/inquirer": "8.2.4",