diff --git a/.github/workflows/deploy-github-pages.yml b/.github/workflows/deploy-github-pages.yml index a1699e3..1f7fbac 100644 --- a/.github/workflows/deploy-github-pages.yml +++ b/.github/workflows/deploy-github-pages.yml @@ -3,6 +3,9 @@ name: Deploy GitHub Pages preview on: workflow_dispatch: +# Note: GitHub Pages must be enabled on the repository with "GitHub Actions" as the source +# (Settings → Pages → Build and deployment → Source → GitHub Actions) +# Fork contributors must enable this on their fork before running this workflow. permissions: contents: read pages: write diff --git a/.gitignore b/.gitignore index f697378..12be62a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,19 +1,15 @@ - -# OS and IDE generated files # -############################## +# OS and IDE generated files .DS_Store .vscode .history .idea .editorconfig .cursor +.claude/ -# npm yarn +# npm node_modules -package.lock -yarn-error.log -.pnp.* -.yarn/* +package-lock.json # gatsby files .env @@ -27,14 +23,16 @@ cypress/screenshots # lerna lerna-debug.log -# local actions -.actrc -.secrets -local-test.yml +# static +_site + +# Super-linter outputs +super-linter-output +super-linter.log -# yalc -.yalc -yalc.lock +# GitHub Actions leftovers +github_conf -# local +# local dev tmp +linter-report.txt diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc new file mode 100644 index 0000000..ee4126d --- /dev/null +++ b/.markdownlint-cli2.jsonc @@ -0,0 +1,12 @@ +{ + // Ignore files referenced by .gitignore (only valid at root) + "gitignore": true, + + // Define glob expressions to ignore + "ignores": [ + "node_modules/", + "coverage/", + ".github/", + "src/pages/config.md" + ] +} diff --git a/.markdownlint.yml b/.markdownlint.yml index 1c9f0fb..d250e1d 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -18,8 +18,7 @@ MD007: false MD013: false # MD024/no-duplicate-heading - Multiple headings with the same content -MD024: - siblings_only: true +MD024: false # MD025/single-title/single-h1 - Multiple top-level headings in the same document MD025: @@ -37,19 +36,19 @@ MD033: - InlineAlert - Edition - SuperHero + - CodeBlock + - Fragment + - Cards + - HorizontalLine # MD034/no-bare-urls - Bare URL used MD034: false -# MD035/hr-style - Horizontal rule style -MD035: - style: "---" - # MD041/first-line-heading/first-line-h1 - First line in file should be a top level heading MD041: false # MD045/no-alt-text - Images should have alternate text -MD045: false +MD045: true # MD046/code-block-style - Code block style MD046: @@ -66,5 +65,17 @@ MD049: false MD050: style: asterisk +# MD052/reference-links-images - Reference links and images should have a title attribute (disabled for flexibility) +MD052: false + +# MD054/link-image-style - Link and image style (disabled for flexibility) +MD054: + autolink: false + url_inline: false + +# MD055/table-pipe-style - Require leading and trailing pipes (matches AM023) +MD055: + style: leading_and_trailing + # MD060/table-column-style - Table column style (disabled for flexible formatting) MD060: false diff --git a/dev.mjs b/dev.mjs deleted file mode 100644 index 84605fa..0000000 --- a/dev.mjs +++ /dev/null @@ -1,39 +0,0 @@ -// content/docs -// serve static on 3001 - -import express from 'express'; -import fs from 'fs'; -import path from 'path'; -import { fileURLToPath } from 'url'; -import { execSync } from 'child_process'; - -const __dirname = path.dirname(fileURLToPath(import.meta.url)); - -const PORT = process.env.DEV_PORT || 3003; - -const getCurrentBranch = () => { - try { - return execSync('git branch --show-current', { encoding: 'utf8' }).trim(); - } catch (error) { - console.warn('Could not determine git branch, defaulting to "main"'); - return 'main'; - } -}; - -const currentBranch = getCurrentBranch(); -const DOCS_DIRECTORY = process.env.DIRECTORY || './src/pages'; - -const app = express(); -console.log(path.resolve(__dirname, `./${DOCS_DIRECTORY}`)); -app.use( - express.static(path.resolve(__dirname, `./${DOCS_DIRECTORY}`), { - setHeaders: (res) => { - res.setHeader('last-modified', new Date().toGMTString()); - res.setHeader('local-branch-name', currentBranch); - }, - }), -); - -app.listen(PORT, () => { - console.debug(`Docs dev server is running on port ${PORT}`); -}); \ No newline at end of file diff --git a/package.json b/package.json index 9165e0b..14dd560 100644 --- a/package.json +++ b/package.json @@ -6,18 +6,24 @@ "type": "git", "url": "https://github.com/AdobeDocs/commerce-admin-developer" }, - "config": { - "sitePath": "commerce/admin-developer" - }, "scripts": { - "dev": "node ./dev.mjs", + "dev": "npx --yes github:AdobeDocs/adp-devsite-utils dev", + "buildNavigation": "npx --yes github:AdobeDocs/adp-devsite-utils buildNavigation -v", + "buildRedirections": "npx --yes github:AdobeDocs/adp-devsite-utils buildRedirections -v", + "renameFiles": "npx --yes github:AdobeDocs/adp-devsite-utils renameFiles -v", + "normalizeLinks": "npx --yes github:AdobeDocs/adp-devsite-utils normalizeLinks -v", + "buildSiteWideBanner": "npx --yes github:AdobeDocs/adp-devsite-utils buildSiteWideBanner -v", + "buildSiteMetadata": "npx --yes github:AdobeDocs/adp-devsite-utils buildSiteMetadata -v", + "buildContributors": "npx --yes github:AdobeDocs/adp-devsite-utils buildContributors -v", "lint": "npx --yes github:AdobeDocs/adp-devsite-utils runLint -v", + "lint:errorOnly": "npx --yes github:AdobeDocs/adp-devsite-utils runLint", + "link:externalLinkOnly": "npx --yes github:AdobeDocs/adp-devsite-utils runLint --external-links-only -v", + "link:checkAllLinks": "npx --yes github:AdobeDocs/adp-devsite-utils runLint --internal-links-only --external-links-only -v", + "redirectCheck:stage": "npx --yes github:AdobeDocs/adp-devsite-utils redirectChecker stage --verbose", + "redirectCheck:prod": "npx --yes github:AdobeDocs/adp-devsite-utils redirectChecker prod --verbose", "lint:md": "npx --yes markdownlint-cli2 'src/pages/**/*.md' '*.md'", "lint:md:fix": "npx --yes markdownlint-cli2 --fix 'src/pages/**/*.md' '*.md'", "test": "npx --yes jest", "test:config": "npx --yes jest tests/config.test.js" - }, - "devDependencies": { - "express": "5.2.1" } } diff --git a/src/pages/adp-site-metadata.json b/src/pages/adp-site-metadata.json new file mode 100644 index 0000000..59fd870 --- /dev/null +++ b/src/pages/adp-site-metadata.json @@ -0,0 +1 @@ +{"total":3,"offset":0,"limit":3,"data":[{"key":"contributors","value":"src/pages/contributors.json"},{"key":"get-credentials","value":null},{"key":"site-wide-banner","value":null}],":type":"sheet"} \ No newline at end of file diff --git a/src/pages/contributors.json b/src/pages/contributors.json new file mode 100644 index 0000000..949def9 --- /dev/null +++ b/src/pages/contributors.json @@ -0,0 +1 @@ +{"total":53,"offset":0,"limit":53,"data":[{"page":"/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/11652541?v=4","https://avatars.githubusercontent.com/u/57922?v=4"],"lastUpdated":"11/12/2025"},{"page":"/config","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4"],"lastUpdated":"11/17/2025"},{"page":"/pattern-library/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/12731225?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/containers/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/containers/slideouts-modals-overlays","avatars":["https://avatars.githubusercontent.com/u/38460853?v=4","https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/6391769?v=4"],"lastUpdated":"3/12/2026"},{"page":"/pattern-library/containers/static-content","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"10/28/2024"},{"page":"/pattern-library/containers/tabs","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/controls/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/controls/button-bar","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"10/28/2024"},{"page":"/pattern-library/controls/buttons","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/controls/expand-collapse","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"10/28/2024"},{"page":"/pattern-library/controls/view-controller","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/displaying-data/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/displaying-data/datatable","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/displaying-data/filters","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/12/2025"},{"page":"/pattern-library/displaying-data/tile","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"10/28/2024"},{"page":"/pattern-library/displaying-data/tree","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"10/28/2024"},{"page":"/pattern-library/feedback-to-user/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/feedback-to-user/progress-indicator","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/13/2025"},{"page":"/pattern-library/general/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/general/accessibility-guidelines","avatars":["https://avatars.githubusercontent.com/u/38460853?v=4","https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"3/12/2026"},{"page":"/pattern-library/getting-user-input/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/getting-user-input/date-time-selector","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/getting-user-input/form-elements","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/getting-user-input/image-uploader","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/getting-user-input/row-pattern","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/getting-user-input/select-from-list","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/getting-user-input/use-default-config","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/graphics/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/graphics/iconography","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/navigation/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/navigation/links","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/pattern-library/navigation/wizard","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"10/28/2024"},{"page":"/pattern-library/staging-patterns/","avatars":["https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"3/18/2026"},{"page":"/pattern-library/staging-patterns/module","avatars":["https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"3/18/2026"},{"page":"/pattern-library/staging-patterns/timeline-dashboard","avatars":["https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"3/18/2026"},{"page":"/pattern-library/templates/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/templates/address-form","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/pattern-library/templates/sign-in-form","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/13/2025"},{"page":"/style-guide/","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/12731225?v=4"],"lastUpdated":"9/11/2023"},{"page":"/style-guide/content/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4"],"lastUpdated":"11/17/2025"},{"page":"/style-guide/content/buttons-and-links","avatars":["https://avatars.githubusercontent.com/u/38460853?v=4","https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"3/12/2026"},{"page":"/style-guide/content/capitalization","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/13/2025"},{"page":"/style-guide/content/content-formats","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/style-guide/content/errors-and-messages","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/style-guide/content/headings-and-organization","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/style-guide/content/number-formats","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/14320591?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/style-guide/content/voice-and-tone","avatars":["https://avatars.githubusercontent.com/u/38460853?v=4","https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"3/12/2026"},{"page":"/style-guide/design/","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4"],"lastUpdated":"11/17/2025"},{"page":"/style-guide/design/color","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"},{"page":"/style-guide/design/iconography","avatars":["https://avatars.githubusercontent.com/u/12731225?v=4","https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"11/14/2025"},{"page":"/style-guide/design/page-grids","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4","https://avatars.githubusercontent.com/u/12731225?v=4"],"lastUpdated":"9/11/2023"},{"page":"/style-guide/design/typography","avatars":["https://avatars.githubusercontent.com/u/13662379?v=4"],"lastUpdated":"9/11/2023"}],":type":"sheet"} \ No newline at end of file diff --git a/src/pages/pattern-library/containers/slideouts-modals-overlays.md b/src/pages/pattern-library/containers/slideouts-modals-overlays.md index ec1f93d..535e396 100644 --- a/src/pages/pattern-library/containers/slideouts-modals-overlays.md +++ b/src/pages/pattern-library/containers/slideouts-modals-overlays.md @@ -60,17 +60,17 @@ Close and cancel controls The user may also click or tap in the "alley" (shaded area) to the left of the active panel to cancel/close the panel. This passive control allows the user to drill down to the desired level without the need to close each panel via the cancel or close controls. -![](../../_images/pattern-library/slideout-panel4.png) +![Slideout panel 4](../../_images/pattern-library/slideout-panel4.png) When two panels are open (one over the other), only the topmost is active. Clicking or tapping the in the "alley" (on the edge of the lower panel) the top active panel closes, making the panel underneath active. -![](../../_images/pattern-library/slideout-panel5.png) +![Slideout panel 5](../../_images/pattern-library/slideout-panel5.png) Passive close "zone" - one level down Clicking or tapping the "alley" that represents the parent page (lowest level) will slide each panel out of view, closing them, and return the user to the parent page. It is recommended that no more than two panels be used in any given "task flow". -![](../../_images/pattern-library/slideout-panel6.png) +![Slideout panel 6](../../_images/pattern-library/slideout-panel6.png) Passive close "zone" - two levels down @@ -81,7 +81,7 @@ There are two general ways of using Slideout — "Subflow" and "Extend Form". ### Sub Flow -![](../../_images/pattern-library/slideout-panel10.png) +![Slideout panel 10](../../_images/pattern-library/slideout-panel10.png) If the form in slide-in panel creates new entities, or changes existing ones (Create Product Configurations, Add Attribute) primary action in the Slideout Button Bar should be a noun explaining the panel resulting action: "Generate Configurations", "Create Attribute", etc. Clicking that button will: @@ -91,7 +91,7 @@ Clicking that button will: ### Extend Form -![](../../_images/pattern-library/slideout-panel11.png) +![Slideout panel 11](../../_images/pattern-library/slideout-panel11.png) If the Slideout panel is a part of the form, extending it (like Advanced Inventory, or Advanced Pricing), primary action should be labeled as "Done". Clicking it will: @@ -101,7 +101,7 @@ If the Slideout panel is a part of the form, extending it (like Advanced Invento Clicking "Cancel" or clicking "×" or clicking outside of the panel (passive close) in both cases should reset contents of the current level Slideout form to default state. If user made changes to a form, he is presented with the modal window to confirm Cancellation: -![](../../_images/pattern-library/slideout-panel12.png) +![Slideout panel 12](../../_images/pattern-library/slideout-panel12.png) Clicking "Yes, Cancel" closes the Modal and Slideout, then resets form to default state. Clicking "Do not Cancel" closes the Modal. @@ -109,19 +109,19 @@ Clicking "Yes, Cancel" closes the Modal and Slideout, then resets form to defaul In its final position the panel does not snap to the page-grid of the parent page, but rather should respect some distance from the left edge of the browser. This distance provides an "alley" that creates a page-over-page metaphor. This distance should be some % of the viewport, rather than a fixed pixel width, to accommodate for variations in browser widths. -![](../../_images/pattern-library/slideout-panel7.png) +![Slideout panel 7](../../_images/pattern-library/slideout-panel7.png) Panel position in relation to browser edge A 12-column page-grid is nested inside the content area of the slideout panel, with an additional 15px of padding added to the left edge. -![](../../_images/pattern-library/slideout-panel8.png) +![Slideout panel 8](../../_images/pattern-library/slideout-panel8.png) Nested page-grid with additional padding This method of nesting a 12-column page-grid inside the slideout panel is repeated with each subsequent panel. This is done so that the panels can easily accommodate established page templates used in the Commerce framework. With each additional panel, the position of the active panel should indent to create the page-over-page metaphor and allow a zone(s) for the passive close interaction mentioned above. -![](../../_images/pattern-library/slideout-panel9.png) +![Slideout panel 9](../../_images/pattern-library/slideout-panel9.png) ## Modals @@ -129,7 +129,7 @@ This method of nesting a 12-column page-grid inside the slideout panel is repeat When an action is taken that triggers a modal, the modal window should appear center-aligned in the user's browser window. The modal should appear to fade in or grow from the center of the screen. The timing of this animation should be set to about 0.3s. When the modal is triggered, the parent page should become disabled and shaded while the modal is active. -![](../../_images/pattern-library/modal1.png) +![Modal 1](../../_images/pattern-library/modal1.png) Example of a Confirmation Modal @@ -148,7 +148,7 @@ The active modal should include the following elements: Every modal should include a close control ( × ) in the upper right corner as well as a "Cancel" link or button. Additionally, if the user clicks or taps the shaded area outside of the modal container the modal will cancel and close. The ESC-key via keyboard will close/cancel the active modal window. -![](../../_images/pattern-library/modal3.png) +![Modal 3](../../_images/pattern-library/modal3.png) Modal "Cancel" and "Close" controls @@ -156,7 +156,7 @@ Modal "Cancel" and "Close" controls The modal should be center-aligned in the user's browser window and be 75% of the viewport width. The content within the modal window should flex accordingly to the width of the browser window and the modal width. -![](../../_images/pattern-library/modal4.png) +![Modal 4](../../_images/pattern-library/modal4.png) The distance of the modal to the top of the browser should have a fixed distance and NOT be percentage-based. This will insure that the "title" and top "close control" will be visible if the modal window is taller than the viewport. Within the content area of the modal window itself there should be 30px padding. diff --git a/src/pages/pattern-library/containers/static-content.md b/src/pages/pattern-library/containers/static-content.md index 3bc1311..92fd10e 100644 --- a/src/pages/pattern-library/containers/static-content.md +++ b/src/pages/pattern-library/containers/static-content.md @@ -31,11 +31,11 @@ The following example, shows two sets of parent & child containers. Each parent The parent container structure: title, rule, content. -![](../../_images/pattern-library/Var1-structure.png) +![Var 1 structure](../../_images/pattern-library/Var1-structure.png) #### Styling -Note that because the children containers can be any variations of other content containers, refer to other variations for styling. ![](../../_images/pattern-library/Var1-style.png) +Note that because the children containers can be any variations of other content containers, refer to other variations for styling. ![Var 1 style](../../_images/pattern-library/Var1-style.png) ### Title with Body of Text @@ -43,7 +43,7 @@ Note that because the children containers can be any variations of other content **Height:** as needed -![](../../_images/pattern-library/Var2-style.png) +![Var 2 style](../../_images/pattern-library/Var2-style.png) ### Title with Differentiated Rows @@ -53,7 +53,7 @@ Note that because the children containers can be any variations of other content This is used to clearly separate information for users to easily digest. The first row should be grey, and then, the rows alternate between grey and white. -![](../../_images/pattern-library/Var3-style.png) +![Var 3 style](../../_images/pattern-library/Var3-style.png) ### Pricing Breakdown chart @@ -63,4 +63,4 @@ This is used to clearly separate information for users to easily digest. The fir This is used to clearly separate information for users to easily digest. -![](../../_images/pattern-library/Var4-style.png) +![Var 4 style](../../_images/pattern-library/Var4-style.png) diff --git a/src/pages/pattern-library/controls/button-bar.md b/src/pages/pattern-library/controls/button-bar.md index e783ed7..d7eb99e 100644 --- a/src/pages/pattern-library/controls/button-bar.md +++ b/src/pages/pattern-library/controls/button-bar.md @@ -37,11 +37,11 @@ For solutions not described in this article, please refer to other related patte #### Button Bar Position in Page -![](../../_images/pattern-library/position-in-page.jpg) +![Position in page](../../_images/pattern-library/position-in-page.jpg) #### Button Bar Position in Slide-in Panel -![](../../_images/pattern-library/position-in-modal.jpg) +![Position in modal](../../_images/pattern-library/position-in-modal.jpg) ### Page Level Button Order and Priority - General Rules @@ -60,26 +60,26 @@ Page level buttons can be logically grouped as follows: Groups can contain multiple CTAs but only one primary CTA. Groups should follow the below order: -![](../../_images/pattern-library/buttonbar1.png) +![Button bar 1](../../_images/pattern-library/buttonbar1.png) ### Ordering by Importance There should never be more than one primary page level CTA on the same page. Page level CTAs should assume an ascending order of importance from left to right wherever possible, i.e. least important buttons followed by most important. -![](../../_images/pattern-library/buttonbar-importance.png) +![Button bar importance](../../_images/pattern-library/buttonbar-importance.png) ## Style All buttons should be right aligned. The button bar is spread across 12 columns and should be fluid. -![](../../_images/pattern-library/buttonbar-style.jpg) +![Button bar style](../../_images/pattern-library/buttonbar-style.jpg) ## Recommendation 1. It is recommended that all buttons in button bar should only be in one line. Because the button bar is in fluid grid, it is possible for the buttons to be wrap around to the next line. 1. If you have multiple page-level buttons. We recommend using the split button rather having too many buttons that will clutter the page. -![](../../_images/pattern-library/button-bar-with-splitbutton.jpg) +![Button bar with splitbutton](../../_images/pattern-library/button-bar-with-splitbutton.jpg) ## Sticky button bar @@ -87,11 +87,11 @@ To ensure page level actions are always visible, The button bar should stick to ### Initial State -![](../../_images/pattern-library/button-bar-sticky1.jpg) +![Button bar sticky 1](../../_images/pattern-library/button-bar-sticky1.jpg) ### After user scrolls, the button bar sticks to the browser -![](../../_images/pattern-library/button-bar-sticky2.jpg) +![Button bar sticky 2](../../_images/pattern-library/button-bar-sticky2.jpg) ## Accessibility diff --git a/src/pages/pattern-library/controls/buttons.md b/src/pages/pattern-library/controls/buttons.md index c775f22..896c81c 100644 --- a/src/pages/pattern-library/controls/buttons.md +++ b/src/pages/pattern-library/controls/buttons.md @@ -48,7 +48,7 @@ defined style. ### Page Level Button -![](../../_images/pattern-library/Button_grid01_primary.png) +![Button grid 01 primary](../../_images/pattern-library/Button_grid01_primary.png) #### Font details @@ -87,7 +87,7 @@ Left/Right margin spacing should not be less than 20px ### Dropdown Buttons -![](../../_images/pattern-library/Button_grid03_dropdown.png) +![Button grid 03 dropdown](../../_images/pattern-library/Button_grid03_dropdown.png) #### Font details @@ -131,7 +131,7 @@ Left/Right margin spacing should not be less than 20px ### Tertiary Buttons -![](../../_images/pattern-library/Button_grid02_tertiary.png) +![Button grid 02 tertiary](../../_images/pattern-library/Button_grid02_tertiary.png) #### Font details @@ -167,11 +167,11 @@ Left/Right margin spacing should not be less than 20px #### Tertiary Button Example -![](../../_images/pattern-library/TertiaryExample.png) +![Tertiary example](../../_images/pattern-library/TertiaryExample.png) ### Quaternary Buttons -![](../../_images/pattern-library/Button_grid02_quaternary.png) +![Button grid 02 quaternary](../../_images/pattern-library/Button_grid02_quaternary.png) Quaternary buttons are only after all the buttons hierarchy have been used. @@ -217,7 +217,7 @@ Left/Right margin spacing should not be less than 10px #### Quaternary Button Example -![](../../_images/pattern-library/TableButtonExample.png) +![Table button example](../../_images/pattern-library/TableButtonExample.png) ### Toggle Buttons @@ -285,7 +285,7 @@ Left/Right margin spacing should not be less than 10px #### Examples of toggle buttons -![](../../_images/pattern-library/TableWToggle.png) +![Table with toggle buttons](../../_images/pattern-library/TableWToggle.png) ## Accessibility diff --git a/src/pages/pattern-library/controls/view-controller.md b/src/pages/pattern-library/controls/view-controller.md index 6f31a89..e0870ed 100644 --- a/src/pages/pattern-library/controls/view-controller.md +++ b/src/pages/pattern-library/controls/view-controller.md @@ -19,7 +19,7 @@ Only use for switching between views of data set. Follow are variations of icons to use for their corresponding data set views: -![](../../_images/pattern-library/variation.jpg) +![Variation](../../_images/pattern-library/variation.jpg) ## Behavior @@ -27,21 +27,21 @@ User switches between the views using the view controller. User can click on the In this case, user select data table view control, the data table view is shown. -![](../../_images/pattern-library/behavior.jpg) +![Behavior](../../_images/pattern-library/behavior.jpg) Then, the user can also switch back to tile view in this example. -![](../../_images/pattern-library/behavior2.jpg) +![Behavior 2](../../_images/pattern-library/behavior2.jpg) ## Placement The view control should always be placed as the most right item on the same row as filter options. -![](../../_images/pattern-library/Placement.jpg) +![Placement](../../_images/pattern-library/Placement.jpg) ## Style -![](../../_images/pattern-library/style.jpg) +![Style](../../_images/pattern-library/style.jpg) ## Accessibility diff --git a/src/pages/pattern-library/displaying-data/datatable.md b/src/pages/pattern-library/displaying-data/datatable.md index 111cf4c..2c5e85f 100644 --- a/src/pages/pattern-library/displaying-data/datatable.md +++ b/src/pages/pattern-library/displaying-data/datatable.md @@ -36,7 +36,7 @@ This specification defines the following features for the data-table: * Multiple item select and edit * Image/Thumbnail placement -![](../../_images/pattern-library/datatable01.jpg) +![Datatable 01](../../_images/pattern-library/datatable01.jpg) ## Data-table Visual Architecture @@ -53,9 +53,9 @@ The data-table will contain the following elements where applicable and as neede The data-table will be designed in such a way that any of the above controls can be removed, collapsing the table gracefully. -![](../../_images/pattern-library/datatable02.jpg) +![Datatable 02](../../_images/pattern-library/datatable02.jpg) -![](../../_images/pattern-library/datatable03.jpg) +![Datatable 03](../../_images/pattern-library/datatable03.jpg) ## Pagination @@ -68,7 +68,7 @@ Pagination controls allow the user to easily page through and organize data. Pag * 'Next' button * 'Previous' button when applicable -![](../../_images/pattern-library/datatable04.jpg) +![Datatable 04](../../_images/pattern-library/datatable04.jpg) ### Pagination Rules @@ -79,37 +79,37 @@ Pagination controls allow the user to easily page through and organize data. Pag * 'Skip to' will be instantiated once the value is changed and [Return] or [Tab] is clicked. * A custom number of items per page can be set by selecting the "Custom" link which will allow users to specify a number. This number can be edited. -![](../../_images/pattern-library/datatable05.jpg) +![Datatable 05](../../_images/pattern-library/datatable05.jpg) -![](../../_images/pattern-library/datatable06.jpg) +![Datatable 06](../../_images/pattern-library/datatable06.jpg) -![](../../_images/pattern-library/datatable07.jpg) +![Datatable 07](../../_images/pattern-library/datatable07.jpg) ## Mass Actions A common theme across the existing application user experience includes mass actions that can be taken. This is a convention used on both data-table and non-data-table pages. Not all pages have these action buttons. This document will not attempt to capture all actions that appear here or how they might be redesigned. This document will make note that these actions exist on many of the data-table pages and will use the area directly above the table to indicate placement of such action buttons where they might be needed. -![](../../_images/pattern-library/datatable08.jpg) +![Datatable 08](../../_images/pattern-library/datatable08.jpg) Actions will be positioned above the table . Each table will have it's own set of actions, some tables will have no actions. This new proposal removes the submit button which is currently visible next to the "Actions" drop down selector. In the event that any confirmations are needed for actions, modal dialogs will be used. -![](../../_images/pattern-library/datatable09.jpg) +![Datatable 09](../../_images/pattern-library/datatable09.jpg) ### Single Actions These actions will appear within the data area of the table where applicable. When this action column is applicable, it will always appear on the far right of the table . Single actions will allow users to take action on a record within the table . In most cases, no more than one action will appear here. In the event that additional actions are needed, they will appear in the form of a drop down. These actions are specific to the single record in which they are associated. In the event that a user selects multiple items in the table, these actions will be disabled or hidden. -![](../../_images/pattern-library/datatable10.jpg) +![Datatable 10](../../_images/pattern-library/datatable10.jpg) ### Messaging and Confirmation There are times when an action needs to be confirmed. In these cases, the user's task will be interrupted with a message asking the user to confirm the operation before proceeding. This message is presented via a modal dialog. -![](../../_images/pattern-library/datatable11.jpg) +![Datatable 11](../../_images/pattern-library/datatable11.jpg) Once an action is taken, success/fail messaging should appear as an overlay which fades away. Certain actions mayrequire that an Undo action be provided. This experience should be the same whether a single file is being deleted via the "actions" button for that record or 1 or more files have been selected via a checkbox and deleted via the mass actions delete. -![](../../_images/pattern-library/datatable12.jpg) +![Datatable 12](../../_images/pattern-library/datatable12.jpg) ## Table Control @@ -131,17 +131,17 @@ The keyword search function and table controls will be: As the table scrolls, the table controls will dynamically condense to a single row. All functionality of the controls will remain available. -![](../../_images/pattern-library/datatable13.jpg) +![Datatable 13](../../_images/pattern-library/datatable13.jpg) The persistent header will reactivate when you scroll back up: -![](../../_images/pattern-library/datatable14.jpg) +![Datatable 14](../../_images/pattern-library/datatable14.jpg) ### Multiple Data-tables on Page The header will stick to the first table until the user scrolls past the bottom of that table . The header will have the same behavior for each subsequent data-table. -![](../../_images/pattern-library/datatable15.jpg) +![Datatable 15](../../_images/pattern-library/datatable15.jpg) ### Interactions @@ -164,24 +164,24 @@ The data-table will remain in the current viewport when the user: The table can be scrolled horizontally. And to keep the row identifiable, the checkbox column and first column will be sticky. In creating the grid, the first column must always be an identifiable attribute such as name. -![](../../_images/pattern-library/datatable16.jpg) +![Datatable 16](../../_images/pattern-library/datatable16.jpg) If there are more columns than can be shown in one view, the vertical scroll bar should appear for navigating to the rest of the column options as seen in the image below. Only 6 options should be shown per each vertical column, we should ensure that the all area of panel will be visible above the page fold. -![](../../_images/pattern-library/datatable17.jpg) +![Datatable 17](../../_images/pattern-library/datatable17.jpg) In the example below, the first column is "Name" rather than "Customer ID." This horizontal scroll should still work with page scroll and sticky header. -![](../../_images/pattern-library/datatable18.jpg) +![Datatable 18](../../_images/pattern-library/datatable18.jpg) ## Search When the user enters a keyword in the search field and submits the query (by clicking the spyglass icon), the table will display only records that contain the designated keyword. The search term is displayed as a "chip" below the search field (and inline with any additional filters that were applied). In this layout, additional search terms can be paired with the initial term to further refine the results. Each time a term is submitted, the data is filtered, the term is displayed as a "chip" and the search field returns to it's initial state (it does not retain the term entered my the user). -![](../../_images/pattern-library/datatable19.jpg) +![Datatable 19](../../_images/pattern-library/datatable19.jpg) -![](../../_images/pattern-library/datatable20.jpg) +![Datatable 20](../../_images/pattern-library/datatable20.jpg) ### Autocomplete @@ -189,19 +189,19 @@ As text is added to the search field, the system will suggest terms and phrases * No more than 5 suggestions should be displayed at a time -![](../../_images/pattern-library/datatable21.jpg) +![Datatable 21](../../_images/pattern-library/datatable21.jpg) ### Search/Filter Tags Once a search term or filter is applied and results are loaded into the table, the terms or parameters used to filter by are displayed in the minified version of the "filter chip(s)". If the user removes all the tags, the filters row would disappear. -![](../../_images/pattern-library/datatable22.jpg) +![Datatable 22](../../_images/pattern-library/datatable22.jpg) ### Error Checking/Validation There will be no form validation or error checking for search queries since any combination of characters may be searched. Messaging will display in the data area when no results can be returned. -![](../../_images/pattern-library/datatable23.jpg) +![Datatable 23](../../_images/pattern-library/datatable23.jpg) ### User Flow @@ -211,21 +211,21 @@ Upon conducting a query, a result set is returned based on the above rules. Once The user will be able to select which columns are visible from here. Settings will also be contained in a panel that can be activated by clicking on the columns action. Users will also have the ability to cancel out of this prompt, as well as reset (restore) the table back to it's default column view. These settings will be 'sticky' per table, so users returning to any particular table will see the table the way it was last configured. -![](../../_images/pattern-library/datatable24.jpg) +![Datatable 24](../../_images/pattern-library/datatable24.jpg) -![](../../_images/pattern-library/datatable25.jpg) +![Datatable 25](../../_images/pattern-library/datatable25.jpg) ### Custom Views Custom views allow the user to save the state of a table. When a view is saved, the table settings will be stored. These settings include column visibility and position, as well as any filter or search that has been applied to the table. Saving a 'view' will be done via a dropdown control. Saved views will be available per table. -![](../../_images/pattern-library/datatable26.jpg) +![Datatable 26](../../_images/pattern-library/datatable26.jpg) ### Editing Saved Views Views can be named or deleted by clicking an edit icon. Refer to "Adding a custom value to drop down list" above for more detailed behavior. -![](../../_images/pattern-library/datatable27.jpg) +![Datatable 27](../../_images/pattern-library/datatable27.jpg) ## Filters @@ -235,23 +235,23 @@ Filters allow users to customize the display of information in an associated dat To access the Advanced Filters the user may click/tap the "Filters" button found in the table controls area. When activated, the button transforms into a tab and displays the available filters in a 'drawer' which opens between the table controls and the table data. The available filters are determined by the columns present in the table; therefore, if the user customizes the column visibility of the table to show some columns and hide others, the corresponding filters for these columns will display or hide in the filter 'drawer'. -![](../../_images/pattern-library/filter_init.png) +![Filter init](../../_images/pattern-library/filter_init.png) Not all columns may be filtered (such as **Actions** or checkbox select) and therefore will not be presented in the list of filters even though their columns are visible in the data-table. -![](../../_images/pattern-library/filter_drawer.png) +![Filter drawer](../../_images/pattern-library/filter_drawer.png) To apply filters, the user sets the desired parameters in the input fields of the appropriate filters. The action initiated by clicking/tapping the "Apply" button (found in the advanced filters area). When applied, the advanced filter 'drawer' closes and the data-table refreshes to display the filtered data. The applied filters are indicated to the user in the form of filter 'tags' that appear between the filter button and the table data. Filter 'tag' are listed in the order that they are applied and each individual 'tag' has a control for removing it. -![](../../_images/pattern-library/filter_applied.png) +![Filter applied](../../_images/pattern-library/filter_applied.png) ### Removing Filters Users may remove a filter setting by clicking/tapping the remove control next to the filter 'tag'. Doing so removes the particular filter from the *query*, the table refreshes and the data excluded by that filter then appears in the table. The user can quickly remove all applied filters by clicking/tapping the "clear all" link that follows the list of 'filter tags'. -![](../../_images/pattern-library/filter_remove.png) +![Filter remove](../../_images/pattern-library/filter_remove.png) ## Data Table Views @@ -278,7 +278,7 @@ This will be handled by the 'Reset' function in the settings drop down button. A This feature will allow users to make bulk selections to items within any given data-table. Because users may be dealing with many "pages" of data, this function needs to be specific in respect to what is being selected. Thus a drop down will be used to allow for multiple options for selecting records. -![](../../_images/pattern-library/datatable38.jpg) +![Datatable 38](../../_images/pattern-library/datatable38.jpg) This drop down will include the following: @@ -293,11 +293,11 @@ This drop down only needs to appear where more than one page of data is availabl The total number of records loaded into the table will display above the column headers. -![](../../_images/pattern-library/datatable39.jpg) +![Datatable 39](../../_images/pattern-library/datatable39.jpg) As items are selected on the grid, a count for the number of items selected should be displayed next to the total count. This will give the user confidence that records are selected though they may not be on the current page view. -![](../../_images/pattern-library/datatable40.jpg) +![Datatable 40](../../_images/pattern-library/datatable40.jpg) ### Select @@ -308,19 +308,19 @@ For tables which require a select column: * Users may select multiple rows by using the checkboxes or the select all function. * Selected rows will be indicated by a checked box and a highlight and/or border style which will delineate the selected rows from unselected rows. -![](../../_images/pattern-library/datatable41.jpg) +![Datatable 41](../../_images/pattern-library/datatable41.jpg) ### Toggle Switches Some data-tables will be used to display "settings" content. In these instances a checkbox is not ideal for the experience, as it can be confusing to the user when pre-selected settings are displayed. Switches make the action and intent more clear to the user for these tasks. Therefore, if switches are present, checkboxes should not; the two should never be used in the same table. Since switches replace the functionality of checkboxes they should be the first column of the data-table. -![](../../_images/pattern-library/datatable42.jpg) +![Datatable 42](../../_images/pattern-library/datatable42.jpg) ### Single Select Button The data table can also accommodate buttons in rows, and has a special case in the "Single Select" button. This button functions not unlike a typical radio button control, but is used instead of the radio button when the task flow or experience in the Admin application are better served with the more implicit action of selecting a single choice from a data table. This provides greater visibility and immediate confirmation of the action to the user. The use of this should be carefully considered in the context of the experience to determine if it provides greater understanding to the user than radio buttons. -![](../../_images/pattern-library/single_select_button.png) +![Single select button](../../_images/pattern-library/single_select_button.png) ## Editing @@ -337,13 +337,13 @@ Not all data-tables will allow for inline editing. * Once a row becomes editable, action buttons will appear below the row allowing a user to commit or cancel the edit. * Editable fields will have a left-to-right tab order. [Tab] and [Enter] will set focus on the next editable field in the tab order, unless the focus is set to the last field in the tab order in which case [Enter] will commit the edit while [Tab] will set focus to the Save button. -![](../../_images/pattern-library/datatable43.jpg) +![Datatable 43](../../_images/pattern-library/datatable43.jpg) -![](../../_images/pattern-library/datatable44.jpg) +![Datatable 44](../../_images/pattern-library/datatable44.jpg) Inline editing may require error handling on some fields. This should be done using real-time field validation. Some fields may allow for only a specific set of values. In these instances, a select or multi-select interaction should be used. -![](../../_images/pattern-library/datatable45.jpg) +![Datatable 45](../../_images/pattern-library/datatable45.jpg) ## Miscellaneous Features @@ -355,7 +355,7 @@ Some data-tables will allow users to arrange columns in a customized order. A us When dropped on an area that is not highlighted (or off target of the highlighted area) the column will return to it's original position. If the user wishes to maintain this position for future viewing, they must set a "Saved View", otherwise the default column order will prevail for following sessions. -![](../../_images/pattern-library/datatable46.jpg) +![Datatable 46](../../_images/pattern-library/datatable46.jpg) ### Drag and Drop Rows @@ -367,27 +367,27 @@ Inline editing functionality should not be available for tables that require dra ### Single rows may be arranged via drag and drop -![](../../_images/pattern-library/datatable47.jpg) +![Datatable 47](../../_images/pattern-library/datatable47.jpg) ### Multiple rows may also be arranged via drag and drop -![](../../_images/pattern-library/datatable48.jpg) +![Datatable 48](../../_images/pattern-library/datatable48.jpg) ### Thumbnails In cases where an image is associated with the data, as in the case of a product, the data-table will display a thumbnail view of the primary or default image (typically the first image in a series of image). By default the thumbnail image will appear to the far left of the table (after select checkboxes when present). The thumbnail image is a 'clickable target' independent of the typical click behavior of the row. -![](../../_images/pattern-library/datatable49.jpg) +![Datatable 49](../../_images/pattern-library/datatable49.jpg) When the thumbnail is clicked a modal is presented over the data-table to provide a larger, more detailed view of the image. This modal should contain a heading that corresponds to the associated product name; a close control for the modal; a hyperlink that redirects the user to the details page. -![](../../_images/pattern-library/datatable50.jpg) +![Datatable 50](../../_images/pattern-library/datatable50.jpg) ### Parent-Child relationships The data-table will support parent-child relationships. Parent and child records will be delineated via style and/or iconography. Parent nodes will be expandable/collapsible. -![](../../_images/pattern-library/datatable51.jpg) +![Datatable 51](../../_images/pattern-library/datatable51.jpg) ## Interactions @@ -399,7 +399,7 @@ General interaction should follow standard web conventions. Interaction around d * Horizontal scrollbars will be present whenever the data-table's width expands beyond the browser's viewport. * The data-table controls should not expand with the table , instead the controls will float as the table is scrolled in both the vertical and horizontal direction. -![](../../_images/pattern-library/datatable52.jpg) +![Datatable 52](../../_images/pattern-library/datatable52.jpg) ### Column Headers @@ -414,7 +414,7 @@ General interaction should follow standard web conventions. Interaction around d Cursors will be used to indicate which actions the user can take in any particular situation. While cursors may differ slightly depending on operating system and browser, the below cursors are examples of what should be used per standard web conventions: -![](../../_images/pattern-library/datatable53.jpg) +![Datatable 53](../../_images/pattern-library/datatable53.jpg) ## Summary diff --git a/src/pages/pattern-library/displaying-data/filters.md b/src/pages/pattern-library/displaying-data/filters.md index fa35f02..c7d81db 100644 --- a/src/pages/pattern-library/displaying-data/filters.md +++ b/src/pages/pattern-library/displaying-data/filters.md @@ -13,13 +13,13 @@ Filters allow users to customize the display of information in an associated dat A search box associated with a data-table allows users to filter table data by entering a term(s) in the field and clicking/tapping the search icon. The table refreshes to display only rows of data that have a relationship to this 'keyword'. The term(s) is displayed as a filter 'tag' in an area just beneath the search box. Users may add subsequent search terms to create a combination of filtering parameters to more specifically filter data. -![](../../_images/pattern-library/keyword_1.png) +![Keyword 1](../../_images/pattern-library/keyword_1.png) -![](../../_images/pattern-library/keyword_applied.png) +![Keyword applied](../../_images/pattern-library/keyword_applied.png) In the event that the user enters a term that is not found in the data, the table will display a message to the user: "Your search term did not return any results". When this happens the user-entered term will remain in the search field for the user's reference. -![](../../_images/pattern-library/search_not-found.png) +![Search not found](../../_images/pattern-library/search_not-found.png) Applied search terms (filters) may be removed by clicking the remove control, just as with any other filter. @@ -27,23 +27,23 @@ Applied search terms (filters) may be removed by clicking the remove control, ju To access the Advanced Filters the user may click/tap the "Filters" button found in the table controls area. When activated, the button transforms into a tab and displays the available filters in a 'drawer' which opens between the table controls and the table data. The available filters are determined by the columns present in the table; therefore, if the user customizes the column visibility of the table to show some columns and hide others, the corresponding filters for these columns will display or hide in the filter 'drawer'. -![](../../_images/pattern-library/filter_init.png) +![Filter init](../../_images/pattern-library/filter_init.png) Not all columns may be filtered (i.e. **Actions** or checkbox select) and therefore will not be presented in the list of filters even though their columns are visible in the data-table. -![](../../_images/pattern-library/filter_drawer.png) +![Filter drawer](../../_images/pattern-library/filter_drawer.png) To apply filters, the user sets the desired parameters in the input fields of the appropriate filters. The action initiated by clicking/tapping the "Apply" button (found in the advanced filters area). When applied, the advanced filter 'drawer' closes and the data-table refreshes to display the filtered data. The applied filters are indicated to the user in the form of filter 'tags' that appear between the filter button and the table data. Filter 'tag' are listed in the order that they are applied and each individual 'tag' has a control for removing it. -![](../../_images/pattern-library/filter_applied.png) +![Filter applied](../../_images/pattern-library/filter_applied.png) ## Removing Filters Users may remove a filter setting by clicking/tapping the remove control next to the filter 'tag'. Doing so removes the particular filter from the *query*, the table refreshes and the data excluded by that filter then appears in the table. The user can quickly remove all applied filters by clicking/tapping the "clear all" link that follows the list of 'filter tags'. -![](../../_images/pattern-library/filter_remove.png) +![Filter remove](../../_images/pattern-library/filter_remove.png) ## Future Capabilities @@ -53,6 +53,6 @@ Additional capabilities have been designed to further increase the functionality In some unique instances a table may have "Quick Filters" associated with it. These Quick Filters allow the user to filter data based on pre-determined parameters, and are intended to help users quickly filter data to perform a *common user task* - reporting functions. Not every data-table will have Quick Filters. "Search Term" filtering and Advanced Filtering may be used in conjunction with Quick Filters. Quick Filters may be removed in the same manner as other filters via the remove control. -![](../../_images/pattern-library/quick-filter_1.png) +![Quick filter 1](../../_images/pattern-library/quick-filter_1.png) -![](../../_images/pattern-library/quick-filter_2.png) +![Quick filter 2](../../_images/pattern-library/quick-filter_2.png) diff --git a/src/pages/pattern-library/displaying-data/tile.md b/src/pages/pattern-library/displaying-data/tile.md index 58c06d4..697ece1 100644 --- a/src/pages/pattern-library/displaying-data/tile.md +++ b/src/pages/pattern-library/displaying-data/tile.md @@ -23,7 +23,7 @@ This topic contains examples of the Tile pattern used in the Admin with function Tiles will be needed anytime there is a grid view option available. Tiles are a visual representation of the data table and are easily scan-able. -![](../../_images/pattern-library/Tile00.jpg) +![Tile 00](../../_images/pattern-library/Tile00.jpg) ## Drag and Drop @@ -37,34 +37,34 @@ The X in the top right corner of the tile will remove the tile from the category To make a product a Hero Product, the user must select the checkbox and/or the Hero Product link to promote the tile to the top of the category. When the checkbox and/or Hero Product link is selected, a 1-2 second alert stating "This product is now a hero product" will appear and fade away. (The user has the option to opt out of these alerts.) Once a tile becomes a "Hero" a 1px yellow stroke highlights the tile at the top of the category. -![](../../_images/pattern-library/Tile02.jpg) +![Tile 02](../../_images/pattern-library/Tile02.jpg) ## Removing Hero Product Checkbox and Link To remove a product from the hero space, the user must deselect the checkbox and/or click the Hero Product link. When the checkbox and/or Hero Product link is selected, a 1-2 second alert stating, "This product is being removed" will appear and fade away. (The user has the option to opt out of these alerts.) Once selected, the tile will move to the first position in the category. -![](../../_images/pattern-library/Tile03.jpg) +![Tile 03](../../_images/pattern-library/Tile03.jpg) ## Advancing Position The user has the ability to advance a tile to the first position in the category and/or the last position in a category by selecting either the move first position icon, move up one icon, move down one icon or move last position icon. These icons help a user quickly move products around in a category and across multiple pages. -![](../../_images/pattern-library/Tile04.jpg) +![Tile 04](../../_images/pattern-library/Tile04.jpg) ## Numerical Input Clicking in the input field will allow the user to manually enter a numeric order and have the tile move to the position entered. If a tile is already in the chosen position, the tile will then move one space to the right and the new numeric value entered will take the position. Once the user enters a numeric value, using the keyboard and hitting return will move the tile to the entered position. -![](../../_images/pattern-library/Tile05.jpg) +![Tile 05](../../_images/pattern-library/Tile05.jpg) ## Hero Product Section Once a tile becomes a "Hero" a 1px yellow stroke highlights the tile at the top of the category. The user can have infinite hero products in a category. When there is more than one product highlighted in the hero space at the top of the category, the user can drag and drop tiles within the highlighted hero space. (Ex: A user can drag and drop the first hero tile to the last hero position as long as it is on the same page) The advance position icons and numeric input field are not active while a tile is in the hero position. To activate the advance position and numeric input field, the user must remove the tile from the hero space. -![](../../_images/pattern-library/Tile06.jpg) +![Tile 06](../../_images/pattern-library/Tile06.jpg) ## Styling and Spacing For specific details concerning styling including fonts, colors and effects and spacing and padding, please refer to the source PSD files and exports located on Box or contact the Commerce Product Design and User Experience team. -![](../../_images/pattern-library/Tile07.jpg) +![Tile 07](../../_images/pattern-library/Tile07.jpg) diff --git a/src/pages/pattern-library/displaying-data/tree.md b/src/pages/pattern-library/displaying-data/tree.md index 1d47f22..0a61590 100644 --- a/src/pages/pattern-library/displaying-data/tree.md +++ b/src/pages/pattern-library/displaying-data/tree.md @@ -19,7 +19,7 @@ Tree component will be needed anytime it is required to navigate though multiple The tree consists of two main "Anchors" and "Links": -![](../../_images/pattern-library/treecomponents.jpg) +![Tree components](../../_images/pattern-library/treecomponents.jpg) ### Anchors @@ -49,13 +49,13 @@ The arrow to the left of the item can be used to expand or collapses the childre Clicking "Expand All" will open all the nodes in the tree structure. Expand All link is the default state. Once "Expand All" is clicked the link changes to "Collapse All" If user manually expand all the items, this control should also be changed to "Collapse All." -![](../../_images/pattern-library/expandall.jpg) +![Expand all](../../_images/pattern-library/expandall.jpg) ### Collapse All Clicking "Collapse All" will condense all the nodes in the tree structure. Once "Collapse All" is clicked link changes to "Expand All". If user manually collapsed all the items, this control should also be changed to "Collapse All." -![](../../_images/pattern-library/collpaseall.jpg) +![Collapse all](../../_images/pattern-library/collpaseall.jpg) ## Usage: Navigation @@ -63,7 +63,7 @@ This is used to navigate to the detail page of the selected item in the admin or When tree is used to display more information on the same page the item clicked remains in selected state. -![](../../_images/pattern-library/navigationonlytree.jpg) +![Navigation only tree](../../_images/pattern-library/navigationonlytree.jpg) ## Usage: Multi-Select @@ -71,7 +71,7 @@ This is used when multiple selection of items are needed. ### Multi Select without Icon -![](../../_images/pattern-library/multi-select.jpg) +![Multi select](../../_images/pattern-library/multi-select.jpg) ### Multi Select with Icon @@ -79,7 +79,7 @@ This tree has all functionality of multi-select tree along with having icons. Ic Icons should always be placed on the left of the icon label and Icons should NOT be used as default feature for trees pattern. -![](../../_images/pattern-library/multi-select-wicon.jpg) +![Multi select with icon](../../_images/pattern-library/multi-select-wicon.jpg) ### Behavior and Details of Multi Select Tree @@ -97,7 +97,7 @@ Otherwise, the link remain "Select All." _Note:_ The "Expand All/Collapse All" control can appear simultaneously with the "Select All/Clear All" control. They operate independently. -![](../../_images/pattern-library/selectall-clearall.jpg) +![Selectall clearall](../../_images/pattern-library/selectall-clearall.jpg) #### Select Indicators @@ -107,7 +107,7 @@ _Note:_ The "Expand All/Collapse All" control can appear simultaneously with the * Unchecked and Inactive – this state appears when the item is unselected and not active * Checked and Inactive – this state appears when the item is selected and not active. -![](../../_images/pattern-library/states.jpg) +![States](../../_images/pattern-library/states.jpg) _3. Checking a checkbox for a child item should automatically change its parent state to:_ @@ -136,15 +136,15 @@ Checkboxes and Drag handles are mutually exclusive features. i.e. Tree structure _Notes:_ Moving the Items in the tree will also affect the parent – child relationship. -![](../../_images/pattern-library/drag-and-arrange-behavior.jpg) +![Drag and arrange behavior](../../_images/pattern-library/drag-and-arrange-behavior.jpg) ### Type 1. Drag and Arrange with Icon -![](../../_images/pattern-library/drag-and-arrange.jpg) +![Drag and arrange](../../_images/pattern-library/drag-and-arrange.jpg) ### Type 2. Drag and Arrange without Icon -![](../../_images/pattern-library/drag-and-arrange2.jpg) +![Drag and arrange 2](../../_images/pattern-library/drag-and-arrange2.jpg) ## Action Menu @@ -154,11 +154,11 @@ The action icon is not required for the tree. It only appear as needed. _Step 1:_ User click on the action icon. -![](../../_images/pattern-library/action.jpg) +![Action](../../_images/pattern-library/action.jpg) _Step 2:_ The list of available actions against this item is shown. -![](../../_images/pattern-library/action2.jpg) +![Action 2](../../_images/pattern-library/action2.jpg) _Move Up_ Once clicked, the item should be moved up within the parent. If the item is the first child, it cannot be moved up and the option will be disabled. @@ -181,20 +181,20 @@ There are two types of items that can be added: The "add child" button should always have more importance than the "add parent" button. -![](../../_images/pattern-library/Placement.jpg) +![Placement](../../_images/pattern-library/Placement.jpg) ## Interaction _Step 1:_ User click on the add button. -![](../../_images/pattern-library/add1.jpg) +![Add 1](../../_images/pattern-library/add1.jpg) _Step 2:_ A [slide-out panel](../containers/slideouts-modals-overlays.md) should opens up to get the details of what to be added. _Step 3:_ The item is added. The placement of the items will be determined as stated above. -![](../../_images/pattern-library/add3.jpg) +![Add 3](../../_images/pattern-library/add3.jpg) ## Style -![](../../_images/pattern-library/style.jpg) +![Style](../../_images/pattern-library/style.jpg) diff --git a/src/pages/pattern-library/feedback-to-user/progress-indicator.md b/src/pages/pattern-library/feedback-to-user/progress-indicator.md index 44d394d..22ced57 100644 --- a/src/pages/pattern-library/feedback-to-user/progress-indicator.md +++ b/src/pages/pattern-library/feedback-to-user/progress-indicator.md @@ -46,7 +46,7 @@ In general, it is not recommended to use the progress bar if the process can be **States Diagram:** -![](../../_images/pattern-library/progressbar-behavior-diagram.png) +![Progressbar behavior diagram](../../_images/pattern-library/progressbar-behavior-diagram.png) 1. **Process Trigger** @@ -54,11 +54,11 @@ In general, it is not recommended to use the progress bar if the process can be 1. **Starting State** - ![](../../_images/pattern-library/progressbar-starting-state.png) + ![Progressbar starting state](../../_images/pattern-library/progressbar-starting-state.png) 1. **Progressing** - ![](../../_images/pattern-library/progressbar-progressing.png) + ![Progressbar progressing](../../_images/pattern-library/progressbar-progressing.png) 1. **Success** @@ -68,11 +68,11 @@ In general, it is not recommended to use the progress bar if the process can be The progress bar will disappeared and is replaced with this error message. - ![](../../_images/pattern-library/progressbar-failed.png) + ![Progressbar failed](../../_images/pattern-library/progressbar-failed.png) ## Variations -![](../../_images/pattern-library/variations.png) +![Variations](../../_images/pattern-library/variations.png) ## Style @@ -80,10 +80,10 @@ In general, it is not recommended to use the progress bar if the process can be The spinner can be any of these 4 sizes. -![](../../_images/pattern-library/style-spinner.png) +![Style spinner](../../_images/pattern-library/style-spinner.png) ### Progress Bar Refer to Messaging Pattern for final styling on error message. -![](../../_images/pattern-library/style-progressbar.png) +![Style progressbar](../../_images/pattern-library/style-progressbar.png) diff --git a/src/pages/pattern-library/getting-user-input/date-time-selector.md b/src/pages/pattern-library/getting-user-input/date-time-selector.md index accc1d1..9975178 100644 --- a/src/pages/pattern-library/getting-user-input/date-time-selector.md +++ b/src/pages/pattern-library/getting-user-input/date-time-selector.md @@ -17,27 +17,27 @@ Use this element whenever a date, date range, time or time range needs to be gat ### Single Date Picker -![](../../_images/pattern-library/w-singledate.png) +![Single date picker](../../_images/pattern-library/w-singledate.png) ### Date Range Picker -![](../../_images/pattern-library/w-daterange.png) +![Date range picker](../../_images/pattern-library/w-daterange.png) ### Single Time Picker -![](../../_images/pattern-library/w-timepicker.png) +![Time picker](../../_images/pattern-library/w-timepicker.png) ### Time Range Picker -![](../../_images/pattern-library/w-timerange.png) +![Time range picker](../../_images/pattern-library/w-timerange.png) ### Single Date and Time Picker -![](../../_images/pattern-library/w-date&time.png) +![Date and time picker](../../_images/pattern-library/w-date&time.png) ### Date and Time Range Picker -![](../../_images/pattern-library/w-date&timerange.png) +![Date and time range picker](../../_images/pattern-library/w-date&timerange.png) ## Formats @@ -74,7 +74,7 @@ The following applies to ranges only: * The calendar/time widget will require a unique style for active and inactive areas * User will not be able to select date or time on the To area until selection is made on the From area first -![](../../_images/pattern-library/disabled-state.png) +![Disabled state](../../_images/pattern-library/disabled-state.png) (Styles will support a disabled state for areas which depend on sequence for ranges) @@ -117,33 +117,33 @@ MM/DD/YYYY can be confused with DD/MM/YYYY, so please assume the following: Field selection works the same as a typical text field with -![](../../_images/pattern-library/selection-state.png) +![Selection state](../../_images/pattern-library/selection-state.png) ## Style **Single Date Picker:** -![](../../_images/pattern-library/datepicker.png) +![Date picker](../../_images/pattern-library/datepicker.png) **Date Range Picker:** -![](../../_images/pattern-library/rangedatepicker.png) +![Range date picker](../../_images/pattern-library/rangedatepicker.png) **Single Time Picker:** -![](../../_images/pattern-library/timepicker.png) +![Time picker](../../_images/pattern-library/timepicker.png) **Time Range Picker:** -![](../../_images/pattern-library/timerangepicker.png) +![Time range picker](../../_images/pattern-library/timerangepicker.png) **Single Date and Time Picker:** -![](../../_images/pattern-library/date&timepicker.png) +![Date and time picker](../../_images/pattern-library/date&timepicker.png) **Date and Time Range Picker:** -![](../../_images/pattern-library/rangedate&timepicker.png) +![Range date and time picker](../../_images/pattern-library/rangedate&timepicker.png) ## Accessibility @@ -178,7 +178,7 @@ Keyboard navigation on days that are not included the currently displayed month * Ctrl+Space multiple selection of certain days. * Esc closes a DatePicker that is opened as a Popup. -Do not implement keyboard navigation schemes that would place more than one calendar day in the tab order at any time as this impacts the usability of keyboard navigation. For example, using HTML anchors for the gridcells places them all in the tab order impacting the usability of keyboard navigation. +Do not implement keyboard navigation schemes that would place more than one calendar day in the tab order at any time as this impacts the usability of keyboard navigation. For example, using HTML anchors for the grid cells places them all in the tab order impacting the usability of keyboard navigation. ### WAI-ARIA Roles, States, and Properties @@ -191,7 +191,7 @@ Do not implement keyboard navigation schemes that would place more than one cale * When a day is selected it should have aria-selected="true" otherwise it should be set to "false" or removed. * Changes in aria states, identified here, as well as focus, should be clearly styled to show the user where their point of regard is and what days are selected. -When the datepicker is active a calendar day of the week should always have focus. This can be achieved by setting the tabindex on that day as appropriate and then using script to give it focus. Alternatively, the grid container could set aria-activedescendant to the id of the currently focused gridcell. Keep in mind that older browsers may not support aria-activedescendant. +When the date picker is active a calendar day of the week should always have focus. This can be achieved by setting the tabindex on that day as appropriate and then using script to give it focus. Alternatively, the grid container could set aria-activedescendant to the id of the currently focused gridcell. Keep in mind that older browsers may not support aria-activedescendant. ### Time Picker Widget diff --git a/src/pages/pattern-library/getting-user-input/form-elements.md b/src/pages/pattern-library/getting-user-input/form-elements.md index 219ad95..3c2bca5 100644 --- a/src/pages/pattern-library/getting-user-input/form-elements.md +++ b/src/pages/pattern-library/getting-user-input/form-elements.md @@ -23,24 +23,24 @@ In most cases every text field, text box, radio button group, checkbox or checkb **Example of label-top:** -![](../../_images/pattern-library/form_sample_horiz.png) +![Form sample horizontal](../../_images/pattern-library/form_sample_horiz.png) **Example of label-left:** -![](../../_images/pattern-library/form_sample_vert.png) +![Form sample vertical](../../_images/pattern-library/form_sample_vert.png) ## "Required" Indicator As a matter of best practices, any input that is required in order to be successfully submitted should clearly bear an indication. This is achieved by including an asterisk in relation to the form element. The asterisk should precede the label whenever the label appears above the form field. However, for left-aligned form labels the asterisk should follow the label, thus appearing between the label and form field –this improves scanability making it less likely that the user will overlook the required fields. -![](../../_images/pattern-library/required.png) +![Required fields](../../_images/pattern-library/required.png) ## Focus State To assist the user, the form element with `.focus()` will display a subtle blue stroke to indicate that the element is currently "active". Focus can be re-directed by "tabbing" or otherwise selecting outside the form element that has focus. -![](../../_images/pattern-library/focus.png) +![Focus state](../../_images/pattern-library/focus.png) ## Form Elements and the Page Grid @@ -48,30 +48,30 @@ For _label-left_ form elements the amount of horizontal real estate allowed for **Grid and label-left form:** -![](../../_images/pattern-library/grid_horiz.png) +![Grid horizontal](../../_images/pattern-library/grid_horiz.png) **Grid and label-top form:** -![](../../_images/pattern-library/grid_vert.png) +![Grid vertical](../../_images/pattern-library/grid_vert.png) ## Text Field Text fields are used to collect alphanumeric input directly from the user. As a matter of design, the length of the field should be comparable to the length of information to be collected. This can passively set an expectation on the part of the user as to how much or what type of information is to be provided. -![](../../_images/pattern-library/text_field.png) +![Text field](../../_images/pattern-library/text_field.png) ### Additional Text Field In cases where some, but not every, user may want to provide additional information (such as Building or Room Number as part of an address) an additional field may be paired with the initial text field. In these cases, if it is 'reasonably clear' what this additional field is for, a label may not be necessary for the additional field. However, as a rule each form element should have a label. -![](../../_images/pattern-library/add_field.png) +![Additional text field](../../_images/pattern-library/add_field.png) ### "Re-sizable" Text Field It may be advantageous to allow the text area to be 'stretched' by the user to accommodate the amount of data input. This is most useful when the amount of data or character-count is unlimited and/or the amount of text to be entered large or unpredictable ('comments' for instance). When presenting this a re-sizable area to the user it is crucial to include the "grabber" icon in the lower-right corner of the field to indicate this functionality to the user. -![](../../_images/pattern-library/resize_field.png) +![Resizable field](../../_images/pattern-library/resize_field.png) In cases where a re-sizable text field is not desired, reasonable space should be provided to collect the data. If the text entered then exceeds the area, the text should flow upward, keeping the most recent text in view. @@ -79,43 +79,43 @@ In cases where a re-sizable text field is not desired, reasonable space should b Often times a text field will be paired with a checkbox to enable some behavior associated with the data provided ("Keep me signed in" on a log in screen for example). In these instances, most often, including a label for the checkbox element is not required or needed. A slight indentation of the sub-elemental checkbox can help inform the user that the elements are related and not two distinct form elements. -![](../../_images/pattern-library/field_checkbox.png) +![Text field with associated checkbox](../../_images/pattern-library/field_checkbox.png) ### Text Field with Icon Trigger or Button A control may be placed inside (overlaid on) a text field to "trigger" a more sophisticated or robust interaction, as in the case of something like **date picker**. The icon should appear on the far right end of the field. Once a user has interacted with the control and a value is set, the value should display in the field, as well as the control (icon). This of course allows the user to edit the field if they so desire. -![](../../_images/pattern-library/date_pick.png) +![Date picker](../../_images/pattern-library/date_pick.png) When an ancillary or sub-action must be performed using the data input (or selected from) a particular element a, "button" may be required to initiate the sub-action and should be located in close proximity to the form element. If the sub-action involves a single form field an icon should be used and should directly follow the form element. If the sub-action involves a set of form elements, as with **sign-in**, a more traditional "button" should follow the group. The button should follow the application UI style for buttons. A link may be substituted for a button, however doing so may reduce the 'find-ability' of the call to action. -![](../../_images/pattern-library/trigger.png) +![Trigger](../../_images/pattern-library/trigger.png) ## Checkboxes Checkboxes should be used in cases where one or many options may be selected. A checkboxes may also be used in cases where the user may wish to 'opt in' or enable an action or setting. Checkboxes may be used in relation to other form elements as well. -![](../../_images/pattern-library/checkboxes.png) +![Checkboxes](../../_images/pattern-library/checkboxes.png) If there is a _parent-child_ relationship of associated checkboxes there should be some visual distinction for the user between "some" checked and "all" checked, in the event that the child elements are hidden from view as in a expandable section. -![](../../_images/pattern-library/tri-check.png) +![Some and all checked](../../_images/pattern-library/tri-check.png) ## Radio Buttons Radio buttons should be used in cases of 'yes' or 'no'. The pair of radio buttons may be arranged either vertically or horizontally. Radio buttons may often have a default or preferred selection. This preferred selection should be the first button of the pair whenever possible. In some instances when only a single selection may be made but there are several options to choose from, all of the radio button in the set may appear un-selected or 'empty'. Once a user has made a selection however the selected state should be evident and be visible henceforth, even if the user changes the selection - it cannot be returned to the initial 'un-selected' state. -![](../../_images/pattern-library/radios.png) +![Radio buttons](../../_images/pattern-library/radios.png) ## Drop Down Selector - Single A drop down selector may be used when two or more options are available, but only one of the options may be selected. However whenever only two options are available the use of a drop down element should be weighed against the use of radio buttons. -![](../../_images/pattern-library/dropdown.png) +![Dropdown selector](../../_images/pattern-library/dropdown.png) Best practices suggest that a drop down selector should not be used for 'binary' or Yes/No selections, radio buttons are preferable in these situations. If the selection is not mandatory, a checkbox is preferred. If visibility of the list of options is desired or advantageous for the user or if the list of options is lengthy (say more than 6) a 'list box' should be used instead of a dropdown. @@ -127,62 +127,62 @@ When selecting multiple options and a drop down element is the desired implement The advantage of a list box is that it exposes more options to the user. The list can be made scroll-able when space is a consideration and/or the list is long. A list box is mandatory when the list of options exceeds 6 items. -![](../../_images/pattern-library/list_box.png) +![List box selector](../../_images/pattern-library/list_box.png) ## Attribute Builder - 'Chips' In instances where to user wishes to build a list of one or many, as in a list of email addresses for a distribution list or a set of color swatches for a product, an "attribute" builder may be employed. This is presented as a typical form field, but when the user _clicks_ into it a drop down list is revealed. The user may then select from the list as with a typical drop down or may begin typing to narrow the list, auto-suggest functionality would also apply to make this process more efficient. The selected options are then rendered as 'chips' in the field. The user can select as many as desired and the 'chip' fill in like bricks, wrapping to the next line when there is not enough space. These chips can then be removed either by clicking/tapping the chip in the field or 'backspacing' on the keyboard will remove each chip in reverse order (right to left inline). -![](../../_images/pattern-library/attribute_selector.png) +![Attribute selector](../../_images/pattern-library/attribute_selector.png) ## Form Field Validation Client-side validation should be used whenever possible to assist the user in completing an error-free form prior to submitting the data. A validation check should be triggered when the user redirects focus (clicks or tabs out of a field). A notification message should appear when an error was made. This message should appear in immediate proximity of the form element where the error occurred. This same style should be applied when messaging errors returned from server-side validation checks. Please refer to [Admin Errors and Messages Writing](../../style-guide/content/errors-and-messages.md) documentation for more details. -![](../../_images/pattern-library/validation.png) +![Form field validation](../../_images/pattern-library/validation.png) ## Disabled Form Field It may be necessary in some instances to display a form element but disable it so that the user cannot interact with it. Disabling can indicate a conflict with other related form elements, that an "opt in" is required to enable the feature, or that the proper level of authentication has not been obtained by the user. -![](../../_images/pattern-library/disabled.png) +![Disabled form field](../../_images/pattern-library/disabled.png) ## Units and Measurement Indicators In some cases it may be beneficial to indicate to the user the "unit" of the data to be input, such as currency or weight. This is accomplished by including standard symbolic indicator of the "unit", such as using €to denote the currency Euros. The indicator may either precede the input area or follow the input area. -![](../../_images/pattern-library/units.png) +![Units and measurement indicators](../../_images/pattern-library/units.png) ## Field Masking Some fields may benefit the user by providing an indication of the desired format of the data to be input. The mask should appear when the field gains "focus". -![](../../_images/pattern-library/masking.png) +![Field masking](../../_images/pattern-library/masking.png) ## Read-only Form Data It may be necessary or advantageous to display form field data that cannot be changed or edited. In these cases the form label should appear to provide context for the "read-only" data, but not the field bounding-box so that it is clear to the user that the data cannot be edited. -![](../../_images/pattern-library/read.png) +![Read-only form data](../../_images/pattern-library/read.png) ## Progressive Disclosure In some instances rather than displaying a form element in a disabled state, it may be preferred to hide the element until the user takes an action to 'opt in'. Once the user takes the action to opt in the enabled field(s) is dynamically presented (becomes visible) to the user. -![](../../_images/pattern-library/disclosure.png) +![Progressive disclosure](../../_images/pattern-library/disclosure.png) ## Contextual Help tooltip Akin to progressive disclosure is "contextual help". This may be used whenever it is likely the user will require or benefit from additional information regarding a form element. The advantage of "contextual help" over standard help text is that it provides more space for copy or when the majority of users would not need the information to complete the task. Its drawback is that it is hidden from 100% of the users and requires explicit action to reveal it. "Contextual help" should be used sparingly to minimize clutter. The user taps the icon to reveal the contextual help tooltip. Then taps again to close it. -![](../../_images/pattern-library/contextual_help.png) +![Contextual help tooltip](../../_images/pattern-library/contextual_help.png) ## Help text "Help text" may be associated with individual form elements. This text is used to provide specific details, helpful hints, or cautionary messages relating to the particular form element with which it is associated. Help text is always visible so care should be taken to ensure that the text is **necessary**, **helpful**, **clear** and **concise**. As with "Contextual Help", help text should be used judiciously. -![](../../_images/pattern-library/help_text.png) +![Help text](../../_images/pattern-library/help_text.png) ## Styling and Spacing @@ -190,7 +190,7 @@ For specific details concerning styling including fonts, colors and effects and **Sample of specs:** -![](../../_images/pattern-library/spec_sample.png) +![Style and spacing sample](../../_images/pattern-library/spec_sample.png) ## Accessibility diff --git a/src/pages/pattern-library/getting-user-input/image-uploader.md b/src/pages/pattern-library/getting-user-input/image-uploader.md index 31a383e..e458f64 100644 --- a/src/pages/pattern-library/getting-user-input/image-uploader.md +++ b/src/pages/pattern-library/getting-user-input/image-uploader.md @@ -29,29 +29,29 @@ This pattern should be used specifically to upload images, and not to upload doc The Image Uploader allows the user to browse for images to upload to the Admin application. This can accommodate single or multiple image upload. To initiate this behavior the user clicking on the "Upload Image" link (target area). The user then proceeds to select the desired images via the browser, using SHIFT + click or ALT/COMMAND + click to select multiple image files. -![](../../_images/pattern-library/image-uploader-browse.jpg) +![Image uploader via browser](../../_images/pattern-library/image-uploader-browse.jpg) **Uploading via Drag and Drop:** The user may also upload images (single or multiple) by dragging the desired images onto the Image Upload target area. -![](../../_images/pattern-library/image-uploader-drag.jpg) +![Image uploader via drag and drop](../../_images/pattern-library/image-uploader-drag.jpg) **Uploading Video Content:** To upload a video to the Admin application the user taps the "Add Video" button. -![](../../_images/pattern-library/image-uploader-video-button.jpg) +![Add video button](../../_images/pattern-library/image-uploader-video-button.jpg) -![](../../_images/pattern-library/image-uploader-video-uploaded.jpg) +![Video uploaded](../../_images/pattern-library/image-uploader-video-uploaded.jpg) A video settings panel is revealed that allows the user to provide the URL location of the video, write a description and upload a preview image for the video. The user taps the "Save" button to upload the information. -![](../../_images/pattern-library/image-uploader-video-panel.jpg) +![Video uploader panel](../../_images/pattern-library/image-uploader-video-panel.jpg) Once the video information is saved, the video settings panel closes and the user is returned to the image uploader (section) where the video preview image now appear. -![](../../_images/pattern-library/image-uploader-video-panel.jpg) +![Video uploaded](../../_images/pattern-library/image-uploader-video-uploaded.jpg) @@ -60,23 +60,24 @@ Currently the application does not allow Drag and Drop for Video Content. **Drag to Arrange Order:** The order in which images are displayed can be arranged by dragging the image or video to the desired position. -![](../../_images/pattern-library/image-uploader-arrange.jpg"> + +![Image uploader arrange](../../_images/pattern-library/image-uploader-arrange.jpg) **Image Settings:** In some areas of the Admin application uploaded images my have additional settings that effect the display of these images on the Storefront (e.g. Product Creation). These settings can be accessed via the "gear" icon found on the image thumbnail. -![](../../_images/pattern-library/image-uploader-settings.jpg) +![Image uploader settings](../../_images/pattern-library/image-uploader-settings.jpg) **Deleting an Image:** Likewise, an image may be removed from the Admin application by tapping the "trashcan" icon. -![](../../_images/pattern-library/image-uploader-delete.jpg) +![Image uploader delete](../../_images/pattern-library/image-uploader-delete.jpg) ## Dimensions -![](../../_images/pattern-library/multi-image-uploader-style.jpg) +![Multi image uploader style](../../_images/pattern-library/multi-image-uploader-style.jpg) ## Accessibility diff --git a/src/pages/pattern-library/getting-user-input/row-pattern.md b/src/pages/pattern-library/getting-user-input/row-pattern.md index 6cd9cdc..409b4de 100644 --- a/src/pages/pattern-library/getting-user-input/row-pattern.md +++ b/src/pages/pattern-library/getting-user-input/row-pattern.md @@ -48,23 +48,23 @@ The delete control _CAN_ allow the user to remove all rows, even the initial row The "Add" link however should always be present to allow the user to add a row, even in the event of deleting all rows. -![](../../_images/pattern-library/behavior.png) +![Behavior](../../_images/pattern-library/behavior.png) ## Pagination For better performance, the Row Pattern pagination should be enabled automatically whenever 20 (or more) rows are present. Once pagination is enabled an "Order" column should be appended to allow the user to rearrange the rows. -![](../../_images/pattern-library/pagination.png) +![Pagination](../../_images/pattern-library/pagination.png) Once pagination is enabled an "Order" column should be appended to allow the user to rearrange the rows. -![](../../_images/pattern-library/drag.png) +![Drag](../../_images/pattern-library/drag.png) ## Examples Typically the Row Pattern will span either 8 or 12 columns for the page grid, depending on the layout of the page or panel on which it appears. The Row Pattern should accommodate all typical form elements as are necessary, but discretion should be used to insure the elements within the row are easy to read and interact with and do not become to cramped within the space. -![](../../_images/pattern-library/row-examples.png) +![Row examples](../../_images/pattern-library/row-examples.png) ## Accessibility diff --git a/src/pages/pattern-library/getting-user-input/select-from-list.md b/src/pages/pattern-library/getting-user-input/select-from-list.md index 8762e68..dea06fe 100644 --- a/src/pages/pattern-library/getting-user-input/select-from-list.md +++ b/src/pages/pattern-library/getting-user-input/select-from-list.md @@ -19,25 +19,25 @@ When user need to select item(s) from a list of items, and each item can be iden This variation is good for Multi Selection with many options (10+), when the option does not need to be shown immediately or when space needs to be preserved. -![](../../_images/pattern-library/forms_multi-select_formElement2.png) +![Multi-select dropdown form element](../../_images/pattern-library/forms_multi-select_formElement2.png) ### Single Select Dropdown This variation is good for Single Selection with many options (10+), when the option does not need to be shown immediately or when space needs to be preserved.mmediately or when space needs to be preserved. -![](../../_images/pattern-library/forms_single-select_formElement.png) +![Single-select dropdown form element](../../_images/pattern-library/forms_single-select_formElement.png) ### Multi-Select List Box The advantage of a list box is that it exposes more options to the user. The list can be made scroll-able when space is a consideration and/or the list is long. A list box is mandatory when the list of options exceeds 6 items. -![](../../_images/pattern-library/listbox-multi.png) +![Multi-select list box](../../_images/pattern-library/listbox-multi.png) ### Single Select List Box The advantage of a list box is that it exposes more options to the user. The list can be made scroll-able when space is a consideration and/or the list is long. A list box is mandatory when the list of options exceeds 6 items. -![](../../_images/pattern-library/Listbox-single.png) +![Single-select list box](../../_images/pattern-library/Listbox-single.png) ## Accessibility diff --git a/src/pages/pattern-library/getting-user-input/use-default-config.md b/src/pages/pattern-library/getting-user-input/use-default-config.md index cd42c74..6f5cc98 100644 --- a/src/pages/pattern-library/getting-user-input/use-default-config.md +++ b/src/pages/pattern-library/getting-user-input/use-default-config.md @@ -19,11 +19,11 @@ When the value of a textfield does not have a default value set. ## Behavior -![](../../_images/pattern-library/defaultconfig_behavior.jpg) +![Default configuration behavior](../../_images/pattern-library/defaultconfig_behavior.jpg) ## Style -![](../../_images/pattern-library/defaultconfig_style.jpg) +![Default configuration style](../../_images/pattern-library/defaultconfig_style.jpg) ## Variations @@ -33,13 +33,13 @@ There are two variations. The behavior and style remains the same. The label is Value is taken from default scope and user needs to switch to default scope to change the default value -![](../../_images/pattern-library/variation1.jpg) +![Variation 1](../../_images/pattern-library/variation1.jpg) ### "Use Configuration Value" Value is set in Stores > Store configuration and user has to go there to change the default. -![](../../_images/pattern-library/variation2.jpg) +![Variation 2](../../_images/pattern-library/variation2.jpg) ## Accessibility diff --git a/src/pages/pattern-library/graphics/iconography.md b/src/pages/pattern-library/graphics/iconography.md index 658f3cd..164a461 100644 --- a/src/pages/pattern-library/graphics/iconography.md +++ b/src/pages/pattern-library/graphics/iconography.md @@ -23,7 +23,7 @@ Typically icons should represent a single, unique concept and be used consistent In the Admin UI icons have a simple, flat, single-color, 2D, style. This style prevents the loss of detail at smaller sizes and makes the shapes easier to comprehend. -![](../../_images/pattern-library/Magento-icon-contact-sheet.png) +![Magento icon contact sheet](../../_images/pattern-library/Magento-icon-contact-sheet.png) ## Creating Icons @@ -43,11 +43,11 @@ Any icon that is intended for general use in the UI should be submitted to the C Here is a guide to help you get started creating your own icon: -![](../../_images/pattern-library/icon-construction-guide.png) +![Icon construction guide](../../_images/pattern-library/icon-construction-guide.png) How to use the icon grid: -![](../../_images/pattern-library/using-icon-grid.png) +![Using icon grid](../../_images/pattern-library/using-icon-grid.png) ## Icon Fonts diff --git a/src/pages/pattern-library/navigation/links.md b/src/pages/pattern-library/navigation/links.md index 2cdefde..7ed6326 100644 --- a/src/pages/pattern-library/navigation/links.md +++ b/src/pages/pattern-library/navigation/links.md @@ -21,7 +21,7 @@ When initiating an action or a process ## Style -![](../../_images/pattern-library/links-style.png) +![Links style](../../_images/pattern-library/links-style.png) ## Accessibility @@ -50,9 +50,9 @@ Full Guideline Reference for Links: [https://www.w3.org/TR/WCAG10-HTML-TECHS/](h ### Links in forms/body of text that goes to an external page -![](../../_images/pattern-library/links-example1.png) +![Links example 1](../../_images/pattern-library/links-example1.png) -![](../../_images/pattern-library/links-example3.png) +![Links example 3](../../_images/pattern-library/links-example3.png) ### Breadcrumbs @@ -69,4 +69,4 @@ Full Guideline Reference for Links: [https://www.w3.org/TR/WCAG10-HTML-TECHS/](h **Example:** -![](../../_images/pattern-library/links-example5.png) +![Links example 5](../../_images/pattern-library/links-example5.png) diff --git a/src/pages/pattern-library/navigation/wizard.md b/src/pages/pattern-library/navigation/wizard.md index 4fffe31..71851b4 100644 --- a/src/pages/pattern-library/navigation/wizard.md +++ b/src/pages/pattern-library/navigation/wizard.md @@ -33,7 +33,7 @@ Use this pattern when the user needs to go through a process to accomplish a tas The whole structure must be responsive and fluid. -![](../../_images/pattern-library/structure-wizard.jpg) +![Structure wizard](../../_images/pattern-library/structure-wizard.jpg) **1. Wizard Title:** @@ -63,7 +63,7 @@ This should always be in the format "Step #: Step Label". Refer to below for basic styling. The special cases of styling can be found under variations. -![](../../_images/pattern-library/wizard-pattern-styles.jpg) +![Wizard pattern styles](../../_images/pattern-library/wizard-pattern-styles.jpg) ## Interaction and Behavior @@ -92,7 +92,7 @@ If the user is creating a new flow using wizard, the future steps can be disable **Other Navigation** (besides back and next buttons) -![](../../_images/pattern-library/wizard-pattern-behavior.jpg) +![Wizard pattern behavior](../../_images/pattern-library/wizard-pattern-behavior.jpg) ## Variations @@ -100,27 +100,27 @@ If the user is creating a new flow using wizard, the future steps can be disable In the first step, back button is disabled. -![](../../_images/pattern-library/wizard-Variation1.1.png) +![Wizard variation 1.1](../../_images/pattern-library/wizard-Variation1.1.png) -![](../../_images/pattern-library/wizard-Variation1.2.png) +![Wizard variation 1.2](../../_images/pattern-library/wizard-Variation1.2.png) In the last step, next button is disabled. -![](../../_images/pattern-library/wizard-Variation1.3.png) +![Wizard variation 1.3](../../_images/pattern-library/wizard-Variation1.3.png) ### 2.Process with Save Functionality at Any Step In the first step, back button is disabled, and next button is enabled. Save button is present so the user who only need to edit specific step, can 'Save' right after they are done editing. -![](../../_images/pattern-library/wizard-Variation3.1.png) +![Wizard variation 3.1](../../_images/pattern-library/wizard-Variation3.1.png) Any other steps, Save button is present. Both 'Back' and 'Next' buttons are enabled. -![](../../_images/pattern-library/wizard-Variation3.2.png) +![Wizard variation 3.2](../../_images/pattern-library/wizard-Variation3.2.png) 'Next' button becomes disabled. The user will use 'Save' button for saving. -![](../../_images/pattern-library/wizard-Variation3.3.png) +![Wizard variation 3.3](../../_images/pattern-library/wizard-Variation3.3.png) ### 3. Process with many steps that cannot fit in the given section @@ -128,4 +128,4 @@ It is not recommended to have too many steps for a wizard. But if a use case ari (for specific styling of this variation, refer to the link to .psd files in Assets.) -![](../../_images/pattern-library/wizard-Variation4.png) +![Wizard variation 4](../../_images/pattern-library/wizard-Variation4.png) diff --git a/src/pages/pattern-library/staging-patterns/module.md b/src/pages/pattern-library/staging-patterns/module.md index 65dff15..bbf77f9 100644 --- a/src/pages/pattern-library/staging-patterns/module.md +++ b/src/pages/pattern-library/staging-patterns/module.md @@ -25,36 +25,36 @@ The scheduled changes module, as defined below, should only be used with stage-a When no updates are available to be displayed on the timeline. -![](../../_images/pattern-library/sc-Module-empty.jpg) +![Scheduled changes module empty](../../_images/pattern-library/sc-Module-empty.jpg) ### Multiple Updates View Shows when several updates are scheduled for a stage-able entity. -![](../../_images/pattern-library/sc-Module-multiple-updates.jpg) +![Scheduled changes module multiple updates](../../_images/pattern-library/sc-Module-multiple-updates.jpg) ### Single Update View When a single update is scheduled, the module's default height is the same as the Multiple Updates View. Users can re-size the module, using the dragger at the bottom of the module. -![](../../_images/pattern-library/sc-Module-single-update.jpg) +![Scheduled changes module single update](../../_images/pattern-library/sc-Module-single-update.jpg) ### Loading More Updates The "Load More" button appears at the bottom of the list of scheduled updates. By default, 5 scheduled updates are displayed. To view more, users can click "Load More" to add the next set of scheduled updates. -![](../../_images/pattern-library/sc-Module-load-more.jpg) +![Scheduled changes module load more](../../_images/pattern-library/sc-Module-load-more.jpg) ## Styling ### No Updates View -![](../../_images/pattern-library/style-empty.jpg) +![Style empty](../../_images/pattern-library/style-empty.jpg) ### Single Update View - minimum height -![](../../_images/pattern-library/style-min-ht.jpg) +![Style minimum height](../../_images/pattern-library/style-min-ht.jpg) ### Multiple Updates View style -![](../../_images/pattern-library/styles-font.jpg) +![Styles font](../../_images/pattern-library/styles-font.jpg) diff --git a/src/pages/pattern-library/staging-patterns/timeline-dashboard.md b/src/pages/pattern-library/staging-patterns/timeline-dashboard.md index 098d7d4..2693c8e 100644 --- a/src/pages/pattern-library/staging-patterns/timeline-dashboard.md +++ b/src/pages/pattern-library/staging-patterns/timeline-dashboard.md @@ -39,7 +39,7 @@ These are the individual changes contained within an update. ### What markers mean on timeline -![](../../_images/pattern-library/Staging_Dashboard_0006_timeline_notes.jpg) +![Staging dashboard 0006 timeline notes](../../_images/pattern-library/Staging_Dashboard_0006_timeline_notes.jpg) 1. The user can scroll the timeline to see upcoming updates by tapping the arrow on an update, scrolling the timeline with scroll control, or the right arrow. @@ -47,50 +47,50 @@ These are the individual changes contained within an update. As the default state, this view shows completed, active and scheduled updates on the dashboard. The timeline's default date range is 1 week, which can be changed and customized.Updates are displayed in chronological order, with the most recent start date on top. -![](../../_images/pattern-library/Updates-Scheduled.jpg) +![Updates scheduled](../../_images/pattern-library/Updates-Scheduled.jpg) ### Update Summary, in Overlay Window When clicked, a bar on the timeline spawns an overlay window, showing a summary of the objects contained in the update. The window includes controls to edit or preview the update. -![](../../_images/pattern-library/Timeline-Dashboard-summary.jpg) +![Timeline dashboard summary](../../_images/pattern-library/Timeline-Dashboard-summary.jpg) ### 4-Week Zoom Control A slider control at the bottom of the page allows users to zoom out from 1 week to 4 weeks, viewing a bigger timeline of updates. -![](../../_images/pattern-library/4-week-zoom.jpg) +![4 week zoom](../../_images/pattern-library/4-week-zoom.jpg) ### "Load More" Control On the default timeline view, the number of updates displayed is set to 10. Clicking "Load More" adds more updates on the timeline. A grid menu control changes the number of items displayed per page. -![](../../_images/pattern-library/load-more.jpg) +![Load more](../../_images/pattern-library/load-more.jpg) ### Horizontal Scrolling for Future Updates A horizontal scrollbar at the bottom of the timeline provides the capability to view future updates that do not fit inside the span of the page. This scrollbar is usually not displayed. -![](../../_images/pattern-library/scrolled-to-future.jpg) +![Scrolled to future](../../_images/pattern-library/scrolled-to-future.jpg) ### Prioritized Timeline View, with Drag and Drop This is a variation of the timeline. This view only appears when stage-able entities on the timeline need to be ordered by priority. In the example displayed below – the priority scale has been used to display the sort order of the rules. To re-arrange the order, an item on the timeline can be dragged and moved. -![](../../_images/pattern-library/priority-schedule.jpg) +![Priority schedule](../../_images/pattern-library/priority-schedule.jpg) ### Data Table View This is an alternative view to the timeline in data table format. The functionalities of the timeline and the data table are consistent except for the pagination feature, which is used for data table view only. -![](../../_images/pattern-library/table-view.jpg) +![Table view](../../_images/pattern-library/table-view.jpg) ## Styling ### Updates schedule -![](../../_images/pattern-library/style_staging_dashboard.jpg) +![Style staging dashboard](../../_images/pattern-library/style_staging_dashboard.jpg) ### Update Summary, in Overlay Window -![](../../_images/pattern-library/style-summary.jpg) +![Style summary](../../_images/pattern-library/style-summary.jpg) diff --git a/src/pages/pattern-library/templates/address-form.md b/src/pages/pattern-library/templates/address-form.md index dd22b6e..2f61e9b 100644 --- a/src/pages/pattern-library/templates/address-form.md +++ b/src/pages/pattern-library/templates/address-form.md @@ -30,7 +30,7 @@ The only variation of this pattern at this time is the North American Address En | ZIP/Postal Code | Text Field | Yes | | Country | Dropdown (Default can be localized) | Yes | -![](../../_images/pattern-library/AddressForm_example01.jpg) +![Address form example 01](../../_images/pattern-library/AddressForm_example01.jpg) ## Styling @@ -38,7 +38,7 @@ This pattern will follow the Form standards established in the Form Elements and ## Usage Example -![](../../_images/pattern-library/AddressForm_example02.jpg) +![Address form example 02](../../_images/pattern-library/AddressForm_example02.jpg) ## Assets diff --git a/src/pages/pattern-library/templates/sign-in-form.md b/src/pages/pattern-library/templates/sign-in-form.md index 32a3042..1be7344 100644 --- a/src/pages/pattern-library/templates/sign-in-form.md +++ b/src/pages/pattern-library/templates/sign-in-form.md @@ -34,7 +34,7 @@ In its initial state the sign-in module consists of * a link to retrieve the user's password * a button to submit the user's credentials – **Sign in** -![](../../_images/pattern-library/Sign-in_initial.png) +![Sign in initial](../../_images/pattern-library/Sign-in_initial.png) ### Error state @@ -45,7 +45,7 @@ In the event that invalid credentials are submitted the sign-in module consists * a link to retrieve the user's password * a button to submit the user's credentials – **Sign in** -![](../../_images/pattern-library/Sign-in_error.png) +![Sign in error](../../_images/pattern-library/Sign-in_error.png) ### Password retrieval @@ -56,7 +56,7 @@ If the user opts to retrieve their password via the hyperlink ("Forgot your pass * a text field to enter the user's email address used at the time of registration; a button to submit the user's email address and initiate the process – **Retrieve Password** * a link to cancel the retrieval and return to the initial state of the sign-in module – "Back to Sign in" -![](../../_images/pattern-library/Sign-in_password-retrieval.png) +![Sign in password retrieval](../../_images/pattern-library/Sign-in_password-retrieval.png) ### Confirmation of password retrieval @@ -66,7 +66,7 @@ Once a user submits their email address to retrieve their password, the module w * text confirming that an email has been sent * a link to return to the initial state of the sign-in module – "Back to Sign in" -![](../../_images/pattern-library/Sign-in_password-retrieval_confirmation.png) +![Sign in password retrieval confirmation](../../_images/pattern-library/Sign-in_password-retrieval_confirmation.png) ### Error of password retrieval @@ -77,7 +77,7 @@ In the event that the user enters an invalid email address, either by mistyping * a text field to enter the user's email address used at the time of registration; a button to submit the user's email address and initiate the process – Retrieve Password * a link to cancel the retrieval and return to the initial state of the sign-in module – "Back to Sign in" -![](../../_images/pattern-library/Sign-in_password-retrieval_error.png) +![Sign in password retrieval error](../../_images/pattern-library/Sign-in_password-retrieval_error.png) ### Successful sign-out @@ -88,7 +88,7 @@ When the user signs out of the system they are presented with the sign-in module * a link to retrieve the user's password * a button to submit the user's credentials – **Sign in**. -![](../../_images/pattern-library/Sign-in_successful-signout.png) +![Sign in successful signout](../../_images/pattern-library/Sign-in_successful-signout.png) ## Style @@ -98,24 +98,24 @@ The module container should be centered in the browser and should be some percen ### Initial state -![](../../_images/pattern-library/Sign-in_initial.png) +![Sign in initial](../../_images/pattern-library/Sign-in_initial.png) ### Error state -![](../../_images/pattern-library/Sign-in_error.png) +![Sign in error](../../_images/pattern-library/Sign-in_error.png) ### Password Retrieval -![](../../_images/pattern-library/Sign-in_password-retrieval.png) +![Sign in password retrieval](../../_images/pattern-library/Sign-in_password-retrieval.png) ### Confirmation of password retrieval -![](../../_images/pattern-library/Sign-in_password-retrieval_confirmation.png) +![Sign in password retrieval confirmation](../../_images/pattern-library/Sign-in_password-retrieval_confirmation.png) ### Error of password retrieval -![](../../_images/pattern-library/Sign-in_password-retrieval_error.png) +![Sign in password retrieval error](../../_images/pattern-library/Sign-in_password-retrieval_error.png) ### Successful sign-out -![](../../_images/pattern-library/Sign-in_successful-signout.png) +![Sign in successful signout](../../_images/pattern-library/Sign-in_successful-signout.png) diff --git a/src/pages/style-guide/design/color.md b/src/pages/style-guide/design/color.md index 68b3fd4..79cf692 100644 --- a/src/pages/style-guide/design/color.md +++ b/src/pages/style-guide/design/color.md @@ -9,4 +9,4 @@ keywords: Our color palette reflects our brand personality. It meets accessibility standards and provides clear legibility, hierarchy, navigation, and messaging. -![](../../_images/style-guide/ColorPalette.jpg) +![Color palette](../../_images/style-guide/ColorPalette.jpg) diff --git a/src/pages/style-guide/design/iconography.md b/src/pages/style-guide/design/iconography.md index 76b2217..f287296 100644 --- a/src/pages/style-guide/design/iconography.md +++ b/src/pages/style-guide/design/iconography.md @@ -29,7 +29,7 @@ However, an icon or a design element in an icon can sometimes serve different fu In the Admin, icons have a simple, flat, single-color, and two-dimensional style. This style prevents loss of detail at smaller sizes and makes the shapes easier to recognize. -![](../../_images/style-guide/Magento-icon-contact-sheet.png) +![Magento icon contact sheet](../../_images/style-guide/Magento-icon-contact-sheet.png) ## Creating icons @@ -57,11 +57,11 @@ For any icon to be used in Admin, ask the Adobe Commerce Product Team to review Here's one method to get started: -![](../../_images/style-guide/icon-construction-guide.png) +![Icon construction guide](../../_images/style-guide/icon-construction-guide.png) Learn how to use the icon grid: -![](../../_images/style-guide/using-icon-grid.png) +![Using icon grid](../../_images/style-guide/using-icon-grid.png) ## Icon fonts diff --git a/src/pages/style-guide/design/page-grids.md b/src/pages/style-guide/design/page-grids.md index 53fd64e..dfd8ef3 100644 --- a/src/pages/style-guide/design/page-grids.md +++ b/src/pages/style-guide/design/page-grids.md @@ -13,7 +13,7 @@ In the Admin, a grid is used on all pages to establish global layouts for page t - The 12-column grid's minimum width spans 984px. The grid expands its layout across larger screens. - For views smaller than 984px, a page's layout doesn't change as the page shrinks to fit smaller screen widths. -![](../../_images/style-guide/PageGrid.png) +![Page grid](../../_images/style-guide/PageGrid.png) ## Slide-out grid @@ -33,7 +33,7 @@ When a panel spawns, it slides from right to left atop and almost completely ove Standard layout within the edges of a browser screen -![](../../_images/style-guide/slideout-panel7.png) +![Slide-out panel 7](../../_images/style-guide/slideout-panel7.png) (Panel position in relation to browser edge) @@ -43,7 +43,7 @@ Spacing: Slide-out content is contained in a 12-column page grid, with additional 15px padding on the left edge. The gutter spacing at left is fluid, based on browser width. -![](../../_images/style-guide/slideout-panel8.png) +![Slide-out panel 8](../../_images/style-guide/slideout-panel8.png) (Nested page-grid with additional padding) @@ -53,4 +53,4 @@ Nested slide-outs: For multiple panels displayed, additional gutter space is used at left to show a small sliver of a Slide-out below another Slide-out. -![](../../_images/style-guide/slideout-panel9.png) +![Slide-out panel 9](../../_images/style-guide/slideout-panel9.png)