@ashley-shrok/viewmodel-shell 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/styles/default.css +10 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ashley-shrok/viewmodel-shell",
3
- "version": "1.7.0",
3
+ "version": "1.8.0",
4
4
  "description": "A server-driven UI framework where the wire format is structured enough that agents can build full-stack apps without ever opening a browser and all UI tests are pure unit tests with no browser runtime. Server returns a JSON tree of typed nodes; a thin TypeScript adapter renders it to DOM. Backend-agnostic — a .NET reference backend ships with the repo, but any language can produce the JSON contract.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -323,7 +323,16 @@ body {
323
323
  variable so themes can flip it. */
324
324
  color-scheme: var(--vms-color-scheme);
325
325
  }
326
- .vms-field__input::placeholder { color: var(--vms-text-muted); }
326
+ /* Placeholder is derived from the theme text color at reduced strength
327
+ (the UA-default / Bootstrap mechanism, ~50%), NOT from --vms-text-muted.
328
+ Two reasons: (1) it reads as a faint hint rather than committed text, so an
329
+ empty field isn't mistaken for a filled one even with no visible label;
330
+ (2) it decouples from --vms-text-muted (shared by labels/captions/meta),
331
+ which must stay AA-contrast. Opacity (not a fixed gray) so it fades
332
+ correctly across every light/dark theme. This intentionally trades strict
333
+ placeholder AA contrast for clarity — placeholders should never be the sole
334
+ carrier of meaning; pair inputs with a label. */
335
+ .vms-field__input::placeholder { color: var(--vms-text); opacity: 0.5; }
327
336
  .vms-field__input:focus {
328
337
  border-color: var(--vms-accent);
329
338
  box-shadow: 0 0 0 3px var(--vms-accent-glow);