/******/ (function() { // webpackBootstrap /******/ "use strict"; /******/ var __webpack_modules__ = ({ /***/ "@reduxjs/toolkit": /*!****************************************************!*\ !*** external ["elementorVendors","reduxToolkit"] ***! \****************************************************/ /***/ (function(module) { module.exports = window["elementorVendors"]["reduxToolkit"]; /***/ }), /***/ "react-redux": /*!**************************************************!*\ !*** external ["elementorVendors","reactRedux"] ***! \**************************************************/ /***/ (function(module) { module.exports = window["elementorVendors"]["reactRedux"]; /***/ }) /******/ }); /************************************************************************/ /******/ // The module cache /******/ var __webpack_module_cache__ = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ var cachedModule = __webpack_module_cache__[moduleId]; /******/ if (cachedModule !== undefined) { /******/ return cachedModule.exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = __webpack_module_cache__[moduleId] = { /******/ // no module.id needed /******/ // no module.loaded needed /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /************************************************************************/ /******/ /* webpack/runtime/compat get default export */ /******/ !function() { /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function() { return module['default']; } : /******/ function() { return module; }; /******/ __webpack_require__.d(getter, { a: getter }); /******/ return getter; /******/ }; /******/ }(); /******/ /******/ /* webpack/runtime/define property getters */ /******/ !function() { /******/ // define getter functions for harmony exports /******/ __webpack_require__.d = function(exports, definition) { /******/ for(var key in definition) { /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); /******/ } /******/ } /******/ }; /******/ }(); /******/ /******/ /* webpack/runtime/hasOwnProperty shorthand */ /******/ !function() { /******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } /******/ }(); /******/ /******/ /* webpack/runtime/make namespace object */ /******/ !function() { /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ }(); /******/ /************************************************************************/ var __webpack_exports__ = {}; // This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk. !function() { /*!***************************************************!*\ !*** ./packages/packages/libs/store/src/index.ts ***! \***************************************************/ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ __StoreProvider: function() { return /* reexport safe */ react_redux__WEBPACK_IMPORTED_MODULE_1__.Provider; }, /* harmony export */ __addMiddleware: function() { return /* binding */ addMiddleware; }, /* harmony export */ __createAction: function() { return /* reexport safe */ _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createAction; }, /* harmony export */ __createAsyncThunk: function() { return /* reexport safe */ _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createAsyncThunk; }, /* harmony export */ __createSelector: function() { return /* reexport safe */ _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSelector; }, /* harmony export */ __createSlice: function() { return /* reexport safe */ _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.createSlice; }, /* harmony export */ __createStore: function() { return /* binding */ createStore; }, /* harmony export */ __deleteStore: function() { return /* binding */ deleteStore; }, /* harmony export */ __dispatch: function() { return /* binding */ dispatch; }, /* harmony export */ __getState: function() { return /* binding */ getState; }, /* harmony export */ __getStore: function() { return /* binding */ getStore; }, /* harmony export */ __registerSlice: function() { return /* binding */ registerSlice; }, /* harmony export */ __subscribe: function() { return /* binding */ subscribe; }, /* harmony export */ __subscribeWithSelector: function() { return /* binding */ subscribeWithSelector; }, /* harmony export */ __useDispatch: function() { return /* reexport safe */ react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch; }, /* harmony export */ __useSelector: function() { return /* reexport safe */ react_redux__WEBPACK_IMPORTED_MODULE_1__.useSelector; } /* harmony export */ }); /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @reduxjs/toolkit */ "@reduxjs/toolkit"); /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux"); /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__); /** * Usage: * * const mySlice = addSlice( ... ); * * type MySliceState = SliceState; * * const value = useSelector( ( state: MySliceState ) => state.mySlice.value ); */ // The `configureStore` function from Redux Toolkit infers its actions from the `reducers` // key of the initialization object. This is fine when creating the store statically, but // breaks in our case since we create the store dynamically, which means that TypeScript // can't infer the types. Therefore, we force the store to accept any actions using a // generic store type. // eslint-disable-next-line @typescript-eslint/no-explicit-any let instance = null; let slices = {}; const pendingActions = []; const middlewares = new Set(); const getReducers = () => { const reducers = Object.entries(slices).reduce((reducersData, [name, slice]) => { reducersData[name] = slice.reducer; return reducersData; }, {}); return (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.combineReducers)(reducers); }; function registerSlice(slice) { if (slices[slice.name]) { throw new Error(`Slice with name "${slice.name}" already exists.`); } slices[slice.name] = slice; } const addMiddleware = middleware => { middlewares.add(middleware); }; // eslint-disable-next-line @typescript-eslint/no-explicit-any -- See the comment above about `AnyStore` const dispatch = action => { if (!instance) { pendingActions.push(action); return; } return instance.dispatch(action); }; const getState = () => { if (!instance) { throw new Error('The store instance does not exist.'); } return instance.getState(); }; const subscribe = listener => { if (!instance) { throw new Error('The store instance does not exist.'); } return instance.subscribe(listener); }; // eslint-disable-next-line @typescript-eslint/no-explicit-any const subscribeWithSelector = (selector, listener) => { let prevState = selector(getState()); return subscribe(() => { const nextState = selector(getState()); if (prevState === nextState) { return; } prevState = nextState; listener(nextState); }); }; const createStore = () => { if (instance) { throw new Error('The store instance already exists.'); } instance = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_0__.configureStore)({ reducer: getReducers(), middleware: getDefaultMiddleware => { return [...getDefaultMiddleware(), ...Array.from(middlewares)]; } }); if (pendingActions.length) { pendingActions.forEach(action => dispatch(action)); pendingActions.length = 0; } return instance; }; const getStore = () => { return instance; }; const deleteStore = () => { instance = null; slices = {}; pendingActions.length = 0; middlewares.clear(); }; }(); (window.elementorV2 = window.elementorV2 || {}).store = __webpack_exports__; /******/ })() ; window.elementorV2.store?.init?.(); //# sourceMappingURL=store.js.mapPremium Top 7 Wood Flooring Patterns And Design options
No Comments

7 Wood Flooring Patterns And Design Options

7 Wood Flooring Patterns And Design options

Picking out a pattern and style is one of the most important parts of picking out a new wood floor. The choice of wood flooring patterns and how the floorboards are laid out can have a big effect on how a room looks and feels. Wood floors come in a lot of different styles, from the traditional herringbone to the more trendy chevron. As you look at different types of wood flooring, keep these 7 wood flooring patterns and design options in mind.

Top 7 Wood Floor Patterns & Design Options

1. Herringbone

Herringbone patterns

The herringbone pattern is a timeless, classic option for wood floors. Among popular wood flooring patterns, rows of parallel wood planks are laid out to form a zigzag pattern, resembling the bones of a fish. This angled pattern has visual interest and brings a sense of energy while still maintaining a feeling of traditional interior.

Herringbone floors work well in contemporary room styles. The zigzag design makes small spaces appear larger, too. One downside is the pattern can show imperfections more easily. Professional parquet flooring installation is recommended for best results.

2. Chevron

Chevron wood flooring uses narrowly angled rectangular boards placed in a V-shape. The sharp angles create a modern and geometric look. Chevron is bolder and more contemporary than traditional herringbone. The dynamic pattern also helps make a design statement. 

Rooms with simple, clean lines work best so the floor can take center stage. One consideration is properly choosing plank widths so the angles don’t end up being too close. Wider planks can help soften it slightly.

3. Mosaic

Shapes that fit together like a mosaic make up the patterns on parquet wood floors. Traditional parquet floors are composed of squares, just like tile floors. Modern parquet can have a mix of shapes and lines to make it look more interesting. To make your designs, you can mix diamonds, hexagons, basketweave patterns, and other shapes. 

Pine parquet gives you a lot of choices when you want to make unique wood flooring art. Custom parquet may be more expensive and require professional installation, but it creates a distinctive focal point on the floor.

4. 3D Parquet

A three-dimensional parquet builds on the geometrical shapes of standard parquets for even more stylized dimensions. The 3D parquet has narrow strips of wood raised slightly to add literal and visual depth. The resulting pattern combines the artistic mosaic look of parquet with textural appeal. 

Well-done 3D parquet is smooth underfoot still for safety and comfort. This specialized flooring works better in modern or contemporary room settings. The involved custom work also means an increased budget.

5. Plank Flooring

Plank wood floor

Plank wood floors are always in style. This simple design is formed from long rectangular wooden slabs arranged in parallel rows. Plank flooring complements all aesthetics, from rustic to contemporary. Wood can be versatile due to its various widths, lengths, and species. The lengths of the planks may be run horizontally, vertically, or diagonally. Elegant wood is highlighted by means of sleek patterns and vibrant shades.

6. Basketweave

Basketweave wood floors really do look like baskets because they use the same over-and-under design. As you go down the floor, each row of planks goes under and then over the next, making it look like woven strips. The style of design that comes from basket weaving is casual and natural. 

To make things interesting, mix the types and sizes of wood. For a hand-made look, softwoods like pine that have tool marks look great. Just make sure that over time, dust and other things don’t build up in the relief areas where the boards dip under.

7. Hexagonal Pattern

Hexagonal wood flooring

For a modern honeycomb shape in wood floors, hexagonal patterns deliver the best results. Using six-sided polygon boards allows for the creation of a closely interlocking geometric floor layout. Hexagon floors have an almost futuristic or sci-fi vibe with their bee-like structure. The pattern works ideally in contemporary homes. 

Make sure to use wood varieties with rich grain patterns, as the narrow edges of the hexagonal shape can otherwise look plain. Bold grains, interesting natural textures, and varying finishes help hexagonal wood planks make a strong design statement.

Conclusion

There is a wood flooring pattern to complement your style, whether it is traditional or modern, formal or casual. Out of these 7 wood flooring patterns and design options, traditional herringbone and parquet patterns provide timeless beauty, while Chevron and hexagon patterns make bold design statements. Simple strip plank floors are the most adaptable, working with any decor. Consider how placing planks in innovative patterns can make your new hardwood flooring even more unique, in addition to wood species and finishes.

You might also like