Plume CSS

Welcome to Plume CSS, a lightweight and highly themeable CSS Micro-Framework. Plume is meant to be the lowest CSS layer on your app. You should use Plume if you are working on a small to medium application, if you feel that you dont need all the larger frameworks features, or if you just want to code and grow all the style by yourself. Plume offers a solid, highly customizable and extendable start point. Plume was inspired by projects such as Skeleton, Milligram, MiniCss and Material, encompassing some practices found in all of them. On this page you'll find features overview, an Interactive Theme Editor, visual reference and a list of utilities and custom properties. Here are some of Plume's coolest characteristics:

📦   Pretty small
The complete source has ~5kb gzipped, or 28 kb inflated. You can also load only the modules that you'll need, as buttons.css or form.css elements, for example.
⛔   No JavaScript
Completly javascript free. Is just pure and simple CSS. You can test it by disabling javascript and reloading this page. The theme editor wont be available, but Plume will be intact.
🔌   Plug and play
Load the lib, load your custom theme if you have one, and you're ready to go. Plume is already normalized. You can start to build your application with a minimal and solid CSS foundation.
🖌   Highly themeable
70+ CSS custom properties available. Easily customizable from CSS or SCSS. Theme constructor with immediate visual feedback available (Button on the top left corner).
∈   Completely scoped
Styles are applied under the plume class, and all classes and properties are prefixed. You can add plume on an existent project with no harm and no side effects on the outer scope.
💎   Decoupled themes
Custom themes are just a set of CSS Custom properties. You can load them dynamically or scope them to have multiple themes on the same application - even same page (change this page theme on the bottom left button).
📐   No grid system
You can easily build any kind of layout with CSS Flexbox and/or Grid. If you still prefer to use a grid system, there are a plenty of them available out there (bootstrap grid, flexbox grid, etc), you choose.
🎯   Bare Elements Styled
Despite a large set of utilities, Plume applies the style on bare elements. Classes and custom attributes are used to alter the default styles and behavior. Since Plume its scoped, this wont harm your page.

Getting Started

Install with NPM (Also available with Yarn)

npm install plume-css

Then in your app

import 'plume-css'

Or download the package and add the css on your document:

<link rel="stylesheet" href="plume-css/lib/plume-all.css">

Attention: Plume is completely scoped! So, after loading it, you must add the plume class on a wrapper div to apply local styles or on the body tag to apply the styles on the entire page. You can also add the pm-container class to have a containerized wrapper. For advanced loading and usage, please check the Github Documentation.

<div class="plume"> ... </div>


Colors Palette

Typography

This is a Heading

This is a Heading

This is a Heading

This is a Heading

This is a Heading
This is a Heading
Creativity is just connecting things. When you ask creative people how they did something, they feel a little guilty because they didn't really do it, they just saw something. It seemed obvious to them after a while. That's because they were able to connect experiences they've had and synthesize new things.

This is an example of mark tag in a paragraph, you can use them along text elements, and this is a kbd example alt + f4 representing a keyboard combination

Deserunt eiusmod ex proident ullamco magna occaecat proident pariatur. Est aute culpa nostrud ut deserunt esse occaecat nostrud esse nisi quis excepteur dolore. Occaecat quis sit cillum est ut ipsum elit deserunt. Esse cupidatat ex eu nostrud sit Lorem elit labore laboris dolor elit.

Heading Group

Example of grouped Headings

Nulla Lorem sint voluptate consequat sint. Proident laborum id irure Lorem dolore reprehenderit sint et Lorem ut sint laborum non. Culpa labore qui nisi enim laborum cillum elit minim nostrud aute. Eiusmod velit aute nulla do minim fugiat irure commodo excepteur. Amet culpa pariatur labore culpa ad et reprehenderit tempor in exercitation tempor mollit deserunt.


This is a link followed by another link

Buttons Family

Buttons Types

¹ When use the pm-btn-text button type, you can use the text color utilities to change the color.
² For rounded buttons, you can use the pm-btn-round modifier with any button from buttons family

Input Text

Fieldset

Switches

Other Inputs

Upload File
70 %

Input States

Table

Company Contact Country
Alfreds Futterkiste Maria Anders Germany
Centro comercial Moctezuma Francisco Chang Mexico
Ernst Handel Roland Mendel Austria
Island Trading Helen Bennett UK

Lists

  1. List Example A
  2. List Example B
  3. List Example C
  4. List Example D
  5. List Example E
Male writers:
Ernest Hemingway
Carlos Drummond
Female writers:
Virgínia Woolf
Hilda Hilst

Pre & Code

