{
  "contract": "aesthetary.record/1.0",
  "record_spec": "1.1.0",
  "semantics": {
    "vocabulary": "aesthetary.public-evidence/1.0",
    "definitions": "vocabulary.json"
  },
  "slug": "web-1-0",
  "name": "Web 1.0",
  "identity": {
    "definition": {
      "state": "resolved",
      "text": "Tiled backgrounds, animated GIFs, centred tables, font tags"
    },
    "scope": {
      "state": "resolved",
      "text": "The visual register of hand-authored pages from the Web 1.0 stage (roughly 1989–2004): table layout, CENTER, tiled BODY backgrounds, font tags, GIF ornament, as Aesthetary's language drawn from W3C specifications and dated period pages.",
      "ruling": "D0-1"
    },
    "aliases": [
      "GeoCities",
      "early internet",
      "old web",
      "tiled background"
    ],
    "layer_verdict": {
      "state": "ruled",
      "value": "belongs_at_another_layer",
      "ruling": "D0-1"
    }
  },
  "native_medium": {
    "state": "resolved",
    "value": [
      "screen"
    ],
    "evidence": {
      "quote": "visible HTML tables",
      "field": "gestalt.recognition_signature"
    },
    "ruling": "freeze ruling 1 (2026-09-27)"
  },
  "research": {
    "line": "partly_sourced",
    "text": "Partly sourced",
    "sentence": "16 sources attached. 5 claims graded by our research brief, no source attached."
  },
  "areas": [
    {
      "area": "layout",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "typography",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "color",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "imagery",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "surface",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "interface",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "motion",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "motif",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "technique",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "form",
      "state": "owed",
      "owed": "research",
      "why": "No source has been examined for this yet."
    },
    {
      "area": "hierarchy",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "density",
      "state": "resolved",
      "canon": "not_canonically_specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Not specified by the source"
      }
    }
  ],
  "claims": [
    {
      "id": "layout-3",
      "text": "Composition: nested tables; centred; 640×480.",
      "role": "rule",
      "area": "layout",
      "basis": "documentary",
      "support": {
        "state": "observed_instances",
        "for": [
          "05NTGDQM4F0YMW9Y28EMBZW337",
          "7KBFZ21H2ZEPS6PE6N38SEP02V",
          "5HRAJY2JES4SPM96C2PPWNKDMX",
          "2BRVW06VT6W6C59T1NN2JBZN4S",
          "2Y1RQA3NP39C4PBM3P0QXGP4N9",
          "6Y7ATRKHMVSVS6QVMQTTWHCWA4"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "seen",
        "text": "Seen in the work"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "typography-4",
      "text": "Typography: size and face set with the FONT tag; where no face is set, the browser default.",
      "role": "rule",
      "area": "typography",
      "basis": "documentary",
      "support": {
        "state": "observed_instances",
        "for": [
          "05NTGDQM4F0YMW9Y28EMBZW337",
          "7KBFZ21H2ZEPS6PE6N38SEP02V",
          "5HRAJY2JES4SPM96C2PPWNKDMX",
          "2BRVW06VT6W6C59T1NN2JBZN4S"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "seen",
        "text": "Seen in the work"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "hierarchy-13",
      "text": "is unusually literal: rank comes from the heading level tag and from horizontal rules dividing sections. Not from scale chosen by a designer — from <h1> through <h3> and <hr>. That is a real instruction and a genuinely different way to build a page.",
      "role": "rule",
      "area": "hierarchy",
      "basis": "documentary",
      "support": {
        "state": "graded_unlinked",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "graded",
        "mark": "none",
        "text": "Graded by our research brief · No source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "color-5",
      "text": "Colour: set on the BODY tag — a tiled background image or a flat BGCOLOR ground, with text and link colours either left at the browser default or set per page.",
      "role": "rule",
      "area": "color",
      "basis": "documentary",
      "support": {
        "state": "observed_instances",
        "for": [
          "05NTGDQM4F0YMW9Y28EMBZW337",
          "7KBFZ21H2ZEPS6PE6N38SEP02V",
          "5HRAJY2JES4SPM96C2PPWNKDMX",
          "2BRVW06VT6W6C59T1NN2JBZN4S",
          "2Y1RQA3NP39C4PBM3P0QXGP4N9",
          "6Y7ATRKHMVSVS6QVMQTTWHCWA4"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "seen",
        "text": "Seen in the work"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "imagery-7",
      "text": "Imagery: animated GIF; low-bit-depth.",
      "role": "rule",
      "area": "imagery",
      "basis": "documentary",
      "support": {
        "state": "graded_unlinked",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "graded",
        "mark": "none",
        "text": "Graded by our research brief · No source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "surface-8",
      "text": "Form / motif / surface / technique: tiled texture; hard edges.",
      "role": "rule",
      "area": null,
      "basis": "documentary",
      "support": {
        "state": "graded_unlinked",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "graded",
        "mark": "none",
        "text": "Graded by our research brief · No source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "motion-14",
      "text": "Only looping GIF animation, running continuously and independent of scroll or interaction. Motion here is never triggered and never eases. It just runs.",
      "role": "rule",
      "area": "motion",
      "basis": "documentary",
      "support": {
        "state": "graded_unlinked",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "graded",
        "mark": "none",
        "text": "Graded by our research brief · No source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "w1-r1",
      "text": "The register is a period constraint, not a style: fixed-width tables, system fonts, tiled backgrounds and hand-authored markup are what the tools of the time produced.",
      "role": "context",
      "area": null,
      "basis": "documentary",
      "support": {
        "state": "graded_unlinked",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "graded",
        "mark": "none",
        "text": "Graded by our research brief · No source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "w1-motif",
      "text": "A tiled background image is the recurring surface device: space tiles first, then paper, glass, water and wood sets passed around in free collections.",
      "role": "rule",
      "area": "motif",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "0398K7QWNF9YVY78GPTAJAWH3R",
          "5WCHRP9GHVET51HJGPDYCW7KJA",
          "05NTGDQM4F0YMW9Y28EMBZW337",
          "7KBFZ21H2ZEPS6PE6N38SEP02V",
          "2Y1RQA3NP39C4PBM3P0QXGP4N9",
          "6Y7ATRKHMVSVS6QVMQTTWHCWA4",
          "5XKG0YE6Z7K0JVN1C17PYB999S"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent",
      "text": "A page is a document that someone made by hand, and the tools available are a document markup language and a slow connection. Nothing is laid out properly because nothing can be; every layout decision is a workaround for a missing capability.",
      "role": "argument",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "gestalt",
      "text": "Content laid out in visible HTML tables against a tiled background image, with link colours left at the browser's blue and purple or set once on the BODY tag, animated GIFs used as ornament and as status, and the page's own incompleteness announced rather than hidden. The diagnostic condition is that every visual device is a workaround: the table is there because there is no layout language, the spacer GIF because there is no margin, the font tag because there is no stylesheet. Web Brutalism reproduces the plainness on purpose and from a position of choice; this had no choice.",
      "role": "diagnostic",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "observed_instances",
        "for": [
          "05NTGDQM4F0YMW9Y28EMBZW337",
          "7KBFZ21H2ZEPS6PE6N38SEP02V",
          "5HRAJY2JES4SPM96C2PPWNKDMX",
          "2BRVW06VT6W6C59T1NN2JBZN4S",
          "2Y1RQA3NP39C4PBM3P0QXGP4N9",
          "6Y7ATRKHMVSVS6QVMQTTWHCWA4"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-1",
      "text": "No CSS-era layout (flexbox, grid, custom properties).",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-3",
      "text": "No responsive behaviour.",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-4",
      "text": "No easing, no scroll-triggered anything.",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-5",
      "text": "No intentional-looking minimalism.",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-6",
      "text": "Against Web Brutalism: compulsion versus choice. Web Brutalism has CSS and declines it; this had no CSS to decline. The visual overlap is high and the intent is opposite. Against Utilitarian: Utilitarian is contemporary and fast on purpose; this is slow and unstyled by force. Anti-signature: any evidence of deliberate restraint turns it into Web Brutalism. Modern system fonts turn it into Utilitarian.",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent-negation",
      "text": "Refuses the idea that a page should be designed rather than authored, and refuses any layout that the markup cannot express directly.",
      "role": "argument",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent-cost",
      "text": "Costs accepted: Visual control; Consistency between browsers; Any notion of a designer",
      "role": "argument",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent-audience",
      "text": "Audience: A visitor on dial-up at 640×480, who will wait for the page and expects to be told it is unfinished.",
      "role": "argument",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "gestalt-boundary",
      "text": "Against Web Brutalism: compulsion versus choice. Web Brutalism has CSS and declines it; this had no CSS to decline. The visual overlap is high and the intent is opposite. Against Utilitarian: Utilitarian is contemporary and fast on purpose; this is slow and unstyled by force. Anti-signature: any evidence of deliberate restraint turns it into Web Brutalism. Modern system fonts turn it into Utilitarian.",
      "role": "boundary",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "v1-distinguishing",
      "text": "Incompetence preserved deliberately; the opposite of Utilitarian's competent plainness",
      "role": "diagnostic",
      "area": null,
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "v1-era",
      "text": "Era: 1990s",
      "role": "context",
      "area": null,
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "v1-mood",
      "text": "Mood: playful, nostalgic",
      "role": "context",
      "area": null,
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "v1-cross-library",
      "text": "Cross-library: Imagery: animated GIF · Layout: centred tables",
      "role": "context",
      "area": null,
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "surface-8.surface",
      "text": "Surface: tiled texture",
      "role": "rule",
      "area": "surface",
      "basis": "documentary",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "none",
        "text": "No source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "declared-freedom",
      "text": "Declared freedom: page subject.",
      "role": "context",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "w1-r1.technique",
      "text": "hand-authored markup",
      "role": "context",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "none",
        "text": "No source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-1",
      "text": "Bordered tables were commonly rendered in bas-relief: a bevelled raised outer border with cells inset, a rendering convention described by HTML 3.2 rather than drawn by the author.",
      "role": "rule",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "tables with BORDER set; without it the border is suppressed"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-2",
      "text": "The default horizontal rule is a two-colour 'groove'; a flat rule has to be requested with NOSHADE.",
      "role": "rule",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "HTML 3.2 and 4.01"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-3",
      "text": "A linked image is generally shown with a coloured border, typically blue.",
      "role": "rule",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-4",
      "text": "Form furniture is the browser's own controls plus image submit buttons; forms were often sent by email.",
      "role": "context",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W1",
          "kcc-web-1-0-W5"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-5",
      "text": "Amateur pages replaced browser and markup furniture with GIFs from free collections: their own back/forward buttons, image bullets instead of list markers, 88x31 promotional buttons.",
      "role": "diagnostic",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W7",
          "kcc-web-1-0-W5"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "amateur/vernacular pages specifically"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:technique-1",
      "text": "Some pages were built using Server Side Includes or CGI.",
      "role": "context",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W5"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "encyclopedia support"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:technique-2",
      "text": "Amateur pages were built modularly from free graphics collections, and elements were lifted from other pages by reading their source code.",
      "role": "rule",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W7",
          "kcc-web-1-0-W10",
          "kcc-web-1-0-W11"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "the vernacular/amateur web, per Lialina and period collection pages"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:technique-3",
      "text": "Collection makers distributed page sets and invited users unfamiliar with them to copy their HTML source.",
      "role": "diagnostic",
      "area": "technique",
      "basis": "observed",
      "support": {
        "state": "observed_instances",
        "for": [
          "kcc-web-1-0-W11",
          "kcc-web-1-0-W9"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "seen",
        "text": "Seen in the work"
      },
      "scope": {
        "practice": "period background-set pages"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:technique-4",
      "text": "Professional sites broke with this: designed in Photoshop and sliced into pieces, a method Lialina contrasts with amateur modular construction.",
      "role": "negative",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W7",
          "kcc-web-1-0-W6"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "boundary with professional late-1990s web design"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:form-1",
      "text": "A web page has no three-dimensional organisation; the simulated relief it shows (bevelled tables, grooved rules) is interface rendering, filed under interface.",
      "role": "context",
      "area": "form",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-web-1-0-W1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "dcc:failure-2",
      "text": "No link colours restyled through a stylesheet: where a page sets them, it sets them once on the BODY tag.",
      "role": "negative",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [
        "color-5"
      ],
      "ruling": null
    }
  ],
  "web_translations": [],
  "standard_practice": [],
  "sources": [
    {
      "id": "05NTGDQM4F0YMW9Y28EMBZW337",
      "kind": "source",
      "title": "Sonya's Background Set 81 (capture 1999-11-29)",
      "url": "https://web.archive.org/web/19991129004024/http://www.geocities.com:80/Wellesley/9402/bgset81.html",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "7KBFZ21H2ZEPS6PE6N38SEP02V",
      "kind": "work",
      "title": "Sonya's Background Set 81 (GeoCities)",
      "url": "https://web.archive.org/web/19991129004024/http://www.geocities.com:80/Wellesley/9402/bgset81.html",
      "status": "verified",
      "retrieval": "unknown"
    },
    {
      "id": "5HRAJY2JES4SPM96C2PPWNKDMX",
      "kind": "source",
      "title": "Patriotic Graphics (capture 2000-03-01)",
      "url": "https://web.archive.org/web/20000301194247/http://www.geocities.com/Heartland/Plains/4601/patriotic.html",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "2BRVW06VT6W6C59T1NN2JBZN4S",
      "kind": "work",
      "title": "Patriotic Graphics (GeoCities)",
      "url": "https://web.archive.org/web/20000301194247/http://www.geocities.com/Heartland/Plains/4601/patriotic.html",
      "status": "verified",
      "retrieval": "unknown"
    },
    {
      "id": "2Y1RQA3NP39C4PBM3P0QXGP4N9",
      "kind": "source",
      "title": "Berry Babies (capture 2003-03-10)",
      "url": "https://web.archive.org/web/20030310061326/http://www.tedi.net/berry.html",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "6Y7ATRKHMVSVS6QVMQTTWHCWA4",
      "kind": "work",
      "title": "Berry Babies (tedi.net)",
      "url": "https://web.archive.org/web/20030310061326/http://www.tedi.net/berry.html",
      "status": "verified",
      "retrieval": "unknown"
    },
    {
      "id": "5XKG0YE6Z7K0JVN1C17PYB999S",
      "kind": "source",
      "title": "HTML 3.2 Reference Specification, W3C Recommendation 14-Jan-1997",
      "url": "https://www.w3.org/TR/2018/SPSD-html32-20180315/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "0398K7QWNF9YVY78GPTAJAWH3R",
      "kind": "source",
      "title": "A Vernacular Web (2005): The Starry Night Background",
      "url": "http://art.teleportacia.org/observation/vernacular/stars/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "5WCHRP9GHVET51HJGPDYCW7KJA",
      "kind": "source",
      "title": "A Vernacular Web (2005): Free Collections of Web Elements",
      "url": "http://art.teleportacia.org/observation/vernacular/collections/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-web-1-0-W1",
      "kind": "source",
      "title": "HTML 3.2 Reference Specification, W3C Recommendation 14-Jan-1997",
      "url": "https://www.w3.org/TR/2018/SPSD-html32-20180315/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-web-1-0-W10",
      "kind": "source",
      "title": "Patriotic Graphics (capture 2000-03-01)",
      "url": "https://web.archive.org/web/20000301194247/http://www.geocities.com/Heartland/Plains/4601/patriotic.html",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-web-1-0-W11",
      "kind": "source",
      "title": "Berry Babies (capture 2003-03-10)",
      "url": "https://web.archive.org/web/20030310061326/http://www.tedi.net/berry.html",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-web-1-0-W5",
      "kind": "source",
      "title": "Web 2.0",
      "url": "https://en.wikipedia.org/wiki/Web_2.0",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-web-1-0-W6",
      "kind": "source",
      "title": "A Vernacular Web: The Indigenous and the Barbarians",
      "url": "http://art.teleportacia.org/observation/vernacular/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-web-1-0-W7",
      "kind": "source",
      "title": "A Vernacular Web: Free Collections of Web Elements",
      "url": "http://art.teleportacia.org/observation/vernacular/collections/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-web-1-0-W9",
      "kind": "source",
      "title": "Sonya's Background Set 81 (capture 1999-11-29)",
      "url": "https://web.archive.org/web/19991129004024/http://www.geocities.com:80/Wellesley/9402/bgset81.html",
      "status": "verified",
      "retrieval": "retrieved"
    }
  ],
  "relations": [
    {
      "slug": "utilitarian",
      "kind": "confused_with",
      "status": "proposed"
    },
    {
      "slug": "arcade",
      "kind": "confused_with",
      "status": "proposed"
    }
  ],
  "open": [],
  "aesthetary_build": {
    "note": "Values Aesthetary built with. Not claims about the Aesthetic.",
    "measured": {
      "note": "Read from the page's own stylesheet at build time. Values Aesthetary built with, not claims about the Aesthetic.",
      "slug": "web-1-0",
      "stylesheet": "web-1-0.css",
      "bytes": 4498,
      "colours": [
        "#B8B8B8",
        "#B4B4B4",
        "#CFCFCF",
        "#999999",
        "#000000",
        "#808080",
        "#FFFFFF",
        "#B00000",
        "#E8C400",
        "#1A1A1A",
        "#C0C0C0",
        "#555555"
      ],
      "radii": [],
      "fontSizes": [
        "0.8em",
        "0.9rem",
        "1rem",
        "1.5em",
        "2em"
      ],
      "faces": [
        "Times New Roman",
        "Times",
        "Courier New"
      ],
      "tokens": [],
      "animates": true,
      "absent": [
        "no box-shadow anywhere",
        "no rounded corner anywhere",
        "no text-shadow anywhere"
      ]
    },
    "design_grammar": {
      "note": "Aesthetary's translation of this record into web primitives. Every value carries a basis: \"record\" is a rule the record holds (cites names it), \"translation\" is our choice derived from the cited rules (because says how), \"not_recorded\" means the record is silent (guidance says what to do). A \"record\" value restates a claim the record holds; its standing is that claim's own kind in the record (a requirement, period practice, modern practice, or our interpretation), which the cited rule states. \"record\" does not by itself make a value a property of the language.",
      "slug": "web-1-0",
      "version": "2026-09-29",
      "summary": "A starting grammar for a website in Web 1.0: a fixed 640-pixel canvas of nested, centred tables on a tiled ground, faces set with the FONT tag or left to the browser, headings and rules as the whole hierarchy, the browser’s own controls, and GIFs that loop and never ease.",
      "color": {
        "roles": [
          {
            "role": "tile",
            "value": "#C8C8C8",
            "use": "The tiled BODY background: a coarse grey weave.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5",
              "token_rule:w1-motif"
            ]
          },
          {
            "role": "cell",
            "value": "#FFFFFF",
            "use": "The content cell’s BGCOLOR.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "chrome",
            "value": "#C0C0C0",
            "contrast": "11.5:1 (black on it)",
            "use": "Header and footer cells.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "side",
            "value": "#DDDDDD",
            "contrast": "15.5:1 (black on it)",
            "use": "The navigation cell.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "text",
            "value": "#000000",
            "contrast": "21:1",
            "use": "Text.",
            "basis": "record",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "link",
            "value": "#0000EE",
            "contrast": "9.4:1",
            "use": "Unvisited links, the browser default.",
            "basis": "record",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "visited",
            "value": "#551A8B",
            "contrast": "11.0:1",
            "use": "Visited links, the browser default.",
            "basis": "record",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "new",
            "value": "#B00000",
            "contrast": "7.4:1",
            "use": "The blinking NEW.",
            "basis": "translation",
            "cites": [
              "token_rule:motion-14"
            ]
          }
        ],
        "alternates": [
          {
            "label": "flat ground",
            "recorded": "a flat BGCOLOR ground",
            "value": "#FFFFFF",
            "basis": "record",
            "cites": [
              "token_rule:color-5"
            ]
          }
        ],
        "rules": [
          {
            "rule": "Set colour on the BODY tag: a tiled background image or a flat BGCOLOR, with text and link colours at the browser default or set per page.",
            "basis": "record",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "rule": "Tile the background: space first, then paper, glass, water and wood sets from free collections.",
            "basis": "record",
            "cites": [
              "token_rule:w1-motif"
            ]
          },
          {
            "rule": "Set a flat BGCOLOR behind every text cell.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ],
            "because": "Text straight on a tiled image loses legibility; a cell colour is the fix the table layout already offers."
          }
        ]
      },
      "typography": {
        "family": {
          "stack": "\"Times New Roman\", Times, serif",
          "class": "the browser default, or a face set with the FONT tag"
        },
        "roles": [
          {
            "role": "h1",
            "size": "2em",
            "weight": 700,
            "lineHeight": "1.2",
            "case": null,
            "tracking": null,
            "measure": null,
            "use": "The page title."
          },
          {
            "role": "h2",
            "size": "1.5em",
            "weight": 700,
            "lineHeight": "1.2",
            "case": null,
            "tracking": null,
            "measure": null,
            "use": "Section heads."
          },
          {
            "role": "body",
            "size": "1rem",
            "weight": 400,
            "lineHeight": "1.4",
            "case": null,
            "tracking": null,
            "measure": null,
            "use": "Everything else."
          },
          {
            "role": "font-2",
            "size": "0.8125rem",
            "weight": 400,
            "lineHeight": "1.4",
            "case": null,
            "tracking": null,
            "measure": null,
            "setting": "<font size=\"2\" face=\"Arial, Helvetica\">",
            "use": "Notes and footers."
          }
        ],
        "rules": [
          {
            "rule": "Set size and face with the FONT tag; where no face is set, the browser default.",
            "basis": "record",
            "cites": [
              "token_rule:typography-4"
            ]
          },
          {
            "rule": "Where <font> cannot be used, reproduce its size and face with CSS on a span.",
            "basis": "translation",
            "cites": [
              "token_rule:typography-4"
            ],
            "because": "<font> is obsolete in current HTML; the rendering can be kept, the element cannot be relied on."
          }
        ]
      },
      "gridLayout": {
        "summary": "No grid: nested tables, centred, 640 pixels wide. The canvas never reflows.",
        "columns": [
          {
            "width": "all",
            "columns": 2
          }
        ],
        "margin": "centred",
        "tokens": {
          "canvas": "640px",
          "nav-cell": "150px"
        },
        "rules": [
          {
            "rule": "Lay out in nested tables, centred, for 640×480.",
            "basis": "record",
            "cites": [
              "token_rule:layout-3"
            ]
          },
          {
            "rule": "No responsive behaviour.",
            "basis": "record",
            "cites": [
              "token_rule:w1-r1"
            ]
          },
          {
            "rule": "Rank by heading tag and horizontal rule, never by chosen scale.",
            "basis": "record",
            "cites": [
              "token_rule:hierarchy-13"
            ]
          },
          {
            "rule": "Let the matte around the canvas scroll sideways on a narrow screen; never reflow the canvas.",
            "basis": "translation",
            "cites": [
              "token_rule:layout-3",
              "token_rule:w1-r1"
            ],
            "because": "The constraint is the register, but the content must stay reachable; horizontal scroll keeps both."
          }
        ]
      },
      "shapeGeometry": {
        "tokens": {
          "radius": "0",
          "relief": "outset / inset",
          "rule": "groove"
        },
        "rules": [
          {
            "rule": "Hard edges; tiled texture.",
            "basis": "record",
            "cites": [
              "token_rule:surface-8"
            ]
          },
          {
            "rule": "The default horizontal rule is a two-colour groove; ask for a flat one with NOSHADE.",
            "basis": "record",
            "cites": [
              "claim:kcc:interface-2"
            ]
          },
          {
            "rule": "Relief is interface rendering, not form: bevelled tables and grooved rules are the browser’s, not the author’s.",
            "basis": "record",
            "cites": [
              "claim:kcc:form-1"
            ]
          }
        ]
      },
      "imagery": {
        "rules": [
          {
            "rule": "Animated GIF, low bit depth.",
            "basis": "record",
            "cites": [
              "token_rule:imagery-7"
            ]
          },
          {
            "rule": "Give a linked image a coloured border, typically blue.",
            "basis": "record",
            "cites": [
              "claim:kcc:interface-3"
            ]
          },
          {
            "rule": "Build from free graphics collections: image bullets, 88×31 buttons, lifted from other pages’ source.",
            "basis": "record",
            "cites": [
              "claim:kcc:interface-5",
              "claim:kcc:technique-2"
            ]
          },
          {
            "rule": "No licensed period GIFs are held here.",
            "basis": "not_recorded",
            "cites": [],
            "guidance": "Use GIFs you have the rights to, or leave a labelled slot; do not redraw period graphics.",
            "silence": "source"
          }
        ]
      },
      "components": {
        "button": {
          "name": "Button",
          "becomes": "The browser’s own submit button, or an image standing in for one.",
          "anatomy": [
            "native <button> or <input type=\"submit\">, unstyled",
            "or an <input type=\"image\"> the author made or collected",
            "label in the platform’s control font"
          ],
          "tokens": {
            "appearance": "native",
            "radius": "native",
            "shadow": "native",
            "transition": "none"
          },
          "states": {
            "default": "Whatever the platform draws.",
            "hover": "Whatever the platform draws; nothing added.",
            "focus": "The browser’s own focus ring, left on.",
            "active": "The platform’s pressed state.",
            "disabled": "The platform’s disabled state, plus the word “unavailable” in the label."
          },
          "accessibility": [
            "An image submit button carries alt text naming the action.",
            "The native focus ring is never removed."
          ],
          "values": [
            {
              "rule": "Use the browser’s own controls, or an image submit button.",
              "basis": "record",
              "cites": [
                "claim:kcc:interface-4"
              ]
            },
            {
              "rule": "On amateur pages, swap browser furniture for GIF buttons from free collections.",
              "basis": "record",
              "cites": [
                "claim:kcc:interface-5"
              ]
            },
            {
              "rule": "Keep the native focus ring and give every image button alt text.",
              "basis": "translation",
              "cites": [
                "claim:kcc:interface-4"
              ],
              "because": "The era left controls to the browser; leaving the focus ring on is the same deference, and alt text is what makes an image button a button."
            }
          ]
        },
        "card": {
          "name": "Card",
          "becomes": "Not a card: a table cell with a BGCOLOR, inside a bordered table the browser draws in relief.",
          "anatomy": [
            "<table border> drawn in bas-relief",
            "cells inset, each with a flat BGCOLOR",
            "heading tag, paragraph, link"
          ],
          "tokens": {
            "border": "4px outset #C0C0C0",
            "cell": "1px inset #C0C0C0",
            "cell-ground": "#FFFFFF",
            "radius": "0"
          },
          "states": {
            "default": "Raised table, inset cells.",
            "hover": "Nothing changes.",
            "focus": "The browser focus ring on the link inside."
          },
          "accessibility": [
            "Layout tables carry role=\"presentation\"; data tables keep their headers.",
            "Reading order is source order, cell by cell."
          ],
          "values": [
            {
              "rule": "Draw bordered tables in bas-relief: a raised outer border, cells inset.",
              "basis": "record",
              "cites": [
                "claim:kcc:interface-1"
              ]
            },
            {
              "rule": "Lay content out in nested tables, centred.",
              "basis": "record",
              "cites": [
                "token_rule:layout-3"
              ]
            },
            {
              "rule": "Mark layout tables role=\"presentation\".",
              "basis": "translation",
              "cites": [
                "token_rule:layout-3"
              ],
              "because": "Nested layout tables are the register; announcing them to a screen reader as data would misreport the page."
            }
          ]
        },
        "input": {
          "name": "Input",
          "becomes": "The platform’s own text field, with its label as plain text beside it; the form posts, often by email.",
          "anatomy": [
            "native <input>, unstyled",
            "label as plain text",
            "a submit button or image"
          ],
          "tokens": {
            "appearance": "native",
            "font": "native"
          },
          "states": {
            "default": "Native.",
            "focus": "The browser’s own focus ring.",
            "error": "A line of plain text saying what went wrong, prefixed “Error:”.",
            "disabled": "Native disabled."
          },
          "accessibility": [
            "Every field has a <label>.",
            "Errors are words, not colour."
          ],
          "values": [
            {
              "rule": "Use the browser’s own form controls; forms were often sent by email.",
              "basis": "record",
              "cites": [
                "claim:kcc:interface-4"
              ]
            },
            {
              "rule": "Tie every label to its field with <label for>.",
              "basis": "translation",
              "cites": [
                "claim:kcc:interface-4"
              ],
              "because": "The era often set labels as loose text; a <label> keeps the look and makes the field findable."
            }
          ]
        },
        "navigation": {
          "name": "Navigation",
          "becomes": "A column of links in the left table cell, separated by line breaks.",
          "anatomy": [
            "links in a narrow left cell",
            "<br> between them",
            "optionally the page’s own back/forward GIFs"
          ],
          "tokens": {
            "link": "#0000EE",
            "visited": "#551A8B",
            "underline": "always",
            "cell": "#DDDDDD",
            "width": "150px"
          },
          "states": {
            "default": "Underlined, in the link colour.",
            "hover": "Nothing changes.",
            "focus": "The browser focus ring.",
            "current": "Plain bold text, not a link."
          },
          "accessibility": [
            "Underlines stay, so links are found without colour.",
            "aria-current on the current page."
          ],
          "values": [
            {
              "rule": "Set link colours on the BODY tag or leave them at the browser default.",
              "basis": "record",
              "cites": [
                "token_rule:color-5"
              ]
            },
            {
              "rule": "Amateur pages made their own back and forward buttons from collected GIFs.",
              "basis": "record",
              "cites": [
                "claim:kcc:interface-5"
              ]
            },
            {
              "rule": "Put the links in a 150px left cell, one per line.",
              "basis": "translation",
              "cites": [
                "token_rule:layout-3"
              ],
              "because": "The fixed canvas leaves a narrow column beside the content; a line break was the only spacing available."
            }
          ]
        }
      },
      "motion": {
        "spec": {
          "durations": {
            "loop": "1.2s"
          },
          "easing": {
            "loop": "steps()"
          },
          "transforms": "none",
          "entrance": "none",
          "hover": "Nothing moves on hover.",
          "reducedMotion": "Loops stop on their first frame."
        },
        "rules": [
          {
            "rule": "Only looping GIF animation, continuous, never triggered, never eased.",
            "basis": "record",
            "cites": [
              "token_rule:motion-14"
            ]
          },
          {
            "rule": "Reproduce a loop in CSS with steps(), and stop it under prefers-reduced-motion.",
            "basis": "translation",
            "cites": [
              "token_rule:motion-14"
            ],
            "because": "A stepped keyframe is a GIF’s frame change; a loop that cannot be stopped is a barrier the era never had to consider."
          }
        ]
      },
      "dimensions": [
        {
          "key": "construction",
          "label": "How it was made",
          "summary": "Hand-authored, modular, copied. Professional sites broke with this by slicing Photoshop comps; that is outside the register.",
          "values": [
            {
              "rule": "Author by hand, in markup; the tools of the time made the look.",
              "basis": "record",
              "cites": [
                "token_rule:w1-r1"
              ]
            },
            {
              "rule": "Build from free graphics collections and from other pages’ source.",
              "basis": "record",
              "cites": [
                "claim:kcc:technique-2"
              ]
            },
            {
              "rule": "Sliced Photoshop layouts are the professional break with this, not part of it.",
              "basis": "record",
              "cites": [
                "claim:kcc:technique-4"
              ]
            }
          ]
        }
      ],
      "notRecorded": [
        {
          "category": "imagery",
          "what": "Period GIFs",
          "why": "None is licensed here; slots are labelled instead."
        },
        {
          "category": "layout",
          "what": "Density",
          "why": "Not specified by the source."
        }
      ],
      "silence": {
        "color": "source",
        "typography": "source",
        "gridLayout": "source",
        "shapeGeometry": "source",
        "imagery": "source",
        "components": "source",
        "motion": "source"
      },
      "uiNote": "The record documents interface conventions for Web 1.0. These four components are contemporary builds on those conventions, not historical artefacts."
    }
  }
}