Fundamental Library Styles is a light-weight presentation layer that can be used with your UI framework of choice (e.g. Angular, React, Vue, etc.). With Fundamental Library Styles, library of stylesheets and HTML tags, developers can build consistent Fiori apps in any web-based technology.
Learn more at http://sap.github.io/fundamental-styles/
We are also working on Angular, React and Vue implementations.
The library is modular so you can use as little or as much as you need.
The fully compiled, minified library is available via CDN for inclusion in your application.
<link href="fundamental-styles.css" rel="stylesheet">
The compiled CSS for the full library and modules, e.g., core, layout, etc., are distributed via NPM.
npm install fundamental-styles --save
NOTE: We only distribute compiled CSS for each component, not the full project or HTML for specific components.
The distrubtion folder contains several css files per component: a default file and one file per supported theme (sap_fiori_3
, sap_fiori_3_dark
, sap_fori_3_light_dark
, sap_fiori_3_hcb
, sap_fori_3_hcw
). Each themed file includes fallback support for css variables in IE11 for the corresponding theme. The default file includes fallbacks for sap_fiori_3
.
See the Icon Component for a list of icon class names. See Project Configuration below for instructions to include SAP Fiori 3 icons in your project.
This project does not contain fonts and icons - they must be added to your project separately. Download the @sap-theming library. After adding fonts and icons to your project, include the following in your css:
@font-face {
font-family: "72";
src: url("~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/72-Regular-full.woff")
format("woff");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "72";
src: url("~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/72-Bold-full.woff")
format("woff");
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: "72";
src: url("~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/72-Light-full.woff")
format("woff");
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: "SAP-icons";
src: url("~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/SAP-icons.woff")
format("woff");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'BusinessSuiteInAppSymbols';
src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/BusinessSuiteInAppSymbols.woff') format('woff');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'SAP-icons-TNT';
src: url('~@sap-theming/theming-base-content/content/Base/baseLib/baseTheme/fonts/SAP-icons-TNT.woff') format('woff');
font-weight: normal;
font-style: normal;
}
html {
font-size: 16px;
}
If you are not supporting IE11, the recommended format is woff2
. If supporting IE11, use woff
.
-
Clone Repository - Clone the repo using the git software of your choice or using the git command
git clone https://github.com/SAP/fundamental-styles.git
-
Install NPM Dependencies:
npm install
-
Serve the development playground and documentation website locally -
npm start
The project has the following prerequisites:
- Git (for downloading this repo)
- Node LTS
Our Service Level Agreement. Fundamental Library Styles is aiming to deliver:
- Consumable CSS that strives for Fiori 3.0 compliance.
- Reference HTML specification that consuming libraries MUST adhere to.
- Theme-able components built on top of SAP Theming Base Content by consuming the CSS Custom Properties delivered by the theming library
- Self-contained styles. That is, each component's style file contains all the styling needed to be rendered properly. External styling won't bleed-in internal styling won't bleed-out.
Bleeding in
means that CSS global reset won't affect the component andbleeding out
means that the component styling should not affect other HTML elements) - Accessibility support
- Accessibility - Color contrast support for WCAG 2.0 level AA (4.5:1 for typical text)
- Accessibility - Semantic HTML reference
- Accessibility - Aria attributes noted when possible in HTML reference
This library is also being consumed by Fundamental Library for Angular, Fundamental Library for React, and Fundamental Library for Vue.
The above SLA is the primary difference between this library and the earlier Fundamental.
If you encounter an issue, you can create a ticket or post on the Fundamentals Slack channel.
If you want to contribute, please check the Contribution Guidelines. Also check the Development Guidelines and Visual Testing Guide.
The fundamental-styles
library follows Semantic Versioning. These components strictly adhere to the [MAJOR].[MINOR].[PATCH]
numbering system (also known as [BREAKING].[FEATURE].[FIX]
).
Merges to the main
branch will be published as a prerelease. Pre-releases will include an rc version (e.g. [MAJOR].[MINOR].[PATCH]-rc.[RC]
).
The following circumstances will be considered a MAJOR or BREAKING change:
- Dropping existing classnames, css variables, color names, color groups, spacing parameters
- The existing underlying HTML markup of a component is altered
- Non-visual HTML attribute changes/additions (such as
role
,aria-*
,data-*
)Note: Fundamental Styles provides CSS directly, and HTML as reference to consumers. Because of the reference relationship of the HTML seen in Fundamental Styles, we want to be very clear when we alter that reference so that it is properly reflected in JS implementation libraries. Because of this, even non-visual changes will be treated as breaking.
The following circumstances will NOT be considered a MAJOR or BREAKING change:
- Introducing new classnames, css variables, color names, color groups, spacing parameters
- Adding or modifying CSS properties and values of existing classnames.
Thanks to Chromatic for providing the visual testing platform that helps us review UI changes and catch visual regressions.