PageSourceSearch

https://remodelai.co/_next/static/chunks/pages/calculators/flooring-58b48046c135a0e9.js

js remodelai.co collected 2026-10-08 09:10:28 UTC 14,542 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4930],{9261:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/calculators/flooring",function(){return a(4118)}])},4118:function(e,t,a){"use strict";a.r(t),a.d(t,{__N_SSG:function(){return d},default:function(){return h}});var o=a(5893),r=a(9147),n=a(253),l=a(7294),s=a(3450),i={laminate:{label:"Laminate",box:"20",price:"2.50",install:"3"},lvp:{label:"Luxury vinyl plank",box:"24",price:"3.50",install:"3"},engineered:{label:"Engineered hardwood",box:"22",price:"6",install:"5"},solid:{label:"Solid hardwood",box:"20",price:"8",install:"7"},tile:{label:"Ceramic / porcelain tile",box:"12",price:"4",install:"9"},carpet:{label:"Carpet (per sq ft)",box:"0",price:"3",install:"2"}};function c(){var e=(0,l.useState)("ft"),t=e[0],a=e[1],r=(0,l.useState)("dims"),c=r[0],u=r[1],d=(0,l.useState)("15"),h=d[0],f=d[1],m=(0,l.useState)("12"),p=m[0],g=m[1],x=(0,l.useState)("180"),b=x[0],y=x[1],v=(0,l.useState)("10"),w=v[0],j=v[1],$=(0,l.useState)("lvp"),N=$[0],q=$[1],k=(0,l.useState)(i.lvp.box),C=k[0],S=k[1],Z=(0,l.useState)(i.lvp.price),F=Z[0],K=Z[1],L=(0,l.useState)(i.lvp.install),T=L[0],_=L[1],O=(0,l.useState)(!1),E=O[0],I=O[1],A="m"===t,M="dims"===c?(0,s.OK)(h)*(0,s.OK)(p):(0,s.OK)(b),W=A?M*s.lp:M,P=Math.max((0,s.OK)(w),0),R=W*(1+P/100),D=(0,s.OK)(C),U=D>0?Math.ceil(R/D):0,H=D>0?U*D:R,z=H*(0,s.OK)(F),B=E?W*(0,s.OK)(T):0;return(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3 mb-4",children:[(0,o.jsx)("h2",{className:"text-xl font-bold text-gray-900 m-0",children:"Floor area and product"}),(0,o.jsxs)("div",{className:"flex gap-2",children:[(0,o.jsx)(s.rs,{value:c,onChange:u,options:[{value:"dims",label:"Length \xd7 width"},{value:"area",label:"I know the area"}]}),(0,o.jsx)(s.rs,{value:t,onChange:a,options:[{value:"ft",label:"ft"},{value:"m",label:"m"}]})]})]}),(0,o.jsxs)("div",{className:"grid gap-3 sm:grid-cols-3",children:["dims"===c?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.Ki,{id:"f-len",label:"Room length",value:h,onChange:f,suffix:t}),(0,o.jsx)(s.Ki,{id:"f-wid",label:"Room width",value:p,onChange:g,suffix:t})]}):(0,o.jsx)(s.Ki,{id:"f-area",label:"Total floor area",value:b,onChange:y,suffix:A?"m\xb2":"sq ft",hint:"Sum of all rooms"}),(0,o.jsx)(s.Ki,{id:"f-waste",label:"Waste allowance",value:w,onChange:j,suffix:"%",hint:"10% straight lay, 15% angles, 20% herringbone"}),(0,o.jsx)(s.mg,{id:"f-type",label:"Flooring type (sets typical defaults)",value:N,onChange:function(e){q(e),S(i[e].box),K(i[e].price),_(i[e].install)},options:Object.entries(i).map((function(e){var t=(0,n.Z)(e,2);return{value:t[0],label:t[1].label}}))}),(0,o.jsx)(s.Ki,{id:"f-box",label:"Coverage per box",value:C,onChange:S,suffix:"sq ft",hint:"0 = sold by the square foot"}),(0,o.jsx)(s.Ki,{id:"f-price",label:"Price per sq ft",value:F,onChange:K,suffix:"$"}),(0,o.jsxs)("label",{className:"flex items-center gap-2 text-sm font-medium text-gray-700 mt-6",children:[(0,o.jsx)("input",{type:"checkbox",checked:E,onChange:function(e){return I(e.target.checked)},className:"h-4 w-4 rounded border-gray-300 text-blue-600"}),"Include installation"]}),E&&(0,o.jsx)(s.Ki,{id:"f-install",label:"Installation per sq ft",value:T,onChange:_,suffix:"$"})]}),(0,o.jsxs)("div",{className:"mt-6 grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:[(0,o.jsx)(s.kN,{label:D>0?"Boxes to buy":"Flooring to buy",value:D>0?"".concat(U," box").concat(1===U?"":"es"):"".concat((0,s.ZN)(R)," sq ft"),sub:D>0?"".concat((0,s.ZN)(H)," sq ft in total"):"".concat((0,s.ZN)(R/s.lp,2)," m\xb2"),highlight:!0}),(0,o.jsx)(s.kN,{label:"Floor area",value:"".concat((0,s.ZN)(W)," sq ft"),sub:"".concat((0,s.ZN)(W/s.lp,2)," m\xb2")}),(0,o.jsx)(s.kN,{label:"With waste",value:"".concat((0,s.ZN)(R)," sq ft"),sub:"+".concat(P,"% = ").concat((0,s.ZN)(R-W)," sq ft extra")}),(0,o.jsx)(s.kN,{label:E?"Materials + install":"Material cost",value:(0,s.CZ)(z+B),sub:E?"".concat((0,s.CZ)(z)," materials + ").concat((0,s.CZ)(B)," labour"):"".concat((0,s.ZN)(H)," sq ft \xd7 ").concat((0,s.CZ)((0,s.OK)(F)))})]}),(0,o.jsx)("p",{className:"mt-4 text-sm text-gray-600 m-0",children:"Formula: area \xd7 (1 + waste%) \xf7 square feet per box, rounded up. Cost uses the square footage you actually buy (full boxes), not the bare room area. Underlayment, trim and transitions are extra."})]})}var u=[{name:"Enter the floor area",text:"Type the room's length and width, or the total square footage if you already added up several rooms with the room size calculator."},{name:"Set waste, box size and price",text:"Keep 10 percent waste for a straight lay, raise it for diagonal or herringbone patterns, then enter the coverage per box and the price per square foot from the product page."},{name:"Order the boxes",text:"The calculator rounds up to whole boxes and totals the material cost, with optional installation. Preview the floor in a photo of your room before you commit."}],d=!0;function h(e){var t=e.tool,a=(0,r.I$)({name:"How to calculate how much flooring you need",description:"Measure the floor area, add a waste allowance, divide by the coverage per box and round up.",steps:u,path:t.path});return(0,o.jsxs)(r.ZP,{tool:t,intro:"Work out how many square feet of flooring to order, how many boxes that is, and what it costs. Works for hardwood, laminate, luxury vinyl plank, tile and carpet, in feet or meters. Free, no sign-up.",toolElement:(0,o.jsx)(c,{}),extraLd:[a],ctaTitle:"See the new floor in your actual room",ctaText:"Upload a photo and our AI swaps the floor for oak, walnut, tile, polished concrete or anything you describe, so you can compare options before spending on boxes.",relatedExtra:[{href:"/ideas/living-room-floor-ideas",label:"Living room floor ideas"},{href:"/ideas/laundry-room-tile-ideas",label:"Laundry room tile ideas"},{href:"/blogs/ai-interior-design-complete-guide",label:"Guide: AI interior design"}],children:[(0,o.jsxs)(r.$0,{title:"How to calculate flooring: the formula",children:[(0,o.jsx)("p",{children:"Flooring is bought by area plus a waste allowance, and most products come in boxes, so the calculation has three steps:"}),(0,o.jsxs)("ol",{className:"list-decimal pl-5 space-y-2",children:[(0,o.jsxs)("li",{children:[(0,o.jsx)("strong",{children:"Floor area = length \xd7 width."})," A 15 \xd7 12 ft room is 180 sq ft. For L-shaped rooms or several rooms, split into rectangles and add them; the ",(0,o.jsx)("a",{href:"/calculators/room-size",children:"room size calculator"})," does this for you."]}),(0,o.jsxs)("li",{children:[(0,o.jsx)("strong",{children:"Add waste."})," Multiply by 1.10 for a 10 percent allowance: 180 \xd7 1.10 = 198 sq ft. Waste covers end cuts, planks damaged in transit and a few spares for future repairs."]}),(0,o.jsxs)("li",{children:[(0,o.jsx)("strong",{children:"Divide by the box coverage and round up."})," If a box holds 24 sq ft, 198 \xf7 24 = 8.25, so buy"," ",(0,o.jsx)("strong",{children:"9 boxes"})," (216 sq ft). Cost is the square footage you actually buy times the price per square foot: 216 \xd7 $3.50 = ",(0,o.jsx)("strong",{children:"$756"}),"."]})]}),(0,o.jsx)("p",{children:"Tile follows the same logic, but the box is often labelled by number of tiles. Multiply tile length by width (in feet) by the count to get the coverage: ten 12 \xd7 24 in tiles are 10 \xd7 2 = 20 sq ft. Carpet is sold by the square yard from a 12 ft wide roll, so divide square feet by 9 and expect more waste on rooms wider than 12 ft."})]}),(0,o.jsxs)(r.$0,{title:"How much waste to add",children:[(0,o.jsx)(r.$t,{caption:"Recommended flooring waste allowance by layout",head:["Situation","Waste allowance","Why"],rows:[["Rectangular room, planks laid straight","7\u201310%","Only end cuts and a few damaged boards"],["Room with closets, alcoves or angles","12\u201315%","More short cuts around obstacles"],["Diagonal (45\xb0) installation","15%","Every row has two angled cuts"],["Herringbone or chevron","20%","Angled cuts on every piece"],["Large-format tile (24 in and up)","15\u201320%","Fewer cuts but each waste piece is large"],["Several small rooms with one product","12%","Cuts do not carry over between rooms"],["Reclaimed or hand-scraped wood","15\u201320%","Higher rejection rate per box"]]}),(0,o.jsx)("p",{children:"When the box count lands just over a whole number (say 8.05 boxes), check whether a slightly lower waste figure still stays above 7 percent before dropping a box. And always keep one unopened box after the job: dye lots and embossing change between production runs, so a matching repair plank a year later is hard to find."})]}),(0,o.jsxs)(r.$0,{title:"Flooring cost per square foot (2026)",children:[(0,o.jsx)(r.$t,{caption:"Typical flooring material and installation costs",head:["Type","Material / sq ft","Installation / sq ft","Typical box coverage"],rows:[["Sheet vinyl","$1\u2013$3","$1\u2013$3","S
1old by the roll"],["Laminate","$1.50\u2013$4","$2\u2013$4","18\u201325 sq ft"],["Luxury vinyl plank (LVP)","$2\u2013$6","$2\u2013$4","20\u201336 sq ft"],["Ceramic / porcelain tile","$2\u2013$8","$5\u2013$12","10\u201316 sq ft"],["Engineered hardwood","$4\u2013$10","$3\u2013$8","15\u201330 sq ft"],["Solid hardwood","$5\u2013$15","$4\u2013$10","18\u201324 sq ft"],["Carpet","$2\u2013$7","$1\u2013$3","Sold by the sq yd"]]}),(0,o.jsxs)("p",{children:["For a 180 sq ft bedroom that means roughly ",(0,o.jsx)("strong",{children:"$400\u2013$900 in laminate or vinyl"}),", $900\u2013$2,000 in engineered wood and $1,100\u2013$3,000 in solid hardwood for materials alone. Installed prices are about double. Remember underlayment ($0.30\u2013$1 per sq ft for floating floors), transition strips and quarter-round trim, which the calculator does not include."]}),(0,o.jsx)(r.y5,{slug:t.exampleSlug,alt:"Living room floor"})]}),(0,o.jsxs)(r.$0,{title:"Worked example: L-shaped living room with LVP",children:[(0,o.jsxs)("p",{children:["The room is 18 \xd7 14 ft with an 8 \xd7 6 ft dining alcove: (18 \xd7 14) + (8 \xd7 6) = 252 + 48 = ",(0,o.jsx)("strong",{children:"300 sq ft"}),". The alcove adds cuts, so use 12 percent waste: 300 \xd7 1.12 = 336 sq ft. The chosen vinyl plank comes 23.5 sq ft to a box: 336 \xf7 23.5 = 14.3, so ",(0,o.jsx)("strong",{children:"buy 15 boxes"})," (352.5 sq ft). At $3.29 per sq ft the material cost is 352.5 \xd7 3.29 = ",(0,o.jsx)("strong",{children:"$1,160"}),", plus about $900 for professional installation at $3 per sq ft, or a weekend of your own time and a $40 pull bar and tapping block."]}),(0,o.jsxs)("p",{children:["Before ordering, photograph the room and try a few floor colors in the"," ",(0,o.jsx)("a",{href:"/en/interior/design-ai",children:"AI interior design tool"}),". A light oak and a dark walnut change the feel of a space far more than the price difference suggests, and it is much cheaper to change your mind on a screen."]})]}),(0,o.jsx)(r.n7,{steps:u})]})}},3450:function(e,t,a){"use strict";a.d(t,{CZ:function(){return u},Ki:function(){return r},Kl:function(){return h},OK:function(){return i},ZN:function(){return c},kN:function(){return s},lp:function(){return d},mg:function(){return n},rs:function(){return l}});var o=a(5893);function r(e){var t=e.label,a=e.value,r=e.onChange,n=e.min,l=void 0===n?0:n,s=e.step,i=void 0===s?"any":s,c=e.suffix,u=e.hint,d=e.id;return(0,o.jsxs)("label",{htmlFor:d,className:"block text-sm font-medium text-gray-700",children:[t,(0,o.jsxs)("div",{className:"mt-1 flex rounded-lg border border-gray-300 bg-white overflow-hidden focus-within:ring-2 focus-within:ring-blue-500",children:[(0,o.jsx)("input",{id:d,type:"number",inputMode:"decimal",min:l,step:i,value:a,onChange:function(e){return r(e.target.value)},className:"w-full px-3 py-2 text-gray-900 outline-none"}),c&&(0,o.jsx)("span",{className:"px-3 py-2 bg-gray-50 text-gray-500 text-sm border-l border-gray-200 whitespace-nowrap",children:c})]}),u&&(0,o.jsx)("span",{className:"block text-xs text-gray-500 mt-1 font-normal",children:u})]})}function n(e){var t=e.label,a=e.value,r=e.onChange,n=e.options,l=e.id;return(0,o.jsxs)("label",{htmlFor:l,className:"block text-sm font-medium text-gray-700",children:[t,(0,o.jsx)("select",{id:l,value:a,onChange:function(e){return r(e.target.value)},className:"mt-1 w-full rounded-lg border border-gray-300 bg-white px-3 py-2 text-gray-900 focus:ring-2 focus:ring-blue-500 outline-none",children:n.map((function(e){return(0,o.jsx)("option",{value:e.value,children:e.label},e.value)}))})]})}function l(e){var t=e.value,a=e.onChange,r=e.options;return(0,o.jsx)("div",{className:"inline-flex rounded-lg border border-gray-300 bg-white p-1",role:"group","aria-label":"Units",children:r.map((function(e){return(0,o.jsx)("button",{type:"button",onClick:function(){return a(e.value)},className:"px-3 py-1.5 text-sm rounded-md font-medium transition-colors ".concat(t===e.value?"bg-blue-600 text-white":"text-gray-700 hover:bg-gray-100"),"aria-pressed":t===e.value,children:e.label},e.value)}))})}function s(e){var t=e.label,a=e.value,r=e.sub,n=e.highlight;return(0,o.jsxs)("div",{className:"rounded-xl p-4 ".concat(n?"bg-blue-600 text-white":"bg-white border border-gray-200 text-gray-900"),children:[(0,o.jsx)("div",{className:"text-xs uppercase tracking-wide ".concat(n?"text-blue-100":"text-gray-500"),children:t}),(0,o.jsx)("div",{className:"text-2xl font-bold mt-1",children:a}),r&&(0,o.jsx)("div",{className:"text-xs mt-1 ".concat(n?"text-blue-100":"text-gray-500"),children:r})]})}var i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=parseFloat(e);return Number.isFinite(a)?a:t},c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;
1return Number(e).toLocaleString("en-US",{maximumFractionDigits:t,minimumFractionDigits:0})},u=function(e){return Number(e).toLocaleString("en-US",{style:"currency",currency:"USD",maximumFractionDigits:0})},d=10.7639,h=3.28084},9474:function(e,t,a){"use strict";function o(e){if(Array.isArray(e))return e}a.d(t,{Z:function(){return o}})},3128:function(e,t,a){"use strict";function o(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}a.d(t,{Z:function(){return o}})},253:function(e,t,a){"use strict";a.d(t,{Z:function(){return s}});var o=a(9474),r=a(3375),n=a(3128),l=a(1566);function s(e,t){return(0,o.Z)(e)||(0,r.Z)(e,t)||(0,l.Z)(e,t)||(0,n.Z)()}}},function(e){e.O(0,[3874,1664,3945,7357,9147,9774,2888,179],(function(){return t=9261,e(e.s=t);var t}));var t=e.O();_N_E=t}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.