Documentation
If you have any questions or suggestions, feel free to drop us an email at contact@dashboardpack.com

Introduction

ArchitectUI React Pro

ArchitectUI React Pro is built with Vite and utilizes the latest versions of the React plugins included in the package.

Thanks to Vite, ArchitectUI benefits from sub-second cold starts, lightning-fast Hot Module Replacement (HMR), and optimized production builds powered by ESBuild and Rollup.

For stylesheets it uses SASS which allowed us to build a better, more modular and scalable styles architecture. The modular SCSS files are compiled, minified and bundled automatically using Vite.

All styles are standardised using react-bootstrap which is a Bootstrap 5 component library for React.

Installation

  1. Download and uncompress the theme package archive in your desired folder location.

  2. Download and install Node.js (v18.0 or later) from nodejs.org/en/download/

  3. Install the app dependencies by running the following command in the command line inside the folder root where you have unzipped the theme package archive.

    
        npm install
  4. After npm finishes installing the modules from package.json you can go ahead and start the application. To do so, run the command below.

    
        npm run dev

    After the command finishes, you should see a ready message in your terminal window with a local URL. Open http://localhost:5173 in your browser to view the app.

  5. To create a production optimised build run the command below:

    
        npm run build

    This creates a dist folder in the root of your project with the optimized production build. You can preview it locally with:

    
        npm run preview

Tech Stack

TechnologyDetails
React 19Latest React with Server Components support, Actions, and enhanced hooks
ViteNext-generation build tool with instant HMR and optimized builds
Bootstrap 5.3CSS framework with dark mode support, CSS custom properties, and responsive utilities
react-bootstrapBootstrap 5 components rebuilt for React with accessible, prop-driven APIs
React Router 7Client-side routing with nested layouts, loaders, and actions
SASSModular SCSS architecture for maintainable, customizable styles

File Structure

Folder PathDescription
srcHolds all the project source files
assetsbase.scss is the main stylesheet that imports all other stylesheets for components, elements, layouts and widgets. Contains The Architect Framework source SCSS stylesheets files.
DemoPagesIn this folder you can find all the examples from the demo. This is useful if you want to copy paste snippets of code from the theme demo.
├─ApplicationsApplications examples, found in the Demo navigation under "Applications" submenu.
├─ComponentsComponents examples, found in the Demo navigation under "Components" submenu.
├──FormForms elements and components examples, found in the Demo navigation under "Forms" section. They are split between the following sub-directories Components and Elements.
├──ChartsCharts elements and components examples, found in the Demo navigation under "Charts" section.
├── [...]Other components examples that don't have a parent folder. For example, Accordion, Calendar, Pagination, Progress Bar, etc
├─DashboardsDashboards examples, found in the Demo navigation under "Dashboards" submenu.
├─ElementsElements examples, found in the Demo navigation under "Elements" submenu.
├─MainThis contains the main app component wrapper. All others pass through this component. It also holds the div that accepts layout modifiers like fixed-sidebar, fixed-footer, etc
├─UserPagesPages examples, found in the Demo navigation under "Pages" submenu.
├─WidgetsWidgets examples, found in the Demo navigation under "Dashboard Widgets" section.
LayoutThis folder holds all the components that build the page layout wrapper.
storeThis folder holds all the theme's demo configuration. This can be removed if you don't want to use the theme configurator accessible from the settings button.

Stylesheets

All ArchitectUI stylesheets can be found in /src/assets/.

From base.scss you can choose for what elements, components, widgets stylesheets to include in your application.

For Example, if you won't be using the Sortable Tree component, you can remove its associated SCSS file by commenting out the import line like in the example below:


    // Calendar
    @import "architect/components/calendar/calendar";
    
    // Splitters
    @import "architect/components/splitters/splitters";
    
    // Tree View
    // @import "architect/components/tree-view/tree-view";
    
    // Tables
    @import "architect/components/tables/tables";
    
    // Icons
    @import "architect/components/icons/linearicons";
    @import "architect/components/icons/p7icons";
    
    // FORMS
    
    @import "architect/components/forms/datepicker/datepicker";
    @import "architect/components/forms/rangeslider/rangeslider";
    @import "architect/components/forms/multiselect/multiselect";
    @import "architect/components/forms/wysiwyg/wysiwyg";
    @import "architect/components/forms/toggle-switch/switch";
    @import "architect/components/forms/dropzone/dropzone";
    @import "architect/components/forms/typeahead/typeahead";

