{"_id":"holygrail5","_rev":"33-175fd70367026a675e509aff365fdda9","name":"holygrail5","dist-tags":{"latest":"1.0.35"},"versions":{"1.0.2":{"name":"holygrail5","version":"1.0.2","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.2","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generator.js"},"dist":{"shasum":"8b4e5468fb33dd9d3d1b2ee34d2264167a167ee1","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.2.tgz","fileCount":12,"integrity":"sha512-B+Gz8xGsmTtUKrhOOT/pg1anxjz+BjjqVNGBuHLEbx7rjOvp8dZEKpKpBn9/oGwVKnXdY8BK7oFlqLLnmdc9kg==","signatures":[{"sig":"MEQCIAg64FR3qbBczzoWvgNdeHcA/KTvVeuopCPCUOXPb/rZAiBLj6mpcbRjKiKxlTTvnbLZUYySsgwfPDuPgj4mbChj4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136070},"main":"generator.js","engines":{"node":">=12.0.0"},"gitHead":"436bd1149d41dd993c1ad9dd74892c91b3636cd1","scripts":{"dev":"node src/dev.js","test":"node tests/run-all.js","serve":"NODE_NO_WARNINGS=1 npx http-server dist -p 3000 -o index.html","start":"node generator.js && NODE_NO_WARNINGS=1 npx http-server dist -p 3000 -o index.html","watch":"node src/watch.js","generate":"node generator.js","vars:list":"node src/cli-variables.js list","vars:remove":"node src/cli-variables.js remove","vars:report":"node src/cli-variables.js report","vars:show-all":"node src/cli-variables.js show-all","prepublishOnly":"npm run generate","vars:remove-all-unused":"node src/cli-variables.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.2_1762929769703_0.8121186293982938","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"holygrail5","version":"1.0.3","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.3","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generator.js"},"dist":{"shasum":"4c6cf9dfe44098fa571d2be73675995fb0c02c0f","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.3.tgz","fileCount":12,"integrity":"sha512-hk9GPW5QNIj72k1777HodK3OKFI92K85xqD0xfDt53aZfGDwQsTnNTvlcONE2MUbCGlWhycm9XcmeXkGR/cEkw==","signatures":[{"sig":"MEUCIDVFm7aIakY2Fav14A2Kfe05gTz1dg1v9V8YomHH+pjeAiEAm4ocHbgX+eb0UV9q3f7Ag6HV+vDxBpb3g4XKOTvMimY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135034},"main":"generator.js","engines":{"node":">=12.0.0"},"gitHead":"5ad9d46cb3e7f78d1392b85e93bb0049c0a4efa2","scripts":{"dev":"node src/dev.js","test":"node tests/run-all.js","serve":"NODE_NO_WARNINGS=1 npx http-server dist -p 3000 -o index.html","start":"node generator.js && NODE_NO_WARNINGS=1 npx http-server dist -p 3000 -o index.html","watch":"node src/watch.js","generate":"node generator.js","vars:list":"node src/cli-variables.js list","vars:remove":"node src/cli-variables.js remove","vars:report":"node src/cli-variables.js report","vars:show-all":"node src/cli-variables.js show-all","prepublishOnly":"npm run generate","vars:remove-all-unused":"node src/cli-variables.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.3_1762937529714_0.5029150448408017","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"holygrail5","version":"1.0.4","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.4","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generator.js"},"dist":{"shasum":"8d6e70ce2c3367759fe2a1e9a711589bb4cc6bf9","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.4.tgz","fileCount":12,"integrity":"sha512-aV0l2+oeLUHGm6bCcgzueWmCtNPrOvzMtOY+EnB3QS8+jsDP5FJW0f7VzMVifRci7nk76ayD/+GcES9HcuYuIQ==","signatures":[{"sig":"MEUCIQDNHFYnpw/srykdDrg7P5BNJW/rcxhIiDleDZANcfFjgwIgMWwGSb70if7ht0WjqKlIZFNFt9vDk/TUHl2CH6r2La0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135034},"main":"generator.js","engines":{"node":">=12.0.0"},"gitHead":"fede18f77c6d73cba477686b93787ed07c48dfac","scripts":{"dev":"node src/dev.js","test":"node tests/run-all.js","serve":"NODE_NO_WARNINGS=1 npx http-server dist -p 3000 -o index.html","start":"node generator.js && NODE_NO_WARNINGS=1 npx http-server dist -p 3000 -o index.html","watch":"node src/watch.js","generate":"node generator.js","vars:list":"node src/cli-variables.js list","vars:remove":"node src/cli-variables.js remove","vars:report":"node src/cli-variables.js report","vars:show-all":"node src/cli-variables.js show-all","prepublishOnly":"npm run generate","vars:remove-all-unused":"node src/cli-variables.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.4_1762937740924_0.19015688626689653","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"holygrail5","version":"1.0.5","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.5","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generator.js"},"dist":{"shasum":"102ab12ede1a1708b2d2534e33eda2546574ac34","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.5.tgz","fileCount":12,"integrity":"sha512-U9hpYeJ6BthTd0pAVCVNRTBSL/8a0ZElOTkpjbbFg1YAAT7jy3seBFWqpUiqOHbwIzElnIynAh1xjie7QXb7mQ==","signatures":[{"sig":"MEQCIDedrtxBe/SH7aFrkTjZD9skT+LNjmZ1Bupuf2oaevALAiBW8yVIdR2fo2N20Dgx8zcXAOXMgDPY+cZdY48bAloSFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152449},"main":"generator.js","engines":{"node":">=12.0.0"},"gitHead":"0babe0b59e8fd171ef8052ca7547ab8ffc16302f","scripts":{"dev":"node src/dev.js","test":"node tests/run-all.js","serve":"NODE_NO_WARNINGS=1 npx http-server dist -p 3000 -o index.html","start":"node generator.js && NODE_NO_WARNINGS=1 npx http-server dist -p 3000 -o index.html","watch":"node src/watch.js","generate":"node generator.js","vars:list":"node src/cli-variables.js list","vars:remove":"node src/cli-variables.js remove","vars:report":"node src/cli-variables.js report","vars:show-all":"node src/cli-variables.js show-all","prepublishOnly":"npm run generate","vars:remove-all-unused":"node src/cli-variables.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.5_1762950798749_0.9353165402367878","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"holygrail5","version":"1.0.6","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.6","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generator.js"},"dist":{"shasum":"3aa7bee18db9dbcd4af6b3fc00a3dce7b50833f8","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.6.tgz","fileCount":12,"integrity":"sha512-waxEUUONDc7N41RToo6Ws5dwrY2d9Dlpya6N389DMqt6VbEAG1b7b78TX8Zb5iKmEhiACDOJz3g9/qkQQK9VZQ==","signatures":[{"sig":"MEYCIQDMI5BqpTeDkROoSSMeKJKbJ8EMymMwNzdk4b3phhRspAIhAMzOdLa+LJhLMZwhH7SWrrWdKEF3bg8oyMfTeOrR7gLZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175305},"main":"generator.js","engines":{"node":">=12.0.0"},"gitHead":"92661a514b30f232852abb6673acbfbdba7b693e","scripts":{"dev":"node src/dev.js","test":"node tests/run-all.js","build":"node generator.js","serve":"NODE_NO_WARNINGS=1 npx http-server dist -p ${PORT:-5000} -o index.html","start":"node generator.js && NODE_NO_WARNINGS=1 npx http-server dist -p ${PORT:-5001} -o index.html","watch":"node src/watch.js","generate":"node generator.js","vars:list":"node src/cli-variables.js list","vars:remove":"node src/cli-variables.js remove","vars:report":"node src/cli-variables.js report","vars:show-all":"node src/cli-variables.js show-all","prepublishOnly":"npm run generate","vars:remove-all-unused":"node src/cli-variables.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.6_1763118188964_0.2965735446917621","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"holygrail5","version":"1.0.7","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.7","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generator.js"},"dist":{"shasum":"0bc4e321fa9fba42e6edb31d4bb6e63c485c6745","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.7.tgz","fileCount":23,"integrity":"sha512-oWxOX8GP4D0II/QIJ8rdIVYbiKpr74TmvQV15uRr1z5cBRbmeG3a1r9n+hZ5UMIACyAG/fPoBgnPneCME+x6jA==","signatures":[{"sig":"MEQCIDmfKkRux79AgunDRddtHyMG0fKO7rTrOD+Y413rmRKxAiAnX5SxKhbztOaxUJlpi9qsVzdqCGISlP8/SXyzKWVXtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218565},"main":"generator.js","engines":{"node":">=12.0.0"},"gitHead":"9f04d502273b5c7fee157d0584ba172515bf8aae","scripts":{"dev":"node src/dev.js","test":"node tests/run-all.js","build":"node generator.js","serve":"NODE_NO_WARNINGS=1 npx http-server dist -p ${PORT:-5000} -o index.html","start":"node generator.js && NODE_NO_WARNINGS=1 npx http-server dist -p ${PORT:-5001} -o index.html","watch":"node src/watch.js","generate":"node generator.js","vars:list":"node src/cli-variables.js list","vars:remove":"node src/cli-variables.js remove","vars:report":"node src/cli-variables.js report","vars:show-all":"node src/cli-variables.js show-all","prepublishOnly":"npm run generate","vars:remove-all-unused":"node src/cli-variables.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.7_1763120051287_0.5629402122242411","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"holygrail5","version":"1.0.8","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.8","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generator.js"},"dist":{"shasum":"aa7797b54a88d07905f0a72944c6930a3f17510a","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.8.tgz","fileCount":23,"integrity":"sha512-U0XgF4fHL5ABMnEbImQn8WT3lnaaZ8ENq9z2ZtNKGQ7k5BEGW+HO75aLQ/Hq+pTPXlmo9xsIOmv6+V4dXAXhcg==","signatures":[{"sig":"MEYCIQC8Wl2+PhbpQTJVOiVuHsUL44967fjUnHjrKAyQXA9urwIhAKFf/l/Q5vqFDizKc5UL4XHcX3+aBtHgNkoYONr3CxyV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218565},"main":"generator.js","engines":{"node":">=12.0.0"},"gitHead":"47e877d4a997026b123c3b0ea7a7fd83d546ed9f","scripts":{"dev":"node src/dev.js","test":"node tests/run-all.js","build":"node generator.js","serve":"NODE_NO_WARNINGS=1 npx http-server dist -p ${PORT:-5000} -o index.html","start":"node generator.js && NODE_NO_WARNINGS=1 npx http-server dist -p ${PORT:-5001} -o index.html","watch":"node src/watch.js","generate":"node generator.js","vars:list":"node src/cli-variables.js list","vars:remove":"node src/cli-variables.js remove","vars:report":"node src/cli-variables.js report","vars:show-all":"node src/cli-variables.js show-all","prepublishOnly":"npm run generate","vars:remove-all-unused":"node src/cli-variables.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.8_1763361632570_0.39179685922667096","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"holygrail5","version":"1.0.9","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.9","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"d49085fc3401a187aae8b8b7a67d14319e848ba9","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.9.tgz","fileCount":30,"integrity":"sha512-UuCKNM8pZgSMZsm4kOWBa1Z10E6y2sF2p5QeuaxxoUxL3skDvuCmS53ptL/HzodbO8J4OeL71RbH6stFZMR2lA==","signatures":[{"sig":"MEUCIQCA4ziQYjLHiyMPBqV+de2HioHERpG0YQ1+rc9FfYrnVQIgByLXMT88mK3QEMcaazXY4w7j+EUvKrdzCLZwMynY1Ms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206708},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"gitHead":"96bf45d272d48e1631e2e700fa852bdf67da676a","scripts":{"test":"node tests/run-all.js","build":"node generate-css.js && npm run copy-theme-html","serve":"open http://localhost:3000 && npx serve dist -l 3000","start":"npm run build && npm run serve","vars:report":"node src/docs-generator/variables-cli.js report","copy-theme-html":"node copy-theme-html.js","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.1"},"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.9_1764325445520_0.9676190691329649","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"holygrail5","version":"1.0.10","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.10","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"caa88edaf5f949d0525bc91af075ccc151cb3f7b","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.10.tgz","fileCount":30,"integrity":"sha512-LD3fQxPONlNBEMjjKj6xmB8xr/1sJDpzFf1jgZaKSaIZvwIRCeIbkOqWmHRY3+gnMchk5OVaFYw2BI6QnsjvhQ==","signatures":[{"sig":"MEUCIQDWATtFrh7Hmnp4T98BBCIYDoLvD/8Y5Sxe2hMv4bxNIwIgAdo2RC4nZyjuJFMmYFYmYi1upCPH7jqp3/gTWUIsJKY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207315},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/output":"./dist/output.css","./themes/dutti/forms":"./themes/dutti/_forms.css","./themes/dutti/inputs":"./themes/dutti/_inputs.css","./themes/dutti/labels":"./themes/dutti/_labels.css","./themes/dutti/radios":"./themes/dutti/_radios.css","./themes/dutti/buttons":"./themes/dutti/_buttons.css","./themes/dutti/switches":"./themes/dutti/_switches.css","./themes/dutti/variables":"./themes/dutti/_variables.css","./themes/dutti/checkboxes":"./themes/dutti/_checkboxes.css"},"gitHead":"ae1674b93a88aa50bf7c7c0ce44e8c0cb0edb3b7","scripts":{"test":"node tests/run-all.js","build":"node generate-css.js && npm run copy-theme-html","serve":"open http://localhost:3000 && npx serve dist -l 3000","start":"npm run build && npm run serve","vars:report":"node src/docs-generator/variables-cli.js report","copy-theme-html":"node copy-theme-html.js","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"devDependencies":{"serve":"^14.2.1"},"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.10_1764342361451_0.8314254287000926","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"holygrail5","version":"1.0.11","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.11","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"593702149f45a582ec24d7159940cc625abb3dea","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.11.tgz","fileCount":37,"integrity":"sha512-l/lQJjBx4+YBrvRRUG76CduhziAtr9OqUPo5e0c4Bq7b47fDkcbepbITbppGMT4YvlbJQcqBlb8cZvLgsV6z5w==","signatures":[{"sig":"MEUCIBcE50Z+k1ZVmHJRsFR4bI08Z0dW/JXjaEGjKHeMEpVvAiEAlAgDlwSq/ZQ6LHLMARrlf9Tjay3pgI65QDeWaKEvEyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225485},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"5e8840e292e16ae050fa2159c10068d646658ed3","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js && npm run copy-theme-html","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","copy-theme-html":"node copy-theme-html.js","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.11_1764582230830_0.246332533448119","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"holygrail5","version":"1.0.12","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.12","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"2818f5be011d4db0390ca12445a0ddc8324f82fc","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.12.tgz","fileCount":34,"integrity":"sha512-tvTqw7NMNa/uAu8TShpSacycoYzxaZt1zTSQmUQDRBBIXoTkWMN90I1zdXgdj4qDli5cfI3jspv3TQ95r33ctQ==","signatures":[{"sig":"MEUCIQD+io19oaNPY7Y4iT1p52ZQJm1Gls4O3WeZrvr64Db0uAIgcA/DDjylY9fQCUMZXE+CXwz0rQSlAEFRlwpaDE5w1FU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":559363},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"850a4ab90886cda90c5482325b5803a458952aee","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js && npm run copy-theme-html","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","copy-theme-html":"node copy-theme-html.js","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.7.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"20.15.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.12_1764588832293_0.3212240765290264","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"holygrail5","version":"1.0.13","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.13","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"9f402409837c0358f611f683471b5c32499a9b97","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.13.tgz","fileCount":47,"integrity":"sha512-19Bidag3nV0lomI2wrGax57Tu2N+uSxa5HZKRBoKaYyeG0BssCs/Svme+SfUTuJlmTWNmIrcni/K6pJCkWG0Iw==","signatures":[{"sig":"MEUCIGXSB5CAC0PuOPqJq49J2vW6dxitdQWyuPchWfNpUo8FAiEAyW7tQRWj2acgWNdbcHFtYtf5W53EHGM9AaQzaAWguq8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1637757},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"7ba638ac88fef129e83465c104a7e59ffbe1e28d","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.14.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.13_1769516969850_0.34972730100621474","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"holygrail5","version":"1.0.14","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.14","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"d324671efc217c470c62cbed9344c1a584660d52","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.14.tgz","fileCount":48,"integrity":"sha512-5tpiu6QHBmjFgNOlvILhRS+oDTKIJ9ppoSJghkfvo7cVuNkhWtCY7KyNSy+F0f7AqmfdMINbqj6pDhGBaBlr8A==","signatures":[{"sig":"MEYCIQC1iyyv/f4ISZ3nwff92w+cl3Qk9sFaKeM53uZKNSPnzgIhALz2w91bYJ4tnulu1wrdshGDLY9L9HGFmz3n4sqmL1Cd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12486653},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"ab60dbbade17072e8b7f5b3e571f015895fcd431","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.14_1770199253191_0.3036679642517952","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"holygrail5","version":"1.0.15","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.15","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"0f9602b5b4a4df0a1aca8af9b07ec966ba239d05","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.15.tgz","fileCount":48,"integrity":"sha512-4uQog4QmPMmsaL115bnCRA9vBwXs8xF0gw1/F0SwlDtnVdo2OB3dO3TFc7M9ilgObrFoA23swPjPTj5tYaIqzw==","signatures":[{"sig":"MEQCIHNRM9RfoUbpdOUdjlbP6SKfBBU/pIH11mjGF9AvWVu5AiBPkH+b0pv+G4XPDvQit4b3YTVg8ZuvD+BxiCpzLbthDw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12486664},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"c0459befe7bb12b2fb62dbd2171851ec0b300bf7","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.15_1770304354630_0.7753780859380965","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"holygrail5","version":"1.0.16","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.16","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"c8d49668cd6f27a36a8c29397d85bc585ad71b99","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.16.tgz","fileCount":50,"integrity":"sha512-gjrvoXS1dyq9Dh2dxa8E8LSLNfuTf1zBNUKMwjsS+wFVi1rbIt7qpkP18cHwmfWIbTHeHb5kPWLOxXWA+gK9gw==","signatures":[{"sig":"MEUCIGyVQ+UXB9KkE5C1CvLRizl1zlztuTJWKqBYue0Z0eSWAiEAgtN1kZr7emJzXdMCmynXSMf+IjURoOg3ePLr+PXZC14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12496092},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"6aeb4da95c7f1c375b0c7013536bef53eb1ea714","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.16_1770799762995_0.0872438059859304","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"holygrail5","version":"1.0.17","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.17","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"63883a736fe8f39b70b967799c7db3a232d9b095","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.17.tgz","fileCount":50,"integrity":"sha512-2v6GW3+WKi3pLcqctyfEzC/z+7aMgGDscT6fKv0yVe5P9K+eYbmwt7JY6VFlmoL1HD7aTr2bAf9AB69Ti1YH1Q==","signatures":[{"sig":"MEYCIQCLtIA6KV3EYRDC2wkgtJlycG9HbLouY5RHGj6Y9QImwQIhAMNkHCCbZNMon6pUFdL29KubA3i0hzl+mtBSv/YHMy9I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12502524},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"77f82de7395eeb346ca1ab00001381609cbaeadd","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.17_1771932664376_0.787252822361415","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"holygrail5","version":"1.0.18","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.18","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"c4e6c14fc089e6084ab4255017671c13f21f32b1","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.18.tgz","fileCount":50,"integrity":"sha512-D0lkEO98CWGLCTayVZDIou3GrYyckFqWM5bJrPq/ir25CJuHOzQxJTrrIVQANJzh8ZfJT+XTJavLRSi02u6O2w==","signatures":[{"sig":"MEYCIQDAYOWT+PqAuLA8JYO4ovvLheVlVjyntxJ+voWq24K5DQIhAMmudoNy5aQde4J9O7qxwksz5DTo9e29jbJtaUPH1E2+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12503971},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"01591da670df8fa6b6db91294797da47874be592","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.18_1771933548282_0.5534868002308901","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"holygrail5","version":"1.0.19","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.19","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"0e83eecad21e8e066faa27f66f8ab3d93da3ba63","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.19.tgz","fileCount":55,"integrity":"sha512-fwvqpF59EHOdfZRzRy2fMvXd2lE83gQGPdi8HRBLwuo4Ixe9qDxPSLYg22B+IXVsi/9IpFr1ahds0WCDjk8xaQ==","signatures":[{"sig":"MEUCIDd8VuOwQdBKLaWicvvViZEpiReyy1Ef7C+SIUsdRKEgAiEAjcAeXmH/m5k0SFGjVlNKs7i7rmzed3czfw/6wtmFBWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12618531},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"0757b1cec83d7ade40b5812137b03cfa40b10cc7","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.11.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.19_1776419019277_0.4783768589544015","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"holygrail5","version":"1.0.20","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.20","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"226de447e93e30f89f4ce2498cf5f9a2dd4ff3e7","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.20.tgz","fileCount":97,"integrity":"sha512-mSawlZ9wK/r1gAjHEqd8GgjjFJOOzRaCpI0BbEja6ogahiHOtiOAWQeuVBU+DJPUW22IqPw6cS+jVcvNjnlpCQ==","signatures":[{"sig":"MEUCIGucAudksC96f+qP9PciLeouS5JxSWhgmlRLg2vFxRTbAiEA+wSn76Kj/6Ys3EzwfO8JpUCtcNDtlitvdrXaiE8AW6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15034042},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"845d0f600c267ce737bc6f402239cf90b48b42ca","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.20_1777016424805_0.07993900255149411","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"holygrail5","version":"1.0.21","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.21","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"3dc88426d3ccd210204dbc8e6d31a9a9a6247789","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.21.tgz","fileCount":97,"integrity":"sha512-cmNaA3JlwuXWWi7fofj/9VNukhLprqMDG2VeHZPb86FHXN5eUAPksxMHTPS0FZeIQigOqzY3ALD6Q7wG41gSMw==","signatures":[{"sig":"MEYCIQC4K+P4TaY5T7efZQgPJxS8ArlceQmn5dhSqfXjIuN6vgIhAOZ4Qg15Jvv0LzmlB2/L5SgneS7HpNvBNj8bL7vumG9j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15044151},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=12.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"7db5a132df7dbf02f42d076220b64d39d27deef3","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.21_1777031112582_0.34184562888376946","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"holygrail5","version":"1.0.22","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.22","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"165bd85003d5215152c5070d55e0c78024adf516","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.22.tgz","fileCount":105,"integrity":"sha512-2E8zm+AkcUwuffBCzD9tP3oKfJ0NZQznDo5XIQQRtKkLXL4K7PgcoJ7KuEkHEPBQGS6qZ5o95Sd3Hxiqwf8JxA==","signatures":[{"sig":"MEQCIG69QO+WorIwl/elPvjHtGEn7GGhI2ld1zhVbCYCZpU+AiBprFw0fQah/jgGRqosFuHA+bNkeIpaqX9RdleYwh3ugg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15194012},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"dc08be278e3b6703b31d3870082cbffc04964073","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.22_1780411287715_0.08042083557883473","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"holygrail5","version":"1.0.23","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.23","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"26ea896071ae242a1f2cb360068aa89c49c9018e","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.23.tgz","fileCount":109,"integrity":"sha512-4Iu05Vg81LKPhCVgTTVCxWefIaea+Budm9Y7KLlAzp60Ax9/9OVyOewFPo0oLv7y4zQS/G1P78zNZZ+eAcZYYg==","signatures":[{"sig":"MEUCIQC0CQ3TkXWnYo5NIFTmxeVl80vgFVmVIcgOb5Qv1hTB1wIgT/YyEukRk8Nn6w+NXXDcOH08WnkVEFPV37CuZWFaIfE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15282591},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"03511f0ff41c0ceaf2c84daf62cca4cbaca9819d","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.23_1781637988586_0.6315062471826416","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"holygrail5","version":"1.0.25","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.25","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"f076337cbcd902019f4d98c6054ee6977de97420","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.25.tgz","fileCount":109,"integrity":"sha512-jF1cs61EnQb9rXSBuhkmWtsBwFA0UHJUmBfdgRGywOeHrr7JkwkCwyU+KiQk2TUhEqaIlcORO+OYxQuZ8H96Ig==","signatures":[{"sig":"MEUCICrBjb7JdSFIIQw/ZukJo8k8IjmSiFYSML3Xs/AMCHbhAiEAowW1K+Nzbwt+bguNcsn7jZXmBOnkS5G6TeijeQNTEkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15273094},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"ab1e1ba70819a96cca19a6068c2cd05c8446e590","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"10.9.2","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"22.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.25_1781851110425_0.1648057333814481","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"holygrail5","version":"1.0.26","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.26","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"afceef790c99279cbbc1af30eda5604bd184072e","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.26.tgz","fileCount":109,"integrity":"sha512-BdD2FvIJmb4vBGAuXA+lpJY2cQBdgk7udQOvsDIYIhapUM6oOxAKIi8d1uyiwUlARL0K1dzbY9ie775hQtQy2A==","signatures":[{"sig":"MEUCIFdl25005kBxsU57s2+iFBYxBnrROFypUvaWUUmwG42mAiEAhGjSHCAsAKQXZbu8Nv4m2W/dhBOcOPJQNLxRfJN44YM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15273682},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"2d7bce7db3262389cf487d477d566f55b54e032b","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.26_1782896780773_0.9456029923562703","host":"s3://npm-registry-packages-npm-production"}},"1.0.27":{"name":"holygrail5","version":"1.0.27","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.27","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"6de2e6d4a76fad0023d767976be7123d26b1c82c","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.27.tgz","fileCount":142,"integrity":"sha512-UcZcXg2ilbA+ttKLNdYvkgY8kWVfmwh+pJrp1yg+qY60USsjTpFwdidjLwOhqb5/uVos0G4hy3YlwW84nHGotw==","signatures":[{"sig":"MEYCIQDUCRQTNeKovnjwVOlMwnnpZsKuqjbJcHde91+wt1tOLgIhANqFd8IMg2DU/+mm8L4oIsFR0CM8T/252HLr9OyYB8E3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22912501},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"ef2d770e73ab020109959bdf703d0ed8a67847f9","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","prepack":"npm run build","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.27_1782919347392_0.8410283063081376","host":"s3://npm-registry-packages-npm-production"}},"1.0.28":{"name":"holygrail5","version":"1.0.28","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.28","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"c516ce218925dd68fb740d55d416053105b9fac2","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.28.tgz","fileCount":107,"integrity":"sha512-FufSypG20wfAPboBd0MpZhkKHFVoM31gMUZBdQZsyFyrBdd6iFNtBdFtVQHbmczVMN3Xm7/mQeVNyeoLRUyLzg==","signatures":[{"sig":"MEMCIGcDXQc6fUB1wpFnVZwgDwygQoTZmFCnu807Jy4NmIVXAh9YoxSJ4ZCNeOz9NKBpJO1bjfRDyeTEVb6j+Tm1lwXe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4389194},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"1278265b6da795cf4a55d32118a3a5ce0b8a623a","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","prepack":"npm run build","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.28_1783069284492_0.8599665707429478","host":"s3://npm-registry-packages-npm-production"}},"1.0.29":{"name":"holygrail5","version":"1.0.29","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.29","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"224e4fba5e1d0f09f8755b7452b8f837526e04a0","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.29.tgz","fileCount":107,"integrity":"sha512-M7mb1M6CQ387SKG6R4fYraqZ2o9kl32K49AKASECbydFHP4czUOfMYg7dN34LRbnnuWLNhH6f8cxZN4+GLDySQ==","signatures":[{"sig":"MEUCIE/UQrMQbbJXJ9BUuPb5deUzQ0/LJqAMS/sd5O9DxqiFAiEA9nN8rm3k3ZiMTrEImdOBNwRqH1qIUdyAXBoUGwpHiW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4400020},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"05c6265aec06e150395e7919222710b379c3af7f","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","prepack":"npm run build","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.29_1784036888831_0.46537032568229564","host":"s3://npm-registry-packages-npm-production"}},"1.0.30":{"name":"holygrail5","version":"1.0.30","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.30","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"b2f6b1caf2f5042a477a87fba92745eb0577791e","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.30.tgz","fileCount":111,"integrity":"sha512-n6ZE5M+Ri5XHaFSqg+H1f/BFG0xCiAVQPs1jAL0UN3hYidrRQnrKaDAsbaanNxR8cpHtDILstUPWGjB0hJ31aQ==","signatures":[{"sig":"MEUCIGZHtNoX4ZHGMLJOwkXL0k326NJUIGWmht4p3IVkA0JUAiEAoCK/v6NJP4Q5mYrfz3xtAUT5kGOoRnyy08STywvaiLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4577388},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"93be9a757241babd88c26576f040d969a85f14b6","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","prepack":"npm run build","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.30_1784284900251_0.5486804784224444","host":"s3://npm-registry-packages-npm-production"}},"1.0.31":{"name":"holygrail5","version":"1.0.31","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.31","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"70447a632383fb1af7e2e9db4eba06abb9ca69cb","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.31.tgz","fileCount":111,"integrity":"sha512-oeXniZAPP4l5AYewuNUAxZbtcfwQus8pct6vRCxKfwaqancmRQVzZIKB7UIokDFSKCIC6grQW1KkeBzT+BzdwQ==","signatures":[{"sig":"MEUCIQCSgle20IwipbGw45I8g2GscVlS+rZTJyHNCZXw1B9whgIgHaba7IdabLdV5CpzCeh0gycGT1skpY1Lkn1KMmIHRGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4577269},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"aaf5cdc2b831c554e3771dcc5a27a079fb73a0c6","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","prepack":"npm run build","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.31_1784545315150_0.4627677043635847","host":"s3://npm-registry-packages-npm-production"}},"1.0.32":{"name":"holygrail5","version":"1.0.32","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.32","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"9574636060e8d334145905692cbf861f0d4939ac","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.32.tgz","fileCount":111,"integrity":"sha512-+SB35747j21V81+TjOfUJs3GYi2RLHGO81mStDUjr9MmKePwfmbNiyOCNj4VkXgQAxQEv6dnx3X/Cy4b15sQ1A==","signatures":[{"sig":"MEYCIQC8U8h52sYBs1SvKZlVntGB8DuiiMPgT1sNK4hnej3eEgIhAM9dLEW5d6FjJ7k9LWqA8G+FRAGkZu6zC4RjXh1sZblR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4580185},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"ba7f2c437e5d64e05b6eaad90f316db1a56f9de1","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","prepack":"npm run build","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.32_1785250074311_0.7175331172457431","host":"s3://npm-registry-packages-npm-production"}},"1.0.33":{"name":"holygrail5","version":"1.0.33","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.33","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"92ef288035e2c2d38d526d08f2185054ef6ba808","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.33.tgz","fileCount":111,"integrity":"sha512-csgorlafe4ufSGM9Dvprmqmhz3ytO2yBgAQTPpk+GOlj5dwE66Ezg7FMVuorPzu9ohmEUDQHMKlAqPrAW1V9og==","signatures":[{"sig":"MEQCIDCO0i6UleTFu2WWSkAyPzyquO5+nwcXKI3DDuMS7p/kAiBPmCyKHtorfKCny+k7eKQhRCyfcDQh6FwCtDtvSHx4vw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4584441},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"ba7f2c437e5d64e05b6eaad90f316db1a56f9de1","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","prepack":"npm run build","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.33_1786974271187_0.5557448467315538","host":"s3://npm-registry-packages-npm-production"}},"1.0.34":{"name":"holygrail5","version":"1.0.34","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","_id":"holygrail5@1.0.34","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"homepage":"https://github.com/holygrailcss/holygrail5#readme","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"bin":{"holygrail5":"generate-css.js"},"dist":{"shasum":"1f656ff83c6b0c5c987ae48a452fe5900c01c969","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.34.tgz","fileCount":111,"integrity":"sha512-ISKoYokzoAKsrh/pLVpSTFBv8sHmfbf+TOQKArEnOPs8OvtS65TMdJ7ZnzRSrsjVPtgqEoxYO27OK+2VIFTljg==","signatures":[{"sig":"MEUCIQDrhcMEiwpUjILCx10CmBF3RXhwIfy421kGzxZYkPP0WwIgQz1tMunoL7E02SVQlqYyr/1RGH8k6e+pzSRbF2M8II4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4593659},"main":"generate-css.js","style":"dist/output.css","engines":{"node":">=18.0.0"},"exports":{".":{"default":"./generate-css.js"},"./dist/dutti":"./dist/themes/dutti.css","./dist/output":"./dist/output.css"},"gitHead":"a0321f88e3fdb7aaa37265dcb830a96a0618edeb","scripts":{"dev":"node src/dev-server.js","test":"node tests/run-all.js","build":"node generate-css.js","serve":"node src/dev-server.js","start":"npm run build && npm run serve","watch":"node src/watch-config.js","prepack":"npm run build","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"repository":{"url":"git+https://github.com/holygrailcss/holygrail5.git","type":"git"},"_npmVersion":"11.17.0","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","directories":{},"_nodeVersion":"26.4.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/holygrail5_1.0.34_1787651324196_0.07789475088786268","host":"s3://npm-registry-packages-npm-production"}},"1.0.35":{"name":"holygrail5","version":"1.0.35","description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","main":"generate-css.js","style":"dist/output.css","exports":{".":{"default":"./generate-css.js"},"./dist/output":"./dist/output.css","./dist/dutti":"./dist/themes/dutti.css"},"bin":{"holygrail5":"generate-css.js"},"scripts":{"build":"node generate-css.js","prepack":"npm run build","watch":"node src/watch-config.js","serve":"node src/dev-server.js","dev":"node src/dev-server.js","start":"npm run build && npm run serve","test":"node tests/run-all.js","publish:pkg":"npm test && npm publish","vars:report":"node src/docs-generator/variables-cli.js report","vars:remove-unused":"node src/docs-generator/variables-cli.js remove-all-unused"},"keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"author":{"name":"HolyGrail CSS"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/holygrailcss/holygrail5.git"},"engines":{"node":">=18.0.0"},"gitHead":"8f5aad20e939a71140c5cf2d5a7b8440ee3f72b6","_id":"holygrail5@1.0.35","bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"homepage":"https://github.com/holygrailcss/holygrail5#readme","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-NxHSYUks4J/xHnX1d/H9Btrz3mgutqPaKg1n898QO2A2y9mpyrpwIaWV1OdjEtHNkMRpU6Ow3v66mZtweE3pFw==","shasum":"4fb13b5e2544b623a3fcb3ed059773bc437ddf6f","tarball":"https://registry.npmjs.org/holygrail5/-/holygrail5-1.0.35.tgz","fileCount":111,"unpackedSize":4593885,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDJFIf5vyQmpXOZbr+GBTlbBe09eTqqusjxEGKFsftV8gIgHfq7T8YJqPWadGmFhdG6rlftpMfbeizvU1KH5wCo9tk="}]},"_npmUser":{"name":"holygrail","email":"manuelruizredondo@gmail.com"},"directories":{},"maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/holygrail5_1.0.35_1788360263900_0.31373453406194707"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-12T06:42:49.702Z","modified":"2026-09-02T14:44:24.543Z","1.0.2":"2025-11-12T06:42:49.862Z","1.0.3":"2025-11-12T08:52:09.920Z","1.0.4":"2025-11-12T08:55:41.119Z","1.0.5":"2025-11-12T12:33:18.965Z","1.0.6":"2025-11-14T11:03:09.189Z","1.0.7":"2025-11-14T11:34:11.518Z","1.0.8":"2025-11-17T06:40:32.754Z","1.0.9":"2025-11-28T10:24:05.720Z","1.0.10":"2025-11-28T15:06:01.626Z","1.0.11":"2025-12-01T09:43:51.022Z","1.0.12":"2025-12-01T11:33:52.486Z","1.0.13":"2026-01-27T12:29:30.151Z","1.0.14":"2026-02-04T10:00:53.659Z","1.0.15":"2026-02-05T15:12:35.145Z","1.0.16":"2026-02-11T08:49:23.455Z","1.0.17":"2026-02-24T11:31:04.900Z","1.0.18":"2026-02-24T11:45:48.783Z","1.0.19":"2026-04-17T09:43:39.714Z","1.0.20":"2026-04-24T07:40:25.323Z","1.0.21":"2026-04-24T11:45:13.058Z","1.0.22":"2026-06-02T14:41:28.159Z","1.0.23":"2026-06-16T19:26:28.940Z","1.0.25":"2026-06-19T06:38:30.781Z","1.0.26":"2026-07-01T09:06:21.128Z","1.0.27":"2026-07-01T15:22:27.808Z","1.0.28":"2026-07-03T09:01:24.720Z","1.0.29":"2026-07-14T13:48:09.088Z","1.0.30":"2026-07-17T10:41:40.474Z","1.0.31":"2026-07-20T11:01:55.385Z","1.0.32":"2026-07-28T14:47:54.574Z","1.0.33":"2026-08-17T13:44:31.462Z","1.0.34":"2026-08-25T09:48:44.418Z","1.0.35":"2026-09-02T14:44:24.199Z"},"bugs":{"url":"https://github.com/holygrailcss/holygrail5/issues"},"author":{"name":"HolyGrail CSS"},"license":"MIT","homepage":"https://github.com/holygrailcss/holygrail5#readme","keywords":["css","framework","generator","css-variables","responsive","typography","css-framework","design-tokens"],"repository":{"type":"git","url":"git+https://github.com/holygrailcss/holygrail5.git"},"description":"Framework CSS generator con Node.js - Genera CSS optimizado con variables CSS desde un archivo JSON de configuración","maintainers":[{"name":"holygrail","email":"manuelruizredondo@gmail.com"}],"readme":"# HolyGrail5\n\n[![npm version](https://img.shields.io/npm/v/holygrail5.svg)](https://www.npmjs.com/package/holygrail5)\n[![npm downloads](https://img.shields.io/npm/dm/holygrail5.svg)](https://www.npmjs.com/package/holygrail5)\n\nGenerador de CSS + guía HTML pensado para design systems ligeros: declaras tu `config.json`, HolyGrail5 crea variables compartidas, helpers responsive, tipografías y documentación navegable en `dist/` sin depender de SASS ni toolchains complejos.\n\n---\n\n## Índice\n- [HolyGrail5](#holygrail5)\n  - [Índice](#índice)\n  - [1. Instalación](#1-instalación)\n  - [2. Flujo rápido](#2-flujo-rápido)\n  - [3. Scripts disponibles](#3-scripts-disponibles)\n  - [4. ¿Qué se genera?](#4-qué-se-genera)\n  - [5. Estructura del proyecto](#5-estructura-del-proyecto)\n  - [6. Configurar `config.json`](#6-configurar-configjson)\n    - [6.1 Ejemplo mínimo](#61-ejemplo-mínimo)\n    - [6.2 Propiedades globales](#62-propiedades-globales)\n    - [6.3 Configuración de Assets (Opcional)](#63-configuración-de-assets-opcional)\n    - [6.4 Helpers y grid](#64-helpers-y-grid)\n    - [6.5 Ratios de Aspecto](#65-ratios-de-aspecto)\n    - [6.6 Tipografías](#66-tipografías)\n  - [7. CLI y argumentos](#7-cli-y-argumentos)\n  - [8. Guía HTML interactiva](#8-guía-html-interactiva)\n  - [9. Gestión de variables históricas](#9-gestión-de-variables-históricas)\n  - [10. Temas (Dutti, Limited) y demos](#10-temas-dutti-limited-y-demos)\n    - [Arquitectura compartida: `themes/_base/`](#arquitectura-compartida-themes_base)\n    - [Crear un tema nuevo](#crear-un-tema-nuevo)\n    - [Sobrescribir un componente SOLO en un tema](#sobrescribir-un-componente-solo-en-un-tema)\n    - [Flujo de desarrollo de temas](#flujo-de-desarrollo-de-temas)\n  - [11. Arquitectura del sistema](#11-arquitectura-del-sistema)\n    - [Módulos principales](#módulos-principales)\n      - [**`BuildOrchestrator`** (`src/build/build-orchestrator.js`)](#buildorchestrator-srcbuildbuild-orchestratorjs)\n      - [**`AssetManager`** (`src/build/asset-manager.js`)](#assetmanager-srcbuildasset-managerjs)\n      - [**`ThemeTransformer`** (`src/build/theme-transformer.js`)](#themetransformer-srcbuildtheme-transformerjs)\n    - [Ventajas de la arquitectura](#ventajas-de-la-arquitectura)\n    - [Diagrama de flujo](#diagrama-de-flujo)\n  - [12. Tests y calidad](#12-tests-y-calidad)\n    - [Suite de tests completa](#suite-de-tests-completa)\n  - [13. Documentos complementarios](#13-documentos-complementarios)\n    - [Publicación de la guía](#publicación-de-la-guía)\n  - [14. Recursos y soporte](#14-recursos-y-soporte)\n    - [Contribuir](#contribuir)\n  - [15. Licencia](#15-licencia)\n  - [Changelog](#changelog)\n    - [v1.0.23 – v1.0.28 - Junio/Julio 2026](#v1023--v1028---juniojulio-2026)\n    - [v1.0.22 - Junio 2026](#v1022---junio-2026)\n    - [v1.0.21 - Mayo 2026](#v1021---mayo-2026)\n    - [v1.0.20 - Abril 2026](#v1020---abril-2026)\n    - [v1.0.19 - Abril 2026](#v1019---abril-2026)\n    - [v1.0.18 - Abril 2026](#v1018---abril-2026)\n    - [v1.0.17 - Febrero 2026](#v1017---febrero-2026)\n    - [v1.0.16 - Febrero 2026](#v1016---febrero-2026)\n    - [v1.0.15 - Febrero 2026](#v1015---febrero-2026)\n    - [v1.0.14 - Febrero 2026](#v1014---febrero-2026)\n    - [v1.0.13 - Febrero 2026](#v1013---febrero-2026)\n    - [v1.0.12 - Diciembre 2024](#v1012---diciembre-2024)\n\n---\n\n## 1. Instalación\n\n```bash\n# Instalación global\nnpm install -g holygrail5\n\n# Instalación local (recomendada)\nnpm install holygrail5 --save-dev\n```\n> Requiere Node.js >= 12 (probado hasta v20).\n\n---\n\n## 2. Flujo rápido\n\n```bash\n# 1) Genera CSS + guía\nnpx holygrail5\n\n# 2) Sirve dist/ en local\nnpm run serve\n# http://localhost:3000/index.html\n\n# 3) Trabaja en caliente\nnpm run watch   # regenera al guardar config.json\nnpm run dev     # watch + servidor\n\n# 4) Genera CSS y todos los temas activos (Dutti, Limited, …)\nnpm run build   # genera CSS, HTML, assets y temas automáticamente\n```\n\n---\n\n## 3. Scripts disponibles\n\n| Script | Descripción |\n| ------ | ----------- |\n| `npm run build` | Genera CSS, HTML, assets y transforma temas automáticamente usando `BuildOrchestrator`. |\n| `npm run watch` | Observa `config.json`, CSS y temas, regenerando automáticamente al detectar cambios. |\n| `npm run serve` | Abre el navegador y sirve `dist/` en el puerto 3000. |\n| `npm run dev` | Alias práctico: `watch` + `serve` (desarrollo en caliente). |\n| `npm run test` | Ejecuta todos los tests (20 tests unitarios). |\n| `npm run vars:report` | Informe completo de variables CSS. |\n| `npm run vars:remove-unused` | Limpia variables históricas no usadas. |\n\n---\n\n## 4. ¿Qué se genera?\n\n- **`dist/output.css`** → Reset, variables compartidas, helpers de spacing, helpers de layout, grid opcional, aspect ratios y tipografías mobile/desktop.\n- **`dist/index.html`** → Guía interactiva con navegación sticky, buscador y diffs visuales.\n- **`dist/guide-styles.css`** → Estilos de la guía de documentación.\n- **`dist/assets/`** → Imágenes y recursos estáticos.\n- **`dist/themes/<name>.css`** + **`dist/themes/<name>-demo.html`** → Un par de ficheros por cada tema activo en `config.themes[]`. Actualmente se generan `dutti.css` / `dutti-demo.html` y `limited.css` / `limited-demo.html`.\n\n---\n\n## 5. Estructura del proyecto\n\n```\nholygrail5/\n├── config.json                    # Configuración principal\n├── generate-css.js                # Entry point del build\n├── package.json                   # Dependencias y scripts\n│\n├── src/\n│   ├── assets/                    # Assets estáticos (imágenes)\n│   │   ├── intro.jpg\n│   │   ├── introm.jpg\n│   │   └── margen.webp\n│   │\n│   ├── build/                     # Sistema de build modular\n│   │   ├── asset-manager.js       # Gestión de assets\n│   │   ├── build-orchestrator.js  # Orquestador principal\n│   │   └── theme-transformer.js   # Transformación de temas\n│   │\n│   ├── generators/                # Generadores de CSS\n│   │   ├── grid-generator.js\n│   │   ├── helpers-generator.js\n│   │   ├── reset-generator.js\n│   │   ├── spacing-generator.js\n│   │   ├── typo-generator.js\n│   │   ├── utils.js\n│   │   └── variables-generator.js\n│   │\n│   ├── docs-generator/            # Generación de documentación\n│   │   ├── guide-styles.css\n│   │   ├── html-generator.js\n│   │   ├── variables-cli.js\n│   │   └── variables-tracker.js\n│   │\n│   ├── config-loader.js           # Carga y validación de config\n│   ├── css-generator.js           # Generador CSS principal\n│   ├── dev-server.js              # Servidor de desarrollo\n│   └── watch-config.js            # Sistema de watch\n│\n├── themes/                        # Sistema de temas\n│   ├── _base/                     # Componentes compartidos (fuente única)\n│   │   ├── _buttons.css\n│   │   ├── _inputs.css\n│   │   ├── _labels.css\n│   │   ├── _checkboxes.css\n│   │   ├── _radios.css\n│   │   ├── _switches.css\n│   │   ├── _forms.css\n│   │   ├── _containers.css\n│   │   ├── objects/\n│   │   │   └── _grid.css\n│   │   └── components/\n│   │       └── _icons.css\n│   │\n│   ├── dutti/                     # Tema Dutti (paleta neutra + sans-serif)\n│   │   ├── theme.json\n│   │   ├── _variables.css\n│   │   ├── theme.css              # @imports a ../_base/*\n│   │   └── demo.html\n│   │\n│   └── limited/                   # Tema Limited (dorados + serif)\n│       ├── theme.json\n│       ├── _variables.css\n│       ├── theme.css              # @imports a ../_base/*\n│       └── demo.html\n│\n├── tests/                         # Tests unitarios\n│   ├── asset-manager.test.js\n│   ├── build-orchestrator.test.js\n│   ├── theme-transformer.test.js\n│   ├── config-loader.test.js\n│   ├── css-generator.test.js\n│   ├── helpers.test.js\n│   ├── html-generator.test.js\n│   └── run-all.js\n│\n├── docs/                          # Documentación complementaria\n│   ├── ANALISIS-ARQUITECTURA.md\n│   ├── CHANGELOG-MEJORAS.md\n│   ├── GUIA-USO-OTRO-PROYECTO.md\n│   └── SUPERPROMPT.md\n│\n└── dist/                          # Archivos generados (gitignored)\n    ├── output.css\n    ├── index.html\n    ├── guide-styles.css\n    ├── assets/                    # Assets copiados\n    └── themes/                    # Temas generados\n```\n\n---\n\n## 6. Configurar `config.json`\n\n### 6.1 Ejemplo mínimo\n\n```jsonc\n{\n  \"prefix\": \"hg\",\n  \"baseFontSize\": 16,\n  \"breakpoints\": { \"mobile\": \"1px\", \"desktop\": \"992px\" },\n  \"fontFamilyMap\": {\n    \"primary\": \"arial, sans-serif\",\n    \"secondary\": \"\\\"ms-serif\\\", serif\"\n  },\n  \"colors\": { \"white\": \"#fff\", \"black\": \"#000\" },\n  \"spacingMap\": { \"0\": \"0\", \"16\": \"16px\", \"100-percent\": \"100%\" },\n  \"spacingImportant\": [\"0\"],\n  \"helpers\": {\n    \"display\": { \"property\": \"display\", \"class\": \"d\", \"responsive\": true, \"values\": [\"flex\", \"block\", \"none\"] }\n  },\n  \"grid\": { \"enabled\": true, \"gutter\": \"8px\", \"breakpoints\": { \"md\": { \"minWidth\": \"992px\", \"columns\": 12 } } },\n  \"aspectRatios\": [\n    { \"class\": \"aspect-16-9\", \"width\": 16, \"height\": 9, \"description\": \"Ratio 16:9 (widescreen)\" },\n    { \"class\": \"aspect-1-1\", \"width\": 1, \"height\": 1, \"description\": \"Ratio 1:1 (cuadrado)\" }\n  ],\n  \"typo\": {\n    \"h2\": {\n      \"fontFamily\": \"arial, sans-serif\",\n      \"fontWeight\": \"900\",\n      \"mobile\": { \"fontSize\": \"18px\", \"lineHeight\": \"1.2\" },\n      \"desktop\": { \"fontSize\": \"24px\", \"lineHeight\": \"1.2\" }\n    }\n  }\n}\n```\n\n### 6.2 Propiedades globales\n\n| Campo | Tipo | Descripción |\n| ----- | ---- | ----------- |\n| `prefix` | string | Prefijo usado en todas las variables (`--hg-color-*`). |\n| `baseFontSize` | number | Conversión automática px → rem (default `16`). |\n| `breakpoints.mobile` / `.desktop` | string | Valores usados en media queries (`992px`, etc.). |\n| `fontFamilyMap` | object | Alias legibles para las fuentes declaradas en tipografías. |\n| `colors` | object | Paleta exportada como `--hg-color-*`. |\n| `spacingMap` | object | Escala lógica de spacing (px o %). |\n| `spacingImportant` | string[] | Keys de spacing con `!important`. |\n| `helpers` | object | Helpers de layout. Permite arrays simples o mapas clave → valor. |\n| `grid` | object | Define breakpoints, columnas y gutter por tamaño. |\n| `aspectRatios` | array | **Opcional**: Define ratios de aspecto como `.hg-aspect-16-9` con fallback automático. |\n| `typo` | object | Clases de tipografía (obligatorio al menos un breakpoint). |\n| `themes` | array | Lista de temas a combinar desde `themes/<name>/`. Cada entrada es `{ name, enabled }`. El `BuildOrchestrator` genera un par `dist/themes/<name>.css` + `dist/themes/<name>-demo.html` por cada tema con `enabled: true`. Por compatibilidad hacia atrás se sigue aceptando el antiguo `theme: { name, enabled }` (un único tema). |\n| `assets` | object | **Opcional**: `{ css: [...], images: [...] }` para configurar qué archivos copiar a `dist/`. |\n\n### 6.3 Configuración de Assets (Opcional)\n\nPuedes configurar qué archivos CSS e imágenes se copian a `dist/` agregando una sección `assets` en tu `config.json`:\n\n```json\n{\n  \"assets\": {\n    \"css\": [\n      {\n        \"source\": \"src/docs-generator/guide-styles.css\",\n        \"dest\": \"dist/guide-styles.css\"\n      }\n    ],\n    \"images\": [\n      {\n        \"source\": \"src/assets/intro.jpg\",\n        \"dest\": \"dist/assets/intro.jpg\"\n      },\n      {\n        \"source\": \"src/assets/margen.webp\",\n        \"dest\": \"dist/assets/margen.webp\"\n      }\n    ]\n  }\n}\n```\n\n**Ventajas:**\n- ✅ Configuración sin modificar código\n- ✅ Fácil agregar nuevos assets\n- ✅ Flexible para diferentes proyectos\n\nSi no se especifica `assets`, el sistema usa una configuración por defecto.\n\n### 6.4 Helpers y grid\n\n- `src/generators/helpers-generator.js` crea clases del tipo `.hg-d-flex`, `.md\\:hg-justify-center`, `.hg-gap-16`, etc.\n- Puedes mezclar helpers basados en `values` y helpers que reutilizan `spacingMap` con `useSpacing: true` (gap, row-gap, column-gap...).\n- El grid (`grid.enabled=true`) genera utilidades `.row`, `.col-md-6`, offsets, contenedores fluidos y variantes por breakpoint.\n\n### 6.5 Ratios de Aspecto\n\n- `src/generators/ratio-generator.js` crea clases de aspect ratio como `.hg-aspect`, `.hg-aspect-16-9`, `.hg-aspect-1-1`, etc.\n- La clase `.hg-aspect` sin sufijo usa el ratio 2:3 por defecto.\n- Usa la propiedad CSS `aspect-ratio` nativa con fallback automático para navegadores antiguos (padding-top).\n- Incluye `.hg-aspect-image` para imágenes/videos con `object-fit: cover`.\n- Incluye `.hg-aspect-content` para posicionar contenido personalizado absolutamente dentro del ratio.\n- Cada ratio se define con `class`, `width`, `height` y `description`.\n- Útil para mantener proporciones consistentes en imágenes, videos y contenedores.\n- Incluye ratios comunes (1:1, 4:3, 16:9) y especializados (separadores 3:1, 7:1, 12:1, 24:1).\n\n### 6.6 Tipografías\n\n- El generador (`src/generators/typo-generator.js`) deduplica valores y crea variables compartidas (`--hg-typo-font-size-24`).\n- Cada clase admite propiedades base (`fontFamily`, `fontWeight`, `letterSpacing`, `textTransform`) y propiedades por breakpoint (`fontSize`, `lineHeight`).\n- Los valores px se convierten automáticamente a rem respetando `baseFontSize`.\n\n---\n\n## 7. CLI y argumentos\n\n`generate-css.js` puede ejecutarse como binario (`holygrail5`) o mediante `node generate-css.js`.\n\nArgumentos soportados:\n```bash\nnpx holygrail5 \\\n  --config=./config.personal.json \\\n  --output=./dist/custom.css \\\n  --html=./dist/guia.html\n```\n- Todos los parámetros son opcionales. Si omites alguno, se usan las rutas por defecto (`config.json` y `dist/*`).\n- El script ajusta automáticamente el `href=\"output.css\"` del HTML si CSS y HTML viven en carpetas distintas.\n\n---\n\n## 8. Guía HTML interactiva\n\nEl módulo `src/docs-generator/html-generator.js` produce `dist/index.html` con:\n- ✅ Resumen visual de colores, tipografías y spacing\n- ✅ Detección de cambios: los valores modificados respecto a `.data/.previous-values.json` se resaltan\n- ✅ Buscador instantáneo y navegación lateral fija\n- ✅ Información de metadata (versión del paquete y último commit disponible)\n- ✅ Diseño responsive con smooth scroll (Lenis)\n\n---\n\n## 9. Gestión de variables históricas\n\nEl binario `src/docs-generator/variables-cli.js` + el módulo `variables-tracker` guardan un historial en `.data/.historical-variables.json` para que ninguna variable desaparezca sin que lo decidas.\n\nComandos útiles:\n```bash\nnpm run vars:report          # Estadísticas y listado completo\nnpm run vars:remove-unused   # Limpia todas las variables no utilizadas\nnode src/docs-generator/variables-cli.js list --css=./dist/output.css\nnode src/docs-generator/variables-cli.js remove -- --hg-typo-font-size-18\n```\n> Después de borrar variables históricas conviene volver a ejecutar `npm run build` para regenerar el CSS sin referencias huérfanas.\n\n---\n\n## 10. Temas (Dutti, Limited) y demos\n\nHolyGrail5 soporta **múltiples temas simultáneos** bajo `themes/`. El build recorre el array `config.themes[]` y, para cada entrada con `enabled: true`, produce un par `dist/themes/<name>.css` + `dist/themes/<name>-demo.html`. Por defecto vienen dos temas:\n\n- **Dutti** (`themes/dutti/`): paleta neutra con tipografía sans-serif (Suisse Intl).\n- **Limited** (`themes/limited/`): paleta de lujo cálido (dorados + crema) con tipografía 100% serif (Suisse Works).\n\n### Arquitectura compartida: `themes/_base/`\n\nLos CSS de componente (`_buttons.css`, `_inputs.css`, `_checkboxes.css`, `_radios.css`, `_switches.css`, `_labels.css`, `_forms.css`, `_containers.css`, `objects/_grid.css`, `components/_icons.css`) viven **una sola vez** en `themes/_base/` y se comparten entre todos los temas. Cada tema aporta únicamente lo que lo hace distinto:\n\n- `theme.json` — meta + `tokenOverrides.color` + `componentVars` + `design`\n- `_variables.css` — overrides de `--hg-color-*`, `--hg-typo-font-family-*` y mapeo de componentVars (`--btn-*`, `--input-*`, …) a los tokens base\n- `theme.css` — `@import` de `_variables.css` local + `@import` de los componentes de `../_base/*.css`\n- `demo.html` — demo interactiva con placeholders `HG_THEME_BLOCK` y `HG_TYPO_TABLE` que el build sustituye por las tablas de variables y tipografía del tema\n\nComo los componentes de `_base/` consumen `var(--btn-*)`, `var(--input-*)`, etc., cambiar la paleta o la tipografía en el `_variables.css` de un tema se propaga automáticamente sin tocar los componentes.\n\n### Crear un tema nuevo\n\n1. Crea `themes/<nombre>/` con los 4 ficheros descritos arriba (puedes partir copiando `themes/dutti/` o `themes/limited/` y ajustar `theme.json` y `_variables.css`).\n2. Registra el tema en `config.json`:\n\n   ```json\n   {\n     \"themes\": [\n       { \"name\": \"dutti\",   \"enabled\": true },\n       { \"name\": \"limited\", \"enabled\": true },\n       { \"name\": \"<nombre>\", \"enabled\": true }\n     ]\n   }\n   ```\n\n3. Añade una entrada a `THEMES_IN_NAV` en `src/build/theme-transformer.js` (y a los nav estáticos de `src/docs-generator/html-generator.js`, `src/build/skills-generator.js` y `src/skills.html`) para que el nuevo tema aparezca como enlace cruzado en los demos.\n4. `npm run build` → verifica `dist/themes/<nombre>.css` y `dist/themes/<nombre>-demo.html`.\n\nPara guía detallada paso a paso y plantillas completas ver `skills/theme-creator/SKILL.md`.\n\n### Sobrescribir un componente SOLO en un tema\n\nLa regla es: *\"si quieres un componente distinto, machácalo en el tema\"*.\n\n1. Copia el CSS de `themes/_base/_inputs.css` a `themes/<nombre>/_inputs.css` y modifícalo.\n2. En `themes/<nombre>/theme.css` cambia el `@import` para apuntar al fichero local:\n\n   ```css\n   /* antes */\n   @import url('../_base/_inputs.css');\n   /* después */\n   @import url('_inputs.css');\n   ```\n\n3. El resto de componentes sigue heredando de `_base/`. Así evitas duplicar ficheros salvo cuando realmente haya override.\n\n### Flujo de desarrollo de temas\n\n1. `npm run watch` detecta cambios en `themes/` automáticamente (tanto en `_base/` como en cada tema).\n2. Los cambios en `demo.html`, `theme.css`, `_variables.css` o en los componentes compartidos se procesan al guardar.\n3. Los resultados se regeneran en `dist/themes/<name>-demo.html` y `dist/themes/<name>.css`.\n4. `npm run serve` sirve los demos en tiempo real con navegación cruzada entre todos los temas activos.\n\n---\n\n## 11. Arquitectura del sistema\n\nHolyGrail5 usa una arquitectura modular y centralizada construida en diciembre 2024:\n\n### Módulos principales\n\n#### **`BuildOrchestrator`** (`src/build/build-orchestrator.js`)\n- Coordina todo el proceso de build de forma centralizada\n- Genera CSS, HTML, copia assets y transforma temas\n- Soporta modo watch con cache busting automático\n- ~175 líneas, 100% testeado\n\n#### **`AssetManager`** (`src/build/asset-manager.js`)\n- Gestiona la copia de CSS e imágenes a `dist/`\n- Configuración centralizada desde `config.json` o fallback\n- API simple: `copyCSS()`, `copyImages()`, `copyAssets()`\n- Soporte para agregar assets dinámicamente\n- ~153 líneas, 10 tests\n\n#### **`ThemeTransformer`** (`src/build/theme-transformer.js`)\n- Transforma HTML de temas agregando sidebar, header y scripts\n- Inyecta Lenis para scroll suave y navegación\n- Manejo dinámico de múltiples temas\n- ~234 líneas, 5 tests\n\n### Ventajas de la arquitectura\n\n- ✅ **Sin duplicación de código** (~150 líneas eliminadas)\n- ✅ **Consistencia** entre build y watch\n- ✅ **Testeable** (20 tests unitarios, 100% pasando)\n- ✅ **Mantenible** (responsabilidades claramente separadas)\n- ✅ **Extensible** (fácil agregar nuevas funcionalidades)\n\n### Diagrama de flujo\n\n```\ngenerate-css.js\n     ↓\nBuildOrchestrator\n     ├── config-loader.js → Carga config.json\n     ├── css-generator.js → Genera CSS\n     ├── html-generator.js → Genera HTML\n     ├── AssetManager → Copia assets\n     └── ThemeTransformer → Transforma temas\n```\n\n---\n\n## 12. Tests y calidad\n\n### Suite de tests completa\n\n```bash\nnpm test  # Ejecuta todos los tests\n```\n\n**Tests disponibles:**\n- ✅ `config-loader.test.js` - Validación de configuración\n- ✅ `css-generator.test.js` - Generación de CSS\n- ✅ `helpers.test.js` - Utilidades compartidas\n- ✅ `html-generator.test.js` - Generación de HTML\n- ✅ `asset-manager.test.js` - Gestión de assets (10 tests)\n- ✅ `theme-transformer.test.js` - Transformación de temas (5 tests)\n- ✅ `build-orchestrator.test.js` - Orquestador de build (5 tests)\n\n**Resultados:**\n```\n📊 Resumen Total de Tests de Build:\n   ✅ Pasados: 20\n   ❌ Fallidos: 0\n   📈 Total: 20\n```\n\nLos tests:\n- Imprimen resultados en consola sin necesidad de frameworks pesados\n- Funciones puras fáciles de testear en aislamiento\n- Cobertura completa del sistema de build\n- Se ejecutan en menos de 1 segundo\n\n---\n\n## 13. Documentos complementarios\n\n| Archivo | Contenido |\n| ------- | --------- |\n| `docs/SUPERPROMPT.md` | Prompt detallado para asistentes/IA que necesiten generar HTML usando HolyGrail5. |\n| `docs/GUIA-USO-OTRO-PROYECTO.md` | Pasos para integrar HolyGrail5 en proyectos existentes. |\n| `docs/ANALISIS-ARQUITECTURA.md` | Análisis completo de la arquitectura y problemas resueltos. |\n| `docs/CHANGELOG-MEJORAS.md` | Registro detallado de la refactorización de diciembre 2024. |\n\n### Publicación en npm\n\n`dist/` está en `.gitignore` (no va al repo), pero **sí debe ir al paquete npm**. El script `prepack` ejecuta `npm run build` automáticamente antes de `npm pack` y `npm publish`, así que el tarball siempre incluye `dist/output.css`, temas, fuentes y la guía HTML.\n\n```bash\n# 1) Sube la versión en package.json\n# 2) Publica (build + tests + npm publish)\nnpm run publish:pkg\n```\n\nTambién puedes usar `npm publish` directamente: `prepack` regenerará `dist/` antes de empaquetar.\n\nEl paquete publica (vía `files` en `package.json`): `dist/**/*`, `config.json`, `src/**`, `themes/**` y `generate-css.js`.\n\n### Publicación de la guía\n\nPuedes publicar `dist/index.html` como documentación estática en:\n- GitHub Pages\n- Netlify (configurado en `netlify.toml`)\n- Vercel\n- Cualquier hosting estático\n\n```bash\nnpm run build\n# Publica el contenido de dist/ en tu hosting\n```\n\n---\n\n## 14. Recursos y soporte\n\n- **Repositorio**: [github.com/holygrailcss/holygrail5](https://github.com/holygrailcss/holygrail5)\n- **npm**: [holygrail5](https://www.npmjs.com/package/holygrail5)\n- **Issues y PRs**: Bienvenidos. Sigue el flujo clásico: fork → rama → PR\n- **Documentación**: Ver `docs/` para guías detalladas\n\n### Contribuir\n\n1. Fork el proyecto\n2. Crea tu rama de feature (`git checkout -b feature/AmazingFeature`)\n3. Commit tus cambios (`git commit -m 'feat: agregar AmazingFeature'`)\n4. Push a la rama (`git push origin feature/AmazingFeature`)\n5. Abre un Pull Request\n\n---\n\n## 15. Licencia\n\nMIT © HolyGrail CSS\n\nUsa, adapta y comparte libremente mientras conserves la atribución.\n\n---\n\n## Changelog\n\n### v1.0.23 – v1.0.28 - Junio/Julio 2026\n\nEntrada consolidada de las releases de junio–julio.\n\n- **Tipografía**: pesos de `config.typo` alineados con los cuts reales de cada `@font-face` (light=300, regular=400, medium=500, semibold=600; visualmente neutro). Nueva familia `primary-thin` + clase `.title-thin`. Fallback mono recortado a `ui-monospace, monospace` y fix de `label-mono`/`label-mono-b` (referenciaban una variable inexistente y caían a sans). Guía y demos migradas de Instrument Sans a Suisse.\n- **Helpers nuevos**: utilidades de color `.hg-c-*` y fondo `.hg-bg-*` (30 tokens), `.hg-sr-only`, colores de opacidad primary/secondary.\n- **Temas**: dutti y limited alineados con el set del `fontFamilyMap` base (7 claves, incl. thin; mono del tema dutti ya no cae a sans). Saneadas variables fantasma de `_radios.css` y oficializado el hook `--checkbox-check-color`.\n- **Guía (dist/index.html)**: reordenación (Helpers y Variables al final), compactación general (~40% menos scroll), ratios/containers a 2 columnas, layout agrupado por tipo, tablas densas, cajas explicativas a la izquierda, sin smooth-scroll (Lenis fuera de la landing), fix bullets del grid (\"[object Object]\"), columna \"Grosor\" en Font Families, buscador con escape HTML y restauración del markup al limpiar.\n- **Cross-browser**: regla explícita en skills — propiedades modernas solo como mejora progresiva con fallback (patrón `aspect-ratio`/`padding-top`, `100vh`/`100dvh`).\n- **Paquete npm**: de ~20 MB a ~3 MB (whitelist `files` precisado, `intro.jpg` comprimido 5,5 MB→200 KB, fuera backups y estado interno). Lenis vendorizado en `dist/assets/js/` (sin CDN externo). `prepack` ejecuta el build.\n- **Flujo consumidor**: `npx holygrail5 --config=... --output=...` ahora copia `guide-styles.css` y `assets/` (fuentes, imágenes, lenis) junto al output del consumidor — antes quedaban solo en el dist del paquete y la guía generada salía sin estilos.\n\n### v1.0.22 - Junio 2026\n\n- **Seguridad (guía y demos):** se escapan todos los valores del `config.json` al volcarse en la documentación generada (colores, tipografía, font families, variables CSS, helpers, aspect ratios, breakpoints, grid y containers). Evita inyección de HTML/JS al construir con un config no confiable y publicar `dist/index.html`. Nuevo `escapeHtml` centralizado en `src/generators/utils.js`.\n- **Seguridad (dev-server):** `src/dev-server.js` ahora captura URLs malformadas (ya no cae el proceso con `GET /%`), corrige el filtro de path traversal por prefijo y escucha solo en `127.0.0.1`.\n- **Fix:** los reemplazos del `ThemeTransformer` usan replacer de función para no corromper la salida cuando el contenido inyectado contiene `$`.\n- **Fix:** `getPackageVersion()` leía una ruta inexistente y la guía mostraba la versión como vacía; ahora muestra la versión real.\n- **Tests:** nuevo `tests/escaping.test.js` de regresión anti-inyección (suite en 29 tests). El CSS generado (`dist/output.css`, `dist/themes/dutti.css`) no cambia.\n\n### v1.0.21 - Mayo 2026\n\n- Ajustes en `typo-generator`: refinamiento de la generación de tablas tipográficas y casos límite del placeholder `HG_TYPO_TABLE`.\n\n### v1.0.20 - Abril 2026\n\n- Actualización de labels en la guía y demos (etiquetas de utilidades y secciones).\n- Nuevas clases tipográficas y sus estilos asociados (`config.json`, `typo-generator.js`, demo de Dutti).\n\n### v1.0.19 - Abril 2026\n\n- Bump de versión y mantenimiento de `package.json`.\n\n### v1.0.18 - Abril 2026\n\n- Refactor amplio bajo el commit \"cambios hg5\":\n  - Reorganización de skills (`.claude/skills`, `.cursor/skills/maquetar-holygrail5`) y `.cursorrules`.\n  - Fuentes Suisse Intl y Suisse Works incorporadas en `src/assets/fonts/`.\n  - Documentación nueva en `docs/`: `ANALISIS-ARQUITECTURA.md`, `ANALISIS-DESIGN-SYSTEM.md`, `CHANGELOG-MEJORAS.md`, `ESTRUCTURA-CSS.md`, `GUIA-USO-OTRO-PROYECTO.md`, `SUPERPROMPT.md`.\n  - Ajustes en `asset-manager.js`, `build-orchestrator.js`, `components-generator.js` y `guide-styles.css`.\n- Nueva clase de botón **badge** y documentación asociada en el tema Dutti.\n- Tarjeta de producto y ajustes de `margin-left` y configuración del grid.\n\n### v1.0.17 - Febrero 2026\n\n- Nueva release con limpieza general y consolidación de cambios previos.\n\n### v1.0.16 - Febrero 2026\n\n- Botón **badge** inicial (variantes y estilos personalizados).\n\n### v1.0.15 - Febrero 2026\n\n- Nuevo botón con estilos personalizados (`themes/dutti/_buttons.css`, `dutti-demo.html`).\n\n### v1.0.14 - Febrero 2026\n\n- Limpieza: eliminados estilos duplicados traspasados desde HG2.\n- Mejoras en grids (`Grids`).\n- Cambio del color verde y nuevo skill para estructura de archivos CSS.\n- Ajuste de columnas (`cambios cols`).\n\n### v1.0.13 - Febrero 2026\n\n- Refactor de la guía: ajustes de estilos y estructura (`guide-styles.css`, `html-generator.js`, demo de Dutti).\n- Mejoras en `docs-generator`:\n  - Generación de la cuadrícula de colores con clasificación de primarios y semánticos.\n  - Margen lateral y columnas de gutter en la tabla HTML; configuración de grid actualizada.\n  - Conversión de `fontSize` a px y mejora de la tabla de clases.\n- Nuevos helpers de espaciado con prefijo `hg-` para clases inline y block.\n- **Soporte para ratios de aspecto** en `config.json`, generadores y guía HTML, con tests dedicados; nueva clase para imágenes/vídeos en ratios de aspecto y propiedad `display` en `hg-aspect-image`.\n- Integración de la gestión de assets en el flujo de build (eliminada duplicación entre scripts).\n- Documentación: índice y secciones del README, simplificación de `SUPERPROMPT.md`.\n\n### v1.0.12 - Diciembre 2024\n\n**🎉 Refactorización arquitectural completa**\n\n- ✅ Nueva arquitectura modular con `BuildOrchestrator`, `AssetManager` y `ThemeTransformer`\n- ✅ Eliminadas ~150 líneas de código duplicado\n- ✅ Assets organizados en `src/assets/` y `dist/assets/`\n- ✅ Configuración de assets desde `config.json`\n- ✅ 20 tests unitarios agregados (100% pasando)\n- ✅ Sistema de watch mejorado\n- ✅ Documentación actualizada\n\nVer `docs/CHANGELOG-MEJORAS.md` para detalles completos.\n","readmeFilename":"README.md"}