@reterial/theme

This is themeing for reterial design.

Usage no npm install needed!

<script type="module">
  import reterialTheme from 'https://cdn.skypack.dev/@reterial/theme';
</script>

README

@reterial/theme

This is themeing for reterial design.

What is the story of reterial ?

Reterial is jaypy.code design! When i was a junior frontend developer, i used Material Design to design my websites. I've used this design for a lots of websites and applications such as Meydoon or Kateb or Raybuy and other things. When i used them, i have to customize and change some styles of the design and my coworkers and friends said you shit on it (Take it good, they were my firends :D). And now i have my design to show them it's funny.

How to build ?

You can use npm or yarn to complie all scss file to css in dist folder with:

npm run build

How to start developing ?

I've design some scripts to start developing by runing serve to run a http server on port 5000 and a script to watch 'src' folder to refresh all built css on port 3000 with 'socket.io'.

Run the http server by:

npm run serve

Watch on source file change by:

npm run build:watch

How to use ?

There is two way to themeing. You can use pre built themes or make it from your palette.

1) Link reterial theme

You can import themes from pre built css with CDNs.

<link type="stylesheet" href="/reterial/theme/dist/theme name.min.css" />

2) Make yours

You can also make your custom palette and theme with @reterial/theme package.

How to install ?

You can use with npm or yarn to install @reterial/theme package.

npm i @reterial/theme

or use yarn

yarn add @reterial/theme

How to use ?

After installing the package, in your scss or sass file import core of Reterial theme and make your palette and set it with a name.

With @reterial/color

@import "~@reterial/theme/core.scss";

@include ReterialTheme("theme name", ReterialPalette());

Without @reterial/color

@import "~@reterial/theme/core.min.scss";

@include ReterialTheme("theme name", ());

Warning

If you use ~@reterial/theme/core.scss, it gives you ReterialPalette function and you must install @reterial/color (You don't need beacuse i've added to dependencies) else you just have ReterialTheme mixin.

Call it!

You should call it with a html tag on body element. You must add reterial-theme with your theme name as a tag on body element.

In: HTML
...
<body reterial-theme="theme name">
    ...
</body>
...

Accessibility

You should know how to use defained mixins and functions in @reterial/theme.

ReterialTheme

ReterialTheme is a mixin and gets a theme name and ReterialPalette (or a map).

In: scss

$my-palette: (
    "primary": black
);

@inculde ReterialTheme("theme name", $my-palette);

ReterialPalette

ReterialPalette is a function to merge default palette with your custom palette. It use @reterial/color by default so you must installed @reterial/color if you use this function but you don't need to import it.

In: scss
$my-palette: ReterialPalette(
    (
        "primary": $reterial-blue-500,
        "body": $reterial-ash-200
    )
);

CDNs

jsdelivr

https://cdn.jsdelivr.net/npm/@reterial/theme@latest/dist/default.min.css

unpkg

https://unpkg.com/@reterial/theme@latest/dist/default.min.css

github

https://raw.githubusercontent.com/reterial/theme/main/dist/default.min.css