summaryrefslogtreecommitdiff
path: root/docs/themes
diff options
context:
space:
mode:
Diffstat (limited to 'docs/themes')
-rw-r--r--docs/themes/customize.md187
-rw-r--r--docs/themes/env.md149
-rw-r--r--docs/themes/readme.md339
3 files changed, 0 insertions, 675 deletions
diff --git a/docs/themes/customize.md b/docs/themes/customize.md
deleted file mode 100644
index 763333d9..00000000
--- a/docs/themes/customize.md
+++ /dev/null
@@ -1,187 +0,0 @@
-# How to customize
-Customization of the application requires knowledge of Sass and CSS. It also
-will require becoming familiar with the Bootstrap and Bootstrap-Vue component
-libraries. This section outlines the global options and variables that can be
-removed or updated to meet organizational brand guidelines.
-
-## Environment specific builds
-Any organization can create a build that meets their branding and other
-customization needs. This includes customization of the state store, routing,
-application navigation, and theming.
-
-### Configuring environment specific builds
-The complete instructions can be found in the `env` directory in a file called
-env.md or by viewing the [Configuring environment specific builds
-page](./env.md)
-
-## Bootstrap Sass Options
-The Bootstrap Sass options are global styling toggles. The naming convention for
-these built-in variables is `enabled-*`.
-
-### $enable-rounded
-This option enables or disables the border-radius styles on various components.
-
-- Set to `false` to remove rounded corners on all container elements and buttons
-
-### $enable-validation-icons
-This option enables or disables background-image icons within textual inputs and
-some custom forms for validation states.
-
-- Set to `false` due to inability to style icons using CSS
-
-### More information
-- [View all the Bootstrap Sass
- Options](https://getbootstrap.com/docs/4.2/getting-started/theming/#sass-options)
-
-## Bootstrap Sass Variables
-These are global variables that Bootstrap defines in the
-`/node_modules/bootstrap/scss/variables.scss` helper file. Adding a variable
-listed in this file to the `/src/assets/styles/bmc/helpers/_variables.scss` file
-will override the Bootstrap defined value.
-
-### $transition-base
-This variable sets the base CSS transition style throughout the application.
-- Set to `all $duration--moderate-02 $standard-easing--productive`
-
-### $transition-fade
-This variable sets the transition when showing and hiding elements.
-
-- Set to `opacity $duration--moderate-01 $standard-easing--productive`
-
-### $transition-collapse
-This variable sets the CSS transitions throughout the application when expanding
-and collapsing elements.
-
-- Set to `height $duration--slow-01 $standard-easing--expressive`
-
-### More Information
-- [Carbon Design System Motion
- Guidelines](https://www.carbondesignsystem.com/guidelines/motion/basics/)
-- [Including Animation In Your Design
- System](https://www.smashingmagazine.com/2019/02/animation-design-system/)
-
-## OpenBMC Custom Sass Options
-
-### $responsive-layout-bp
-This variable determines when the primary navigation is hidden and when the
-hamburger menu is displayed. The breakpoint is defined using a Bootstrap
-function that only accepts a key from the Bootstrap `$grid-breakpoints` map.
-
-- xs - Navigation is always displayed
-- sm - Navigation displayed when the viewport is greater than 576px
-- md - Navigation displayed when the viewport is greater than 768px
-- lg - Navigation displayed when the viewport is greater than 992px
-- xl - Navigation displayed when the viewport is less than 1200px
-
-#### Responsive Resources
-- [Bootstrap responsive
- breakpoints](https://getbootstrap.com/docs/4.0/layout/overview/#responsive-breakpoints)
-- [Bootstrap Sass
- Mixins](https://getbootstrap.com/docs/4.0/layout/overview/#responsive-breakpoints)
-- [Customizing the Bootstrap
- Grid](https://getbootstrap.com/docs/4.0/layout/overview/#responsive-breakpoints)
-
-### $header-height
-This variable determines the height of the OpenBMC Web UI header element.
-
-- Default value: 56px
-
-### $navigation-width
-This variable determines the width of the primary navigation menu when expanded.
-
-- Default value: 300px
-
-### $container-bgd
-This option sets the background of page containers. Changing the value of this
-variable will change the background color for the following elements:
-- Login page
-- Primary navigation section
-- Quick links section on the overview page
-
-#### Value
-- Default value: $gray-200
-
-### $primary-nav-hover
-The semantic naming of this variable identifies its purpose. This color should
-always be slightly darker than the `$container-bgd` value.
-
-- Default value: $gray-300
-
-## Updating Colors
-Supporting a different color palette is a simple process. The default color
-palette is supported using the Sass variables outlined in the color guidelines
-and color maps outlined in the theme's overview. The following sections provide
-directions to update the settings to meet your organization's needs.
-
-### Color
-The OpenBMC Web UI uses Sass variables and maps to build its layout and
-components. Bootstrap variables and maps use the `!default` flag to allow for
-overrides. There are three Sass maps created to establish the color palette.
-These include the `color` map, `theme-color` map, and `gray` map. These maps are
-used by Bootstrap to build the application's CSS stylesheets.
-
-#### All Colors
-The OpenBMC Web UI custom colors are available as Sass variables and a Sass map
-in `/src/assets/styles/bmc/helpers/_variables.scss`. The OpenBMC theme only
-requires a subset of the colors to create the look and feel of the application.
-Adding, removing, or updating the color variables and map is how the application
-color palette can be customized. Using these variables outside of the helper
-files is discouraged to avoid tightly coupling the OpenBMC Web UI theme to
-specific colors.
-
-The `color` map is not as important as the `theme-color` map. A tight-coupling
-of the Sass variable name to the color name makes it hard to use the `color` map
-keys for customization. Using these keys in Sass stylesheets or single-file
-components is discouraged.
-
-#### Theme Colors
-The theme color variables and the `theme-color` map consist of a subset of the
-color variables. This smaller color palette creates a scheme that is not
-dependent on specific colors like blue or green. Several of the Bootstrap
-`theme-color` map keys are required to generate the CSS styles. The OpenBMC Web
-UI `theme-color` map has the same keys as the Bootstrap `theme-color` map with
-custom values.
-
-The `theme-color` map is used heavily throughout the application. The
-Bootstrap-Vue components `variant` prop also utilizes the `theme-color` map.
-This map is the key to customizing the application's color palette. Take a look
-at the [color guidelines](/guide/guidelines/colors) to better understand default
-theme-colors map.
-
-#### Gray Colors
-The gray color palette contains nine shades of gray that range from light to
-dark. Bootstrap sets a default gray color value for each color variable from
-100-900 in increments of one hundred, for example, `$gray-100`, `$gray-200`,
-`$gray-300` through `gray-900`. Bootstrap does not create a color map for any of
-the colors except gray. The Bootstrap documentation indicates that adding color
-maps for all the default colors is scheduled to be delivered in a future patch.
-The OpenBMC Web UI color theme overrides all shades of the Bootstrap default
-gray variable values.
-
-[Learn more about Bootstrap
-colors](https://getbootstrap.com/docs/4.0/getting-started/theming/#color)
-
-### Bootstrap Color Functions
-- `color('<color map key>)`
-- `theme-color('<theme color map key>)`
-- `gray('<gray color palette key'>)`
-
-
-#### Example
-```SCSS
-.some-selector {
- color: color("blue");
- background: theme-color("light");
- border: 1px solid gray("900")
-}
-```
-
-[Learn more about using Bootstrap
-functions](https://getbootstrap.com/docs/4.0/getting-started/theming/#functions)
-## Adding a logo
-The updated page header can include a small logo. The guidelines for adding a
-logo and the suggested logo dimensions are currently in progress. It may be
-challenging to meet all organization brand guidelines due to the minimal height
-of the page header. The company logo might be able to be set in the primary
-navigation, but a design supporting that option will be the focus of future
-design work.
diff --git a/docs/themes/env.md b/docs/themes/env.md
deleted file mode 100644
index fb1a7562..00000000
--- a/docs/themes/env.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# Configuring environment specific builds
-
-This document provides instructions for how to add environment specific
-modifications to the Web UI.
-
-- [Setup](#setup)
-- [Store](#store)
-- [Router](#router)
-- [App Navigation](#app-navigation)
-- [Theming](#theming)
-- [Local development](#local-development)
-- [Production build](#production-build)
-
-## Setup
-
-1. Create a `.env.<ENV_NAME>` file in the project root
-2. Add `NODE_ENV=production` key value pair in the file
-3. Add `VUE_APP_ENV_NAME` key with the value set to the new environment name
-
-Example `.env.ibm`:
-
-```
-NODE_ENV=production
-VUE_APP_ENV_NAME=ibm
-```
-
-## Store
-
-> [Vuex store modules](https://vuex.vuejs.org/guide/modules.html) contain the
-> application's API calls.
-
-1. If making customizations to the default store, add `CUSTOM_STORE=true` key
- value pair to the new .env file.
-2. Create a `<ENV_NAME>.js` file in `src/env/store`
- > The filename needs to match the `VUE_APP_ENV_NAME` value defined in the
- > .env file. The store import in `src/main.js` will resolve to this new
- > file.
-3. Import the base store
-4. Import environment specific store modules
-5. Use the [Vuex](https://vuex.vuejs.org/api/#registermodule) `registerModule`
- and `unregisterModule` instance methods to add/remove store modules
-6. Add default export
-
-Example `src/env/store/ibm.js`:
-
-```
-import store from '@/store; //@ aliases to src directory
-import HmcStore from './Hmc/HmcStore';
-
-store.registerModule('hmc', HmcStore);
-
-export default store;
-```
-
-## Router
-
-> [Vue Router](https://router.vuejs.org/guide/) determines which pages are
-> accessible in the UI.
-
-1. If making customizations to the default router, add `CUSTOM_ROUTER=true` key
- value pair to the new .env file.
-2. Create a `<ENV_NAME>.js` file in `src/env/router`
- > The filename needs to match the `VUE_APP_ENV_NAME` value defined in the
- > .env file. The routes import in `src/router/index.js` will resolve to this
- > new file.
-3. Define new [routes](https://router.vuejs.org/api/#routes).
- > Use static imports (over lazy-loading routes) to avoid creating separate
- > JS chunks. Static imports also helps to keep the total build size down.
-4. Add default export
-
-## App navigation
-
-The Vue Router definition is closely tied to the app navigation but should be
-configured separately. The Vue Router is responsible for defining the
-application routes which is not always the same as what is visible in the app
-navigation. This configuration will make customizations to the rendered markup
-in src/components/AppNavigation/AppNavigation.vue.
-
-1. If making customizations to the app navigation, add `CUSTOM_APP_NAV=true` key
- value pair to the new .env file.
-2. Create a `<ENV_NAME>.js` file in `src/env/components/AppNavigation`
- > The filename needs to match the `VUE_APP_ENV_NAME` value defined in the
- > .env file. The AppNavigationMixin import in
- > `src/components/AppNavigation/AppNavigation.vue` will resolve to this new
- > file.
-3. Your custom mixin should follow a very similar structure to the default
- AppNavigationMixin.js file. It should include a data property named
- `navigationItems` that should be an array of of navigation objects. Each
- navigation object should have an `id` and `label` property defined.
- Optionally it can include `icon`, `route`, or `children` properties.
-4. Add default export
-
-## Theming
-
->[Bootstrap theming](https://getbootstrap.com/docs/4.5/getting-started/theming/)
->allows for easy visual customizations.
-
-1. If making customizations to the default styles, add `CUSTOM_STYLES=true` key
- value pair to the new .env file.
-2. Create a `_<ENV_NAME>.scss` partial in `src/env/assets/styles`
- > The filename needs to match the `VUE_APP_ENV_NAME` value defined in the
- > .env file. The webpack sass loader will attempt to import a file with this
- > name.
-3. Add style customizations. Refer to [bootstrap
- documentation](https://getbootstrap.com/docs/4.5/getting-started/theming/)
- for details about [color
- overrides](https://getbootstrap.com/docs/4.5/getting-started/theming/#variable-defaults)
- and [other customizable
- options](https://getbootstrap.com/docs/4.5/getting-started/theming/#sass-options).
-
-Example for adding custom colors
-
-`src/env/assets/styles/_ibm.scss`
-
-```
-// Custom theme colors
-
-$primary: rebeccapurple;
-$success: lime;
-```
-
-## Local development
-
-1. Add the same `VUE_APP_ENV_NAME` key value pair to your
- `env.development.local` file.
-2. Use serve script
- ```
- npm run serve
- ```
-
-## Production build
-
-Run npm build script with vue-cli `--mode` [option
-flag](https://cli.vuejs.org/guide/mode-and-env.html#modes). This requires
-[corresponding .env file to exist](#setup).
-
-
-```
-npm run build -- --mode ibm
-```
-
-
-**OR**
-
-pass env variable directly to script
-
-```
-VUE_APP_ENV_NAME=ibm npm run build
-``` \ No newline at end of file
diff --git a/docs/themes/readme.md b/docs/themes/readme.md
deleted file mode 100644
index bc4d7648..00000000
--- a/docs/themes/readme.md
+++ /dev/null
@@ -1,339 +0,0 @@
-
-# Overview
-
- This section discusses the structure and purpose of the theme files and how to
- customize the application using Bootstrap theming.
-
-[Read more about Bootstrap
-Theming](https://getbootstrap.com/docs/4.0/getting-started/theming)
-
-
-## SCSS File Structure
-```
-.
-├─ src
- ├─ assets
- ├─ styles
- ├─ bmc
- ├─ custom
- └─ helpers
- ├─ bootstrap
- ├─ _helpers.scss
- └─ _obmc-custom.scss
-```
-
-## bmc
-This folder contains Sass helpers and default styles for customizing the OpenBMC
-Web UI.
-
-```
-.
-├─ src
- ├─ assets
- ├─ styles
- ├─ bmc
- ├─ custom
- ├─ alert.scss
- ├─ _badge.scss
- ├─ _base.scss
- ├─ _bootstrap-grid.scss
- ├─ _buttons.scss
- ├─ _calendar.scss
- ├─ _card.scss
- ├─ _dropdown.scss
- ├─ _forms.scss
- ├─ _index.scss
- ├─ _kvm.scss
- ├─ _modal.scss
- ├─ _pagination.scss
- ├─ _sol.scss
- ├─ _tables.scss
- └─ _toasts.scss
- └─ helpers
- ├─ _colors.scss
- ├─ _functions.scss
- ├─ _index.scss
- ├─ _motion.scss
- └─ _variables.scss
-```
-### custom
-The `custom` directory imports all the styles needed to customize the UI. These
-are small changes used to reach parity with the OpenBMC Design Workgroup's
-agreed-upon design. The file naming convention closely follows the Bootstrap or
-Boostrap-vue library file naming since most of the ruleset selectors in these
-files are based on these two libraries.
-
-### helpers
-The helper's folder contains a set of Sass helper files containing Sass
-variables that establish the custom theme of the application.
-
-#### _colors.scss
-The colors.scss file sets all the SASS variables and color maps for the OpenBMC
-Web UI. Any color settings needed to meet company brand guidelines will happen
-in this file.
-
-##### Sass Color Variables
-```scss
-$black: #000;
-$white: #fff;
-
-$blue-500: #2d60e5;
-$green-500: #0a7d06;
-$red-500: #da1416;
-$yellow-500: #efc100;
-
-$gray-100: #f4f4f4;
-$gray-200: #e6e6e6;
-$gray-300: #d8d8d8;
-$gray-400: #cccccc;
-$gray-500: #b3b3b3;
-$gray-600: #999999;
-$gray-700: #666666;
-$gray-800: #3f3f3f;
-$gray-900: #161616;
-```
-
-##### Custom Color Variables
-```scss
-// Sass Base Color Variables
-$blue: $blue-500;
-$green: $green-500;
-$red: $red-500;
-$yellow: $yellow-500;
-```
-
-##### Custom Colors Map
-```scss
-$colors: (
- "blue": $blue,
- "green": $green,
- "red": $red,
- "yellow": $yellow,
-);
-```
-
-##### Custom Theme Color Variables
-```scss
-// Sass Theme Color Variables
-// Can be used as variants
-$danger: $red;
-$dark: $gray-900;
-$info: $blue;
-$light: $gray-100;
-$primary: $blue;
-$secondary: $gray-800;
-$success: $green;
-$warning: $yellow;
-```
-
-##### Custom Theme Colors Map
-```scss
-$theme-colors: (
- "primary": $primary,
- "secondary": $secondary,
- "dark": $dark,
- "light": $light,
- "danger": $danger,
- "info": $info
- "success": $success
- "warning": $warning,
-);
-```
-##### Color Resources
-- [Learn more about Bootstrap
- colors](https://getbootstrap.com/docs/4.0/getting-started/theming/#color)
-- [Learn more about Bootstrap
- variables](https://getbootstrap.com/docs/4.0/getting-started/theming/#css-variables)
-- [View the color palette and hex values in the color
- guidelines](/guide/guidelines/colors)
-
-#### _functions.scss
-Two functions provide a customized way to set color highlights. The
-`theme-color-light` and `theme-color-dark` are custom functions used to create
-colors for the `alert`, `badge`, `card`, and `toast` components. They have also
-set color highlights for some pseudo-elements like `: hover`.
-
-##### Functions
-```scss
-// This function is usually used to get a lighter
-// theme variant color to use as a background color
-@function theme-color-light($variant) {
- @return theme-color-level($variant, -11.3);
-}
-
-@function theme-color-dark($variant) {
- @return theme-color-level($variant, 2);
-}
-```
-
-##### Examples
-```scss{8-10,16}
-.b-table-sort-icon-left {
- background-position: left calc(1.5rem / 2) center !important;
- padding-left: calc(1.2rem + 0.65em) !important;
- &:focus {
- outline: none;
- box-shadow: inset 0 0 0 2px theme-color('primary') !important;
- }
- &:hover {
- background-color: theme-color-dark('light');
- }
- }
-}
-
-&.alert-info {
-border-left-color: theme-color("info");
-background-color: theme-color-light("info");
-fill: theme-color("info");
-}
-```
-
-#### _motion.scss
-This bezier curves and durations in this file determine the motion styles
-throughout the application. These guidelines from the Cabon Design System avoid
-easing curves that are unnatural, distracting, or purely decorative.
-
-##### Motion Styles
-```scss
-$duration--fast-01: 70ms; //Micro-interactions such as button and toggle
-$duration--fast-02: 110ms; //Micro-interactions such as fade
-$duration--moderate-01: 150ms; //Micro-interactions, small expansion, short distance movements
-$duration--moderate-02: 240ms; //Expansion, system communication, toast
-$duration--slow-01: 400ms; //Large expansion, important system notifications
-$duration--slow-02: 700ms; //Background dimming
-
-$standard-easing--productive: cubic-bezier(0.2, 0, 0.38, 0.9);
-$standard-easing--expressive: cubic-bezier(0.4, 0.14, 0.3, 1);
-$entrance-easing--productive: cubic-bezier(0, 0, 0.38, 0.9);
-$entrance-easing--expressive: cubic-bezier(0, 0, 0.3, 1);
-$exit-easing--productive: cubic-bezier(0.2, 0, 1, 0.9);
-$exit-easing--expressive: cubic-bezier(0.4, 0.14, 1, 1);
-```
-
-##### Example
-```scss{6,9}
-.link-skip-nav {
- position: absolute;
- top: -60px;
- left: 0.5rem;
- z-index: $zindex-popover;
- transition: $duration--moderate-01 $exit-easing--expressive;
- &:focus {
- top: 0.5rem;
- transition-timing-function: $entrance-easing--expressive;
- }
-}
-```
-##### Motion Resources
-- [Including Animation In Your Design
- System](https://www.smashingmagazine.com/2019/02/animation-design-system/)
-- [Carbon Design System motion
- guidelines](https://www.carbondesignsystem.com/guidelines/motion/basics/)
-
-#### _variables.scss
-This file contains all the global Sass options. There are Bootstrap option
-overrides, Bootstrap global variable overrides, and custom BMC global variables.
-Read more about these in the [theme customization section](/themes/customize).
-
-### bootstrap
-The `bootstrap` directory contains all the import references. The references are
-split into multiple files to support import order based on dependency. Helper
-styles need to be imported before all other styles.
-
-```
-.
-├─ src
- ├─ assets
- ├─ styles
- ├─ bootstrap
- ├─ _helpers.scss
- └─ _index.scss
-```
-#### _helpers.scss
-This file contains all the helper import references for Bootstrap.
-
-#### _index.scss
-This file contains all the import references needed to support the base,
-components, and utility styles.
-
-### _helpers.scss
-```
-.
-├─ src
- ├─ assets
- ├─ styles
- ├─ _helpers.scss
-```
-The `_helpers.scss` file is an import file needed when building single-file
-components that require the use of BMC or Bootstrap Sass variables and
-functions. This file needs to be imported as part of the `<style>` block to
-support Sass compilation. Although it is possible to prepend these helpers in
-webpack, it will break any use of imported single-file components used in the
-Vuepress documentation.
-
-### _obmc-custom.scss```
-```
-.
-├─ src
- ├─ assets
- ├─ styles
- └─ _obmc-custom.scss
-```
-The `obmc-custom.scss` file defines all of the presentational layer
-dependencies.
-
-- [Read more about Bootstrap
- options](https://getbootstrap.com/docs/4.0/getting-started/theming/#sass-options)
-- [Read more about
- Importing](https://getbootstrap.com/docs/4.0/getting-started/theming/#importing)
-
-## Component / View Styles
-
-Some stylistic changes only apply to a single-file component or view instance.
-In this case, rather than adding a Sass file, the scoped styles include the
-styles in the component's `<style>` block. It is required to import the
-`_helpers` Sass file when using a BMC or Bootstrap variable in the component's
-`<style>` block. Without this import, webpack cannot compile the OpenBMC Web UI
-CSS styles correctly.
-
-
-### Scoped style block using SASS
-```html
-<style scoped lang="scss">
- ...
-</style>
-```
-
-### Scoped style block using CSS
-```html
-<style scoped>
- ...
-</style>
-```
-
-### Example - PageSection.vue
-```html
-<style lang="scss" scoped>
-.page-section {
- margin-bottom: $spacer * 2;
-}
-
-h2 {
- @include font-size($h3-font-size);
- margin-bottom: $spacer;
- &::after {
- content: '';
- display: block;
- width: 100px;
- border: 1px solid $gray-300;
- margin-top: 10px;
- }
-}
-</style>
-```
-
-:::tip
-You might notice that there is an HTML element, `<h2>`, used in the example. This is an anti-pattern in global `.scss` files. However, in a single file component that generates the markup it is acceptable.
-:::
-
-[Learn more about single file components](https://vuejs.org/v2/guide/single-file-components.html)