mine.css
A classless stylesheet for HTML documents and evolution of style.css.
About
Make a plain HTML page look good and readable with zero effort! Serves as a nice base layer default.
Check out the style guide to see what it looks like.
Differences
Some differences from style.css:
- CSS Variables
- Dark Mode
- Remove some old browser support
- Use post-css build pipeline
- Minor stylistic differences
Install
<link rel="stylesheet" href="https://unpkg.com/mine.css">
<link rel="stylesheet" href="https://unpkg.com/mine.css@^4.0.0">
$ npm install mine.css
@import url('https://unpkg.com/mine.css');
Usage
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Hello World</title>
<link rel="stylesheet" href="https://unpkg.com/mine.css@^4.0.0">
</head>
<body>
<h1>Hooray!</h1>
</body>
</html>
The best way to get familiar with the look and feel of mine.css
is to visit the style guide. Detailed examples of every HTML element (and how to write them in markdown) are available there.
Node
npm install mine.css --save-dev
Here are some modules out there for requiring CSS using JavaScript that should also work just fine:
CSS Variables
You can override defaults directly with CSS variables. Here are the default variable settings for mine.css
:
:root {
--font-body: var(--system-sans);
--font-code: var(--system-mono);
--font-size-body: 14px;
--font-size-scale: 0.25vw;
--line-height-body: 1.75;
--line-height-pre: 1.45;
--light-text: hsla(0, 0%, 7%, 1);
--light-background: white;
--light-layer-background: hsla(0, 0%, 100%, 0);
--light-accent-background: hsla(0, 0%, 95%, 1);
--light-accent-midground: hsla(0, 0%, 84%, 1);
--light-accent-foreground: hsla(0, 0%, 49%, 1);
--light-link-text: hsla(208, 100%, 50%, 1);
--light-mark-background: hsla(60, 100%, 50%, 1);
--dark-text: white;
--dark-background: hsla(0, 0%, 12%, 1);
--dark-layer-background: var(--transparent);
--dark-accent-background: hsla(0, 0%, 20%, 1);
--dark-accent-midground: hsla(0, 0%, 30%, 1);
--dark-accent-foreground: hsla(0, 0%, 60%, 1);
--dark-link-text: hsl(206, 100%, 70%);
--dark-mark-background: hsla(58, 66%, 30%, 1);
}
Overriding settings
You can override settings like so:
@import 'mine.css';
:root {
--font-size-body: 14px;
}
If you want to use the font stacks to override global font settings, you can do so like this:
@import 'mine.css';
:root {
--font-body: var(--system-serif);
}
Customizing colors
To customize colors, override the color variable for dark and light mode:
:root{
--light-text: red
--light-background: blue;
--dark-text: blue;
--dark-background: red;
}
If you want to implement other styles that follow the light/dark mode pattern in mine.css, use the theme agnostic color var:
.some-class {
color: var(--accent-foreground)
}
The theme agnostic variables are as follows:
.light-mode {
--text: var(--light-text);
--background: var(--light-background);
--layer-background: var(--light-layer-background);
--accent-background: var(--light-accent-background);
--accent-midground: var(--light-accent-midground);
--accent-foreground: var(--light-accent-foreground);
--link-text: var(--light-link-text);
--mark-background: var(--light-mark-background);
--code-text: var(--light-text);
--code-background: var(--light-accent-background);
--code-border: var(--light-accent-midground);
}
.dark-mode {
--text: var(--dark-text);
--background: var(--dark-background);
--layer-background: var(--dark-layer-background);
--accent-background: var(--dark-accent-background);
--accent-midground: var(--dark-accent-midground);
--accent-foreground: var(--dark-accent-foreground);
--link-text: var(--dark-link-text);
--mark-background: var(--dark-mark-background);
--code-text: var(--dark-text);
--code-background: var(--dark-accent-background);
--code-border: var(--dark-accent-midground);
}
Overriding the system theme
If you want to allow users to switch between light and dark, indipendent of the system theme, you can apply the .light-mode
or .dark-mode
class the the document body.
Thought there is a subtle relationship between the class and the system preference, so it is better to use the theme switcher script (./src/theme-switcher.js) which handles user preference while still following the system preference.
Usage:
<script type="module">
import { toggleTheme } from 'https://unpkg.com/bcomnes/mine.css@^4.0.0?module';
window.toggleTheme = toggleTheme
</script>
The toggleTheme
export is exclusively offered as an ESM module. If you need CJS, just vendor it.
See ./site/ for examples of this in action.
Layout
mine.css
doesn't include any layout css, thought it does ship a simple layout css file that provides basic layout for a page and supports safe-area
that accommodates cell phone notches and whatnot.
<link rel="stylesheet" href="https://unpkg.com/mine.css@^4.0.0/dist/layout.css">
You can see this layout style in action on the mine.css
website.
Thanks
mine.css
stands on the shoulders of giants from the excellent work found in style.css. Thank you!
Contributing
Contributions welcome! Please read the contributing guidelines first.
License
ISC