{"$description":"Roma: the Tomato Lab design system. Source of truth for tokens, exported from Figma (Tomato Lab Branding / UI Design System). build.py generates tokens.css from this file.","color":{"tomato":{"100":{"$type":"color","$value":"#FFE4E8"},"300":{"$type":"color","$value":"#FF9CA7"},"500":{"$type":"color","$value":"#FF223C","$description":"Brand: Tomato"},"600":{"$type":"color","$value":"#E01E35"},"700":{"$type":"color","$value":"#BF1A2D"},"900":{"$type":"color","$value":"#470A11"}},"water":{"100":{"$type":"color","$value":"#E0EEFF"},"300":{"$type":"color","$value":"#8CC1FF"},"500":{"$type":"color","$value":"#0075FF","$description":"Brand: Water"},"700":{"$type":"color","$value":"#0058BF"},"900":{"$type":"color","$value":"#002147"}},"vine":{"500":{"$type":"color","$value":"#BAFF8F","$description":"Brand: Fluorescent Vine"},"900":{"$type":"color","$value":"#344728"}},"burlap":{"500":{"$type":"color","$value":"#F8E6D2","$description":"Brand: Burlap Sack"},"900":{"$type":"color","$value":"#37332E"}},"neutral":{"0":{"$type":"color","$value":"#FFFFFF"},"50":{"$type":"color","$value":"#F7F7F7","$description":"Brand: Lab Coat"},"100":{"$type":"color","$value":"#EFEFEF"},"200":{"$type":"color","$value":"#E2E2E2"},"300":{"$type":"color","$value":"#CFCFCF"},"400":{"$type":"color","$value":"#A8A8A8"},"500":{"$type":"color","$value":"#6E6E6E"},"600":{"$type":"color","$value":"#555555"},"700":{"$type":"color","$value":"#3D3D3D"},"800":{"$type":"color","$value":"#2E2E2E"},"900":{"$type":"color","$value":"#232323","$description":"Brand: Dirt"}}},"semantic":{"light":{"bg":{"page":{"$type":"color","$value":"{color.neutral.50}","$description":"Default page background."},"surface":{"$type":"color","$value":"{color.neutral.0}","$description":"Cards, fields and raised panels."},"muted":{"$type":"color","$value":"{color.neutral.100}","$description":"Quiet fills: hover states, wells, table stripes."},"inverse":{"$type":"color","$value":"{color.neutral.900}","$description":"High-contrast blocks that flip against the page."},"accent":{"$type":"color","$value":"{color.tomato.500}","$description":"Tomato fields. Text on it must be large and bold."},"accent-subtle":{"$type":"color","$value":"{color.tomato.100}","$description":"Tinted Tomato backgrounds for highlights."},"warm":{"$type":"color","$value":"{color.burlap.500}","$description":"Burlap panels for warm, editorial moments."}},"text":{"primary":{"$type":"color","$value":"{color.neutral.900}","$description":"Body copy and headings."},"secondary":{"$type":"color","$value":"{color.neutral.600}","$description":"Supporting copy, metadata."},"muted":{"$type":"color","$value":"{color.neutral.500}","$description":"Placeholders and de-emphasised hints."},"inverse":{"$type":"color","$value":"{color.neutral.50}","$description":"Text on bg/inverse."},"accent":{"$type":"color","$value":"{color.tomato.700}","$description":"Tomato-coloured text that still passes AA on light backgrounds."},"link":{"$type":"color","$value":"{color.water.700}","$description":"Inline links."},"on-accent":{"$type":"color","$value":"{color.neutral.50}","$description":"Text on Tomato fields (large bold only)."}},"border":{"subtle":{"$type":"color","$value":"{color.neutral.300}","$description":"Dividers and quiet outlines."},"default":{"$type":"color","$value":"{color.neutral.900}","$description":"Hairline rules, field and outline-button borders."},"focus":{"$type":"color","$value":"{color.water.500}","$description":"Keyboard focus ring. Water, so focus never reads as an error."},"accent":{"$type":"color","$value":"{color.tomato.500}","$description":"Tomato emphasis borders."}},"action":{"primary":{"bg":{"$type":"color","$value":"{color.tomato.500}","$description":"Primary button fill."},"bg-hover":{"$type":"color","$value":"{color.tomato.600}","$description":"Primary hover."},"bg-pressed":{"$type":"color","$value":"{color.tomato.700}","$description":"Primary pressed."},"text":{"$type":"color","$value":"{color.neutral.50}","$description":"Primary label."}},"secondary":{"bg":{"$type":"color","$value":"{color.neutral.900}","$description":"Secondary button fill."},"bg-hover":{"$type":"color","$value":"{color.neutral.700}","$description":"Secondary hover."},"bg-pressed":{"$type":"color","$value":"{color.neutral.600}","$description":"Secondary pressed."},"text":{"$type":"color","$value":"{color.neutral.50}","$description":"Secondary label."}},"disabled":{"bg":{"$type":"color","$value":"{color.neutral.200}","$description":"Disabled control fill."},"text":{"$type":"color","$value":"{color.neutral.500}","$description":"Disabled label."}}},"feedback":{"danger":{"bg":{"$type":"color","$value":"{color.tomato.100}","$description":"Error backgrounds."},"fg":{"$type":"color","$value":"{color.tomato.700}","$description":"Error text, icons and borders."}},"success":{"bg":{"$type":"color","$value":"{color.vine.500}","$description":"Success backgrounds."},"fg":{"$type":"color","$value":"{color.neutral.900}","$description":"Success text and icons."}},"info":{"bg":{"$type":"color","$value":"{color.water.100}","$description":"Info backgrounds."},"fg":{"$type":"color","$value":"{color.water.700}","$description":"Info text and icons."}},"warning":{"bg":{"$type":"color","$value":"{color.burlap.500}","$description":"Warning backgrounds."},"fg":{"$type":"color","$value":"{color.neutral.900}","$description":"Warning text and icons."}}}},"dark":{"bg":{"page":{"$type":"color","$value":"{color.neutral.900}","$description":"Default page background."},"surface":{"$type":"color","$value":"{color.neutral.800}","$description":"Cards, fields and raised panels."},"muted":{"$type":"color","$value":"{color.neutral.700}","$description":"Quiet fills: hover states, wells, table stripes."},"inverse":{"$type":"color","$value":"{color.neutral.50}","$description":"High-contrast blocks that flip against the page."},"accent":{"$type":"color","$value":"{color.tomato.500}","$description":"Tomato fields. Text on it must be large and bold."},"accent-subtle":{"$type":"color","$value":"{color.tomato.900}","$description":"Tinted Tomato backgrounds for highlights."},"warm":{"$type":"color","$value":"{color.burlap.900}","$description":"Burlap panels for warm, editorial moments."}},"text":{"primary":{"$type":"color","$value":"{color.neutral.50}","$description":"Body copy and headings."},"secondary":{"$type":"color","$value":"{color.neutral.300}","$description":"Supporting copy, metadata."},"muted":{"$type":"color","$value":"{color.neutral.400}","$description":"Placeholders and de-emphasised hints."},"inverse":{"$type":"color","$value":"{color.neutral.900}","$description":"Text on bg/inverse."},"accent":{"$type":"color","$value":"{color.tomato.300}","$description":"Tomato-coloured text that still passes AA on light backgrounds."},"link":{"$type":"color","$value":"{color.water.300}","$description":"Inline links."},"on-accent":{"$type":"color","$value":"{color.neutral.50}","$description":"Text on Tomato fields (large bold only)."}},"border":{"subtle":{"$type":"color","$value":"{color.neutral.700}","$description":"Dividers and quiet outlines."},"default":{"$type":"color","$value":"{color.neutral.50}","$description":"Hairline rules, field and outline-button borders."},"focus":{"$type":"color","$value":"{color.water.500}","$description":"Keyboard focus ring. Water, so focus never reads as an error."},"accent":{"$type":"color","$value":"{color.tomato.500}","$description":"Tomato emphasis borders."}},"action":{"primary":{"bg":{"$type":"color","$value":"{color.tomato.500}","$description":"Primary button fill."},"bg-hover":{"$type":"color","$value":"{color.tomato.600}","$description":"Primary hover."},"bg-pressed":{"$type":"color","$value":"{color.tomato.700}","$description":"Primary pressed."},"text":{"$type":"color","$value":"{color.neutral.50}","$description":"Primary label."}},"secondary":{"bg":{"$type":"color","$value":"{color.neutral.50}","$description":"Secondary button fill."},"bg-hover":{"$type":"color","$value":"{color.neutral.200}","$description":"Secondary hover."},"bg-pressed":{"$type":"color","$value":"{color.neutral.300}","$description":"Secondary pressed."},"text":{"$type":"color","$value":"{color.neutral.900}","$description":"Secondary label."}},"disabled":{"bg":{"$type":"color","$value":"{color.neutral.700}","$description":"Disabled control fill."},"text":{"$type":"color","$value":"{color.neutral.500}","$description":"Disabled label."}}},"feedback":{"danger":{"bg":{"$type":"color","$value":"{color.tomato.900}","$description":"Error backgrounds."},"fg":{"$type":"color","$value":"{color.tomato.300}","$description":"Error text, icons and borders."}},"success":{"bg":{"$type":"color","$value":"{color.vine.900}","$description":"Success backgrounds."},"fg":{"$type":"color","$value":"{color.vine.500}","$description":"Success text and icons."}},"info":{"bg":{"$type":"color","$value":"{color.water.900}","$description":"Info backgrounds."},"fg":{"$type":"color","$value":"{color.water.300}","$description":"Info text and icons."}},"warning":{"bg":{"$type":"color","$value":"{color.burlap.900}","$description":"Warning backgrounds."},"fg":{"$type":"color","$value":"{color.burlap.500}","$description":"Warning text and icons."}}}}},"layout":{"space":{"2":{"$type":"dimension","$value":"2px"},"4":{"$type":"dimension","$value":"4px"},"8":{"$type":"dimension","$value":"8px"},"12":{"$type":"dimension","$value":"12px"},"16":{"$type":"dimension","$value":"16px"},"24":{"$type":"dimension","$value":"24px"},"32":{"$type":"dimension","$value":"32px"},"48":{"$type":"dimension","$value":"48px"},"64":{"$type":"dimension","$value":"64px"},"96":{"$type":"dimension","$value":"96px"}},"radius":{"none":{"$type":"dimension","$value":"0"},"sm":{"$type":"dimension","$value":"4px"},"md":{"$type":"dimension","$value":"8px"},"lg":{"$type":"dimension","$value":"16px"},"full":{"$type":"dimension","$value":"999px"}},"border-width":{"1":{"$type":"dimension","$value":"1px"},"2":{"$type":"dimension","$value":"2px"}},"control":{"height-sm":{"$type":"dimension","$value":"32px"},"height-md":{"$type":"dimension","$value":"44px"},"height-lg":{"$type":"dimension","$value":"56px"}}},"font":{"display":{"$type":"fontFamily","$value":["neue-haas-grotesk-display","Neue Haas Grotesk Display Pro","Helvetica Neue","Helvetica","Arial","sans-serif"],"$description":"Adobe Fonts kit hha1ptx (https://use.typekit.net/hha1ptx.css): 45 Light (400), 75 Bold (700), 95 Black (900), with italics."},"text":{"$type":"fontFamily","$value":["neue-haas-grotesk-text","Neue Haas Grotesk Text Pro","Helvetica Neue","Helvetica","Arial","sans-serif"],"$description":"Adobe Fonts kit hha1ptx: 55 Roman (400), 75 Bold (700) and italics."},"reading":{"$type":"fontFamily","$value":["Libre Baskerville","Georgia","Times New Roman","serif"]}},"typography":{"heading-xl":{"$type":"typography","$value":{"fontFamily":"{font.display}","fontWeight":900,"fontSize":"44px","lineHeight":1.05}},"heading-l":{"$type":"typography","$value":{"fontFamily":"{font.display}","fontWeight":900,"fontSize":"32px","lineHeight":1.1}},"heading-m":{"$type":"typography","$value":{"fontFamily":"{font.display}","fontWeight":900,"fontSize":"24px","lineHeight":1.15}},"heading-s":{"$type":"typography","$value":{"fontFamily":"{font.display}","fontWeight":900,"fontSize":"20px","lineHeight":1.2}},"action-lg":{"$type":"typography","$value":{"fontFamily":"{font.display}","fontWeight":900,"fontSize":"22px","lineHeight":1.0}},"action-md":{"$type":"typography","$value":{"fontFamily":"{font.display}","fontWeight":900,"fontSize":"19px","lineHeight":1.0}},"label-m":{"$type":"typography","$value":{"fontFamily":"{font.text}","fontWeight":700,"fontSize":"14px","lineHeight":1.0}},"label-s":{"$type":"typography","$value":{"fontFamily":"{font.text}","fontWeight":700,"fontSize":"12px","lineHeight":1.0}},"body-l":{"$type":"typography","$value":{"fontFamily":"{font.text}","fontWeight":400,"fontSize":"18px","lineHeight":1.4}},"body-m":{"$type":"typography","$value":{"fontFamily":"{font.text}","fontWeight":400,"fontSize":"16px","lineHeight":1.4}},"body-s":{"$type":"typography","$value":{"fontFamily":"{font.text}","fontWeight":400,"fontSize":"14px","lineHeight":1.4}},"caption":{"$type":"typography","$value":{"fontFamily":"{font.text}","fontWeight":400,"fontSize":"12px","lineHeight":1.4}},"reading-m":{"$type":"typography","$value":{"fontFamily":"{font.reading}","fontWeight":400,"fontSize":"18px","lineHeight":1.4}},"reading-l":{"$type":"typography","$value":{"fontFamily":"{font.reading}","fontWeight":400,"fontSize":"22px","lineHeight":1.4}}}}
