1.0.5 • Published 29 days ago

@termehui/termeh v1.0.5

Weekly downloads
-
License
ISC
Repository
github
Last release
29 days ago

Termeh

Modern modular CSS framework contains a set of useful function, mixin and mobile first styles.

Installation

Caution: this package only install as SCSS dependency and can't use as css directly!

npm i -D @termehui/termeh

Usage

Note import priority is important!

// required
@use "@termehui/termeh/termeh.scss" as T;
@use "vars"; // local vars file
@use "@termehui/termeh/styles.scss"; // contains reset and global styling (heading, image, table)
// optional ...
@use "@termehui/termeh/components/all.scss";

Structure

You can use all.scss file inside sub-directory to import all directory content.

  • termeh.scss (core functions)
  • styles.scss (base styles)
  • components
    • all.scss
    • button.scss
    • card.scss
    • header.scss
    • icon.scss
    • link.scss
    • meta.scss
    • tag.scss
  • form
    • all.scss
    • checkbox.scss
    • field.scss
    • input.scss
    • select.scss
    • textarea.scss
  • helpers
    • all.scss
    • attachment.scss
    • layout.scss
    • typography.scss
    • visibility.scss
  • layout
    • all.scss
    • breadcrumb.scss
    • components.scss
    • container.scss
    • content.scss
    • gaper.scss
    • grid.scss
    • landscape.scss
    • layout.scss
    • padder.scss

Predefined Variables

