1<!DOCTYPE html> 2<html lang="en-us"> 3 <head> 4 <link rel="stylesheet" href="https://use.typekit.net/ypj2lvn.css">
4<script> 5 document.addEventListener("DOMContentLoaded", function(event) { 6 function usmPageRenderUtil(){var e=this;e.pageCategory="",e.heroElements=[],e.fpTime=null,e.fmpTime=null,e.fmpToTti=null,e.ttiTime=null,e.checker=null,e.waitTime=5e3,e.debug=!1,e.run=function(t){var n=t.heroElementIdentifiers||[".page-hero-element"];return e.pageCategory=t.pageCategory,e.debug=t.debug||!1,new Promise(function(t,r){e.observePaint().then(function(){e.observeHeroElements(n).then(function(){e.observeLongTasks().then(function(){e.fmpToTti=e.ttiTime-e.fmpTime,e.debug&&(console.log("FP: "+e.fpTime),console.log("FMP: "+e.fmpTime),console.log("FMP to TTI: "+e.fmpToTti),console.log("TTI: "+e.ttiTime)),t(e)})})})})},e.observePaint=function(){return new Promise(function(t,n){if(PerformanceObserver===null||PerformanceObserver===undefined)return n(),!1;var r=new PerformanceObserver(function(n){var r=n.getEntries();for(var i in r){var s=r[i],o=s.name;e.fpTime=performance.now();if("first-paint"===s.name){e.debug&&(console.log(s),console.log("metricName"),console.log(o)),t();return}}});r.observe({entryTypes:["paint"]})})},e.observeHeroElements=function(t){return new Promise(function(n,r){t=t.join(),e.debug&&console.log("Hero elements: "+t),e.heroElements=[].slice.call(document.querySelectorAll(t)),e.debug&&console.log("Hero elements count: ["+e.heroElements.length+"]");var i=new MutationObserver(function(t){for(var r=0;r<e.heroElements.length;r++){var s=e.heroElements[r];document.contains(s)&&e.heroElements.splice(r,1)}e.heroElements.length<=0&&(i.disconnect(),e.fmpTime=performance.now(),e.debug&&console.log("Hero observer disconnected. ["+e.getCurrentTime(!0)+"] Unix: ["+e.getCurrentTime()+"]"),n()),e.debug&&console.log("Hero elements not displayed. ["+e.heroElements.length+"].")});i.observe(document,{attributes:!0,childList:!0,characterData:!1,subtree:!0})})},e.observeLongTasks=function(){return new Promise(function(t,n){if(PerformanceObserver===null||PerformanceObserver===undefined)return n(),!1;var r=new PerformanceObserver(function(n){var i=n.getEntries();for(var s in i){var o=i[s];o instanceof PerformanceLongTaskTiming&&(e.debug&&console.log(o),e.scheduleCheck(r,t))}});r.observe({entryTypes:["longtask"]})})},this.scheduleCheck=function(e,t){var n=this,r=performance.now();clearTimeout(this.checker),this.checker=setTimeout(function(){n.ttiTime=r,e.disconnect(),t(),n.debug&&console.log("Performance observer disconnected. ["+n.getCurrentTime(!0)+"] Unix: ["+n.getCurrentTime()+"]")},n.waitTime)},e.getCurrentTime=function(e){return e===!0?(new Date).toUTCString():(new Date).getTime()},e.getPayload=function(){return{"Time to Interactive":e.formatTime(e.ttiTime),"First Paint":e.formatTime(e.fpTime),"First Meaningful Paint":e.formatTime(e.fmpTime),"FMP to TTI":e.formatTime(e.fmpToTti),"Page Category":e.pageCategory}},e.formatTime=function(e){e/=1e3;var t=Math.pow(10,1);return Math.round(e*t)/t}}; 7 var renderUtil = new usmPageRenderUtil(); 8 var debug = false; 9 renderUtil.run({heroElementIdentifiers: [".share-this",".blogsidebar",".comment-form"], pageCategory: "Blog", debug: debug}).then(function (renderUtil) { 10 if (debug) { 11 console.log(renderUtil.getPayload()); 12 } 13 }); 14 }); 15 </script>
15<script> 16window.dataLayer = window.dataLayer || []; 17window.dataLayer.push({"hasNoSEO":"UA-73987-40","hasGlobalRE":"UA-73987-25","hasTurnkey":"UA-73987-26","hasCompassV2":"UA-73987-51","NumberOfAgents":153,"NumberOfAgentWebsites":0,"MLS":["TX_CHCBR","TX_SABOR","TX_NTREIS_API","TX_UNLOCK_VOW"],"CallTracking":false,"MapSearchV2":true,"OffMarketProperty":false,"VendorsPage":false,"Blog":true,"LuxuryBuildings":false,"TownPages":false,"MarketReportTool":false,"AVMTool":false,"LeadRouter":true}); 18</script>
18 19�<!-- Google Tag Manager --> 20�
20<script>
vendor: 317 bytes, line 20
20(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','
20GTM-NR38L3C
vendor: 3 bytes, line 20
20');
20</script>
20 21�<!-- End Google Tag Manager --> 22�<title>Texas Real Estate Blog | Magnolia Realty</title> 23 <meta name="description" content="Read the latest Texas real estate news, home buying and selling tips, market insights, and homeowner resources from Magnolia Realty experts." /> 24 <meta name="author" content="Magnolia Realty" /> 25 <link rel="canonical" href="https://magnoliarealty.com/blog/"/> 26 <link rel="copyright" href="https://d.usmre.com/UnionStreetMediaTermsofUse.pdf"/><meta property="fb:app_id" content="1557343862552281" /> 27 <meta property="og:title" content="Texas Real Estate Blog | Magnolia Realty" /> 28 <meta property="og:description" content="Read the latest Texas real estate news, home buying and selling tips, market insights, and homeowner resources from Magnolia Realty experts." /> 29 <meta property="og:url" content="https://magnoliarealty.com/blog/" /> 30 <meta property="og:type" content="website" /> 31 <meta property="og:site_name" content="Magnolia Realty" /> 32 <meta name="twitter:card" content="summary" /> 33 <meta name="twitter:title" content="Texas Real Estate Blog | Magnolia Realty" /> 34 <meta name="twitter:description" content="Read the latest Texas real estate news, home buying and selling tips, market insights, and homeowner resources from Magnolia Realty experts." /> 35 <link rel="shortcut icon" href="https://s3.amazonaws.com/files.usmre.com/12998/i/favicon.png?t=1778756584" /> 36<link rel="alternate" type="application/rss+xml" href="/blog/?format=rss" /> 37 <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 38<meta name="viewport" content="width=device-width, initial-scale=1"> 39<link rel="stylesheet" type="text/css" href="https://d1nn5t56all1qd.cloudfront.net/12998/styles.min.css?version=1790627300" media="screen" /><link rel="stylesheet" type="text/css" href="https://d1nn5t56all1qd.cloudfront.net/layouts/14/print.css?version=1740650881" media="print" />
39<script src="https://kit.fontawesome.com/c7bcd66c3f.js" crossorigin="anonymous"></script>
39<script>/** vim: et:ts=4:sw=4:sts=4 40 * @license RequireJS 2.3.3 Copyright jQuery Foundation and other contributors. 41 * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE 42 */ 43var requirejs,require,define;!function(global,setTimeout){function commentReplace(e,t){return t||""}function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var i;for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}}function eachReverse(e,t){if(e){var i;for(i=e.length-1;i>-1&&(!e[i]||!t(e[i],i,e));i-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(e,t,i,r){return t&&eachProp(t,function(t,n){!i&&hasProp(e,n)||(!r||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[n]=t:(e[n]||(e[n]={}),mixin(e[n],t,i,r)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}function newContext(e){function t(e){var t,i;for(t=0;t<e.length;t++)if(i=e[t],"."===i)e.splice(t,1),t-=1;else if(".."===i){if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;t>0&&(e.splice(t-1,2),t-=2)}}function i(e,i,r){var n,o,a,s,u,c,d,p,f,l,h,m,g=i&&i.split("/"),v=y.map,x=v&&v["*"];if(e&&(e=e.split("/"),d=e.length-1,y.nodeIdCompat&&jsSuffixRegExp.test(e[d])&&(e[d]=e[d].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&g&&(m=g.slice(0,g.length-1),e=m.concat(e)),t(e),e=e.join("/")),r&&v&&(g||x)){a=e.split("/");e:for(s=a.length;s>0;s-=1){if(c=a.slice(0,s).join("/"),g)for(u=g.length;u>0;u-=1)if(o=getOwn(v,g.slice(0,u).join("/")),o&&(o=getOwn(o,c))){p=o,f=s;break e}!l&&x&&getOwn(x,c)&&(l=getOwn(x,c),h=s)}!p&&l&&(p=l,f=h),p&&(a.splice(0,f,p),e=a.join("/"))}return n=getOwn(y.pkgs,e),n?n:e}function r(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===q.contextName)return t.parentNode.removeChild(t),!0})}function n(e){var t=getOwn(y.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),q.require.undef(e),q.makeRequire(null,{skipMap:!0})([e]),!0}function o(e){var t,i=e?e.indexOf("!"):-1;return i>-1&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function a(e,t,r,n){var a,s,u,c,d=null,p=t?t.name:null,f=e,l=!0,h="";return e||(l=!1,e="_@r"+(T+=1)),c=o(e),d=c[0],e=c[1],d&&(d=i(d,p,n),s=getOwn(j,d)),e&&(d?h=r?e:s&&s.normalize?s.normalize(e,function(e){return i(e,p,n)}):e.indexOf("!")===-1?i(e,p,n):e:(h=i(e,p,n),c=o(h),d=c[0],h=c[1],r=!0,a=q.nameToUrl(h))),u=!d||s||r?"":"_unnormalized"+(A+=1),{prefix:d,name:h,parentMap:t,unnormalized:!!u,url:a,originalName:f,isDefine:l,id:(d?d+"!"+h:h)+u}}function s(e){var t=e.id,i=getOwn(S,t);return i||(i=S[t]=new q.Module(e)),i}function u(e,t,i){var r=e.id,n=getOwn(S,r);!hasProp(j,r)||n&&!n.defineEmitComplete?(n=s(e),n.error&&"error"===t?i(n.error):n.on(t,i)):"defined"===t&&i(j[r])}function c(e,t){var i=e.requireModules,r=!1;t?t(e):(each(i,function(t){var i=getOwn(S,t);i&&(i.error=e,i.events.error&&(r=!0,i.emit("error",e)))}),r||req.onError(e))}function d(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(q.defQueueMap[t]=!0),O.push(e)}),globalDefQueue=[])}function p(e){delete S[e],delete k[e]}function f(e,t,i){var r=e.map.id;e.error?e.emit("error",e.error):(t[r]=!0,each(e.depMaps,function(r,n){var o=r.id,a=getOwn(S,o);!a||e.depMatched[n]||i[o]||(getOwn(t,o)?(e.defineDep(n,j[o]),e.check()):f(a,t,i))}),i[r]=!0)}function l(){var e,t,i=1e3*y.waitSeconds,o=i&&q.startTime+i<(new Date).getTime(),a=[],s=[],u=!1,d=!0;if(!x){if(x=!0,eachProp(k,function(e){var i=e.map,c=i.id;if(e.enabled&&(i.isDefine||s.push(e),!e.error))if(!e.inited&&o)n(c)?(t=!0,u=!0):(a.push(c),r(c));else if(!e.inited&&e.fetched&&i.isDefine&&(u=!0,!i.prefix))return d=!1}),o&&a.length)return e=makeError("timeout","Load timeout for modules: "+a,null,a),e.contextName=q.contextName,c(e);d&&each(s,function(e){f(e,{},{})}),o&&!t||!u||!isBrowser&&!isWebWorker||w||(w=setTimeout(function(){w=0,l()},50)),x=!1}}function h(e){hasProp(j,e[0])||s(a(e[0],null,!0)).init(e[1],e[2])}function m(e,t,i,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(i,t,!1)}function g(e){var t=e.currentTarget||e.srcElement;return m(t,q.onScriptLoad,"load","onreadystatechange"),m(t,q.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function v(){var e;
43for(d();O.length;){if(e=O.shift(),null===e[0])return c(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));h(e)}q.defQueueMap={}}var x,b,q,E,w,y={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},S={},k={},M={},O=[],j={},P={},R={},T=1,A=1;return E={require:function(e){return e.require?e.require:e.require=q.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?j[e.map.id]=e.exports:e.exports=j[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(y.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},b=function(e){this.events=getOwn(M,e.id)||{},this.map=e,this.shim=getOwn(y.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},b.prototype={init:function(e,t,i,r){r=r||{},this.inited||(this.factory=t,i?this.on("error",i):this.events.error&&(i=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=i,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,q.startTime=(new Date).getTime();var e=this.map;return this.shim?void q.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()})):e.prefix?this.callPlugin():this.load()}},load:function(){var e=this.map.url;P[e]||(P[e]=!0,q.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,i=this.map.id,r=this.depExports,n=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=q.execCb(i,o,r,n)}catch(t){e=t}else n=q.execCb(i,o,r,n);if(this.map.isDefine&&void 0===n&&(t=this.module,t?n=t.exports:this.usingExports&&(n=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",c(this.error=e)}else n=o;if(this.exports=n,this.map.isDefine&&!this.ignore&&(j[i]=n,req.onResourceLoad)){var a=[];each(this.depMaps,function(e){a.push(e.normalizedMap||e)}),req.onResourceLoad(q,this.map,a)}p(i),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(q.defQueueMap,i)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,r=a(e.prefix);this.depMaps.push(r),u(r,"defined",bind(this,function(r){var n,o,d,f=getOwn(R,this.map.id),l=this.map.name,h=this.map.parentMap?this.map.parentMap.name:null,m=q.makeRequire(e.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(r.normalize&&(l=r.normalize(l,function(e){return i(e,h,!0)})||""),o=a(e.prefix+"!"+l,this.map.parentMap,!0),u(o,"defined",bind(this,function(e){this.map.normalizedMap=o,this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),d=getOwn(S,o.id),void(d&&(this.depMaps.push(o),this.events.error&&d.on("error",bind(this,function(e){this.emit("error",e)})),d.enable()))):f?(this.map.url=q.nameToUrl(f),void this.load()):(n=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})}),n.error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(S,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&p(e.map.id)}),c(e)}),n.fromText=bind(this,function(i,r){var o=e.name,u=a(o),d=useInteractive;r&&(i=r),d&&(useInteractive=!1),s(u),hasProp(y.config,t)&&(y.config[o]=y.config[t]);try{req.exec(i)}catch(e){return c(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}d&&(useInteractive=!0),this.depMaps.push(u),q.completeLoad(o),m([o],n)}),void r.load(e.name,m,n,y))})),q.enable(r,this),this.pluginMaps[r.id]=r},enable:function(){k[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var i,r,n;if("string"==typeof e){if(e=a(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(E,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,u(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?u(e,"error",bind(this,this.errback)):this.events.error&&u(e,"error",bind(this,function(e){this.emit
43("error",e)}))}i=e.id,r=S[i],hasProp(E,i)||!r||r.enabled||q.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(S,e.id);t&&!t.enabled&&q.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var i=this.events[e];i||(i=this.events[e]=[]),i.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},q={config:y,contextName:e,registry:S,defined:j,urlFetched:P,defQueue:O,defQueueMap:{},Module:b,makeModuleMap:a,nextTick:req.nextTick,onError:c,configure:function(e){if(e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/"),"string"==typeof e.urlArgs){var t=e.urlArgs;e.urlArgs=function(e,i){return(i.indexOf("?")===-1?"?":"&")+t}}var i=y.shim,r={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){r[t]?(y[t]||(y[t]={}),mixin(y[t],e,!0,!0)):y[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(R[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,t){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=q.makeShimExports(e)),i[t]=e}),y.shim=i),e.packages&&each(e.packages,function(e){var t,i;e="string"==typeof e?{name:e}:e,i=e.name,t=e.location,t&&(y.paths[i]=e.location),y.pkgs[i]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(S,function(e,t){e.inited||e.map.unnormalized||(e.map=a(t,null,!0))}),(e.deps||e.callback)&&q.require(e.deps||[],e.callback)},makeShimExports:function(e){function t(){var t;return e.init&&(t=e.init.apply(global,arguments)),t||e.exports&&getGlobal(e.exports)}return t},makeRequire:function(t,n){function o(i,r,u){var d,p,f;return n.enableBuildCallback&&r&&isFunction(r)&&(r.__requireJsBuild=!0),"string"==typeof i?isFunction(r)?c(makeError("requireargs","Invalid require call"),u):t&&hasProp(E,i)?E[i](S[t.id]):req.get?req.get(q,i,t,o):(p=a(i,t,!1,!0),d=p.id,hasProp(j,d)?j[d]:c(makeError("notloaded",'Module name "'+d+'" has not been loaded yet for context: '+e+(t?"":". Use require([])")))):(v(),q.nextTick(function(){v(),f=s(a(null,t)),f.skipMap=n.skipMap,f.init(i,r,u,{enabled:!0}),l()}),o)}return n=n||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var r,n=e.lastIndexOf("."),o=e.split("/")[0],a="."===o||".."===o;return n!==-1&&(!a||n>1)&&(r=e.substring(n,e.length),e=e.substring(0,n)),q.nameToUrl(i(e,t&&t.id,!0),r,!0)},defined:function(e){return hasProp(j,a(e,t,!1,!0).id)},specified:function(e){return e=a(e,t,!1,!0).id,hasProp(j,e)||hasProp(S,e)}}),t||(o.undef=function(e){d();var i=a(e,t,!0),n=getOwn(S,e);n.undefed=!0,r(e),delete j[e],delete P[i.url],delete M[e],eachReverse(O,function(t,i){t[0]===e&&O.splice(i,1)}),delete q.defQueueMap[e],n&&(n.events.defined&&(M[e]=n.events),p(e))}),o},enable:function(e){var t=getOwn(S,e.id);t&&s(e).enable()},completeLoad:function(e){var t,i,r,o=getOwn(y.shim,e)||{},a=o.exports;for(d();O.length;){if(i=O.shift(),null===i[0]){if(i[0]=e,t)break;t=!0}else i[0]===e&&(t=!0);h(i)}if(q.defQueueMap={},r=getOwn(S,e),!t&&!hasProp(j,e)&&r&&!r.inited){if(!(!y.enforceDefine||a&&getGlobal(a)))return n(e)?void 0:c(makeError("nodefine","No define call for "+e,null,[e]));h([e,o.deps||[],o.exportsFn])}l()},nameToUrl:function(e,t,i){var r,n,o,a,s,u,c,d=getOwn(y.pkgs,e);if(d&&(e=d),c=getOwn(R,e))return q.nameToUrl(c,t,i);if(req.jsExtRegExp.test(e))s=e+(t||"");else{for(r=y.paths,n=e.split("/"),o=n.length;o>0;o-=1)if(a=n.slice(0,o).join("/"),u=getOwn(r,a)){isArray(u)&&(u=u[0]),n.splice(0,o,u);break}s=n.join("/"),s+=t||(/^data\:|^blob\:|\?/.test(s)||i?"":".js"),s=("/"===s.charAt(0)||s.match(/^[\w\+\.\-]+:/)?"":y.baseUrl)+s}return y.urlArgs&&!/^blob\:/.test(s)?s+y.urlArgs(e,s):s},load:function(e,t){req.load(q,e,t)},execCb:function(e,t,i,r){return t.apply(r,i)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=g(e);q.completeLoad(t.id)}},onScriptError:function(e){var t=g(e);if(!n(t.id)){var i=[];return eachProp(S,function(e,r){0!==r.indexOf("_@r")&&each(e.depMaps,function(e){if(e.id===t.id)return i.push(r),!0})}),c(makeError("scripterror",'Script error for "'+t.id+(i.length?'", needed by: '+i.join(", "):'"'),e,[t.id]))}}},q.require=q.makeRequire(),q}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.3.3",commentRegExp=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),n=getOwn(contexts,a),n||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick="undefined"!=typeof setTimeout?function(e){setTimeout(e,4)}:function(e){e()}
43,require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,i){var r,n=e&&e.config||{};if(isBrowser)return r=req.createNode(n,t,i),r.setAttribute("data-requirecontext",e.contextName),r.setAttribute("data-requiremodule",t),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||isOpera?(r.addEventListener("load",e.onScriptLoad,!1),r.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,r.attachEvent("onreadystatechange",e.onScriptLoad)),r.src=i,n.onNodeCreated&&n.onNodeCreated(r,n,t,i),currentlyAddingScript=r,baseElement?head.insertBefore(r,baseElement):head.appendChild(r),currentlyAddingScript=null,r;if(isWebWorker)try{setTimeout(function(){},0),importScripts(i),e.completeLoad(t)}catch(r){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+i,r,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||mainScript.indexOf("!")!==-1||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,i){var r,n;"string"!=typeof e&&(i=t,t=e,e=null),isArray(t)||(i=t,t=null),!t&&isFunction(i)&&(t=[],i.length&&(i.toString().replace(commentRegExp,commentReplace).replace(cjsRequireRegExp,function(e,i){t.push(i)}),t=(1===i.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript(),r&&(e||(e=r.getAttribute("data-requiremodule")),n=contexts[r.getAttribute("data-requirecontext")])),n?(n.defQueue.push([e,t,i]),n.defQueueMap[e]=!0):globalDefQueue.push([e,t,i])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this,"undefined"==typeof setTimeout?void 0:setTimeout);</script>
43<script type="text/javascript"> 44 var requireConfig = {"waitSeconds":20,"baseUrl":"https:\/\/d1mlo4htassgww.cloudfront.net\/shipyard\/build\/","paths":{"async":"profiles\/default","bootstrap":"profiles\/default","goog":"profiles\/default","jquery":"profiles\/default","jquery.browser":"profiles\/default","jquery.deparam":"profiles\/default","jquery.dropdownchecklist":"profiles\/default","jquery.form":"profiles\/default","jquery.history":"profiles\/default","jquery.html5-placeholder-shim":"profiles\/default","jquery.inview":"profiles\/default","jquery.usmNlsShipyard":"profiles\/default","jquery.pageitems":"profiles\/default","jquery.usmajaxtogglebutton":"profiles\/default","jquery.usmmortgageestimate":"profiles\/default","jquery.usmtruncate":"profiles\/default","jquery.validation":"profiles\/default","jquery.validation-extensions-usm":"profiles\/default","jqueryui":"profiles\/default","knockout":"knockout-2.3.0","owlcarousel":"profiles\/default","picturefill.min":"profiles\/default","propertyParser":"profiles\/default","shim.polyfills":"profiles\/default","captcha":"profiles\/default","shipyard":"profiles\/default","static-map-search":"profiles\/default","usm":"profiles\/default","usm.analytics":"profiles\/default","usm.cookie":"profiles\/default","usm.url":"profiles\/default","usm.user":"profiles\/default","usm.favorite":"profiles\/default","usm.savesearch":"profiles\/default","usm.modalform":"profiles\/default","usm.dynamicsearch":"profiles\/default","LLSDKsJS":"https:\/\/sdk.locallogic.co\/sdks-js\/1.19.30\/index.umd","webfontloader":"\/\/ajax.googleapis.com\/ajax\/libs\/webfont\/1\/webfont","Leaflet":"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/leaflet\/1.0.1\/leaflet","mapboxgl":"https:\/\/api.tiles.mapbox.com\/mapbox-gl-js\/v0.42.0\/mapbox-gl","plunk":"plunkComponents.min","emblaCarousel":"https:\/\/unpkg.com\/[email protected]\/embla-carousel.umd","emblaCarouselAutoplay":"https:\/\/unpkg.com\/[email protected]\/embla-carousel-autoplay.umd","emblaCarouselClassNames":"https:\/\/unpkg.com\/[email protected]\/embla-carousel-class-names.umd","emblaCarouselFade":"https:\/\/unpkg.com\/[email protected]\/embla-carousel-fade.umd","emblaCarouselPlugins":"emblaCarouselPlugins","map.regions":"\/realestate\/regions\/?json","jquery.validationextensionsusm":"\/data\/shipyard\/js\/jquery.validation-extensions-usm"}}; 45 requireConfig.urlArgs = function(id, url) { 46 var args = ""; 47 if (url.indexOf("d1nn5t56all1qd") <= 0 && url.indexOf("dy0meowegjlo2") <= 0) { 48 args = "version=1790955052"; 49 return (url.indexOf("?") === -1 ? "?" : "&") + args; 50 } 51 52 return ""; 53 }; 54 55 require.config(requireConfig); 56 </script>
56 57
57<script type="text/javascript">require(["profiles/default", "usm", "usm.calltracking", "usm.goscript"], function (listing, usm) { 58 if (usm.touchSupport) { require(["profiles/touch"]); } 59 });</script>
vendor: 73 bytes, line 59
59<script async src="https://www.google.com/recaptcha/enterprise.js?render=
596LcsDegsAAAAAAnhqMN0aJAOkp744K7xr7OZ4pa6
vendor: 24 bytes, lines 59-60
59"></script> 60
60<link rel="preconnect" href="https://www.google.com"> 61 <link rel="preconnect" href="https://www.gstatic.com" crossorigin> 62</head> 63�<body class=" array1-blog fall" data-site-type="shipyard" data-re-captcha-site-key="6LcsDegsAAAAAAnhqMN0aJAOkp744K7xr7OZ4pa6"> 64�<!-- Google Tag Manager (noscript) -->
vendor: 63 bytes, lines 64-65
64 65�<noscript><iframe src="//www.googletagmanager.com/ns.html?id=
65GTM-NR38L3C
vendor: 84 bytes, lines 65-66
65" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 66�
66<!-- End Google Tag Manager (noscript) --> 67�<div class="utilBarWrap"> 68 <aside id="sidebar3"><div id="sitelogo-415118" class="widget sitelogo container"> <div class="sitelogo__box sitelogo--white"> 69 <a href="/" target="_self" class="sitelogo__link"> 70 <img 71 src="https://s3.amazonaws.com/files.usmre.com/12998/i/logo.png?version=1778756587" 72 alt="Magnolia Realty Logo" 73 class="sitelogo__image" 74 > 75 </a> 76 </div> 77 <style> 78 .sitelogo--white .sitelogo__image { 79 filter: brightness(0) invert(1); 80 } 81 </style> 82 </div><div id="menuwidget-415051" class="widget menu menuwidget default-nav container"><h3 class="widget-title">Default Menu</h3><div class="widget-inner"><div class="desktop-nav"><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-415051"><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-192931"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-192931" class="dropdown-toggle" role="menuitem">Properties<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-192931" role="menu"><li role="presentation" class=" menu-item-193022"><a href="/exclusive-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-193023"><a href="/exclusive-sold-listings/" target="_self" role="menuitem">Our Sold Listings</a></li><li role="presentation" class=" menu-item-193024"><a href="/listings/" target="_self" role="menuitem">All Listings</a></li></ul></li><li role="presentation" class="has-children menu-item-192934"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-192934" class="dropdown-toggle" role="menuitem">Locations<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-192934" role="menu"><li role="presentation" class=" menu-item-193027"><a href="/realestate/offices/13087/" target="_self" role="menuitem">Austin | Hill Country</a></li><li role="presentation" class=" menu-item-193028"><a href="/realestate/offices/13088/" target="_self" role="menuitem">Austin | Round Rock</a></li><li role="presentation" class=" menu-item-193029"><a href="/realestate/offices/13089/" target="_self" role="menuitem">
82DFW | Argyle</a></li><li role="presentation" class=" menu-item-193030"><a href="/realestate/offices/13090/" target="_self" role="menuitem">DFW | Granbury</a></li><li role="presentation" class=" menu-item-193031"><a href="/realestate/offices/13091/" target="_self" role="menuitem">DFW | Grapevine</a></li><li role="presentation" class=" menu-item-193032"><a href="/realestate/offices/13092/" target="_self" role="menuitem">San Antonio | Hill Country</a></li><li role="presentation" class=" menu-item-193033"><a href="/realestate/offices/13093/" target="_self" role="menuitem">Temple | Belton</a></li><li role="presentation" class=" menu-item-193034"><a href="/realestate/offices/13081/" target="_self" role="menuitem">Waco</a></li></ul></li><li role="presentation" class="has-children menu-item-192932"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-192932" class="dropdown-toggle" role="menuitem">About<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-192932" role="menu"><li role="presentation" class=" menu-item-193083"><a href="/about/" target="_self" role="menuitem">About Us</a></li><li role="presentation" class=" menu-item-192972"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-192973"><a href="/testimonials/" target="_self" role="menuitem">Testimonials</a></li><li role="presentation" class=" menu-item-192974"><a href="/blog/" target="_self" role="menuitem">Blog</a></li></ul></li><li role="presentation" class="has-children menu-item-192933"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-192933" class="dropdown-toggle" role="menuitem">Services<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-192933" role="menu"><li role="presentation" class=" menu-item-192969"><a href="/sellers/market-analysis/" target="_self" role="menuitem">Market Analysis</a></li><li role="presentation" class=" menu-item-193025"><a href="/sellers/home-worth/" target="_self" role="menuitem">Home Worth</a></li><li role="presentation" class=" menu-item-193026"><a href="/buyers/mortgage-calculator/" target="_self" role="menuitem">Mortgage Calculator</a></li></ul></li><li role="presentation" class=" menu-item-192935"><a href="/contact-us/" target="_self" role="menuitem">Contact</a></li></ul></div></nav></div></div><div class="mobile-nav"><button type="button" class="navbar-toggle" data-target="#navbar-mobile-415051" aria-label="Toggle navigation"><span>Menu</span><span class="fa fa-bar"></span><span class="fa fa-bar"></span><span class="fa fa-bar"></span></button><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-mobile-415051"><a href="#" class="menu-close"><i class="fa fa-times-circle-o"></i><span class="sr-only">Close Button</span></a><div class="menu-sign-on"><a class="usm-btn nav-login" href="/user/login/" rel="nofollow">Log In</a><a class="usm-btn nav-register" href="/user/register/" rel="nofollow">Sign Up</a><a class="usm-btn nav-account" href="/user/" rel="nofollow">My Account</a></div><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-192931"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-192931" class="dropdown-toggle" role="menuitem">Properties<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-192931" role="menu"><li role="presentation" class=" menu-item-193022"><a href="/exclusive-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-193023"><a href="/exclusive-sold-listings/" target="_self" role="menuitem">Our Sold Listings</a></li><li role="presentation" class=" menu-item-193024"><a href="/listings/" target="_self" role="menuitem">All Listings</a></li></ul></li><li role="presentation" class="has-children menu-item-192934"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-192934" class="dropdown-toggle" role="menuitem">Locations<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-192934" role="menu"><li role="presentation" class=" menu-item-193027"><a href="/realestate/offices/13087/" target="_self" role="menuitem">Austin | Hill Country</a></li><li role="presentation" class=" menu-item-193028"><a href="/realestate/offices/13088/" target="_self" role="menuitem">Austin | Round Rock</a></li><li role="presentation" class=" menu-item-193029"><a href="/realestate/offices/13089/" target="_self" role="menuitem">
82DFW | Argyle</a></li><li role="presentation" class=" menu-item-193030"><a href="/realestate/offices/13090/" target="_self" role="menuitem">DFW | Granbury</a></li><li role="presentation" class=" menu-item-193031"><a href="/realestate/offices/13091/" target="_self" role="menuitem">DFW | Grapevine</a></li><li role="presentation" class=" menu-item-193032"><a href="/realestate/offices/13092/" target="_self" role="menuitem">San Antonio | Hill Country</a></li><li role="presentation" class=" menu-item-193033"><a href="/realestate/offices/13093/" target="_self" role="menuitem">Temple | Belton</a></li><li role="presentation" class=" menu-item-193034"><a href="/realestate/offices/13081/" target="_self" role="menuitem">Waco</a></li></ul></li><li role="presentation" class="has-children menu-item-192932"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-192932" class="dropdown-toggle" role="menuitem">About<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-192932" role="menu"><li role="presentation" class=" menu-item-193083"><a href="/about/" target="_self" role="menuitem">About Us</a></li><li role="presentation" class=" menu-item-192972"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-192973"><a href="/testimonials/" target="_self" role="menuitem">Testimonials</a></li><li role="presentation" class=" menu-item-192974"><a href="/blog/" target="_self" role="menuitem">Blog</a></li></ul></li><li role="presentation" class="has-children menu-item-192933"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-192933" class="dropdown-toggle" role="menuitem">Services<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-192933" role="menu"><li role="presentation" class=" menu-item-192969"><a href="/sellers/market-analysis/" target="_self" role="menuitem">Market Analysis</a></li><li role="presentation" class=" menu-item-193025"><a href="/sellers/home-worth/" target="_self" role="menuitem">Home Worth</a></li><li role="presentation" class=" menu-item-193026"><a href="/buyers/mortgage-calculator/" target="_self" role="menuitem">Mortgage Calculator</a></li></ul></li><li role="presentation" class=" menu-item-192935"><a href="/contact-us/" target="_self" role="menuitem">Contact</a></li></ul><ul class="nav navbar-nav user-nav"><li class="menu-item-saved-search" role="presentation"><a href="/realestate/searches/" rel="nofollow">Saved Searches</a></li><li class="menu-item-favorites" role="presentation"><a href="/realestate/favorites/view/" rel="nofollow">Favorites</a></li></ul></div></nav></div></div></div></div><div class="top-header-links"> 83 <div class="header-user"> 84 <div class="header-user-logged-in"> 85 <div class="account-link"><a href="/user/" rel="nofollow">Account</a></div> 86 </div> 87 <div class="header-user-logged-out"> 88 <div class="header-user-register"> 89 <div class="register-link"><a href="/user/register/" rel="nofollow">Sign Up</a></div> 90 </div> 91 <span> or </span> 92 <div class="header-user-login"> 93 <div class="login-link"><a href="/user/login/" rel="nofollow">Log In</a></div> 94 </div> 95 </div> 96 </div> 97 <a href="tel:(254) 218-5940" aria-label="Phone Number" class="contact-link-phone"><i class="fa-solid fa-phone"></i> (254) 218-5940</a> 98</div><div id="menuwidget-415053" class="widget menu menuwidget default-nav container"><h3 class="widget-title">Hamburger Menu</h3><div class="widget-inner"><div class="desktop-nav"><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-415053"><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-192931"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-192931" class="dropdown-toggle" role="menuitem">Properties<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-192931" role="menu"><li role="presentation" class=" menu-item-193022"><a href="/exclusive-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-193023"><a href="/exclusive-sold-listings/" target="_self" role="menuitem">Our Sold Listings</a></li><li role="presentation" class=" menu-item-193024"><a href="/listings/" target="_self" role="menuitem">All Listings</a></li></ul></li><li role="presentation" class="has-children menu-item-192934"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu
98-192934" class="dropdown-toggle" role="menuitem">Locations<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-192934" role="menu"><li role="presentation" class=" menu-item-193027"><a href="/realestate/offices/13087/" target="_self" role="menuitem">Austin | Hill Country</a></li><li role="presentation" class=" menu-item-193028"><a href="/realestate/offices/13088/" target="_self" role="menuitem">Austin | Round Rock</a></li><li role="presentation" class=" menu-item-193029"><a href="/realestate/offices/13089/" target="_self" role="menuitem">DFW | Argyle</a></li><li role="presentation" class=" menu-item-193030"><a href="/realestate/offices/13090/" target="_self" role="menuitem">DFW | Granbury</a></li><li role="presentation" class=" menu-item-193031"><a href="/realestate/offices/13091/" target="_self" role="menuitem">DFW | Grapevine</a></li><li role="presentation" class=" menu-item-193032"><a href="/realestate/offices/13092/" target="_self" role="menuitem">San Antonio | Hill Country</a></li><li role="presentation" class=" menu-item-193033"><a href="/realestate/offices/13093/" target="_self" role="menuitem">Temple | Belton</a></li><li role="presentation" class=" menu-item-193034"><a href="/realestate/offices/13081/" target="_self" role="menuitem">Waco</a></li></ul></li><li role="presentation" class="has-children menu-item-192932"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-192932" class="dropdown-toggle" role="menuitem">About<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-192932" role="menu"><li role="presentation" class=" menu-item-193083"><a href="/about/" target="_self" role="menuitem">About Us</a></li><li role="presentation" class=" menu-item-192972"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-192973"><a href="/testimonials/" target="_self" role="menuitem">Testimonials</a></li><li role="presentation" class=" menu-item-192974"><a href="/blog/" target="_self" role="menuitem">Blog</a></li></ul></li><li role="presentation" class="has-children menu-item-192933"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="sub-menu-192933" class="dropdown-toggle" role="menuitem">Services<span class="caret"></span></a><ul class="dropdown-menu" id="sub-menu-192933" role="menu"><li role="presentation" class=" menu-item-192969"><a href="/sellers/market-analysis/" target="_self" role="menuitem">Market Analysis</a></li><li role="presentation" class=" menu-item-193025"><a href="/sellers/home-worth/" target="_self" role="menuitem">Home Worth</a></li><li role="presentation" class=" menu-item-193026"><a href="/buyers/mortgage-calculator/" target="_self" role="menuitem">Mortgage Calculator</a></li></ul></li><li role="presentation" class=" menu-item-192935"><a href="/contact-us/" target="_self" role="menuitem">Contact</a></li></ul></div></nav></div></div><div class="mobile-nav"><button type="button" class="navbar-toggle" data-target="#navbar-mobile-415053" aria-label="Toggle navigation"><span>Menu</span><span class="fa fa-bar"></span><span class="fa fa-bar"></span><span class="fa fa-bar"></span></button><div class="navbar-wrapper"><nav class="navbar navbar-default" role="navigation"><div id="navbar-mobile-415053"><a href="#" class="menu-close"><i class="fa fa-times-circle-o"></i><span class="sr-only">Close Button</span></a><div class="menu-sign-on"><a class="usm-btn nav-login" href="/user/login/" rel="nofollow">Log In</a><a class="usm-btn nav-register" href="/user/register/" rel="nofollow">Sign Up</a><a class="usm-btn nav-account" href="/user/" rel="nofollow">My Account</a></div><ul class="nav navbar-nav site-nav" role="menubar"><li role="presentation" class="has-children menu-item-192931"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-192931" class="dropdown-toggle" role="menuitem">Properties<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-192931" role="menu"><li role="presentation" class=" menu-item-193022"><a href="/exclusive-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-193023"><a href="/exclusive-sold-listings/" target="_self" role="menuitem">Our Sold Listings</a></li><li role="presentation" class=" menu-item-193024"><a href="/listings/" target="_self" role="menuitem">All Listings</a></li></ul></li><li role="presentation" class="has-children menu-item-192934"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-192934" class="dropdown-toggle" role="menuitem">Locations<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-192934" role="menu"><li role="presentation" class=" menu-item-193027"><a href="/realestate/offices/13087/" target="_self" role="menuitem">Austin | Hill Country</a></li><li role="presentation" class=" menu-item-193028"><a href="/realestate/offices/13088/" target="_self" role="menuitem">Austin | Round Rock</a></li><li role="presentation" class=" menu-item-193029"><a href="/realestate/offices/13089/" target="_self" role="menuitem">
98DFW | Argyle</a></li><li role="presentation" class=" menu-item-193030"><a href="/realestate/offices/13090/" target="_self" role="menuitem">DFW | Granbury</a></li><li role="presentation" class=" menu-item-193031"><a href="/realestate/offices/13091/" target="_self" role="menuitem">DFW | Grapevine</a></li><li role="presentation" class=" menu-item-193032"><a href="/realestate/offices/13092/" target="_self" role="menuitem">San Antonio | Hill Country</a></li><li role="presentation" class=" menu-item-193033"><a href="/realestate/offices/13093/" target="_self" role="menuitem">Temple | Belton</a></li><li role="presentation" class=" menu-item-193034"><a href="/realestate/offices/13081/" target="_self" role="menuitem">Waco</a></li></ul></li><li role="presentation" class="has-children menu-item-192932"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-192932" class="dropdown-toggle" role="menuitem">About<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-192932" role="menu"><li role="presentation" class=" menu-item-193083"><a href="/about/" target="_self" role="menuitem">About Us</a></li><li role="presentation" class=" menu-item-192972"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-192973"><a href="/testimonials/" target="_self" role="menuitem">Testimonials</a></li><li role="presentation" class=" menu-item-192974"><a href="/blog/" target="_self" role="menuitem">Blog</a></li></ul></li><li role="presentation" class="has-children menu-item-192933"><a href="#" target="_self" rel="noopener" data-toggle="dropdown" data-target="mobile-sub-menu-192933" class="dropdown-toggle" role="menuitem">Services<span class="caret"></span></a><ul class="dropdown-menu" id="mobile-sub-menu-192933" role="menu"><li role="presentation" class=" menu-item-192969"><a href="/sellers/market-analysis/" target="_self" role="menuitem">Market Analysis</a></li><li role="presentation" class=" menu-item-193025"><a href="/sellers/home-worth/" target="_self" role="menuitem">Home Worth</a></li><li role="presentation" class=" menu-item-193026"><a href="/buyers/mortgage-calculator/" target="_self" role="menuitem">Mortgage Calculator</a></li></ul></li><li role="presentation" class=" menu-item-192935"><a href="/contact-us/" target="_self" role="menuitem">Contact</a></li></ul><div class="navbar-phone"><a href="tel:(254) 218-5940"><i class="fas fa-phone-alt"></i>(254) 218-5940</a></div><ul class="nav navbar-nav user-nav"><li class="menu-item-saved-search" role="presentation"><a href="/realestate/searches/" rel="nofollow">Saved Searches</a></li><li class="menu-item-favorites" role="presentation"><a href="/realestate/favorites/view/" rel="nofollow">Favorites</a></li></ul></div></nav></div></div></div></div></aside> 99</div> 100<div class="topWrap"> 101 <aside id="top"><div id="header-content-widget" class="widget headercontent header-content-widget container"><div data-pb-dropzone="Drop Hero Component Here: Sidebar (+ icon) > Headlines > Hero Image With Two Lines Header as h2 single tag" id="hero-drop-zone"></div></div><div id="autosuggestionsearch-415066" class="widget autosuggestionsearch container"><div class="autosuggest widget-autosuggest"><div class="widget-inner"><form action="/listings/" method="get"><div class="autosuggest-searchbar"><input type="search" placeholder="Search by Neighborhood, County Zipcode..." aria-label=" Search: Search by Neighborhood, County Zipcode... Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu, press Tab to select the option and exit the menu. " autocomplete="off" name="autosuggest-search-query" id="autosuggest-search-query-415066" maxlength="200" class="search-input form-control"/><div class="buttons"><div class="autosuggest-loader"></div><button class="usm-btn btn-search" id="autosuggest-search-button" role="button" aria-label="Search"><i class="fa fa-search"></i></button></div></div><div class="autosuggest-links"><div class="col-links"></div></div></form></div></div></div></aside> 102</div> 103<div class="sub1Wrap"> 104 <aside id="group1"></aside> 105</div> 106<div class="sub2Wrap"> 107 <aside id="group2"></aside> 108</div> 109<div id="wrapper"> 110 <div class="content-row"> 111 <div class="contentWrap"> 112 <main><h1>Blog</h1><article itemscope="itemscope" itemtype="http://schema.org/BlogPosting" class="h-entry"><div class="share-this"><a href="#">Share</a><ul><li class="facebook"><a rel="nofollow" target="_blank" title="Facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2025%2F10%2F01%2Fwhy-list-with-magnolia-realty%2F"><i class="fa fa-facebook"></i></a></li><li class="twitter"><a rel="nofollow" title="Twitter" target="_blank" href="https://twitter.com/share?ref_src=twsrc%5Etfw"><i class="fa fa-twitter"></i></a>
112<script src="https://platform.twitter.com/widgets.js" charset="utf-8" async="async"></script>
112</li><li class="pinterest"><a rel="nofollow" target="_blank" title="Pinterest" href="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2025%2F10%2F01%2Fwhy-list-with-magnolia-realty%2F&media=https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/The-Preserve-Property-HR_2_updated-3-scaled.jpg"><i class="fa fa-pinterest"></i></a></li><li class="send-to-friend"><a rel="nofollow" target="_blank" title="LinkedIn" href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2025%2F10%2F01%2Fwhy-list-with-magnolia-realty%2F"><i class="fa fa-linkedin"></i></a></li><li class="send-to-friend"><a rel="nofollow" class="js-send-to-friend" target="_blank" title="Send To Friend" href="https://magnoliarealty.com/blog/posts/2025/10/01/why-list-with-magnolia-realty/" data-message="I found a blog post on &#34;Magnolia Realty&#34; which you may be interested in: https://magnoliarealty.com/blog/posts/2025/10/01/why-list-with-magnolia-realty/"><i class="fa fa-envelope"></i></a></li></ul></div><header><h1 itemprop="name" class="p-name"><a href="/blog/posts/2025/10/01/why-list-with-magnolia-realty/">Why List With Magnolia Realty? </a></h1><ul class="blog-attribution"><li>By <a itemprop="author" rel="author" class="p-author h-card"></a></li><li>Posted <time itemprop="datePublished" class="dt-published" datetime="2025-10-01T08:05:00+00:00"> Wednesday, Oct 1, 2025 </time></li></ul></header><section itemprop="articleBody" class="e-content"><div class="featuredBlogImageWrapper"><img src="https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/The-Preserve-Property-HR_2_updated-3-scaled.jpg" class="p-image align-left" alt="Why List With Magnolia Realty?"/></div><div class="blogContentWrapper"><p>From trusted agents to guide you, to strategies to make your home stand out—we’re ready to share our resources so you can feel good about your selling journey. Learn more about listing with Magnolia Realty!</p> 113</div><div class="clearfix"></div><div class="clearfix"></div></section><footer><ul class="blog-categories"></ul><a href="/blog/posts/2025/10/01/why-list-with-magnolia-realty/#comments">0 comments</a></footer></article><article itemscope="itemscope" itemtype="http://schema.org/BlogPosting" class="h-entry"><div class="share-this"><a href="#">Share</a><ul><li class="facebook"><a rel="nofollow" target="_blank" title="Facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2024%2F06%2F18%2Fa-guide-to-countertops%2F"><i class="fa fa-facebook"></i></a></li><li class="twitter"><a rel="nofollow" title="Twitter" target="_blank" href="https://twitter.com/share?ref_src=twsrc%5Etfw"><i class="fa fa-twitter"></i></a>
113<script src="https://platform.twitter.com/widgets.js" charset="utf-8" async="async"></script>
113</li><li class="pinterest"><a rel="nofollow" target="_blank" title="Pinterest" href="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2024%2F06%2F18%2Fa-guide-to-countertops%2F&media=https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/unnamed-1.jpg"><i class="fa fa-pinterest"></i></a></li><li class="send-to-friend"><a rel="nofollow" target="_blank" title="LinkedIn" href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2024%2F06%2F18%2Fa-guide-to-countertops%2F"><i class="fa fa-linkedin"></i></a></li><li class="send-to-friend"><a rel="nofollow" class="js-send-to-friend" target="_blank" title="Send To Friend" href="https://magnoliarealty.com/blog/posts/2024/06/18/a-guide-to-countertops/" data-message="I found a blog post on &#34;Magnolia Realty&#34; which you may be interested in: https://magnoliarealty.com/blog/posts/2024/06/18/a-guide-to-countertops/"><i class="fa fa-envelope"></i></a></li></ul></div><header><h1 itemprop="name" class="p-name"><a href="/blog/posts/2024/06/18/a-guide-to-countertops/">A Guide to Countertops </a></h1><ul class="blog-attribution"><li>By <a itemprop="author" rel="author" class="p-author h-card"></a></li><li>Posted <time itemprop="datePublished" class="dt-published" datetime="2024-06-18T08:14:00+00:00"> Tuesday, Jun 18, 2024 </time></li></ul></header><section itemprop="articleBody" class="e-content"><div class="featuredBlogImageWrapper"><img src="https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/unnamed-1.jpg" class="p-image align-left" alt="A Guide to Countertops"/></div><div class="blogContentWrapper"><p>In kitchens, baths, and laundry rooms, countertops handle so much of the work we do at home. We need them to be strong and durable, yet also beautiful. Whether they blend seamlessly into your spaces or add a layer of personality, the right materials set the tone for the room they’re in. When we commit to countertops that look great and work hard, the investment offers returns we can enjoy daily.</p> 114</div><div class="clearfix"></div><div class="clearfix"></div></section><footer><ul class="blog-categories"></ul><a href="/blog/posts/2024/06/18/a-guide-to-countertops/#comments">0 comments</a></footer></article><article itemscope="itemscope" itemtype="http://schema.org/BlogPosting" class="h-entry"><div class="share-this"><a href="#">Share</a><ul><li class="facebook"><a rel="nofollow" target="_blank" title="Facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F12%2F04%2Ftile-style%2F"><i class="fa fa-facebook"></i></a></li><li class="twitter"><a rel="nofollow" title="Twitter" target="_blank" href="https://twitter.com/share?ref_src=twsrc%5Etfw"><i class="fa fa-twitter"></i></a>
114<script src="https://platform.twitter.com/widgets.js" charset="utf-8" async="async"></script>
114</li><li class="pinterest"><a rel="nofollow" target="_blank" title="Pinterest" href="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F12%2F04%2Ftile-style%2F&media=https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/CD_45828-copy-scaled.jpg"><i class="fa fa-pinterest"></i></a></li><li class="send-to-friend"><a rel="nofollow" target="_blank" title="LinkedIn" href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F12%2F04%2Ftile-style%2F"><i class="fa fa-linkedin"></i></a></li><li class="send-to-friend"><a rel="nofollow" class="js-send-to-friend" target="_blank" title="Send To Friend" href="https://magnoliarealty.com/blog/posts/2023/12/04/tile-style/" data-message="I found a blog post on &#34;Magnolia Realty&#34; which you may be interested in: https://magnoliarealty.com/blog/posts/2023/12/04/tile-style/"><i class="fa fa-envelope"></i></a></li></ul></div><header><h1 itemprop="name" class="p-name"><a href="/blog/posts/2023/12/04/tile-style/">Tile Style </a></h1><ul class="blog-attribution"><li>By <a itemprop="author" rel="author" class="p-author h-card"></a></li><li>Posted <time itemprop="datePublished" class="dt-published" datetime="2023-12-04T08:32:00+00:00"> Monday, Dec 4, 2023 </time></li></ul></header><section itemprop="articleBody" class="e-content"><div class="featuredBlogImageWrapper"><img src="https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/CD_45828-copy-scaled.jpg" class="p-image align-left" alt="Tile Style"/></div><div class="blogContentWrapper"><p>Perhaps one of the most versatile building materials, for centuries tile has been used for both its aesthetic value and its utilitarian qualities. These days, tile’s easy-to-clean nature and steady durability mean the hardy material is often chosen for kitchens and bathrooms. But tile’s usefulness can extend far beyond those rooms—bringing beauty with an underlying practicality throughout a home</p> 115</div><div class="clearfix"></div><div class="clearfix"></div></section><footer><ul class="blog-categories"></ul><a href="/blog/posts/2023/12/04/tile-style/#comments">0 comments</a></footer></article><article itemscope="itemscope" itemtype="http://schema.org/BlogPosting" class="h-entry"><div class="share-this"><a href="#">Share</a><ul><li class="facebook"><a rel="nofollow" target="_blank" title="Facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F14%2Fa-guide-to-neutral-paint-colors%2F"><i class="fa fa-facebook"></i></a></li><li class="twitter"><a rel="nofollow" title="Twitter" target="_blank" href="https://twitter.com/share?ref_src=twsrc%5Etfw"><i class="fa fa-twitter"></i></a>
115<script src="https://platform.twitter.com/widgets.js" charset="utf-8" async="async"></script>
115</li><li class="pinterest"><a rel="nofollow" target="_blank" title="Pinterest" href="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F14%2Fa-guide-to-neutral-paint-colors%2F&media=https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/FixUP_Pahmiyer13924-1430x1920.jpg"><i class="fa fa-pinterest"></i></a></li><li class="send-to-friend"><a rel="nofollow" target="_blank" title="LinkedIn" href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F14%2Fa-guide-to-neutral-paint-colors%2F"><i class="fa fa-linkedin"></i></a></li><li class="send-to-friend"><a rel="nofollow" class="js-send-to-friend" target="_blank" title="Send To Friend" href="https://magnoliarealty.com/blog/posts/2023/07/14/a-guide-to-neutral-paint-colors/" data-message="I found a blog post on &#34;Magnolia Realty&#34; which you may be interested in: https://magnoliarealty.com/blog/posts/2023/07/14/a-guide-to-neutral-paint-colors/"><i class="fa fa-envelope"></i></a></li></ul></div><header><h1 itemprop="name" class="p-name"><a href="/blog/posts/2023/07/14/a-guide-to-neutral-paint-colors/">A Guide to Neutral Paint Colors </a></h1><ul class="blog-attribution"><li>By <a itemprop="author" rel="author" class="p-author h-card"></a></li><li>Posted <time itemprop="datePublished" class="dt-published" datetime="2023-07-14T11:03:00+00:00"> Friday, Jul 14, 2023 </time></li></ul></header><section itemprop="articleBody" class="e-content"><div class="featuredBlogImageWrapper"><img src="https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/FixUP_Pahmiyer13924-1430x1920.jpg" class="p-image align-left" alt="Room painted in Gatherings gray"/></div><div class="blogContentWrapper"><p>Choosing the right neutral paint color can often feel like looking for a needle in a haystack. There are hundreds of whites, creams, and grays to choose from; yet the more you hunt, search, and sample, oftentimes they all start to look the same—and you’re left just hoping you make the right call.</p> 116</div><div class="clearfix"></div><div class="clearfix"></div></section><footer><ul class="blog-categories"></ul><a href="/blog/posts/2023/07/14/a-guide-to-neutral-paint-colors/#comments">0 comments</a></footer></article><article itemscope="itemscope" itemtype="http://schema.org/BlogPosting" class="h-entry"><div class="share-this"><a href="#">Share</a><ul><li class="facebook"><a rel="nofollow" target="_blank" title="Facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F14%2Fthe-5-fundamentals-of-styling-a-room%2F"><i class="fa fa-facebook"></i></a></li><li class="twitter"><a rel="nofollow" title="Twitter" target="_blank" href="https://twitter.com/share?ref_src=twsrc%5Etfw"><i class="fa fa-twitter"></i></a>
116<script src="https://platform.twitter.com/widgets.js" charset="utf-8" async="async"></script>
116</li><li class="pinterest"><a rel="nofollow" target="_blank" title="Pinterest" href="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F14%2Fthe-5-fundamentals-of-styling-a-room%2F&media=https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/4-Kitchen-Final-1536x1920.jpg"><i class="fa fa-pinterest"></i></a></li><li class="send-to-friend"><a rel="nofollow" target="_blank" title="LinkedIn" href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F14%2Fthe-5-fundamentals-of-styling-a-room%2F"><i class="fa fa-linkedin"></i></a></li><li class="send-to-friend"><a rel="nofollow" class="js-send-to-friend" target="_blank" title="Send To Friend" href="https://magnoliarealty.com/blog/posts/2023/07/14/the-5-fundamentals-of-styling-a-room/" data-message="I found a blog post on &#34;Magnolia Realty&#34; which you may be interested in: https://magnoliarealty.com/blog/posts/2023/07/14/the-5-fundamentals-of-styling-a-room/"><i class="fa fa-envelope"></i></a></li></ul></div><header><h1 itemprop="name" class="p-name"><a href="/blog/posts/2023/07/14/the-5-fundamentals-of-styling-a-room/">The 5 Fundamentals of Styling A Room </a></h1><ul class="blog-attribution"><li>By <a itemprop="author" rel="author" class="p-author h-card"></a></li><li>Posted <time itemprop="datePublished" class="dt-published" datetime="2023-07-14T10:36:00+00:00"> Friday, Jul 14, 2023 </time></li></ul></header><section itemprop="articleBody" class="e-content"><div class="featuredBlogImageWrapper"><img src="https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/4-Kitchen-Final-1536x1920.jpg" class="p-image align-left" alt="Kitchen with cohesive flow"/></div><div class="blogContentWrapper"><p>When it comes to styling your home, knowing where to begin can be the hardest part. That's why we brought in Hilary Walker, our Creative Director of Photography, Staging and Styling, to walk us through the five fundamentals she uses when designing and styling a room. Hilary also teaches these fundamentals in her <a href="https://magnolia.com/workshops/" rel="nofollow noopener" target="_blank">workshops</a> so that you can apply these ideas to your own space.</p> 117</div><div class="clearfix"></div><div class="clearfix"></div></section><footer><ul class="blog-categories"></ul><a href="/blog/posts/2023/07/14/the-5-fundamentals-of-styling-a-room/#comments">0 comments</a></footer></article><article itemscope="itemscope" itemtype="http://schema.org/BlogPosting" class="h-entry"><div class="share-this"><a href="#">Share</a><ul><li class="facebook"><a rel="nofollow" target="_blank" title="Facebook" href="http://www.facebook.com/sharer.php?u=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F12%2Fjo-s-design-notebook-kitchen-islands%2F"><i class="fa fa-facebook"></i></a></li><li class="twitter"><a rel="nofollow" title="Twitter" target="_blank" href="https://twitter.com/share?ref_src=twsrc%5Etfw"><i class="fa fa-twitter"></i></a>
117<script src="https://platform.twitter.com/widgets.js" charset="utf-8" async="async"></script>
117</li><li class="pinterest"><a rel="nofollow" target="_blank" title="Pinterest" href="http://pinterest.com/pin/create/button/?url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F12%2Fjo-s-design-notebook-kitchen-islands%2F&media=https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/Fixer_Minty_June25_0477_Final-scaled.jpg"><i class="fa fa-pinterest"></i></a></li><li class="send-to-friend"><a rel="nofollow" target="_blank" title="LinkedIn" href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fmagnoliarealty.com%2Fblog%2Fposts%2F2023%2F07%2F12%2Fjo-s-design-notebook-kitchen-islands%2F"><i class="fa fa-linkedin"></i></a></li><li class="send-to-friend"><a rel="nofollow" class="js-send-to-friend" target="_blank" title="Send To Friend" href="https://magnoliarealty.com/blog/posts/2023/07/12/jo-s-design-notebook-kitchen-islands/" data-message="I found a blog post on &#34;Magnolia Realty&#34; which you may be interested in: https://magnoliarealty.com/blog/posts/2023/07/12/jo-s-design-notebook-kitchen-islands/"><i class="fa fa-envelope"></i></a></li></ul></div><header><h1 itemprop="name" class="p-name"><a href="/blog/posts/2023/07/12/jo-s-design-notebook-kitchen-islands/">Jo's Design Notebook: Kitchen Islands </a></h1><ul class="blog-attribution"><li>By <a itemprop="author" rel="author" class="p-author h-card"></a></li><li>Posted <time itemprop="datePublished" class="dt-published" datetime="2023-07-12T11:10:00+00:00"> Wednesday, Jul 12, 2023 </time></li></ul></header><section itemprop="articleBody" class="e-content"><div class="featuredBlogImageWrapper"><img src="https://d15zjc2r4e8kr7.cloudfront.net/12998/img/blog/Fixer_Minty_June25_0477_Final-scaled.jpg" class="p-image align-left" alt="alt tag"/></div><div class="blogContentWrapper"><p>My first kitchen island wasn’t an island at all. It was a wooden cart that I’d wheel into the tiny kitchen of our first home whenever Chip and I had people over. I remember that cart served a few purposes around our home, and on nights when we hosted, I’d clear it of the picture frames and books that normally sat on top and roll it from its place in the living room to the center of the kitchen. It then became the place for prep— keeping all of my ingredients in sight and within reach.</p> 118</div><div class="clearfix"></div><div class="clearfix"></div></section><footer><ul class="blog-categories"></ul><a href="/blog/posts/2023/07/12/jo-s-design-notebook-kitchen-islands/#comments">0 comments</a></footer></article></main> 119 <aside id="sidebar1"><div id="blog-sidebar-415678" class="widget blogsidebar blog-sidebar container"><div class="searchform"><h3>Search</h3><div class="box"><form method="GET" action="/blog/"><input type="text" name="q" id="q"/><input type="submit" name="Search" id="Search" value="Search"/></form></div></div><div class="monthlist"><h3>Month</h3><div class="box"><ul><li><h4><a href="/blog/category/2025/">2025</a></h4><ul><li><a href="/blog/category/2025/10/">October (1)</a></li></ul></li><li><h4><a href="/blog/category/2024/">2024</a></h4><ul><li><a href="/blog/category/2024/06/">June (1)</a></li></ul></li><li><h4><a href="/blog/category/2023/">2023</a></h4><ul><li><a href="/blog/category/2023/07/">July (3)</a></li><li><a href="/blog/category/2023/12/">December (1)</a></li></ul></li></ul></div></div></div></aside> 120 </div> 121 </div> 122</div> 123<div class="sub3Wrap"> 124 <aside id="group3"></aside> 125</div> 126<div class="sub4Wrap"> 127 <aside id="group4"><div id="widget-ask-415069" class="widget askaquestion niceform container"><div class="widget-inner"><h3 class="widget-title">Send A Message</h3><div class="error-message-container"></div><form method="POST" action="/mail/send/sidebar_ask_a_question/" id="aaq-415069" data-pageview="/complete/ask-a-question/"><div><h4></h4><div class="contact-info"></div></div><div class="form-group form-group-firstname"><label class="sr-only" for="ask-415069-firstname">First Name</label><input type="text" name="FirstName" class="required form-control" placeholder="*First Name" id="ask-415069-firstname" required="required"/></div><div class="form-group form-group-lastname"><label class="sr-only" for="ask-415069-lastname">Last Name</label><input type="text" name="LastName" class="required form-control" placeholder="*Last Name" id="ask-415069-lastname" required="required"/></div><div class="form-group form-group-email"><label class="sr-only" for="ask-415069-email">Email</label><input type="text" name="Email" class="required form-control email" placeholder="*Email Address" id="ask-415069-email" required="required"/></div><div class="form-group form-group-phone"><label class="sr-only" for="ask-415069-phone">Phone</label><input type="text" name="Phone" class="form-control phone required " placeholder="*Phone" id="ask-415069-phone" required="required"/></div><div class="form-group form-group-comments"><label class="sr-only" for="ask-415069-question">Questions or Comments?</label><textarea name="Comments" id="ask-415069-question" class="form-control required" placeholder="*Questions or Comments" cols="12" rows="7"></textarea></div><div style="display:none;">Do not fill in this field:<input type="text" name="topyenoh" id="topyenoh"/></div><input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response" value="initalize" class="g-recaptcha-response"/><input type="hidden" name="FormKey" id="FormKey" value="4354a48f0cfd22940333a5833aaba88b"/><input type="hidden" name="Sent From" id="Sent From" value="https://magnoliarealty.com/blog/"/><input type="hidden" name="mailformid" id="mailformid" value="sidebar_ask_a_question"/><input type="hidden" name="Sent_Form" id="Sent_Form" value="sidebar_ask_a_question"/><input type="hidden" name="RealtorID" id="RealtorID" title="RealtorID"/><div class="form-group opt-in-block"><label class="show"><input type="checkbox" name="OptIn" value="1" class="required" required="required"/>
127<span class="control-label">Opt in</span></label><p>I agree to receive marketing and customer service calls and text messages from Magnolia Realty. To opt out, you can reply 'stop' at any time or click the unsubscribe link in the emails. Consent is not a condition of purchase. Msg/data rates may apply. Msg frequency varies. <a href="/privacy-policy/">Privacy Policy</a>.</p></div><div class="submit-btn"><button type="submit" name="send" class="usm-btn">Send</button></div><div class="recaptcha-notice">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy">Privacy Policy</a> and <a href="https://policies.google.com/terms">Terms of Service</a> apply.</div></form></div></div><div id="recsearch-415071" class="widget recsearchlist recsearch recommendedsearchlist tabbed container"><h3 class="widget-title">Res Search Footer</h3><div class="widget-inner"><ul class="nav nav-tabs"><li class="active recsearch-category-communities"><a href="#tab-40627" data-toggle="tab">Communities</a></li><li class="recsearch-category-property-type"><a href="#tab-40603" data-toggle="tab">Property Type</a></li><li class="recsearch-category-price"><a href="#tab-40604" data-toggle="tab">Price</a></li></ul><div class="tab-content"><div class="tab-pane active" id="tab-40627"><ul class="category-searches"><li><a title="Waco, TX Real Estate for Sale" href="/communities/waco/listings/">Waco</a></li><li><a title="Argyle, TX Real Estate for Sale" href="/communities/argyle/listings/">Argyle</a></li><li><a title="Austin, TX Real Estate for Sale" href="/communities/austin/listings/">Austin</a></li><li><a title="Belton, TX Real Estate for Sale" href="/communities/belton/listings/">Belton</a></li><li><a title="Dripping Springs, TX Real Estate for Sale" href="/communities/hill-country-v
127illage/listings/">Dripping Springs</a></li><li><a title="Granbury, TX Real Estate for Sale" href="/communities/granbury/listings/">Granbury</a></li><li><a title="Grapevine, TX Real Estate for Sale" href="/communities/grapevine/listings/">Grapevine</a></li><li><a title="Round Rock, TX Real Estate for Sale" href="/communities/round-rock/listings/">Round Rock</a></li><li><a title="San Antonio, TX Real Estate for Sale" href="/communities/san-antonio/listings/">San Antonio</a></li><li><a title="Temple, TX Real Estate for Sale" href="/communities/temple/listings/">Temple</a></li></ul></div><div class="tab-pane" id="tab-40603"><ul class="category-searches"><li><a title="Texas Houses for Sale" href="/property-type/house/">House</a></li><li><a title="Texas Multi-Family Properties for Sale" href="/property-type/multi-family/">Multi-Family</a></li><li><a title="Texas Condos for Sale" href="/property-type/condo/">Condo</a></li><li><a title="Texas Rental Properties" href="/property-type/rentals/">Rentals</a></li></ul></div><div class="tab-pane" id="tab-40604"><ul class="category-searches"><li><a title="Texas Homes for Sale Below $500K" href="/price/below-500k/">Below $500K</a></li><li><a title="Texas Homes for Sale $500K to $750K" href="/price/from-500k-to-750k/">From $500K To $750K</a></li><li><a title="Texas Homes for Sale $750K to $1M" href="/price/from-750k-to-1m/">From $750K To $1M</a></li><li><a title="Texas Homes for Sale $1M to $2M" href="/price/from-1m-to-2m/">From $1M To $2M</a></li><li><a title="Texas Homes for Sale $2M to $5M" href="/price/from-2m-to-5m/">From $2M To $5M</a></li><li><a title="Texas Homes for Sale Above $5M" href="/price/above-5m/">Above $5M</a></li></ul></div></div><a href="/realestate/searchcategories/" title="View All Recommended Searches" class="usm-btn view-all">View all</a></div> 128 </div></aside> 129</div> 130<div class="footWrap"> 131 <aside id="footer"><div id="sitelogo-415119" class="widget sitelogo container"> <div class="sitelogo__box sitelogo--white"> 132 <a href="/" target="_self" class="sitelogo__link"> 133 <img 134 src="https://s3.amazonaws.com/files.usmre.com/12998/i/logo.png?version=1778756587" 135 alt="Magnolia Realty Logo" 136 class="sitelogo__image" 137 > 138 </a> 139 </div> 140 <style> 141 .sitelogo--white .sitelogo__image { 142 filter: brightness(0) invert(1); 143 } 144 </style> 145 </div><ul class="footer-contact"> 146 <li class="phone"> 147 <p>Main Phone</p> 148 <a href="tel:(254) 218-5940" aria-label="Phone Number" class="phone">(254) 218-5940</a> 149 </li> 150 <li class="email"> 151 <p>Email Address</p> 152 <a href="mailto:[email protected]" class="email">[email protected]</a> 153 </li> 154</ul><div id="sociallinks-415057" class="widget sociallinks socialinkswidget flat container"><h3 class="widget-title">Connect</h3><ul class="fa-social-links sm40"><li><a target="_blank" title="Facebook" href="https://www.facebook.com/MagnoliaRealEstateTexas/" class="fa-social-links fsml-facebook" rel="noopener nofollow"><i class="fa fa-facebook"></i><span class="sr-only">Facebook</span></a></li><li><a target="_blank" title="Twitter" href="https://x.com/MagnoliaRealty" class="fa-social-links fsml-twitter" rel="noopener nofollow"><i class="fa fa-twitter"></i><span class="sr-only">Twitter</span></a></li><li><a target="_blank" title="Instagram" href="https://www.instagram.com/magnoliarealty/" class="fa-social-links fsml-instagram" rel="noopener nofollow"><i class="fa fa-instagram"></i><span class="sr-only">Instagram</span></a></li></ul></div><div id="menuwidget-415058" class="widget menu menuwidget bare container"><h3 class="widget-title">Properties</h3><div class="widget-inner"><ul role="menubar"><li role="presentation" class=" menu-item-193022"><a href="/exclusive-listings/" target="_self" role="menuitem">Our Listings</a></li><li role="presentation" class=" menu-item-193023"><a href="/exclusive-sold-listings/" target="_self" role="menuitem">Our Sold Listings</a></li><li role="presentation" class=" menu-item-193024"><a href="/listings/" target="_self" role="menuitem">All Listings</a></li></ul></div></div><div id="menuwidget-415060" class="widget menu menuwidget bare container"><h3 class="widget-title">Locations</h3><div class="widget-inner"><ul role="menubar"><li role="presentation" class=" menu-item-193027"><a href="/realestate/offices/13087/" target="_self" role="menuitem">Austin | Hill Country</a></li><li role="presentation" class=" menu-item-193028"><a href="/realestate/offices/13088/" target="_self" role="menuitem">Austin | Round Rock</a></li><li role="presentation" class=" menu-item-193029"><a href="/realestate/offices/13089/" target="_self" role="menuitem">
154DFW | Argyle</a></li><li role="presentation" class=" menu-item-193030"><a href="/realestate/offices/13090/" target="_self" role="menuitem">DFW | Granbury</a></li><li role="presentation" class=" menu-item-193031"><a href="/realestate/offices/13091/" target="_self" role="menuitem">DFW | Grapevine</a></li><li role="presentation" class=" menu-item-193032"><a href="/realestate/offices/13092/" target="_self" role="menuitem">San Antonio | Hill Country</a></li><li role="presentation" class=" menu-item-193033"><a href="/realestate/offices/13093/" target="_self" role="menuitem">Temple | Belton</a></li><li role="presentation" class=" menu-item-193034"><a href="/realestate/offices/13081/" target="_self" role="menuitem">Waco</a></li></ul></div></div><div id="menuwidget-415059" class="widget menu menuwidget bare container"><h3 class="widget-title">Our Services</h3><div class="widget-inner"><ul role="menubar"><li role="presentation" class=" menu-item-192969"><a href="/sellers/market-analysis/" target="_self" role="menuitem">Market Analysis</a></li><li role="presentation" class=" menu-item-193025"><a href="/sellers/home-worth/" target="_self" role="menuitem">Home Worth</a></li><li role="presentation" class=" menu-item-193026"><a href="/buyers/mortgage-calculator/" target="_self" role="menuitem">Mortgage Calculator</a></li></ul></div></div><div id="menuwidget-415061" class="widget menu menuwidget bare container"><h3 class="widget-title">About Us</h3><div class="widget-inner"><ul role="menubar"><li role="presentation" class=" menu-item-193083"><a href="/about/" target="_self" role="menuitem">About Us</a></li><li role="presentation" class=" menu-item-192972"><a href="/our-agents/" target="_self" role="menuitem">Our Agents</a></li><li role="presentation" class=" menu-item-192973"><a href="/testimonials/" target="_self" role="menuitem">Testimonials</a></li><li role="presentation" class=" menu-item-192974"><a href="/blog/" target="_self" role="menuitem">Blog</a></li></ul></div></div></aside> 155</div> 156<div class="usmWrap"> 157 <aside id="group5"><div id="associations-415062" class="widget associations container"><div id="footer-logos" style="width: 100%"><div id="footer-logos-left-assoc"></div><div id="footer-logos-right-accred"></div><div id="footer-logos-right-custom"><img src="https://d3w216np43fnr4.cloudfront.net/12998/415062/1.png?version=1778676642" title="Association logos" alt="Association logos"/></div></div></div><div class="footer-legal"> 158 <a class="footer-legal__link" href="/privacy-policy/">Privacy Policy</a> 159 <a class="footer-legal__link" href="https://s3.amazonaws.com/files.usmre.com/12998/trec-consumer-protection-notice.pdf" target="_blank" rel="noopener">TREC Consumer Protection Notice</a> 160 <a class="footer-legal__link" href="https://s3.amazonaws.com/files.usmre.com/12998/Information_About_Brokerage_Services_2026_updated.pdf" target="_blank" rel="noopener">TREC Information About Brokerage Services</a> 161</div><div id="usmlogo-415064" class="widget usmlogo container"><a href="https://www.unionstreetmedia.com/?utm_campaign=passive&utm_medium=usm-badge&utm_source=www.magnoliarealty.com&utm_content=real-estate" rel="nofollow noopener" title="VT NH Real Estate Web Design" target="_blank"><img src="https://d1mlo4htassgww.cloudfront.net/i/usmtag/usm-short-white.png?version=1790954985" alt="Union Street Media Logo"/></a></div></aside> 162</div><div id="progress"><i class="fa fa-spinner fa-spin"></i></div>
162<script type="text/javascript"> 163 require(["jquery"], function ($) { 164 var $navbarToggle = $("#menuwidget-415051 .navbar-toggle"); 165 166 $navbarToggle.click(function () { 167 var target = $(this).data("target"); 168 $(target).parent("nav").toggleClass("active"); 169 if ($(target).parent("nav").hasClass("active")) { 170 $("body").addClass("modal-open"); 171 } else { 172 $("body.modal-open").removeClass("modal-open"); 173 } 174 }); 175 176 $("#menuwidget-415051 .menu-close").click(function (e) { 177 $navbarToggle.click(); 178 e.preventDefault(); 179 }); 180 181 $("#menuwidget-415051 li.has-children ul li").click(function (event) { 182 event.stopPropagation(); 183 }); 184 }); 185 186 require(["jquery"], function ($) { 187 var $navbarToggle = $("#menuwidget-415053 .navbar-toggle"); 188 189 $navbarToggle.click(function () { 190 var target = $(this).data("target"); 191 $(target).parent("nav").toggleClass("active"); 192 if ($(target).parent("nav").hasClass("active")) { 193 $("body").addClass("modal-open"); 194 } else { 195 $("body.modal-open").removeClass("modal-open"); 196 } 197 }); 198 199 $("#menuwidget-415053 .menu-close").click(function (e) { 200 $navbarToggle.click(); 201 e.preventDefault(); 202 }); 203 204 $("#menuwidget-415053 li.has-children ul li").click(function (event) { 205 event.stopPropagation(); 206 }); 207 }); 208 209 // Searchable suggestions with a label values for the suggestion. 210 var SEARCHABLE_SUGGESTIONS_OPTIONS = { 211 usmCityAndState: '', 212 county: ' - County', 213 stateOrProvince: '', 214 usmNeighborhood: ' - Neighborhood', 215 postalCode: ' - Zip Code', 216 listingId: ' - MLS Number', 217 usmNonMlsId: ' - Internal ID', 218 elementarySchool: ' - Elementary School', 219 middleOrJuniorSchool: ' - Middle Or Junior High School', 220 usmArea: ' - Area', 221 address: ' - Address', 222 highSchool: ' - High School', 223 highSchoolDistrict: ' - School District', 224 usmVillage: ' - Village', 225 usmSubdivision: ' - Subdivision', 226 streetName: ' - Street', 227 usmComplex: ' - Complex', 228 usmPropertyName: ' - Property Name', 229 mlsAreaMinor: ' - MLS Area Minor', 230 mlsAreaMajor: ' - MLS Area Major', 231 offMarketData: ' - Off Market', 232 title: 'title', 233 agent: ' - Agent', 234 team: ' - Team', 235 } 236 237 var displayWaterBodyNameSuggestions = ''; 238 var showAgentsSearch = '0'; 239 240 if (displayWaterBodyNameSuggestions) { 241 SEARCHABLE_SUGGESTIONS_OPTIONS.waterBodyName = ' - Water Body Name'; 242 } 243 244 var suggestionResponse = null; 245 require(['jquery'], function($) { 246 /** 247 * Get current search mode based on active button 248 */ 249 function getCurrentSearchMode() { 250 if (showAgentsSearch === '1' && $('#agents-415066').hasClass('active')) { 251 return 'agents'; 252 } else if ($('#rentals-property-types-415066').hasClass('active')) { 253 return 'rentals'; 254 } else { 255 return 'sales'; 256 } 257 } 258 259 /** 260 * Filter out not supported suggestions. 261 * 262 * @param suggestions 263 * @returns {[]} 264 */ 265 function sanitizeSuggestions(suggestions) { 266 const sanitizedSuggestions = []; 267 if (suggestions && Array.isArray(suggestions)) { 268 for (var suggestionIndex in suggestions) { 269 var suggestion = suggestions[suggestionIndex]; 270 271 var suggestionType = suggestion.type; 272 // Filter out suggestions that are not currently supported 273 if (!SEARCHABLE_SUGGESTIONS_OPTIONS.hasOwnProperty(suggestionType)) { 274 continue; 275 } 276 277 sanitizedSuggestions.push(suggestion); 278 } 279 return sanitizedSuggestions; 280 } 281 282 return []; 283 } 284 285 /** 286 * Transform agents API response to suggestions format 287 */ 288 function transformAgentsToSuggestions(responseData) { 289 if (!Array.isArray(responseData?.agents) || !Array.isArray(responseData?.teams)) { 290 return []; 291 } 292 const data = [ 293 ...responseData.agents.map(agent => ({ ...agent, type: 'agent' })), 294 ...responseData.teams.map(team => ({ ...team, type: 'team' })) 295 ]; 296 297 return data.map((item) => ({ 298 label: item.name, 299 value: item.name, 300 type: item.type, 301 id: item.id, 302 slug: item.slug, 303 })); 304 } 305 306 /** 307 * Check if the parameter looks like an address (starts with digits followed by words) 308 */ 309 function shouldReduceByAddress(value) { 310 var addressPattern = /^\d+\s+\w+/i; 311 return addressPattern.test(value.trim()); 312 } 313 314 function fetchSuggestions(request, response) { 315 var param = request.term; 316 var requestPrefix = ''; 317 var isOMPEnabled = requestPrefix === 'OMP:'; 318 var searchMode = getCurrentSearchMode(); 319 320 // Restrict search length to minimum 2 characters before sending the request. 321 if (param.length < 2) { 322 // We do not store and show recent searches if OMP is enabled or in agents mode 323 var isRecentSearchesDisabled = isOMPEnabled || searchMode === 'agents'; 324 var recentSearches = isRecentSearchesDisabled ? [] : JSON.parse(window.localStorage.getItem('lastSearches')); 325 326 if (recentSearches && recentSearches.length > 0) { 327 recentSearches.unshift({label: 'Recent Searches', value: 'Recent Searches', type: 'title'}) 328 response(recentSearches); 329 } else { 330 response([{label: 'The search word must be at least 3 characters long.', noResults: true}]); 331 } 332 } else { 333 // Different API endpoints based on search mode 334 var baseUrl = ''; 335 var requestData = {}; 336 337 if (searchMode === 'agents') { 338 baseUrl = '/api/suggestions/teams/'; 339 requestData = { 340 q: param, 341 }; 342 } else { 343 baseUrl = '/api/suggestions/'; 344 requestData = { 345 q: requestPrefix + param 346 }; 347 348 if (shouldReduceByAddress(param)) { 349 requestData.reduce = 'usmFullAddress'; 350 } 351 } 352 353 $.ajax({ 354 dataType: 'json', 355 url: baseUrl, 356 data: requestData, 357 type: 'GET', 358 timeout: 10000, 359 success: function(data) { 360 var suggestions = []; 361 362 if (searchMode === 'agents') { 363 // Transform agents response 364 suggestions = transformAgentsToSuggestions(data); 365 } else { 366 // Regular suggestions 367 if (data.suggestions && data.suggestions.length > 0) { 368 suggestions = sanitizeSuggestions(data.suggestions); 369 } 370 } 371 372 if (suggestions.length > 0) { 373 // Set the suggestion response to the first suggestion 374 suggestionResponse = suggestions[0]; 375 response(suggestions); 376 } else { 377 // No results from API 378 var noResultsMessage = searchMode === 'agents' ? 'No agents found.' : 'Enter another region.'; 379 response([{label: noResultsMessage, noResults: true}]); 380 } 381 }, 382 error: function() { 383 response([{label: 'Problem contacting server, please refresh and try again.', noResults: true}]); 384 $('.autosuggest-loader').removeClass('fal fa-spinner fa-pulse'); 385 $('.autosuggest-loader').addClass('fal fa-exclamation-triangle'); 386 } 387 }); 388 } 389 } 390 391 $('#autosuggest-search-query-415066').autocomplete({ 392 source: function(request, response) { 393 fetchSuggestions(request, response); 394 }, 395 minLength: 0, 396 open: function() {
397 inputWidth = $('#autosuggest-search-query-415066').outerWidth(); 398 $('ul.ui-menu').css( 'width', inputWidth ); 399 }, 400 search: function(event, ui) { 401 $('.autosuggest-loader').addClass('fal fa-spinner fa-pulse'); 402 }, 403 response: function(event, ui) { 404 $('.autosuggest-loader').removeClass('fal fa-spinner fa-pulse'); 405 }, 406 position: { 407 offset: '0 -6' 408 }, 409 autoFocus: true, 410 messages: { 411 //These messages are for accessability and are not visible in the UI (with proper styling). 412 noResults: 'No options found.', 413 results: function(amount) { 414 return amount + (amount > 1 ? ' results ' : ' result ') + 'found.' 415 } 416 }, 417 delay: 300 418 }).focus(function() { 419 $(this).autocomplete('search', $(this).val()); 420 }).data('ui-autocomplete')._renderItem = function(ul, item) { 421 let txt = String(item.label); 422 423 if (item.type) { 424 txt = txt.replace(new RegExp(this.term, 'gi'),'<b>$&</b>'); 425 } 426 427 var type = item.type; 428 429 if (SEARCHABLE_SUGGESTIONS_OPTIONS.hasOwnProperty(type)) { 430 type = SEARCHABLE_SUGGESTIONS_OPTIONS[type]; 431 432 if (type == 'listingId') { 433 txt = txt.toUpperCase(); 434 } 435 } else { 436 type = ''; 437 } 438 439 if (type === 'title') { 440 return $('<li></li>') 441 .append('<div class="item-title"><b>' + txt + '</b></div>') 442 .appendTo(ul); 443 } 444 445 var status = ''; 446 if (item.standardStatus && item.standardStatus.length === 1 && item.standardStatus[0] === 'Closed') { 447 status = ' <span class="ui-status">Sold</span>'; 448 } 449 450 const itemNoResultsClassName = !!item?.noResults ? 'autosuggest-item-no-result' : ''; 451 452 return $(`<li class='${itemNoResultsClassName}'></li>`) 453 .data('ui-autocomplete-item', item) 454 .append('<a>' + txt + '<span>' + type + '</span>' + status + '</a>') 455 .appendTo(ul); 456 }; 457 }); 458 459 require(['jquery'], function($) { 460 var stateMap = JSON.parse('{"Alabama":"AL","Alaska":"AK","Arizona":"AZ","Arkansas":"AR","Bahamas":"BS","California":"CA","Colorado":"CO","Connecticut":"CT","Delaware":"DE","D.C.":"DC","Florida":"FL","Georgia":"GA","Hawaii":"HI","Idaho":"ID","Illinois":"IL","Indiana":"IN","Iowa":"IA","Kansas":"KS","Kentucky":"KY","Louisiana":"LA","Maine":"ME","Maryland":"MD","Massachusetts":"MA","Michigan":"MI","Minnesota":"MN","Mississippi":"MS","Missouri":"MO","Montana":"MT","Nebraska":"NE","Nevada":"NV","New Hampshire":"NH","New Jersey":"NJ","New Mexico":"NM","New York":"NY","North Carolina":"NC","North Dakota":"ND","Ohio":"OH","Oklahoma":"OK","Oregon":"OR","Pennsylvania":"PA","Rhode Island":"RI","South Carolina":"SC","South Dakota":"SD","Tennessee":"TN","Texas":"TX","Utah":"UT","Vermont":"VT","Virginia":"VA","Washington":"WA","West Virginia":"WV","Wisconsin":"WI","Wyoming":"WY","Alberta":"AB","British Columbia":"BC","Manitoba":"MB","New Brunswick":"NB","Newfoundland and Labrador":"NL","Nova Scotia":"NS","Ontario":"ON","Prince Edward Island":"PE","Quebec":"QC","Saskatchewan":"SK"}'); 461 const MAX_RECENT_SEARCHES_CACHED = 5; 462 var showAgentsSearch = '0'; 463 464 function getCurrentSearchMode() { 465 if (showAgentsSearch === '1' && $('#agents-415066').hasClass('active')) { 466 return 'agents'; 467 } else if ($('#rentals-property-types-415066').hasClass('active')) { 468 return 'rentals'; 469 } else { 470 return 'sales'; 471 } 472 } 473 474 /** 475 * Update placeholder based on current search mode 476 */ 477 function updatePlaceholder() { 478 var searchMode = getCurrentSearchMode(); 479 var searchInput = $('#autosuggest-search-query-415066'); 480 var placeholder = ''; 481 482 switch(searchMode) { 483 case 'agents': 484 placeholder = 'Search for agents by name'; 485 break; 486 case 'rentals': 487 case 'sales': 488 default: 489 placeholder = `Search by Neighborhood, County Zipcode...`; 490 break; 491 } 492 493 searchInput.attr('placeholder', placeholder); 494 } 495 496 function getStateAbbreviation(stateName) { 497 if (!stateName) { 498 return null; 499 } 500 501 if (!stateMap.hasOwnProperty(stateName)) { 502 return null; 503 } 504 505 return stateMap[stateName]; 506 } 507
508 function goToDetailView(filter) { 509 var baseUrl = '/api/listings/'; 510 // We should use this replace in order to divide params into array in the ListingSearch.php in the V2 511 filter = filter.replace(/\S&\S/g, function (tmpVal) { 512 return tmpVal.replace(/&/g, '#'); 513 }); 514 filter = encodeURIComponent(filter); 515 $.ajax({ 516 dataType: 'json', 517 url: baseUrl + '?suggestionFilter=' + filter, 518 type: 'GET', 519 success: function(data) { 520 if (!Array.isArray(data.listings)) { 521 return; 522 } 523 524 if (data.listings.length === 1) { 525 window.location.href = data.listings[0].usmDetailPath; 526 527 return; 528 } 529 530 if (data.listings.length > 1) { 531 window.location.href = '/listings/' + '?suggestionFilter=' + filter; 532 533 return; 534 } 535 } 536 }); 537 } 538 539 function getCityAndStatePath(value) { 540 var array = value.split(' '); 541 542 const state = array.pop().toLowerCase(); 543 const city = array.join('-').toLowerCase(); 544 545 return state + '/' + city + '/'; 546 } 547 548 function parseFilterString(filterString) { 549 var filters = {}; 550 if (!filterString) { 551 return filters; 552 } 553 filterString.split('&').forEach(function(f) { 554 var parts = f.split('='); 555 if (parts.length >= 2) { 556 var name = parts[0].match(/\[(.*?)\]/)?.[1]; 557 if (name) { 558 filters[name] = decodeURIComponent(parts.slice(1).join('=')); 559 } 560 } 561 }); 562 return filters; 563 } 564 565 function getStateAbbrFromFilterValue(stateValue) { 566 if (!stateValue) { 567 return null; 568 } 569 var abbr = getStateAbbreviation(stateValue); 570 if (abbr) { 571 return abbr.toLowerCase(); 572 } 573 if (stateValue.length === 2) { 574 return stateValue.toLowerCase(); 575 } 576 return null; 577 } 578 579 /** 580 * Build url with path based on the selected suggestion. 581 * 582 */ 583 function getUrlPath(suggestion) { 584 let path = ''; 585 switch (suggestion.type) { 586 case 'cityAndState': 587 path += getCityAndStatePath(suggestion.value); 588 589 return path; 590 case 'stateOrProvince': 591 var stateAbbreviation = getStateAbbreviation(suggestion.value); 592 593 if (stateAbbreviation && stateAbbreviation.length == 2) { 594 path += stateAbbreviation.toLowerCase() + '/'; 595 } 596 597 return path; 598 case 'neighborhood': 599 case 'village': 600 path += convertFilterString(suggestion.filter); 601 602 return path; 603 case 'county': { 604 var filters = parseFilterString(suggestion.filter); 605 var county = filters.county; 606 var stateAbbr = getStateAbbrFromFilterValue(filters.stateOrProvince); 607 if (county && stateAbbr) { 608 var countySlug = county.replace(/\s+county$/i, '').toLowerCase().replace(/\s+/g, '-') + '-county'; 609 path = stateAbbr + '/' + countySlug + '/'; 610 } 611 return path; 612 } 613 case 'postalCode': { 614 var filters = parseFilterString(suggestion.filter); 615 var postalCode = filters.postalCode; 616 var stateAbbr = getStateAbbrFromFilterValue(filters.stateOrProvince); 617 if (postalCode && stateAbbr) { 618 path = stateAbbr + '/' + postalCode + '/'; 619 } 620 return path; 621 } 622 default: 623 return path; 624 } 625 } 626 627 function convertFilterString(filterString) { 628 if (!filterString) { 629 return ''; 630 } 631 632 const filters = filterString.split('&'); 633 const suggestionFilters = filters.map(filter => { 634 const filterPart = filter.split('='); 635 636 if (filterPart.length !== 2) { 637 return null; 638 } 639 640 const [key, value] = filterPart; 641 const name = key.match(/\[(.*?)\]/)?.[1]; 642 643 if (!name) return null; 644 645 return name === 'cityAndState' || name === 'usmCityAndState' 646 ? getCityAndStatePath(value) + '?' 647 : name + '=' + value ; 648 }); 649 650 return getPathFromFilters(suggestionFilters); 651 } 652 653 function getPathFromFilters(suggestionFilters) { 654 if (!suggestionFilters || suggestionFilters.length === 0) { 655 return ''; 656 } 657 658 const cityAndStateItem = suggestionFilters.find(item => item.includes('/?')); 659 660 if (!cityAndStateItem) { 661 return '?' + suggestionFilters.join('&'); 662 } 663 664 const filtersWithoutCityAndState = suggestionFilters.filter(item => item !== cityAndStateItem); 665 666 return cityAndStateItem + filtersWithoutCityAndState.join('&'); 667 } 668 669 function getPropertyDetailPathFromOffMarketSuggestion(suggestion) { 670 if (!suggestion) { 671 return ''; 672 } 673 674 const { value, filter } = suggestion; 675 const startIndex = filter?.indexOf('=') + 1; 676 const usmPid = filter?.substring(startIndex); 677 678 const address = value?.split(' ') 679 ?.map(function(word) { return word.toLowerCase() }) 680 ?.join('-') || ''; 681 682 return '/property/' + address + '/' + usmPid + '/'; 683 }; 684 685 function submitSearch(e, item) { 686 e.preventDefault(); 687 688 if (!item) { 689 return; 690 } 691 692 // If the item has no type, it's an error message and shouldn't send anywhere 693 if (!item.type) { 694 return; 695 } 696 697 var searchMode = getCurrentSearchMode(); 698
699 // Finish the input in case a selection was made without completing it 700 $('#autosuggest-search-query').val(item.type === 'listingId' ? item.value.toUpperCase() : item.label); 701 702 if (item.type === 'agent' || item.type === 'team') { 703 window.location.href = `/realestate/${item.type}/${item.slug}/`; 704 705 return; 706 } 707 708 // Send to detail view if MLS Number 709 if (item.type === 'listingId' || item.type === 'address' || item.type === 'usmPropertyName' || item.type === 'usmNonMlsId') { 710 var filter = item.filter; 711 712 if (item.standardStatus && item.standardStatus.length > 0) { 713 var statusList = Array.isArray(item.standardStatus) 714 ? item.standardStatus 715 : [item.standardStatus]; 716 // It is very common for listings other than 'Active 'to being filtered out, so we need to add this filter to ensure that they are returned by the listings api 717 filter += (filter !== '' ? '&' : '') + 'filter[standardStatus]=' + statusList.join(','); 718 } 719 goToDetailView(filter); 720 721 return; 722 } else if (item.type === 'offMarketData') { 723 const propertyPath = getPropertyDetailPathFromOffMarketSuggestion(item); 724 725 window.location.href = propertyPath; 726 727 return; 728 } 729 730 item.type = item.type.replace('usmCityAndState', 'cityAndState') 731 .replace('usmNeighborhood', 'neighborhood') 732 .replace('usmVillage', 'village') 733 .replace('usmSubdivision', 'subdivision') 734 .replace('usmComplex', 'complex'); 735 736 if (item.type === 'cityAndState') { 737 item.value = item.value.replace(', ', ' '); 738 } 739 740 path = getUrlPath(item); 741 742 // Don't save agents to recent searches 743 if (searchMode !== 'agents') { 744 var searches = [Object.assign({}, item)]; 745 var storedSearches = JSON.parse(localStorage.getItem('lastSearches')); 746 747 if (storedSearches) { 748 searches = storedSearches.filter(function(storedSearch) { 749 storedSearch.value !== item.value 750 }); 751 storedSearches = searches.length <= (MAX_RECENT_SEARCHES_CACHED - 1) 752 ? searches 753 : searches.slice(0,-1); 754 searches = [Object.assign({}, item), ...storedSearches]; 755 } 756 757 localStorage.setItem('lastSearches', JSON.stringify(searches)); 758 } 759 760 var propertyTypeFilter = ''; 761 var displaySalesRentalsToggle = ''; 762 763 if (displaySalesRentalsToggle && searchMode !== 'agents') { 764 var forSalePropertyTypes = ''; 765 var rentalsPropertyTypes = ''; 766 var forSaleLabel = 'Sales'; 767 var rentalsLabel = 'Rentals'; 768 var agentsLabel = ''; 769 var propertyTypes = $('#sales-property-types-415066').hasClass('active') ? forSalePropertyTypes : rentalsPropertyTypes; 770 771 if (propertyTypes) { 772 var urlPathTypes = ['cityAndState', 'county', 'postalCode']; 773 if (urlPathTypes.indexOf(item.type) !== -1 && !propertyTypes.includes(',')) { 774 path = path + propertyTypes.toLowerCase() + '/'; 775 } else { 776 propertyTypeFilter = 'propertyTypes=' + propertyTypes; 777 } 778 } 779 } 780 781 var fullPath = ''; 782 if (path.length > 0) { 783 var separator = path.indexOf('?') !== -1 ? '&' : '?'; 784 fullPath = '/listings/' + path + separator +'' + propertyTypeFilter; 785 } else { 786 fullPath = '/listings/?' + item.type + '=' + encodeURIComponent(item.value) + '&' + propertyTypeFilter; 787 } 788 789 // Remove trailing ? or & 790 const lastChar = fullPath.charAt(fullPath.length - 1); 791 if (lastChar === '?' || lastChar === '&') { 792 fullPath = fullPath.slice(0, -1); 793 } 794 795 window.location.href = fullPath; 796 } 797 798 $('.widget-autosuggest').on('submit', function(e) { 799 submitSearch(e, suggestionResponse); 800 }); 801 802 $('.widget-autosuggest').on('autocompleteselect', function(e, ui) { 803 submitSearch(e, ui.item); 804 }); 805 806 var salesPropertyTypesButton = $('#sales-property-types-415066'); 807 var rentalPropertyTypesButton = $('#rentals-property-types-415066'); 808 var agentsButton = $('#agents-415066'); 809 810 // Function to clear search and refresh autocomplete 811 function clearSearchAndRefresh() { 812 $('#autosuggest-search-query-415066').val('').autocomplete('search', ''); 813 } 814
815 const buttons = [salesPropertyTypesButton, rentalPropertyTypesButton]; 816 if (showAgentsSearch === '1') { 817 buttons.push(agentsButton); 818 } 819 820 function setActiveButton(activeButton, buttons) { 821 $.each(buttons, function(index, btn) { 822 btn.removeClass('active'); 823 }); 824 activeButton.addClass('active'); 825 updatePlaceholder(); 826 clearSearchAndRefresh(); 827 } 828 829 salesPropertyTypesButton.on('click', function() { 830 setActiveButton(salesPropertyTypesButton, buttons); 831 }); 832 833 rentalPropertyTypesButton.on('click', function() { 834 setActiveButton(rentalPropertyTypesButton, buttons); 835 }); 836 837 // Only add event handler if agents search is enabled 838 if (showAgentsSearch === '1') { 839 agentsButton.on('click', function() {
840 setActiveButton(agentsButton, buttons); 841 }); 842 } 843 844 // Initialize placeholder on document ready 845 $(document).ready(function() { 846 updatePlaceholder(); 847 }); 848 }); 849 850 require(["jquery", "usm", "usm.modalform", "usm.analytics"], function($, usm) { 851 var $form = $('form#aaq-415069'); 852 853 var options = { 854 postSuccess: function (e) { 855 if (typeof dataLayer !== 'undefined') { 856 dataLayer.push({"event":"Contact_Form","form_name":"Ask A Question - General"}); 857 } 858 } 859 }; 860 861 usm.modalForm.addValidation($form, options); 862 }); 863 864 require(["jquery", "usm", "bootstrap"], function ($, usm) { 865 if (usm.touchSupport) { 866 require(["bootstraptabcollapse"], function() { 867 $(document).ready(function() { 868 var tab = $("#recsearch-415071 .nav-tabs"); 869 870 if (tab) { 871 tab.tabCollapse(); 872 873 //It is a specific task for adding category class for the rec search items by category name 874 tab.on("shown-accordion.bs.tabcollapse", function(e) { 875 let tabPanel = document.querySelectorAll("#recsearch-415071 .panel-group .panel"); 876 877 if (tabPanel) { 878 let classList = []; 879 880 e.target.querySelectorAll("li").forEach((li) => { 881 li.className.split(' ').forEach((className) => { 882 if (!classList.includes(className) && className.indexOf("recsearch-category-") !== -1) { 883 classList.push(className); 884 } 885 }); 886 }); 887 888 tabPanel.forEach((panel, index) => { 889 if (!panel.classList.contains(classList[index])) { 890 panel.classList.add(classList[index]); 891 } 892 }); 893 } 894 }); 895 } 896 }); 897 }); 898 } 899 }); 900 var URI = "/blog/";require(['usm', 'usm.user'], function (usm) { usm.user.setModal(true); });require(["jquery"], function ($) { $("body").addClass("js"); });</script>
900<script type="text/javascript">require(["https://d1nn5t56all1qd.cloudfront.net/12998/js/custom.js?version=1785846782"]);</script>
900</body> 901</html><!-- You're on: Some other server - 172.18.22.9 - magnoliarealty.com Time: 0.976 -->
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.