Skip to content
zeroslop.design

ecolinearstudio.com

Ecolinearstudio

Awwwards listed website captured as a design reference.

Full-page screenshot of the Ecolinearstudio website

Source

ecolinearstudio.com

Awwwards listed website captured as a design reference.

Status

Draft

Captured

awwwards

Version
20261005T210625Z-b552708b
Views
1440 × 900, 390 × 664
Format
0 errors, 0 warnings

DESIGN.md · Ecolinearstudio

Download
---
version: "alpha"
name: "Ecolinearstudio"
description: "Reference design from a website capture. Computed values and representative element roles remain draft."
x-zsd:
  profile: "0.1"
  kind: "reference"
  source:
    method: "generated"
    url: "https://ecolinearstudio.com/"
    captured: "2026-10-05"
  review:
    status: "draft"
  unresolved:
    - "Role assignments use representative DOM elements and need visual inspection."
    - "Audience, design rationale, alternate routes, and theme coverage need inspection."
    - "Interaction states, keyboard behavior, and reduced motion need direct inspection."
    - "Color counts and font declarations do not establish semantic roles."
  layout:
    desktop-viewport: "1440px"
    desktop-content-width: "1440px"
    desktop-display: "block"
    mobile-viewport: "390px"
    mobile-content-width: "390px"
  evidence:
    method: "computed-style"
    scope: "Computed styles and representative visible elements. No interaction-state or visual fidelity review."
    selectors:
      colors.primary: "html > body > div:nth-of-type(3) > div:nth-of-type(2) > div > main > div:nth-of-type(2) > section:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(3) > span > a > button"
      colors.on-primary: "html > body > div:nth-of-type(3) > div:nth-of-type(2) > div > main > div:nth-of-type(2) > section:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(3) > span > a > button"
      colors.surface: "html > body"
      colors.on-surface: "html > body > div:nth-of-type(3) > div:nth-of-type(2) > div > main > div:nth-of-type(1) > div > div > p"
      typography.headline-lg: "html > body > div:nth-of-type(3) > div:nth-of-type(2) > div > main > div:nth-of-type(1) > div > div > h1"
      typography.body-md: "html > body > div:nth-of-type(3) > div:nth-of-type(2) > div > main > div:nth-of-type(1) > div > div > p"
      typography.label-md: "html > body > div:nth-of-type(3) > div:nth-of-type(2) > div > main > div:nth-of-type(2) > section:nth-of-type(4) > div:nth-of-type(1) > div:nth-of-type(3) > span > a > button"
      typography.headline-md: "html > body > div:nth-of-type(3) > div:nth-of-type(2) > div > main > div:nth-of-type(2) > section:nth-of-type(2) > div > div:nth-of-type(1) > div > h2"
    viewports:
      - {"width": 1440, "height": 900}
      - {"width": 390, "height": 664}
    mobile-typography:
      headline:
        fontFamily: "Montserrat, \"Montserrat Fallback\", Montserrat, -apple-system, \"system-ui\", \"Segoe UI\", sans-serif"
        fontSize: "32px"
        fontWeight: 700
        lineHeight: 1.2188
        letterSpacing: "0px"
      body:
        fontFamily: "Montserrat, \"Montserrat Fallback\", Montserrat, -apple-system, \"system-ui\", \"Segoe UI\", sans-serif"
        fontSize: "16px"
        fontWeight: 400
        lineHeight: 1.1875
        letterSpacing: "0px"
      action:
        fontFamily: "Montserrat, \"Montserrat Fallback\", Montserrat, -apple-system, \"system-ui\", \"Segoe UI\", sans-serif"
        fontSize: "13.3333px"
        fontWeight: 400
        lineHeight: 1.2
        letterSpacing: "0px"
    imagery:
      images: 61
      canvases: 0
      svg: 18
    action-label: "Contact Us"
  motion:
    action-transition:
      duration: "0.2s, 0.6s, 0.6s"
      timing: "cubic-bezier(0.16, 1, 0.3, 1), cubic-bezier(0.4, 0, 0.2, 1), cubic-bezier(0.4, 0, 0.2, 1)"
  elevation:
    action-shadow: "none"