This is a text on a pre tag
another paragraph
and another
@function cssvar($name, $prefix: pm) {
  @return var(--#{$prefix}-#{$name});
}

This is an inline code function () {} used in a paragraph.

Utilities

Plume has a large set of utilities that helps you to alter elements styles and behavior. They are pretty useful to avoid code repetition. You can check the complete utilities list on the link below:

Attr Description
.pm-container Centered padded application container
.pm-surface Applies the application surface color (--pm-app-surface-color) as background-color
.pm-ground Applies the application ground color (--pm-app-ground-color) as background-color. Useful for divs, card, jumbotrons, etc
.pm-font-primary Sets font-family to the application primary font (--pm-font-family-primary)
.pm-font-secondary Sets font-family to the application secondary font (--pm-font-family-secondary)
.pm-padded Applies padding: 16px
.pm-stacked Applies margin-bottom: 32px
.pm-disabled Applies disabled style on element. Alias for [disabled], but with no semantic value
.pm-is-hidden Applies display:none !important style on element. Alias for [hidden], but with no semantic value
.pm-is-invisible Applies visibility: hidden !important; opacity: 0 !important;
.pm-no-padding Applies padding: 0px !important
.pm-no-margin Applies margin: 0px !important
.pm-no-border Applies border: none !important
.pm-hgroup Must be applied on a div which holder 2+ Headings. Almost like the deprecated hgroup element
.pm-dont-print Will hide the element from @print layout

Text

.pm-h* Applies the heading text style to the given element. For example: .pm-h1 will apply H1 text style to the given element. You can replace the "h*" for any value on headings range: h1, h2, h3, h4, h5, h6
.pm-p Applies paragraph text style to the given element
.pm-mark Applies mark text style to the given element
.pm-nowrap Forces white-space nowrap on text content
.pm-text-black Sets color to #000000 by default
.pm-text-app Sets color to the application font color (--pm-app-text-color)
.pm-text-white Sets color to #ffffff by default
.pm-text-light Sets color to #cccccc by default
.pm-text-dark Sets color to #444444 by default
.pm-text-upper Sets text transform to uppercase
.pm-text-lower Sets text transform to lowercase
.pm-text-capitalize Sets text transform to capitalize
.pm-text-center Sets text align to center
.pm-text-left Sets text align to left
.pm-text-right Sets text align to right
.pm-text-primary Sets color to the application primary-color (--pm-primary-color)
.pm-text-secondary Sets color to the application secondary-color (--pm-secondary-color)
.pm-text-success Sets text-color to the application success-color (--pm-color-success)
.pm-text-error Sets text-color to the application error-color (--pm-color-error)
.pm-text-warning Sets text-color to the application warning-color (--pm-color-warning)
.pm-text-info Sets text-color to the application info-color (--pm-color-info)
.pm-link Applies the link style to the text

Background

.pm-bg-black Sets background-color to #000000
.pm-bg-white Sets background-color to #ffffff
.pm-bg-dark Sets background-color to #444444
.pm-bg-light Sets background-color to rgba(200,200,200,.1)
.pm-bg-primary Sets background-color to the application primary-color (--pm-primary-color)
.pm-bg-secondary Sets background-color to the application secondary-color (--pm-secondary-color)
.pm-bg-success Sets background-color to the application success-color (--pm-color-success)
.pm-bg-error Sets background-color to the application error-color (--pm-color-error)
.pm-bg-warning Sets background-color to the application warning-color (--pm-color-warning)
.pm-bg-info Sets background-color to the application info-color (--pm-color-info)

Border

.pm-bc-primary Sets border-color to the application primary-color (--pm-primary-color)
.pm-bc-secondary Sets border-color to the application secondary-color (--pm-secondary-color)
.pm-bc-success Sets border-color to the application success-color (--pm-color-success)
.pm-bc-error Sets border-color to the application error-color (--pm-color-error)
.pm-bc-warning Sets border-color to the application warning-color (--pm-color-warning)
.pm-bc-info Sets border-color to the application info-color (--pm-color-info)

Buttons

.pm-button Applies the button style to the given element
.pm-btn-block Sets display block + width 100% on a button
.pm-btn-primary Applies the primary button style
.pm-btn-secondary Applies the secondary button style
.pm-btn-gradient Applies the gradient button style
.pm-btn-gradient Applies the gradient button style
.pm-btn-black Applies the black button style
.pm-btn-white Applies the white button style
.pm-btn-light Applies the light button style
.pm-btn-success Applies the success button style (--pm-color-success)
.pm-btn-error Applies the error button style (--pm-color-error)
.pm-btn-danger Alias for btn-error
.pm-btn-warning Applies the warning button style (--pm-color-warning)
.pm-btn-round Applies the round button style (--pm-color-round)
.pm-btn-text Applies the text button style

Form Controls

.pm-field Blocked level wrapper for form controls (fieldset inherits this style)
.pm-label Applies label styles to the given element
.pm-required Must be applied on labels, .field or fieldsets to add a red asterisk (*) on text
.pm-input-file Use this class in a span element with an input type file inside for prettify.
[data-pm-holder] Must be applied on labels when wrapping elements
[data-pm-subs] Must be applied on range elements to show range max/min as legend
[data-pm-success] Show a success message on the given element bottom. Use it like data-pm-success="message"
[data-pm-error] Show a error message on the given element bottom. Use it like data-pm-error="message"
[data-pm-warning] Show a warning message on the given element bottom. Use it like data-pm-warning="message"
[data-pm-info] Show a info message on the given element bottom. Use it like data-pm-info="message"

Theming

Plume has a very flexible CSS Custom Properties collection that you can override to change its default appearance. You can use the Theme Editor by clicking on the Top left Button of this page or do it directly on your styles. To start experimenting, open the theme editor and try to change the App Surface Color to #000000 and the App Font Color to #ffffff on the editor, and voilá: you have a Dark Theme. Click on the link below to know more about:

You can write your own theme from scratch by overriding classes on your code, you can load a pre-made custom theme from Plume's Themes folder, or you can use the Theme Editor on the left side of this page to construct your own. When using the Theme Editor, you can just tune the CSS Custom Properties using inputs, getting immediate visual feedback. Your modifications will be saved on the URL, so you can share your theme, or save its URL as a documentation. You can download your theme by clicking on the "Download Theme" button or by copying its source code to a CSS file. Just load your Custom Theme CSS file on your application after Plume's CSS, and done. For advanced usage, please read the github's documentation.

Custom Properties

CUSTOM THEMES LIST
    Your Custom Theme