DefinitionValueUsability
define-color("base")whitebase theme color
define-variant("base", "color")#081e30text color
define-variant("base", "code")inheritcode block color
define-variant("base", "strong")inheritstrong text color
define-variant("base", "section")#f8f9fasection background
define-variant("base", "separator")#e1e6easeparator background
define-variant("base", "box")#ffffffboxes color (e.g. card)
define-color("inverse")#081e30base inverse color
define-variant("inverse", "color")whiteinverse text color
define-variant("inverse", "code")inheritinverse code block color
define-variant("inverse", "strong")inheritinverse strong text color
define-variant("inverse", "separator")#414447inverse separator background
define-variant("inverse", "section")#373f46inverse section background (e.g. code block)
define-variant("inverse", "box")#081e30inverse boxes color (e.g. card)
color.define-color("table")whitetable background
define-variant("table", "color")nulltable text color
define-variant("table", "divider")T.color("shade")table divider color
define-variant("table", "separator")T.variant("base", "separator")table separator color
define-variant("table", "even")variant("base", "section")table even row background
define-variant("table", "sort")rgba(T.variant("shade", "mute"), 0.1)table sorted column background
define-variant("table", "hover")rgba(T.variant("shade", "mute"), 0.25)table hover row background
define-color("input")whiteinput background
define-variant("input", "border")T.variant("base", "separator")input border
define-variant("input", "placeholder")T.variant("shade", "mute")input placeholder color
define-variant("input", "disabled")#f0f2f5input disabled background
define-variant("input", "disabled-border")#e1e6eainput disabled border
define-variant("input", "disabled-color")#879aabinput disabled color
define-palette("shade")#8d99aeshade palette base
define-palette("primary")#2196f3primary palette base
define-palette("error")#c00021error palette base
define-palette("success")#0ead69success palette base
define("base", "direction")ltrbase direction
define("base", "min-width")300pxmin document width
define("line-height", "normal")1.6embase line-height
define("line-height", "medium")1.4emmedium text line-height
define("line-height", "large")1.2emlarge line-height
define("line-height", "inline")1.8eminline element line-height (e.g. tag)
define("radius", "normal")3pxbase element border-radius
define("radius", "rounded")290486pxrounded element border-radius
define("radius", "circle")50%circular element border-radius
define("media-query", "ignore")()media queries to ignore in iterations
define("font", "size")12pxbase font size
define("font", "family")"'Segoe UI', Tahoma, Geneva, Verdana"base font family
define("font", "code-family")monospacecode font family
define("font", "code-size")1remcode font size
define("scroll", "size")8pxdefault scroll size
define("scroll", "track")variant("base", "section")default scroll track background
define("scroll", "thumb")variant("base", "separator")default scroll thumb color
define("overlay", "background")rgba(white, 0.75)overlay background
define("overlay", "color")inheritoverlay color
define("overlay", "filter")noneoverlay backdrop-filter
define("strong", "weight")boldstrong text color
define("decorator", "size")2pxdecorator size
define("spinner", "size")2remspinner size
define("transition", "duration")250msdefault transition duration
define("transition", "ease")easedefault transition ease
define("image", "sizes")()not iterable size to include in image sizes
define("table", "colors")()not iterable color to include in table colors
define("grid", "units"()not iterable unit to include in grid units
define("grid", "gaps"()not iterable gap to include in grid gaps
define("container", "gaps"()not iterable gap to include in container gaps
define("container", "desktop"960pxcontainer desktop width
define("container", "widescreen"1200pxcontainer widescreen width
define("gaper", "gaps"()not iterable gap to include in gaper gaps
define("content", "gaps"()not iterable gap to include in content gaps
define("content", "colors")()not iterable color to include in content colors
define("landscape", "gaps"()not iterable gap to include in landscape gaps
define("padder", "gaps"()not iterable gap to include in padder gaps
define("input", "colors")()not iterable color to include in input colors
define("input", "gaps"()not iterable gap to include in input gaps
define("button", "sizes"()not iterable size to include in button sizes
define("button", "colors")()not iterable color to include in button colors
define("tag", "size"0.9emdefault tag font-size
define("tag", "sizes"()not iterable size to include in tag sizes
define("tag", "colors")()not iterable color to include in tag colors
define("card", "gaps" )()not iterable gap to include in card gaps
define("card", "colors")()not iterable color to include in card colors
define("card", "sizes")()list of card sizes ("small" 10em, "medium" 20em)
define("card", "border" )nulldefault card border
define("card", "shadow")a soft shadowdefault card shadow
define("card", "border-{$color}")nullcolored card border
define("card", "shadow-{$color}")nullcolored card shadow
define("header", "gaps"()not iterable gap to include in header gaps
define("header", "colors")()not iterable color to include in header colors
define("icon", "sizes"()not iterable size to include in icon sizes
define("icon", "colors")()not iterable color to include in icon colors
define("icon", "action-filter")grayscale(0.5)action icon image filter
define("icon", "action-hover-filter")grayscale(0)action icon hover image filter
define("link", "colors")()not iterable color to include in link colors
define("meta", "colors")()not iterable color to include in meta colors
define-size("small", 0.8em, true)0.8emsmall text size (<small>)
define-size("normal", 1em, true)1emnormal size (<h6>)
define-size("medium", 1.25em, true)1.25emnormal size (<h5>)
define-size("large", 1.5em, true)1.5emnormal size (<h4>)
define-size("big", 2em, true)2emnormal size (<h3>)
define-size("huge", 2.5em, true)2.5emnormal size (<h2>)
define-size("massive", 3em, true)3emnormal size (<h1>)
define-gap("macro", 1.6rem, false)`1.6rem | used for outer gaps
define-gap("micro", 0.5rem, false)`0.5rem | used for inner gaps
define-gap("mini", 0.5em, true)`0.5em | used for iterable gaps
define-gap("small", 0.85em, true)`0.85em | used for iterable gaps
define-gap("normal", 1em, true)`1em | used for iterable gaps
define-gap("medium", 1.5em, true)`1.5em | used for iterable gaps
define-gap("large", 2em, true)`2em | used for iterable gaps
define-gap("huge", 2.5em, true)`2.5em | used for iterable gaps
define-gap("massive", 3em, true)`3em | used for iterable gaps
define-unit("full", 100%, true)100%used for iteration (default grid system use units)
define-unit("half", 50%, true)50%used for iteration (default grid system use units)
define-unit("1-of-3", 33.3333%, true)33.3333%used for iteration (default grid system use units)
define-unit("2-of-3", 66.6666%, true)66.6666%used for iteration (default grid system use units)
define-unit("1-of-4", 25%, true)25%used for iteration (default grid system use units)
define-unit("2-of-4", 50%, true)50%used for iteration (default grid system use units)
define-unit("3-of-4", 75%, true)75%used for iteration (default grid system use units)
define-unit("1-of-5", 20%, true)20%used for iteration (default grid system use units)
define-unit("2-of-5", 40%, true)40%used for iteration (default grid system use units)
define-unit("3-of-5", 60%, true)60%used for iteration (default grid system use units)
define-unit("4-of-5", 80%, true)80%used for iteration (default grid system use units)
define-unit("1-of-7", 14.2857%, true)14.2857%used for iteration (default grid system use units)
define-unit("2-of-7", 28.5714%, true)28.5714%used for iteration (default grid system use units)
define-unit("3-of-7", 42.8571%, true)42.8571%used for iteration (default grid system use units)
define-unit("4-of-7", 57.1428%, true)57.1428%used for iteration (default grid system use units)
define-unit("5-of-7", 71.4285%, true)71.4285%used for iteration (default grid system use units)
define-unit("6-of-7", 85.7142%, true)85.7142%used for iteration (default grid system use units)

Core

// Contrast
@function luminance($color);
@function darkest($color1, $color2);
@function lightest($color1, $color2);
@function contrast-ratio($back, $color);
@function tone($color);
@function contrast($base, $color1, $color2);
@function harmony($base, $color1, $color2);

// Palette
@function palette($color, $variant);

// Breakpoint
// Devices: tablet, desktop, widescreen, fullhd
@function breakpoint($device);
// Names: until-fullhd, until-widescreen, until-desktop, tablet, desktop, widescreen, fullhd, mobile, tablet-only, desktop-only, widescreen-only
@function media-query($name);
@function breakpoints();
@function media-queries($includes: ());
@mixin from($device);
@mixin until($device);
@mixin non-touch();
@mixin touch();
@mixin mobile();
@mixin tablet();
@mixin tablet-only();
@mixin until-desktop();
@mixin desktop();
@mixin desktop-only();
@mixin until-widescreen();
@mixin widescreen();
@mixin widescreen-only();
@mixin until-fullhd();
@mixin fullhd();

// Color
@mixin define-color($name, $color);
@mixin define-palette($name, $color);
// Default Ui Variants: active, active-inverse, light, light-inverse, light-active, light-active-inverse, readable, readable-inverse, mute, mute-inverse, color, color-inverse, decorator, decorator-inverse, overlay
@mixin define-variant($name, $variant, $color);
@function color($name, $inverse: false);
@function variant($name, $variant, $fallback: null);
@function colors($only: ()); // only palette colors

// Fonts
@mixin define-size($name, $size, $iterable: true);
@function size($name);
@function sizes($includes: ());
// Names: lighter, light , normal, medium , semibold, bold , bolder
@function font-weight($name);
@function font-weights($only: ());

// Gaps
@mixin define-gap($name, $gap, $iterable: true);
@function gap($name);
@function gaps($includes: ());

// Units
@mixin define-unit($name, $unit, $iterable: true);
@function unit($name);
@function units($includes: ());

// Var
@mixin define($com, $prop, $v);
@function var($com, $prop, $fallback: null);
@mixin ltr();
@mixin rtl();

// Utils
@function negate($value);
@function half($value);
@mixin unify-parent($child);

// UI
@function shadow($x, $y, $color, $soft: false);
@function control-padding();
@mixin transition($field);
@mixin disabled();
@mixin clearfix();
@mixin overflow-touch();
@mixin locked();
@mixin unselectable();
@mixin selectable();
@mixin placeholder;
@mixin reset();
@mixin control();
@mixin selection($name); // set color selection from registered color
@mixin scrollbar($width, $track: null, $thumb: null, $thumb-hover: null);
@mixin scrollable($color);
@mixin scroll-color($color);
@mixin spinner($size, $color, $width);
@mixin spinner-color($color);
@mixin loader($size, $color, $width);
@mixin loader-color($color);
@mixin overlay($color, $filter);
@mixin marged($lastChild: true); // style :not(:last-child):not(.is-marginless)
@mixin marginless() // remove element margin-bottom
  @mixin padded(); // style :not(.is-paddingless)
@mixin paddingless(); // remove element padding

Base

  • hr: is-marginless
  • p: is-marginless
  • h1-6: is-marginless
  • img: is-centered, is-{size}, is-rounded, is-circular
  • table: is-fullwidth, is-stripped, is-hoverable, is-{color}
    • Variables table: colors
    • Container: .table-container scrollable table wrapper
    • tr: is-even, is-expanded
      • .extra: extra content inside table row to show/hide with .is-expanded modifier
      • th: is-center-aligned, is-right-aligned, is-left-aligned, is-filler, is-multiline, is-sorted, is-sortable, is-asc, is-desc
      • td: is-center-aligned, is-right-aligned, is-left-aligned, is-filler, is-multiline, is-sorted, is-ellipsis

Components

  • button: is-loading, is-rounded, is-disabled, is-simple, is-light, is-{size}, is-{color}

    • Variables button: colors, sizes
  • card: is-top-decorated, is-bottom-decorated, is-loading, is-overlaid, is-{gap}-padded, is-{color}, is-{card-size}

    • Variables card: gaps, colors, sizes ('small' 20em, 'large' 30em), border, shadow, border-{color}, shadow-{color}
    • .separator: is-attached
    • .section: is-header, is-footer, is-attached, is-secondary, top-sticky, bottom-sticky
    • .overlay
  • header: is-marginless, is-left-decorated, is-right-decorated, is-{gap}-padded, is-{color}
  • icon: is-outline, is-action, is-loading, is-{size}, is-{color}, is-disabled

    • Variables icon: sizes, colors, action-filter, action-hover-filter
    • img
    • svg
  • link: is-{color}

    • Variables link: colors
  • meta: is-action, is-{color}
    • Variables meta: colors
  • tag: is-loading, is-light, is-action, is-rounded, is-{size}, is-{color}
    • Variables tag: size, sizes, colors

Form

  • checkbox, radio: is-{color}, is-disabled
    • Variables input: colors
    • sample: <label class="checkbox" for="chk1"><input type="checkbox" id="chk1"> Select</label>
  • field: is-marginless, is-required, is-{color}, is-failed
    • Variables input: colors
    • label or .field-label for nested label
    • .help
    • .error
    • .input
    • .input-like
  • input: is-focused, is-failed, is-{gap}-gaped, is-{color}, is-disabled
    • Variables input: colors, gaps
    • .separator
    • .gutter
    • input
  • select: is-focused, is-failed, is-{color}, is-disabled
  • textarea: is-focused, is-failed, is-{color}, is-disabled

Helpers

  • attachment: is-attached, is-left-attached, is-left-top-attached, is-left-bottom-attached, is-right-attached, is-right-top-attached, is-right-bottom-attached, is-top-attached, is-top-left-attached, is-top-right-attached, is-bottom-attached, is-bottom-left-attached, is-bottom-right-attached
  • layout: is-clearfix, is-ltr, is-rtl, is-clipped, is-radiusless, is-shadowless, is-clickable, is-unselectable, is-selectable, is-locked, is-scrollable
  • typography: is-italic, is-underline, is-line-through, is-undecorated, is-capitalized, is-lowercase, is-uppercase, is-ellipsis, is-{size}-sized, is-{weight}-weighted, is-{align}-aligned, is-{color}-colored
  • visibility: is-hidden, is-until-fullhd-hidden, is-until-widescreen-hidden, is-until-desktop-hidden, is-mobile-only, is-tablet-only, is-desktop-only, is-widescreen-only, is-fullhd-only, is-mobile-hidden, is-tablet-hidden, is-desktop-hidden, is-widescreen-hidden, is-fullhd-hidden, is-tablet-only-hidden, is-desktop-only-hidden, is-widescreen-only-hidden, is-touch-only, is-touch-hidden

Layout

  • breadcrumb:
    • .separator
    • .active
  • components: is-{align}-aligned, is-{justify}-justified
    • .filler
    • .separator
  • container: is-marginless, is-fullwidth, is-paddingless, is-{gap}-padded
    • Variables container: gaps, desktop, widescreen, fullhd
  • content: is-centered, is-loading, is-overlaid, is-paddingless, is-{gap}-padded, is-{color}
    • Variables content: gaps, colors
    • .overlayz
  • gallery: is-gapless, is-{gap}-gaped, is-stackable
    • .item is-block
      • NOTE: you must add thumbnail class to image if img not in root of item.
    • Variables gallery: gaps, mobile-height, tablet-height, height
  • gaper: is-stacked, is-stacked-reverse, is-wrap, is-auto,is-{gap}-gaped, is-{align}-aligned, is-{justify}-justified, is-{device}-stacked, is-{device}-stacked-reverse, is-{device}-{align}-aligned, is-{device}-{justify}-justified
    • Variables gaper: gaps
    • .filler
    • .separator
    • .gutter
  • grid: is-gapless, is-{gap}-gaped, is-{align}-aligned, is-{justify}-justified, is-{device}-{align}-aligned, is-{device}-{justify}-justified
    • Variables grid: units, gaps
    • break:
    • column: is-fit, is-{unit}, is-{device}-fit, is-{device}-{unit}
  • landscape: is-center-snapped, is-end-snapped, is-mandatory, is-stacked, is-gapless, is-{gap}-gaped, is-{align}-aligned, is-{justify}-justified, is-{device}-stacked, is-{device}-{align}-aligned, is-{device}-{justify}-justified
  • layout: is-reverse, is-horizontal, is-horizontal-reverse, is-{device}-reverse, is-{device}-horizontal, is-{device}-horizontal-reverse
    • .attachment
  • padder: is-{gap}