https://github.com/sha-red/compass-mixins/tree/master/lib extended with more sass frameworks and as django app.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

68 lines
1.6 KiB

/*
* A partial implementation of the Ruby list functions from Compass:
* https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/functions/lists.rb
*/
// compact is part of libsass
@function -compass-nth($list, $place) {
// Yep, Sass-lists are 1-indexed.
@if $place == "first" {
$place: 1;
}
@if $place == "last" {
$place: length($list);
}
@return nth($list, $place);
}
// compass_list can't be implemented in sass script
@function -compass-space-list($item1, $item2:null, $item3:null, $item4:null, $item5:null, $item6:null, $item7:null, $item8:null, $item9:null) {
$items: $item2, $item3, $item4, $item5, $item6, $item7, $item8, $item9;
$full: $item1;
@each $item in $items {
@if $item != null {
$full: $full $item;
}
}
@return $full;
}
@function -compass-list-size($list) {
@return length($list);
}
@function -compass-slice($list, $start, $end: false) {
@if $end == false {
$end: length($list);
}
$full: nth($list, $start);
@for $i from $start + 1 through $end {
$full: $full, nth($list, $i);
}
@return $full;
}
@function reject($list, $reject1, $reject2:null, $reject3:null, $reject4:null, $reject5:null, $reject6:null, $reject7:null, $reject8:null, $reject9:null) {
$rejects: $reject1, $reject2, $reject3, $reject4, $reject5, $reject6, $reject7, $reject8, $reject9;
$full: false;
@each $item in $list {
@if index($rejects, $item) {}
@else {
@if $full {
$full: $full, $item;
}
@else {
$full: $item;
}
}
}
@return $full;
}
@function first-value-of($list) {
@return nth($list, 1);
}