[{"data":1,"prerenderedAt":689},["ShallowReactive",2],{"navigation_docs":3,"-guides-nuxt-and-ssr":279,"-guides-nuxt-and-ssr-surround":684},[4,26,112,211],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":25},"Getting Started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Migrate from 0.6","\u002Fgetting-started\u002Fmigration","1.getting-started\u002F3.migration","i-lucide-arrow-up-circle",false,{"title":27,"icon":28,"path":29,"stem":30,"children":31,"page":25},"Guides","i-lucide-book-open","\u002Fguides","2.guides",[32,37,42,47,52,57,62,67,72,77,82,87,92,97,102,107],{"title":33,"path":34,"stem":35,"icon":36},"Customize","\u002Fguides\u002Fcustomize","2.guides\u002F01.customize","i-lucide-paintbrush",{"title":38,"path":39,"stem":40,"icon":41},"Axis Domain and Ticks","\u002Fguides\u002Faxis-domain-and-ticks","2.guides\u002F03.axis-domain-and-ticks","i-lucide-ruler",{"title":43,"path":44,"stem":45,"icon":46},"Chart Size","\u002Fguides\u002Fchart-size","2.guides\u002F05.chart-size","i-lucide-maximize",{"title":48,"path":49,"stem":50,"icon":51},"Z-Order and Layers","\u002Fguides\u002Fz-order-and-layers","2.guides\u002F06.z-order-and-layers","i-lucide-layers",{"title":53,"path":54,"stem":55,"icon":56},"Coordinate Systems","\u002Fguides\u002Fcoordinate-systems","2.guides\u002F07.coordinate-systems","i-lucide-crosshair",{"title":58,"path":59,"stem":60,"icon":61},"Performance","\u002Fguides\u002Fperformance","2.guides\u002F08.performance","i-lucide-zap",{"title":63,"path":64,"stem":65,"icon":66},"Rounded Bar Corners","\u002Fguides\u002Frounded-bar-corners","2.guides\u002F09.rounded-bar-corners","i-lucide-square",{"title":68,"path":69,"stem":70,"icon":71},"Bar Alignment","\u002Fguides\u002Fbar-alignment","2.guides\u002F10.bar-alignment","i-lucide-align-center",{"title":73,"path":74,"stem":75,"icon":76},"Nuxt and SSR","\u002Fguides\u002Fnuxt-and-ssr","2.guides\u002F11.nuxt-and-ssr","i-lucide-server",{"title":78,"path":79,"stem":80,"icon":81},"Animation","\u002Fguides\u002Fanimation","2.guides\u002F12.animation","i-lucide-sparkles",{"title":83,"path":84,"stem":85,"icon":86},"Events and v-model","\u002Fguides\u002Fevents-and-models","2.guides\u002F13.events-and-models","i-lucide-mouse-pointer-click",{"title":88,"path":89,"stem":90,"icon":91},"TypeScript","\u002Fguides\u002Ftypescript","2.guides\u002F14.typescript","i-lucide-file-code",{"title":93,"path":94,"stem":95,"icon":96},"Theming and dark mode","\u002Fguides\u002Ftheming","2.guides\u002F15.theming","i-lucide-palette",{"title":98,"path":99,"stem":100,"icon":101},"shadcn-vue","\u002Fguides\u002Fshadcn-vue","2.guides\u002F16.shadcn-vue","i-lucide-component",{"title":103,"path":104,"stem":105,"icon":106},"Dashboard recipes","\u002Fguides\u002Fdashboard-recipes","2.guides\u002F17.dashboard-recipes","i-lucide-layout-dashboard",{"title":108,"path":109,"stem":110,"icon":111},"Accessibility","\u002Fguides\u002Faccessibility","2.guides\u002F18.accessibility","i-lucide-accessibility",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":25},"Charts","i-lucide-bar-chart-3","\u002Fcharts","3.charts",[118,123,128,133,138,143,148,153,158,163,167,172,177,182,187,192,197,201,206],{"title":119,"path":120,"stem":121,"icon":122},"Chart Containers","\u002Fcharts\u002Fchart-containers","3.charts\u002F0.chart-containers","i-lucide-box",{"title":124,"path":125,"stem":126,"icon":127},"Area Chart","\u002Fcharts\u002Farea-chart","3.charts\u002F01.area-chart","i-lucide-area-chart",{"title":129,"path":130,"stem":131,"icon":132},"Bar Chart","\u002Fcharts\u002Fbar-chart","3.charts\u002F02.bar-chart","i-lucide-bar-chart",{"title":134,"path":135,"stem":136,"icon":137},"Line Chart","\u002Fcharts\u002Fline-chart","3.charts\u002F03.line-chart","i-lucide-trending-up",{"title":139,"path":140,"stem":141,"icon":142},"Pie Chart","\u002Fcharts\u002Fpie-chart","3.charts\u002F04.pie-chart","i-lucide-pie-chart",{"title":144,"path":145,"stem":146,"icon":147},"Radar Chart","\u002Fcharts\u002Fradar-chart","3.charts\u002F05.radar-chart","i-lucide-radar",{"title":149,"path":150,"stem":151,"icon":152},"Radial Bar Chart","\u002Fcharts\u002Fradial-bar-chart","3.charts\u002F06.radial-bar-chart","i-lucide-circle-dot",{"title":154,"path":155,"stem":156,"icon":157},"Scatter Chart","\u002Fcharts\u002Fscatter-chart","3.charts\u002F07.scatter-chart","i-lucide-scatter-chart",{"title":159,"path":160,"stem":161,"icon":162},"Funnel Chart","\u002Fcharts\u002Ffunnel-chart","3.charts\u002F08.funnel-chart","i-lucide-filter",{"title":164,"path":165,"stem":166,"icon":51},"Composed Chart","\u002Fcharts\u002Fcomposed-chart","3.charts\u002F09.composed-chart",{"title":168,"path":169,"stem":170,"icon":171},"Treemap","\u002Fcharts\u002Ftreemap","3.charts\u002F10.treemap","i-lucide-layout-grid",{"title":173,"path":174,"stem":175,"icon":176},"Sunburst Chart","\u002Fcharts\u002Fsunburst-chart","3.charts\u002F11.sunburst-chart","i-lucide-sun",{"title":178,"path":179,"stem":180,"icon":181},"Sankey","\u002Fcharts\u002Fsankey","3.charts\u002F12.sankey","i-lucide-git-fork",{"title":183,"path":184,"stem":185,"icon":186},"Tracker","\u002Fcharts\u002Ftracker","3.charts\u002F13.tracker","i-lucide-activity",{"title":188,"path":189,"stem":190,"icon":191},"Calendar Heatmap","\u002Fcharts\u002Fcalendar-heatmap","3.charts\u002F14.calendar-heatmap","i-lucide-calendar-days",{"title":193,"path":194,"stem":195,"icon":196},"Heatmap and CohortChart","\u002Fcharts\u002Fheatmap","3.charts\u002F15.heatmap","i-lucide-grid-3x3",{"title":198,"path":199,"stem":200,"icon":137},"Sparkline","\u002Fcharts\u002Fsparkline","3.charts\u002F16.sparkline",{"title":202,"path":203,"stem":204,"icon":205},"Bar List","\u002Fcharts\u002Fbar-list","3.charts\u002F17.bar-list","i-lucide-list-ordered",{"title":207,"path":208,"stem":209,"icon":210},"Journey Sankey","\u002Fcharts\u002Fjourney-sankey","3.charts\u002F18.journey-sankey","i-lucide-split",{"title":212,"icon":213,"path":214,"stem":215,"children":216,"page":25},"Components","i-lucide-code","\u002Fcomponents","4.components",[217,222,227,231,236,240,245,249,254,259,264,269,274],{"title":218,"path":219,"stem":220,"icon":221},"Tooltip","\u002Fcomponents\u002Ftooltip","4.components\u002F01.tooltip","i-lucide-message-square",{"title":223,"path":224,"stem":225,"icon":226},"Legend","\u002Fcomponents\u002Flegend","4.components\u002F02.legend","i-lucide-list",{"title":228,"path":229,"stem":230,"icon":196},"CartesianGrid","\u002Fcomponents\u002Fcartesian-grid","4.components\u002F03.cartesian-grid",{"title":232,"path":233,"stem":234,"icon":235},"Axes","\u002Fcomponents\u002Faxis","4.components\u002F04.axis","i-lucide-move",{"title":237,"path":238,"stem":239,"icon":147},"Polar Axes and Grid","\u002Fcomponents\u002Fpolar-axes","4.components\u002F05.polar-axes",{"title":241,"path":242,"stem":243,"icon":244},"Brush","\u002Fcomponents\u002Fbrush","4.components\u002F06.brush","i-lucide-sliders-horizontal",{"title":246,"path":247,"stem":248,"icon":56},"Reference Elements","\u002Fcomponents\u002Freference-elements","4.components\u002F07.reference-elements",{"title":250,"path":251,"stem":252,"icon":253},"ErrorBar","\u002Fcomponents\u002Ferror-bar","4.components\u002F08.error-bar","i-lucide-chevrons-up-down",{"title":255,"path":256,"stem":257,"icon":258},"Labels and Cell","\u002Fcomponents\u002Flabels","4.components\u002F09.labels","i-lucide-tag",{"title":260,"path":261,"stem":262,"icon":263},"Text","\u002Fcomponents\u002Ftext","4.components\u002F10.text","i-lucide-type",{"title":265,"path":266,"stem":267,"icon":268},"Shapes","\u002Fcomponents\u002Fshapes","4.components\u002F11.shapes","i-lucide-shapes",{"title":270,"path":271,"stem":272,"icon":273},"Composables","\u002Fcomponents\u002Fcomposables","4.components\u002F12.composables","i-lucide-function-square",{"title":275,"path":276,"stem":277,"icon":278},"Custom overlays","\u002Fcomponents\u002Fcustom-overlays","4.components\u002F13.custom-overlays","i-lucide-pencil-ruler",{"id":280,"title":73,"body":281,"description":677,"extension":678,"links":679,"meta":680,"navigation":681,"path":74,"seo":682,"stem":75,"__hash__":683},"docs\u002F2.guides\u002F11.nuxt-and-ssr.md",{"type":282,"value":283,"toc":671},"minimark",[284,288,293,305,376,403,475,479,482,513,516,607,610,614,653,657,667],[285,286,287],"p",{},"The server sends each chart at its entrance start: collapsed bars, undrawn lines and transparent cells. After hydration, the entrance plays when the chart is on screen.",[289,290,292],"h2",{"id":291},"install-the-module","Install the module",[285,294,295,296,300,301,304],{},"The module needs Nuxt 4 or later. On Nuxt 3 it stops the build with an error; there, import the components from ",[297,298,299],"code",{},"vccs"," or use ",[297,302,303],{},"vccs\u002Fresolver",".",[306,307,313],"pre",{"className":308,"code":309,"filename":310,"language":311,"meta":312,"style":312},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: ['vccs\u002Fnuxt'],\n})\n","nuxt.config.ts","ts","",[297,314,315,339,367],{"__ignoreMap":312},[316,317,320,324,327,331,335],"span",{"class":318,"line":319},"line",1,[316,321,323],{"class":322},"s7zQu","export",[316,325,326],{"class":322}," default",[316,328,330],{"class":329},"s2Zo4"," defineNuxtConfig",[316,332,334],{"class":333},"sTEyZ","(",[316,336,338],{"class":337},"sMK4o","{\n",[316,340,342,346,349,352,355,359,361,364],{"class":318,"line":341},2,[316,343,345],{"class":344},"swJcz","  modules",[316,347,348],{"class":337},":",[316,350,351],{"class":333}," [",[316,353,354],{"class":337},"'",[316,356,358],{"class":357},"sfazB","vccs\u002Fnuxt",[316,360,354],{"class":337},[316,362,363],{"class":333},"]",[316,365,366],{"class":337},",\n",[316,368,370,373],{"class":318,"line":369},3,[316,371,372],{"class":337},"}",[316,374,375],{"class":333},")\n",[285,377,378,379,366,382,385,386,389,390,392,393,395,396,398,399,402],{},"The module auto-imports every component and every composable (",[297,380,381],{},"usePlotArea",[297,383,384],{},"useXAxisScale",", …). Import types and ",[297,387,388],{},"defineChartComponents"," from ",[297,391,299],{},". Components have no\nprefix by default. Names such as ",[297,394,218],{},", ",[297,397,223],{}," and ",[297,400,401],{},"Label"," can conflict with shadcn-vue or Nuxt UI. Set a prefix to avoid these name collisions:",[306,404,406],{"className":308,"code":405,"filename":310,"language":311,"meta":312,"style":312},"export default defineNuxtConfig({\n  modules: ['vccs\u002Fnuxt'],\n  vccs: { prefix: 'V' }, \u002F\u002F \u003CVBarChart>, \u003CVLine>, ...\n})\n",[297,407,408,420,438,468],{"__ignoreMap":312},[316,409,410,412,414,416,418],{"class":318,"line":319},[316,411,323],{"class":322},[316,413,326],{"class":322},[316,415,330],{"class":329},[316,417,334],{"class":333},[316,419,338],{"class":337},[316,421,422,424,426,428,430,432,434,436],{"class":318,"line":341},[316,423,345],{"class":344},[316,425,348],{"class":337},[316,427,351],{"class":333},[316,429,354],{"class":337},[316,431,358],{"class":357},[316,433,354],{"class":337},[316,435,363],{"class":333},[316,437,366],{"class":337},[316,439,440,443,445,448,451,453,456,459,461,464],{"class":318,"line":369},[316,441,442],{"class":344},"  vccs",[316,444,348],{"class":337},[316,446,447],{"class":337}," {",[316,449,450],{"class":344}," prefix",[316,452,348],{"class":337},[316,454,455],{"class":337}," '",[316,457,458],{"class":357},"V",[316,460,354],{"class":337},[316,462,463],{"class":337}," },",[316,465,467],{"class":466},"sHwdD"," \u002F\u002F \u003CVBarChart>, \u003CVLine>, ...\n",[316,469,471,473],{"class":318,"line":470},4,[316,472,372],{"class":337},[316,474,375],{"class":333},[289,476,478],{"id":477},"how-server-rendering-works","How server rendering works",[285,480,481],{},"Responsive charts reserve their box on the server and stay hidden until the browser measures it. This avoids drawing at the wrong width and then snapping to the real size.",[483,484,485,496,502],"ul",{},[486,487,488,489,398,492,495],"li",{},"A chart with numeric ",[297,490,491],{},"width",[297,493,494],{},"height"," renders exactly at that size.",[486,497,498,499,501],{},"A chart with only ",[297,500,494],{}," (the most common case) uses an initial width of 640 px and fills the container width after measurement.",[486,503,504,505,508,509,512],{},"Without a size, the chart starts at 640 × 360 (or ",[297,506,507],{},"640 \u002F aspect"," high when ",[297,510,511],{},"aspect"," is set).",[285,514,515],{},"For a complete chart without JavaScript, use fixed width and height and turn animation off:",[306,517,521],{"className":518,"code":519,"language":520,"meta":312,"style":312},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003CAreaChart :data=\"data\" :width=\"900\" :height=\"250\" :is-animation-active=\"false\">\n  \u003CArea data-key=\"desktop\" \u002F>\n\u003C\u002FAreaChart>\n","vue",[297,522,523,593,598],{"__ignoreMap":312},[316,524,525,528,531,534,538,541,544,546,548,550,552,554,556,560,562,564,566,568,570,573,575,577,580,582,584,588,590],{"class":318,"line":319},[316,526,527],{"class":337},"\u003C",[316,529,530],{"class":344},"AreaChart",[316,532,533],{"class":337}," :",[316,535,537],{"class":536},"spNyl","data",[316,539,540],{"class":337},"=",[316,542,543],{"class":337},"\"",[316,545,537],{"class":333},[316,547,543],{"class":337},[316,549,533],{"class":337},[316,551,491],{"class":536},[316,553,540],{"class":337},[316,555,543],{"class":337},[316,557,559],{"class":558},"sbssI","900",[316,561,543],{"class":337},[316,563,533],{"class":337},[316,565,494],{"class":536},[316,567,540],{"class":337},[316,569,543],{"class":337},[316,571,572],{"class":558},"250",[316,574,543],{"class":337},[316,576,533],{"class":337},[316,578,579],{"class":536},"is-animation-active",[316,581,540],{"class":337},[316,583,543],{"class":337},[316,585,587],{"class":586},"sfNiH","false",[316,589,543],{"class":337},[316,591,592],{"class":337},">\n",[316,594,595],{"class":318,"line":341},[316,596,597],{"class":333},"  \u003CArea data-key=\"desktop\" \u002F>\n",[316,599,600,603,605],{"class":318,"line":369},[316,601,602],{"class":337},"\u003C\u002F",[316,604,530],{"class":344},[316,606,592],{"class":337},[285,608,609],{},"Disabling animation alone does not reveal an unmeasured responsive chart.",[289,611,613],{"id":612},"what-vccs-does-for-you","What vccs does for you",[483,615,616,631,637,643],{},[486,617,618,622,623,626,627,630],{},[619,620,621],"strong",{},"Same first render on server and client."," Every chart item registers before any geometry renders, regardless of the order you declare children in. A ",[297,624,625],{},"\u003CLine>"," declared before a ",[297,628,629],{},"\u003CBar>"," still gets the bar's category padding on the first render.",[486,632,633,636],{},[619,634,635],{},"Entrance after hydration."," Hydration preserves the entrance start. The entrance plays when the chart is on screen.",[486,638,639,642],{},[619,640,641],{},"No text measurement during hydration."," Tick sizes are measured after mount, then the layout settles.",[486,644,645,648,649,652],{},[619,646,647],{},"Request isolation."," Generated ids use Vue's ",[297,650,651],{},"useId()",", and no chart state lives in module scope.",[289,654,656],{"id":655},"client-only-charts","Client-only charts",[285,658,659,660,663,664,304],{},"You do not need ",[297,661,662],{},"\u003CClientOnly>",". Use it only when the data itself exists only in the browser, for example from ",[297,665,666],{},"localStorage",[668,669,670],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":312,"searchDepth":341,"depth":341,"links":672},[673,674,675,676],{"id":291,"depth":341,"text":292},{"id":477,"depth":341,"text":478},{"id":612,"depth":341,"text":613},{"id":655,"depth":341,"text":656},"Server-render charts in Nuxt with correct layout and clean hydration","md",null,{},{"icon":76},{"title":73,"description":677},"sbs1bKSS_aUTAyz5HesNUEU9Int7dfqiMP4DA9ANdpo",[685,687],{"title":68,"path":69,"stem":70,"description":686,"icon":71,"children":-1},"Control bar width, spacing, and alignment within categories",{"title":78,"path":79,"stem":80,"description":688,"icon":81,"children":-1},"How charts move, how to tune the motion, and how to turn it off",1791811109636]