JSPM

mcu-extra-color

0.1.8
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 6
  • Score
    100M100P100Q28663F
  • License Apache-2.0

Additional packages to add new features and bug fixes to Material Color Utilities.

Package Exports

  • mcu-extra-color
  • mcu-extra-color/package.json

Readme

MCU Extra

npm minified size downloads

Additional packages to add new features and bug fixes to Material Color Utilities.

Install

@material/material-color-utilites is the peer dependency for this package.

pnpm add mcu-extra @material/material-color-utilities # pnpm
yarn add mcu-extra @material/material-color-utilities # yarn
npm i mcu-extra @material/material-color-utilities # npm

Usage

Just use it as usual, but import the available utils from mcu-extra.

Theming

import { argbFromHex } from '@material/material-color-utilities'
import { applyTheme, themeFromSourceColor } from 'mcu-extra'

// Get the theme from a hex color
const theme = themeFromSourceColor(argbFromHex('#f82506'), [
  {
    name: "custom-1",
    value: argbFromHex("#ff0000"),
    blend: true,
  },
])

// Print out the theme as JSON
console.log(JSON.stringify(theme, null, 2))

// Check if the user has dark mode turned on
const systemDark = window.matchMedia("(prefers-color-scheme: dark)").matches

// Apply the theme to the body by updating custom properties for material tokens
applyTheme(theme, {target: document.body, dark: systemDark})

Documentation

View the documentation here: https://importantimport.github.io/mcu-extra/

It is automatically generated on update using api-extractor and api-documenter.

Comparison

@material/material-color-utilities

Features

  • themeFromSourceColor & themeFromImage:
    • Migrated to the new DynamicScheme with support for Tone-based Surfaces (surface-container-*) and Add-ons (*-fixed, *-fixed-variant, *-fixed-dim).
    • Selectable variants and contrast level
  • applyTheme: Selectable color formats

Changes

  • applyTheme: Set without suffix variables only when brightnessSuffix is false

Bug fixes

@importantimport/material-color-utilities

Since upstream was completely unavailable at the time, I created and maintained @importantimport/material-color-utilities.

But it was always a pain to keep the fork updated with the upstream, so now that importing is no longer an issue I recreated an additional package mcu-extra.

You can get new Tone-based Surfaces, but they are no longer exported as CommonJS.

Contributing

Welcome to contribute! For major improvements, please open an issue for discussion first.