All components use the same variables for spacing or styling. We'll talk about style customization in the next section: Theming & Colors.

The React Components section contains the paths of SCSS files associated with each React component that's included in ArchitectUI.

Inside /src/assets/, folders are structured in a logical manner based on the element or component type, so you can easily find or remove the respective element or component. For example, all Bootstrap 5 related stylesheets can be found under /components/bootstrap5/.

Also, inside /src/assets/ you'll find a folder called demo-ui. This contains theme demo specific SCSS and should be removed in a live application because some of the styles written there are appliable for demo purposes only.

Layout Stylesheets

Layout stylesheets are located under /src/assets/layout folder. Inside you'll find folders logically split between the layout components: Layout Header, Sidebar, Main Content Area and so on.

Let's take the Header section as an example. Inside /layout/header/ folder you'll find two subfolders /modifiers and /themes.

The _header-base.scss contains some generic styling for the layout header component and all the imports from those two sub-folders.

  1. /modifiers/ - this folder contains all the modifiers for the header like fixed-header and also, the header components.

  2. /themes/ - based on the color choosen for the header component background, you can choose one of the two themes available:

    • _header-light.scss - should be used with a darker background color, this way the texts and icons will have a light color contrast
    • _header-dark.scss - should be used with a lighter background color, this way the texts and icons will have a dark color contrast

The /themes/ folder can be found for the following layout components: header, sidebar and main

Theming & Colors

ArchitectUI is built in a modalar and scalable manner. This means that you can easily modify theme variables and they will get propagated thorugh out the whole stylesheets architecture.

ArchitectUI is built around the latest version of Bootstrap 5.3 and respectively react-bootstrap (which is a React component library for Bootstrap 5).

All generic theme variables can be found in /src/assets/themes/_variables.scss.

To modify, for example, the generic colors scheme for common states like success, warning, primary, danger, info and so on, you'll have to modify the _variables.scss file as follows:


    
    // Colors
    
    $white: #fff;
    $gray-100: #f8f9fa;
    $gray-200: #e9ecef;
    $gray-300: #dee2e6;
    $gray-400: #ced4da;
    $gray-500: #adb5bd;
    $gray-600: #6c757d;
    $gray-700: #495057;
    $gray-800: #343a40;
    $gray-900: #212529;
    $black: #000;
    
    $grays: ();
    
    $grays: map-merge(
        (
                "100": $gray-100,
                "200": $gray-200,
                "300": $gray-300,
                "400": $gray-400,
                "500": $gray-500,
                "600": $gray-600,
                "700": $gray-700,
                "800": $gray-800,
                "900": $gray-900
        ),
        $grays
    );
    
    //--#{$color}
    $brand: #3f6ad8;
    $blue: #78C3FB;
    $indigo: #444054;
    $purple: #794c8a;
    $pink: #f65ca2;
    $red: #d92550;
    $orange: #fd7e14;
    $yellow: #f7b924;
    $green: #3ac47d;
    $teal: #16E0BD;
    $cyan: #28b0cd;
    $blue-light: #eeeeee;
    
    $primary: $brand;
    $secondary: $gray-600;
    $success: $green;
    $info: $cyan;
    $warning: $yellow;
    $danger: $red;
    $light: $blue-light;
    $dark: $gray-800;
    $focus: $indigo;
    $alt: $purple;
    
    $theme-colors: ();
    
    $theme-colors: map-merge(
          (
                  "primary": $primary,
                  "secondary": $secondary,
                  "success": $success,
                  "info": $info,
                  "warning": $warning,
                  "danger": $danger,
                  "light": $light,
                  "dark": $dark,
                  "focus": $focus,
                  "alternate": $alt
          ),
          $theme-colors
    );
                                                        

Layout Components Styles

Sidebar

You can modify the Sidebar component background style by adding one of the below CSS helpers to the .app-sidebar component. For example, if you want ot have a green style sidebar, you'll have to add bg-success as a CSS class to the div that has the app-sidebar CSS class.

  1. src/assets/layout/sidebar/themes/ - based on the color chosen for the sidebar component background, you can choose one of the two themes available:

    • _sidebar-light.scss - should be used with a darker background color, this way the texts and icons will have a light color contrast

      The CSS class that needs to be applied to .app-sidebar is text-sidebar-light.

    • _sidebar-dark.scss - should be used with a lighter background color, this way the texts and icons will have a dark color contrast

      The CSS class that needs to be applied to .app-sidebar is text-sidebar-dark.

