@ebay/skin/global
Font Family
Applications on Node.js stack will not receive the eBay Market Sans font as the default font. Applications must use the ebay-font loader.
Websites utilising Skin via CDN will have the eBay Market Sans font as the default font.
Paragraph without Market Sans
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Paragraph with Market Sans
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Link States
The states below are hardcoded for the purpose of this demo.
@ebay/skin/less
The LESS module contains variables and mixins.
Typography
- .ds6-typography-giant-2
- .ds6-typography-giant-1
- .ds6-typography-large-2-bold
- .ds6-typography-large-2
- .ds6-typography-large-2-secondary
- .ds6-typography-large-1-bold
- .ds6-typography-large-1
- .ds6-typography-large-1-secondary
- .ds6-typography-medium-bold
- .ds6-typography-medium
- .ds6-typography-medium-secondary
- .ds6-typography-regular-bold
- .ds6-typography-regular
- .ds6-typography-regular-secondary
- .ds6-typography-small-bold
- .ds6-typography-small
- .ds6-typography-small-secondary
Color Palette
- @ds6-color-g201-gray (#ffffff)
- @ds6-color-g202-gray (#f5f5f5)
- @ds6-color-g203-gray (#e5e5e5)
- @ds6-color-g204-gray (#c7c7c7)
- @ds6-color-g205-gray (#767676)
- @ds6-color-g206-gray (#111820)
- @ds6-color-p001-blue (#e1fbff)
- @ds6-color-p002-blue (#006efc)
- @ds6-color-p003-blue (#10299c)
- @ds6-color-p004-blue (#4295ff)
- @ds6-color-p011-red (#ffe7ec)
- @ds6-color-p012-red (#ff5151)
- @ds6-color-p013-red (#c9002c)
- @ds6-color-p021-yellow (#fffaab)
- @ds6-color-p022-yellow (#ffd80d)
- @ds6-color-p031-green (#ebffcc)
- @ds6-color-p032-green (#71c63e)
- @ds6-color-p033-green (#147133)
Product Usage
- @ds6-color-text-default
- @ds6-color-text-secondary
- @ds6-color-link-default
- @ds6-color-link-visited
- @ds6-color-information-background
- @ds6-color-badge
- @ds6-color-star
- @ds6-color-warning-background
- @ds6-color-critical-text
- @ds6-color-critical-background
- @ds6-color-confirmation-text
- @ds6-color-confirmation-background
- @ds6-color-background-default
@ebay/skin/color
Static sites that do not have access to the LESS variables can leverage the color palette via the color module.
Please reference the LESS module for all available colours. Please note, that the class names emit the "ds6-" prefix.
@ebay/skin/combobox
The Skin combobox is intended for use as a custom view (or facade) for the native HTML select element. JavaScript will be required to create 2-way binding between the two.
This version of the combobox is read-only. In the near future we will launch a true combobox, with type-ahead and type-to-add capabilities.
Note: Because the combobox uses an input element, which must grow to properly display it's contents, we have chosen to have the combobox always remain fluid. It is up to the developer to contain the width, if necessary. Extra care will be needed when placing a combobox side-by-side with other controls such as buttons and textboxes.
Default read-only combobox
By default, the first item should be selected if the user does not specify a selection. This matches the behavior of a native HTML select element.
Selected read-only combobox
Borderless read-only combobox
@ebay/skin/dialog
A dialog is a child window spawned by the main web page or application. This window forms a new background layer in our design system topography.
A dialog must remain in a hidden state for all users and devices until called upon.
All dialogs have support for optional CSS transition effects. See dialog transitions section for more details.
Default Dialog
The default dialog is a lightbox.
The lightbox will have a margin of 15vh and automatically scales vertically.
Heading
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Fill Dialog
Apply the dialog__window--fill modifier to have the lightbox fill at least 70% of the screen (centered vertically).
Heading
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Left Panel Dialog
Apply the dialog__window--left modifier to have the dialog act as a left side panel (100vh height and aligned to the left side of the screen).
Heading
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Right Panel Dialog
Apply the dialog__window--right modifier to have the dialog act as a right side panel (100vh height and aligned to the right side of the screen).
Heading
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Fullscreen Panel Dialog
Apply the dialog__window--full modifier to have the dialog take up the entire viewport.
Heading
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Dialog Transitions
Skin currently supports two types of dialog transition: fade and slide. Because CSS cannot transition an element to and from hidden (i.e. "display:none"), transitions are acheived using two classes applied during different stages of the animation. Before applying an animation class to the dialog component you must first apply the primer class which will be $name-init where $name is the base class. The dialog component has two different animation base classes dialog--show and dialog--hide.
Firstly the -init postfix must be applied to dialog component to prime animation. One animation frame later the -init postfix must be removed and the base class applied to start the animation. Finally once the animation has completed remove the base class.
An example implementation is shown below.
Fade Transition
Any dialog window and mask can be faded in and out, using the dialog__window--fade modifier on the dialog__window and a dialog--mask-fade modifier on the dialog.
The default fade duration is 16ms.
Heading
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Heading
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Slide Transition
Any panel or fullscreen dialog can slide in and out, using the dialog__window--slide modifier on the dialog__window.
The slide transition duration is 32ms. An accompanying dialog--mask-fade-slow modifier on the dialog should also be applied. This slower fade matches the 32ms of the slide transition.
@ebay/skin/icon
The icon module allows direct access to the Skin iconography via inline SVG or background SVG.
NOTE: inline SVG will inherit the color of it's containing element; this behaviour can be useful when crafting custom buttons and controls.
Inline SVG
To avoid gigantic SVG icons when in a non-CSS (edge-case) state, we use the SVG width and height attributes to override the default 300x150 size.
See the @ebay/skin/svg module for instructions on how to import SVG symbols, and yes, we will be adding more icons in an upcoming release!
Background SVG
Background SVGs have a fixed stroke colour. This colour cannot be changed via CSS.
List of available icons
Arrows
Chevrons
Forms
Navigation
Navigation support
Programs
Save
Search
@ebay/skin/notice
The purpose of a notice is to convey the next course of action for a task or flow. The notice must be clear and concise, with minimum cognitive load.
A notice may appear at page-level or inline-level, with a status of priority, confirmation, or information.
Page Notice
A page-level notice typically appears prominently at the top of the page or directly above a module. To aid discoverabilty of such important content for assistive technology, we make each page notice a landmark region with heading.
Congrats! You just listed "Spam and Eggs From the Cow's Perspective (paperback)."
Error. Please take another look at the following:
Card number, Expiration date & Security code.
Good news! You get free shipping on your next pair of shoes! Learn more.
Dismissable Page Notice
Append a button with class page-notice__close to create a dismissable page notice.
Congrats! You just listed "Spam and Eggs From the Cow's Perspective (paperback)."
You can check your listing or sell another item
Good news! You get free shipping on your next pair of shoes! Learn more.
Inline Notice
An inline-level notice is typically located near a form field or user interface control.
Delivered on May 1, 2017
Tracking number: 93878473859376898908657567
Update your credit card.
Global Shipping Program transaction.
Pagination
Pagination allows a user to navigate back and forwards through a URL based dataset, or jump directly to any specific URL in that set.
Pagination links may update the results immediately on the client via AJAX, or on the server via a full page reload.
Fluid Pagination
Apply the pagination--fluid modifier class to fill all available horizontal space. Horizontal space will be distributed around each pagination item as necessary.
NOTE: The heading need only be wrapped in an ARIA live-region if client-side pagination is implemented (i.e. partial page updates).
@ebay/skin/select
Default select
Selected option
Borderless select
@ebay/skin/svg
This module imports an SVG file containing all Skin symbol definitions.
Due to lack of browser support for external SVG definitions, we recommend inlining the definitions that you need in a hidden SVG block.
Note that in the examples below, we use the SVG viewBox attribute to crop out the "frame" (i.e. the whitespace) around the actual icon. This allows us to use CSS to fine-tune margins around icons, rather than the often arbitrary amount found in the SVG itself.
@ebay/skin/typography
Static sites that do not have access to LESS preprocessor can leverage the Skin type ramp via the typography module.
- .giant-text-2
- .giant-text-1
- .large-text-2
- .large-text-1
- .medium-text
- .regular-text
- .small-text
With the exception of giant text, which is always bold, all other entries in the type ramp can be set to bold-text or secondary-text by adding the relevant class:
- .large-text-2 .bold-text
- .large-text-2 .secondary-text