Skip to content

Commit

Permalink
Initial work for settings
Browse files Browse the repository at this point in the history
  • Loading branch information
Snugug committed Aug 24, 2014
1 parent e4a0f40 commit 0498315
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
22 changes: 22 additions & 0 deletions stylesheets/_breakpoint.scss
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,28 @@ $breakpoint-base-font-size: 16px !default;
// Legacy Syntax Support
$breakpoint-legacy-syntax: false !default;

//////////////////////////////
// Map Settings
//////////////////////////////
$Breakpoint-Settings: (
'default media': all,
'default feature': min-width,
'default pair': width,

'force all media type': false,
'transform to ems': false,
'transform resolutions': true,

'no queries': false,
'no query fallbacks': false,

'base font size': 16px,

'legacy syntax': false
);

$breakpoint: () !default;

//////////////////////////////
// Imports
//////////////////////////////
Expand Down
60 changes: 60 additions & 0 deletions stylesheets/breakpoint/_settings.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
//////////////////////////////
// Has Setting
//////////////////////////////
@function breakpoint-has($setting) {
@if map-has-key($breakpoint, $setting) {
@return true;
}
@else {
@return false;
}
}

//////////////////////////////
// Get Settings
//////////////////////////////
@function breakpoint-get($setting) {
@if breakpoint-has($setting) {
@return map-get($breakpoint, $setting);
}
@else {
@return map-get($Breakpoint-Settings, $setting);
}
}

//////////////////////////////
// Set Settings
//////////////////////////////
@function breakpoint-set($setting, $value) {
@if (str-index($setting, '-') or str-index($setting, '_')) and str-index($setting, ' ') == null {
@warn "Words in Breakpoint settings should be separated by spaces, not dashes or underscores. Please replace dashes and underscores between words with spaces. Settings will not work as expected until changed.";
}
$breakpoint: map-merge($breakpoint, ($setting: $value)) !global;
@return true;
}

@mixin breakpoint-change($setting, $value) {
$breakpoint-change: breakpoint-set($setting, $value);
}

@mixin breakpoint-set($setting, $value) {
@include breakpoint-change($setting, $value);
}

//////////////////////////////
// Remove Setting
//////////////////////////////
@function breakpoint-reset($settings...) {
@if length($settings) == 1 {
$settings: nth($settings, 1);
}

@each $setting in $settings {
$breakpoint: map-remove($breakpoint, $setting) !global;
}
@return true;
}

@mixin breakpoint-reset($settings...) {
$breakpoint-reset: breakpoint-reset($settings);
}

0 comments on commit 0498315

Please sign in to comment.