Skip to content

Commit

Permalink
Third variable map for generic variables, accessible with const()
Browse files Browse the repository at this point in the history
Fix the ActionBar dark button backgrounds again
Fix the colorize function to produce better organized code,
 to work with consts and to properly prepend .ns-dark on root classes
Create a variables folder with only variable SCSSes for easier skin import
Removed skins folder as its files were almost empty
  • Loading branch information
bundyo committed Sep 3, 2019
1 parent 604da8d commit cec4894
Show file tree
Hide file tree
Showing 39 changed files with 203 additions and 198 deletions.
3 changes: 2 additions & 1 deletion src/aqua.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
$compat: true;

// Aqua
@import './scss/skins/aqua';
@import './scss/variables/aqua';
@import './scss/index';

4 changes: 2 additions & 2 deletions src/aqua.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@
*/

// Aqua
@import './scss/skins/aqua';

@import './scss/variables/aqua';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/blue.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Blue
@import './scss/skins/blue';
@import './scss/variables/blue';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/blue.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Blue
@import './scss/skins/blue';
@import './scss/variables/blue';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/brown.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Brown
@import './scss/skins/brown';
@import './scss/variables/brown';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/brown.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Brown
@import './scss/skins/brown';
@import './scss/variables/brown';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/forest.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Forest
@import './scss/skins/forest';
@import './scss/variables/forest';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/forest.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Forest
@import './scss/skins/forest';
@import './scss/variables/forest';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/grey.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Grey
@import './scss/skins/grey';
@import './scss/variables/grey';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/grey.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Grey
@import './scss/skins/grey';
@import './scss/variables/grey';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/lemon.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Lemon
@import './scss/skins/lemon';
@import './scss/variables/lemon';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/lemon.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Lemon
@import './scss/skins/lemon';
@import './scss/variables/lemon';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/lime.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Lime
@import './scss/skins/lime';
@import './scss/variables/lime';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/lime.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Lime
@import './scss/skins/lime';
@import './scss/variables/lime';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/orange.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Orange
@import './scss/skins/orange';
@import './scss/variables/orange';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/orange.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Orange
@import './scss/skins/orange';
@import './scss/variables/orange';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/purple.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Purple
@import './scss/skins/purple';
@import './scss/variables/purple';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/purple.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Purple
@import './scss/skins/purple';
@import './scss/variables/purple';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/ruby.compat.scss
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@
$compat: true;

// Ruby
@import './scss/skins/ruby';
@import './scss/variables/ruby';
@import './scss/index';
3 changes: 2 additions & 1 deletion src/ruby.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
*/

// Ruby
@import './scss/skins/ruby';
@import './scss/variables/ruby';
@import './scss/index';
55 changes: 49 additions & 6 deletions src/scss/core/_colors.scss
Original file line number Diff line number Diff line change
@@ -1,9 +1,53 @@
// Constants

$constants: (
black: $black,
white: $white,
grey: $grey,
grey-background: $grey-background,
charcoal: $charcoal,
transparent: transparent,

// accent varieties
aqua: $aqua,
blue: $blue,
brown: $brown,
forest: $forest,
grey-dark: $grey-dark,
purple: $purple,
lemon: $lemon,
lime: $lime,
orange: $orange,
ruby: $ruby,
sky: $sky,

error: $error,

// Buttons
btn-color-secondary: $btn-color-secondary,
background-alt-10: $background-alt-10,
btn-color-disabled: $btn-color-disabled,
btn-font-size: $btn-font-size,
btn-min-width: $btn-min-width,
btn-height: $btn-height,
btn-radius: $btn-radius,
btn-padding-x: $btn-padding-x,
btn-padding-y: $btn-padding-y,
btn-margin-x: $btn-margin-x,
btn-margin-y: $btn-margin-y,

// Headings
headings-margin-bottom: $headings-margin-bottom,
headings-font-weight: $headings-font-weight,

border-radius: $border-radius
);

