The extra pages in Ace's demo such as profile and login, are using common CSS classes and components and have no new elements, except a few additional CSS classes.
Profile page has a .sticky-nav element:
<div class="sticky-nav">
<ul class="nav nav-tabs ...">
...
</ul>
</div>
By listening to sticky-change event, when .sticky-nav becomes stuck, a is-stuck class is added to it to change the styling of .nav-tabs a little bit.
For more details see:
- Sticky Nav/Tabs
views/pages/page-profile/@page-style.cssviews/pages/page-profile/@page-script.js
Inbox page has no special elements.
The left side menu is .modal-off-sm modal box. It means, the modal (aside) functionality will be disabled on sm+ screen sizes:

<div id="aside-menu" class="modal fade modal-off-sm ace-aside aside-left">
...
</div>
Search results page has no special elements.
The left side filters menu is .modal-off-lg modal box. It means, the modal functionality will be disabled on lg+ screen sizes:

<div id="search-filters" class="modal fade modal-off-lg">
...
</div>
As you can see in
views/layouts/login/#index.hbs and views/pages/page-login/#index.hbs
the default login page layout is like this:
<div class="body-container">
<div class="main-container container bgc-transparent">
<div class="main-content minh-100 justify-content-center">
<div class="p-2 p-md-4">
<div class="row" id="row-1">
<div class="col-12 col-xl-10 offset-xl-1 bgc-white shadow radius-1 overflow-hidden">
<div class="row" id="row-2">
<!-- show the intro only in large (lg+) devices -->
<div class="col-lg-5 d-none d-lg-flex border-r-1 brc-default-l3 px-0">
{{> page/intro}}
</div>
<div class="col-12 col-lg-7 py-lg-5 bgc-white px-0">
<div class="tab-content tab-sliding border-0 p-0" data-swipe="right">
<div class="tab-pane active show mh-100 px-3 px-lg-0 pb-3" id="id-tab-login">
{{> page/login}}
</div>
<div class="tab-pane mh-100 px-3 px-lg-0 pb-3" id="id-tab-signup" data-swipe-prev="#id-tab-login">
{{> page/signup}}
</div>
<div class="tab-pane mh-100 px-3 px-lg-0 pb-3" id="id-tab-forgot" data-swipe-prev="#id-tab-login">
{{> page/forgot}}
</div>
</div><!-- .tab-content -->
</div>
</div><!-- /.row -->
</div><!-- /.col -->
</div><!-- /.row -->
<div class="d-lg-none my-3 text-white-tp1 text-center">
<i class="fa fa-leaf text-success-l3 mr-1 text-110"></i> Ace Company © 2020
</div>
</div>
</div><!-- /main -->
</div><!-- /.main-container -->
</div><!-- /.body-container -->
You can see each section inside views/pages/page-login/#index.hbs folder.
For the second login style (with no intro & welcome message), you should make the following changes:
- Remove the
.colelement containing intro (#id-col-intro) - Remove
col-lg-7classname from its sibling (#id-col-main) - Add
.justify-content-centerto.row#row-1- Remove
col-12 col-xl-10 offset-xl-1classname from its child.coland change it tocol-12 col-lg-6 col-xl-5or something similar
- Remove
- Optional: Inputs are inside
col-sm-10 offset-sm-1 col-md-8 offset-md-2 col-lg-6 offset-lg-3. It's better to removecol-lg-6 offset-lg-3for bigger input sizes - Optional: By default there are two title messages. One for desktop and one for mobile. Remove the desktop ones and only use mobile ones because this compact view is similar to mobile view
For the third login style (fullscreen), you should make the following changes:
- Remove
containerfrommain-container - Remove
justify-content-center minh-100from.main-contentand add optional padding classes likepx-4 px-lg-0- Remove padding classes from the child and add
d-flex flex-column flex-lg-row flex-grow-1 my-3 m-lg-0
- Remove padding classes from the child and add
- Add
flex-grow-1to.row#row-1- Remove
shadow radius-1 col-xl-10 offset-xl-1etc from its child.coland addd-lg-flexto it
- Remove
- Add
flex-grow-1to.row#row-2- Optionally change column sizing of
#id-col-introand#id-col-main - Add
d-flex align-items-center justify-content-centerto#id-col-main
- Optionally change column sizing of
<div class="body-container">
<div class="main-container bgc-white">
<div role="main" class="main-content px-4 px-lg-0">
<div class="d-flex flex-column flex-lg-row flex-grow-1 my-3 m-lg-0">
<div class="row">
<div class="d-none d-lg-flex col-lg-4">
{{> page/intro}}
</div>
<div class="col-lg-6 mx-auto d-flex align-items-center justify-content-center py-lg-5 px-0">
<div class="tab-content tab-sliding border-0 p-0" data-swipe="right">
...
</div>
</div>
</div>
</div>
</div><!-- /main -->
</div><!-- /.main-container -->
</div><!-- /.body-container -->
data-swipe="right" and data-swipe-prev="#id-tab-login" attributes, please see:
Sliding Tabs
views/pages/page-login/@page-style.css
for additional styles used in login page.
Pricing doesn't contain any extra elements or CSS classes.
Error page doesn't contain any extra elements or CSS classes.
Landing pages have no extra elements or special layout except a few CSS classes that you can see in:
views/pages/landing-page-1/@page-style.css
An extra .navbar-compact class is defined, to make navbar compact and add a shadow to .navbar-inner.
.navbar-compactis added to .navbar as we scroll down and the optional #scroll-down element goes out of view (using IntersectionObserver).
It gets removed when we scroll back up and the optional #scroll-up element reaches top of window.
See views/pages/landing-page-1/@page-script.js for more info.
#scroll-down is an optional element and has only the top CSS property.We set its top value equal to height of
.page-intro so when we scroll down enough
below .page-intro , #scroll-down also gets out of view and then we make navbar fixed and compact!
Themes
In landing page 1, there are two .navbar and two .page-intro elements.
One is for the dark version and the other for light version.
👉 But you should only have one .navbar and one .page-intro.
You can change the theme using the select box.
It changes the theme class of navbar and uses the same navbar theme class for .page-intro
<div id="navbar-dark" class="navbar ... navbar-darkblue">
...
</div>
<div id="pageintro-dark" class="page-intro ... navbar-darkblue">
....
</div>
There are some extra CSS rules to resize/position background images for header and footer according to screen size.
See views/pages/landing-page-2/@page-style.css
It has .countdown-items and .countdown-item elements used to change their size according to screen size.
See views/pages/coming-soon/@page-style.css