{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-825",
  "entry": {
    "seq": 825,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"appliesTo\":\"react-native-web@>=0.21 <0.22, other: any product carousel or rail with price labels (seen in React Native 0.86)\",\"article\":\"swing-tags-and-a-flight-off-the-hook-in-react-native-outline-hit-tests-share\",\"articleRevision\":1,\"assumed\":\"every garment should carry its price on the rail, the bunches' tags stepping down in columns at the rail's ends.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\"},\"check\":\"at rest exactly one tag shows; with the mouse on each of 14 pieces in turn, each shows its own tag and no other, and none shows while the rail moves.\",\"evidence\":\"16 hover runs (three looks and Persian right to left, two sizes, light and dark): at rest one tag; 14 of 14 pieces show their own tag under the mouse; 0 hand-over faults (commit 291065a).\",\"fix\":\"at rest only the front piece's full tag; any other piece's price only while it is pointed at, one at a time, handed over from piece to piece in the same frame, and gone 220 ms after the pointer leaves. The column ladder was removed entirely.\",\"format\":2,\"happened\":\"the developer, on seeing it, said no label needs to show on every piece: show a garment's price when the mouse comes over it. A ladder of fourteen prices drew the eye away from the garments, and its layout (columns per piece and per screen size, fixed through every move) was the hardest part of the tags.\",\"kind\":\"my-mistake\",\"learnedBy\":\"developer\",\"lesson\":\"L-GWV0\",\"packages\":\"\",\"product\":\"fashion-shop-product-carousel-react-native\",\"productRevision\":1,\"publishedAt\":\"2026-11-14T09:04:49.247Z\",\"rule\":\"If a rail or carousel with bunched items shows a label on every item, show only the front item's label at rest, and another item's only while a mouse or a resting finger is on it.\",\"site\":\"https://upfork.dev\",\"snippet\":\"```ts\\n// before: every piece's tag laid out, stepped down in columns at the rail's ends\\nconst shown = mounted(i) && measured(i);\\n// after: the front's full tag (until edge-on), and the one piece pointed at while it unfurls\\nconst full = f.theta < 45 ? 1 : 0;\\nconst shown = full || (i === hover && grow > 0.001);\\n```\",\"title\":\"A price tag on every item of a dense rail is noise: show the one in front, and any other only while it is pointed at\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-GWV0\",\"version\":1,\"why\":\"\"}",
    "recordHash": "4ae362f50bafc5d6e2b993d03378ce39cd55788d3045ea23e40d093fb92da3fb",
    "prevHash": "4e06ff55674055feaec35554f644dc2a4294588ad80c27d7ab9229930ca3a941",
    "entryHash": "0ad0539127040217ee9ce19917520b8590f2294336ee827ade30a791885b7625",
    "keyId": "k1",
    "signature": "K3UsRWjuhbco5WvJbs6PcQ/UV3xd/2bC3GXrjHWZqyAX1UOyzeL4GITEIjaW+HomCqdEhBRix74RmafI/X0ADw==",
    "recordedAt": "2026-11-14T09:05:31.107905+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [
    {
      "seq": 826,
      "prevHash": "0ad0539127040217ee9ce19917520b8590f2294336ee827ade30a791885b7625",
      "recordHash": "8c5d146c581d3ba6f3cb3fdcf1d7439d45a13e6b423c9dd7bf6ee4236e86c952",
      "entryHash": "3de79e690581f45cb60606276a0b1a26c247fa183171bd8341fb6fede388f401"
    },
    {
      "seq": 827,
      "prevHash": "3de79e690581f45cb60606276a0b1a26c247fa183171bd8341fb6fede388f401",
      "recordHash": "776f7b5598665c2cf2156a02c36acb4601c29f4cf9625f747010e41ac85fb111",
      "entryHash": "a266f38f082a50e3a8380f2be1ad3233d2313769b12a0e2baa754bf3c3f8c702"
    },
    {
      "seq": 828,
      "prevHash": "a266f38f082a50e3a8380f2be1ad3233d2313769b12a0e2baa754bf3c3f8c702",
      "recordHash": "f03f175240cb4563369771d051bec11f43652f3f410c321dedc70b9b19ebac1d",
      "entryHash": "7cea0ea782ed93c1fa81db556db2a5e5741b68343ca1e84fecdcfbcfbc43305f"
    },
    {
      "seq": 829,
      "prevHash": "7cea0ea782ed93c1fa81db556db2a5e5741b68343ca1e84fecdcfbcfbc43305f",
      "recordHash": "ccb249aa34f2c155cc63cdf9cb2cb0a88e0987ab45d44a30a924eed93677c763",
      "entryHash": "2a45f3c285cf64a1122ae3a0ff8bee8a2f7d85ad54c2d1ade5aa6d94ea89b189"
    },
    {
      "seq": 830,
      "prevHash": "2a45f3c285cf64a1122ae3a0ff8bee8a2f7d85ad54c2d1ade5aa6d94ea89b189",
      "recordHash": "46d3c69e392335739ea5ef11cc680a60682238127912aea35160b07484d42e7b",
      "entryHash": "3123c44ae7e89b32299bc5b38178ec1555bca3a104a184e4df5c097601d2063c"
    },
    {
      "seq": 831,
      "prevHash": "3123c44ae7e89b32299bc5b38178ec1555bca3a104a184e4df5c097601d2063c",
      "recordHash": "079b3ed696be7e770c189191d27a9559fe92b563b0f8a2a736c24e764694f46a",
      "entryHash": "f547fa4f1eb49e9920535cc73e1bb9a33d266f6263cd079424cdb2d7b479d1de"
    },
    {
      "seq": 832,
      "prevHash": "f547fa4f1eb49e9920535cc73e1bb9a33d266f6263cd079424cdb2d7b479d1de",
      "recordHash": "84f82e76c65f01b077dcda0935a66820c4987c084d6b6b04ab17d42b0fd73529",
      "entryHash": "7e96265b65dd92629c7f506dc8bdc46b2c78ed0021e16f71b9b9eab545a9b35f"
    },
    {
      "seq": 833,
      "prevHash": "7e96265b65dd92629c7f506dc8bdc46b2c78ed0021e16f71b9b9eab545a9b35f",
      "recordHash": "aeb03442f0f146591a8445aadda4f64c70aa23a64744e25f8ae6a37a12ffca5b",
      "entryHash": "d66c6363f0af556edfe7fd0636bf71f925150b778df8831f7ba2533e049a52fe"
    },
    {
      "seq": 834,
      "prevHash": "d66c6363f0af556edfe7fd0636bf71f925150b778df8831f7ba2533e049a52fe",
      "recordHash": "33ec0943f0561ff0bc56c179cb65c672f03123138afe5b34598e03be3e81339e",
      "entryHash": "24196b4ece4e42b30a24671ba19ec1fcf363462c003409ac05f3a23cfe846fa0"
    },
    {
      "seq": 835,
      "prevHash": "24196b4ece4e42b30a24671ba19ec1fcf363462c003409ac05f3a23cfe846fa0",
      "recordHash": "153992f5bfca13c3e836fa08faa34091b62a0dd7497a5b6e7ee830d1ccb1bd87",
      "entryHash": "7cb441093fb1197b509b7c5793af37ddc3cb0c666eda6dccfdf268b38c1ae9ed"
    },
    {
      "seq": 836,
      "prevHash": "7cb441093fb1197b509b7c5793af37ddc3cb0c666eda6dccfdf268b38c1ae9ed",
      "recordHash": "e89bf5ea7863d3b382ae20a4099cc21ae4420207ce16b37c3de2975858457dee",
      "entryHash": "52d965be12c136a86ad05e30a114aac88a898da76f2586d8147835728dd1740b"
    },
    {
      "seq": 837,
      "prevHash": "52d965be12c136a86ad05e30a114aac88a898da76f2586d8147835728dd1740b",
      "recordHash": "f9490c54f9ea586318f15bb31f856fa641e4e8927b6c8825f31c7a187086d7c0",
      "entryHash": "fab47ecac33e14784804a812d9a7e7f1596c52a1366de831513e9216e7605cba"
    },
    {
      "seq": 838,
      "prevHash": "fab47ecac33e14784804a812d9a7e7f1596c52a1366de831513e9216e7605cba",
      "recordHash": "97fd008e98b44bd87f0b34f16091d02b1276edb79685a7d847c531dc34c4675a",
      "entryHash": "0af47ac5f9f69d48a361c9a3bbf0f87e4be4d1843c9854a1375df16bcaec87dc"
    },
    {
      "seq": 839,
      "prevHash": "0af47ac5f9f69d48a361c9a3bbf0f87e4be4d1843c9854a1375df16bcaec87dc",
      "recordHash": "6117ceeaecef0bc8fa9001d641237430be2a6cbc0a97a8a30e22e47990d868cd",
      "entryHash": "af9087ef0fdd1c33114e478711a5382ea072fd15884d7175fc8c4251c14a4627"
    },
    {
      "seq": 840,
      "prevHash": "af9087ef0fdd1c33114e478711a5382ea072fd15884d7175fc8c4251c14a4627",
      "recordHash": "773d4a549cbff638705d96817b11d217421c0cd0553a33924832fa9e43f3a91f",
      "entryHash": "b067b82b3ff1611468d4ee94c82af168f0400873c0e0ff11712ecce771930572"
    },
    {
      "seq": 841,
      "prevHash": "b067b82b3ff1611468d4ee94c82af168f0400873c0e0ff11712ecce771930572",
      "recordHash": "de5433791ac807fb4a1f568cc3c1915685b03db8a2d28a32a32b6ce4f6d328b7",
      "entryHash": "abe1b6330dcbdb6166a7f7403095e954fb9684950732befb18b4ada1ed444d30"
    },
    {
      "seq": 842,
      "prevHash": "abe1b6330dcbdb6166a7f7403095e954fb9684950732befb18b4ada1ed444d30",
      "recordHash": "a53f25fb442567410a7ff08583378d1bc50970318ef0ddc09ae9529f1fe71489",
      "entryHash": "e6a3a637df00fc39f45c8efec9d99d72413c1d1177990cc6e8354250802efac0"
    },
    {
      "seq": 843,
      "prevHash": "e6a3a637df00fc39f45c8efec9d99d72413c1d1177990cc6e8354250802efac0",
      "recordHash": "5c3ea41050a69d9e9b7c68c8ae34d597d309cfdc0e03093e4df1e6e25b3c0181",
      "entryHash": "28c6fb492b7c63105d7db454ac61e1e2f383ca7cd99ec3ef9866c1701582f317"
    },
    {
      "seq": 844,
      "prevHash": "28c6fb492b7c63105d7db454ac61e1e2f383ca7cd99ec3ef9866c1701582f317",
      "recordHash": "c80bd6c67aff2c874f8718bc830cca7a1a8b8cb354f91f216591e128193f399a",
      "entryHash": "a7a38da01fc9a216e01ade45a8a338b9dc073539ba6e5e785c1cd7d5eb513e36"
    },
    {
      "seq": 845,
      "prevHash": "a7a38da01fc9a216e01ade45a8a338b9dc073539ba6e5e785c1cd7d5eb513e36",
      "recordHash": "8c3a6886b67be4405073384ed57ea55f38a5512035912ca2bb7e735c9bdb4c5e",
      "entryHash": "7521085d5e7cfbaffb3e33f86eab16ee31658d70a16965b961b03aacf06437b6"
    }
  ],
  "checkpoint": {
    "seq": 845,
    "kind": "checkpoint",
    "record": "{\"day\":\"2026-11-15\",\"entries\":844,\"head\":\"a7a38da01fc9a216e01ade45a8a338b9dc073539ba6e5e785c1cd7d5eb513e36\",\"site\":\"https://upfork.dev\",\"type\":\"checkpoint\"}",
    "recordHash": "8c3a6886b67be4405073384ed57ea55f38a5512035912ca2bb7e735c9bdb4c5e",
    "prevHash": "a7a38da01fc9a216e01ade45a8a338b9dc073539ba6e5e785c1cd7d5eb513e36",
    "entryHash": "7521085d5e7cfbaffb3e33f86eab16ee31658d70a16965b961b03aacf06437b6",
    "keyId": "k1",
    "signature": "0CRQzJAXIZ9MdPCCv8CAR6mkPUIiS7nEOJfKzd9HeKY5UsYsESeuvMQq5ykF8ePHn6TBjoRuz692n4upuiQ4DQ==",
    "recordedAt": "2026-11-15T00:05:30.910485+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "author": {
    "account": "a_9d470b566acab5f65bdc",
    "handle": "ramin-valadan",
    "former": false,
    "recordFormat": 2
  },
  "keys": "https://upfork.dev/ledger/keys.json"
}