Skip to content

Commit 9625f4a

Browse files
author
Corey B
committed
fix(css): explicit coloration on dark-mode inputs and formalize 'hidden ink' architectural guidelines
1 parent 18053a3 commit 9625f4a

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

examples/personal_crm.fdd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
.main-panel h2 { color: #0f172a; margin-top: 0; }
5252

5353
form { display: flex; flex-direction: column; gap: 15px; max-width: 400px; margin-top: 20px; }
54-
input, textarea { padding: 10px; border: 1px solid #cbd5e1; border-radius: 6px; font-family: sans-serif; background: #fdfdfd;}
54+
input, textarea { padding: 10px; border: 1px solid #cbd5e1; border-radius: 6px; font-family: sans-serif; background: #fdfdfd; color: #0f172a;}
5555
textarea { resize: vertical; }
5656
.btn-submit { background: #10b981; color: white; padding: 12px; font-size: 1rem; }
5757

spec/SPEC.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,14 @@ An `.fdd` file acts as its own state database. Updates to the DOM natively sync
4343

4444
## 4. No-JS Security Model
4545
Since executable scripts are blocked, interactions scale through:
46-
* **Declarative Binding:** The underlying `FDD.js` parser maps JSON to `{{mustache}}` template targets.
47-
* **CSS Logic:** Advanced interactions (filtering, charting) use `CSS Grid`, `:has()`, `:checked`, and `:contains()` constructs.
46+
* **CSS Pseudo Types:** Hover actions, transitions, toggle elements (`:checked`).
47+
* **Declarative Extensions:** Custom native UI parsers implementing explicit handlers like `[autosave]` or `[fdd-push]`.
48+
49+
### 4.1 The "Hidden Ink" Presentation Risk
50+
Because OpenFDD relies on declarative CSS for structural templating, there exists an inherent UI spoofing vector (e.g., matching text color to background color or using `display: none` to conceal contractual terms from the reader).
51+
52+
To proactively mitigate this, OpenFDD formally separates the **Integrity Layer** (`#fdd-data`) from the **Presentation Layer** (`<template>`).
53+
* Authoritative `.fdd` viewers, parsing libraries, and browser extensions **SHOULD** proactively implement accessibility contrast safeguards (evaluating stylesheets to prevent exact background-hex mappings), OR they must provide a baseline "Raw Data Inspector" UI. This guarantees users can definitively read the pristine, un-styled JSON presentation block.
54+
* If a discrepancy arises between the layout masking and the JSON block, the guiding principle of the specification dictates: **The Presentation is merely a convenience; the raw cryptographically signed data block remains the indisputable source of truth.**
55+
56+
## 5. Deployment Ecosystem

0 commit comments

Comments
 (0)