Use this plugin when the user wants a premium precision-farming / agritech landing page: dark/light alternating sections, a fullscreen hero video background, an animated stats grid, an infinite logo marquee, and image-backed service cards. Invoke for 'farming landing page', 'agritech marketing site', 'precision agriculture site', or when the user references the Acreage Farming template.
Scanned 9/5/2026
Install to Claude Code
npx -y skills add jhy0285/monofield --skill acreage-farming --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Acreage Farming?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/jhy0285-acreage-farming)More formats (shields.io, HTML) on the badges page.
---
name: acreage-farming
description: "Use this plugin when the user wants a premium precision-farming / agritech landing page: dark/light alternating sections, a fullscreen hero video background, an animated stats grid, an infinite logo marquee, and image-backed service cards. Invoke for 'farming landing page', 'agritech marketing site', 'precision agriculture site', or when the user references the Acreage Farming template."
version: 0.1.0
od:
mode: prototype
surface: web
scenario: design
preview:
type: html
entry: example.html
design_system:
requires: false
---
# Acreage Farming — Precision Agriculture Landing Page
Produce a premium **precision-farming landing page** with **dark/light alternating sections**, a **fullscreen hero video background**, an **animated stats grid**, an **infinite logo marquee**, and **image-backed service cards**. A complete, rendered reference implementation ships beside this skill at `example.html` — **start from it**. Copy `example.html`, then adjust copy and data; do not rewrite the CSS or invent a new visual language. The seed already encodes the exact tokens, layout, reveal animation, marquee, and responsive behavior below.
This is the authoritative build brief. Follow it exactly — the named colors, radii, fonts, and animations are locked.
## Stack
- Default output: a single self-contained HTML file (the `example.html` seed). It already includes everything inline.
- If the user explicitly asks for a **React + TypeScript + Vite + Tailwind** project, port the seed faithfully: same tokens, same section order, same markup structure. Map vanilla features back up: the `IntersectionObserver` reveal → Framer-Motion `whileInView`; the passive scroll listener that toggles `.scrolled` on the nav → `useScroll`; the CSS marquee → a Framer-Motion loop or duplicated-track CSS keyframe. Do not change the design while porting.
- **Motion loading (locked).** If you emit a single self-contained inline-JSX file instead of the Vite project, Motion's React hooks (`useScroll`, `useTransform`, `useAnimationFrame`, …) exist only in the **React** UMD build: load `<script src="https://unpkg.com/framer-motion@11.11.13/dist/framer-motion.js"></script>` and read them off `window.Motion` — never the vanilla `https://unpkg.com/motion@.../dist/motion.js` DOM bundle, which lacks `useScroll` and renders a blank page. (The Vite project imports from npm and is unaffected.)
## Fonts
Load from Google Fonts: **Manrope** (weights 400, 500, 600, 700, 800) for UI/body and **Instrument Serif** (regular + italic) for editorial accent words. Manrope is the default body face; Instrument Serif italic is used only for the one or two emphasized words in the hero headline (`<span class="serif italic">`).
## CSS Variables (`:root`) — locked
```
--bg-dark: #0d120e; --bg-darker: #080b09;
--bg-light: #f3f0e7; --bg-cream: #e9e4d6;
--green: #6b8e3a; --green-bright: #9ec94a; --green-deep: #2e3b22;
--soil: #c9a06a;
--text-light: #f3f0e7; --text-muted-light: rgba(243,240,231,0.6);
--text-dark: #1a1f17; --text-muted-dark: rgba(26,31,23,0.55);
--radius: 28px; --radius-lg: 40px;
--ease: cubic-bezier(0.22, 1, 0.36, 1);
--transition: all 0.5s cubic-bezier(0.22, 1, 0.36, 1);
```
Body: Manrope, `background: var(--bg-dark)`, `color: var(--text-light)`, `overflow-x: hidden`. `html { scroll-behavior: smooth }`. The page is **dark by default**; only the stats section uses the light/cream palette.
## Sections (in order)
### 1. Nav (fixed)
Pill that shrinks on scroll. At top: transparent, max-width 1240px, padding `22px 32px`. After `scrollY > 40` it gets `.scrolled`: floats inward (`top:14px; left:16px; right:16px`), gains `rgba(8,11,9,0.72)` + `backdrop-filter: blur(14px)`, a 1px `rgba(243,240,231,0.08)` border, and `border-radius:100px`. Left: brand = a `30px` gradient-mark (`linear-gradient(135deg, var(--green-bright), var(--green))`) holding an inline wheat/sprout SVG + "Acreage". Center: nav-links (Platform, Data, Services, Pricing), hidden ≤980px. Right: green-bright pill CTA "Book a demo".
### 2. Hero (fullscreen, video background)
`min-height:100vh`, content bottom-aligned. A `<video autoplay muted loop playsinline>` fills `inset:0` with `object-fit:cover` and a poster still. A gradient `::after` (top transparent → bottom `rgba(8,11,9,0.92)`) keeps text legible. Headline: `clamp(3rem, 8vw, 6.5rem)`, weight 800, `letter-spacing:-0.03em`, with one word in Instrument Serif italic ("every"). Sub-paragraph in `--text-muted-light`. Actions: green-bright primary button + ghost outline "Watch the film". Below: a hero-meta row of three big stats (`2.4M+ acres`, `31% yield lift`, `−40% water`).
- Hero video: `https://plugin-assets.open-design.ai/plugins/aerocore/23211-720-e83442.mp4` (large stable CDN — keep as remote URL). Poster: an Unsplash aerial-field still (remote URL OK).
### 3. Logo marquee
Full-width band on `--bg-darker`, top+bottom hairline borders. Centered uppercase label, then an **infinite horizontal marquee**: a `.marquee-track` of duplicated partner logos animated `translateX(0 → -50%)` over `32s linear infinite`, paused on hover, edge-masked with a `linear-gradient` CSS mask. The track is built in JS by duplicating an 8-name partner array, each rendered as an inline leaf SVG + name. Logos are text + inline SVG only — **no remote logo images**.
### 4. Stats (light section)
`.section-light` flips to the cream palette (`--bg-light` bg, `--text-dark` text, green eyebrow). Header row: eyebrow + big `h2` on the left, descriptive paragraph on the right. Then a **4-column stat grid** (`repeat(4,1fr)`, gap 20px). Each `.stat-card` is white, rounded `--radius`, min-height 220px, with an icon chip (top), a big `stat-num` (`3rem`, weight 800, with a smaller `.unit` span for %/k) pushed to the bottom via `margin-top:auto`, and a label. **The first card has `.accent`** → `--green-deep` background, light text, tinted icon chip. Hover lifts cards `translateY(-6px)` with a soft shadow. Icons are inline SVG (refresh-cycle, trend-up, droplet, clock). Values: `98%` coverage, `31%` yield, `40%` water, `11k` autonomous hours.
### 5. Services (dark, image cards)
Back to `--bg-dark`. Centered head (eyebrow + h2 + paragraph). **3-column grid** of `.svc-card`, each `min-height:420px`, `--radius-lg`, an absolutely-positioned `.svc-bg` image that scales `1.06` on hover, a bottom gradient scrim, and bottom-aligned body: a green-tinted `.svc-tag` chip, `h3`, paragraph, and a green-bright "arrow" link. Three cards: **Sensing** (satellite & drone scouting), **Deciding** (variable-rate prescriptions), **Acting** (autonomous machinery). Card background images are Unsplash farm stills (remote URLs OK — large stable CDN).
### 6. CTA
Band on `--bg-darker` containing a rounded-48px panel with a `linear-gradient(135deg, var(--green-deep), #1c2616)` fill, a green radial glow `::before`, eyebrow, huge headline ("Put your fields on autopilot."), one line of copy, and a green-bright primary button.
### 7. Footer
`--bg-darker`, top hairline. Left: brand mark + one-line mission. Right: three link columns (Platform / Company / Resources). Bottom bar: copyright + legal links, separated by a hairline.
## Animations
- **Reveal**: every `.reveal` element starts `opacity:0; translateY(34px)` and transitions to visible over `0.9s var(--ease)` when it enters the viewport. Implemented with one `IntersectionObserver` (`threshold:0.15`, `rootMargin:'0px 0px -8% 0px'`, unobserve after firing). A small stagger is applied via `transitionDelay = (index % 4) * 0.07s`. In a React port this is `whileInView` + `viewport={{ once: true }}`.
- **Nav shrink**: passive `scroll` listener toggles `.scrolled` at `scrollY > 40`.
- **Marquee**: `@keyframes scroll-x { translateX(0) → translateX(-50%) }`, `32s linear infinite`, `animation-play-state: paused` on `:hover`.
- **Hover**: buttons lift `translateY(-2/-3px)` with green glow shadow; stat-cards and svc-cards lift `translateY(-6px)`; service background images scale `1.06` over `0.8s`.
- All interactive transitions use `--transition` (`0.5s cubic-bezier(0.22, 1, 0.36, 1)`).
## Assets / hosts
- **Inline (do not fetch remote):** all icons and partner logos are **inline SVG**. The brand mark, stat icons, service arrows, and marquee leaf are inline SVG. There are **no avatar images** in this template.
- **Keep remote (large stable CDN):** the hero `.mp4` on `cdn.coverr.co`, and the Unsplash hero poster + service-card stills on `images.unsplash.com`. These may stay as URLs.
- **Never** introduce `i.pravatar.cc`, `api.dicebear.com`, or any remote avatar host — none are needed here and they 403 in the sandbox.
## Responsive
- ≤980px: stats grid → 2 columns, services grid → 1 column, nav-links hidden.
- ≤620px: `.wrap` padding `0 20px`, stats grid → 1 column, tighter hero-meta gap, CTA panel padding reduced.
## Color Rules — hard
Earthy agritech palette only: deep greens (`--green`, `--green-bright #9ec94a`, `--green-deep`), near-black greens (`--bg-dark #0d120e`, `--bg-darker #080b09`), warm cream/off-white (`--bg-light #f3f0e7`, `--bg-cream`), and a soil tan accent (`--soil #c9a06a`). **`--green-bright #9ec94a` is the locked accent** — do not substitute blue/teal/purple. Light text on dark, dark text on cream; all contrast-safe.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!