{
  "contract": "aesthetary.record/1.0",
  "record_spec": "1.1.0",
  "semantics": {
    "vocabulary": "aesthetary.public-evidence/1.0",
    "definitions": "vocabulary.json"
  },
  "slug": "anti-design",
  "name": "Anti-Design",
  "identity": {
    "definition": {
      "state": "resolved",
      "text": "In the sense this record covers, anti-design is a web and graphic design trend that gives up clean, symmetrical, grid-based layout and visual hierarchy for asymmetry, crowding, type that does not align, loud or harsh colour and disorienting patterns; it shares its name with a 1960s-70s Italian design movement opposed to functionalism. Dating the trend's naming to about 2017, and treating unexpected control behaviour as a defining trait, is Aesthetary's reading. The sources ask for type that is hard work, not type that cannot be read."
    },
    "scope": {
      "state": "resolved",
      "text": "Anti-design was an Italian critique movement (1960s–80s) working in furniture and objects. This record covers the later web and graphic trend sharing the name: non-aligning type, loud colour; the rest is Aesthetary's reading.",
      "ruling": "D0-1"
    },
    "aliases": [
      "ugly design",
      "deliberate friction",
      "Dada web"
    ],
    "layer_verdict": {
      "state": "ruled",
      "value": "umbrella_or_family",
      "ruling": "D0-1"
    }
  },
  "native_medium": {
    "state": "resolved",
    "value": [
      "screen",
      "print"
    ],
    "evidence": {
      "quote": "some designers interpret brutalism to mean rebelling against oversimplified design by intentionally creating ugly, disorienting, or complex interfaces … Beyond digital products, these styles are influencing print design",
      "field": "kcc.json#anti-design/medium (claim kcc:medium)"
    },
    "ruling": "Knowledge Completion Campaign (founder instruction, 2026-09-29)"
  },
  "research": {
    "line": "partly_sourced",
    "text": "Partly sourced",
    "sentence": "10 sources 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": "not_canonically_specified",
      "importance": "unknown",
      "posture_basis": "synthesis",
      "label": {
        "text": "Not specified by the source"
      }
    },
    {
      "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": null,
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "technique",
      "state": "resolved",
      "canon": "specified",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Specified"
      }
    },
    {
      "area": "form",
      "state": "resolved",
      "canon": "open_question",
      "importance": "unknown",
      "posture_basis": null,
      "label": {
        "text": "Open question"
      }
    },
    {
      "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: broken grid.",
      "role": "rule",
      "area": "layout",
      "basis": "inherited",
      "support": {
        "state": "inherited",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "text": "From our catalogue entry"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "hierarchy-13",
      "text": "CURATORIAL: deliberately contested — competing signals that never resolve. Stating that there is no stable ranking *is* the instruction.",
      "role": "rule",
      "area": "hierarchy",
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [
          "6GAKJ5RQ2MZH7J4M7PYR2YKENV"
        ],
        "contested": true
      },
      "label": {
        "kind": "reading",
        "mark": "disputed",
        "text": "Our reading · disputed"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "color-5",
      "text": "Colour: clashing.",
      "role": "rule",
      "area": "color",
      "basis": "inherited",
      "support": {
        "state": "cited",
        "for": [
          "6GAKJ5RQ2MZH7J4M7PYR2YKENV"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "mark": "attached",
        "text": "From our catalogue entry · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "motion-14",
      "text": "— rare, and it is the record's sharpest asset. *\"Unexpected interaction\"* is a claimed behaviour, not an inference, which makes this one of the few records where motion is evidenced rather than invented.",
      "role": "rule",
      "area": "motion",
      "basis": "inherited",
      "support": {
        "state": "cited",
        "for": [
          "6GAKJ5RQ2MZH7J4M7PYR2YKENV"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "catalogue",
        "mark": "attached",
        "text": "From our catalogue entry · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "ad-r1",
      "text": "Breakage, not exposure: alignment and legibility are deliberately broken. If the structure stays legible the artefact is Web Brutalism, and if the system stays inferable it is New Wave Typography.",
      "role": "rule",
      "area": "layout",
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "intent",
      "text": "Usability conventions are a commercial value, not a natural law. Breaking alignment, legibility and interaction on purpose refuses the assumption that a page exists to convert a visitor, and treats the visitor as someone who came to look rather than to be processed.",
      "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": "Alignment broken so that nothing settles onto a shared edge, type set to be difficult rather than merely unusual, clashing colour with no arbitration, and interactions that behave unexpectedly — controls that move, resist, or do something other than what they advertise. The diagnostic condition is that the friction is functional: something is genuinely harder than it needs to be, and that cost was accepted deliberately. Web Brutalism exposes structure and leaves it working. New Wave Typography violates a grid that stays inferable; here there is no grid to infer.",
      "role": "diagnostic",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "cited",
        "for": [
          "6GAKJ5RQ2MZH7J4M7PYR2YKENV",
          "5A6E3R2PXKRSJMW16WF8M0CRAG"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "failure-1",
      "text": "No smooth predictable interaction.",
      "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-2",
      "text": "No settled alignment.",
      "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 arbitration between colours.",
      "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 conversion optimisation.",
      "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 decorative-only awkwardness.",
      "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: breakage versus exposure. Against New Wave Typography: no grid versus an inferable one. Anti-signature: if everything still works smoothly, it is Web Brutalism wearing a costume.",
      "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-7",
      "text": "Not open: making it secretly usable..",
      "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 smooth interaction, predictable alignment, and any optimisation aimed at conversion.",
      "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: Conversion; Accessibility; Being taken seriously commercially",
      "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 who has time, and reads difficulty as a position rather than as incompetence.",
      "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: breakage versus exposure. Against New Wave Typography: no grid versus an inferable one. Anti-signature: if everything still works smoothly, it is Web Brutalism wearing a costume.",
      "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": "Friction is intentional; conversion is knowingly sacrificed",
      "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: postmodern, contemporary",
      "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: rebellious, strange",
      "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: Layout: broken grid · Motion: unexpected interaction",
      "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": "imagery-reason",
      "text": "Neither demanded nor forbidden.",
      "role": "context",
      "area": "imagery",
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "freedom-imagery",
      "text": "Declared freedom: imagery.",
      "role": "context",
      "area": "imagery",
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "declared-freedom",
      "text": "Declared freedom: which conventions break; how far legibility degrades.",
      "role": "context",
      "area": null,
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "gestalt.interface",
      "text": "controls that move, resist, or do something other than what they advertise",
      "role": "diagnostic",
      "area": "interface",
      "basis": "synthesis",
      "support": {
        "state": "cited_unverified",
        "for": [
          "6GAKJ5RQ2MZH7J4M7PYR2YKENV",
          "5A6E3R2PXKRSJMW16WF8M0CRAG"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-1",
      "text": "Some anti-design sites use weird cursors and unnecessary, distracting animations.",
      "role": "rule",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-S1",
          "kcc-anti-design-S3"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "web, c. 2016–2019 examples"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:interface-2",
      "text": "Some designers deliberately make interfaces ugly, disorienting or complex; NN/g adds that in such work interaction does not have to be smooth.",
      "role": "rule",
      "area": "interface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-S1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "NN/g's second quote describes where antidesign can work (entertainment contexts), not a designer's stated rule"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:motif-1",
      "text": "Some anti-design sites use disorienting patterns.",
      "role": "rule",
      "area": "motif",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-S1",
          "kcc-anti-design-S3"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:motif-2",
      "text": "Built In calls anti-design 'a way of thinking more than a specific aesthetic'; the sources reviewed name no fixed motif set.",
      "role": "negative",
      "area": "motif",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-S2"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:technique-1",
      "text": "One interviewee in a thesis links the look to how the web looked around 1996-97, built with tables, buttons and GIF animations; then it was not irony but testing the limits.",
      "role": "context",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-S3"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "one interviewee in a bachelor thesis; origin, not current method"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:form-1",
      "text": "The name also covers furniture, architecture and fashion, and the historical movement worked through objects. The approved scope limits this record to the web and graphic trend, where no source describes three-dimensional form.",
      "role": "context",
      "area": "form",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-S2",
          "kcc-anti-design-S8",
          "kcc-anti-design-S6"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "object strand is outside approved scope"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:w2-surface-1",
      "text": "Anti-design adds deliberate blemishes and glitches to digital work, so that it reads as made by a person.",
      "role": "rule",
      "area": "surface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-W2S1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "Trade-press account of the current (2020s) trend."
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:w2-surface-2",
      "text": "A cited example site has a handcrafted or scribbled look.",
      "role": "context",
      "area": "surface",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-W2S1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "One example."
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:w2-technique-1",
      "text": "Creative Bloq advises reaching the look by forgetting the usual rules and going to extremes (stretching images, breaking layouts, combining clashing colours), then dialling it back until it works.",
      "role": "rule",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-W2S1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:w2-technique-2",
      "text": "It sets itself against the cookie-cutter templates that design apps make easy.",
      "role": "negative",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-W2S1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:w2-technique-3",
      "text": "Creative Bloq suggests looking for anti-design inspiration in old zines, 90s grunge and early web design such as Geocities.",
      "role": "context",
      "area": "technique",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-W2S1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:w2-form-1",
      "text": "The term 'anti-design' was first used for a 1960s-70s European architectural movement represented by Archigram, Archizoom and Superstudio.",
      "role": "context",
      "area": "form",
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-W2S1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "scope": {
        "practice": "The historical movement, excluded by the approved scope."
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "kcc:medium",
      "text": "Native medium: screen, print.",
      "role": "context",
      "area": null,
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-S1"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "dcc:definition",
      "text": "In the sense this record covers, anti-design is a web and graphic design trend that gives up clean, symmetrical, grid-based layout and visual hierarchy for asymmetry, crowding, type that does not align, loud or harsh colour and disorienting patterns; it shares its name with a 1960s-70s Italian design movement opposed to functionalism. Dating the trend's naming to about 2017, and treating unexpected control behaviour as a defining trait, is Aesthetary's reading. The sources ask for type that is hard work, not type that cannot be read.",
      "role": "definition",
      "area": null,
      "basis": "documentary",
      "support": {
        "state": "cited",
        "for": [
          "kcc-anti-design-S1",
          "kcc-anti-design-S2",
          "kcc-anti-design-S5",
          "kcc-anti-design-S4"
        ],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "documented",
        "mark": "attached",
        "text": "Documented · Source attached"
      },
      "derives_from": [],
      "ruling": null
    },
    {
      "id": "dcc:typography-4",
      "text": "Typography: type that refuses to align, set to be hard work rather than unreadable.",
      "role": "rule",
      "area": "typography",
      "basis": "synthesis",
      "support": {
        "state": "none",
        "for": [],
        "against": [],
        "contested": false
      },
      "label": {
        "kind": "reading",
        "text": "Our reading"
      },
      "derives_from": [
        "kcc:definition",
        "kcc:interface-2"
      ],
      "ruling": null
    }
  ],
  "web_translations": [],
  "standard_practice": [],
  "sources": [
    {
      "id": "6GAKJ5RQ2MZH7J4M7PYR2YKENV",
      "kind": "source",
      "title": "Kate Moran, Brutalism and Antidesign (5 Nov 2017)",
      "url": "https://www.nngroup.com/articles/brutalism-antidesign/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "5A6E3R2PXKRSJMW16WF8M0CRAG",
      "kind": "source",
      "title": "Frederick O'Brien, The Split Personality Of Brutalist Web Development (8 Jan 2020)",
      "url": "https://www.smashingmagazine.com/2020/01/split-personality-brutalist-web-development/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-anti-design-S1",
      "kind": "source",
      "title": "Brutalism and Antidesign",
      "url": "https://www.nngroup.com/articles/brutalism-antidesign/",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-anti-design-S2",
      "kind": "source",
      "title": "Anti-Design Is Intentionally Loud and Messy",
      "url": "https://builtin.com/articles/anti-design",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-anti-design-S3",
      "kind": "source",
      "title": "The rise of Brutalism and Antidesign: And their implications on web design history (bachelor thesis)",
      "url": "http://www.diva-portal.org/smash/get/diva2:1304924/FULLTEXT01.pdf",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-anti-design-S4",
      "kind": "source",
      "title": "Anti-design",
      "url": "https://designaftercapitalism.org/anti-design",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-anti-design-S5",
      "kind": "source",
      "title": "Nuovo Design (AAT 300112822)",
      "url": "http://vocab.getty.edu/page/aat/300112822",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-anti-design-S6",
      "kind": "source",
      "title": "Radical: Italian Design 1965–1985, The Dennis Freedman Collection",
      "url": "https://www.e-flux.com/announcements/444633/radical-italian-design-1965-1985-the-dennis-freedman-collection",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-anti-design-S8",
      "kind": "source",
      "title": "Archizoom Associati",
      "url": "https://en.wikipedia.org/wiki/Archizoom_Associati",
      "status": "verified",
      "retrieval": "retrieved"
    },
    {
      "id": "kcc-anti-design-W2S1",
      "kind": "source",
      "title": "What is anti-design, the rising trend that tears up the rule book?",
      "url": "https://www.creativebloq.com/design/graphic-design/what-is-anti-design-the-trend-that-tears-up-the-rule-book",
      "status": "verified",
      "retrieval": "retrieved"
    }
  ],
  "relations": [
    {
      "slug": "web-brutalism",
      "kind": "confused_with",
      "status": "proposed"
    },
    {
      "slug": "new-wave-typography",
      "kind": "confused_with",
      "status": "proposed"
    },
    {
      "slug": "anti-design",
      "kind": "visual_language_of",
      "status": "confirmed"
    }
  ],
  "open": [
    {
      "kind": "open_question",
      "question": "Is three-dimensional organisation specified for the web and graphic trend?"
    },
    {
      "kind": "missing_research",
      "question": "Is illegibility a goal of contemporary anti-design?"
    },
    {
      "kind": "missing_research",
      "question": "Surface and technique of the contemporary trend."
    },
    {
      "kind": "missing_research",
      "question": "Is there an authoritative (museum or scholarly) treatment of the post-2016 web trend?"
    }
  ],
  "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": "anti-design",
      "stylesheet": "anti-design.css",
      "bytes": 16410,
      "colours": [
        "#17141B",
        "#1F3E9E",
        "#D6FF3F",
        "#F4EFE2",
        "#FF3DA6",
        "#C7D0FF",
        "#EFEDF3",
        "#0B0D12",
        "#5B5563"
      ],
      "radii": [
        "50%"
      ],
      "fontSizes": [
        "0.55em",
        "12px",
        "13px",
        "14px",
        "15px",
        "19px",
        "20px",
        "22px",
        "28px",
        "30px",
        "34px",
        "40px"
      ],
      "faces": [
        "WorkSansX",
        "Menlo"
      ],
      "tokens": [
        {
          "name": "--nd-ink",
          "value": "#17141B"
        },
        {
          "name": "--nd-blue",
          "value": "#1F3E9E"
        },
        {
          "name": "--nd-lime",
          "value": "#D6FF3F"
        },
        {
          "name": "--nd-cream",
          "value": "#F4EFE2"
        },
        {
          "name": "--nd-pink",
          "value": "#FF3DA6"
        },
        {
          "name": "--nd-lilac",
          "value": "#C7D0FF"
        },
        {
          "name": "--nd-mist",
          "value": "#EFEDF3"
        },
        {
          "name": "--nd-night",
          "value": "#0B0D12"
        },
        {
          "name": "--nd-dim",
          "value": "#5b5563"
        },
        {
          "name": "--nd-face",
          "value": "\"WorkSansX\", \"Work Sans\", \"Helvetica Neue\", Arial, sans-serif"
        }
      ],
      "animates": true,
      "absent": [
        "no gradient 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": "anti-design",
      "version": "2026-09-29",
      "summary": "A starting grammar for a website in Anti-Design: nothing on a shared edge, colours left to clash, type that refuses to align but stays readable, and controls that resist, with one switch that straightens it all.",
      "color": {
        "roles": [
          {
            "role": "ground",
            "value": "#F4EFE2",
            "use": "The page ground: a cream the other colours fight on.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "ink",
            "value": "#17141B",
            "contrast": "15.9:1",
            "use": "Text, borders, the dark blocks.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "blue",
            "value": "#1F3E9E",
            "contrast": "8.2:1",
            "use": "Links and the first colour system.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "lime",
            "value": "#D6FF3F",
            "use": "Blocks behind ink text (15.8:1); never text on cream.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "pink",
            "value": "#FF3DA6",
            "use": "Blocks behind ink text (5.6:1) and focus; never text on cream (2.8:1).",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "role": "lilac",
            "value": "#C7D0FF",
            "use": "The second colour system, set against the first.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5"
            ]
          }
        ],
        "alternates": [],
        "rules": [
          {
            "rule": "Leave the colours clashing: two systems on one page with nothing arbitrating between them.",
            "basis": "record",
            "cites": [
              "token_rule:color-5"
            ]
          },
          {
            "rule": "Reach it the documented way: combine clashing colours at the extreme, then dial back until it works.",
            "basis": "record",
            "cites": [
              "claim:kcc:w2-technique-1"
            ]
          },
          {
            "rule": "Carry text only in ink or blue; put lime and pink behind it, never under it as text.",
            "basis": "translation",
            "cites": [
              "token_rule:color-5",
              "claim:kcc:w2-technique-1"
            ],
            "because": "The clash is in the fields; contrast is what the page cannot afford to give up."
          },
          {
            "rule": "The sources do not specify a palette.",
            "basis": "not_recorded",
            "cites": [],
            "guidance": "These six are the room's. Choose your own clash; do not treat lime and pink as the language.",
            "silence": "source"
          }
        ]
      },
      "typography": {
        "family": {
          "stack": "\"WorkSansX\", \"Work Sans\", \"Helvetica Neue\", Arial, sans-serif",
          "class": "one variable grotesque pushed to both ends of its weight axis"
        },
        "roles": [
          {
            "role": "display",
            "size": "clamp(3rem, 9vw, 8rem)",
            "weight": 900,
            "lineHeight": "0.82",
            "case": null,
            "tracking": "-0.05em",
            "measure": null,
            "use": "Headings, with a word or two dropped to weight 100 italic."
          },
          {
            "role": "thin",
            "size": "inherit",
            "weight": 100,
            "lineHeight": "inherit",
            "case": null,
            "tracking": null,
            "measure": null,
            "use": "The italic that breaks into a heading."
          },
          {
            "role": "text",
            "size": "1.0625rem",
            "weight": 400,
            "lineHeight": "1.5",
            "case": null,
            "tracking": null,
            "measure": "58ch",
            "use": "Everything read at length: straight, level, readable."
          }
        ],
        "rules": [
          {
            "rule": "Set type that refuses to align: hard work to read, never unreadable.",
            "basis": "record",
            "cites": [
              "claim:dcc:typography-4"
            ]
          },
          {
            "rule": "Use one variable face and swing it from 900 to 100 italic inside a single heading.",
            "basis": "translation",
            "cites": [
              "claim:dcc:typography-4"
            ],
            "because": "Weight collision is how the room makes type difficult without making it illegible."
          },
          {
            "rule": "Keep running text level and at 17px.",
            "basis": "translation",
            "cites": [
              "claim:dcc:typography-4",
              "claim:kcc:interface-2"
            ],
            "because": "The sources describe difficulty, not illegibility; the difficulty belongs to the headings and the placement."
          },
          {
            "rule": "The sources do not name a typeface.",
            "basis": "not_recorded",
            "cites": [],
            "guidance": "Work Sans is the room's. Any face with a wide weight range will do.",
            "silence": "source"
          }
        ]
      },
      "gridLayout": {
        "summary": "No grid to infer. A twelve-column field exists only so that blocks can be placed off it: every block has its own start, its own angle, and at least one overlap.",
        "columns": [
          {
            "width": "all",
            "columns": 12
          }
        ],
        "tokens": {
          "tilt-a": "-2deg",
          "tilt-b": "3deg",
          "tilt-c": "-1deg",
          "overlap": "-40px"
        },
        "rules": [
          {
            "rule": "Break the grid.",
            "basis": "record",
            "cites": [
              "token_rule:layout-3"
            ]
          },
          {
            "rule": "Break alignment so nothing settles on a shared edge; if the system stays inferable it has become New Wave Typography.",
            "basis": "record",
            "cites": [
              "token_rule:ad-r1"
            ]
          },
          {
            "rule": "Leave the ranking contested: competing signals that never resolve.",
            "basis": "record",
            "cites": [
              "token_rule:hierarchy-13"
            ]
          },
          {
            "rule": "Place every offset and angle by hand; nothing random.",
            "basis": "translation",
            "cites": [
              "token_rule:ad-r1"
            ],
            "because": "A placed break can be straightened by one switch; a random one cannot be designed or tested."
          }
        ]
      },
      "shapeGeometry": {
        "tokens": {
          "radius": "0",
          "border": "3px solid #17141B",
          "tilt-max": "14deg",
          "text-tilt-max": "3deg"
        },
        "rules": [
          {
            "rule": "Square corners and 3px ink borders; the break is in the angle and the placement, not the shape.",
            "basis": "translation",
            "cites": [
              "token_rule:ad-r1",
              "claim:kcc:form-1"
            ],
            "because": "The record breaks alignment and legibility, not form; three-dimensional form is an open question."
          },
          {
            "rule": "Add deliberate blemishes and glitches so the work reads as made by a person.",
            "basis": "record",
            "cites": [
              "claim:kcc:w2-surface-1"
            ]
          }
        ]
      },
      "imagery": {
        "rules": [
          {
            "rule": "Imagery is neither demanded nor forbidden.",
            "basis": "record",
            "cites": [
              "claim:imagery-reason"
            ]
          },
          {
            "rule": "Where you use images, stretch them and let them break the layout.",
            "basis": "record",
            "cites": [
              "claim:kcc:w2-technique-1"
            ]
          },
          {
            "rule": "Use disorienting patterns.",
            "basis": "record",
            "cites": [
              "claim:kcc:motif-1"
            ]
          },
          {
            "rule": "Build patterns in CSS, not raster files.",
            "basis": "translation",
            "cites": [
              "claim:kcc:motif-1"
            ],
            "because": "A disorienting pattern must stay sharp at every width and be removable in one switch."
          },
          {
            "rule": "The sources describe no fixed motif set.",
            "basis": "not_recorded",
            "cites": [
              "claim:kcc:motif-2"
            ],
            "guidance": "Built In calls it a way of thinking more than an aesthetic; do not turn one site's scribble into a rule.",
            "silence": "source"
          }
        ]
      },
      "components": {
        "button": {
          "name": "Button",
          "becomes": "A lime slab knocked off true, with a pink block landing behind it on the wrong side.",
          "anatomy": [
            "lime field, 3px ink border",
            "label in Work Sans 800",
            "pink block offset down and to the left (-8px, 8px)",
            "a placed tilt of -4deg"
          ],
          "tokens": {
            "background": "#D6FF3F",
            "color": "#17141B",
            "border": "3px solid #17141B",
            "offset": "-8px 8px 0 #FF3DA6",
            "tilt": "-4deg",
            "radius": "0"
          },
          "states": {
            "default": "Lime, tilted -4deg, pink block behind.",
            "hover": "Inverts: ink field, lime label.",
            "focus": "4px dashed pink outline, 4px outside.",
            "active": "The tilt drops to 0 for the press: the only moment it sits straight.",
            "disabled": "Dashed ink border, no pink block, no tilt."
          },
          "accessibility": [
            "Label on lime at 15.8:1.",
            "The tilt is placed, never random, and the straighten switch removes it.",
            "At least 44px tall."
          ],
          "values": [
            {
              "rule": "Tilt the button off the page's edges and put its shadow on the side no light would cast it.",
              "basis": "translation",
              "cites": [
                "token_rule:ad-r1",
                "token_rule:layout-3"
              ],
              "because": "Nothing may settle on a shared edge; a button is one more thing that refuses to."
            },
            {
              "rule": "Pair two colours from the set that do not agree.",
              "basis": "translation",
              "cites": [
                "token_rule:color-5"
              ],
              "because": "Colour is left clashing, with no arbitration between hues."
            }
          ]
        },
        "card": {
          "name": "Card",
          "becomes": "A bordered block dropped onto the page at its own angle and its own column, overlapping its neighbour.",
          "anatomy": [
            "3px ink border",
            "heading in Work Sans 900",
            "a kind label on a coloured bar",
            "body text, straight"
          ],
          "tokens": {
            "border": "3px solid #17141B",
            "tilt": "one of -2deg, 3deg, -1deg, 1.5deg",
            "overlap": "-40px",
            "radius": "0"
          },
          "states": {
            "default": "Each card at its own placed angle and column start.",
            "hover": "Background turns pink.",
            "focus": "4px dashed pink outline."
          },
          "accessibility": [
            "Body text is never rotated beyond 3deg and never set below 16px.",
            "Reading order follows the source, whatever the placement."
          ],
          "values": [
            {
              "rule": "Give every card its own column start and angle; never let two share an edge.",
              "basis": "translation",
              "cites": [
                "token_rule:ad-r1",
                "token_rule:layout-3"
              ],
              "because": "Alignment is broken so that nothing settles; if the structure stays legible it is Web Brutalism instead."
            },
            {
              "rule": "Rank nothing: let size, colour and position pull against each other.",
              "basis": "translation",
              "cites": [
                "token_rule:hierarchy-13"
              ],
              "because": "The record states that there is no stable ranking."
            }
          ]
        },
        "input": {
          "name": "Input",
          "becomes": "A plain ruled field whose label sits off its edge in a thin italic, as if it had slid.",
          "anatomy": [
            "3px ink border",
            "cream field",
            "label above in Work Sans 100 italic, pushed 2rem right",
            "error as a pink block beginning \"Error:\""
          ],
          "tokens": {
            "border": "3px solid #17141B",
            "background": "#F4EFE2",
            "label-offset": "2rem",
            "radius": "0",
            "height": "2.75rem"
          },
          "states": {
            "default": "3px ink border.",
            "focus": "4px dashed pink outline.",
            "error": "Ink text on a pink block (5.6:1), beginning \"Error:\".",
            "disabled": "Dashed border."
          },
          "accessibility": [
            "The label is real text tied to the field.",
            "The field itself is never tilted: typing into a moving target fails everyone.",
            "Error text is words, not colour alone."
          ],
          "values": [
            {
              "rule": "Slide the label off the field's edge; keep the field straight.",
              "basis": "translation",
              "cites": [
                "token_rule:ad-r1",
                "claim:intent-cost"
              ],
              "because": "The friction has to be chosen, and the record accepts cost to conversion, not to entering text at all."
            },
            {
              "rule": "The sources do not specify an anti-design form convention.",
              "basis": "not_recorded",
              "cites": [],
              "guidance": "Do not invent a form convention; keep the field plain and break only its alignment.",
              "silence": "source"
            }
          ]
        },
        "navigation": {
          "name": "Navigation",
          "becomes": "Links that refuse a shared baseline, each dropped to its own height and angle, the current one on lime.",
          "anatomy": [
            "links in Work Sans 800",
            "each at its own vertical offset and tilt",
            "current page on a lime block"
          ],
          "tokens": {
            "offsets": "0, 14px, -6px, 22px",
            "tilts": "-3deg, 2deg, 0, -1deg",
            "current": "#D6FF3F"
          },
          "states": {
            "default": "Blue links, underlined 3px, off one another's baseline.",
            "hover": "Pink block behind the link.",
            "focus": "4px dashed pink outline.",
            "current": "Lime block, ink label."
          },
          "accessibility": [
            "aria-current on the current page.",
            "Every link keeps a 44px target whatever its offset.",
            "Nothing moves away from the keyboard."
          ],
          "values": [
            {
              "rule": "Drop each link to its own baseline.",
              "basis": "translation",
              "cites": [
                "claim:dcc:typography-4",
                "claim:dcc:definition"
              ],
              "because": "Type that does not align is the documented trait; a row of links is the easiest place to refuse it."
            },
            {
              "rule": "Let one control move, resist or do something other than it advertises, for the mouse only.",
              "basis": "translation",
              "cites": [
                "claim:gestalt.interface",
                "token_rule:motion-14"
              ],
              "because": "Unexpected interaction is the record's evidenced behaviour; keyboards and assistive technology never meet it."
            }
          ]
        }
      },
      "motion": {
        "spec": {
          "durations": {
            "resist": "150ms",
            "flip": "500ms",
            "settle": "300ms"
          },
          "easing": {
            "all": "steps(n): motion lurches, it never glides"
          },
          "transforms": "translate and rotate on hover or pointer approach; the resisting control moves 80 to 220px away",
          "entrance": "none: the page arrives already broken",
          "hover": "a block flips or jumps in 2 to 4 steps",
          "reducedMotion": "Nothing moves and nothing resists; the placed tilts stay, and the straighten switch removes them."
        },
        "rules": [
          {
            "rule": "Make interaction unexpected: it is a claimed behaviour, not an inference.",
            "basis": "record",
            "cites": [
              "token_rule:motion-14"
            ]
          },
          {
            "rule": "Weird cursors and unnecessary, distracting animation are documented.",
            "basis": "record",
            "cites": [
              "claim:kcc:interface-1"
            ]
          },
          {
            "rule": "Move in steps, never eased.",
            "basis": "translation",
            "cites": [
              "claim:failure-1",
              "token_rule:motion-14"
            ],
            "because": "Easing reads as polish, and the record refuses smooth, predictable interaction."
          }
        ]
      },
      "dimensions": [
        {
          "key": "friction",
          "label": "Friction and its exit",
          "summary": "The friction is functional and it costs accessibility on purpose. A switch that straightens every transform keeps the cost a choice the visitor can refuse.",
          "tokens": {
            "resist-tries": "3"
          },
          "values": [
            {
              "rule": "Controls move, resist, or do something other than they advertise.",
              "basis": "record",
              "cites": [
                "claim:gestalt.interface"
              ]
            },
            {
              "rule": "Interaction does not have to be smooth.",
              "basis": "record",
              "cites": [
                "claim:kcc:interface-2"
              ]
            },
            {
              "rule": "Let a resisting control give in after three tries, and never resist the keyboard.",
              "basis": "translation",
              "cites": [
                "claim:intent-cost",
                "claim:gestalt.interface"
              ],
              "because": "The cost is accepted for the pointer, not for someone who cannot use one."
            },
            {
              "rule": "Ship a switch that removes every transform.",
              "basis": "translation",
              "cites": [
                "claim:intent-cost"
              ],
              "because": "Accessibility is a cost the record accepts; the switch lets each visitor decide whether to pay it."
            }
          ]
        }
      ],
      "notRecorded": [
        {
          "category": "color",
          "what": "A palette",
          "why": "The record says the colours clash; it names none. The six are the room's."
        },
        {
          "category": "typography",
          "what": "A typeface",
          "why": "The record grades the behaviour of the type, not a face."
        },
        {
          "category": "imagery",
          "what": "A motif set",
          "why": "The sources name none, and one calls anti-design a way of thinking."
        },
        {
          "category": "components",
          "what": "Interface conventions",
          "why": "The research record does not establish them. The four components are contemporary translations of documented rules."
        },
        {
          "category": "shapeGeometry",
          "what": "Three-dimensional form",
          "why": "An open question for the web and graphic trend."
        }
      ],
      "silence": {
        "color": "source",
        "typography": "source",
        "gridLayout": "source",
        "shapeGeometry": "source",
        "imagery": "source",
        "components": "source",
        "motion": "source"
      },
      "uiNote": "The record documents interface conventions for Anti-Design. These four components are contemporary builds on those conventions, not historical artefacts."
    }
  }
}