I have worked on many sharepoint 2013 & 2016 on-premises sites. where i usually do the following modifications to the site collection master pages, as a first task:-
1- I move the site logo to be on the upper left hand side of the page.
2- I move the default search field to be on the upper right hand side of the page + i add the current date and time using javascript.
3- i also add bread crumb navigation, by adding this markup to the master pages:-
<asp:ContentPlaceHolder id="customBreadcrumb" runat="server">
<asp:SiteMapPath runat="server" SiteMapProvider="SPContentMapProvider" RenderCurrentNodeAsLink="false" NodeStyle-CssClass="breadcrumbNode" CurrentNodeStyle-CssClass="breadcrumbCurrentNode" RootNodeStyle-CssClass="breadcrumbRootNode" HideInteriorRootNodes="true" SkipLinkText=""/>
</asp:ContentPlaceHolder>
now i follow this appraoch:-
- i create a copy of the
seatle.master
master page. - then i do the modifications on the new master page.
- then i set the new master page as the custom & default master page for the site collections.
now i am starting a new sharepoint online project. and i have read many articles that modifying master page on sharepoint online should be avoided here is a Link, mainly for these main reasons:-
- Microsoft might update sharepoint online sites, so our custom master page might break.
- also if we create our own custom master pages, then any new features Microsoft apply will only be delivered to the built-in master page. so if we create a custom master page, then we might loose new features (i mean the UI for these new features will not be available to us).
- seems that defining a custom master page will not be applied on the modern list layout and it will only be applied to the classic mode. this is the major limitation for having custom master pages inside SP online i think.
so let say our customer asked us to do the above modifications inside SP online which are (move logo, move search box, add current time and date + add breadcrumb navigation). so should we mention to them that SP online does not support or does not recommend these types of modifications ? or we can implement some of them in a supported way?
Thanks