@substrate-system/css v0.0.3
CSS
CSS normalize, some variables, and the Stack.
Install
npm i -S @substrate-system/css
Use
Bundler
In a bundler (esbuild
), import from this package.
import '@substrate-system/css'
Or minified:
import '@substrate-system/css/min'
// import specific files
import '@substrate-system/css/min/normalize'
CSS import
Import from this package via CSS:
@import url("node_modules/@substrate-system/css/dist/normalize.min.css");
Variables
This package exposes CSS variables, used by substrate web components.
import '@substrate-system/css'
:root {
--substrate-background: #f4f7f9;
--substrate-accent: #38b9ff;
--substrate-primary: #36393d;
--substrate-secondary: #e8e8e4;
--substrate-light: #999da0;
--substrate-medium: #999da0;
--substrate-dark: #5a6571;
--substrate-shadow: #96969640;
--substrate-disabled: #98a1af;
--substrate-button-text: #36393d;
--substrate-button-shadow: #00000054;
--substrate-button-background: #f5f5f5;
--substrate-button-background-hover: #e6e6e6;
--substrate-button-background-focus: #ededed;
--substrate-input-text: #36393d;
--substrate-input-text-hover: #e4e4e4;
--substrate-input-border: #c9c9c9;
--substrate-input-border-hover: #36393d;
--substrate-input-background-focus: #eee;
--substrate-border: #e7edf1;
--substrate-error: #f06653;
--substrate-notification: #f06653;
--substrate-danger: #f06653;
--substrate-success: #85b274;
--substrate-warning: #f9a967;
--substrate-info: #999da0;
--substrate-overlay: #fff66;
}
normalize
Reset/normalize styles for a nice blank slate.
See joshcomeau.com/css/custom-css-reset
These days, browsers don't have massive discrepancies when it comes to layout or spacing. By and large, browsers implement the CSS specification faithfully, and things behave as you'd expect.
Featuring*:
box-sizing: border-box;
-- Sizes based onborder-box
, notcontent-box
.margin: 0
-- Remove default margin. Add margins as needed in application CSS.line-height: calc(2px + 2ex + 2px);
-- Dyslexia friendly line height.!NOTE
You may want to override theline-height
for headings in your application CSS. See this article for more info aboutline-height
.-webkit-font-smoothing: antialiased;
-- Chrome and Safari still use subpixel antialiasing by default, which is bad on high DPI screens.- Use block display by default for media tags, like
img
andvideo
. - Inherit fonts for form controls
font
is a rarely-used shorthand that sets a bunch of font-related properties, likefont-size
,font-weight
, andfont-family
. - Avoid text overflows -- Permission to use hard wraps when no soft wrap opportunties can be found
- Improve line wrapping -- widows and orphans
- Root stacking context -- OPTIONAL -- Create a new stacking context without needing to set a
z-index
. See What The Heck, z-index??
The Stack
import '@substrate-system/css/stack'
// minified
import '@substrate-system/css/min/stack'
It's Andy Bell's favorite 3 lines.
In its entirety:
.stack > * + * {
margin-block-start: 1.5rem;
}