favilla 0.0.0-stage → 1.2.17
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.
- package/LICENSE +21 -0
- package/README.md +213 -2
- package/bin/favilla.mjs +7 -0
- package/dist/assets/design/LICENSE +24 -0
- package/dist/assets/design/app.json +584 -0
- package/dist/assets/design/directions.json +337 -0
- package/dist/assets/design/palettes.json +596 -0
- package/dist/assets/design/type.json +618 -0
- package/dist/assets/desktop/windows.ps1 +244 -0
- package/dist/assets/music/render.js +446 -0
- package/dist/assets/music/sounds.json +1 -0
- package/dist/assets/paint/engine.js +2385 -0
- package/dist/assets/preview/point.js +187 -0
- package/dist/assets/prompts/agent-explore.md +5 -0
- package/dist/assets/prompts/agent-general.md +7 -0
- package/dist/assets/prompts/answer-plain.md +29 -0
- package/dist/assets/prompts/answer-structured.md +59 -0
- package/dist/assets/prompts/app-styles.md +5 -0
- package/dist/assets/prompts/autonomous.md +2 -0
- package/dist/assets/prompts/base.md +38 -0
- package/dist/assets/prompts/brief-looks.md +9 -0
- package/dist/assets/prompts/brief-made.md +8 -0
- package/dist/assets/prompts/brief-review.md +29 -0
- package/dist/assets/prompts/brief.md +32 -0
- package/dist/assets/prompts/compact.md +13 -0
- package/dist/assets/prompts/design-look-blind.md +1 -0
- package/dist/assets/prompts/design-look.md +1 -0
- package/dist/assets/prompts/design-measure.md +1 -0
- package/dist/assets/prompts/design.md +32 -0
- package/dist/assets/prompts/directions.md +9 -0
- package/dist/assets/prompts/documents.md +6 -0
- package/dist/assets/prompts/engineering.md +10 -0
- package/dist/assets/prompts/family-open.md +4 -0
- package/dist/assets/prompts/plan.md +8 -0
- package/dist/assets/prompts/shadow-tests-js.md +12 -0
- package/dist/assets/prompts/shadow-tests-py.md +12 -0
- package/dist/assets/prompts/shadow-tests.md +12 -0
- package/dist/assets/prompts/style-deepseek.md +7 -0
- package/dist/assets/prompts/style-glm.md +4 -0
- package/dist/assets/prompts/style-gpt.md +4 -0
- package/dist/assets/prompts/tools-claude.md +9 -0
- package/dist/assets/prompts/tools-codex.md +11 -0
- package/dist/assets/prompts/tools-favilla.md +9 -0
- package/dist/assets/prompts/voices/favilla.md +42 -0
- package/dist/assets/prompts/writing-docs.md +17 -0
- package/dist/assets/skills/motion/SKILL.md +116 -0
- package/dist/assets/skills/music/SKILL.md +130 -0
- package/dist/assets/skills/paint/SKILL.md +212 -0
- package/dist/favilla.mjs +312004 -0
- package/dist/web/assets/Settings-BQtvLY2w.js +9 -0
- package/dist/web/assets/abnfDiagram-YUKMZFIV-DrJJw1P9.js +1 -0
- package/dist/web/assets/arc-Y1ARJVZ4.js +1 -0
- package/dist/web/assets/architecture-WOLXFQ4H-B6f5PE5v.js +1 -0
- package/dist/web/assets/architectureDiagram-47P4ROYG-DvUSStVc.js +36 -0
- package/dist/web/assets/array-BifhSqXX.js +1 -0
- package/dist/web/assets/blockDiagram-E7TT5TSB-SgPSaRHT.js +140 -0
- package/dist/web/assets/board-BTd_WPzR.png +0 -0
- package/dist/web/assets/c4Diagram-CRA5TL53-B_nDX4sS.js +38 -0
- package/dist/web/assets/channel-Chz0CiLa.js +1 -0
- package/dist/web/assets/chunk-2BW5OAIV-CZvfDHzx.js +10 -0
- package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/web/assets/chunk-3YJQHVM4-3nEvEbyp.js +2 -0
- package/dist/web/assets/chunk-4EA7E6EY-NsBjePnm.js +1 -0
- package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/web/assets/chunk-7TKQ45FW-CnWiB-Cj.js +1 -0
- package/dist/web/assets/chunk-AW2ZBBNX-BAor5wBK.js +88 -0
- package/dist/web/assets/chunk-DBDB3WZW-8D-lLkOt.js +1 -0
- package/dist/web/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
- package/dist/web/assets/chunk-E2ZNV5FY-D8L__avl.js +72 -0
- package/dist/web/assets/chunk-EU5HNXII-Bbmqjgwi.js +213 -0
- package/dist/web/assets/chunk-FVRAUYC3-D7kgWhyj.js +2 -0
- package/dist/web/assets/chunk-HJ2JQQFS-DgVQIefQ.js +1 -0
- package/dist/web/assets/chunk-HTAEGDNF-CEM8blxY.js +1 -0
- package/dist/web/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
- package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/web/assets/chunk-KQW6MTUR-CwTR03Zv.js +1 -0
- package/dist/web/assets/chunk-NGNAAXSQ-Bw6tHVuc.js +136 -0
- package/dist/web/assets/chunk-NTY3LDVX-BCN79keJ.js +1 -0
- package/dist/web/assets/chunk-VPRB5NB3-DE6ywIBH.js +129 -0
- package/dist/web/assets/chunk-XC4XBNZT-C-g-FjRO.js +62 -0
- package/dist/web/assets/chunk-XXDRQBXY-CnbRkih_.js +1 -0
- package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/web/assets/classDiagram-v2-K4WV4PDN-C0Cfs-Cq.js +217 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-K3dQfwLT.js +1 -0
- package/dist/web/assets/cynefin-EF2NZ3EQ-T7AqHc4N.js +1 -0
- package/dist/web/assets/cynefinDiagram-3GCD6N5R-YXsgXRdL.js +62 -0
- package/dist/web/assets/cytoscape.esm-Bn1wUjr1.js +321 -0
- package/dist/web/assets/dagre-W4DXFKR2-DWie709t.js +4 -0
- package/dist/web/assets/de-CWzByTTc.js +1 -0
- package/dist/web/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/web/assets/diagram-2UJZ2QOL-BXeedlB_.js +200 -0
- package/dist/web/assets/diagram-OVF4WLC6-qHY97DxC.js +24 -0
- package/dist/web/assets/diagram-PFPMY2P6-heEPog41.js +30 -0
- package/dist/web/assets/diagram-UMYRVEAY-Bnn29IXo.js +24 -0
- package/dist/web/assets/diagram-YEKJPTXX-DXDLI8vd.js +41 -0
- package/dist/web/assets/diagram-ZIFT7M5P-ChRqkJ06.js +3 -0
- package/dist/web/assets/dist-CumnGVmJ.js +1 -0
- package/dist/web/assets/ebnfDiagram-VR2GEFS7-CbwTtNaR.js +1 -0
- package/dist/web/assets/elk-IJKZMXRS-BcwQqggq.js +27 -0
- package/dist/web/assets/erDiagram-O2IAPWRE-BZWfuymp.js +99 -0
- package/dist/web/assets/es-C1Nnd4WK.js +1 -0
- package/dist/web/assets/eventmodeling-K75KTNOO-DmKGHuTO.js +1 -0
- package/dist/web/assets/flowDiagram-OXPTDLAJ-DS6E3sAx.js +1 -0
- package/dist/web/assets/fr-DDf0krct.js +1 -0
- package/dist/web/assets/ganttDiagram-R7TSEDQI-C6YjmGx2.js +292 -0
- package/dist/web/assets/gitGraph-VSP46ZUC-CWDqULxT.js +1 -0
- package/dist/web/assets/gitGraphDiagram-XJZIOB7I-CQ4dT1pA.js +106 -0
- package/dist/web/assets/graphite-Cqtfi16Z.png +0 -0
- package/dist/web/assets/graphite-board-J7Jiesmo.png +0 -0
- package/dist/web/assets/graphlib-DS17s2tU.js +1 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
- package/dist/web/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2 +0 -0
- package/dist/web/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-400-italic-Bf1n82Tb.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-400-italic-D9J6q4_O.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-ext-400-italic-BELOEI8R.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-ext-400-italic-CfSXsIbO.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-greek-400-italic-BEZwmy7D.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-greek-400-italic-CTYLy0lX.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-400-italic-CZTNEAuW.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-400-italic-CsGl1sm0.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-ext-400-italic-Du9zzoL2.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-ext-400-italic-V_9i1P_m.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-vietnamese-400-italic-78jqtfZH.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-vietnamese-400-italic-BbRnwouv.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2 +0 -0
- package/dist/web/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff +0 -0
- package/dist/web/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2 +0 -0
- package/dist/web/assets/index-CG6Oo0ii.js +87 -0
- package/dist/web/assets/index-DmSaMuo4.css +1 -0
- package/dist/web/assets/info-OHQRW6UA-B8xQKWbJ.js +1 -0
- package/dist/web/assets/infoDiagram-5W2HQ5XZ-CrmPcg4u.js +2 -0
- package/dist/web/assets/init-C-OQMol4.js +1 -0
- package/dist/web/assets/ishikawaDiagram-K3B6WC7H-D_cryvUp.js +70 -0
- package/dist/web/assets/ja-Dn7BGnzp.js +1 -0
- package/dist/web/assets/journeyDiagram-COXZFDF6-D_g2OZk5.js +139 -0
- package/dist/web/assets/kanban-definition-P3RFRI5V-slArz_fE.js +89 -0
- package/dist/web/assets/katex-DJhrJSbw.js +257 -0
- package/dist/web/assets/kiln-board-BkQiBelw.png +0 -0
- package/dist/web/assets/kiln-night-board-qRfEZdbh.png +0 -0
- package/dist/web/assets/kiln-night-irZPi85h.png +0 -0
- package/dist/web/assets/kiln-paper-DqGQJ0fA.png +0 -0
- package/dist/web/assets/ko-jviDJlGF.js +1 -0
- package/dist/web/assets/line-p1USWFRd.js +1 -0
- package/dist/web/assets/linear-gLkGxN9m.js +1 -0
- package/dist/web/assets/mermaid-parser.core-D9WklGnt.js +7 -0
- package/dist/web/assets/mermaid.core-CVFwvwq0.js +44 -0
- package/dist/web/assets/mindmap-definition-LZFPQGKD-iqV7hRTk.js +96 -0
- package/dist/web/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/web/assets/packet-JDAUHWVQ-Dgre0rx9.js +1 -0
- package/dist/web/assets/path-fybaL0A-.js +1 -0
- package/dist/web/assets/pegDiagram-BGZESJAR-C5cr8F-q.js +1 -0
- package/dist/web/assets/pie-XZMESJXO-CdYWmJK8.js +1 -0
- package/dist/web/assets/pieDiagram-CAPJLFHJ-ZihkVFV7.js +39 -0
- package/dist/web/assets/plain-board-BBiiHVVS.png +0 -0
- package/dist/web/assets/porcelain-b-oAG5nr.png +0 -0
- package/dist/web/assets/porcelain-board-Ct_T1k1X.png +0 -0
- package/dist/web/assets/pt-BR-B97wPDmD.js +1 -0
- package/dist/web/assets/quadrantDiagram-GDMTTRAM-BPenvwqU.js +7 -0
- package/dist/web/assets/radar-ABXABTNO-DNYDdN-q.js +1 -0
- package/dist/web/assets/railroad-I3PHUGI6-DMbMxPxq.js +1 -0
- package/dist/web/assets/railroad-abnf-LNEFI6M7-BJNcyRdm.js +1 -0
- package/dist/web/assets/railroad-ebnf-DWYD2UWJ-D4gAVW_H.js +1 -0
- package/dist/web/assets/railroad-peg-JR7BVNR7-CYE2hs_r.js +1 -0
- package/dist/web/assets/railroadDiagram-SM67HX2B-D0G35893.js +1 -0
- package/dist/web/assets/requirementDiagram-X7JNWC4A-DpKhltO7.js +84 -0
- package/dist/web/assets/rolldown-runtime-COiEfhsA.js +1 -0
- package/dist/web/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dist/web/assets/ru-acinLx75.js +1 -0
- package/dist/web/assets/sankeyDiagram-UM26HJRW-D22siN9n.js +40 -0
- package/dist/web/assets/sequenceDiagram-ZO4K6R2Y-DLeJtf6k.js +169 -0
- package/dist/web/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dist/web/assets/src-BWF7jMDv.js +1 -0
- package/dist/web/assets/stateDiagram-v2-TBUQTH76-O67PPfKw.js +291 -0
- package/dist/web/assets/swimlanes-N4OXWK64-7ibtwNjg.js +1 -0
- package/dist/web/assets/swimlanesDiagram-K3J5GTZL-4LDeytP0.js +8 -0
- package/dist/web/assets/timeline-definition-YOQAKGHF-DAwFj5sK.js +120 -0
- package/dist/web/assets/treeView-D4JQ5SDB-DX81ygOJ.js +1 -0
- package/dist/web/assets/treemap-SAJKECNS-CPrcTbfu.js +1 -0
- package/dist/web/assets/usecaseDiagram-VIAY4XPW-By1FKcQG.js +328 -0
- package/dist/web/assets/vellum-Dy0uS4B3.png +0 -0
- package/dist/web/assets/vennDiagram-BLWOH2XV-CJcEvP9-.js +34 -0
- package/dist/web/assets/wardley-7MLQ67FV-C4CboNLh.js +1 -0
- package/dist/web/assets/wardleyDiagram-YMQ3BMBF-BhFQc_KH.js +78 -0
- package/dist/web/assets/xychartDiagram-TAQBALBS-BWGadiHi.js +7 -0
- package/dist/web/assets/zh-TW-BXXhkC_c.js +1 -0
- package/dist/web/icon-small.png +0 -0
- package/dist/web/icon.png +0 -0
- package/dist/web/index.html +19 -0
- package/dist/web/manifest.webmanifest +11 -0
- package/dist/web/sw.js +29 -0
- package/package.json +39 -4
|
@@ -0,0 +1,584 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "achromatic-ledger",
|
|
4
|
+
"name": "Achromatic ledger",
|
|
5
|
+
"theme": "light",
|
|
6
|
+
"idea": "The chrome holds no colour at all; money and counts are set in ink, the one chart hue marks the screen's main data element, and the only other hue is a small signal where a figure changed.",
|
|
7
|
+
"colourBudget": "under 1% coloured pixels; the chrome is ink, the one chart hue goes on the main data element, and the only other hue is a small change signal",
|
|
8
|
+
"signature": "No brand colour anywhere in the chrome: the one primary action is near-black (a grey pill, #e5e5e5, is the secondary), the main data element (today's series, the booked bars, the current period) takes the one chart hue, #1d5fbf, and everything else is drawn in ink with the comparison or the part after the cursor in grey, zero balances are set in grey, and the only hue on the screen is a small triangle or a short coloured number where a figure changed.",
|
|
9
|
+
"tokens": {
|
|
10
|
+
"ground": "#f8f8f8",
|
|
11
|
+
"surface": "#ffffff",
|
|
12
|
+
"raised": "#eeeeee",
|
|
13
|
+
"border": "#e6e6e6",
|
|
14
|
+
"rule": "#f0f0f0",
|
|
15
|
+
"control": "#d4d4d4",
|
|
16
|
+
"text": "#0a0a0a",
|
|
17
|
+
"muted": "#6b6b6b",
|
|
18
|
+
"accent": "#141414",
|
|
19
|
+
"positive": "#2e7d32",
|
|
20
|
+
"negative": "#c4242a",
|
|
21
|
+
"warning": "#92400e",
|
|
22
|
+
"chart": [
|
|
23
|
+
"#141414",
|
|
24
|
+
"#8a8a8a",
|
|
25
|
+
"#1d5fbf"
|
|
26
|
+
],
|
|
27
|
+
"pills": {
|
|
28
|
+
"positive": [
|
|
29
|
+
"#dcfae5",
|
|
30
|
+
"#04250e"
|
|
31
|
+
],
|
|
32
|
+
"negative": [
|
|
33
|
+
"#ffedea",
|
|
34
|
+
"#831c1e"
|
|
35
|
+
],
|
|
36
|
+
"warning": [
|
|
37
|
+
"#fffbeb",
|
|
38
|
+
"#92400e"
|
|
39
|
+
],
|
|
40
|
+
"neutral": [
|
|
41
|
+
"#eeeeee",
|
|
42
|
+
"#3d3d3d"
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"radius": {
|
|
46
|
+
"card": 8,
|
|
47
|
+
"control": 6
|
|
48
|
+
},
|
|
49
|
+
"font": {
|
|
50
|
+
"family": "Geist",
|
|
51
|
+
"second": "Geist Mono, for IDs and keys only",
|
|
52
|
+
"fallback": "Inter, system-ui, sans-serif",
|
|
53
|
+
"sizes": {
|
|
54
|
+
"title": 24,
|
|
55
|
+
"section": 16,
|
|
56
|
+
"kpi": 30,
|
|
57
|
+
"body": 14,
|
|
58
|
+
"small": 12
|
|
59
|
+
},
|
|
60
|
+
"weights": [
|
|
61
|
+
400,
|
|
62
|
+
500,
|
|
63
|
+
700
|
|
64
|
+
],
|
|
65
|
+
"note": "700 is for money figures only; every other number is 400-500."
|
|
66
|
+
},
|
|
67
|
+
"density": "sparse",
|
|
68
|
+
"rowHeight": 44,
|
|
69
|
+
"sidebarWidth": 256,
|
|
70
|
+
"gap": 12,
|
|
71
|
+
"pad": 24,
|
|
72
|
+
"controlHeight": 36
|
|
73
|
+
},
|
|
74
|
+
"avoid": [
|
|
75
|
+
"a brand-coloured primary button",
|
|
76
|
+
"tinted cards or tinted KPI tiles",
|
|
77
|
+
"a coloured chart where one series in ink says it",
|
|
78
|
+
"bold on anything but money",
|
|
79
|
+
"a chart with no y-scale (the study's one example of this look hid magnitude behind hover and was flagged)",
|
|
80
|
+
"a grey pill as the only button for the screen's main job: in testing an Approve repeated in grey on every row left the screen without a primary"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "framed-sheet",
|
|
85
|
+
"name": "Framed sheet",
|
|
86
|
+
"theme": "light",
|
|
87
|
+
"idea": "The app chrome is one tinted L-shaped frame; the work sits on a white sheet with a hairline edge and soft corners, so depth comes from a single tone step and no shadow.",
|
|
88
|
+
"colourBudget": "under 3%; the brand shrinks to the logo and a 2px tab underline, the data carries the chroma",
|
|
89
|
+
"signature": "One tinted frame holds the sidebar and the 48px top bar with no rule between them; the page is a white sheet inset 8px from the window's right and bottom edges, with a 1px edge, 16px corners and no shadow. The active tab is a 2px underline in ink or the accent; everything else in the chrome is grey.",
|
|
90
|
+
"tokens": {
|
|
91
|
+
"ground": "#f9fbfc",
|
|
92
|
+
"surface": "#ffffff",
|
|
93
|
+
"raised": "#f4f6f8",
|
|
94
|
+
"active": "#ebedee",
|
|
95
|
+
"border": "#e8eaec",
|
|
96
|
+
"rule": "#f0f1f2",
|
|
97
|
+
"control": "#cdced1",
|
|
98
|
+
"text": "#131416",
|
|
99
|
+
"muted": "#5d5f60",
|
|
100
|
+
"accent": "#1b6c80",
|
|
101
|
+
"positive": "#1e7b4f",
|
|
102
|
+
"negative": "#c4242a",
|
|
103
|
+
"warning": "#92400e",
|
|
104
|
+
"chart": [
|
|
105
|
+
"#1b6c80",
|
|
106
|
+
"#2f70bb",
|
|
107
|
+
"#a86f0c"
|
|
108
|
+
],
|
|
109
|
+
"pills": {
|
|
110
|
+
"positive": [
|
|
111
|
+
"#dcfae5",
|
|
112
|
+
"#04250e"
|
|
113
|
+
],
|
|
114
|
+
"negative": [
|
|
115
|
+
"#ffedea",
|
|
116
|
+
"#831c1e"
|
|
117
|
+
],
|
|
118
|
+
"warning": [
|
|
119
|
+
"#fffbeb",
|
|
120
|
+
"#92400e"
|
|
121
|
+
],
|
|
122
|
+
"neutral": [
|
|
123
|
+
"#ebedee",
|
|
124
|
+
"#353736"
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
"radius": {
|
|
128
|
+
"card": 8,
|
|
129
|
+
"control": 6,
|
|
130
|
+
"sheet": 16
|
|
131
|
+
},
|
|
132
|
+
"sheetInset": 8,
|
|
133
|
+
"font": {
|
|
134
|
+
"family": "IBM Plex Sans",
|
|
135
|
+
"second": "IBM Plex Mono, for IDs and keys only",
|
|
136
|
+
"fallback": "Inter, system-ui, sans-serif",
|
|
137
|
+
"sizes": {
|
|
138
|
+
"title": 22,
|
|
139
|
+
"section": 16,
|
|
140
|
+
"kpi": 28,
|
|
141
|
+
"body": 14,
|
|
142
|
+
"small": 12
|
|
143
|
+
},
|
|
144
|
+
"weights": [
|
|
145
|
+
400,
|
|
146
|
+
500,
|
|
147
|
+
600
|
|
148
|
+
],
|
|
149
|
+
"note": "KPI values at 400; the semibold goes on the label and the active tab."
|
|
150
|
+
},
|
|
151
|
+
"density": "medium",
|
|
152
|
+
"rowHeight": 48,
|
|
153
|
+
"sidebarWidth": 228,
|
|
154
|
+
"gap": 24,
|
|
155
|
+
"pad": 24,
|
|
156
|
+
"controlHeight": 32
|
|
157
|
+
},
|
|
158
|
+
"avoid": [
|
|
159
|
+
"a border between the sidebar and the top bar",
|
|
160
|
+
"a shadow under the sheet",
|
|
161
|
+
"cards whose border is heavier than the sheet's (#cdcfcf on cards read as heavy in the study)",
|
|
162
|
+
"a fourth nesting level: frame, sheet and card are enough",
|
|
163
|
+
"different gutters for the KPI row and the chart row (20 against 24 was flagged)"
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "accent-ladder",
|
|
168
|
+
"name": "Accent ladder",
|
|
169
|
+
"theme": "light",
|
|
170
|
+
"idea": "One brand hue at full strength only on small marks, and its pale tints doing all the area work: the active nav row, a plan card, badges and progress tracks.",
|
|
171
|
+
"colourBudget": "3-10%, nearly all of it as pale tints of the one hue",
|
|
172
|
+
"signature": "The full hue goes only on small marks: the one filled-button style, the data series and the active nav icon. Its 50-200 tints carry every area: the active nav row (tint fill with the dark ink of the hue), the plan or trial card, badges and progress tracks. The primary action may instead be near-black, as on the study's newsletter home.",
|
|
173
|
+
"tokens": {
|
|
174
|
+
"ground": "#f9fafb",
|
|
175
|
+
"surface": "#ffffff",
|
|
176
|
+
"raised": "#f3f4f6",
|
|
177
|
+
"border": "#e5e7eb",
|
|
178
|
+
"rule": "#f2f2f2",
|
|
179
|
+
"control": "#d1d5db",
|
|
180
|
+
"text": "#111827",
|
|
181
|
+
"muted": "#5f6672",
|
|
182
|
+
"accent": "#b8336a",
|
|
183
|
+
"accentSoft": "#fdf2f7",
|
|
184
|
+
"accentTrack": "#f8dbe8",
|
|
185
|
+
"accentInk": "#6b1d3e",
|
|
186
|
+
"positive": "#247b50",
|
|
187
|
+
"negative": "#c4242a",
|
|
188
|
+
"warning": "#92400e",
|
|
189
|
+
"chart": [
|
|
190
|
+
"#b8336a",
|
|
191
|
+
"#6b7280",
|
|
192
|
+
"#d4618f"
|
|
193
|
+
],
|
|
194
|
+
"pills": {
|
|
195
|
+
"positive": [
|
|
196
|
+
"#dcfce7",
|
|
197
|
+
"#14532d"
|
|
198
|
+
],
|
|
199
|
+
"negative": [
|
|
200
|
+
"#ffedea",
|
|
201
|
+
"#831c1e"
|
|
202
|
+
],
|
|
203
|
+
"warning": [
|
|
204
|
+
"#fffbeb",
|
|
205
|
+
"#92400e"
|
|
206
|
+
],
|
|
207
|
+
"neutral": [
|
|
208
|
+
"#f3f4f6",
|
|
209
|
+
"#374151"
|
|
210
|
+
],
|
|
211
|
+
"accent": [
|
|
212
|
+
"#fdf2f7",
|
|
213
|
+
"#6b1d3e"
|
|
214
|
+
]
|
|
215
|
+
},
|
|
216
|
+
"radius": {
|
|
217
|
+
"card": 8,
|
|
218
|
+
"control": 6
|
|
219
|
+
},
|
|
220
|
+
"font": {
|
|
221
|
+
"family": "DM Sans",
|
|
222
|
+
"second": null,
|
|
223
|
+
"fallback": "Inter, system-ui, sans-serif",
|
|
224
|
+
"sizes": {
|
|
225
|
+
"title": 32,
|
|
226
|
+
"section": 18,
|
|
227
|
+
"kpi": 24,
|
|
228
|
+
"body": 14,
|
|
229
|
+
"small": 12
|
|
230
|
+
},
|
|
231
|
+
"weights": [
|
|
232
|
+
400,
|
|
233
|
+
500,
|
|
234
|
+
600,
|
|
235
|
+
700
|
|
236
|
+
],
|
|
237
|
+
"note": "700 for the page title only."
|
|
238
|
+
},
|
|
239
|
+
"density": "sparse",
|
|
240
|
+
"rowHeight": 45,
|
|
241
|
+
"sidebarWidth": 230,
|
|
242
|
+
"gap": 24,
|
|
243
|
+
"pad": 24,
|
|
244
|
+
"controlHeight": 32
|
|
245
|
+
},
|
|
246
|
+
"avoid": [
|
|
247
|
+
"the full hue on large areas",
|
|
248
|
+
"a second accent family (four families on one screen was flagged in the study)",
|
|
249
|
+
"a gradient on the trial chip or upgrade button",
|
|
250
|
+
"a left accent bar on the active nav row on top of the tint (seen once in 23 screens)",
|
|
251
|
+
"violet or indigo"
|
|
252
|
+
]
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"id": "editorial-greeting",
|
|
256
|
+
"name": "Editorial greeting",
|
|
257
|
+
"theme": "light",
|
|
258
|
+
"idea": "A personal or team home that opens with a typeset greeting in a centred column; every number below it is set at regular weight on tonal panels.",
|
|
259
|
+
"colourBudget": "under 2% for the accent; tonal panels carry the structure",
|
|
260
|
+
"signature": "The greeting is the h1, in a centred 1100px column on a real 12-column grid (77px columns, 16px gutters), with spans that change by row but share column lines (3/3/3/3, then 9/3, then 6/6, so every internal edge meets one above it). Every figure below is set at regular weight on tonal panels, one layer each: a panel one step off white holds its title and its content directly; a white inner card is used once, for the main chart.",
|
|
261
|
+
"tokens": {
|
|
262
|
+
"ground": "#ffffff",
|
|
263
|
+
"surface": "#f9f9f9",
|
|
264
|
+
"raised": "#ffffff",
|
|
265
|
+
"border": "#eaeaea",
|
|
266
|
+
"rule": "#f3f3f3",
|
|
267
|
+
"control": "#d9d9d6",
|
|
268
|
+
"text": "#1f201d",
|
|
269
|
+
"muted": "#636361",
|
|
270
|
+
"accent": "#1b6e66",
|
|
271
|
+
"positive": "#2e7d32",
|
|
272
|
+
"negative": "#b42318",
|
|
273
|
+
"warning": "#92400e",
|
|
274
|
+
"chart": [
|
|
275
|
+
"#1f201d",
|
|
276
|
+
"#1b6e66",
|
|
277
|
+
"#8c8c88"
|
|
278
|
+
],
|
|
279
|
+
"pills": {
|
|
280
|
+
"positive": [
|
|
281
|
+
"#dcfae5",
|
|
282
|
+
"#04250e"
|
|
283
|
+
],
|
|
284
|
+
"negative": [
|
|
285
|
+
"#fdecea",
|
|
286
|
+
"#7a1d14"
|
|
287
|
+
],
|
|
288
|
+
"warning": [
|
|
289
|
+
"#fffbeb",
|
|
290
|
+
"#92400e"
|
|
291
|
+
],
|
|
292
|
+
"neutral": [
|
|
293
|
+
"#f3f3f3",
|
|
294
|
+
"#3d3d3a"
|
|
295
|
+
]
|
|
296
|
+
},
|
|
297
|
+
"radius": {
|
|
298
|
+
"card": 22,
|
|
299
|
+
"control": 999
|
|
300
|
+
},
|
|
301
|
+
"font": {
|
|
302
|
+
"family": "Instrument Sans",
|
|
303
|
+
"second": "Instrument Serif, for the greeting only",
|
|
304
|
+
"fallback": "Inter, system-ui, sans-serif",
|
|
305
|
+
"sizes": {
|
|
306
|
+
"title": 48,
|
|
307
|
+
"section": 14,
|
|
308
|
+
"kpi": 32,
|
|
309
|
+
"body": 14,
|
|
310
|
+
"small": 12
|
|
311
|
+
},
|
|
312
|
+
"weights": [
|
|
313
|
+
400,
|
|
314
|
+
500,
|
|
315
|
+
600
|
|
316
|
+
],
|
|
317
|
+
"note": "The 48px title is the serif greeting; set in the sans it is 24/400. Every figure is 400."
|
|
318
|
+
},
|
|
319
|
+
"density": "sparse",
|
|
320
|
+
"rowHeight": 63,
|
|
321
|
+
"sidebarWidth": 224,
|
|
322
|
+
"gap": 16,
|
|
323
|
+
"pad": 20,
|
|
324
|
+
"controlHeight": 38
|
|
325
|
+
},
|
|
326
|
+
"avoid": [
|
|
327
|
+
"an emoji in the greeting",
|
|
328
|
+
"a tracked uppercase date above the greeting (put the date after it or in the grey line below)",
|
|
329
|
+
"a 624-864px column on a desktop screen (both were flagged as wasted width)",
|
|
330
|
+
"a tray around every card (a grey panel with a white card 6px inside it, on every block, read as a bento template in testing)",
|
|
331
|
+
"red as the accent: in testing red marked a record week of upgrades and read as an alarm; red is for the failing fact only"
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"id": "pastel-consumer",
|
|
336
|
+
"name": "Pastel consumer",
|
|
337
|
+
"theme": "light",
|
|
338
|
+
"idea": "Categories are coded by pale tints whose ink is the dark of the same hue, all under one large radius, and each headline sum sits inside the card that explains it.",
|
|
339
|
+
"colourBudget": "5-8%, as pale tiles and data marks",
|
|
340
|
+
"signature": "Pale category tiles with the dark of their own hue as ink (#dcf1ff with #0a3a80), one large radius (20px on cards, stepping down to 10, 8 and 5 inside), and quiet money polarity: income green with a plus sign, spending in ink, no red on ordinary outgoings. Tints go on small tiles, avatars and chips; a panel that holds a list stays white. When the product has people (two partners, a family), each gets one hue, at least 60 degrees from the next.",
|
|
341
|
+
"tokens": {
|
|
342
|
+
"ground": "#f3f5f7",
|
|
343
|
+
"surface": "#ffffff",
|
|
344
|
+
"raised": "#f2f8fd",
|
|
345
|
+
"border": "#e6e6e6",
|
|
346
|
+
"rule": "#f4f4f4",
|
|
347
|
+
"control": "#d6d9dd",
|
|
348
|
+
"text": "#1b1d1f",
|
|
349
|
+
"muted": "#5c6064",
|
|
350
|
+
"accent": "#1d5fd6",
|
|
351
|
+
"accentSoft": "#dcf1ff",
|
|
352
|
+
"accentInk": "#0a3a80",
|
|
353
|
+
"positive": "#2f7a45",
|
|
354
|
+
"negative": "#c41c29",
|
|
355
|
+
"warning": "#92400e",
|
|
356
|
+
"chart": [
|
|
357
|
+
"#1d5fd6",
|
|
358
|
+
"#b45309",
|
|
359
|
+
"#2a8798"
|
|
360
|
+
],
|
|
361
|
+
"pills": {
|
|
362
|
+
"positive": [
|
|
363
|
+
"#dcfae5",
|
|
364
|
+
"#04250e"
|
|
365
|
+
],
|
|
366
|
+
"negative": [
|
|
367
|
+
"#ffedea",
|
|
368
|
+
"#831c1e"
|
|
369
|
+
],
|
|
370
|
+
"warning": [
|
|
371
|
+
"#fffbeb",
|
|
372
|
+
"#92400e"
|
|
373
|
+
],
|
|
374
|
+
"neutral": [
|
|
375
|
+
"#eef1f4",
|
|
376
|
+
"#3a3d40"
|
|
377
|
+
],
|
|
378
|
+
"accent": [
|
|
379
|
+
"#dcf1ff",
|
|
380
|
+
"#0a3a80"
|
|
381
|
+
]
|
|
382
|
+
},
|
|
383
|
+
"radius": {
|
|
384
|
+
"card": 20,
|
|
385
|
+
"control": 10
|
|
386
|
+
},
|
|
387
|
+
"font": {
|
|
388
|
+
"family": "Manrope",
|
|
389
|
+
"second": null,
|
|
390
|
+
"fallback": "Inter, system-ui, sans-serif",
|
|
391
|
+
"sizes": {
|
|
392
|
+
"title": 28,
|
|
393
|
+
"section": 20,
|
|
394
|
+
"kpi": 32,
|
|
395
|
+
"body": 16,
|
|
396
|
+
"small": 14
|
|
397
|
+
},
|
|
398
|
+
"weights": [
|
|
399
|
+
400,
|
|
400
|
+
500,
|
|
401
|
+
600
|
|
402
|
+
],
|
|
403
|
+
"note": "Money at 24-32px; card titles regular; semibold for net worth, bill amounts and actions."
|
|
404
|
+
},
|
|
405
|
+
"density": "medium",
|
|
406
|
+
"rowHeight": 72,
|
|
407
|
+
"sidebarWidth": 240,
|
|
408
|
+
"gap": 24,
|
|
409
|
+
"pad": 24,
|
|
410
|
+
"controlHeight": 40
|
|
411
|
+
},
|
|
412
|
+
"avoid": [
|
|
413
|
+
"a gradient balance card",
|
|
414
|
+
"two data palettes on one page (flagged in the study)",
|
|
415
|
+
"red on every outgoing amount",
|
|
416
|
+
"a 624px phone-width column on a desktop screen (flagged as a stretched phone screen)",
|
|
417
|
+
"a KPI strip on top: the sums belong in their cards",
|
|
418
|
+
"whole panels tinted per person or category beside white cards (two surface languages on one screen)"
|
|
419
|
+
]
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
"id": "true-black-flat",
|
|
423
|
+
"name": "True-black flat",
|
|
424
|
+
"theme": "dark",
|
|
425
|
+
"idea": "Night mode on true black: sidebar, top bar and page share one ground, elevation is a lightness step alone, and colour is confined to data marks.",
|
|
426
|
+
"colourBudget": "at or under 3%; the accent never touches buttons, tabs or nav",
|
|
427
|
+
"signature": "Elevation by lightness alone (#000 ground, #111 card, #2a2a2a nested panel) with no borders or shadows on cards; the active nav item is marked only by its label going from #bbb to #fff; the primary control is made primary by inversion, a white 36px pill with black text.",
|
|
428
|
+
"tokens": {
|
|
429
|
+
"ground": "#000000",
|
|
430
|
+
"surface": "#111111",
|
|
431
|
+
"raised": "#2a2a2a",
|
|
432
|
+
"border": "#1a1a1a",
|
|
433
|
+
"rule": "#161616",
|
|
434
|
+
"control": "#444444",
|
|
435
|
+
"text": "#ffffff",
|
|
436
|
+
"muted": "#b4b4b4",
|
|
437
|
+
"faint": "#949494",
|
|
438
|
+
"accent": "#c6f24e",
|
|
439
|
+
"positive": "#c6f24e",
|
|
440
|
+
"negative": "#e5484d",
|
|
441
|
+
"warning": "#e5a93b",
|
|
442
|
+
"chart": [
|
|
443
|
+
"#c6f24e",
|
|
444
|
+
"#e6e6e6",
|
|
445
|
+
"#6b6b6b"
|
|
446
|
+
],
|
|
447
|
+
"pills": {
|
|
448
|
+
"positive": [
|
|
449
|
+
"#222a10",
|
|
450
|
+
"#c6f24e"
|
|
451
|
+
],
|
|
452
|
+
"negative": [
|
|
453
|
+
"#2c1a20",
|
|
454
|
+
"#e5566f"
|
|
455
|
+
],
|
|
456
|
+
"warning": [
|
|
457
|
+
"#2b2414",
|
|
458
|
+
"#e5a93b"
|
|
459
|
+
],
|
|
460
|
+
"neutral": [
|
|
461
|
+
"#222222",
|
|
462
|
+
"#ffffff"
|
|
463
|
+
]
|
|
464
|
+
},
|
|
465
|
+
"radius": {
|
|
466
|
+
"card": 20,
|
|
467
|
+
"control": 999
|
|
468
|
+
},
|
|
469
|
+
"font": {
|
|
470
|
+
"family": "Inter",
|
|
471
|
+
"second": null,
|
|
472
|
+
"fallback": "system-ui, sans-serif",
|
|
473
|
+
"sizes": {
|
|
474
|
+
"title": 20,
|
|
475
|
+
"section": 16,
|
|
476
|
+
"kpi": 24,
|
|
477
|
+
"body": 14,
|
|
478
|
+
"small": 12
|
|
479
|
+
},
|
|
480
|
+
"weights": [
|
|
481
|
+
400,
|
|
482
|
+
500,
|
|
483
|
+
600
|
|
484
|
+
],
|
|
485
|
+
"note": "Nothing above 600; inactive nav labels #bbb, active #fff."
|
|
486
|
+
},
|
|
487
|
+
"density": "medium",
|
|
488
|
+
"rowHeight": 80,
|
|
489
|
+
"sidebarWidth": 210,
|
|
490
|
+
"gap": 14,
|
|
491
|
+
"pad": 22,
|
|
492
|
+
"controlHeight": 36
|
|
493
|
+
},
|
|
494
|
+
"avoid": [
|
|
495
|
+
"a navy or slate dark theme",
|
|
496
|
+
"glow, neon borders or shadows",
|
|
497
|
+
"a hue per chart (five hues across four charts was flagged)",
|
|
498
|
+
"the accent on buttons, tabs or nav",
|
|
499
|
+
"a 64px top bar left empty across most of its width (flagged twice)"
|
|
500
|
+
]
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"id": "data-terminal",
|
|
504
|
+
"name": "Data terminal",
|
|
505
|
+
"theme": "dark",
|
|
506
|
+
"idea": "A research or monitoring screen read in long sessions: cards darker than the ground, tabular digits that stack, signs instead of colour, and every selection marked by the same 1px accent line.",
|
|
507
|
+
"colourBudget": "under 3%; the accent is never more than a 1px line",
|
|
508
|
+
"signature": "Every selection (tab, toggle, range, nav item) is a 1px accent line exactly as wide as its label, placed on the nearest existing edge; numbers stay white or grey and carry their sign in the text ('+$24,000,000').",
|
|
509
|
+
"tokens": {
|
|
510
|
+
"ground": "#171719",
|
|
511
|
+
"surface": "#131217",
|
|
512
|
+
"raised": "#212023",
|
|
513
|
+
"border": "#222224",
|
|
514
|
+
"rule": "#1b1a1f",
|
|
515
|
+
"control": "#3a3a3e",
|
|
516
|
+
"text": "#ffffff",
|
|
517
|
+
"muted": "#8a8c92",
|
|
518
|
+
"accent": "#4a8ad6",
|
|
519
|
+
"positive": "#44a282",
|
|
520
|
+
"negative": "#e5566f",
|
|
521
|
+
"warning": "#d9a441",
|
|
522
|
+
"chart": [
|
|
523
|
+
"#f2f2f3",
|
|
524
|
+
"#e5566f",
|
|
525
|
+
"#4a8ad6"
|
|
526
|
+
],
|
|
527
|
+
"pills": {
|
|
528
|
+
"positive": [
|
|
529
|
+
"#1b2828",
|
|
530
|
+
"#5fc39c"
|
|
531
|
+
],
|
|
532
|
+
"negative": [
|
|
533
|
+
"#2c1a20",
|
|
534
|
+
"#e5566f"
|
|
535
|
+
],
|
|
536
|
+
"warning": [
|
|
537
|
+
"#2a2416",
|
|
538
|
+
"#d9a441"
|
|
539
|
+
],
|
|
540
|
+
"neutral": [
|
|
541
|
+
"#212023",
|
|
542
|
+
"#bdbdc0"
|
|
543
|
+
]
|
|
544
|
+
},
|
|
545
|
+
"shadow": "0 12px 28px rgba(0,0,0,.2)",
|
|
546
|
+
"radius": {
|
|
547
|
+
"card": 6,
|
|
548
|
+
"control": 999
|
|
549
|
+
},
|
|
550
|
+
"font": {
|
|
551
|
+
"family": "Public Sans",
|
|
552
|
+
"second": null,
|
|
553
|
+
"fallback": "Inter, system-ui, sans-serif",
|
|
554
|
+
"sizes": {
|
|
555
|
+
"title": 26,
|
|
556
|
+
"section": 20,
|
|
557
|
+
"kpi": 20,
|
|
558
|
+
"body": 13,
|
|
559
|
+
"small": 12
|
|
560
|
+
},
|
|
561
|
+
"weights": [
|
|
562
|
+
400,
|
|
563
|
+
500,
|
|
564
|
+
600,
|
|
565
|
+
700
|
|
566
|
+
],
|
|
567
|
+
"note": "Section titles 20/400 in the muted grey; card titles 16/600; tabular figures everywhere."
|
|
568
|
+
},
|
|
569
|
+
"density": "dense",
|
|
570
|
+
"rowHeight": 42,
|
|
571
|
+
"sidebarWidth": 50,
|
|
572
|
+
"gap": 24,
|
|
573
|
+
"pad": 32,
|
|
574
|
+
"controlHeight": 34
|
|
575
|
+
},
|
|
576
|
+
"avoid": [
|
|
577
|
+
"filled pill tabs or a coloured segmented control",
|
|
578
|
+
"a chart with no scale and no dates (the studied screen had none and was flagged)",
|
|
579
|
+
"tertiary text under 4.5:1 (#4c4c4f read at about 2:1 in the study)",
|
|
580
|
+
"lighter cards with borders and a glow",
|
|
581
|
+
"green and red on every number; the one column whose job is \"what moved today\" and a negative headline figure may carry the polarity colours"
|
|
582
|
+
]
|
|
583
|
+
}
|
|
584
|
+
]
|