colors:
  primary: "#EDEDED"
  on-primary: "#171717"
  surface: "#EDEDED"
  on-surface: "#000000"
typography:
  headline-lg:
    fontFamily: "Montserrat, \"Montserrat Fallback\", Montserrat, -apple-system, \"system-ui\", \"Segoe UI\", sans-serif"
    fontSize: "32px"
    fontWeight: 700
    lineHeight: 1.2188
    letterSpacing: "0px"
  body-md:
    fontFamily: "Montserrat, \"Montserrat Fallback\", Montserrat, -apple-system, \"system-ui\", \"Segoe UI\", sans-serif"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.1875
    letterSpacing: "0px"
  label-md:
    fontFamily: "Montserrat, \"Montserrat Fallback\", Montserrat, -apple-system, \"system-ui\", \"Segoe UI\", sans-serif"
    fontSize: "13.3333px"
    fontWeight: 400
    lineHeight: 1.2
    letterSpacing: "0px"
  headline-md:
    fontFamily: "Montserrat, \"Montserrat Fallback\", Montserrat, -apple-system, \"system-ui\", \"Segoe UI\", sans-serif"
    fontSize: "18px"
    fontWeight: 500
    lineHeight: 1.2222
    letterSpacing: "0.9px"
spacing:
  space-1: "1.03206px"
  space-2: "2.48px"
  space-3: "3.5px"
  space-4: "4px"
  space-5: "7.44px"
  space-6: "8px"
  space-7: "16px"
  space-8: "24px"
  space-9: "32px"
  space-10: "40px"
  space-11: "48px"
  space-12: "64px"
  action-x: "14px"
  action-y: "0px"
  control-height: "64px"
rounded:
  action: "0px"
components:
  action-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-primary}"
    typography: "{typography.label-md}"
    height: "{spacing.control-height}"
    rounded: "{rounded.action}"
---

# Ecolinearstudio

## Overview

A reference record of the captured page. Values come from visible elements and computed styles at the recorded viewports.
Role assignments remain draft. Compare the record with the source screenshots before use.

## Colors

- `primary`: Use for the sampled action surface.
- `on-primary`: Use for text on the sampled action.
- `surface`: Use for the observed page surface.
- `on-surface`: Use for the sampled body text.

## Typography

- `headline-lg`: Use for the sampled page title.
- `body-md`: Use for the sampled body text.
- `label-md`: Use for the sampled action label.
- `headline-md`: Use for the sampled section title.

## Layout

`x-zsd.layout.desktop-content-width` records the sampled main element width.
`x-zsd.layout.desktop-viewport` records its viewport.
Spacing tokens record observed intervals. They do not establish an approved spacing scale.

### Responsive behavior

Compare `x-zsd.layout.mobile-content-width` at `x-zsd.layout.mobile-viewport` with the desktop observation.
Intermediate widths, overflow rules, and layout breakpoints need direct inspection.

## Elevation & Depth

`x-zsd.elevation.action-shadow` records the sampled action shadow. Other depth rules need direct inspection.

## Shapes

- `action`: Use for the sampled action radius.

## Components

### Action

Use `action-primary` for the representative action. Use `action-x` and `action-y` for its horizontal and vertical padding.
Use `control-height` for its observed height.
Hover, focus, pressed, disabled, loading, empty, error, and success states need direct inspection.

## Do's and Don'ts

- Do keep the source URL and capture date with this reference.
- Do compare representative roles with the source screenshots.
- Do keep missing behavior explicit.
- Do not substitute the plugin starter values.
- Do not treat a format check as visual approval.
- Do not infer interaction behavior from static screenshots.

## Motion

`x-zsd.motion.action-transition` records the sampled action transition. Animation timing and reduced motion need direct inspection.

## Iconography

Icon sources and stroke rules need direct inspection.

## Imagery

`x-zsd.evidence.imagery` records counts for images and graphics. Image treatment and crop rules need direct inspection.

## Accessibility

Token contrast checks apply to the sampled pairs. Keyboard paths, labels, and screen reader behavior need direct inspection.
This reference does not establish accessibility conformance.