Header

You can modify the Header component background style by adding one of the below CSS helpers to the .app-header component. For example, if you want ot have a warning state style header, you'll have to add bg-warning as a CSS class to the div that has the app-header CSS class.

  1. src/assets/layout/header/themes/ - based on the color chosen for the header component background, you can choose one of the two themes available:

    • _header-light.scss - should be used with a darker background color, this way the texts and icons will have a light color contrast.

      The CSS class that needs to be applied to .app-header is text-header-light.

    • _header-dark.scss - should be used with a lighter background color, this way the texts and icons will have a dark color contrast.

      The CSS class that needs to be applied to .app-header is text-header-dark.

Bootstrap 5 Variables

Architect comes with 9 different color schemes, located under /assets/themes/.

Stock, the default variables are loaded. To load a different color schemes for Bootstrap 5 variables, in /assets/themes/_layout-variables.scss, comment out the default variables @import "default/variables"; and uncomment a different variables scheme.

Colors Available

Hover over the color dots below to see what CSS class you need to apply for Header and Sidebar components for each style.

Remeber to use them in combination with _*-light.scss or _*-dark.scss

Solid Colors
Gradient Colors

Sidebar Background Images

You can define an image background that works together with the sidebar background colors to create beautiful app sidebar styles.

Inside the Sidebar component with CSS class app-sidebar you'll find another element with CSS class app-sidebar-bg. You can define a background iamge for this element, which will integrate perfectly with any other sidebar styles you have deifned

You can use one of the opacity CSS helpers integrated in ArchitectUI to create perfect effects. These opacity helpers can be found in /src/assets/utils/helpers/_opacity.scss. Try using small opacity for best effects, like opacity-05 for a 5% opacity.

Available Images

React Components

All React Components from ArchitectUI are imported and maintained in node_modules from package.json located in the project root.

For a better control, consistency, modularity and scalability, all style related resources are maintained and integrated from /src/assets/ folder.

React-Bootstrap

Bootstrap 5 components built with React

Calendar

An events calendar component built for React and made for modern browsers, using flexbox layout.

Swiper

Modern touch slider with hardware-accelerated transitions and native-like behavior

CountUp

A configurable React component wrapper around CountUp.js

Intersection Observer

React implementation of the Intersection Observer API for scroll-based visibility detection

SweetAlert2

Beautiful, responsive, customizable popup boxes for React

Toastify Notifications

React notification made easy

Data Tables

Lightweight, fast and extendable datagrid built for React

Perfect Scrollbar

A lightweight scrollbar plugin with native-like styling

Hamburger Buttons

Animated hamburger menu icons for toggling navigation

Timeline

Vertical timeline for React.js

Icons
FontAwesome 7

The web's most popular icon set and toolkit with 2,000+ free icons

Charts
Chart.js

Simple yet flexible JavaScript charting library with React wrapper

Recharts

Redefined chart library built with React and D3

Forms
Datepicker

A simple and reusable datepicker component for React

React Select

The Select Component for React.js

React Dropzone

Simple HTML5 drag-drop zone with React

Toggle Switch

A draggable toggle-switch component for React

Typeahead

React typeahead with Bootstrap styling

Layout Modifiers

ArchitectUI has built-in CSS helper classes that modify the layout components positions.

These CSS helper classes need to be added to the element that has the app-container CSS class. The path to the ArchitectUI App Container Component is: /src/DemoPages/Main/index.js.

Check out the available modifiers list below:

App Container Modifiers ( .app-container )
CSS Helper ClassModified ComponentDescription
fixed-headerHeader ( .app-header )Makes the Header Component positioned top fixed/sticky.
fixed-sidebarSidebar ( .app-sidebar )Makes the Sidebar Component positioned top and left fixed/sticky.
closed-sidebarSidebar ( .app-sidebar )Makes the Sidebar Component initially closed, with only the icons available. If the fixed-sidebar is active the Sidebar will open as an overlay over the main content.

If the Sidebar is static and not fixed, it will push the main content area to the right, on hover.