// Core light colors
$light-colors: (
primary: $primary,
background: $background,
focus: $focus,
gray: #999
focus: $focus
);

@if (global_variable_exists("theme-type")) {
Expand All @@ -26,7 +70,7 @@ $light-colors: map-merge($light-colors, (
text-color: light(primary),
headings-color: light(primary),

tab-text-color: mix(light(gray), light(focus), 70%),
tab-text-color: mix(const(gray), light(focus), 70%),

focus-dark: darken(light(focus), 20%),
focus-light: lighten(light(focus), 20%),
Expand All @@ -52,8 +96,7 @@ $light-colors: map-merge($light-colors, (
$dark-colors: (
primary: $white,
background: $charcoal,
focus: $focus,
gray: #999
focus: $focus
);

@if (global_variable_exists("bg-color")) {
Expand Down Expand Up @@ -97,7 +140,7 @@ $dark-colors: map-merge($dark-colors, (
text-color: dark(primary),
headings-color: dark(primary),

tab-text-color: mix(dark(gray), dark(focus), 70%),
tab-text-color: mix(const(gray), dark(focus), 70%),

focus-dark: lighten(dark(focus), 20%),
focus-light: lighten(dark(focus), 40%),
Expand Down
46 changes: 28 additions & 18 deletions src/scss/mixins/_colorize.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,40 +3,50 @@ $root-classes: '.ns-root', '.ns-android', '.ns-ios', '.ns-phone', '.ns-tablet',

@mixin enhance($name, $arguments, $colors) {
$args: ();
$has-enhancer: false;

$color: map-get($colors, $arguments);
$color: if($color != null, $color, const($arguments));

@each $arg in $arguments {
$color: map-get($colors, $arg);

$args: append($args, if($color != null, $color, $arg));
@each $enhancer in $enhancers {
@if str-index($name, '#{$enhancer}-') == 1 {
$has-enhancer: $enhancer;
}
}

@each $enhancer in $enhancers {
@if (str-index($name, '#{$enhancer}-') == 1) {
$name: str-slice($name, str-length($enhancer) + 2);
$color: call(get-function($enhancer), $args...);
@if $has-enhancer {
@each $arg in $arguments {
$color: map-get($colors, $arg);
$const: const($arg);

$args: append($args, if($color != null, $color, if($const != null, $const, $arg)));
}

$name: str-slice($name, str-length($has-enhancer) + 2);
$color: call(get-function($has-enhancer), $args...);
}

#{$name}: $color;
}

@mixin colorize($args...) {
$is-at-root: false;

@each $class in $root-classes {
@if(str-index('#{&}', $class) == 1) {
$is-at-root: true;
}
}

@each $name, $arguments in keywords($args) {
@include enhance($name, $arguments, $light-colors);
}

$is-at-root: false;

@each $class in $root-classes {
@if(str-index('#{&}', $class) == 1) {
$is-at-root: true;
}
}
@at-root #{if($is-at-root,
selector-append('.ns-dark', &),
selector-nest('.ns-dark', &))} {

@at-root #{if($is-at-root,
selector-append('.ns-dark', &),
selector-nest('.ns-dark', &))} {
@each $name, $arguments in keywords($args) {
@include enhance($name, $arguments, $dark-colors);
}
}
Expand Down
4 changes: 4 additions & 0 deletions src/scss/mixins/_utilities.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

// Functions

@function const($const) {
@return map-get($constants, $const);
}

@function light($color) {
@return map-get($light-colors, $color);
}
Expand Down
6 changes: 5 additions & 1 deletion src/scss/mixins/components/_action-bar.scss
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@
border-width: 0;
text-transform: none;
font-weight: normal;
background-color: transparent;

.ns-ios &,
.ns-ios &:active {
@include colorize($background-color: transparent);
}

&:active {
opacity: .7;
Expand Down
Loading

0 comments on commit cec4894

Please sign in to comment.