|
| 1 | +# LayoutCustomizer — SPFx Application Customizer |
| 2 | + |
| 3 | +A SharePoint Framework (SPFx) Application Customizer that applies a responsive **3-column grid layout** to SharePoint Modern pages. Provides a Fluent-styled floating toolbar and modal panel for live column-width configuration, persisted via `localStorage`. |
| 4 | + |
| 5 | +--- |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | +## Features |
| 10 | + |
| 11 | +- Responsive 3-column layout applied to SharePoint Modern pages. |
| 12 | +- Converts page sections into a flexible Left, Main, and Right grid layout. |
| 13 | +- Floating toolbar for quick layout actions. |
| 14 | +- Fluent-style configuration panel for adjusting column widths. |
| 15 | +- Live layout preview when changing column values. |
| 16 | +- Slider and numeric input support for precise column configuration. |
| 17 | +- Optional right navigation panel that can be enabled or disabled. |
| 18 | +- Layout configuration stored in browser localStorage (can be enhanced to store settings in the SharePoint page). |
| 19 | +- Reset option to clear saved layout settings. |
| 20 | +- Lightweight implementation using SPFx Application Customizer. |
| 21 | + |
| 22 | +## Compatibility |
| 23 | + |
| 24 | +| :warning: Important | |
| 25 | +|:---------------------------| |
| 26 | +| Every SPFx version is optimally compatible with specific versions of Node.js. In order to be able to Toolchain this sample, you need to ensure that the version of Node on your workstation matches one of the versions listed in this section. This sample will not work on a different version of Node.| |
| 27 | +|Refer to <https://aka.ms/spfx-matrix> for more information on SPFx compatibility. | |
| 28 | + |
| 29 | +This sample is optimally compatible with the following environment configuration: |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | +-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1") |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | +## Applies to |
| 43 | + |
| 44 | +- [SharePoint Framework](https://aka.ms/spfx) |
| 45 | +- [Microsoft 365 tenant](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant) |
| 46 | + |
| 47 | +> Get your own free development tenant by subscribing to [Microsoft 365 developer program](http://aka.ms/o365devprogram) |
| 48 | +
|
| 49 | +## Prerequisites |
| 50 | + |
| 51 | +- Node.js v18.17.1 or compatible version |
| 52 | +- SharePoint Online environment |
| 53 | +- Site Collection Administrator permissions (for deployment) |
| 54 | + |
| 55 | +## Contributors |
| 56 | + |
| 57 | +-[@saiiiiiii](https://github.com/saiiiiiii) | |
| 58 | + |
| 59 | +## Version history |
| 60 | + |
| 61 | +| Version | Date | Comments | |
| 62 | +| ------- | ---- | -------- | |
| 63 | +| 1.0.0 | March 2026 | Initial release | |
| 64 | + |
| 65 | +## Disclaimer |
| 66 | + |
| 67 | +**THIS CODE IS PROVIDED _AS IS_ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +## Minimal Path to Awesome |
| 72 | + |
| 73 | +- Clone this repository |
| 74 | +- In the command-line run: |
| 75 | + - `npm install` |
| 76 | + - `gulp serve` |
| 77 | +- To deploy: |
| 78 | + - `gulp bundle --ship` |
| 79 | + - `gulp package-solution --ship` |
| 80 | + - Upload the `.sppkg` file to your App Catalog |
| 81 | + - Install the app on your site |
| 82 | + |
| 83 | + |
| 84 | +## References |
| 85 | + |
| 86 | +- [Getting started with SharePoint Framework](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant) |
| 87 | +- [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) |
| 88 | +- [PnPjs Documentation](https://pnp.github.io/pnpjs/) |
| 89 | + |
| 90 | +## Help |
| 91 | + |
| 92 | +If you encounter any issues while using this sample, [create a new issue](https://github.com/saiiiiiii/js-application-layout-customizer/issues/new). |
| 93 | + |
| 94 | +<img src="https://m365-visitor-stats.azurewebsites.net/sp-dev-fx-extensions/samples/js-application-layout-customizer" /> |
0 commit comments