fixed-footerFooter ( .app-footer )Makes the Footer Component positioned bottom fixed/sticky.
body-tabs-shadow-btnPage Section Navigation ( .body-tabs-layout )When adding the body-tabs-shadow-btn CSS helper to the app-container element, the pages section sub-navigation menu will transform the tabs menu animated lines to animated pills.
app-theme-*Main SectionThere are two subtitle color schemes available on top of all the color themes for sidebar/header components: app-theme-white or app-theme-gray. These modify the color scheme for the main content area.

Their style can be modified from /src/assets/layout/main/themes.

Sidebar ( .app-sidebar )

These CSS helper classes need to be added to the element that has the app-sidebar CSS class. The path to the ArchitectUI Sidebar Container Component is: /src/Layout/AppSidebar/index.js.

Check out the available modifiers list below:

CSS Helper ClassModified ComponentDescription
sidebar-shadowSidebar ( .app-sidebar )Adds a drop shadow for the Sidebar Component.
Header ( .app-header )

These CSS helper classes need to be added to the element that has the app-header CSS class. The path to the ArchitectUI Header Container Component is: /src/Layout/AppHeader/index.js.

Check out the available modifiers list below:

CSS Helper ClassModified ComponentDescription
header-shadowHeader ( .app-header )Adds a drop shadow for the Header Component.

React Routing & Navigation

ArchitectUI uses React Router 7 for navigation: react-router. The Sidebar component main navigation uses a custom collapsible menu built with React-Bootstrap Accordion components.

The Demo navigation arrays are defined under /src/Layout/AppNav/NavItems.js


    
    export const MainNav = [{
        icon: 'pe-7s-rocket',
        label: 'Dashboards',
        content: [
            {
                label: 'Commerce',
                to: '/dashboards/commerce',
            },
            {
                label: 'Analytics',
                to: '/dashboards/analytics',
            },
            {
                label: 'Sales',
                to: '/dashboards/sales',
            },
            {
                label: 'CRM',
                to: '/dashboards/crm',
            }
        ],
    },
        {
            icon: 'pe-7s-browser',
            label: 'Pages',
            content: [
                {
                    label: 'Login',
                    to: '/pages-login',
                },
                {
                    label: 'Register',
                    to: '/pages-register',
                },
                {
                    label: 'Forgot Password',
                    to: '/pages-forgot-password',
                },
            ],
        },
        {
            icon: 'pe-7s-plugin',
            label: 'Applications',
            content: [
                {
                    label: 'Mailbox',
                    to: '/apps/mailbox',
                },
                {
                    label: 'Chat',
                    to: '/apps/chat',
                },
                {
                    label: 'FAQ Section',
                    to: '/apps/faq-section',
                },
            ],
        },
    ];

The navigation array constants are imported in /src/Layout/AppNav/VerticalNavWrapper.jsx


    import { NavLink, useLocation } from 'react-router';
    import { MainNav, ComponentsNav, FormsNav, WidgetsNav, ChartsNav } from './NavItems';
    
    function Nav() {
        const location = useLocation();
    
        return (
            <>
                <h5 className="app-sidebar__heading">Menu</h5>
                <VerticalMenu content={MainNav} location={location} />
                <h5 className="app-sidebar__heading">UI Components</h5>
                <VerticalMenu content={ComponentsNav} location={location} />
                <h5 className="app-sidebar__heading">Dashboard Widgets</h5>
                <VerticalMenu content={WidgetsNav} location={location} />
                <h5 className="app-sidebar__heading">Forms</h5>
                <VerticalMenu content={FormsNav} location={location} />
                <h5 className="app-sidebar__heading">Charts</h5>
                <VerticalMenu content={ChartsNav} location={location} />
            </>
        );
    }
    
    export default Nav;

We'll take as an example AppMain component, located in /src/Layout/AppMain/index.jsx


    
    import { Routes, Route } from 'react-router';
    
    // Demo Sections
    
    import Components from '../../DemoPages/Components/';
    import Elements from '../../DemoPages/Elements/';
    import Widgets from '../../DemoPages/Widgets/';
    
    
    function AppMain() {
        return (
            <Routes>
                <Route path="/components/*" element={<Components />} />
                <Route path="/elements/*" element={<Elements />} />
                <Route path="/widgets/*" element={<Widgets />} />
            </Routes>
        );
    }
    
    export default AppMain;